From 56fe5ff142b6851ee643b43ed8328cf33d449032 Mon Sep 17 00:00:00 2001
From: Kevin Cristiano <kcristiano@kcristiano.com>
Date: Thu, 5 Mar 2020 10:47:16 -0500
Subject: [PATCH] civicrm release

---
 civicrm.php                                   |   32 +-
 civicrm/CONTRIBUTORS.txt                      |    5 +-
 civicrm/CRM/ACL/BAO/ACL.php                   |   39 +-
 civicrm/CRM/ACL/Form/ACL.php                  |    2 -
 .../CRM/ACL/Form/WordPress/Permissions.php    |    3 +-
 civicrm/CRM/Activity/BAO/Activity.php         |   28 +-
 civicrm/CRM/Activity/Form/Activity.php        |    5 +-
 civicrm/CRM/Activity/Form/ActivityView.php    |   10 +-
 civicrm/CRM/Activity/Form/Search.php          |    1 -
 civicrm/CRM/Activity/Form/Task/PDF.php        |   62 +
 .../Activity/Form/Task/PDFLetterCommon.php    |   74 +
 civicrm/CRM/Activity/Task.php                 |    5 +
 civicrm/CRM/Activity/Tokens.php               |  197 +-
 civicrm/CRM/Admin/Form/LabelFormats.php       |    1 +
 civicrm/CRM/Admin/Form/Preferences.php        |  198 +-
 civicrm/CRM/Admin/Form/Setting.php            |    8 +-
 civicrm/CRM/Admin/Form/SettingTrait.php       |   27 +-
 civicrm/CRM/Api4/Page/AJAX.php                |    4 +-
 civicrm/CRM/Api4/Page/Api4Explorer.php        |    4 +
 civicrm/CRM/Badge/Form/Layout.php             |    2 +-
 civicrm/CRM/Campaign/Form/Search.php          |    1 -
 civicrm/CRM/Case/BAO/Case.php                 |    2 +-
 civicrm/CRM/Case/BAO/CaseType.php             |   16 +-
 civicrm/CRM/Case/Form/Activity.php            |   14 +-
 civicrm/CRM/Case/Form/Case.php                |   14 -
 civicrm/CRM/Case/Form/CaseView.php            |   22 +-
 civicrm/CRM/Case/Form/Search.php              |    1 -
 civicrm/CRM/Contact/BAO/Contact.php           |   63 +-
 civicrm/CRM/Contact/BAO/Contact/Utils.php     |    6 +-
 civicrm/CRM/Contact/BAO/Group.php             |   57 +-
 civicrm/CRM/Contact/BAO/GroupNestingCache.php |   17 +-
 civicrm/CRM/Contact/BAO/Query.php             |    2 +-
 civicrm/CRM/Contact/BAO/Relationship.php      |    2 +-
 civicrm/CRM/Contact/BAO/SavedSearch.php       |    8 +-
 civicrm/CRM/Contact/DAO/Contact.php           |    3 +-
 civicrm/CRM/Contact/Form/Edit/Address.php     |    5 +-
 civicrm/CRM/Contact/Form/Merge.php            |   17 +-
 civicrm/CRM/Contact/Form/Search.php           |    7 +-
 civicrm/CRM/Contact/Form/Search/Builder.php   |    2 +-
 civicrm/CRM/Contact/Form/Task/EmailCommon.php |    3 +-
 .../CRM/Contact/Form/Task/PDFLetterCommon.php |   17 +-
 .../CRM/Contact/Page/View/UserDashBoard.php   |    2 +-
 civicrm/CRM/Contribute/BAO/Contribution.php   |   96 +-
 .../CRM/Contribute/BAO/Contribution/Utils.php |    4 +-
 .../CRM/Contribute/BAO/ContributionPage.php   |   11 +-
 .../CRM/Contribute/BAO/ContributionSoft.php   |   83 +-
 .../Contribute/Form/AbstractEditPayment.php   |    4 +-
 .../CRM/Contribute/Form/AdditionalPayment.php |    3 -
 civicrm/CRM/Contribute/Form/Contribution.php  |   12 +-
 .../CRM/Contribute/Form/Contribution/Main.php |   11 +-
 .../CRM/Contribute/Form/ContributionBase.php  |   24 +-
 .../Form/ContributionPage/Widget.php          |    2 +
 .../CRM/Contribute/Form/ContributionView.php  |    3 +-
 civicrm/CRM/Contribute/Form/Search.php        |   17 +-
 civicrm/CRM/Contribute/Form/Task/Batch.php    |    2 +-
 civicrm/CRM/Contribute/Form/Task/PDF.php      |    2 +-
 .../Contribute/Import/Parser/Contribution.php |    3 +-
 civicrm/CRM/Contribute/Selector/Search.php    |    2 +-
 civicrm/CRM/Core/BAO/ActionSchedule.php       |    2 +-
 civicrm/CRM/Core/BAO/Address.php              |    9 +-
 civicrm/CRM/Core/BAO/ConfigSetting.php        |   14 +-
 civicrm/CRM/Core/BAO/CustomField.php          |    2 +
 civicrm/CRM/Core/BAO/CustomGroup.php          |   24 +-
 civicrm/CRM/Core/BAO/FinancialTrxn.php        |    8 +-
 civicrm/CRM/Core/BAO/LabelFormat.php          |    5 +-
 civicrm/CRM/Core/BAO/Mapping.php              |  218 +-
 civicrm/CRM/Core/BAO/RecurringEntity.php      |    2 +
 civicrm/CRM/Core/BAO/SchemaHandler.php        |  106 +-
 civicrm/CRM/Core/BAO/Setting.php              |   15 +-
 civicrm/CRM/Core/BAO/UFGroup.php              |   16 +-
 civicrm/CRM/Core/ClassLoader.php              |   15 +-
 civicrm/CRM/Core/CodeGen/Config.php           |    4 +
 civicrm/CRM/Core/CodeGen/Main.php             |    6 +-
 civicrm/CRM/Core/CodeGen/Schema.php           |   83 +-
 civicrm/CRM/Core/CodeGen/Util/Smarty.php      |    5 +-
 civicrm/CRM/Core/CodeGen/Util/Template.php    |   17 +
 civicrm/CRM/Core/Config.php                   |    9 +-
 civicrm/CRM/Core/DAO.php                      |    3 +-
 civicrm/CRM/Core/DAO/Address.php              |    9 +-
 civicrm/CRM/Core/DAO/Domain.php               |   21 +-
 civicrm/CRM/Core/DAO/Email.php                |   11 +-
 civicrm/CRM/Core/DAO/IM.php                   |    7 +-
 civicrm/CRM/Core/DAO/OpenID.php               |    7 +-
 civicrm/CRM/Core/DAO/Phone.php                |    7 +-
 civicrm/CRM/Core/Error.php                    |   34 +-
 .../Exception/ResourceConflictException.php   |   42 +
 civicrm/CRM/Core/Form/EntityFormTrait.php     |   20 +-
 civicrm/CRM/Core/Form/Search.php              |    7 -
 civicrm/CRM/Core/Form/Task.php                |    3 +-
 .../CRM/Core/Form/Task/PDFLetterCommon.php    |   48 +-
 civicrm/CRM/Core/I18n.php                     |   42 +-
 civicrm/CRM/Core/I18n/Schema.php              |    6 +-
 civicrm/CRM/Core/IDS.php                      |    6 +-
 civicrm/CRM/Core/InnoDBIndexer.php            |   13 +-
 civicrm/CRM/Core/Menu.php                     |    2 +-
 civicrm/CRM/Core/Payment/BaseIPN.php          |   33 +-
 civicrm/CRM/Core/Payment/Manual.php           |    2 +-
 civicrm/CRM/Core/Payment/PaymentExpress.php   |    2 +-
 civicrm/CRM/Core/Permission/Drupal8.php       |   27 +
 civicrm/CRM/Core/PseudoConstant.php           |    2 +-
 civicrm/CRM/Core/Report/Excel.php             |   39 +-
 civicrm/CRM/Core/Resources.php                |   13 +
 civicrm/CRM/Core/SelectValues.php             |   41 +-
 civicrm/CRM/Core/Session.php                  |   24 +-
 civicrm/CRM/Core/Smarty.php                   |    3 +-
 .../Smarty/plugins/function.crmResPath.php    |    7 +
 .../Smarty/plugins/function.crmResURL.php     |    7 +
 civicrm/CRM/Custom/Form/CustomData.php        |   13 +-
 civicrm/CRM/Cxn/BAO/Cxn.php                   |   17 +-
 civicrm/CRM/Dashlet/Page/GettingStarted.php   |    6 +-
 civicrm/CRM/Dedupe/Merger.php                 |  495 ++-
 civicrm/CRM/Event/BAO/Event.php               |   15 +-
 civicrm/CRM/Event/BAO/Participant.php         |   81 +-
 civicrm/CRM/Event/BAO/Query.php               |   12 +-
 civicrm/CRM/Event/Form/Participant.php        |  681 +++-
 civicrm/CRM/Event/Form/Registration.php       |   22 +-
 .../CRM/Event/Form/Registration/Confirm.php   |   19 +-
 .../Form/Registration/ParticipantConfirm.php  |    2 +-
 .../CRM/Event/Form/Registration/Register.php  |    8 +-
 civicrm/CRM/Event/Form/Search.php             |    7 +-
 civicrm/CRM/Event/Page/EventInfo.php          |    2 +-
 civicrm/CRM/Export/BAO/Export.php             |    2 +-
 civicrm/CRM/Export/BAO/ExportProcessor.php    |   68 +-
 civicrm/CRM/Export/Form/Map.php               |  220 +-
 civicrm/CRM/Export/Utils.php                  |  110 +
 civicrm/CRM/Financial/BAO/FinancialType.php   |    2 +-
 civicrm/CRM/Financial/BAO/Payment.php         |    5 +
 .../CRM/Financial/BAO/PaymentProcessor.php    |    7 +
 .../Financial/DAO/PaymentProcessorType.php    |    8 +-
 civicrm/CRM/Financial/Form/FinancialType.php  |    2 +-
 civicrm/CRM/Grant/Form/Search.php             |    1 -
 civicrm/CRM/Invoicing/Utils.php               |    4 +-
 civicrm/CRM/Logging/Schema.php                |    2 +-
 civicrm/CRM/Mailing/BAO/Mailing.php           |   12 +-
 civicrm/CRM/Mailing/BAO/TrackableURL.php      |    5 +-
 civicrm/CRM/Mailing/MailStore.php             |    5 +-
 civicrm/CRM/Mailing/MailStore/Imap.php        |   17 +-
 civicrm/CRM/Mailing/Page/View.php             |   10 +
 civicrm/CRM/Mailing/Tokens.php                |    1 +
 civicrm/CRM/Member/BAO/Membership.php         |  114 +-
 civicrm/CRM/Member/BAO/MembershipType.php     |   41 +-
 civicrm/CRM/Member/Form/Membership.php        |    3 +-
 civicrm/CRM/Member/Form/Search.php            |   11 +-
 civicrm/CRM/Member/Form/Task.php              |   35 +-
 civicrm/CRM/PCP/BAO/PCP.php                   |   57 +-
 civicrm/CRM/PCP/Page/PCP.php                  |   60 +-
 civicrm/CRM/Pledge/Form/Search.php            |    1 -
 civicrm/CRM/Price/BAO/LineItem.php            |   35 +-
 civicrm/CRM/Price/BAO/PriceSet.php            |  174 +-
 civicrm/CRM/Report/Form.php                   |   41 +-
 civicrm/CRM/Report/Form/Contribute/Detail.php |  499 +--
 .../CRM/Report/Form/Contribute/History.php    |    3 +
 .../CRM/Report/Form/Contribute/Summary.php    |    8 +-
 civicrm/CRM/Report/Form/Instance.php          |    6 +-
 civicrm/CRM/SMS/Form/Schedule.php             |    6 +-
 civicrm/CRM/SMS/Form/Upload.php               |    6 +-
 civicrm/CRM/UF/Form/Group.php                 |    2 +-
 civicrm/CRM/UF/Page/ProfileEditor.php         |   20 +-
 civicrm/CRM/Upgrade/Form.php                  |    2 +
 civicrm/CRM/Upgrade/Incremental/Base.php      |   17 +-
 .../Upgrade/Incremental/MessageTemplates.php  |    9 +
 .../Incremental/php/FiveTwentyThree.php       |  170 +
 .../CRM/Upgrade/Incremental/php/FourSeven.php |    7 +-
 .../Upgrade/Incremental/sql/4.3.4.mysql.tpl   |    4 +-
 .../Upgrade/Incremental/sql/4.7.10.mysql.tpl  |    2 +-
 .../Upgrade/Incremental/sql/4.7.25.mysql.tpl  |    2 +-
 .../Incremental/sql/4.7.beta1.mysql.tpl       |    2 +-
 .../Upgrade/Incremental/sql/5.22.0.mysql.tpl  |    1 -
 .../Upgrade/Incremental/sql/5.22.1.mysql.tpl  |    1 -
 .../Upgrade/Incremental/sql/5.23.0.mysql.tpl  |    1 +
 .../Incremental/sql/5.23.alpha1.mysql.tpl     |   11 +
 .../Incremental/sql/5.23.beta1.mysql.tpl      |    1 +
 civicrm/CRM/Utils/API/HTMLInputCoder.php      |    4 +
 civicrm/CRM/Utils/Check/Component/Schema.php  |   76 +
 civicrm/CRM/Utils/Date.php                    |   13 -
 civicrm/CRM/Utils/Money.php                   |    4 +
 civicrm/CRM/Utils/Rule.php                    |   13 -
 civicrm/CRM/Utils/SQL/TempTable.php           |   25 +-
 civicrm/CRM/Utils/String.php                  |   21 +-
 civicrm/CRM/Utils/System.php                  |   43 +-
 civicrm/CRM/Utils/System/Base.php             |   16 +
 civicrm/CRM/Utils/System/Drupal8.php          |   11 +-
 civicrm/CRM/Utils/System/DrupalBase.php       |   27 +-
 civicrm/CRM/Utils/System/WordPress.php        |   17 +-
 civicrm/CRM/Utils/Token.php                   |   13 +-
 civicrm/CRM/Utils/XML.php                     |    7 +-
 civicrm/Civi/API/Kernel.php                   |   15 +-
 .../Civi/API/Subscriber/XDebugSubscriber.php  |   26 +-
 .../Civi/ActionSchedule/RecipientBuilder.php  |   23 +-
 civicrm/Civi/Angular/Manager.php              |    1 +
 civicrm/Civi/Api4/ACL.php                     |   14 +-
 .../Civi/Api4/Action/Contact/GetFields.php    |    3 +
 civicrm/Civi/Api4/Action/Entity/Get.php       |   31 +-
 civicrm/Civi/Api4/Action/GetActions.php       |   41 +-
 .../Action/Setting/AbstractSettingAction.php  |    2 +-
 civicrm/Civi/Api4/Action/Setting/Get.php      |   13 +-
 civicrm/Civi/Api4/Action/Setting/Revert.php   |   13 +-
 civicrm/Civi/Api4/Action/Setting/Set.php      |   12 +-
 civicrm/Civi/Api4/ActionSchedule.php          |    1 +
 civicrm/Civi/Api4/Activity.php                |    1 +
 civicrm/Civi/Api4/ActivityContact.php         |    1 +
 civicrm/Civi/Api4/Campaign.php                |    1 +
 civicrm/Civi/Api4/Contact.php                 |   10 +
 civicrm/Civi/Api4/ContactType.php             |    2 +
 civicrm/Civi/Api4/CustomField.php             |    2 +
 civicrm/Civi/Api4/CustomGroup.php             |    2 +
 civicrm/Civi/Api4/CustomValue.php             |   21 +-
 civicrm/Civi/Api4/Domain.php                  |    2 +
 civicrm/Civi/Api4/Entity.php                  |   22 +-
 civicrm/Civi/Api4/EntityTag.php               |    3 +-
 civicrm/Civi/Api4/Event.php                   |    2 +
 civicrm/Civi/Api4/Event/Events.php            |    2 +-
 .../Subscriber/PostSelectQuerySubscriber.php  |   38 +-
 civicrm/Civi/Api4/Generic/AbstractAction.php  |  112 +-
 .../Civi/Api4/Generic/AbstractBatchAction.php |    2 +-
 .../Api4/Generic/AbstractCreateAction.php     |   23 +-
 civicrm/Civi/Api4/Generic/AbstractEntity.php  |   23 +-
 .../Civi/Api4/Generic/AbstractGetAction.php   |   65 +-
 .../Civi/Api4/Generic/AbstractQueryAction.php |   37 +-
 .../Civi/Api4/Generic/AbstractSaveAction.php  |   43 +-
 .../Api4/Generic/AbstractUpdateAction.php     |   27 +-
 .../Civi/Api4/Generic/BasicBatchAction.php    |   15 +-
 .../Civi/Api4/Generic/BasicCreateAction.php   |    6 +-
 civicrm/Civi/Api4/Generic/BasicGetAction.php  |    6 +-
 .../Api4/Generic/BasicGetFieldsAction.php     |   20 +-
 .../Civi/Api4/Generic/BasicReplaceAction.php  |   93 +-
 civicrm/Civi/Api4/Generic/BasicSaveAction.php |    7 +-
 .../Civi/Api4/Generic/BasicUpdateAction.php   |    9 +-
 civicrm/Civi/Api4/Generic/DAOCreateAction.php |    5 +-
 civicrm/Civi/Api4/Generic/DAODeleteAction.php |   15 +-
 civicrm/Civi/Api4/Generic/DAOEntity.php       |    2 +-
 civicrm/Civi/Api4/Generic/DAOGetAction.php    |   16 +-
 .../Civi/Api4/Generic/DAOGetFieldsAction.php  |    5 +-
 civicrm/Civi/Api4/Generic/DAOSaveAction.php   |    6 +-
 civicrm/Civi/Api4/Generic/DAOUpdateAction.php |    8 +-
 civicrm/Civi/Api4/Generic/Result.php          |   12 +
 .../Api4/Generic/Traits/DAOActionTrait.php    |    9 +-
 civicrm/Civi/Api4/Group.php                   |    3 +-
 civicrm/Civi/Api4/GroupContact.php            |    3 +-
 civicrm/Civi/Api4/GroupNesting.php            |    2 +
 civicrm/Civi/Api4/GroupOrganization.php       |    3 +
 civicrm/Civi/Api4/Mapping.php                 |    1 -
 civicrm/Civi/Api4/MappingField.php            |    3 +-
 civicrm/Civi/Api4/Navigation.php              |    1 -
 civicrm/Civi/Api4/OptionGroup.php             |    1 +
 civicrm/Civi/Api4/OptionValue.php             |    1 +
 civicrm/Civi/Api4/Participant.php             |    1 -
 civicrm/Civi/Api4/PaymentProcessor.php        |   29 +
 civicrm/Civi/Api4/PaymentProcessorType.php    |   29 +
 .../Api4/Provider/ActionObjectProvider.php    |    2 +-
 civicrm/Civi/Api4/Query/Api4SelectQuery.php   |   60 +-
 civicrm/Civi/Api4/Relationship.php            |    2 +
 civicrm/Civi/Api4/RelationshipType.php        |    2 +
 civicrm/Civi/Api4/Route.php                   |   11 +
 .../Schema/Joinable/CustomGroupJoinable.php   |    3 +
 .../Api4/Service/Schema/Joinable/Joinable.php |   11 +
 .../PaymentProcessorCreationSpecProvider.php  |   52 +
 ...ymentProcessorTypeCreationSpecProvider.php |   56 +
 .../Civi/Api4/Service/Spec/SpecGatherer.php   |    2 +-
 civicrm/Civi/Api4/Setting.php                 |    1 +
 civicrm/Civi/Api4/StatusPreference.php        |    2 +
 civicrm/Civi/Api4/Tag.php                     |    1 +
 civicrm/Civi/Api4/UFField.php                 |    1 +
 civicrm/Civi/Api4/UFGroup.php                 |    1 +
 civicrm/Civi/Api4/UFJoin.php                  |    1 +
 civicrm/Civi/Api4/Utils/FormattingUtil.php    |   85 +-
 civicrm/Civi/Api4/Utils/ReflectionUtils.php   |   62 +-
 civicrm/Civi/Api4/Utils/SelectUtil.php        |   60 +
 civicrm/Civi/Core/AssetBuilder.php            |    6 +-
 civicrm/Civi/Core/Paths.php                   |   43 +-
 civicrm/Civi/Core/SettingsBag.php             |   58 +
 civicrm/Civi/Payment/PropertyBag.php          |   32 +-
 civicrm/Civi/Test.php                         |   46 +-
 civicrm/Civi/Test/Api3TestTrait.php           |    9 +-
 civicrm/Civi/Test/CiviEnvBuilder.php          |   40 +-
 .../Test/CiviEnvBuilder/CoreSchemaStep.php    |   50 +
 civicrm/Civi/Test/Data.php                    |   55 +-
 civicrm/Civi/Token/TokenRow.php               |    2 +-
 civicrm/ang/api4Explorer/Explorer.html        |  109 +-
 civicrm/ang/api4Explorer/Explorer.js          |  281 +-
 civicrm/ang/crmCaseType/caseTypeDetails.html  |    2 +-
 civicrm/ang/crmCaseType/rolesTable.html       |    5 +
 civicrm/ang/exportui.ang.php                  |   23 +
 civicrm/ang/exportui.css                      |   56 +
 civicrm/ang/exportui/export.html              |   30 +
 civicrm/ang/exportui/exportField.html         |   15 +
 civicrm/ang/exportui/exportSaveMapping.html   |   27 +
 civicrm/ang/exportui/exportui.js              |  247 ++
 civicrm/api/api.php                           |   72 +-
 civicrm/api/v3/Contact.php                    |    2 +-
 civicrm/api/v3/Entity.php                     |    2 +
 civicrm/api/v3/Membership.php                 |    9 +-
 civicrm/api/v3/MembershipStatus.php           |    3 +
 civicrm/api/v3/Order.php                      |    3 +
 civicrm/api/v3/PaymentProcessor.php           |    6 -
 civicrm/api/v3/System.php                     |   74 +-
 civicrm/api/v3/examples/Domain/Create.ex.php  |    1 -
 civicrm/api/v3/examples/Event/Create.ex.php   |    4 +-
 .../v3/examples/Event/IsCurrentOption.ex.php  |    2 +-
 .../api/v3/examples/Setting/GetFields.ex.php  |    1 -
 civicrm/api/v3/utils.php                      |    4 -
 civicrm/bin/regen.sh                          |    2 +-
 ...rked-5bbf2d6725b29ad8ddb7c3ab47c50930.json |    4 +
 civicrm/bower_components/marked/index.js      |    1 +
 civicrm/bower_components/marked/marked.min.js |    6 +
 .../marked/rollup.config.esm.js               |   26 +
 .../bower_components/marked/rollup.config.js  |   31 +
 civicrm/civicrm-version.php                   |    2 +-
 civicrm/composer.json                         |   15 +-
 civicrm/composer.lock                         |   52 +-
 civicrm/css/api4-explorer.css                 |   33 +-
 civicrm/css/civicrm.css                       |    4 +
 civicrm/ext/iatspayments/iats.php             |    2 +-
 civicrm/ext/iatspayments/info.xml             |    6 +-
 .../ext/iatspayments/release-notes/1.7.2.md   |    9 +
 civicrm/extension-compatibility.json          |    5 +
 civicrm/i/check.gif                           |  Bin 537 -> 519 bytes
 civicrm/js/jquery/jquery.crmEditable.js       |    2 +-
 civicrm/js/jquery/jquery.crmIconPicker.js     |   24 +-
 civicrm/js/view/crm.designer.js               |    2 +-
 civicrm/js/wysiwyg/crm.ckeditor.js            |    4 +-
 civicrm/packages/DB.php                       |   71 +-
 civicrm/packages/DB/DataObject.php            | 1944 ++++++---
 civicrm/packages/DB/DataObject/Cast.php       |  264 +-
 civicrm/packages/DB/DataObject/Error.php      |   18 +-
 civicrm/packages/DB/DataObject/Generator.php  |  851 ++--
 civicrm/packages/DB/DataObject/Links.php      |  485 +++
 .../packages/DB/DataObject/createTables.php   |   10 +-
 civicrm/packages/DB/Table.php                 | 2334 -----------
 civicrm/packages/DB/Table/Base.php            |  755 ----
 civicrm/packages/DB/Table/Database.php        | 3495 -----------------
 civicrm/packages/DB/Table/Date.php            |  195 -
 civicrm/packages/DB/Table/Generator.php       | 1332 -------
 civicrm/packages/DB/Table/Manager.php         | 2349 -----------
 civicrm/packages/DB/Table/Manager/mysql.php   |  443 ---
 civicrm/packages/DB/Table/Manager/mysqli.php  |  440 ---
 civicrm/packages/DB/Table/Manager/pgsql.php   |  440 ---
 civicrm/packages/DB/Table/QuickForm.php       | 1173 ------
 civicrm/packages/DB/Table/Valid.php           |  454 ---
 civicrm/packages/DB/Table/XML.php             |  111 -
 civicrm/packages/DB/common.php                |   54 +-
 civicrm/packages/DB/dbase.php                 |   10 +-
 civicrm/packages/DB/mssql.php                 |   29 +-
 civicrm/packages/DB/mysql.php                 |   31 +-
 civicrm/packages/DB/mysqli.php                |   28 +-
 civicrm/packages/DB/odbc.php                  |   20 +-
 civicrm/packages/DB/pgsql.php                 |   67 +-
 civicrm/packages/DB/storage.php               |    6 +-
 civicrm/packages/PHPgettext/Makefile          |    7 +-
 civicrm/packages/PHPgettext/gettext.inc       |   91 +-
 civicrm/packages/PHPgettext/gettext.php       |   14 +-
 .../packages/PHPgettext/tests/LocalesTest.php |   10 +-
 .../packages/PHPgettext/tests/ParsingTest.php |   50 +-
 civicrm/packages/System/Command.php           |  587 ---
 civicrm/packages/VERSIONS.php                 |    6 +-
 civicrm/release-notes.md                      |   11 +
 civicrm/release-notes/5.22.1.md               |    2 +-
 civicrm/release-notes/5.23.0.md               | 1100 ++++++
 civicrm/settings/Address.setting.php          |    5 +-
 civicrm/settings/Case.setting.php             |   16 +-
 civicrm/settings/Contribute.setting.php       |  116 +-
 civicrm/settings/Core.setting.php             |    4 +-
 civicrm/settings/Developer.setting.php        |   24 +-
 civicrm/settings/Directory.setting.php        |   23 +-
 civicrm/settings/Extension.setting.php        |    3 +-
 civicrm/settings/Localization.setting.php     |   90 +-
 civicrm/settings/Mailing.setting.php          |   42 +-
 civicrm/settings/Map.setting.php              |   16 +-
 civicrm/settings/Member.setting.php           |    2 +-
 civicrm/settings/Multisite.setting.php        |    6 +-
 civicrm/settings/Search.setting.php           |   47 +-
 civicrm/settings/Url.setting.php              |   16 +-
 civicrm/sql/civicrm.mysql                     |    5 +-
 civicrm/sql/civicrm_data.mysql                |   50 +-
 civicrm/sql/civicrm_generated.mysql           |   68 +-
 .../templates/CRM/Activity/Form/Activity.tpl  |    7 +-
 .../templates/CRM/Activity/Form/Task/PDF.tpl  |   14 +
 civicrm/templates/CRM/Admin/Form/Job.tpl      |    2 +-
 .../CRM/Admin/Form/Preferences/Display.hlp    |    2 +-
 .../CRM/Admin/Form/Setting/Miscellaneous.tpl  |    4 +-
 .../CRM/Admin/Page/PaymentProcessor.hlp       |    2 +-
 civicrm/templates/CRM/Case/Form/CaseView.js   |   52 +-
 .../CRM/Contact/Form/ShareAddress.tpl         |   22 +-
 .../templates/CRM/Contribute/Page/Widget.tpl  |    2 +-
 .../CRM/Event/Form/ManageEvent/Location.hlp   |   24 +
 .../CRM/Event/Form/ManageEvent/Location.tpl   |    8 +
 .../templates/CRM/Event/Form/Participant.tpl  |    4 +-
 civicrm/templates/CRM/Export/Form/Map.tpl     |   20 +-
 civicrm/templates/CRM/Export/Form/table.tpl   |   76 -
 .../CRM/Financial/Form/FinancialAccount.hlp   |    2 +-
 civicrm/templates/CRM/Friend/Form/Friend.tpl  |    2 +-
 .../templates/CRM/Mailing/Form/Subscribe.tpl  |    2 +-
 .../templates/CRM/Member/Form/Membership.tpl  |   30 +-
 .../CRM/Member/Form/MembershipView.tpl        |    2 +-
 .../templates/CRM/common/SocialNetwork.tpl    |    4 -
 .../CRM/common/civicrm.settings.php.template  |    3 +
 civicrm/templates/CRM/common/l10n.js.tpl      |    1 +
 civicrm/vendor/autoload.php                   |    2 +-
 .../vendor/civicrm/civicrm-setup/README.md    |    2 +-
 .../plugins/blocks/header.tpl.php             |   14 +-
 .../CheckDbWellFormed.civi-setup.php          |    5 +-
 .../CoreRequirementsAdapter.civi-setup.php    |    2 +-
 .../plugins/common/LogEvents.civi-setup.php   |    2 +-
 .../plugins/init/Backdrop.civi-setup.php      |    2 +-
 .../plugins/init/Drupal.civi-setup.php        |   47 +-
 .../plugins/init/Drupal8.civi-setup.php       |   92 +
 .../BootstrapCivi.civi-setup.php              |    2 +-
 .../FlushDrupal8.civi-setup.php               |   56 +
 .../InstallSchema.civi-setup.php              |  103 +-
 .../GenerateSiteKey.civi-setup.php            |   19 +-
 .../InstallSettingsFile.civi-setup.php        |    5 +-
 .../UninstallSettingsFile.civi-setup.php      |    2 +-
 .../civicrm/civicrm-setup/res/template.css    |  111 +-
 .../civicrm-setup/res/updated-logo.jpg        |  Bin 0 -> 27097 bytes
 .../civicrm/civicrm-setup/src/Setup.php       |    5 +-
 .../civicrm-setup/src/Setup/DbUtil.php        |   49 +-
 .../civicrm-setup/src/Setup/DrupalUtil.php    |   67 +
 .../src/Setup/Event/CheckInstalledEvent.php   |    7 +-
 .../civicrm-setup/src/Setup/FileUtil.php      |   12 +
 .../civicrm-setup/src/Setup/LocaleUtil.php    |    3 +
 .../civicrm/civicrm-setup/src/Setup/Model.php |    6 +
 .../civicrm-setup/src/Setup/PackageUtil.php   |   33 +
 .../src/Setup/SchemaGenerator.php             |   90 +
 .../civicrm-setup/src/Setup/SmartyUtil.php    |   33 +
 .../civicrm-setup/src/Setup/Template.php      |   79 +
 .../src/Setup/UI/SetupController.php          |   15 +-
 civicrm/vendor/composer/autoload_real.php     |   14 +-
 civicrm/vendor/composer/autoload_static.php   |   12 +-
 civicrm/vendor/composer/installed.json        |   52 +-
 .../psr/log/Psr/Log/LoggerInterface.php       |    2 +
 .../vendor/psr/log/Psr/Log/LoggerTrait.php    |    2 +
 civicrm/vendor/psr/log/Psr/Log/NullLogger.php |    2 +
 civicrm/vendor/psr/log/README.md              |    6 +
 civicrm/vendor/psr/log/composer.json          |    2 +-
 civicrm/vendor/zetacomponents/mail/ChangeLog  |   22 +-
 .../mail/src/options/imap_options.php         |   12 +
 .../vendor/zetacomponents/mail/src/tools.php  |    8 +-
 .../mail/src/transports/imap/imap_set.php     |    2 +-
 .../src/transports/imap/imap_transport.php    |  109 +-
 civicrm/xml/GenCode.php                       |    5 +-
 civicrm/xml/schema/Contact/Contact.xml        |    2 +-
 civicrm/xml/schema/Core/Address.xml           |    6 +-
 civicrm/xml/schema/Core/Domain.xml            |    1 +
 civicrm/xml/schema/Core/Email.xml             |   14 +-
 civicrm/xml/schema/Core/IM.xml                |    5 +-
 civicrm/xml/schema/Core/OpenID.xml            |    5 +-
 civicrm/xml/schema/Core/Phone.xml             |    5 +-
 .../schema/Financial/PaymentProcessorType.xml |    4 +-
 civicrm/xml/templates/civicrm_data.tpl        |   26 +-
 .../xml/templates/civicrm_msg_template.tpl    |    8 +-
 .../contribution_offline_receipt_html.tpl     |    8 +
 .../contribution_offline_receipt_text.tpl     |    1 +
 .../participant_confirm_html.tpl              |    2 +-
 civicrm/xml/version.xml                       |    2 +-
 includes/civicrm.basepage.php                 |    3 +
 languages/civicrm.pot                         |  145 +-
 wp-rest/.editorconfig                         |    9 -
 wp-rest/Autoloader.php                        |  115 -
 wp-rest/Civi/Mailing-Hooks.php                |  197 -
 wp-rest/Controller/AuthorizeIPN.php           |  123 -
 wp-rest/Controller/Base.php                   |  111 -
 wp-rest/Controller/Cxn.php                    |  125 -
 wp-rest/Controller/Open.php                   |  129 -
 wp-rest/Controller/PayPalIPN.php              |  134 -
 wp-rest/Controller/PxIPN.php                  |  139 -
 wp-rest/Controller/Rest.php                   |  561 ---
 wp-rest/Controller/Soap.php                   |   98 -
 wp-rest/Controller/Url.php                    |  216 -
 wp-rest/Controller/Widget.php                 |  214 -
 wp-rest/Endpoint/Endpoint-Interface.php       |   35 -
 wp-rest/Plugin.php                            |  204 -
 wp-rest/README.md                             |   59 -
 472 files changed, 11196 insertions(+), 21459 deletions(-)
 create mode 100644 civicrm/CRM/Activity/Form/Task/PDF.php
 create mode 100644 civicrm/CRM/Activity/Form/Task/PDFLetterCommon.php
 create mode 100644 civicrm/CRM/Core/Exception/ResourceConflictException.php
 create mode 100644 civicrm/CRM/Export/Utils.php
 create mode 100644 civicrm/CRM/Upgrade/Incremental/php/FiveTwentyThree.php
 delete mode 100644 civicrm/CRM/Upgrade/Incremental/sql/5.22.0.mysql.tpl
 delete mode 100644 civicrm/CRM/Upgrade/Incremental/sql/5.22.1.mysql.tpl
 create mode 100644 civicrm/CRM/Upgrade/Incremental/sql/5.23.0.mysql.tpl
 create mode 100644 civicrm/CRM/Upgrade/Incremental/sql/5.23.alpha1.mysql.tpl
 create mode 100644 civicrm/CRM/Upgrade/Incremental/sql/5.23.beta1.mysql.tpl
 create mode 100644 civicrm/Civi/Api4/PaymentProcessor.php
 create mode 100644 civicrm/Civi/Api4/PaymentProcessorType.php
 create mode 100644 civicrm/Civi/Api4/Service/Spec/Provider/PaymentProcessorCreationSpecProvider.php
 create mode 100644 civicrm/Civi/Api4/Service/Spec/Provider/PaymentProcessorTypeCreationSpecProvider.php
 create mode 100644 civicrm/Civi/Api4/Utils/SelectUtil.php
 create mode 100644 civicrm/Civi/Test/CiviEnvBuilder/CoreSchemaStep.php
 create mode 100644 civicrm/ang/exportui.ang.php
 create mode 100644 civicrm/ang/exportui.css
 create mode 100644 civicrm/ang/exportui/export.html
 create mode 100644 civicrm/ang/exportui/exportField.html
 create mode 100644 civicrm/ang/exportui/exportSaveMapping.html
 create mode 100644 civicrm/ang/exportui/exportui.js
 create mode 100644 civicrm/bower_components/marked/.composer-downloads/marked-5bbf2d6725b29ad8ddb7c3ab47c50930.json
 create mode 100644 civicrm/bower_components/marked/index.js
 create mode 100644 civicrm/bower_components/marked/marked.min.js
 create mode 100644 civicrm/bower_components/marked/rollup.config.esm.js
 create mode 100644 civicrm/bower_components/marked/rollup.config.js
 create mode 100644 civicrm/ext/iatspayments/release-notes/1.7.2.md
 create mode 100644 civicrm/packages/DB/DataObject/Links.php
 delete mode 100644 civicrm/packages/DB/Table.php
 delete mode 100644 civicrm/packages/DB/Table/Base.php
 delete mode 100644 civicrm/packages/DB/Table/Database.php
 delete mode 100644 civicrm/packages/DB/Table/Date.php
 delete mode 100644 civicrm/packages/DB/Table/Generator.php
 delete mode 100644 civicrm/packages/DB/Table/Manager.php
 delete mode 100644 civicrm/packages/DB/Table/Manager/mysql.php
 delete mode 100644 civicrm/packages/DB/Table/Manager/mysqli.php
 delete mode 100644 civicrm/packages/DB/Table/Manager/pgsql.php
 delete mode 100644 civicrm/packages/DB/Table/QuickForm.php
 delete mode 100644 civicrm/packages/DB/Table/Valid.php
 delete mode 100644 civicrm/packages/DB/Table/XML.php
 delete mode 100644 civicrm/packages/System/Command.php
 create mode 100644 civicrm/release-notes/5.23.0.md
 create mode 100644 civicrm/templates/CRM/Activity/Form/Task/PDF.tpl
 create mode 100644 civicrm/templates/CRM/Event/Form/ManageEvent/Location.hlp
 delete mode 100644 civicrm/templates/CRM/Export/Form/table.tpl
 create mode 100644 civicrm/vendor/civicrm/civicrm-setup/plugins/init/Drupal8.civi-setup.php
 create mode 100644 civicrm/vendor/civicrm/civicrm-setup/plugins/installDatabase/FlushDrupal8.civi-setup.php
 create mode 100644 civicrm/vendor/civicrm/civicrm-setup/res/updated-logo.jpg
 create mode 100644 civicrm/vendor/civicrm/civicrm-setup/src/Setup/DrupalUtil.php
 create mode 100644 civicrm/vendor/civicrm/civicrm-setup/src/Setup/PackageUtil.php
 create mode 100644 civicrm/vendor/civicrm/civicrm-setup/src/Setup/SchemaGenerator.php
 create mode 100644 civicrm/vendor/civicrm/civicrm-setup/src/Setup/SmartyUtil.php
 create mode 100644 civicrm/vendor/civicrm/civicrm-setup/src/Setup/Template.php
 delete mode 100644 wp-rest/.editorconfig
 delete mode 100644 wp-rest/Autoloader.php
 delete mode 100644 wp-rest/Civi/Mailing-Hooks.php
 delete mode 100644 wp-rest/Controller/AuthorizeIPN.php
 delete mode 100644 wp-rest/Controller/Base.php
 delete mode 100644 wp-rest/Controller/Cxn.php
 delete mode 100644 wp-rest/Controller/Open.php
 delete mode 100644 wp-rest/Controller/PayPalIPN.php
 delete mode 100644 wp-rest/Controller/PxIPN.php
 delete mode 100644 wp-rest/Controller/Rest.php
 delete mode 100644 wp-rest/Controller/Soap.php
 delete mode 100644 wp-rest/Controller/Url.php
 delete mode 100644 wp-rest/Controller/Widget.php
 delete mode 100644 wp-rest/Endpoint/Endpoint-Interface.php
 delete mode 100644 wp-rest/Plugin.php
 delete mode 100644 wp-rest/README.md

diff --git a/civicrm.php b/civicrm.php
index a29186f54f..08738a0b40 100644
--- a/civicrm.php
+++ b/civicrm.php
@@ -2,10 +2,10 @@
 /*
 Plugin Name: CiviCRM
 Description: CiviCRM - Growing and Sustaining Relationships
-Version: 5.22.1
+Version: 5.23.0
 Author: CiviCRM LLC
 Author URI: https://civicrm.org/
-Plugin URI: https://wiki.civicrm.org/confluence/display/CRMDOC/Installing+CiviCRM+for+WordPress
+Plugin URI: https://docs.civicrm.org/sysadmin/en/latest/install/wordpress/
 License: AGPL3
 Text Domain: civicrm
 Domain Path: /languages
@@ -54,7 +54,7 @@ if ( ! defined( 'ABSPATH' ) ) exit;
 
 
 // Set version here: when it changes, will force JS to reload
-define( 'CIVICRM_PLUGIN_VERSION', '4.7' );
+define( 'CIVICRM_PLUGIN_VERSION', '5.23.0' );
 
 // Store reference to this file
 if (!defined('CIVICRM_PLUGIN_FILE')) {
@@ -121,17 +121,6 @@ if ( file_exists( CIVICRM_SETTINGS_PATH )  ) {
 // Prevent CiviCRM from rendering its own header
 define( 'CIVICRM_UF_HEAD', TRUE );
 
-/**
- * Setting this to 'true' will replace all mailing URLs calls to 'extern/url.php'
- * and 'extern/open.php' with their REST counterpart 'civicrm/v3/url' and 'civicrm/v3/open'.
- *
- * Use for test purposes, may affect mailing
- * performance, see Plugin->replace_tracking_urls() method.
- */
-if ( ! defined( 'CIVICRM_WP_REST_REPLACE_MAILING_TRACKING' ) ) {
-  define( 'CIVICRM_WP_REST_REPLACE_MAILING_TRACKING', false );
-}
-
 
 /**
  * Define CiviCRM_For_WordPress Class.
@@ -523,11 +512,6 @@ class CiviCRM_For_WordPress {
     include_once CIVICRM_PLUGIN_DIR . 'includes/civicrm.basepage.php';
     $this->basepage = new CiviCRM_For_WordPress_Basepage;
 
-    if ( ! class_exists( 'CiviCRM_WP_REST\Autoloader' ) ) {
-      // Include REST API autoloader class
-      require_once( CIVICRM_PLUGIN_DIR . 'wp-rest/Autoloader.php' );
-    }
-
   }
 
 
@@ -652,16 +636,6 @@ class CiviCRM_For_WordPress {
     // Register hooks for clean URLs.
     $this->register_hooks_clean_urls();
 
-    if ( ! class_exists( 'CiviCRM_WP_REST\Plugin' ) ) {
-
-      // Set up REST API.
-      CiviCRM_WP_REST\Autoloader::add_source( $source_path = trailingslashit( CIVICRM_PLUGIN_DIR . 'wp-rest' ) );
-
-      // Init REST API.
-      new CiviCRM_WP_REST\Plugin;
-
-    }
-
   }
 
 
diff --git a/civicrm/CONTRIBUTORS.txt b/civicrm/CONTRIBUTORS.txt
index f0e5eb2e95..5d5e9b2a9c 100644
--- a/civicrm/CONTRIBUTORS.txt
+++ b/civicrm/CONTRIBUTORS.txt
@@ -12,7 +12,7 @@ Alexy Mikhailichenko
 Andrei Mondoc
 Andrew Thompson
 Armadillo Sec Ltd - Daniel Compton
-Australian Greens - Andrew Cormick-Dockery, Seamus Lee
+Australian Greens - Andrew Cormick-Dockery
 Bastien Ho
 Blackfly Solutions - Alan Dixon
 Business & Code - Alain Benbassat
@@ -46,12 +46,13 @@ Fuzion - Jitendra Purohit, Luke Stewart
 Hossein Amin
 Giant Rabbit - Peter Haight
 Giovanni Dalmas
+GMVCO Databases - Craig Almond, Jade Gaunt
 Greenpeace Central and Eastern Europe - Patrick Figel
 Guillaume Rischard
 iXiam - César Ramos, Luciano Spiegel, Vangelis Pantazis
 Jamie Tillman
 Jens Schuppe
-JMA Consulting - Edsel Lopez, Joe Murray, Monish Deb
+JMA Consulting - Edsel Lopez, Joe Murray, Monish Deb, Seamus Lee
 Johan Vervloet
 John Kingsnorth
 John Kyle Cronan
diff --git a/civicrm/CRM/ACL/BAO/ACL.php b/civicrm/CRM/ACL/BAO/ACL.php
index cee8e8869a..29b1231940 100644
--- a/civicrm/CRM/ACL/BAO/ACL.php
+++ b/civicrm/CRM/ACL/BAO/ACL.php
@@ -34,6 +34,7 @@ class CRM_ACL_BAO_ACL extends CRM_ACL_DAO_ACL {
    * @return array|null
    */
   public static function entityTable() {
+    CRM_Core_Error::deprecatedFunctionWarning('unused function to be removed');
     if (!self::$_entityTable) {
       self::$_entityTable = [
         'civicrm_contact' => ts('Contact'),
@@ -47,6 +48,7 @@ class CRM_ACL_BAO_ACL extends CRM_ACL_DAO_ACL {
    * @return array|null
    */
   public static function objectTable() {
+    CRM_Core_Error::deprecatedFunctionWarning('unused function to be removed');
     if (!self::$_objectTable) {
       self::$_objectTable = [
         'civicrm_contact' => ts('Contact'),
@@ -59,7 +61,9 @@ class CRM_ACL_BAO_ACL extends CRM_ACL_DAO_ACL {
   }
 
   /**
-   * @return array|null
+   * Available operations for  pseudoconstant.
+   *
+   * @return array
    */
   public static function operation() {
     if (!self::$_operation) {
@@ -92,6 +96,7 @@ class CRM_ACL_BAO_ACL extends CRM_ACL_DAO_ACL {
    * @throws \CRM_Core_Exception
    */
   public static function getClause($table, $id, &$tables) {
+    CRM_Core_Error::deprecatedFunctionWarning('unused function to be removed');
     $table = CRM_Utils_Type::escape($table, 'String');
     $id = CRM_Utils_Type::escape($id, 'Integer');
     $whereTables = [];
@@ -150,7 +155,7 @@ class CRM_ACL_BAO_ACL extends CRM_ACL_DAO_ACL {
    *
    * @throws \CRM_Core_Exception
    */
-  public static function getACLs($contact_id = NULL) {
+  protected static function getACLs($contact_id = NULL) {
     $results = [];
 
     if (empty($contact_id)) {
@@ -163,8 +168,6 @@ class CRM_ACL_BAO_ACL extends CRM_ACL_DAO_ACL {
 
     $acl = self::getTableName();
     $contact = CRM_Contact_BAO_Contact::getTableName();
-    $c2g = CRM_Contact_BAO_GroupContact::getTableName();
-    $group = CRM_Contact_BAO_Group::getTableName();
 
     $query = " SELECT acl.*
      FROM $acl acl";
@@ -196,34 +199,23 @@ class CRM_ACL_BAO_ACL extends CRM_ACL_DAO_ACL {
    *
    * @throws \CRM_Core_Exception
    */
-  public static function getACLRoles($contact_id = NULL) {
+  protected static function getACLRoles($contact_id = NULL) {
     $contact_id = CRM_Utils_Type::escape($contact_id, 'Integer');
 
     $rule = new CRM_ACL_BAO_ACL();
 
-    $acl = self::getTableName();
-    $aclRole = 'civicrm_acl_role';
-    $aclRoleJoin = CRM_ACL_DAO_EntityRole::getTableName();
     $contact = CRM_Contact_BAO_Contact::getTableName();
 
-    $query = "   SELECT          acl.*
-                        FROM            $acl acl
-                        INNER JOIN      civicrm_option_group og
-                                ON      og.name = 'acl_role'
-                        INNER JOIN      civicrm_option_value ov
-                                ON      acl.entity_table   = '$aclRole'
-                                AND     ov.option_group_id  = og.id
-                                AND     acl.entity_id      = ov.value";
+    $query = 'SELECT acl.* FROM civicrm_acl acl';
+    $where = ['acl.entity_table = "civicrm_acl_role" AND acl.entity_id IN (' . implode(',', array_keys(CRM_Core_OptionGroup::values('acl_role'))) . ')'];
 
     if (!empty($contact_id)) {
-      $query .= " WHERE   acl.entity_table  = '$contact'
-                              AND acl.is_active     = 1
-                              AND acl.entity_id     = $contact_id";
+      $where[] = " acl.entity_table  = '$contact' AND acl.is_active = 1 AND acl.entity_id = $contact_id";
     }
 
     $results = [];
 
-    $rule->query($query);
+    $rule->query($query . ' WHERE ' . implode(' AND ', $where));
 
     while ($rule->fetch()) {
       $results[$rule->id] = $rule->toArray();
@@ -244,7 +236,7 @@ class CRM_ACL_BAO_ACL extends CRM_ACL_DAO_ACL {
    *   Assoc array of ACL rules
    * @throws \CRM_Core_Exception
    */
-  public static function getGroupACLs($contact_id, $aclRoles = FALSE) {
+  protected static function getGroupACLs($contact_id, $aclRoles = FALSE) {
     $contact_id = CRM_Utils_Type::escape($contact_id, 'Integer');
 
     $rule = new CRM_ACL_BAO_ACL();
@@ -289,7 +281,7 @@ SELECT      acl.*
    *   Array of assoc. arrays of ACL rules
    * @throws \CRM_Core_Exception
    */
-  public static function getGroupACLRoles($contact_id) {
+  protected static function getGroupACLRoles($contact_id) {
     $contact_id = CRM_Utils_Type::escape($contact_id, 'Integer');
 
     $rule = new CRM_ACL_BAO_ACL();
@@ -299,7 +291,6 @@ SELECT      acl.*
 
     $aclER = CRM_ACL_DAO_EntityRole::getTableName();
     $c2g = CRM_Contact_BAO_GroupContact::getTableName();
-    $group = CRM_Contact_BAO_Group::getTableName();
 
     $query = "   SELECT          acl.*
                         FROM            $acl acl
@@ -643,7 +634,7 @@ ORDER BY a.object_id
    *
    * @return bool
    */
-  public static function matchType($type, $operation) {
+  protected static function matchType($type, $operation) {
     $typeCheck = FALSE;
     switch ($operation) {
       case 'All':
diff --git a/civicrm/CRM/ACL/Form/ACL.php b/civicrm/CRM/ACL/Form/ACL.php
index 2ffa52e376..de1665dcd4 100644
--- a/civicrm/CRM/ACL/Form/ACL.php
+++ b/civicrm/CRM/ACL/Form/ACL.php
@@ -94,8 +94,6 @@ class CRM_ACL_Form_ACL extends CRM_Admin_Form {
       return;
     }
 
-    $attributes = CRM_Core_DAO::getAttribute('CRM_ACL_DAO_ACL');
-
     $this->add('text', 'name', ts('Description'), CRM_Core_DAO::getAttribute('CRM_ACL_DAO_ACL', 'name'), TRUE);
 
     $operations = ['' => ts('- select -')] + CRM_ACL_BAO_ACL::operation();
diff --git a/civicrm/CRM/ACL/Form/WordPress/Permissions.php b/civicrm/CRM/ACL/Form/WordPress/Permissions.php
index f0a449d245..4c5f133006 100644
--- a/civicrm/CRM/ACL/Form/WordPress/Permissions.php
+++ b/civicrm/CRM/ACL/Form/WordPress/Permissions.php
@@ -38,7 +38,7 @@ class CRM_ACL_Form_WordPress_Permissions extends CRM_Core_Form {
     }
     foreach ($wp_roles->role_names as $role => $name) {
       // Don't show the permissions options for administrator, as they have all permissions
-      if ( is_multisite() OR $role !== 'administrator') {
+      if ($role !== 'administrator') {
         $roleObj = $wp_roles->get_role($role);
         if (!empty($roleObj->capabilities)) {
           foreach ($roleObj->capabilities as $ckey => $cname) {
@@ -194,7 +194,6 @@ class CRM_ACL_Form_WordPress_Permissions extends CRM_Core_Form {
    *   civicrm permissions
    */
   public static function getPermissionArray($descriptions = FALSE) {
-    global $civicrm_root;
 
     $permissions = CRM_Core_Permission::basicPermissions(FALSE, $descriptions);
 
diff --git a/civicrm/CRM/Activity/BAO/Activity.php b/civicrm/CRM/Activity/BAO/Activity.php
index a42019a405..1f0e7a4fe8 100644
--- a/civicrm/CRM/Activity/BAO/Activity.php
+++ b/civicrm/CRM/Activity/BAO/Activity.php
@@ -804,7 +804,10 @@ class CRM_Activity_BAO_Activity extends CRM_Activity_DAO_Activity {
 
           // fetch case subject for case ID found
           if (!empty($activity['case_id'])) {
-            $activities[$id]['case_subject'] = CRM_Core_DAO::executeQuery('CRM_Case_DAO_Case', $activity['case_id'], 'subject');
+            $activities[$id]['case_subject'] = civicrm_api3('Case', 'getvalue', [
+              'return' => 'subject',
+              'id' => reset($activity['case_id']),
+            ]);
           }
         }
         else {
@@ -979,12 +982,13 @@ class CRM_Activity_BAO_Activity extends CRM_Activity_DAO_Activity {
    * @param string $additionalDetails
    * @param int $campaignID
    * @param array $attachments
+   * @param int $caseID
    *
    * @return int
    *   The created activity ID
    * @throws \CRM_Core_Exception
    */
-  public static function createEmailActivity($userID, $subject, $html, $text, $additionalDetails, $campaignID, $attachments) {
+  public static function createEmailActivity($userID, $subject, $html, $text, $additionalDetails, $campaignID, $attachments, $caseID) {
     $activityTypeID = CRM_Core_PseudoConstant::getKey('CRM_Activity_BAO_Activity', 'activity_type_id', 'Email');
 
     // CRM-6265: save both text and HTML parts in details (if present)
@@ -1006,6 +1010,9 @@ class CRM_Activity_BAO_Activity extends CRM_Activity_DAO_Activity {
       'status_id' => CRM_Core_PseudoConstant::getKey('CRM_Activity_BAO_Activity', 'status_id', 'Completed'),
       'campaign_id' => $campaignID,
     ];
+    if (!empty($caseID)) {
+      $activityParams['case_id'] = $caseID;
+    }
 
     // CRM-5916: strip [case #…] before saving the activity (if present in subject)
     $activityParams['subject'] = preg_replace('/\[case #([0-9a-h]{7})\] /', '', $activityParams['subject']);
@@ -1016,9 +1023,8 @@ class CRM_Activity_BAO_Activity extends CRM_Activity_DAO_Activity {
       $activityParams = array_merge($activityParams, $attachments);
     }
 
-    $activity = self::create($activityParams);
-
-    return $activity->id;
+    $activity = civicrm_api3('Activity', 'create', $activityParams);
+    return $activity['id'];
   }
 
   /**
@@ -1049,6 +1055,7 @@ class CRM_Activity_BAO_Activity extends CRM_Activity_DAO_Activity {
    *   The additional information of CC and BCC appended to the activity Details.
    * @param array $contributionIds
    * @param int $campaignId
+   * @param int $caseId
    *
    * @return array
    *   ( sent, activityId) if any email is sent and activityId
@@ -1069,7 +1076,8 @@ class CRM_Activity_BAO_Activity extends CRM_Activity_DAO_Activity {
     $contactIds = NULL,
     $additionalDetails = NULL,
     $contributionIds = NULL,
-    $campaignId = NULL
+    $campaignId = NULL,
+    $caseId = NULL
   ) {
     // get the contact details of logged in contact, which we set as from email
     if ($userID == NULL) {
@@ -1097,7 +1105,7 @@ class CRM_Activity_BAO_Activity extends CRM_Activity_DAO_Activity {
     }
 
     //create the meta level record first ( email activity )
-    $activityID = self::createEmailActivity($userID, $subject, $html, $text, $additionalDetails, $campaignId, $attachments);
+    $activityID = self::createEmailActivity($userID, $subject, $html, $text, $additionalDetails, $campaignId, $attachments, $caseId);
 
     $returnProperties = [];
     if (isset($messageToken['contact'])) {
@@ -1188,6 +1196,12 @@ class CRM_Activity_BAO_Activity extends CRM_Activity_DAO_Activity {
         $tokenHtml = NULL;
       }
 
+      if ($caseId) {
+        $tokenSubject = CRM_Utils_Token::replaceCaseTokens($caseId, $tokenSubject, $subjectToken, $escapeSmarty);
+        $tokenText = CRM_Utils_Token::replaceCaseTokens($caseId, $tokenText, $messageToken, $escapeSmarty);
+        $tokenHtml = CRM_Utils_Token::replaceCaseTokens($caseId, $tokenHtml, $messageToken, $escapeSmarty);
+      }
+
       if (defined('CIVICRM_MAIL_SMARTY') && CIVICRM_MAIL_SMARTY) {
         // also add the contact tokens to the template
         $smarty->assign_by_ref('contact', $values);
diff --git a/civicrm/CRM/Activity/Form/Activity.php b/civicrm/CRM/Activity/Form/Activity.php
index 889901a566..a3d6f4a5d6 100644
--- a/civicrm/CRM/Activity/Form/Activity.php
+++ b/civicrm/CRM/Activity/Form/Activity.php
@@ -42,7 +42,10 @@ class CRM_Activity_Form_Activity extends CRM_Contact_Form_Task {
   public $_activityTypeId;
 
   /**
-   * The name of activity type.
+   * The label of the activity type.
+   * Unfortunately this variable is called Name but don't want to change it
+   * since it's public and might be commonly used in customized code. See also
+   * activityTypeNameAndLabel used in the smarty template.
    *
    * @var string
    */
diff --git a/civicrm/CRM/Activity/Form/ActivityView.php b/civicrm/CRM/Activity/Form/ActivityView.php
index 422e30eef3..3ef07b7aa1 100644
--- a/civicrm/CRM/Activity/Form/ActivityView.php
+++ b/civicrm/CRM/Activity/Form/ActivityView.php
@@ -95,13 +95,13 @@ class CRM_Activity_Form_ActivityView extends CRM_Core_Form {
     $values['attachment'] = CRM_Core_BAO_File::attachmentInfo('civicrm_activity', $activityId);
     $this->assign('values', $values);
 
-    $url = CRM_Utils_System::url(implode("/", $this->urlPath), "reset=1&id={$activityId}&action=view&cid={$values['source_contact_id']}");
-    CRM_Utils_Recent::add($this->_values['subject'],
+    $url = CRM_Utils_System::url(implode("/", $this->urlPath), "reset=1&id={$activityId}&action=view&cid={$defaults['source_contact_id']}");
+    CRM_Utils_Recent::add($defaults['subject'],
       $url,
-      $values['id'],
+      $activityId,
       'Activity',
-      $values['source_contact_id'],
-      $values['source_contact']
+      $defaults['source_contact_id'],
+      $defaults['source_contact']
     );
   }
 
diff --git a/civicrm/CRM/Activity/Form/Search.php b/civicrm/CRM/Activity/Form/Search.php
index 57a35aef82..06dab35143 100644
--- a/civicrm/CRM/Activity/Form/Search.php
+++ b/civicrm/CRM/Activity/Form/Search.php
@@ -71,7 +71,6 @@ class CRM_Activity_Form_Search extends CRM_Core_Form_Search {
     $this->set('searchFormName', 'Search');
 
     // set the button names
-    $this->_searchButtonName = $this->getButtonName('refresh');
     $this->_actionButtonName = $this->getButtonName('next', 'action');
 
     $this->_done = FALSE;
diff --git a/civicrm/CRM/Activity/Form/Task/PDF.php b/civicrm/CRM/Activity/Form/Task/PDF.php
new file mode 100644
index 0000000000..1e21a8701e
--- /dev/null
+++ b/civicrm/CRM/Activity/Form/Task/PDF.php
@@ -0,0 +1,62 @@
+<?php
+/*
+ +--------------------------------------------------------------------+
+ | Copyright CiviCRM LLC. All rights reserved.                        |
+ |                                                                    |
+ | This work is published under the GNU AGPLv3 license with some      |
+ | permitted exceptions and without any warranty. For full license    |
+ | and copyright information, see https://civicrm.org/licensing       |
+ +--------------------------------------------------------------------+
+ */
+
+/**
+ * This class provides the functionality to create PDF/Word letters for activities.
+ */
+class CRM_Activity_Form_Task_PDF extends CRM_Activity_Form_Task {
+
+  /**
+   * Build all the data structures needed to build the form.
+   */
+  public function preProcess() {
+    parent::preProcess();
+    CRM_Activity_Form_Task_PDFLetterCommon::preProcess($this);
+  }
+
+  /**
+   * Set defaults for the pdf.
+   *
+   * @return array
+   */
+  public function setDefaultValues() {
+    return CRM_Activity_Form_Task_PDFLetterCommon::setDefaultValues();
+  }
+
+  /**
+   * Build the form object.
+   */
+  public function buildQuickForm() {
+    CRM_Activity_Form_Task_PDFLetterCommon::buildQuickForm($this);
+    // Remove types other than pdf as they are not working (have never worked) and don't want fix
+    // for them to block pdf.
+    // @todo debug & fix....
+    $this->add('select', 'document_type', ts('Document Type'), ['pdf' => ts('Portable Document Format (.pdf)')]);
+
+  }
+
+  /**
+   * Process the form after the input has been submitted and validated.
+   */
+  public function postProcess() {
+    CRM_Activity_Form_Task_PDFLetterCommon::postProcess($this);
+  }
+
+  /**
+   * List available tokens for this form.
+   *
+   * @return array
+   */
+  public function listTokens() {
+    return CRM_Activity_Form_Task_PDFLetterCommon::listTokens();
+  }
+
+}
diff --git a/civicrm/CRM/Activity/Form/Task/PDFLetterCommon.php b/civicrm/CRM/Activity/Form/Task/PDFLetterCommon.php
new file mode 100644
index 0000000000..28cbe8dde9
--- /dev/null
+++ b/civicrm/CRM/Activity/Form/Task/PDFLetterCommon.php
@@ -0,0 +1,74 @@
+<?php
+/*
+ +--------------------------------------------------------------------+
+ | Copyright CiviCRM LLC. All rights reserved.                        |
+ |                                                                    |
+ | This work is published under the GNU AGPLv3 license with some      |
+ | permitted exceptions and without any warranty. For full license    |
+ | and copyright information, see https://civicrm.org/licensing       |
+ +--------------------------------------------------------------------+
+ */
+
+use Civi\Token\TokenProcessor;
+
+/**
+ * This class provides the common functionality for creating PDF letter for
+ * activities.
+ *
+ */
+class CRM_Activity_Form_Task_PDFLetterCommon extends CRM_Core_Form_Task_PDFLetterCommon {
+
+  /**
+   * Process the form after the input has been submitted and validated.
+   *
+   * @param CRM_Core_Form $form
+   * @param $activityIds
+   *
+   * @return void
+   */
+  public static function postProcess(&$form) {
+    $activityIds = $form->_activityHolderIds;
+    $formValues = $form->controller->exportValues($form->getName());
+    $html_message = self::processTemplate($formValues);
+
+    // Do the rest in another function to make testing easier
+    self::createDocument($activityIds, $html_message, $formValues);
+
+    $form->postProcessHook();
+
+    CRM_Utils_System::civiExit(1);
+  }
+
+  /**
+   * Produce the document from the activities
+   * This uses the new token processor
+   *
+   * @param  array $activityIds  array of activity ids
+   * @param  string $html_message message text with tokens
+   * @param  array $formValues   formValues from the form
+   * @return void
+   */
+  public static function createDocument($activityIds, $html_message, $formValues) {
+    $tp = self::createTokenProcessor();
+    $tp->addMessage('body_html', $html_message, 'text/html');
+
+    foreach ($activityIds as $activityId) {
+      $tp->addRow()->context('activityId', $activityId);
+    }
+    $tp->evaluate();
+
+    return self::renderFromRows($tp->getRows(), 'body_html', $formValues);
+  }
+
+  /**
+   * Create a token processor
+   */
+  public static function createTokenProcessor() {
+    return new TokenProcessor(\Civi::dispatcher(), array(
+      'controller' => get_class(),
+      'smarty' => FALSE,
+      'schema' => ['activityId'],
+    ));
+  }
+
+}
diff --git a/civicrm/CRM/Activity/Task.php b/civicrm/CRM/Activity/Task.php
index a65f8170dc..d93519d8bd 100644
--- a/civicrm/CRM/Activity/Task.php
+++ b/civicrm/CRM/Activity/Task.php
@@ -68,6 +68,11 @@ class CRM_Activity_Task extends CRM_Core_Task {
           ],
           'result' => FALSE,
         ],
+        self::PDF_LETTER => [
+          'title' => ts('Print/merge Document'),
+          'class' => 'CRM_Activity_Form_Task_PDF',
+          'result' => FALSE,
+        ],
         self::TASK_SMS => [
           'title' => ts('SMS - send reply'),
           'class' => 'CRM_Activity_Form_Task_SMS',
diff --git a/civicrm/CRM/Activity/Tokens.php b/civicrm/CRM/Activity/Tokens.php
index 21f6300f60..825c120c98 100644
--- a/civicrm/CRM/Activity/Tokens.php
+++ b/civicrm/CRM/Activity/Tokens.php
@@ -20,15 +20,33 @@
  *
  * Generate "activity.*" tokens.
  *
- * This TokenSubscriber was produced by refactoring the code from the
+ * This TokenSubscriber was originally produced by refactoring the code from the
  * scheduled-reminder system with the goal of making that system
  * more flexible. The current implementation is still coupled to
  * scheduled-reminders. It would be good to figure out a more generic
  * implementation which is not tied to scheduled reminders, although
  * that is outside the current scope.
+ *
+ * This has been enhanced to work with PDF/letter merge
  */
 class CRM_Activity_Tokens extends \Civi\Token\AbstractTokenSubscriber {
 
+  private $basicTokens;
+  private $customFieldTokens;
+
+  /**
+   * Mapping from tokenName to api return field
+   * Use lists since we might need multiple fields
+   *
+   * @var array
+   */
+  private static $fieldMapping = [
+    'activity_id' => ['id'],
+    'activity_type' => ['activity_type_id'],
+    'status' => ['status_id'],
+    'campaign' => ['campaign_id'],
+  ];
+
   /**
    * CRM_Activity_Tokens constructor.
    */
@@ -43,9 +61,34 @@ class CRM_Activity_Tokens extends \Civi\Token\AbstractTokenSubscriber {
    * @inheritDoc
    */
   public function checkActive(\Civi\Token\TokenProcessor $processor) {
-    // Extracted from scheduled-reminders code. See the class description.
-    return !empty($processor->context['actionMapping'])
-      && $processor->context['actionMapping']->getEntity() === 'civicrm_activity';
+    return in_array('activityId', $processor->context['schema']) ||
+      (!empty($processor->context['actionMapping'])
+      && $processor->context['actionMapping']->getEntity() === 'civicrm_activity');
+  }
+
+  /**
+   * @inheritDoc
+   */
+  public function getActiveTokens(\Civi\Token\Event\TokenValueEvent $e) {
+    $messageTokens = $e->getTokenProcessor()->getMessageTokens();
+    if (!isset($messageTokens[$this->entity])) {
+      return NULL;
+    }
+
+    $activeTokens = [];
+    // if message token contains '_\d+_', then treat as '_N_'
+    foreach ($messageTokens[$this->entity] as $msgToken) {
+      if (array_key_exists($msgToken, $this->tokenNames)) {
+        $activeTokens[] = $msgToken;
+      }
+      else {
+        $altToken = preg_replace('/_\d+_/', '_N_', $msgToken);
+        if (array_key_exists($altToken, $this->tokenNames)) {
+          $activeTokens[] = $msgToken;
+        }
+      }
+    }
+    return array_unique($activeTokens);
   }
 
   /**
@@ -60,39 +103,114 @@ class CRM_Activity_Tokens extends \Civi\Token\AbstractTokenSubscriber {
     // Multiple revisions of the activity.
     // Q: Could we simplify & move the extra AND clauses into `where(...)`?
     $e->query->param('casEntityJoinExpr', 'e.id = reminder.entity_id AND e.is_current_revision = 1 AND e.is_deleted = 0');
+  }
+
+  /**
+   * Find the fields that we need to get to construct the tokens requested.
+   * @param  array $tokens list of tokens
+   * @return array         list of fields needed to generate those tokens
+   */
+  public function getReturnFields($tokens) {
+    // Make sure we always return something
+    $fields = ['id'];
+
+    foreach (array_intersect($tokens,
+      array_merge(array_keys(self::getBasicTokens()), array_keys(self::getCustomFieldTokens()))
+      ) as $token) {
+      if (isset(self::$fieldMapping[$token])) {
+        $fields = array_merge($fields, self::$fieldMapping[$token]);
+      }
+      else {
+        $fields[] = $token;
+      }
+    }
+    return array_unique($fields);
+  }
 
-    // FIXME: seems too broad.
-    $e->query->select('e.*');
-    $e->query->select('ov.label as activity_type, e.id as activity_id');
+  /**
+   * @inheritDoc
+   */
+  public function prefetch(\Civi\Token\Event\TokenValueEvent $e) {
+    // Find all the activity IDs
+    $activityIds
+      = $e->getTokenProcessor()->getContextValues('actionSearchResult', 'entityID')
+      + $e->getTokenProcessor()->getContextValues('activityId');
+
+    if (!$activityIds) {
+      return;
+    }
 
-    $e->query->join("og", "!casMailingJoinType civicrm_option_group og ON og.name = 'activity_type'");
-    $e->query->join("ov", "!casMailingJoinType civicrm_option_value ov ON e.activity_type_id = ov.value AND ov.option_group_id = og.id");
+    // Get data on all activities for basic and customfield tokens
+    $activities = civicrm_api3('Activity', 'get', [
+      'id' => ['IN' => $activityIds],
+      'options' => ['limit' => 0],
+      'return' => self::getReturnFields($this->activeTokens),
+    ]);
+    $prefetch['activity'] = $activities['values'];
 
-    // if CiviCase component is enabled, join for caseId.
-    $compInfo = CRM_Core_Component::getEnabledComponents();
-    if (array_key_exists('CiviCase', $compInfo)) {
-      $e->query->select("civicrm_case_activity.case_id as case_id");
-      $e->query->join('civicrm_case_activity', "LEFT JOIN `civicrm_case_activity` ON `e`.`id` = `civicrm_case_activity`.`activity_id`");
+    // Store the activity types if needed
+    if (in_array('activity_type', $this->activeTokens)) {
+      $this->activityTypes = \CRM_Core_OptionGroup::values('activity_type');
     }
+
+    // Store the activity statuses if needed
+    if (in_array('status', $this->activeTokens)) {
+      $this->activityStatuses = \CRM_Core_OptionGroup::values('activity_status');
+    }
+
+    // Store the campaigns if needed
+    if (in_array('campaign', $this->activeTokens)) {
+      $this->campaigns = \CRM_Campaign_BAO_Campaign::getCampaigns();
+    }
+
+    return $prefetch;
   }
 
   /**
    * @inheritDoc
    */
   public function evaluateToken(\Civi\Token\TokenRow $row, $entity, $field, $prefetch = NULL) {
-    $actionSearchResult = $row->context['actionSearchResult'];
+    // maps token name to api field
+    $mapping = [
+      'activity_id' => 'id',
+    ];
+
+    // Get ActivityID either from actionSearchResult (for scheduled reminders) if exists
+    $activityId = isset($row->context['actionSearchResult']->entityID)
+      ? $row->context['actionSearchResult']->entityID
+      : $row->context['activityId'];
+
+    $activity = (object) $prefetch['activity'][$activityId];
 
-    if (in_array($field, array('activity_date_time'))) {
-      $row->tokens($entity, $field, \CRM_Utils_Date::customFormat($actionSearchResult->$field));
+    if (in_array($field, ['activity_date_time', 'created_date'])) {
+      $row->tokens($entity, $field, \CRM_Utils_Date::customFormat($activity->$field));
+    }
+    elseif (isset($mapping[$field]) and (isset($activity->{$mapping[$field]}))) {
+      $row->tokens($entity, $field, $activity->{$mapping[$field]});
+    }
+    elseif (in_array($field, ['activity_type'])) {
+      $row->tokens($entity, $field, $this->activityTypes[$activity->activity_type_id]);
     }
-    elseif (isset($actionSearchResult->$field)) {
-      $row->tokens($entity, $field, $actionSearchResult->$field);
+    elseif (in_array($field, ['status'])) {
+      $row->tokens($entity, $field, $this->activityStatuses[$activity->status_id]);
     }
-    elseif ($cfID = \CRM_Core_BAO_CustomField::getKeyID($field)) {
-      $row->customToken($entity, $cfID, $actionSearchResult->entity_id);
+    elseif (in_array($field, ['campaign'])) {
+      $row->tokens($entity, $field, $this->campaigns[$activity->campaign_id]);
     }
-    else {
-      $row->tokens($entity, $field, '');
+    elseif (in_array($field, ['case_id'])) {
+      // An activity can be linked to multiple cases so case_id is always an array.
+      // We just return the first case ID for the token.
+      $row->tokens($entity, $field, is_array($activity->case_id) ? reset($activity->case_id) : $activity->case_id);
+    }
+    elseif (array_key_exists($field, $this->customFieldTokens)) {
+      $row->tokens($entity, $field,
+        isset($activity->$field)
+          ? \CRM_Core_BAO_CustomField::displayValue($activity->$field, $field)
+          : ''
+      );
+    }
+    elseif (isset($activity->$field)) {
+      $row->tokens($entity, $field, $activity->$field);
     }
   }
 
@@ -102,13 +220,27 @@ class CRM_Activity_Tokens extends \Civi\Token\AbstractTokenSubscriber {
    * @return array token name => token label
    */
   protected function getBasicTokens() {
-    return [
-      'activity_id' => ts('Activity ID'),
-      'activity_type' => ts('Activity Type'),
-      'subject' => ts('Activity Subject'),
-      'details' => ts('Activity Details'),
-      'activity_date_time' => ts('Activity Date-Time'),
-    ];
+    if (!isset($this->basicTokens)) {
+      $this->basicTokens = [
+        'activity_id' => ts('Activity ID'),
+        'activity_type' => ts('Activity Type'),
+        'subject' => ts('Activity Subject'),
+        'details' => ts('Activity Details'),
+        'activity_date_time' => ts('Activity Date-Time'),
+        'activity_type_id' => ts('Activity Type ID'),
+        'status' => ts('Activity Status'),
+        'status_id' => ts('Activity Status ID'),
+        'location' => ts('Activity Location'),
+        'created_date' => ts('Activity Creation Date'),
+        'duration' => ts('Activity Duration'),
+        'campaign' => ts('Activity Campaign'),
+        'campaign_id' => ts('Activity Campaign ID'),
+      ];
+      if (array_key_exists('CiviCase', CRM_Core_Component::getEnabledComponents())) {
+        $this->basicTokens['case_id'] = ts('Activity Case ID');
+      }
+    }
+    return $this->basicTokens;
   }
 
   /**
@@ -116,7 +248,10 @@ class CRM_Activity_Tokens extends \Civi\Token\AbstractTokenSubscriber {
    * @return array token name => token label
    */
   protected function getCustomFieldTokens() {
-    return CRM_Utils_Token::getCustomFieldTokens('Activity');
+    if (!isset($this->customFieldTokens)) {
+      $this->customFieldTokens = \CRM_Utils_Token::getCustomFieldTokens('Activity');
+    }
+    return $this->customFieldTokens;
   }
 
 }
diff --git a/civicrm/CRM/Admin/Form/LabelFormats.php b/civicrm/CRM/Admin/Form/LabelFormats.php
index 5e77a66a19..1713fd910b 100644
--- a/civicrm/CRM/Admin/Form/LabelFormats.php
+++ b/civicrm/CRM/Admin/Form/LabelFormats.php
@@ -155,6 +155,7 @@ class CRM_Admin_Form_LabelFormats extends CRM_Admin_Form {
   public function setDefaultValues() {
     if ($this->_action & CRM_Core_Action::ADD) {
       $defaults['weight'] = CRM_Utils_Array::value('weight', CRM_Core_BAO_LabelFormat::getDefaultValues($this->_group), 0);
+      $defaults['font_name'] = CRM_Utils_Array::value('font-name', CRM_Core_BAO_LabelFormat::getDefaultValues($this->_group), '');
     }
     else {
       $defaults = $this->_values;
diff --git a/civicrm/CRM/Admin/Form/Preferences.php b/civicrm/CRM/Admin/Form/Preferences.php
index f0dc5c9a36..343df0fdd1 100644
--- a/civicrm/CRM/Admin/Form/Preferences.php
+++ b/civicrm/CRM/Admin/Form/Preferences.php
@@ -26,15 +26,17 @@ class CRM_Admin_Form_Preferences extends CRM_Core_Form {
   protected $_contactID = NULL;
   public $_action = NULL;
 
-  protected $_checkbox = NULL;
-
-  protected $_varNames = [];
-
-  protected $_config = NULL;
-
   protected $_params = NULL;
 
+  /**
+   * Preprocess form.
+   *
+   * @throws \CRM_Core_Exception
+   */
   public function preProcess() {
+    // @todo - it's likely the only 'current' code in this function is the line
+    // $this->addFieldsDefinedInSettingsMetadata(); and this class is no different to CRM_Admin_Form_Setting
+    // in any meaningful way.
     $this->_contactID = CRM_Utils_Request::retrieve('cid', 'Positive',
       $this, FALSE
     );
@@ -44,44 +46,27 @@ class CRM_Admin_Form_Preferences extends CRM_Core_Form {
     $this->_action = CRM_Utils_Request::retrieve('action', 'String',
       $this, FALSE, 'update'
     );
-    if (isset($action)) {
-      $this->assign('action', $action);
-    }
-
-    $session = CRM_Core_Session::singleton();
-
-    $this->_config = new CRM_Core_DAO();
 
     if ($this->_system) {
       if (CRM_Core_Permission::check('administer CiviCRM')) {
         $this->_contactID = NULL;
       }
       else {
-        CRM_Utils_System::fatal('You do not have permission to edit preferences');
+        throw new CRM_Core_Exception('You do not have permission to edit preferences');
       }
-      $this->_config->contact_id = NULL;
     }
     else {
       if (!$this->_contactID) {
-        $this->_contactID = $session->get('userID');
+        $this->_contactID = CRM_Core_Session::getLoggedInContactID();
         if (!$this->_contactID) {
-          CRM_Utils_System::fatal('Could not retrieve contact id');
+          throw new CRM_Core_Exception('Could not retrieve contact id');
         }
         $this->set('cid', $this->_contactID);
       }
-      $this->_config->contact_id = $this->_contactID;
     }
 
     $this->addFieldsDefinedInSettingsMetadata();
-    $settings = Civi::settings();
-    // @todo replace this by defining all in settings.
-    foreach ($this->_varNames as $groupName => $settingNames) {
-      CRM_Core_Error::deprecatedFunctionWarning('deprecated use of preferences form. This will be removed from core soon');
-      foreach ($settingNames as $settingName => $options) {
-        $this->_config->$settingName = $settings->get($settingName);
-      }
-    }
-    $session->pushUserContext(CRM_Utils_System::url('civicrm/admin', 'reset=1'));
+    CRM_Core_Session::singleton()->pushUserContext(CRM_Utils_System::url('civicrm/admin', 'reset=1'));
   }
 
   /**
@@ -89,128 +74,16 @@ class CRM_Admin_Form_Preferences extends CRM_Core_Form {
    */
   public function setDefaultValues() {
     $this->_defaults = [];
-
     $this->setDefaultsForMetadataDefinedFields();
-    foreach ($this->_varNames as $groupName => $settings) {
-      CRM_Core_Error::deprecatedFunctionWarning('deprecated use of preferences form. This will be removed from core soon');
-      foreach ($settings as $settingName => $settingDetails) {
-        $this->_defaults[$settingName] = isset($this->_config->$settingName) ? $this->_config->$settingName : CRM_Utils_Array::value('default', $settingDetails, NULL);
-      }
-    }
-
     return $this->_defaults;
   }
 
-  /**
-   * @todo deprecate in favour of setting using metadata.
-   *
-   * @param $defaults
-   */
-  public function cbsDefaultValues(&$defaults) {
-
-    foreach ($this->_varNames as $groupName => $groupValues) {
-      CRM_Core_Error::deprecatedFunctionWarning('deprecated use of preferences form. This will be removed from core soon');
-      foreach ($groupValues as $settingName => $fieldValue) {
-        if ($fieldValue['html_type'] == 'checkboxes') {
-          if (isset($this->_config->$settingName) &&
-            $this->_config->$settingName
-          ) {
-            $value = explode(CRM_Core_DAO::VALUE_SEPARATOR,
-              substr($this->_config->$settingName, 1, -1)
-            );
-            if (!empty($value)) {
-              $defaults[$settingName] = [];
-              foreach ($value as $n => $v) {
-                $defaults[$settingName][$v] = 1;
-              }
-            }
-          }
-        }
-      }
-    }
-  }
-
   /**
    * Build the form object.
    */
   public function buildQuickForm() {
     parent::buildQuickForm();
 
-    if (!empty($this->_varNames)) {
-      CRM_Core_Error::deprecatedFunctionWarning('deprecated use of preferences form. This will be removed from core soon');
-      foreach ($this->_varNames as $groupName => $groupValues) {
-        $formName = CRM_Utils_String::titleToVar($groupName);
-        $this->assign('formName', $formName);
-        $fields = [];
-        foreach ($groupValues as $fieldName => $fieldValue) {
-          $fields[$fieldName] = $fieldValue;
-
-          switch ($fieldValue['html_type']) {
-            case 'text':
-              $this->addElement('text',
-                $fieldName,
-                $fieldValue['title'],
-                [
-                  'maxlength' => 64,
-                  'size' => 32,
-                ]
-              );
-              break;
-
-            case 'textarea':
-            case 'checkbox':
-              $this->add($fieldValue['html_type'],
-                $fieldName,
-                $fieldValue['title']
-              );
-              break;
-
-            case 'radio':
-              $options = CRM_Core_OptionGroup::values($fieldName, FALSE, FALSE, TRUE);
-              $this->addRadio($fieldName, $fieldValue['title'], $options, NULL, '&nbsp;&nbsp;');
-              break;
-
-            case 'YesNo':
-              $this->addRadio($fieldName, $fieldValue['title'], [0 => 'No', 1 => 'Yes'], NULL, '&nbsp;&nbsp;');
-              break;
-
-            case 'checkboxes':
-              $options = array_flip(CRM_Core_OptionGroup::values($fieldName, FALSE, FALSE, TRUE));
-              $newOptions = [];
-              foreach ($options as $key => $val) {
-                $newOptions[$key] = $val;
-              }
-              $this->addCheckBox($fieldName,
-                $fieldValue['title'],
-                $newOptions,
-                NULL, NULL, NULL, NULL,
-                ['&nbsp;&nbsp;', '&nbsp;&nbsp;', '<br/>']
-              );
-              break;
-
-            case 'select':
-              $this->addElement('select',
-                $fieldName,
-                $fieldValue['title'],
-                $fieldValue['option_values'],
-                CRM_Utils_Array::value('attributes', $fieldValue)
-              );
-              break;
-
-            case 'wysiwyg':
-              $this->add('wysiwyg', $fieldName, $fieldValue['title'], $fieldValue['attributes']);
-              break;
-
-            case 'entity_reference':
-              $this->addEntityRef($fieldName, $fieldValue['title'], CRM_Utils_Array::value('options', $fieldValue, []));
-          }
-        }
-
-        $fields = CRM_Utils_Array::crmArraySortByField($fields, 'weight');
-        $this->assign('fields', $fields);
-      }
-    }
-
     $this->addButtons([
       [
         'type' => 'next',
@@ -232,7 +105,6 @@ class CRM_Admin_Form_Preferences extends CRM_Core_Form {
    * Process the form submission.
    */
   public function postProcess() {
-    $config = CRM_Core_Config::singleton();
     if ($this->_action == CRM_Core_Action::VIEW) {
       return;
     }
@@ -254,52 +126,6 @@ class CRM_Admin_Form_Preferences extends CRM_Core_Form {
       CRM_Core_Session::setStatus($e->getMessage(), ts('Save Failed'), 'error');
     }
 
-    foreach ($this->_varNames as $groupName => $groupValues) {
-      foreach ($groupValues as $settingName => $fieldValue) {
-        switch ($fieldValue['html_type']) {
-          case 'checkboxes':
-            if (!empty($this->_params[$settingName]) &&
-              is_array($this->_params[$settingName])
-            ) {
-              $this->_config->$settingName = CRM_Core_DAO::VALUE_SEPARATOR . implode(CRM_Core_DAO::VALUE_SEPARATOR,
-                  array_keys($this->_params[$settingName])
-                ) . CRM_Core_DAO::VALUE_SEPARATOR;
-            }
-            else {
-              $this->_config->$settingName = NULL;
-            }
-            break;
-
-          case 'checkbox':
-            $this->_config->$settingName = !empty($this->_params[$settingName]) ? 1 : 0;
-            break;
-
-          case 'text':
-          case 'select':
-          case 'radio':
-          case 'YesNo':
-          case 'entity_reference':
-            $this->_config->$settingName = CRM_Utils_Array::value($settingName, $this->_params);
-            break;
-
-          case 'textarea':
-            $value = CRM_Utils_Array::value($settingName, $this->_params);
-            if ($value) {
-              $value = trim($value);
-              $value = str_replace(["\r\n", "\r"], "\n", $value);
-            }
-            $this->_config->$settingName = $value;
-            break;
-        }
-      }
-    }
-
-    foreach ($this->_varNames as $groupName => $groupValues) {
-      foreach ($groupValues as $settingName => $fieldValue) {
-        $settingValue = isset($this->_config->$settingName) ? $this->_config->$settingName : NULL;
-        Civi::settings()->set($settingName, $settingValue);
-      }
-    }
     // Update any settings stored in dynamic js
     CRM_Core_Resources::singleton()->resetCacheCode();
 
diff --git a/civicrm/CRM/Admin/Form/Setting.php b/civicrm/CRM/Admin/Form/Setting.php
index b3982b121a..41585c8213 100644
--- a/civicrm/CRM/Admin/Form/Setting.php
+++ b/civicrm/CRM/Admin/Form/Setting.php
@@ -34,12 +34,6 @@ class CRM_Admin_Form_Setting extends CRM_Core_Form {
   public function setDefaultValues() {
     if (!$this->_defaults) {
       $this->_defaults = [];
-      $formArray = ['Component', 'Localization'];
-      $formMode = FALSE;
-      if (in_array($this->_name, $formArray)) {
-        $formMode = TRUE;
-      }
-
       $this->setDefaultsForMetadataDefinedFields();
 
       // @todo these should be retrievable from the above function.
@@ -54,6 +48,8 @@ class CRM_Admin_Form_Setting extends CRM_Core_Form {
 
   /**
    * Build the form object.
+   *
+   * @throws \CRM_Core_Exception
    */
   public function buildQuickForm() {
     CRM_Core_Session::singleton()->pushUserContext(CRM_Utils_System::url('civicrm/admin', 'reset=1'));
diff --git a/civicrm/CRM/Admin/Form/SettingTrait.php b/civicrm/CRM/Admin/Form/SettingTrait.php
index 6ab89f0ec5..840461009c 100644
--- a/civicrm/CRM/Admin/Form/SettingTrait.php
+++ b/civicrm/CRM/Admin/Form/SettingTrait.php
@@ -151,6 +151,8 @@ trait CRM_Admin_Form_SettingTrait {
 
   /**
    * Add fields in the metadata to the template.
+   *
+   * @throws \CRM_Core_Exception
    */
   protected function addFieldsDefinedInSettingsMetadata() {
     $settingMetaData = $this->getSettingsMetaData();
@@ -178,7 +180,7 @@ trait CRM_Admin_Form_SettingTrait {
         }
 
         $add = 'add' . $quickFormType;
-        if ($add == 'addElement') {
+        if ($add === 'addElement') {
           $this->$add(
             $props['html_type'],
             $setting,
@@ -187,13 +189,13 @@ trait CRM_Admin_Form_SettingTrait {
             ($options !== NULL) ? CRM_Utils_Array::value('html_attributes', $props, []) : NULL
           );
         }
-        elseif ($add == 'addSelect') {
+        elseif ($add === 'addSelect') {
           $this->addElement('select', $setting, $props['title'], $options, CRM_Utils_Array::value('html_attributes', $props));
         }
-        elseif ($add == 'addCheckBox') {
+        elseif ($add === 'addCheckBox') {
           $this->addCheckBox($setting, '', $options, NULL, CRM_Utils_Array::value('html_attributes', $props), NULL, NULL, ['&nbsp;&nbsp;']);
         }
-        elseif ($add == 'addCheckBoxes') {
+        elseif ($add === 'addCheckBoxes') {
           $newOptions = array_flip($options);
           $classes = 'crm-checkbox-list';
           if (!empty($props['sortable'])) {
@@ -208,12 +210,12 @@ trait CRM_Admin_Form_SettingTrait {
             '</li><li>'
           );
         }
-        elseif ($add == 'addChainSelect') {
+        elseif ($add === 'addChainSelect') {
           $this->addChainSelect($setting, [
             'label' => $props['title'],
           ]);
         }
-        elseif ($add == 'addMonthDay') {
+        elseif ($add === 'addMonthDay') {
           $this->add('date', $setting, $props['title'], CRM_Core_SelectValues::date(NULL, 'M d'));
         }
         elseif ($add === 'addEntityRef') {
@@ -232,15 +234,15 @@ trait CRM_Admin_Form_SettingTrait {
         $description = CRM_Utils_Array::value('description', $props);
         $descriptions[$setting] = $description;
         $this->assign("{$setting}_description", $description);
-        if ($setting == 'max_attachments') {
+        if ($setting === 'max_attachments') {
           //temp hack @todo fix to get from metadata
           $this->addRule('max_attachments', ts('Value should be a positive number'), 'positiveInteger');
         }
-        if ($setting == 'max_attachments_backend') {
+        if ($setting === 'max_attachments_backend') {
           //temp hack @todo fix to get from metadata
           $this->addRule('max_attachments_backend', ts('Value should be a positive number'), 'positiveInteger');
         }
-        if ($setting == 'maxFileSize') {
+        if ($setting === 'maxFileSize') {
           //temp hack
           $this->addRule('maxFileSize', ts('Value should be a positive number'), 'positiveInteger');
         }
@@ -293,12 +295,15 @@ trait CRM_Admin_Form_SettingTrait {
    * Get the defaults for all fields defined in the metadata.
    *
    * All others are pending conversion.
+   *
+   * @throws \CiviCRM_API3_Exception
+   * @throws \CRM_Core_Exception
    */
   protected function setDefaultsForMetadataDefinedFields() {
     CRM_Core_BAO_ConfigSetting::retrieve($this->_defaults);
     foreach (array_keys($this->_settings) as $setting) {
       $this->_defaults[$setting] = civicrm_api3('setting', 'getvalue', ['name' => $setting]);
-      $spec = $this->getSettingsMetadata()[$setting];
+      $spec = $this->getSettingsMetaData()[$setting];
       if (!empty($spec['serialize'])) {
         $this->_defaults[$setting] = CRM_Core_DAO::unSerializeField($this->_defaults[$setting], $spec['serialize']);
       }
@@ -355,6 +360,8 @@ trait CRM_Admin_Form_SettingTrait {
    * @param array $settingValue
    *
    * @return array
+   *
+   * @throws \CRM_Core_Exception
    */
   private function getReorderedSettingData($setting, $settingValue) {
     // Get order from $_POST as $_POST maintains the order the sorted setting
diff --git a/civicrm/CRM/Api4/Page/AJAX.php b/civicrm/CRM/Api4/Page/AJAX.php
index 39c8febe29..da37b04682 100644
--- a/civicrm/CRM/Api4/Page/AJAX.php
+++ b/civicrm/CRM/Api4/Page/AJAX.php
@@ -89,8 +89,8 @@ class CRM_Api4_Page_AJAX extends CRM_Core_Page {
       ];
       if (CRM_Core_Permission::check('view debug output')) {
         $response['error_message'] = $e->getMessage();
-        if (\Civi::settings()->get('backtrace')) {
-          $response['backtrace'] = $e->getTrace();
+        if (!empty($params['debug']) && \Civi::settings()->get('backtrace')) {
+          $response['debug']['backtrace'] = $e->getTrace();
         }
       }
     }
diff --git a/civicrm/CRM/Api4/Page/Api4Explorer.php b/civicrm/CRM/Api4/Page/Api4Explorer.php
index ec5718c657..adc1d74326 100644
--- a/civicrm/CRM/Api4/Page/Api4Explorer.php
+++ b/civicrm/CRM/Api4/Page/Api4Explorer.php
@@ -20,16 +20,20 @@
 class CRM_Api4_Page_Api4Explorer extends CRM_Core_Page {
 
   public function run() {
+    $apiDoc = new ReflectionFunction('civicrm_api4');
     $vars = [
       'operators' => \CRM_Core_DAO::acceptedSQLOperators(),
       'basePath' => Civi::resources()->getUrl('civicrm'),
       'schema' => (array) \Civi\Api4\Entity::get()->setChain(['fields' => ['$name', 'getFields']])->execute(),
       'links' => (array) \Civi\Api4\Entity::getLinks()->execute(),
+      'docs' => \Civi\Api4\Utils\ReflectionUtils::parseDocBlock($apiDoc->getDocComment()),
     ];
     Civi::resources()
       ->addVars('api4', $vars)
+      ->addPermissions(['access debug output'])
       ->addScriptFile('civicrm', 'js/load-bootstrap.js')
       ->addScriptFile('civicrm', 'bower_components/js-yaml/dist/js-yaml.min.js')
+      ->addScriptFile('civicrm', 'bower_components/marked/marked.min.js')
       ->addScriptFile('civicrm', 'bower_components/google-code-prettify/bin/prettify.min.js')
       ->addStyleFile('civicrm', 'bower_components/google-code-prettify/bin/prettify.min.css');
 
diff --git a/civicrm/CRM/Badge/Form/Layout.php b/civicrm/CRM/Badge/Form/Layout.php
index 5018dfaf73..25834a1901 100644
--- a/civicrm/CRM/Badge/Form/Layout.php
+++ b/civicrm/CRM/Badge/Form/Layout.php
@@ -34,7 +34,7 @@ class CRM_Badge_Form_Layout extends CRM_Admin_Form {
     $resources = CRM_Core_Resources::singleton();
     $resources->addSetting(
       [
-        'kcfinderPath' => $config->userFrameworkResourceURL . 'packages' . DIRECTORY_SEPARATOR,
+        'kcfinderPath' => CRM_Utils_File::addTrailingSlash(Civi::paths()->getVariable('civicrm.packages', 'url'), '/'),
       ]
     );
     $resources->addScriptFile('civicrm', 'templates/CRM/Badge/Form/Layout.js', 1, 'html-header');
diff --git a/civicrm/CRM/Campaign/Form/Search.php b/civicrm/CRM/Campaign/Form/Search.php
index 0ec2990d54..ca86ffd86b 100644
--- a/civicrm/CRM/Campaign/Form/Search.php
+++ b/civicrm/CRM/Campaign/Form/Search.php
@@ -58,7 +58,6 @@ class CRM_Campaign_Form_Search extends CRM_Core_Form_Search {
     $this->_defaults = array();
 
     //set the button name.
-    $this->_searchButtonName = $this->getButtonName('refresh');
     $this->_printButtonName = $this->getButtonName('next', 'print');
     $this->_actionButtonName = $this->getButtonName('next', 'action');
 
diff --git a/civicrm/CRM/Case/BAO/Case.php b/civicrm/CRM/Case/BAO/Case.php
index 4e1615e9ef..f481c016f0 100644
--- a/civicrm/CRM/Case/BAO/Case.php
+++ b/civicrm/CRM/Case/BAO/Case.php
@@ -1511,7 +1511,7 @@ HERESQL;
           $groupInfo['title'] = $results['title'];
           $params = [['group', '=', $groupInfo['id'], 0, 0]];
           $return = ['contact_id' => 1, 'sort_name' => 1, 'display_name' => 1, 'email' => 1, 'phone' => 1];
-          list($globalContacts) = CRM_Contact_BAO_Query::apiQuery($params, $return, NULL, $sort, $offset, $rowCount, TRUE, $returnOnlyCount);
+          list($globalContacts) = CRM_Contact_BAO_Query::apiQuery($params, $return, NULL, $sort, $offset, $rowCount, TRUE, $returnOnlyCount, FALSE);
 
           if ($returnOnlyCount) {
             return $globalContacts;
diff --git a/civicrm/CRM/Case/BAO/CaseType.php b/civicrm/CRM/Case/BAO/CaseType.php
index deaf69ab82..a65deb470b 100644
--- a/civicrm/CRM/Case/BAO/CaseType.php
+++ b/civicrm/CRM/Case/BAO/CaseType.php
@@ -167,7 +167,7 @@ class CRM_Case_BAO_CaseType extends CRM_Case_DAO_CaseType {
       foreach ($definition['caseRoles'] as $values) {
         $xmlFile .= "<RelationshipType>\n";
         foreach ($values as $key => $value) {
-          $xmlFile .= "<{$key}>" . self::encodeXmlString($value) . "</{$key}>\n";
+          $xmlFile .= "<{$key}>" . ($key == 'groups' ? implode(',', array_map(['\CRM_Case_BAO_CaseType', 'encodeXmlString'], (array) $value)) : self::encodeXmlString($value)) . "</{$key}>\n";
         }
         $xmlFile .= "</RelationshipType>\n";
       }
@@ -180,7 +180,7 @@ class CRM_Case_BAO_CaseType extends CRM_Case_DAO_CaseType {
 
     if (!empty($definition['activityAsgmtGrps'])) {
       $xmlFile .= "<ActivityAsgmtGrps>\n";
-      foreach ($definition['activityAsgmtGrps'] as $value) {
+      foreach ((array) $definition['activityAsgmtGrps'] as $value) {
         $xmlFile .= "<Group>$value</Group>\n";
       }
       $xmlFile .= "</ActivityAsgmtGrps>\n";
@@ -234,6 +234,12 @@ class CRM_Case_BAO_CaseType extends CRM_Case_DAO_CaseType {
 
     if (isset($xml->ActivityAsgmtGrps)) {
       $definition['activityAsgmtGrps'] = (array) $xml->ActivityAsgmtGrps->Group;
+      // Backwards compat - convert group ids to group names if ids are supplied
+      if (array_filter($definition['activityAsgmtGrps'], ['\CRM_Utils_Rule', 'integer']) === $definition['activityAsgmtGrps']) {
+        foreach ($definition['activityAsgmtGrps'] as $idx => $group) {
+          $definition['activityAsgmtGrps'][$idx] = CRM_Core_DAO::getFieldValue('CRM_Contact_BAO_Group', $group);
+        }
+      }
     }
 
     // set activity types
@@ -284,7 +290,11 @@ class CRM_Case_BAO_CaseType extends CRM_Case_DAO_CaseType {
     if (isset($xml->CaseRoles)) {
       $definition['caseRoles'] = [];
       foreach ($xml->CaseRoles->RelationshipType as $caseRoleXml) {
-        $definition['caseRoles'][] = json_decode(json_encode($caseRoleXml), TRUE);
+        $caseRole = json_decode(json_encode($caseRoleXml), TRUE);
+        if (!empty($caseRole['groups'])) {
+          $caseRole['groups'] = explode(',', $caseRole['groups']);
+        }
+        $definition['caseRoles'][] = $caseRole;
       }
     }
 
diff --git a/civicrm/CRM/Case/Form/Activity.php b/civicrm/CRM/Case/Form/Activity.php
index 1eaf0d49a9..219fa7dc05 100644
--- a/civicrm/CRM/Case/Form/Activity.php
+++ b/civicrm/CRM/Case/Form/Activity.php
@@ -447,13 +447,6 @@ class CRM_Case_Form_Activity extends CRM_Activity_Form_Activity {
         }
       }
 
-      // build custom data getFields array
-      $customFields = CRM_Core_BAO_CustomField::getFields('Activity', FALSE, FALSE, $this->_activityTypeId);
-      $customFields = CRM_Utils_Array::crmArrayMerge($customFields,
-        CRM_Core_BAO_CustomField::getFields('Activity', FALSE, FALSE,
-          NULL, NULL, TRUE
-        )
-      );
       $params['custom'] = CRM_Core_BAO_CustomField::postProcess($params,
         $this->_activityId,
         'Activity'
@@ -502,6 +495,9 @@ class CRM_Case_Form_Activity extends CRM_Activity_Form_Activity {
       }
     }
     else {
+      // create a new version of activity if activity was found to
+      // have been modified/created by user
+
       // since the params we need to set are very few, and we don't want rest of the
       // work done by bao create method , lets use dao object to make the changes
       $params = ['id' => $this->_activityId];
@@ -509,11 +505,7 @@ class CRM_Case_Form_Activity extends CRM_Activity_Form_Activity {
       $activity = new CRM_Activity_DAO_Activity();
       $activity->copyValues($params);
       $activity->save();
-    }
 
-    // create a new version of activity if activity was found to
-    // have been modified/created by user
-    if (isset($newActParams)) {
       // set proper original_id
       if (!empty($this->_defaults['original_id'])) {
         $newActParams['original_id'] = $this->_defaults['original_id'];
diff --git a/civicrm/CRM/Case/Form/Case.php b/civicrm/CRM/Case/Form/Case.php
index 0d43ed1912..05e832c744 100644
--- a/civicrm/CRM/Case/Form/Case.php
+++ b/civicrm/CRM/Case/Form/Case.php
@@ -93,20 +93,6 @@ class CRM_Case_Form_Case extends CRM_Core_Form {
     return $this->_caseId;
   }
 
-  /**
-   * Get the entity subtype ID being edited
-   *
-   * @param $subTypeId
-   *
-   * @return int|null
-   */
-  public function getEntitySubTypeId($subTypeId) {
-    if ($subTypeId) {
-      return $subTypeId;
-    }
-    return $this->_caseTypeId;
-  }
-
   /**
    * Build the form object.
    */
diff --git a/civicrm/CRM/Case/Form/CaseView.php b/civicrm/CRM/Case/Form/CaseView.php
index 811b2b68f1..d3dae3609d 100644
--- a/civicrm/CRM/Case/Form/CaseView.php
+++ b/civicrm/CRM/Case/Form/CaseView.php
@@ -168,11 +168,31 @@ class CRM_Case_Form_CaseView extends CRM_Core_Form {
     }
 
     $allowedRelationshipTypes = CRM_Contact_BAO_Relationship::getContactRelationshipType($this->_contactID);
+    $relationshipTypeMetadata = CRM_Contact_Form_Relationship::getRelationshipTypeMetadata($allowedRelationshipTypes);
+
+    $caseTypeDefinition = civicrm_api3('CaseType', 'getsingle', ['name' => $this->_caseType])['definition'];
+
+    foreach ($caseTypeDefinition['caseRoles'] as $role) {
+      if (!empty($role['groups'])) {
+        $relationshipType = civicrm_api3('RelationshipType', 'get', [
+          'sequential' => 1,
+          'name_a_b' => $role['name'],
+          'name_b_a' => $role['name'],
+          'options' => ['limit' => 1, 'or' => [["name_a_b", "name_b_a"]]],
+        ]);
+        if (($relationshipType['values'][0]['name_a_b'] ?? NULL) === $role['name']) {
+          $relationshipTypeMetadata[$relationshipType['id']]['group_a'] = $role['groups'];
+        }
+        if (($relationshipType['values'][0]['name_b_a'] ?? NULL) === $role['name']) {
+          $relationshipTypeMetadata[$relationshipType['id']]['group_b'] = $role['groups'];
+        }
+      }
+    }
 
     CRM_Core_Resources::singleton()
       ->addScriptFile('civicrm', 'js/crm.livePage.js', 1, 'html-header')
       ->addScriptFile('civicrm', 'templates/CRM/Case/Form/CaseView.js', 2, 'html-header')
-      ->addVars('relationshipTypes', CRM_Contact_Form_Relationship::getRelationshipTypeMetadata($allowedRelationshipTypes));
+      ->addVars('relationshipTypes', $relationshipTypeMetadata);
 
     $xmlProcessor = new CRM_Case_XMLProcessor_Process();
     $caseRoles = $xmlProcessor->get($this->_caseType, 'CaseRoles');
diff --git a/civicrm/CRM/Case/Form/Search.php b/civicrm/CRM/Case/Form/Search.php
index e682068121..8d971a851f 100644
--- a/civicrm/CRM/Case/Form/Search.php
+++ b/civicrm/CRM/Case/Form/Search.php
@@ -75,7 +75,6 @@ class CRM_Case_Form_Search extends CRM_Core_Form_Search {
     /**
      * set the button names
      */
-    $this->_searchButtonName = $this->getButtonName('refresh');
     $this->_actionButtonName = $this->getButtonName('next', 'action');
 
     $this->_done = FALSE;
diff --git a/civicrm/CRM/Contact/BAO/Contact.php b/civicrm/CRM/Contact/BAO/Contact.php
index a392f89ac9..4698884396 100644
--- a/civicrm/CRM/Contact/BAO/Contact.php
+++ b/civicrm/CRM/Contact/BAO/Contact.php
@@ -1384,54 +1384,15 @@ WHERE     civicrm_contact.id = " . CRM_Utils_Type::escape($id, 'Integer');
             $withMultiCustomFields
           )
         );
-        //unset the fields, which are not related to their
-        //contact type.
-        $commonValues = [
-          'Individual' => [
-            'household_name',
-            'legal_name',
-            'sic_code',
-            'organization_name',
-          ],
-          'Household' => [
-            'first_name',
-            'middle_name',
-            'last_name',
-            'formal_title',
-            'job_title',
-            'gender_id',
-            'prefix_id',
-            'suffix_id',
-            'birth_date',
-            'organization_name',
-            'legal_name',
-            'legal_identifier',
-            'sic_code',
-            'home_URL',
-            'is_deceased',
-            'deceased_date',
-          ],
-          'Organization' => [
-            'first_name',
-            'middle_name',
-            'last_name',
-            'formal_title',
-            'job_title',
-            'gender_id',
-            'prefix_id',
-            'suffix_id',
-            'birth_date',
-            'household_name',
-            'is_deceased',
-            'deceased_date',
-          ],
-        ];
-        foreach ($commonValues[$contactType] as $value) {
-          unset($fields[$value]);
+        // Unset the fields which are not related to their contact type.
+        foreach (CRM_Contact_DAO_Contact::import() as $name => $value) {
+          if (!empty($value['contactType']) && $value['contactType'] !== $contactType) {
+            unset($fields[$name]);
+          }
         }
       }
       else {
-        foreach (['Individual', 'Household', 'Organization'] as $type) {
+        foreach (CRM_Contact_BAO_ContactType::basicTypes() as $type) {
           $fields = array_merge($fields,
             CRM_Core_BAO_CustomField::getFieldsForImport($type,
               $showAll,
@@ -1604,7 +1565,7 @@ WHERE     civicrm_contact.id = " . CRM_Utils_Type::escape($id, 'Integer');
           );
         }
         else {
-          foreach (['Individual', 'Household', 'Organization'] as $type) {
+          foreach (CRM_Contact_BAO_ContactType::basicTypes() as $type) {
             $fields = array_merge($fields,
               CRM_Core_BAO_CustomField::getFieldsForImport($type, FALSE, FALSE, $search, $checkPermissions, $withMultiRecord)
             );
@@ -2534,11 +2495,14 @@ WHERE      civicrm_openid.openid = %1";
    *
    * @param int $contactID
    *   Contact id.
+   * @param bool $polite
+   *   Whether to only pull an email if it's okay to send to it--that is, if it
+   *   is not on_hold and the contact is not do_not_email.
    *
    * @return string
    *   Email address if present else null
    */
-  public static function getPrimaryEmail($contactID) {
+  public static function getPrimaryEmail($contactID, $polite = FALSE) {
     // fetch the primary email
     $query = "
    SELECT civicrm_email.email as email
@@ -2546,6 +2510,11 @@ WHERE      civicrm_openid.openid = %1";
 LEFT JOIN civicrm_email    ON ( civicrm_contact.id = civicrm_email.contact_id )
     WHERE civicrm_email.is_primary = 1
       AND civicrm_contact.id = %1";
+    if ($polite) {
+      $query .= '
+      AND civicrm_contact.do_not_email = 0
+      AND civicrm_email.on_hold = 0';
+    }
     $p = [1 => [$contactID, 'Integer']];
     $dao = CRM_Core_DAO::executeQuery($query, $p);
 
diff --git a/civicrm/CRM/Contact/BAO/Contact/Utils.php b/civicrm/CRM/Contact/BAO/Contact/Utils.php
index 5f3a499953..ba956c029b 100644
--- a/civicrm/CRM/Contact/BAO/Contact/Utils.php
+++ b/civicrm/CRM/Contact/BAO/Contact/Utils.php
@@ -783,7 +783,7 @@ INNER JOIN civicrm_contact contact_target ON ( contact_target.id = act.contact_i
     // Normal update process will automatically create new address with submitted values
 
     // 1. loop through entire submitted address array
-    $skipFields = ['is_primary', 'location_type_id', 'is_billing', 'master_id', 'update_current_employer'];
+    $skipFields = ['is_primary', 'location_type_id', 'is_billing', 'master_id', 'add_relationship'];
     foreach ($address as & $values) {
       // 2. check if "Use another contact's address" is checked, if not continue
       // Additionally, if master_id is set (address was shared), set master_id to empty value.
@@ -794,8 +794,8 @@ INNER JOIN civicrm_contact contact_target ON ( contact_target.id = act.contact_i
         continue;
       }
 
-      // Set update_current_employer checkbox value
-      $values['update_current_employer'] = !empty($values['update_current_employer']);
+      // Set add_relationship checkbox value
+      $values['add_relationship'] = !empty($values['add_relationship']);
 
       // 3. get the address details for master_id
       $masterAddress = new CRM_Core_BAO_Address();
diff --git a/civicrm/CRM/Contact/BAO/Group.php b/civicrm/CRM/Contact/BAO/Group.php
index 12a024f367..2cad5888bb 100644
--- a/civicrm/CRM/Contact/BAO/Group.php
+++ b/civicrm/CRM/Contact/BAO/Group.php
@@ -334,6 +334,21 @@ class CRM_Contact_BAO_Group extends CRM_Contact_DAO_Group {
       CRM_Utils_Hook::pre('create', 'Group', NULL, $params);
     }
 
+    // If title isn't specified, retrieve it because we use it later, e.g.
+    // for RecentItems. But note we use array_key_exists not isset or empty
+    // since otherwise there would be no way to blank out an existing title.
+    // I'm not sure what the use-case is for that, but you're allowed to do it
+    // currently.
+    if (!empty($params['id']) && !array_key_exists('title', $params)) {
+      try {
+        $groupTitle = CRM_Core_DAO::getFieldValue('CRM_Contact_DAO_Group', $params['id'], 'title', 'id');
+        $params['title'] = $groupTitle;
+      }
+      catch (CRM_Core_Exception $groupTitleException) {
+        // don't set title
+      }
+    }
+
     // dev/core#287 Disable child groups if all parents are disabled.
     if (!empty($params['id'])) {
       $allChildGroupIds = self::getChildGroupIds($params['id']);
@@ -581,7 +596,7 @@ class CRM_Contact_BAO_Group extends CRM_Contact_DAO_Group {
         $groups = CRM_ACL_API::group(CRM_ACL_API::VIEW);
         if (!empty($groups)) {
           $groupList = implode(', ', array_values($groups));
-          $clause = "groups.id IN ( $groupList ) ";
+          $clause = "`groups`.id IN ( $groupList ) ";
         }
         else {
           $clause = '1 = 0';
@@ -811,7 +826,7 @@ class CRM_Contact_BAO_Group extends CRM_Contact_DAO_Group {
       $limit = " LIMIT {$params['offset']}, {$params['rowCount']} ";
     }
 
-    $orderBy = ' ORDER BY groups.title asc';
+    $orderBy = ' ORDER BY `groups`.title asc';
     if (!empty($params['sort'])) {
       $orderBy = ' ORDER BY ' . CRM_Utils_Type::escape($params['sort'], 'String');
 
@@ -828,7 +843,7 @@ class CRM_Contact_BAO_Group extends CRM_Contact_DAO_Group {
     ) {
       $select = ", contact.display_name as org_name, contact.id as org_id";
       $from = " LEFT JOIN civicrm_group_organization gOrg
-                               ON gOrg.group_id = groups.id
+                               ON gOrg.group_id = `groups`.id
                         LEFT JOIN civicrm_contact contact
                                ON contact.id = gOrg.organization_id ";
 
@@ -842,10 +857,10 @@ class CRM_Contact_BAO_Group extends CRM_Contact_DAO_Group {
     }
 
     $query = "
-        SELECT groups.*, createdBy.sort_name as created_by {$select}
-        FROM  civicrm_group groups
+        SELECT `groups`.*, createdBy.sort_name as created_by {$select}
+        FROM  civicrm_group `groups`
         LEFT JOIN civicrm_contact createdBy
-          ON createdBy.id = groups.created_id
+          ON createdBy.id = `groups`.created_id
         {$from}
         WHERE $whereClause {$where}
         {$orderBy}
@@ -1130,12 +1145,12 @@ WHERE  id IN $groupIdString
    */
   public static function getGroupCount(&$params) {
     $whereClause = self::whereClause($params, FALSE);
-    $query = "SELECT COUNT(*) FROM civicrm_group groups";
+    $query = "SELECT COUNT(*) FROM civicrm_group `groups`";
 
     if (!empty($params['created_by'])) {
       $query .= "
 INNER JOIN civicrm_contact createdBy
-       ON createdBy.id = groups.created_id";
+       ON createdBy.id = `groups`.created_id";
     }
     $query .= "
 WHERE {$whereClause}";
@@ -1154,7 +1169,7 @@ WHERE {$whereClause}";
     $values = [];
     $title = CRM_Utils_Array::value('title', $params);
     if ($title) {
-      $clauses[] = "groups.title LIKE %1";
+      $clauses[] = "`groups`.title LIKE %1";
       if (strpos($title, '%') !== FALSE) {
         $params[1] = [$title, 'String', FALSE];
       }
@@ -1167,7 +1182,7 @@ WHERE {$whereClause}";
     if ($groupType) {
       $types = explode(',', $groupType);
       if (!empty($types)) {
-        $clauses[] = 'groups.group_type LIKE %2';
+        $clauses[] = '`groups`.group_type LIKE %2';
         $typeString = CRM_Core_DAO::VALUE_SEPARATOR . implode(CRM_Core_DAO::VALUE_SEPARATOR, $types) . CRM_Core_DAO::VALUE_SEPARATOR;
         $params[2] = [$typeString, 'String', TRUE];
       }
@@ -1175,7 +1190,7 @@ WHERE {$whereClause}";
 
     $visibility = CRM_Utils_Array::value('visibility', $params);
     if ($visibility) {
-      $clauses[] = 'groups.visibility = %3';
+      $clauses[] = '`groups`.visibility = %3';
       $params[3] = [$visibility, 'String'];
     }
 
@@ -1183,30 +1198,30 @@ WHERE {$whereClause}";
     if ($groupStatus) {
       switch ($groupStatus) {
         case 1:
-          $clauses[] = 'groups.is_active = 1';
+          $clauses[] = '`groups`.is_active = 1';
           $params[4] = [$groupStatus, 'Integer'];
           break;
 
         case 2:
-          $clauses[] = 'groups.is_active = 0';
+          $clauses[] = '`groups`.is_active = 0';
           $params[4] = [$groupStatus, 'Integer'];
           break;
 
         case 3:
-          $clauses[] = '(groups.is_active = 0 OR groups.is_active = 1 )';
+          $clauses[] = '(`groups`.is_active = 0 OR `groups`.is_active = 1 )';
           break;
       }
     }
 
     $parentsOnly = CRM_Utils_Array::value('parentsOnly', $params);
     if ($parentsOnly) {
-      $clauses[] = 'groups.parents IS NULL';
+      $clauses[] = '`groups`.parents IS NULL';
     }
 
     // only show child groups of a specific parent group
     $parent_id = CRM_Utils_Array::value('parent_id', $params);
     if ($parent_id) {
-      $clauses[] = 'groups.id IN (SELECT child_group_id FROM civicrm_group_nesting WHERE parent_group_id = %5)';
+      $clauses[] = '`groups`.id IN (SELECT child_group_id FROM civicrm_group_nesting WHERE parent_group_id = %5)';
       $params[5] = [$parent_id, 'Integer'];
     }
 
@@ -1221,11 +1236,11 @@ WHERE {$whereClause}";
     }
 
     if (empty($clauses)) {
-      $clauses[] = 'groups.is_active = 1';
+      $clauses[] = '`groups`.is_active = 1';
     }
 
     if ($excludeHidden) {
-      $clauses[] = 'groups.is_hidden = 0';
+      $clauses[] = '`groups`.is_hidden = 0';
     }
 
     $clauses[] = self::getPermissionClause();
@@ -1287,10 +1302,10 @@ WHERE {$whereClause}";
    */
   public function pagerAtoZ($whereClause, $whereParams) {
     $query = "
-        SELECT DISTINCT UPPER(LEFT(groups.title, 1)) as sort_name
-        FROM  civicrm_group groups
+        SELECT DISTINCT UPPER(LEFT(`groups`.title, 1)) as sort_name
+        FROM  civicrm_group `groups`
         WHERE $whereClause
-        ORDER BY LEFT(groups.title, 1)
+        ORDER BY LEFT(`groups`.title, 1)
             ";
     $dao = CRM_Core_DAO::executeQuery($query, $whereParams);
 
diff --git a/civicrm/CRM/Contact/BAO/GroupNestingCache.php b/civicrm/CRM/Contact/BAO/GroupNestingCache.php
index 597cf66a46..5ef00f1246 100644
--- a/civicrm/CRM/Contact/BAO/GroupNestingCache.php
+++ b/civicrm/CRM/Contact/BAO/GroupNestingCache.php
@@ -19,12 +19,12 @@ class CRM_Contact_BAO_GroupNestingCache {
   /**
    * Update cache.
    *
-   * @throws \Exception
+   * @throws \CRM_Core_Exception
    */
   public static function update() {
     // lets build the tree in memory first
 
-    $sql = "
+    $sql = '
 SELECT n.child_group_id  as child ,
        n.parent_group_id as parent
 FROM   civicrm_group_nesting n,
@@ -32,7 +32,7 @@ FROM   civicrm_group_nesting n,
        civicrm_group gp
 WHERE  n.child_group_id  = gc.id
   AND  n.parent_group_id = gp.id
-";
+';
 
     $dao = CRM_Core_DAO::executeQuery($sql);
 
@@ -57,15 +57,15 @@ WHERE  n.child_group_id  = gc.id
     }
 
     if (self::checkCyclicGraph($tree)) {
-      CRM_Core_Error::fatal(ts("We detected a cycle which we can't handle. aborting"));
+      throw new CRM_Core_Exception(ts('We detected a cycle which we can\'t handle. aborting'));
     }
 
     // first reset the current cache entries
-    $sql = "
+    $sql = '
 UPDATE civicrm_group
 SET    parents  = null,
        children = null
-";
+';
     CRM_Core_DAO::executeQuery($sql);
 
     $values = [];
@@ -132,9 +132,10 @@ WHERE  id = $id
 
   /**
    * @param int $id
-   * @param $groups
+   * @param array $groups
    *
    * @return array
+   * @throws \CRM_Core_Exception
    */
   public static function getPotentialCandidates($id, &$groups) {
     $tree = Civi::cache('groups')->get('nestable tree hierarchy');
@@ -201,6 +202,8 @@ WHERE  id = $id
 
   /**
    * @return string
+   *
+   * @throws \CRM_Core_Exception
    */
   public static function json() {
     $tree = Civi::cache('groups')->get('nestable tree hierarchy');
diff --git a/civicrm/CRM/Contact/BAO/Query.php b/civicrm/CRM/Contact/BAO/Query.php
index 1ea2de79dd..04e33776d1 100644
--- a/civicrm/CRM/Contact/BAO/Query.php
+++ b/civicrm/CRM/Contact/BAO/Query.php
@@ -946,7 +946,7 @@ class CRM_Contact_BAO_Query {
             GROUP_CONCAT(DISTINCT IF(civicrm_group_contact.status = 'Added', civicrm_group_contact.group_id, '')),
             GROUP_CONCAT(DISTINCT civicrm_group_contact_cache.group_id)
           )
-          as groups";
+          as `groups`";
           $this->_element[$name] = 1;
           $this->_tables['civicrm_group_contact'] = 1;
           $this->_tables['civicrm_group_contact_cache'] = 1;
diff --git a/civicrm/CRM/Contact/BAO/Relationship.php b/civicrm/CRM/Contact/BAO/Relationship.php
index 325ce00de6..a88193f071 100644
--- a/civicrm/CRM/Contact/BAO/Relationship.php
+++ b/civicrm/CRM/Contact/BAO/Relationship.php
@@ -834,7 +834,7 @@ class CRM_Contact_BAO_Relationship extends CRM_Contact_DAO_Relationship {
    * @param int $id
    *   Relationship id.
    *
-   * $returns  returns the contact ids in the realtionship
+   * $returns  returns the contact ids in the relationship
    *
    * @return \CRM_Contact_DAO_Relationship
    */
diff --git a/civicrm/CRM/Contact/BAO/SavedSearch.php b/civicrm/CRM/Contact/BAO/SavedSearch.php
index 78ddca5545..295502d770 100644
--- a/civicrm/CRM/Contact/BAO/SavedSearch.php
+++ b/civicrm/CRM/Contact/BAO/SavedSearch.php
@@ -74,6 +74,9 @@ class CRM_Contact_BAO_SavedSearch extends CRM_Contact_DAO_SavedSearch {
    *
    * @return array
    *   the values of the posted saved search used as default values in various Search Form
+   *
+   * @throws \CRM_Core_Exception
+   * @throws \CiviCRM_API3_Exception
    */
   public static function getFormValues($id) {
     $specialDateFields = [
@@ -82,7 +85,7 @@ class CRM_Contact_BAO_SavedSearch extends CRM_Contact_DAO_SavedSearch {
     ];
 
     $fv = CRM_Core_DAO::getFieldValue('CRM_Contact_DAO_SavedSearch', $id, 'form_values');
-    $result = NULL;
+    $result = [];
     if ($fv) {
       // make sure u CRM_Utils_String::unserialize - since it's stored in serialized form
       $result = CRM_Utils_String::unserialize($fv);
@@ -200,6 +203,9 @@ class CRM_Contact_BAO_SavedSearch extends CRM_Contact_DAO_SavedSearch {
    * @param int $id
    *
    * @return array
+   *
+   * @throws \CRM_Core_Exception
+   * @throws \CiviCRM_API3_Exception
    */
   public static function getSearchParams($id) {
     $fv = self::getFormValues($id);
diff --git a/civicrm/CRM/Contact/DAO/Contact.php b/civicrm/CRM/Contact/DAO/Contact.php
index 99405af76c..e4135fe7e2 100644
--- a/civicrm/CRM/Contact/DAO/Contact.php
+++ b/civicrm/CRM/Contact/DAO/Contact.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Contact/Contact.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:773bf2fc16c1af3c283f6ecc7098e927)
+ * (GenCodeChecksum:4b1e2ef9f5c431f59befcc000cb35577)
  */
 
 /**
@@ -688,6 +688,7 @@ class CRM_Contact_DAO_Contact extends CRM_Core_DAO {
           'where' => 'civicrm_contact.legal_name',
           'headerPattern' => '/^legal|(l(egal\s)?name)$/i',
           'export' => TRUE,
+          'contactType' => 'Organization',
           'table_name' => 'civicrm_contact',
           'entity' => 'Contact',
           'bao' => 'CRM_Contact_BAO_Contact',
diff --git a/civicrm/CRM/Contact/Form/Edit/Address.php b/civicrm/CRM/Contact/Form/Edit/Address.php
index 4d5021b893..9ea5b2af70 100644
--- a/civicrm/CRM/Contact/Form/Edit/Address.php
+++ b/civicrm/CRM/Contact/Form/Edit/Address.php
@@ -58,6 +58,7 @@ class CRM_Contact_Form_Edit_Address {
     $form->addField(
       "address[$blockId][is_primary]", [
         'entity' => 'address',
+        'type' => 'CheckBox',
         'label' => ts('Primary location for this contact'),
         'text' => ts('Primary location for this contact'),
       ] + $js);
@@ -156,7 +157,9 @@ class CRM_Contact_Form_Edit_Address {
       $form->addEntityRef("address[$blockId][master_contact_id]", ts('Share With'), ['create' => $profileLinks, 'api' => ['extra' => ['contact_type']]]);
 
       // do we want to update employer for shared address
-      $form->addElement('checkbox', "address[$blockId][update_current_employer]", NULL, ts('Set this organization as current employer'));
+      $employer_label = '<span class="addrel-employer">' . ts('Set this organization as current employer') . '</span>';
+      $household_label = '<span class="addrel-household">' . ts('Create a household member relationship with this contact') . '</span>';
+      $form->addElement('checkbox', "address[$blockId][add_relationship]", NULL, $employer_label . $household_label);
     }
   }
 
diff --git a/civicrm/CRM/Contact/Form/Merge.php b/civicrm/CRM/Contact/Form/Merge.php
index 52690f03bb..2c3d2cb35c 100644
--- a/civicrm/CRM/Contact/Form/Merge.php
+++ b/civicrm/CRM/Contact/Form/Merge.php
@@ -87,11 +87,16 @@ class CRM_Contact_Form_Merge extends CRM_Core_Form {
       if (!$this->_rgid) {
         // Unset browse URL as we have come from the search screen.
         $browseUrl = '';
-        $this->_rgid = civicrm_api3('RuleGroup', 'getvalue', [
-          'contact_type' => $this->_contactType,
-          'used' => 'Supervised',
-          'return' => 'id',
-        ]);
+        try {
+          $this->_rgid = civicrm_api3('RuleGroup', 'getvalue', [
+            'contact_type' => $this->_contactType,
+            'used' => 'Supervised',
+            'return' => 'id',
+          ]);
+        }
+        catch (Exception $e) {
+          throw new CRM_Core_Exception(ts('There is no Supervised dedupe rule configured for contact type %1.', [1 => $this->_contactType]));
+        }
       }
       $this->assign('browseUrl', $browseUrl);
       if ($browseUrl) {
@@ -112,6 +117,7 @@ class CRM_Contact_Form_Merge extends CRM_Core_Form {
       $mainUfId = CRM_Core_BAO_UFMatch::getUFId($this->_cid);
       $mainUser = NULL;
       if ($mainUfId) {
+        // @todo also calculate & assign url here & get it out of getRowsElementsAndInfo as it is form layer functionality.
         $mainUser = $config->userSystem->getUser($this->_cid);
         $this->assign('mainUfId', $mainUfId);
         $this->assign('mainUfName', $mainUser ? $mainUser['name'] : NULL);
@@ -149,6 +155,7 @@ class CRM_Contact_Form_Merge extends CRM_Core_Form {
       $otherUser = NULL;
 
       if ($otherUfId) {
+        // @todo also calculate & assign url here & get it out of getRowsElementsAndInfo as it is form layer functionality.
         $otherUser = $config->userSystem->getUser($this->_oid);
         $this->assign('otherUfId', $otherUfId);
         $this->assign('otherUfName', $otherUser ? $otherUser['name'] : NULL);
diff --git a/civicrm/CRM/Contact/Form/Search.php b/civicrm/CRM/Contact/Form/Search.php
index eca29eb4d4..1e64b00371 100644
--- a/civicrm/CRM/Contact/Form/Search.php
+++ b/civicrm/CRM/Contact/Form/Search.php
@@ -502,6 +502,8 @@ class CRM_Contact_Form_Search extends CRM_Core_Form_Search {
 
   /**
    * Processing needed for buildForm and later.
+   *
+   * @throws \CRM_Core_Exception
    */
   public function preProcess() {
     // set the various class variables
@@ -530,7 +532,6 @@ class CRM_Contact_Form_Search extends CRM_Core_Form_Search {
     /**
      * set the button names
      */
-    $this->_searchButtonName = $this->getButtonName('refresh');
     $this->_actionButtonName = $this->getButtonName('next', 'action');
 
     $this->assign('actionButtonName', $this->_actionButtonName);
@@ -599,7 +600,7 @@ class CRM_Contact_Form_Search extends CRM_Core_Form_Search {
       }
 
       // fix for CRM-1907
-      if (isset($this->_ssID) && $this->_context != 'smog') {
+      if (isset($this->_ssID) && $this->_context !== 'smog') {
         // we only retrieve the saved search values if out current values are null
         $this->_formValues = CRM_Contact_BAO_SavedSearch::getFormValues($this->_ssID);
 
@@ -793,7 +794,7 @@ class CRM_Contact_Form_Search extends CRM_Core_Form_Search {
       return;
     }
     else {
-      if (array_key_exists($this->_searchButtonName, $_POST) ||
+      if (array_key_exists($this->getButtonName('refresh'), $_POST) ||
         ($this->_force && !$crmPID)
       ) {
         //reset the cache table for new search
diff --git a/civicrm/CRM/Contact/Form/Search/Builder.php b/civicrm/CRM/Contact/Form/Search/Builder.php
index 3d4a9ff395..6f3bc7cac2 100644
--- a/civicrm/CRM/Contact/Form/Search/Builder.php
+++ b/civicrm/CRM/Contact/Form/Search/Builder.php
@@ -106,7 +106,7 @@ class CRM_Contact_Form_Search_Builder extends CRM_Contact_Form_Search {
       $mappingId = CRM_Core_DAO::getFieldValue('CRM_Contact_DAO_SavedSearch', $this->_ssID, 'mapping_id');
     }
 
-    CRM_Core_BAO_Mapping::buildMappingForm($this, 'Search Builder', $mappingId, $this->_columnCount, $this->_blockCount);
+    CRM_Core_BAO_Mapping::buildMappingForm($this, $mappingId, $this->_columnCount, $this->_blockCount);
 
     parent::buildQuickForm();
   }
diff --git a/civicrm/CRM/Contact/Form/Task/EmailCommon.php b/civicrm/CRM/Contact/Form/Task/EmailCommon.php
index 4591c8bf48..d8e7af4c33 100644
--- a/civicrm/CRM/Contact/Form/Task/EmailCommon.php
+++ b/civicrm/CRM/Contact/Form/Task/EmailCommon.php
@@ -476,7 +476,8 @@ class CRM_Contact_Form_Task_EmailCommon {
       array_keys($form->_toContactDetails),
       $additionalDetails,
       $contributionIds,
-      CRM_Utils_Array::value('campaign_id', $formValues)
+      CRM_Utils_Array::value('campaign_id', $formValues),
+      $form->getVar('_caseId')
     );
 
     $followupStatus = '';
diff --git a/civicrm/CRM/Contact/Form/Task/PDFLetterCommon.php b/civicrm/CRM/Contact/Form/Task/PDFLetterCommon.php
index 61bf8f4519..ee7179f210 100644
--- a/civicrm/CRM/Contact/Form/Task/PDFLetterCommon.php
+++ b/civicrm/CRM/Contact/Form/Task/PDFLetterCommon.php
@@ -104,8 +104,8 @@ class CRM_Contact_Form_Task_PDFLetterCommon extends CRM_Core_Form_Task_PDFLetter
    * Process the form after the input has been submitted and validated.
    *
    * @param CRM_Core_Form $form
-   *
    * @throws \CRM_Core_Exception
+   * @throws \CiviCRM_API3_Exception
    */
   public static function postProcess(&$form) {
     $formValues = $form->controller->exportValues($form->getName());
@@ -127,6 +127,14 @@ class CRM_Contact_Form_Task_PDFLetterCommon extends CRM_Core_Form_Task_PDFLetter
       $caseId = NULL;
       $params = ['contact_id' => $contactId];
 
+      $caseId = $form->getVar('_caseId');
+      if (empty($caseId) && !empty($form->_caseIds[$item])) {
+        $caseId = $form->_caseIds[$item];
+      }
+      if ($caseId) {
+        $params['case_id'] = $caseId;
+      }
+
       list($contact) = CRM_Utils_Token::getTokenDetails($params,
         $returnProperties,
         $skipOnHold,
@@ -142,12 +150,7 @@ class CRM_Contact_Form_Task_PDFLetterCommon extends CRM_Core_Form_Task_PDFLetter
       }
 
       $tokenHtml = CRM_Utils_Token::replaceContactTokens($html_message, $contact[$contactId], TRUE, $messageToken);
-      if (!empty($form->_caseId)) {
-        $caseId = $form->_caseId;
-      }
-      if (empty($caseId) && !empty($form->_caseIds[$item])) {
-        $caseId = $form->_caseIds[$item];
-      }
+
       if ($caseId) {
         $tokenHtml = CRM_Utils_Token::replaceCaseTokens($caseId, $tokenHtml, $messageToken);
       }
diff --git a/civicrm/CRM/Contact/Page/View/UserDashBoard.php b/civicrm/CRM/Contact/Page/View/UserDashBoard.php
index 538dbd9bf1..347824cceb 100644
--- a/civicrm/CRM/Contact/Page/View/UserDashBoard.php
+++ b/civicrm/CRM/Contact/Page/View/UserDashBoard.php
@@ -77,7 +77,7 @@ class CRM_Contact_Page_View_UserDashBoard extends CRM_Core_Page {
    */
   public function preProcess() {
     if (!$this->_contactId) {
-      CRM_Core_Error::fatal(ts('You must be logged in to view this page.'));
+      throw new CRM_Core_Exception(ts('You must be logged in to view this page.'));
     }
 
     list($displayName, $contactImage) = CRM_Contact_BAO_Contact::getDisplayAndImage($this->_contactId);
diff --git a/civicrm/CRM/Contribute/BAO/Contribution.php b/civicrm/CRM/Contribute/BAO/Contribution.php
index fb1ad57ab9..4cc044b85c 100644
--- a/civicrm/CRM/Contribute/BAO/Contribution.php
+++ b/civicrm/CRM/Contribute/BAO/Contribution.php
@@ -91,6 +91,9 @@ class CRM_Contribute_BAO_Contribution extends CRM_Contribute_DAO_Contribution {
     if (empty($params)) {
       return NULL;
     }
+    if (!empty($ids)) {
+      CRM_Core_Error::deprecatedFunctionWarning('ids should not be passed into Contribution.add');
+    }
     //per http://wiki.civicrm.org/confluence/display/CRM/Database+layer we are moving away from $ids array
     $contributionID = CRM_Utils_Array::value('contribution', $ids, CRM_Utils_Array::value('id', $params));
     $action = $contributionID ? 'edit' : 'create';
@@ -128,13 +131,12 @@ class CRM_Contribute_BAO_Contribution extends CRM_Contribute_DAO_Contribution {
     if (!$contributionID) {
       CRM_Core_DAO::setCreateDefaults($params, self::getDefaults());
 
-      if (empty($params['invoice_number'])) {
+      if (empty($params['invoice_number']) && CRM_Invoicing_Utils::isInvoicingEnabled()) {
         $nextContributionID = CRM_Core_DAO::singleValueQuery("SELECT COALESCE(MAX(id) + 1, 1) FROM civicrm_contribution");
         $params['invoice_number'] = self::getInvoiceNumber($nextContributionID);
       }
     }
 
-    $contributionStatus = CRM_Contribute_PseudoConstant::contributionStatus(NULL, 'name');
     //if contribution is created with cancelled or refunded status, add credit note id
     // do the same for chargeback - this entered the code 'accidentally' but moving it to here
     // as part of cleanup maintains consistency.
@@ -143,7 +145,11 @@ class CRM_Contribute_BAO_Contribution extends CRM_Contribute_DAO_Contribution {
         $params['creditnote_id'] = self::createCreditNoteId();
       }
     }
-    if (empty($params['contribution_status_id'])) {
+    $contributionStatusID = $params['contribution_status_id'] ?? NULL;
+    if (CRM_Core_PseudoConstant::getName('CRM_Contribute_BAO_Contribution', 'contribution_status_id', (int) $contributionStatusID) === 'Partially paid' && empty($params['is_post_payment_create'])) {
+      CRM_Core_Error::deprecatedFunctionWarning('Setting status to partially paid other than by using Payment.create is deprecated and unreliable');
+    }
+    if (!$contributionStatusID) {
       // Since the fee amount is expecting this (later on) ensure it is always set.
       // It would only not be set for an update where it is unchanged.
       $params['contribution_status_id'] = civicrm_api3('Contribution', 'getvalue', [
@@ -151,6 +157,7 @@ class CRM_Contribute_BAO_Contribution extends CRM_Contribute_DAO_Contribution {
         'return' => 'contribution_status_id',
       ]);
     }
+    $contributionStatus = CRM_Core_PseudoConstant::getName('CRM_Contribute_BAO_Contribution', 'contribution_status_id', (int) $params['contribution_status_id']);
 
     if (!$contributionID
       && CRM_Utils_Array::value('membership_id', $params)
@@ -185,9 +192,10 @@ class CRM_Contribute_BAO_Contribution extends CRM_Contribute_DAO_Contribution {
     if ($contributionID && $setPrevContribution) {
       $params['prevContribution'] = self::getOriginalContribution($contributionID);
     }
+    $previousContributionStatus = ($contributionID && !empty($params['prevContribution'])) ? CRM_Core_PseudoConstant::getName('CRM_Contribute_BAO_Contribution', 'contribution_status_id', (int) $params['prevContribution']->contribution_status_id) : NULL;
 
-    if ($contributionID && !empty($params['revenue_recognition_date']) && !empty($params['prevContribution'])
-      && !($contributionStatus[$params['prevContribution']->contribution_status_id] == 'Pending')
+    if ($contributionID && !empty($params['revenue_recognition_date'])
+      && !($previousContributionStatus === 'Pending')
       && !self::allowUpdateRevenueRecognitionDate($contributionID)
     ) {
       unset($params['revenue_recognition_date']);
@@ -234,7 +242,7 @@ class CRM_Contribute_BAO_Contribution extends CRM_Contribute_DAO_Contribution {
     if (self::isUpdateToRecurringContribution($params)) {
       CRM_Contribute_BAO_ContributionRecur::updateOnNewPayment(
         (!empty($params['contribution_recur_id']) ? $params['contribution_recur_id'] : $params['prevContribution']->contribution_recur_id),
-        $contributionStatus[$params['contribution_status_id']],
+        $contributionStatus,
         CRM_Utils_Array::value('receive_date', $params)
       );
     }
@@ -489,7 +497,6 @@ class CRM_Contribute_BAO_Contribution extends CRM_Contribute_DAO_Contribution {
    * @throws \CiviCRM_API3_Exception
    */
   public static function create(&$params, $ids = []) {
-
     $dateFields = [
       'receive_date',
       'cancel_date',
@@ -506,7 +513,11 @@ class CRM_Contribute_BAO_Contribution extends CRM_Contribute_DAO_Contribution {
     $transaction = new CRM_Core_Transaction();
 
     try {
-      $contribution = self::add($params, $ids);
+      if (!isset($params['id']) && isset($ids['contribution'])) {
+        CRM_Core_Error::deprecatedFunctionWarning('ids should not be used for contribution create');
+        $params['id'] = $ids['contribution'];
+      }
+      $contribution = self::add($params);
     }
     catch (CRM_Core_Exception $e) {
       $transaction->rollback();
@@ -944,7 +955,7 @@ class CRM_Contribute_BAO_Contribution extends CRM_Contribute_DAO_Contribution {
   }
 
   /**
-   * Get memberships realted to the contribution.
+   * Get memberships related to the contribution.
    *
    * @param int $contributionID
    *
@@ -2372,8 +2383,8 @@ LEFT JOIN  civicrm_contribution contribution ON ( componentPayment.contribution_
         $contributionParams[$field] = $params[$field];
       }
 
-      $ids = ['contribution' => $contributionId];
-      $contribution = CRM_Contribute_BAO_Contribution::create($contributionParams, $ids);
+      $contributionParams['id'] = $contributionId;
+      $contribution = CRM_Contribute_BAO_Contribution::create($contributionParams);
     }
 
     return $updateResult;
@@ -4167,7 +4178,7 @@ INNER JOIN civicrm_activity ON civicrm_activity_contact.activity_id = civicrm_ac
 
     return (float) CRM_Utils_Money::subtractCurrencies(
       $contributionTotal,
-      CRM_Core_BAO_FinancialTrxn::getTotalPayments($contributionId, TRUE) ?: 0,
+      CRM_Core_BAO_FinancialTrxn::getTotalPayments($contributionId, TRUE),
       CRM_Core_DAO::getFieldValue('CRM_Contribute_DAO_Contribution', $contributionId, 'currency')
     );
   }
@@ -4694,16 +4705,17 @@ INNER JOIN civicrm_activity ON civicrm_activity_contact.activity_id = civicrm_ac
    *
    * @return string
    *   Credit Note Id.
+   *
+   * @throws \CiviCRM_API3_Exception
    */
   public static function createCreditNoteId() {
-    $prefixValue = Civi::settings()->get('contribution_invoice_settings');
 
     $creditNoteNum = CRM_Core_DAO::singleValueQuery("SELECT count(creditnote_id) as creditnote_number FROM civicrm_contribution WHERE creditnote_id IS NOT NULL");
     $creditNoteId = NULL;
 
     do {
       $creditNoteNum++;
-      $creditNoteId = CRM_Utils_Array::value('credit_notes_prefix', $prefixValue) . "" . $creditNoteNum;
+      $creditNoteId = Civi::settings()->get('credit_notes_prefix') . '' . $creditNoteNum;
       $result = civicrm_api3('Contribution', 'getcount', [
         'sequential' => 1,
         'creditnote_id' => $creditNoteId,
@@ -4835,41 +4847,31 @@ INNER JOIN civicrm_activity ON civicrm_activity_contact.activity_id = civicrm_ac
    *
    * Replace with Order.create->Payment.create flow.
    *
-   * @param array $contributions
-   * @param string $contributionStatusId
+   * @param array $contribution
    *
    * @throws \CiviCRM_API3_Exception
    */
-  public static function addPayments($contributions, $contributionStatusId = NULL) {
+  public static function addPayments($contribution) {
     // get financial trxn which is a payment
     $ftSql = "SELECT ft.id, ft.total_amount
       FROM civicrm_financial_trxn ft
       INNER JOIN civicrm_entity_financial_trxn eft ON eft.financial_trxn_id = ft.id AND eft.entity_table = 'civicrm_contribution'
       WHERE eft.entity_id = %1 AND ft.is_payment = 1 ORDER BY ft.id DESC LIMIT 1";
-    $contributionStatus = CRM_Core_PseudoConstant::get('CRM_Contribute_DAO_Contribution', 'contribution_status_id', [
-      'labelColumn' => 'name',
+
+    $ftDao = CRM_Core_DAO::executeQuery($ftSql, [
+      1 => [
+        $contribution->id,
+        'Integer',
+      ],
     ]);
-    foreach ($contributions as $contribution) {
-      if (!($contributionStatus[$contribution->contribution_status_id] == 'Partially paid'
-        || CRM_Utils_Array::value($contributionStatusId, $contributionStatus) == 'Partially paid')
-      ) {
-        continue;
-      }
-      $ftDao = CRM_Core_DAO::executeQuery($ftSql, [
-        1 => [
-          $contribution->id,
-          'Integer',
-        ],
-      ]);
-      $ftDao->fetch();
+    $ftDao->fetch();
 
-      // store financial item Proportionaly.
-      $trxnParams = [
-        'total_amount' => $ftDao->total_amount,
-        'contribution_id' => $contribution->id,
-      ];
-      self::assignProportionalLineItems($trxnParams, $ftDao->id, $contribution->total_amount);
-    }
+    // store financial item Proportionaly.
+    $trxnParams = [
+      'total_amount' => $ftDao->total_amount,
+      'contribution_id' => $contribution->id,
+    ];
+    self::assignProportionalLineItems($trxnParams, $ftDao->id, $contribution->total_amount);
   }
 
   /**
@@ -5063,21 +5065,13 @@ INNER JOIN civicrm_activity ON civicrm_activity_contact.activity_id = civicrm_ac
    *
    *
    * @param string $name
-   * @param bool $checkInvoicing
+   *
    * @return string
    *
    */
-  public static function checkContributeSettings($name = NULL, $checkInvoicing = FALSE) {
+  public static function checkContributeSettings($name) {
     $contributeSettings = Civi::settings()->get('contribution_invoice_settings');
-
-    if ($checkInvoicing && empty($contributeSettings['invoicing'])) {
-      return NULL;
-    }
-
-    if ($name) {
-      return CRM_Utils_Array::value($name, $contributeSettings);
-    }
-    return $contributeSettings;
+    return CRM_Utils_Array::value($name, $contributeSettings);
   }
 
   /**
@@ -5892,7 +5886,7 @@ LIMIT 1;";
    * @return string
    */
   public static function getInvoiceNumber($contributionID) {
-    if ($invoicePrefix = self::checkContributeSettings('invoice_prefix', TRUE)) {
+    if ($invoicePrefix = self::checkContributeSettings('invoice_prefix')) {
       return $invoicePrefix . $contributionID;
     }
 
diff --git a/civicrm/CRM/Contribute/BAO/Contribution/Utils.php b/civicrm/CRM/Contribute/BAO/Contribution/Utils.php
index e936512ac9..5e3b948828 100644
--- a/civicrm/CRM/Contribute/BAO/Contribution/Utils.php
+++ b/civicrm/CRM/Contribute/BAO/Contribution/Utils.php
@@ -180,8 +180,8 @@ class CRM_Contribute_BAO_Contribution_Utils {
             $contribution->payment_status_id = $result['payment_status_id'];
           }
           $result['contribution'] = $contribution;
-          if ($result['payment_status_id'] == CRM_Core_PseudoConstant::getKey('CRM_Contribute_BAO_Contribution',
-            'status_id', 'Pending') && $payment->isSendReceiptForPending()) {
+          if ($result['payment_status_id'] == CRM_Core_PseudoConstant::getKey('CRM_Contribute_BAO_Contribution', 'contribution_status_id', 'Pending')
+            && $payment->isSendReceiptForPending()) {
             CRM_Contribute_BAO_ContributionPage::sendMail($contactID,
               $form->_values,
               $contribution->is_test
diff --git a/civicrm/CRM/Contribute/BAO/ContributionPage.php b/civicrm/CRM/Contribute/BAO/ContributionPage.php
index d74a952e9c..43cbb90546 100644
--- a/civicrm/CRM/Contribute/BAO/ContributionPage.php
+++ b/civicrm/CRM/Contribute/BAO/ContributionPage.php
@@ -828,10 +828,13 @@ LEFT JOIN  civicrm_premiums            ON ( civicrm_premiums.entity_id = civicrm
     // Special logic for fields whose options depend on context or properties
     switch ($fieldName) {
       case 'financial_type_id':
-        // Fixme - this is going to ignore context, better to get conditions, add params, and call PseudoConstant::get
-        return CRM_Financial_BAO_FinancialType::getIncomeFinancialType();
-
-      break;
+        // @fixme - this is going to ignore context, better to get conditions, add params, and call PseudoConstant::get
+        // @fixme - https://lab.civicrm.org/dev/core/issues/547 if CiviContribute not enabled this causes an invalid query
+        //   because $relationTypeId is not set in CRM_Financial_BAO_FinancialType::getIncomeFinancialType()
+        if (array_key_exists('CiviContribute', CRM_Core_Component::getEnabledComponents())) {
+          return CRM_Financial_BAO_FinancialType::getIncomeFinancialType();
+        }
+        return [];
     }
     return CRM_Core_PseudoConstant::get(__CLASS__, $fieldName, $params, $context);
   }
diff --git a/civicrm/CRM/Contribute/BAO/ContributionSoft.php b/civicrm/CRM/Contribute/BAO/ContributionSoft.php
index a949c49a0f..3923e5f73b 100644
--- a/civicrm/CRM/Contribute/BAO/ContributionSoft.php
+++ b/civicrm/CRM/Contribute/BAO/ContributionSoft.php
@@ -33,6 +33,9 @@ class CRM_Contribute_BAO_ContributionSoft extends CRM_Contribute_DAO_Contributio
    *   soft contribution of object that is added
    */
   public static function add(&$params) {
+    $hook = empty($params['id']) ? 'create' : 'edit';
+    CRM_Utils_Hook::pre($hook, 'ContributionSoft', CRM_Utils_Array::value('id', $params), $params);
+
     $contributionSoft = new CRM_Contribute_DAO_ContributionSoft();
     $contributionSoft->copyValues($params);
 
@@ -41,7 +44,9 @@ class CRM_Contribute_BAO_ContributionSoft extends CRM_Contribute_DAO_Contributio
       $config = CRM_Core_Config::singleton();
       $contributionSoft->currency = $config->defaultCurrency;
     }
-    return $contributionSoft->save();
+    $result = $contributionSoft->save();
+    CRM_Utils_Hook::post($hook, 'ContributionSoft', $contributionSoft->id, $contributionSoft);
+    return $result;
   }
 
   /**
@@ -57,7 +62,7 @@ class CRM_Contribute_BAO_ContributionSoft extends CRM_Contribute_DAO_Contributio
     $pcpId = self::getSoftCreditIds($contribution->id, TRUE);
 
     if ($pcp = CRM_Utils_Array::value('pcp', $params)) {
-      $softParams = array();
+      $softParams = [];
       $softParams['id'] = $pcpId ? $pcpId : NULL;
       $softParams['contribution_id'] = $contribution->id;
       $softParams['pcp_id'] = $pcp['pcp_made_through_id'];
@@ -78,7 +83,7 @@ class CRM_Contribute_BAO_ContributionSoft extends CRM_Contribute_DAO_Contributio
     }
     //Delete PCP against this contribution and create new on submitted PCP information
     elseif (array_key_exists('pcp', $params) && $pcpId) {
-      civicrm_api3('ContributionSoft', 'delete', array('id' => $pcpId));
+      civicrm_api3('ContributionSoft', 'delete', ['id' => $pcpId]);
     }
     if (isset($params['soft_credit'])) {
       $softParams = $params['soft_credit'];
@@ -100,7 +105,7 @@ class CRM_Contribute_BAO_ContributionSoft extends CRM_Contribute_DAO_Contributio
       // delete any extra soft-credit while updating back-office contribution
       foreach ((array) $softIDs as $softID) {
         if (!in_array($softID, $params['soft_credit_ids'])) {
-          civicrm_api3('ContributionSoft', 'delete', array('id' => $softID));
+          civicrm_api3('ContributionSoft', 'delete', ['id' => $softID]);
         }
       }
     }
@@ -116,14 +121,14 @@ class CRM_Contribute_BAO_ContributionSoft extends CRM_Contribute_DAO_Contributio
    *   Form object.
    */
   public static function formatSoftCreditParams(&$params, &$form) {
-    $pcp = $softParams = $softIDs = array();
+    $pcp = $softParams = $softIDs = [];
     if (!empty($params['pcp_made_through_id'])) {
-      $fields = array(
+      $fields = [
         'pcp_made_through_id',
         'pcp_display_in_roll',
         'pcp_roll_nickname',
         'pcp_personal_note',
-      );
+      ];
       foreach ($fields as $f) {
         $pcp[$f] = CRM_Utils_Array::value($f, $params);
       }
@@ -136,10 +141,10 @@ class CRM_Contribute_BAO_ContributionSoft extends CRM_Contribute_DAO_Contributio
       $contributionSoftParams['soft_credit_type_id'] = CRM_Core_PseudoConstant::getKey('CRM_Contribute_BAO_ContributionSoft', 'soft_credit_type_id', 'pcp');
       //check if there is any duplicate contact
       // honoree should never be the donor
-      $exceptKeys = array(
+      $exceptKeys = [
         'contactID' => 0,
         'onbehalf_contact_id' => 0,
-      );
+      ];
       $except = array_values(array_intersect_key($params, $exceptKeys));
       $ids = CRM_Contact_BAO_Contact::getDuplicateContacts(
         $params['honor'],
@@ -158,13 +163,13 @@ class CRM_Contribute_BAO_ContributionSoft extends CRM_Contribute_DAO_Contributio
         $honorId, NULL,
         $form->_values['honoree_profile_id']
       );
-      $softParams[] = array(
+      $softParams[] = [
         'contact_id' => $honorId,
         'soft_credit_type_id' => $params['soft_credit_type_id'],
-      );
+      ];
 
       if (CRM_Utils_Array::value('is_email_receipt', $form->_values)) {
-        $form->_values['honor'] = array(
+        $form->_values['honor'] = [
           'soft_credit_type' => CRM_Utils_Array::value(
             $params['soft_credit_type_id'],
             CRM_Core_OptionGroup::values("soft_credit_type")
@@ -172,7 +177,7 @@ class CRM_Contribute_BAO_ContributionSoft extends CRM_Contribute_DAO_Contributio
           'honor_id' => $honorId,
           'honor_profile_id' => $form->_values['honoree_profile_id'],
           'honor_profile_values' => $params['honor'],
-        );
+        ];
       }
     }
     elseif (!empty($params['soft_credit_contact_id'])) {
@@ -231,15 +236,15 @@ class CRM_Contribute_BAO_ContributionSoft extends CRM_Contribute_DAO_Contributio
     WHERE cc.is_test = %2 AND ccs.contact_id = %1 {$whereClause}
     GROUP BY currency";
 
-    $params = array(
-      1 => array($contact_id, 'Integer'),
-      2 => array($isTest, 'Integer'),
-    );
+    $params = [
+      1 => [$contact_id, 'Integer'],
+      2 => [$isTest, 'Integer'],
+    ];
 
     $cs = CRM_Core_DAO::executeQuery($query, $params);
 
     $count = $countCancelled = 0;
-    $amount = $average = $cancelAmount = array();
+    $amount = $average = $cancelAmount = [];
 
     while ($cs->fetch()) {
       if ($cs->amount > 0) {
@@ -252,7 +257,7 @@ class CRM_Contribute_BAO_ContributionSoft extends CRM_Contribute_DAO_Contributio
     //to get cancel amount
     $cancelAmountWhereClause = "AND cc.cancel_date IS NOT NULL";
     $query = str_replace($whereClause, $cancelAmountWhereClause, $query);
-    $cancelAmountSQL  = CRM_Core_DAO::executeQuery($query, $params);
+    $cancelAmountSQL = CRM_Core_DAO::executeQuery($query, $params);
     while ($cancelAmountSQL->fetch()) {
       if ($cancelAmountSQL->amount > 0) {
         $countCancelled++;
@@ -261,15 +266,15 @@ class CRM_Contribute_BAO_ContributionSoft extends CRM_Contribute_DAO_Contributio
     }
 
     if ($count > 0 || $countCancelled > 0) {
-      return array(
+      return [
         $count,
         $countCancelled,
         implode(',&nbsp;', $amount),
         implode(',&nbsp;', $average),
         implode(',&nbsp;', $cancelAmount),
-      );
+      ];
     }
-    return array(0, 0);
+    return [0, 0];
   }
 
   /**
@@ -363,10 +368,10 @@ class CRM_Contribute_BAO_ContributionSoft extends CRM_Contribute_DAO_Contributio
     else {
       $query .= " AND pcp_id IS NULL";
     }
-    $params = array(1 => array($contributionID, 'Integer'));
+    $params = [1 => [$contributionID, 'Integer']];
 
     $dao = CRM_Core_DAO::executeQuery($query, $params);
-    $id = array();
+    $id = [];
     $type = '';
     while ($dao->fetch()) {
       if ($isPCP) {
@@ -404,7 +409,7 @@ class CRM_Contribute_BAO_ContributionSoft extends CRM_Contribute_DAO_Contributio
 
     $softCreditList = self::getSoftContributionList($contactId, $filter, $isTest, $params);
 
-    $softCreditListDT = array();
+    $softCreditListDT = [];
     $softCreditListDT['data'] = array_values($softCreditList);
     $softCreditListDT['recordsTotal'] = $params['total'];
     $softCreditListDT['recordsFiltered'] = $params['total'];
@@ -426,14 +431,14 @@ class CRM_Contribute_BAO_ContributionSoft extends CRM_Contribute_DAO_Contributio
    */
   public static function getSoftContributionList($contact_id, $filter = NULL, $isTest = 0, &$dTParams = NULL) {
     $config = CRM_Core_Config::singleton();
-    $links = array(
-      CRM_Core_Action::VIEW => array(
+    $links = [
+      CRM_Core_Action::VIEW => [
         'name' => ts('View'),
         'url' => 'civicrm/contact/view/contribution',
         'qs' => 'reset=1&id=%%contributionid%%&cid=%%contactId%%&action=view&context=contribution&selectedChild=contribute',
         'title' => ts('View related contribution'),
-      ),
-    );
+      ],
+    ];
     $orderBy = 'cc.receive_date DESC';
     if (!empty($dTParams['sort'])) {
       $orderBy = $dTParams['sort'];
@@ -482,16 +487,16 @@ class CRM_Contribute_BAO_ContributionSoft extends CRM_Contribute_DAO_Contributio
 
     $query .= "{$where} ORDER BY {$orderBy} {$limit}";
 
-    $params = array(
-      1 => array($contact_id, 'Integer'),
-      2 => array($isTest, 'Integer'),
-      3 => array($softOgId, 'Integer'),
-      4 => array($statusOgId, 'Integer'),
-    );
+    $params = [
+      1 => [$contact_id, 'Integer'],
+      2 => [$isTest, 'Integer'],
+      3 => [$softOgId, 'Integer'],
+      4 => [$statusOgId, 'Integer'],
+    ];
     $cs = CRM_Core_DAO::executeQuery($query, $params);
 
     $dTParams['total'] = CRM_Core_DAO::singleValueQuery('SELECT FOUND_ROWS()');
-    $result = array();
+    $result = [];
     while ($cs->fetch()) {
       $result[$cs->id]['amount'] = CRM_Utils_Money::format($cs->amount, $cs->currency);
       $result[$cs->id]['currency'] = $cs->currency;
@@ -511,10 +516,10 @@ class CRM_Contribute_BAO_ContributionSoft extends CRM_Contribute_DAO_Contributio
       $result[$cs->id]['pcp_personal_note'] = $cs->pcp_personal_note;
       $result[$cs->id]['contribution_status'] = $cs->contribution_status;
       $result[$cs->id]['sct_label'] = $cs->sct_label;
-      $replace = array(
+      $replace = [
         'contributionid' => $cs->contribution_id,
         'contactId' => $cs->contributor_id,
-      );
+      ];
       $result[$cs->id]['links'] = CRM_Core_Action::formLink($links, NULL, $replace);
 
       if ($isTest) {
@@ -539,7 +544,7 @@ class CRM_Contribute_BAO_ContributionSoft extends CRM_Contribute_DAO_Contributio
     }
     $profileContactType = CRM_Core_BAO_UFGroup::getContactType($form->_values['honoree_profile_id']);
     $profileFields = CRM_Core_BAO_UFGroup::getFields($form->_values['honoree_profile_id']);
-    $honoreeProfileFields = $values = array();
+    $honoreeProfileFields = $values = [];
     $honorName = NULL;
 
     if ($honorId) {
diff --git a/civicrm/CRM/Contribute/Form/AbstractEditPayment.php b/civicrm/CRM/Contribute/Form/AbstractEditPayment.php
index 160544bb27..04be631bb1 100644
--- a/civicrm/CRM/Contribute/Form/AbstractEditPayment.php
+++ b/civicrm/CRM/Contribute/Form/AbstractEditPayment.php
@@ -232,6 +232,9 @@ class CRM_Contribute_Form_AbstractEditPayment extends CRM_Contact_Form_Task {
 
   /**
    * Pre process function with common actions.
+   *
+   * @throws \CRM_Core_Exception
+   * @throws \CiviCRM_API3_Exception
    */
   public function preProcess() {
     $this->_contactID = CRM_Utils_Request::retrieve('cid', 'Positive', $this);
@@ -530,7 +533,6 @@ WHERE  contribution_id = {$id}
 
   /**
    * Common block for setting up the parts of a form that relate to credit / debit card
-   * @throws Exception
    */
   protected function assignPaymentRelatedVariables() {
     try {
diff --git a/civicrm/CRM/Contribute/Form/AdditionalPayment.php b/civicrm/CRM/Contribute/Form/AdditionalPayment.php
index 07dd076ff4..ee860de148 100644
--- a/civicrm/CRM/Contribute/Form/AdditionalPayment.php
+++ b/civicrm/CRM/Contribute/Form/AdditionalPayment.php
@@ -362,9 +362,6 @@ class CRM_Contribute_Form_AdditionalPayment extends CRM_Contribute_Form_Abstract
     $config = CRM_Core_Config::singleton();
     $session = CRM_Core_Session::singleton();
 
-    $now = date('YmdHis');
-    $fields = [];
-
     // we need to retrieve email address
     if ($this->_context == 'standalone' && !empty($this->_params['is_email_receipt'])) {
       list($this->userDisplayName,
diff --git a/civicrm/CRM/Contribute/Form/Contribution.php b/civicrm/CRM/Contribute/Form/Contribution.php
index 04fa3e074a..a47c573dd1 100644
--- a/civicrm/CRM/Contribute/Form/Contribution.php
+++ b/civicrm/CRM/Contribute/Form/Contribution.php
@@ -211,6 +211,9 @@ class CRM_Contribute_Form_Contribution extends CRM_Contribute_Form_AbstractEditP
 
   /**
    * Set variables up before form is built.
+   *
+   * @throws \CRM_Core_Exception
+   * @throws \CiviCRM_API3_Exception
    */
   public function preProcess() {
     // Check permission for action.
@@ -279,7 +282,7 @@ class CRM_Contribute_Form_Contribution extends CRM_Contribute_Form_AbstractEditP
 
     $this->_lineItems = [];
     if ($this->_id) {
-      if (!empty($this->_compId) && $this->_compContext == 'participant') {
+      if (!empty($this->_compId) && $this->_compContext === 'participant') {
         $this->assign('compId', $this->_compId);
         $lineItem = CRM_Price_BAO_LineItem::getLineItems($this->_compId);
       }
@@ -310,6 +313,8 @@ class CRM_Contribute_Form_Contribution extends CRM_Contribute_Form_AbstractEditP
    * Set default values.
    *
    * @return array
+   *
+   * @throws \CRM_Core_Exception
    */
   public function setDefaultValues() {
     $defaults = $this->_values;
@@ -450,6 +455,9 @@ class CRM_Contribute_Form_Contribution extends CRM_Contribute_Form_AbstractEditP
 
   /**
    * Build the form object.
+   *
+   * @throws \CiviCRM_API3_Exception
+   * @throws \CRM_Core_Exception
    */
   public function buildQuickForm() {
     if ($this->_id) {
@@ -1294,7 +1302,7 @@ class CRM_Contribute_Form_Contribution extends CRM_Contribute_Form_AbstractEditP
       ]);
       $this->_id = $params['id'];
       $this->_values = $existingContribution;
-      if (CRM_Contribute_BAO_Contribution::checkContributeSettings('invoicing')) {
+      if (CRM_Invoicing_Utils::isInvoicingEnabled()) {
         $this->_values['tax_amount'] = civicrm_api3('contribution', 'getvalue', [
           'id' => $params['id'],
           'return' => 'tax_amount',
diff --git a/civicrm/CRM/Contribute/Form/Contribution/Main.php b/civicrm/CRM/Contribute/Form/Contribution/Main.php
index 6f7d403abc..7db07f48b8 100644
--- a/civicrm/CRM/Contribute/Form/Contribution/Main.php
+++ b/civicrm/CRM/Contribute/Form/Contribution/Main.php
@@ -283,7 +283,7 @@ class CRM_Contribute_Form_Contribution_Main extends CRM_Contribute_Form_Contribu
       $this->buildComponentForm($this->_id, $this);
     }
 
-    if (count($this->_paymentProcessors) >= 1 && !isset($this->_paymentProcessors[0]) && !$this->get_template_vars("isCaptcha") && $this->hasToAddForcefully()) {
+    if (count($this->_paymentProcessors) >= 1 && !$this->get_template_vars("isCaptcha") && $this->hasToAddForcefully()) {
       if (!$this->_userID) {
         $this->enableCaptchaOnForm();
       }
@@ -438,13 +438,8 @@ class CRM_Contribute_Form_Contribution_Main extends CRM_Contribute_Form_Contribu
       }
     }
     if ($this->_pcpId && empty($this->_ccid)) {
-      if ($pcpSupporter = CRM_PCP_BAO_PCP::displayName($this->_pcpId)) {
-        $pcp_supporter_text = ts('This contribution is being made thanks to the effort of <strong>%1</strong>, who supports our campaign.', [1 => $pcpSupporter]);
-        // Only tell people that can also create a PCP if the contribution page has a non-empty value in the "Create Personal Campaign Page link" field.
-        $text = CRM_PCP_BAO_PCP::getPcpBlockStatus($this->_id, 'contribute');
-        if (!empty($text)) {
-          $pcp_supporter_text .= ts("You can support it as well - once you complete the donation, you will be able to create your own Personal Campaign Page!");
-        }
+      if (CRM_PCP_BAO_PCP::displayName($this->_pcpId)) {
+        $pcp_supporter_text = CRM_PCP_BAO_PCP::getPcpSupporterText($this->_pcpId, $this->_id, 'contribute');
         $this->assign('pcpSupporterText', $pcp_supporter_text);
       }
       $prms = ['id' => $this->_pcpId];
diff --git a/civicrm/CRM/Contribute/Form/ContributionBase.php b/civicrm/CRM/Contribute/Form/ContributionBase.php
index 59670755be..aa08c053ce 100644
--- a/civicrm/CRM/Contribute/Form/ContributionBase.php
+++ b/civicrm/CRM/Contribute/Form/ContributionBase.php
@@ -561,10 +561,7 @@ class CRM_Contribute_Form_ContributionBase extends CRM_Core_Form {
       $this->assign('onBehalfEmail', $this->_params['onbehalf_location']['email'][$locTypeId[0]]['email']);
     }
     $this->assignPaymentFields();
-
-    $this->assign('email',
-      $this->controller->exportValue('Main', "email-{$this->_bltID}")
-    );
+    $this->assignEmailField();
 
     // also assign the receipt_text
     if (isset($this->_values['receipt_text'])) {
@@ -572,6 +569,25 @@ class CRM_Contribute_Form_ContributionBase extends CRM_Core_Form {
     }
   }
 
+  /**
+   * Assign email variable in the template.
+   */
+  public function assignEmailField() {
+    //If email exist in a profile, the default billing email field is not loaded on the page.
+    //Hence, assign the existing location type email by iterating through the params.
+    if ($this->_emailExists && empty($this->_params["email-{$this->_bltID}"])) {
+      foreach ($this->_params as $key => $val) {
+        if (substr($key, 0, 6) == 'email-') {
+          $this->assign('email', $this->_params[$key]);
+          break;
+        }
+      }
+    }
+    else {
+      $this->assign('email', CRM_Utils_Array::value("email-{$this->_bltID}", $this->_params));
+    }
+  }
+
   /**
    * Add the custom fields.
    *
diff --git a/civicrm/CRM/Contribute/Form/ContributionPage/Widget.php b/civicrm/CRM/Contribute/Form/ContributionPage/Widget.php
index 5bd2d52af2..e703228a16 100644
--- a/civicrm/CRM/Contribute/Form/ContributionPage/Widget.php
+++ b/civicrm/CRM/Contribute/Form/ContributionPage/Widget.php
@@ -39,6 +39,8 @@ class CRM_Contribute_Form_ContributionPage_Widget extends CRM_Contribute_Form_Co
 
     $this->assign('cpageId', $this->_id);
 
+    $this->assign('widgetExternUrl', CRM_Utils_System::externUrl('extern/widget', "cpageId={$this->_id}&widgetId={$this->_widget->id}&format=3"));
+
     $config = CRM_Core_Config::singleton();
     $title = CRM_Core_DAO::getFieldValue('CRM_Contribute_DAO_ContributionPage',
       $this->_id,
diff --git a/civicrm/CRM/Contribute/Form/ContributionView.php b/civicrm/CRM/Contribute/Form/ContributionView.php
index d16922d9ab..fc0181933a 100644
--- a/civicrm/CRM/Contribute/Form/ContributionView.php
+++ b/civicrm/CRM/Contribute/Form/ContributionView.php
@@ -165,10 +165,9 @@ class CRM_Contribute_Form_ContributionView extends CRM_Core_Form {
 
     // assign values to the template
     $this->assign($values);
-    $invoiceSettings = Civi::settings()->get('contribution_invoice_settings');
     $invoicing = CRM_Invoicing_Utils::isInvoicingEnabled();
     $this->assign('invoicing', $invoicing);
-    $this->assign('isDeferred', CRM_Utils_Array::value('deferred_revenue_enabled', $invoiceSettings));
+    $this->assign('isDeferred', Civi::settings()->get('deferred_revenue_enabled'));
     if ($invoicing && isset($values['tax_amount'])) {
       $this->assign('totalTaxAmount', $values['tax_amount']);
     }
diff --git a/civicrm/CRM/Contribute/Form/Search.php b/civicrm/CRM/Contribute/Form/Search.php
index 3f780e8323..abe1b63316 100644
--- a/civicrm/CRM/Contribute/Form/Search.php
+++ b/civicrm/CRM/Contribute/Form/Search.php
@@ -45,7 +45,7 @@ class CRM_Contribute_Form_Search extends CRM_Core_Form_Search {
    * Prefix for the controller.
    * @var string
    */
-  protected $_prefix = "contribute_";
+  protected $_prefix = 'contribute_';
 
   /**
    * Explicitly declare the entity api name.
@@ -63,7 +63,6 @@ class CRM_Contribute_Form_Search extends CRM_Core_Form_Search {
   public function preProcess() {
     $this->set('searchFormName', 'Search');
 
-    $this->_searchButtonName = $this->getButtonName('refresh');
     $this->_actionButtonName = $this->getButtonName('next', 'action');
 
     $this->_done = FALSE;
@@ -79,7 +78,7 @@ class CRM_Contribute_Form_Search extends CRM_Core_Form_Search {
       $this->_context
     );
     $prefix = NULL;
-    if ($this->_context == 'user') {
+    if ($this->_context === 'user') {
       $prefix = $this->_prefix;
     }
 
@@ -232,6 +231,8 @@ class CRM_Contribute_Form_Search extends CRM_Core_Form_Search {
    *        done.
    * The processing consists of using a Selector / Controller framework for getting the
    * search results.
+   *
+   * @throws \CRM_Core_Exception
    */
   public function postProcess() {
     if ($this->_done) {
@@ -245,9 +246,9 @@ class CRM_Contribute_Form_Search extends CRM_Core_Form_Search {
     $this->fixFormValues();
 
     // We don't show test records in summaries or dashboards
-    if (empty($this->_formValues['contribution_test']) && $this->_force && !empty($this->_context) && $this->_context == 'dashboard') {
+    if (empty($this->_formValues['contribution_test']) && $this->_force && !empty($this->_context) && $this->_context === 'dashboard') {
       // @todo - stop changing formValues - respect submitted form values, change a working array.
-      $this->_formValues["contribution_test"] = 0;
+      $this->_formValues['contribution_test'] = 0;
     }
 
     foreach ([
@@ -336,7 +337,7 @@ class CRM_Contribute_Form_Search extends CRM_Core_Form_Search {
     $selector->setKey($this->controller->_key);
 
     $prefix = NULL;
-    if ($this->_context == 'basic' || $this->_context == 'user') {
+    if ($this->_context === 'basic' || $this->_context === 'user') {
       $prefix = $this->_prefix;
     }
 
@@ -351,7 +352,7 @@ class CRM_Contribute_Form_Search extends CRM_Core_Form_Search {
     $controller->setEmbedded(TRUE);
 
     $query = &$selector->getQuery();
-    if ($this->_context == 'user') {
+    if ($this->_context === 'user') {
       $query->setSkipPermission(TRUE);
     }
 
@@ -362,6 +363,8 @@ class CRM_Contribute_Form_Search extends CRM_Core_Form_Search {
    * Use values from $_GET if force is set to TRUE.
    *
    * Note that this means that GET over-rides POST. This was a historical decision & the reasoning is not explained.
+   *
+   * @throws \CRM_Core_Exception
    */
   public function fixFormValues() {
     if (!$this->_force) {
diff --git a/civicrm/CRM/Contribute/Form/Task/Batch.php b/civicrm/CRM/Contribute/Form/Task/Batch.php
index 88ead43639..4a35044f43 100644
--- a/civicrm/CRM/Contribute/Form/Task/Batch.php
+++ b/civicrm/CRM/Contribute/Form/Task/Batch.php
@@ -69,7 +69,7 @@ class CRM_Contribute_Form_Task_Batch extends CRM_Contribute_Form_Task {
     $ufGroupId = $this->get('ufGroupId');
 
     if (!$ufGroupId) {
-      CRM_Core_Error::fatal('ufGroupId is missing');
+      throw new CRM_Core_Exception('ufGroupId is missing');
     }
     $this->_title = ts('Update multiple contributions') . ' - ' . CRM_Core_BAO_UFGroup::getTitle($ufGroupId);
     CRM_Utils_System::setTitle($this->_title);
diff --git a/civicrm/CRM/Contribute/Form/Task/PDF.php b/civicrm/CRM/Contribute/Form/Task/PDF.php
index 20868497c6..9eea32cd4b 100644
--- a/civicrm/CRM/Contribute/Form/Task/PDF.php
+++ b/civicrm/CRM/Contribute/Form/Task/PDF.php
@@ -159,7 +159,7 @@ AND    {$this->_componentClause}";
       $ids['event'] = CRM_Utils_Array::value('event', $detail);
 
       if (!$elements['baseIPN']->validateData($input, $ids, $objects, FALSE)) {
-        CRM_Core_Error::fatal();
+        throw new CRM_Core_Exception('invalid data');
       }
 
       $contribution = &$objects['contribution'];
diff --git a/civicrm/CRM/Contribute/Import/Parser/Contribution.php b/civicrm/CRM/Contribute/Import/Parser/Contribution.php
index e9249ed112..5bc8cf306e 100644
--- a/civicrm/CRM/Contribute/Import/Parser/Contribution.php
+++ b/civicrm/CRM/Contribute/Import/Parser/Contribution.php
@@ -321,7 +321,8 @@ class CRM_Contribute_Import_Parser_Contribution extends CRM_Contribute_Import_Pa
             }
           }
 
-          $newContribution = CRM_Contribute_BAO_Contribution::create($formatted, $ids);
+          $formatted['id'] = $ids['contribution'];
+          $newContribution = CRM_Contribute_BAO_Contribution::create($formatted);
           $this->_newContributions[] = $newContribution->id;
 
           //return soft valid since we need to show how soft credits were added
diff --git a/civicrm/CRM/Contribute/Selector/Search.php b/civicrm/CRM/Contribute/Selector/Search.php
index b219918535..91e65fbfa1 100644
--- a/civicrm/CRM/Contribute/Selector/Search.php
+++ b/civicrm/CRM/Contribute/Selector/Search.php
@@ -608,7 +608,7 @@ class CRM_Contribute_Selector_Search extends CRM_Core_Selector_Base implements C
   }
 
   /**
-   * @return string
+   * @return \CRM_Contact_BAO_Query
    */
   public function &getQuery() {
     return $this->_query;
diff --git a/civicrm/CRM/Core/BAO/ActionSchedule.php b/civicrm/CRM/Core/BAO/ActionSchedule.php
index d65d7b628b..c3d43ac96d 100644
--- a/civicrm/CRM/Core/BAO/ActionSchedule.php
+++ b/civicrm/CRM/Core/BAO/ActionSchedule.php
@@ -596,7 +596,7 @@ FROM civicrm_action_schedule cas
    *   List of error messages.
    */
   protected static function sendReminderEmail($tokenRow, $schedule, $toContactID) {
-    $toEmail = CRM_Contact_BAO_Contact::getPrimaryEmail($toContactID);
+    $toEmail = CRM_Contact_BAO_Contact::getPrimaryEmail($toContactID, TRUE);
     if (!$toEmail) {
       return ["email_missing" => "Couldn't find recipient's email address."];
     }
diff --git a/civicrm/CRM/Core/BAO/Address.php b/civicrm/CRM/Core/BAO/Address.php
index 578df7b89b..e83d1774e0 100644
--- a/civicrm/CRM/Core/BAO/Address.php
+++ b/civicrm/CRM/Core/BAO/Address.php
@@ -1023,8 +1023,15 @@ SELECT is_primary,
     $query = 'SELECT id, contact_id FROM civicrm_address WHERE master_id = %1';
     $dao = CRM_Core_DAO::executeQuery($query, [1 => [$addressId, 'Integer']]);
 
+    // legacy - for api backward compatibility
+    if (!isset($params['add_relationship']) && isset($params['update_current_employer'])) {
+      // warning
+      CRM_Core_Error::deprecatedFunctionWarning('update_current_employer is deprecated, use add_relationship instead');
+      $params['add_relationship'] = $params['update_current_employer'];
+    }
+
     // Default to TRUE if not set to maintain api backward compatibility.
-    $createRelationship = isset($params['update_current_employer']) ? $params['update_current_employer'] : TRUE;
+    $createRelationship = isset($params['add_relationship']) ? $params['add_relationship'] : TRUE;
 
     // unset contact id
     $skipFields = ['is_primary', 'location_type_id', 'is_billing', 'contact_id'];
diff --git a/civicrm/CRM/Core/BAO/ConfigSetting.php b/civicrm/CRM/Core/BAO/ConfigSetting.php
index 9241b41477..359685a8cf 100644
--- a/civicrm/CRM/Core/BAO/ConfigSetting.php
+++ b/civicrm/CRM/Core/BAO/ConfigSetting.php
@@ -41,6 +41,9 @@ class CRM_Core_BAO_ConfigSetting {
    *
    * @param array $params
    *   Associated array of civicrm variables.
+   * @deprecated
+   *   This method was historically used to access civicrm_domain.config_backend.
+   *   However, that has been fully replaced by the settings system since v4.7.
    */
   public static function add(&$params) {
     $domain = new CRM_Core_DAO_Domain();
@@ -69,6 +72,9 @@ class CRM_Core_BAO_ConfigSetting {
    * @param $defaults
    *
    * @return array
+   * @deprecated
+   *   This method was historically used to access civicrm_domain.config_backend.
+   *   However, that has been fully replaced by the settings system since v4.7.
    */
   public static function retrieve(&$defaults) {
     $domain = new CRM_Core_DAO_Domain();
@@ -80,7 +86,8 @@ class CRM_Core_BAO_ConfigSetting {
       $urlVar = 'task';
     }
 
-    if ($isUpgrade && CRM_Core_BAO_SchemaHandler::checkIfFieldExists('civicrm_domain', 'config_backend')) {
+    $hasBackend = CRM_Core_BAO_SchemaHandler::checkIfFieldExists('civicrm_domain', 'config_backend');
+    if ($isUpgrade && $hasBackend) {
       $domain->selectAdd('config_backend');
     }
     else {
@@ -89,7 +96,10 @@ class CRM_Core_BAO_ConfigSetting {
 
     $domain->id = CRM_Core_Config::domainID();
     $domain->find(TRUE);
-    if ($domain->config_backend) {
+    if ($hasBackend && $domain->config_backend) {
+      // This whole branch can probably be removed; the transitional loading
+      // is in SettingBag::loadValues(). Moreover, since 4.7.alpha1 dropped
+      // the column, anyone calling ::retrieve() has likely not gotten any data.
       $defaults = unserialize($domain->config_backend);
       if ($defaults === FALSE || !is_array($defaults)) {
         $defaults = [];
diff --git a/civicrm/CRM/Core/BAO/CustomField.php b/civicrm/CRM/Core/BAO/CustomField.php
index 25bd3c1e9a..1f21c3e80e 100644
--- a/civicrm/CRM/Core/BAO/CustomField.php
+++ b/civicrm/CRM/Core/BAO/CustomField.php
@@ -161,6 +161,8 @@ class CRM_Core_BAO_CustomField extends CRM_Core_DAO_CustomField {
    *   Array of arrays as would be passed into create
    * @param array $defaults
    *  Default parameters to be be merged into each of the params.
+   *
+   * @throws \CiviCRM_API3_Exception
    */
   public static function bulkSave($bulkParams, $defaults = []) {
     $addedColumns = $sql = $tables = $customFields = [];
diff --git a/civicrm/CRM/Core/BAO/CustomGroup.php b/civicrm/CRM/Core/BAO/CustomGroup.php
index e4828338e6..1bfd2a634c 100644
--- a/civicrm/CRM/Core/BAO/CustomGroup.php
+++ b/civicrm/CRM/Core/BAO/CustomGroup.php
@@ -160,7 +160,7 @@ class CRM_Core_BAO_CustomGroup extends CRM_Core_DAO_CustomGroup {
 
         if (CRM_Core_DAO_AllCoreTables::isCoreTable($tableName)) {
           // Bad idea.  Prevent group creation because it might lead to a broken configuration.
-          CRM_Core_Error::fatal(ts("Cannot create custom table because %1 is already a core table.", ['1' => $tableName]));
+          throw new CRM_Core_Exception(ts('Cannot create custom table because %1 is already a core table.', ['1' => $tableName]));
         }
       }
     }
@@ -1639,9 +1639,9 @@ ORDER BY civicrm_custom_group.weight,
               $value = NULL;
             }
           }
-          elseif ($field['html_type'] == 'Select' ||
-            ($field['html_type'] == 'Radio' &&
-              $field['data_type'] != 'Boolean'
+          elseif ($field['html_type'] === 'Select' ||
+            ($field['html_type'] === 'Radio' &&
+              $field['data_type'] !== 'Boolean'
             )
           ) {
             $customOption = CRM_Core_BAO_CustomOption::getCustomOption($key, TRUE);
@@ -1654,7 +1654,7 @@ ORDER BY civicrm_custom_group.weight,
               }
             }
           }
-          elseif ($field['data_type'] == 'Date') {
+          elseif ($field['data_type'] === 'Date') {
             $valid = CRM_Utils_Rule::date($value);
           }
 
@@ -1679,12 +1679,14 @@ ORDER BY civicrm_custom_group.weight,
    *
    * @return bool
    *   false if it matches else true
+   *
+   * @throws \CRM_Core_Exception
    */
   public static function checkCustomField($customFieldId, &$removeCustomFieldTypes) {
-    $query = "SELECT cg.extends as extends
+    $query = 'SELECT cg.extends as extends
                   FROM civicrm_custom_group as cg, civicrm_custom_field as cf
                   WHERE cg.id = cf.custom_group_id
-                    AND cf.id =" .
+                    AND cf.id =' .
       CRM_Utils_Type::escape($customFieldId, 'Integer');
 
     $extends = CRM_Core_DAO::singleValueQuery($query);
@@ -1762,7 +1764,7 @@ SELECT IF( EXISTS(SELECT name FROM civicrm_contact_type WHERE name like %1), 1,
           if (array_key_exists($table, $extendObjs)) {
             return $extendObjs[$table];
           }
-          CRM_Core_Error::fatal();
+          throw new CRM_Core_Exception('Unknown error');
         }
     }
   }
@@ -1839,7 +1841,7 @@ SELECT IF( EXISTS(SELECT name FROM civicrm_contact_type WHERE name like %1), 1,
           if (isset($properties['customValue'][$groupCount])) {
             $properties['element_name'] = "custom_{$k}_{$properties['customValue'][$groupCount]['id']}";
             $formattedGroupTree[$key]['table_id'] = $properties['customValue'][$groupCount]['id'];
-            if ($properties['data_type'] == 'File') {
+            if ($properties['data_type'] === 'File') {
               $properties['element_value'] = $properties['customValue'][$groupCount];
               $uploadNames[] = $properties['element_name'];
             }
@@ -2064,7 +2066,7 @@ SELECT  civicrm_custom_group.id as groupID, civicrm_custom_group.title as groupT
 
     if (!$flag) {
       $extendObjs = [];
-      CRM_Core_OptionValue::getValues(['name' => 'cg_extend_objects'], $extendObjs);
+      CRM_Core_OptionValue::getValues(['name' => 'cg_extend_objects'], $extendObjs, 'weight', TRUE);
 
       foreach ($extendObjs as $ovId => $ovValues) {
         if ($ovValues['description']) {
@@ -2076,7 +2078,7 @@ SELECT  civicrm_custom_group.id as groupID, civicrm_custom_group.title as groupT
           }
 
           if (!is_array($args)) {
-            CRM_Core_Error::fatal('Arg is not of type array');
+            throw new CRM_Core_Exception('Arg is not of type array');
           }
 
           list($className) = explode('::', $callback);
diff --git a/civicrm/CRM/Core/BAO/FinancialTrxn.php b/civicrm/CRM/Core/BAO/FinancialTrxn.php
index f81fdf802d..6abb1bdb83 100644
--- a/civicrm/CRM/Core/BAO/FinancialTrxn.php
+++ b/civicrm/CRM/Core/BAO/FinancialTrxn.php
@@ -479,12 +479,14 @@ WHERE ceft.entity_id = %1";
   }
 
   /**
+   * Get the total sum of all payments (and optionally refunds) for a contribution record
+   *
    * @param int $contributionID
    * @param bool $includeRefund
    *
-   * @return string
+   * @return float
    */
-  public static function getTotalPayments($contributionID, $includeRefund = FALSE) {
+  public static function getTotalPayments($contributionID, $includeRefund = FALSE): float {
     $statusIDs = [CRM_Core_PseudoConstant::getKey('CRM_Contribute_BAO_Contribution', 'contribution_status_id', 'Completed')];
 
     if ($includeRefund) {
@@ -495,7 +497,7 @@ WHERE ceft.entity_id = %1";
       INNER JOIN civicrm_entity_financial_trxn eft ON (eft.financial_trxn_id = ft.id AND eft.entity_table = 'civicrm_contribution')
       WHERE eft.entity_id = %1 AND ft.is_payment = 1 AND ft.status_id IN (%2) ";
 
-    return CRM_Core_DAO::singleValueQuery($sql, [
+    return (float) CRM_Core_DAO::singleValueQuery($sql, [
       1 => [$contributionID, 'Integer'],
       2 => [implode(',', $statusIDs), 'CommaSeparatedIntegers'],
     ]);
diff --git a/civicrm/CRM/Core/BAO/LabelFormat.php b/civicrm/CRM/Core/BAO/LabelFormat.php
index c126ef9bc5..175d599410 100644
--- a/civicrm/CRM/Core/BAO/LabelFormat.php
+++ b/civicrm/CRM/Core/BAO/LabelFormat.php
@@ -61,10 +61,11 @@ class CRM_Core_BAO_LabelFormat extends CRM_Core_DAO_OptionValue {
       'default' => 'portrait',
     ],
     'font-name' => [
-      // Font name: 'courier', 'helvetica', 'times'
+      // Font name: 'dejavusans', 'courier', 'helvetica', 'times'
+      // dejavusans is the only one that supports unicode
       'name' => 'font-name',
       'type' => CRM_Utils_Type::T_STRING,
-      'default' => 'helvetica',
+      'default' => 'dejavusans',
     ],
     'font-size' => [
       // Font size: always in points
diff --git a/civicrm/CRM/Core/BAO/Mapping.php b/civicrm/CRM/Core/BAO/Mapping.php
index 05210de368..e29e071469 100644
--- a/civicrm/CRM/Core/BAO/Mapping.php
+++ b/civicrm/CRM/Core/BAO/Mapping.php
@@ -302,63 +302,27 @@ class CRM_Core_BAO_Mapping extends CRM_Core_DAO_Mapping {
   }
 
   /**
-   * Build the mapping form.
+   * Build the mapping form for Search Builder.
    *
    * @param CRM_Core_Form $form
-   * @param string $mappingType
-   *   (Export/Search Builder). (Import apparently used to use this but does no longer).
    * @param int $mappingId
    * @param int $columnNo
    * @param int $blockCount
    *   (no of blocks shown).
    * @param int $exportMode
    */
-  public static function buildMappingForm(&$form, $mappingType, $mappingId, $columnNo, $blockCount, $exportMode = NULL) {
+  public static function buildMappingForm(&$form, $mappingId, $columnNo, $blockCount, $exportMode = NULL) {
 
     $hasLocationTypes = [];
     $hasRelationTypes = [];
 
-    //get the saved mapping details
-
-    if ($mappingType == 'Export') {
-      $columnCount = ['1' => $columnNo];
-      $form->applyFilter('saveMappingName', 'trim');
-
-      //to save the current mappings
-      if (!isset($mappingId)) {
-        $saveDetailsName = ts('Save this field mapping');
-        $form->add('text', 'saveMappingName', ts('Name'));
-        $form->add('text', 'saveMappingDesc', ts('Description'));
-      }
-      else {
-        $form->assign('loadedMapping', $mappingId);
-
-        $params = ['id' => $mappingId];
-        $temp = [];
-        $mappingDetails = CRM_Core_BAO_Mapping::retrieve($params, $temp);
-
-        $form->assign('savedName', $mappingDetails->name);
-
-        $form->add('hidden', 'mappingId', $mappingId);
-
-        $form->addElement('checkbox', 'updateMapping', ts('Update this field mapping'), NULL);
-        $saveDetailsName = ts('Save as a new field mapping');
-        $form->add('text', 'saveMappingName', ts('Name'));
-        $form->add('text', 'saveMappingDesc', ts('Description'));
-      }
-
-      $form->addElement('checkbox', 'saveMapping', $saveDetailsName, NULL, ['onclick' => "showSaveDetails(this)"]);
-      $form->addFormRule(['CRM_Export_Form_Map', 'formRule'], $form->get('mappingTypeId'));
-    }
-    elseif ($mappingType == 'Search Builder') {
-      $columnCount = $columnNo;
-      $form->addElement('submit', 'addBlock', ts('Also include contacts where'),
-        ['class' => 'submit-link']
-      );
-    }
+    $columnCount = $columnNo;
+    $form->addElement('submit', 'addBlock', ts('Also include contacts where'),
+      ['class' => 'submit-link']
+    );
 
     $contactTypes = CRM_Contact_BAO_ContactType::basicTypes();
-    $fields = self::getBasicFields($mappingType);
+    $fields = self::getBasicFields('Search Builder');
 
     // Unset groups, tags, notes for component export
     if ($exportMode != CRM_Export_Form_Select::CONTACT_EXPORT) {
@@ -367,37 +331,35 @@ class CRM_Core_BAO_Mapping extends CRM_Core_DAO_Mapping {
       }
     }
 
-    if ($mappingType == 'Search Builder') {
-      // Build the common contact fields array.
-      $fields['Contact'] = [];
-      foreach ($fields[$contactTypes[0]] as $key => $value) {
-        // If a field exists across all contact types, move it to the "Contact" selector
-        $ubiquitious = TRUE;
-        foreach ($contactTypes as $type) {
-          if (!isset($fields[$type][$key])) {
-            $ubiquitious = FALSE;
-          }
-        }
-        if ($ubiquitious) {
-          $fields['Contact'][$key] = $value;
-          foreach ($contactTypes as $type) {
-            unset($fields[$type][$key]);
-          }
+    // Build the common contact fields array.
+    $fields['Contact'] = [];
+    foreach ($fields[$contactTypes[0]] as $key => $value) {
+      // If a field exists across all contact types, move it to the "Contact" selector
+      $ubiquitious = TRUE;
+      foreach ($contactTypes as $type) {
+        if (!isset($fields[$type][$key])) {
+          $ubiquitious = FALSE;
         }
       }
-      if (array_key_exists('note', $fields['Contact'])) {
-        $noteTitle = $fields['Contact']['note']['title'];
-        $fields['Contact']['note']['title'] = $noteTitle . ': ' . ts('Body and Subject');
-        $fields['Contact']['note_body'] = ['title' => $noteTitle . ': ' . ts('Body Only'), 'name' => 'note_body'];
-        $fields['Contact']['note_subject'] = [
-          'title' => $noteTitle . ': ' . ts('Subject Only'),
-          'name' => 'note_subject',
-        ];
+      if ($ubiquitious) {
+        $fields['Contact'][$key] = $value;
+        foreach ($contactTypes as $type) {
+          unset($fields[$type][$key]);
+        }
       }
     }
+    if (array_key_exists('note', $fields['Contact'])) {
+      $noteTitle = $fields['Contact']['note']['title'];
+      $fields['Contact']['note']['title'] = $noteTitle . ': ' . ts('Body and Subject');
+      $fields['Contact']['note_body'] = ['title' => $noteTitle . ': ' . ts('Body Only'), 'name' => 'note_body'];
+      $fields['Contact']['note_subject'] = [
+        'title' => $noteTitle . ': ' . ts('Subject Only'),
+        'name' => 'note_subject',
+      ];
+    }
 
     // add component fields
-    $compArray = self::addComponentFields($fields, $mappingType, $exportMode);
+    $compArray = self::addComponentFields($fields, 'Search Builder', $exportMode);
 
     foreach ($fields as $key => $value) {
 
@@ -444,9 +406,7 @@ class CRM_Core_BAO_Mapping extends CRM_Core_DAO_Mapping {
     // since we need a hierarchical list to display contact types & subtypes,
     // this is what we going to display in first selector
     $contactTypeSelect = CRM_Contact_BAO_ContactType::getSelectElements(FALSE, FALSE);
-    if ($mappingType == 'Search Builder') {
-      $contactTypeSelect = ['Contact' => ts('Contacts')] + $contactTypeSelect;
-    }
+    $contactTypeSelect = ['Contact' => ts('Contacts')] + $contactTypeSelect;
 
     $sel1 = ['' => ts('- select record type -')] + $contactTypeSelect + $compArray;
 
@@ -494,74 +454,6 @@ class CRM_Core_BAO_Mapping extends CRM_Core_DAO_Mapping {
     // Array for core fields and relationship custom data
     $relationshipTypes = CRM_Contact_BAO_Relationship::getContactRelationshipType(NULL, NULL, NULL, NULL, TRUE);
 
-    if ($mappingType == 'Export') {
-      foreach ($sel1 as $k => $sel) {
-        if ($k) {
-          foreach ($mapperFields[$k] as $field => $dontCare) {
-            if (isset($hasRelationTypes[$k][$field])) {
-              list($id, $first, $second) = explode('_', $field);
-              // FIX ME: For now let's not expose custom data related to relationship
-              $relationshipCustomFields = [];
-              //$relationshipCustomFields    = self::getRelationTypeCustomGroupData( $id );
-              //asort($relationshipCustomFields);
-
-              $relatedFields = [];
-              $relationshipType = new CRM_Contact_BAO_RelationshipType();
-              $relationshipType->id = $id;
-              if ($relationshipType->find(TRUE)) {
-                $direction = "contact_sub_type_$second";
-                $target_type = 'contact_type_' . $second;
-                if (isset($relationshipType->$direction)) {
-                  $relatedFields = array_merge((array) $relatedMapperFields[$relationshipType->$direction], (array) $relationshipCustomFields);
-                }
-                elseif (isset($relationshipType->$target_type)) {
-                  $relatedFields = array_merge((array) $relatedMapperFields[$relationshipType->$target_type], (array) $relationshipCustomFields);
-                }
-                //CRM-20672 If contact target type not set e.g. "All Contacts" relationship - present user with all field options and let them determine what they expect to work
-                else {
-                  $types = CRM_Contact_BAO_ContactType::basicTypes(FALSE);
-                  foreach ($types as $contactType => $label) {
-                    $relatedFields = array_merge($relatedFields, (array) $relatedMapperFields[$label]);
-                  }
-                  $relatedFields = array_merge($relatedFields, (array) $relationshipCustomFields);
-                }
-              }
-              asort($relatedFields);
-              $sel5[$k][$field] = $relatedFields;
-            }
-          }
-        }
-      }
-
-      //Location Type for relationship fields
-      foreach ($sel5 as $k => $v) {
-        if ($v) {
-          foreach ($v as $rel => $fields) {
-            foreach ($fields as $field => $fieldLabel) {
-              if (isset($hasLocationTypes[$k][$field])) {
-                $sel6[$k][$rel][$field] = $locationTypes;
-              }
-            }
-          }
-        }
-      }
-
-      //PhoneTypes for  relationship fields
-      $sel7[''] = NULL;
-      foreach ($sel6 as $k => $rel) {
-        if ($k) {
-          foreach ($rel as $phonekey => $phonevalue) {
-            foreach ($locationTypes as $locType => $loc) {
-              if (trim($locType) != '') {
-                $sel7[$k][$phonekey]['phone'][$locType] = &$phoneTypes;
-                $sel7[$k][$phonekey]['im'][$locType] = &$imProviders;
-              }
-            }
-          }
-        }
-      }
-    }
-
     //special fields that have location, hack for primary location
     $specialFields = [
       'street_address',
@@ -618,12 +510,7 @@ class CRM_Core_BAO_Mapping extends CRM_Core_DAO_Mapping {
           list($mappingName, $defaults, $noneArray, $jsSet) = self::loadSavedMapping($mappingLocation, $x, $i, $mappingName, $mapperFields, $mappingContactType, $mappingRelation, $specialFields, $mappingPhoneType, $defaults, $noneArray, $mappingImProvider, $mappingOperator, $mappingValue);
         }
         //Fix for Search Builder
-        if ($mappingType == 'Export') {
-          $j = 7;
-        }
-        else {
-          $j = 4;
-        }
+        $j = 4;
 
         $formValues = $form->exportValues();
         if (!$jsSet) {
@@ -656,48 +543,21 @@ class CRM_Core_BAO_Mapping extends CRM_Core_DAO_Mapping {
           }
         }
         //Fix for Search Builder
-        if ($mappingType == 'Export') {
-          if (!isset($mappingId) || $i >= count(reset($mappingName))) {
-            if (isset($formValues['mapper']) &&
-              isset($formValues['mapper'][$x][$i][1]) &&
-              array_key_exists($formValues['mapper'][$x][$i][1], $relationshipTypes)
-            ) {
-              $sel->setOptions([$sel1, $sel2, $sel5, $sel6, $sel7, $sel3, $sel4]);
-            }
-            else {
-              $sel->setOptions([$sel1, $sel2, $sel3, $sel4, $sel5, $sel6, $sel7]);
-            }
-          }
-          else {
-            $sel->setOptions([$sel1, $sel2, $sel3, $sel4, $sel5, $sel6, $sel7]);
-          }
-        }
-        else {
-          $sel->setOptions([$sel1, $sel2, $sel3, $sel4]);
-        }
+        $sel->setOptions([$sel1, $sel2, $sel3, $sel4]);
 
-        if ($mappingType == 'Search Builder') {
-          //CRM -2292, restricted array set
-          $operatorArray = ['' => ts('-operator-')] + CRM_Core_SelectValues::getSearchBuilderOperators();
+        //CRM -2292, restricted array set
+        $operatorArray = ['' => ts('-operator-')] + CRM_Core_SelectValues::getSearchBuilderOperators();
 
-          $form->add('select', "operator[$x][$i]", '', $operatorArray);
-          $form->add('text', "value[$x][$i]", '');
-        }
-      }
-      //end of columnCnt for
-      if ($mappingType == 'Search Builder') {
-        $title = ts('Another search field');
-      }
-      else {
-        $title = ts('Select more fields');
+        $form->add('select', "operator[$x][$i]", '', $operatorArray);
+        $form->add('text', "value[$x][$i]", '');
       }
 
-      $form->addElement('submit', "addMore[$x]", $title, ['class' => 'submit-link']);
+      $form->addElement('submit', "addMore[$x]", ts('Another search field'), ['class' => 'submit-link']);
     }
     //end of block for
 
     $js = "<script type='text/javascript'>\n";
-    $formName = "document." . (($mappingType == 'Export') ? 'Map' : 'Builder');
+    $formName = "document.Builder";
     if (!empty($nullArray)) {
       $js .= "var nullArray = [";
       $elements = [];
diff --git a/civicrm/CRM/Core/BAO/RecurringEntity.php b/civicrm/CRM/Core/BAO/RecurringEntity.php
index b5e56e955c..6e16f1da75 100644
--- a/civicrm/CRM/Core/BAO/RecurringEntity.php
+++ b/civicrm/CRM/Core/BAO/RecurringEntity.php
@@ -586,6 +586,8 @@ class CRM_Core_BAO_RecurringEntity extends CRM_Core_DAO_RecurringEntity {
 
       CRM_Core_BAO_RecurringEntity::quickAdd($object->id, $newObject->id, $entityTable);
     }
+
+    CRM_Utils_Hook::copy(CRM_Core_DAO_AllCoreTables::getBriefName($daoName), $newObject);
     return $newObject;
   }
 
diff --git a/civicrm/CRM/Core/BAO/SchemaHandler.php b/civicrm/CRM/Core/BAO/SchemaHandler.php
index b135036d64..2f3f70241e 100644
--- a/civicrm/CRM/Core/BAO/SchemaHandler.php
+++ b/civicrm/CRM/Core/BAO/SchemaHandler.php
@@ -557,7 +557,7 @@ MODIFY      {$columnName} varchar( $length )
    * Check if the table has an index matching the name.
    *
    * @param string $tableName
-   * @param array $indexName
+   * @param string $indexName
    *
    * @return bool
    */
@@ -654,15 +654,20 @@ MODIFY      {$columnName} varchar( $length )
    * @param bool $dropFalseIndices
    *  If set - this function deletes false indices present in the DB which mismatches the expected
    *  values of xml file so that civi re-creates them with correct values using createMissingIndices() function.
+   * @param array|FALSE $tables
+   *   An optional array of tables - if provided the results will be restricted to these tables.
    *
    * @return array
    *   index specifications
    */
-  public static function getMissingIndices($dropFalseIndices = FALSE) {
+  public static function getMissingIndices($dropFalseIndices = FALSE, $tables = FALSE) {
     $requiredSigs = $existingSigs = [];
     // Get the indices defined (originally) in the xml files
     $requiredIndices = CRM_Core_DAO_AllCoreTables::indices();
     $reqSigs = [];
+    if ($tables !== FALSE) {
+      $requiredIndices = array_intersect_key($requiredIndices, array_fill_keys($tables, TRUE));
+    }
     foreach ($requiredIndices as $table => $indices) {
       $reqSigs[] = CRM_Utils_Array::collect('sig', $indices);
     }
@@ -791,4 +796,101 @@ MODIFY      {$columnName} varchar( $length )
     return $sql;
   }
 
+  /**
+   * Performs the utf8mb4 migration.
+   *
+   * @param bool $revert
+   *   Being able to revert if primarily for unit testing.
+   *
+   * @return bool
+   */
+  public static function migrateUtf8mb4($revert = FALSE) {
+    $newCharSet = $revert ? 'utf8' : 'utf8mb4';
+    $newCollation = $revert ? 'utf8_unicode_ci' : 'utf8mb4_unicode_ci';
+    $newBinaryCollation = $revert ? 'utf8_bin' : 'utf8mb4_bin';
+    $tables = [];
+    $dao = new CRM_Core_DAO();
+    $database = $dao->_database;
+    CRM_Core_DAO::executeQuery("ALTER DATABASE $database CHARACTER SET = $newCharSet COLLATE = $newCollation");
+    $dao = CRM_Core_DAO::executeQuery("SHOW TABLE STATUS WHERE Engine = 'InnoDB' AND Name LIKE 'civicrm\_%'");
+    while ($dao->fetch()) {
+      $tables[$dao->Name] = [
+        'Engine' => $dao->Engine,
+      ];
+    }
+    $dsn = defined('CIVICRM_LOGGING_DSN') ? DB::parseDSN(CIVICRM_LOGGING_DSN) : DB::parseDSN(CIVICRM_DSN);
+    $logging_database = $dsn['database'];
+    $dao = CRM_Core_DAO::executeQuery("SHOW TABLE STATUS FROM `$logging_database` WHERE Engine <> 'MyISAM' AND Name LIKE 'log\_civicrm\_%'");
+    while ($dao->fetch()) {
+      $tables["$logging_database.{$dao->Name}"] = [
+        'Engine' => $dao->Engine,
+      ];
+    }
+    foreach ($tables as $table => $param) {
+      $query = "ALTER TABLE $table";
+      $dao = CRM_Core_DAO::executeQuery("SHOW FULL COLUMNS FROM $table", [], TRUE, NULL, FALSE, FALSE);
+      $index = 0;
+      $params = [];
+      $tableCollation = $newCollation;
+      while ($dao->fetch()) {
+        if (!$dao->Collation || $dao->Collation === $newCollation || $dao->Collation === $newBinaryCollation) {
+          continue;
+        }
+        if (strpos($dao->Collation, 'utf8') !== 0) {
+          continue;
+        }
+
+        if (strpos($dao->Collation, '_bin') !== FALSE) {
+          $tableCollation = $newBinaryCollation;
+        }
+        else {
+          $tableCollation = $newCollation;
+        }
+        if ($dao->Null === 'YES') {
+          $null = 'NULL';
+        }
+        else {
+          $null = 'NOT NULL';
+        }
+        $default = '';
+        if ($dao->Default !== NULL) {
+          $index++;
+          $default = "DEFAULT %$index";
+          $params[$index] = [$dao->Default, 'String'];
+        }
+        elseif ($dao->Null === 'YES') {
+          $default = 'DEFAULT NULL';
+        }
+        $index++;
+        $params[$index] = [$dao->Comment, 'String'];
+        $query .= " MODIFY `{$dao->Field}` {$dao->Type} CHARACTER SET $newCharSet COLLATE $tableCollation $null $default {$dao->Extra} COMMENT %$index,";
+      }
+      $query .= " CHARACTER SET = $newCharSet COLLATE = $tableCollation";
+      if ($param['Engine'] === 'InnoDB') {
+        $query .= ' ROW_FORMAT = Dynamic';
+      }
+      // Disable i18n rewrite.
+      CRM_Core_DAO::executeQuery($query, $params, TRUE, NULL, FALSE, FALSE);
+    }
+    return TRUE;
+  }
+
+  /**
+   * Get the database collation.
+   *
+   * @return string
+   */
+  public static function getDBCollation() {
+    return CRM_Core_DAO::singleValueQuery('SELECT @@collation_database');
+  }
+
+  /**
+   * Get the database collation.
+   *
+   * @return string
+   */
+  public static function getDBCharset() {
+    return CRM_Core_DAO::singleValueQuery('SELECT @@character_set_database');
+  }
+
 }
diff --git a/civicrm/CRM/Core/BAO/Setting.php b/civicrm/CRM/Core/BAO/Setting.php
index 50cc7dc064..225f44926a 100644
--- a/civicrm/CRM/Core/BAO/Setting.php
+++ b/civicrm/CRM/Core/BAO/Setting.php
@@ -171,7 +171,7 @@ class CRM_Core_BAO_Setting extends CRM_Core_DAO_Setting {
    *   (required) An api formatted array of keys and values.
    * @param null $domains
    *
-   * @throws api_Exception
+   * @throws API_Exception
    * @domains array an array of domains to get settings for. Default is the current domain
    * @return array
    */
@@ -211,7 +211,7 @@ class CRM_Core_BAO_Setting extends CRM_Core_DAO_Setting {
    *   Empty array to be populated with fields metadata.
    * @param bool $createMode
    *
-   * @throws api_Exception
+   * @throws API_Exception
    * @return array
    *   name => value array of the fields to be set (with extraneous removed)
    */
@@ -253,7 +253,7 @@ class CRM_Core_BAO_Setting extends CRM_Core_DAO_Setting {
     $fields = civicrm_api3('setting', 'getfields', $getFieldsParams);
     $invalidParams = (array_diff_key($settingParams, $fields['values']));
     if (!empty($invalidParams)) {
-      throw new api_Exception(implode(',', array_keys($invalidParams)) . " not valid settings");
+      throw new API_Exception(implode(',', array_keys($invalidParams)) . " not valid settings");
     }
     if (!empty($settingParams)) {
       $filteredFields = array_intersect_key($settingParams, $fields['values']);
@@ -274,9 +274,10 @@ class CRM_Core_BAO_Setting extends CRM_Core_DAO_Setting {
    *   Metadata for given field (drawn from the xml)
    *
    * @return bool
-   * @throws \api_Exception
+   * @throws \API_Exception
    */
   public static function validateSetting(&$value, array $fieldSpec) {
+    // Deprecated guesswork - should use $fieldSpec['serialize']
     if ($fieldSpec['type'] == 'String' && is_array($value)) {
       $value = CRM_Core_DAO::VALUE_SEPARATOR . implode(CRM_Core_DAO::VALUE_SEPARATOR, $value) . CRM_Core_DAO::VALUE_SEPARATOR;
     }
@@ -286,7 +287,7 @@ class CRM_Core_BAO_Setting extends CRM_Core_DAO_Setting {
     else {
       $cb = Civi\Core\Resolver::singleton()->get($fieldSpec['validate_callback']);
       if (!call_user_func_array($cb, array(&$value, $fieldSpec))) {
-        throw new api_Exception("validation failed for {$fieldSpec['name']} = $value  based on callback {$fieldSpec['validate_callback']}");
+        throw new API_Exception("validation failed for {$fieldSpec['name']} = $value  based on callback {$fieldSpec['validate_callback']}");
       }
     }
   }
@@ -298,11 +299,11 @@ class CRM_Core_BAO_Setting extends CRM_Core_DAO_Setting {
    * @param array $fieldSpec Metadata for given field (drawn from the xml)
    *
    * @return bool
-   * @throws \api_Exception
+   * @throws \API_Exception
    */
   public static function validateBoolSetting(&$value, $fieldSpec) {
     if (!CRM_Utils_Rule::boolean($value)) {
-      throw new api_Exception("Boolean value required for {$fieldSpec['name']}");
+      throw new API_Exception("Boolean value required for {$fieldSpec['name']}");
     }
     if (!$value) {
       $value = 0;
diff --git a/civicrm/CRM/Core/BAO/UFGroup.php b/civicrm/CRM/Core/BAO/UFGroup.php
index ea56ed7935..43995fc555 100644
--- a/civicrm/CRM/Core/BAO/UFGroup.php
+++ b/civicrm/CRM/Core/BAO/UFGroup.php
@@ -1477,13 +1477,13 @@ class CRM_Core_BAO_UFGroup extends CRM_Core_DAO_UFGroup {
   /**
    * Make uf join entries for an uf group.
    *
-   * @param array $params
-   *   (reference) an assoc array of name/value pairs.
+   * @param int $weight
+   * @param array $groupTypes
+   *   An assoc array of name/value pairs.
    * @param int $ufGroupId
    *   Ufgroup id.
    */
-  public static function createUFJoin(&$params, $ufGroupId) {
-    $groupTypes = CRM_Utils_Array::value('uf_group_type', $params);
+  public static function createUFJoin($weight, $groupTypes, $ufGroupId) {
 
     // get ufjoin records for uf group
     $ufGroupRecord = CRM_Core_BAO_UFGroup::getUFJoinRecord($ufGroupId);
@@ -1507,7 +1507,7 @@ class CRM_Core_BAO_UFGroup extends CRM_Core_DAO_UFGroup {
       $joinParams = [];
       $joinParams['uf_group_id'] = $ufGroupId;
       $joinParams['module'] = $key;
-      if ($key == 'User Account') {
+      if ($key === 'User Account') {
         $menuRebuild = TRUE;
       }
       if (array_key_exists($key, $groupTypes) && !in_array($key, $ufGroupRecord)) {
@@ -1521,14 +1521,14 @@ class CRM_Core_BAO_UFGroup extends CRM_Core_DAO_UFGroup {
     }
 
     //update the weight
-    $query = "
+    $query = '
 UPDATE civicrm_uf_join
 SET    weight = %1
 WHERE  uf_group_id = %2
 AND    ( entity_id IS NULL OR entity_id <= 0 )
-";
+';
     $p = [
-      1 => [$params['weight'], 'Integer'],
+      1 => [$weight, 'Integer'],
       2 => [$ufGroupId, 'Integer'],
     ];
     CRM_Core_DAO::executeQuery($query, $p);
diff --git a/civicrm/CRM/Core/ClassLoader.php b/civicrm/CRM/Core/ClassLoader.php
index 9af4ce3238..34b770fd7e 100644
--- a/civicrm/CRM/Core/ClassLoader.php
+++ b/civicrm/CRM/Core/ClassLoader.php
@@ -124,7 +124,13 @@ class CRM_Core_ClassLoader {
     $this->initHtmlPurifier($prepend);
 
     $this->_registered = TRUE;
-    $packages_path = implode(DIRECTORY_SEPARATOR, [$civicrm_base_path, 'packages']);
+    // The ClassLoader runs before the classes are available. Approximate Civi::paths()->get('[civicrm.packages]').
+    if (isset($GLOBALS['civicrm_paths']['civicrm.packages']['path'])) {
+      $packages_path = rtrim($GLOBALS['civicrm_paths']['civicrm.packages']['path'], DIRECTORY_SEPARATOR);
+    }
+    else {
+      $packages_path = implode(DIRECTORY_SEPARATOR, [$civicrm_base_path, 'packages']);
+    }
     $include_paths = [
       '.',
       $civicrm_base_path,
@@ -177,7 +183,12 @@ class CRM_Core_ClassLoader {
     // we do this to prevent a autoloader errors with joomla / 3rd party packages
     // Use absolute path, since we don't know the content of include_path yet.
     // CRM-11304
-    $file = dirname(__FILE__) . '/../../packages/IDS/vendors/htmlpurifier/HTMLPurifier/Bootstrap.php';
+    if (isset($GLOBALS['civicrm_paths']['civicrm.packages']['path'])) {
+      $file = rtrim($GLOBALS['civicrm_paths']['civicrm.packages']['path'], DIRECTORY_SEPARATOR) . '/IDS/vendors/htmlpurifier/HTMLPurifier/Bootstrap.php';
+    }
+    else {
+      $file = dirname(__FILE__) . '/../../packages/IDS/vendors/htmlpurifier/HTMLPurifier/Bootstrap.php';
+    }
     if (file_exists($file)) {
       return $file;
     }
diff --git a/civicrm/CRM/Core/CodeGen/Config.php b/civicrm/CRM/Core/CodeGen/Config.php
index 8853913d98..aa50e05957 100644
--- a/civicrm/CRM/Core/CodeGen/Config.php
+++ b/civicrm/CRM/Core/CodeGen/Config.php
@@ -39,6 +39,10 @@ class CRM_Core_CodeGen_Config extends CRM_Core_CodeGen_BaseTask {
    *   path to config template
    */
   public function findConfigTemplate($cms) {
+    if (getenv('GENCODE_CONFIG_TEMPLATE')) {
+      return getenv('GENCODE_CONFIG_TEMPLATE');
+    }
+
     $candidates = [];
     switch ($cms) {
       case 'backdrop':
diff --git a/civicrm/CRM/Core/CodeGen/Main.php b/civicrm/CRM/Core/CodeGen/Main.php
index 4ea9ba8934..88a31222d6 100644
--- a/civicrm/CRM/Core/CodeGen/Main.php
+++ b/civicrm/CRM/Core/CodeGen/Main.php
@@ -151,13 +151,17 @@ Alternatively you can get a version of CiviCRM that matches your PHP version
     return $this->sourceDigest;
   }
 
-  protected function init() {
+  /**
+   * @return static
+   */
+  public function init() {
     if (!$this->database || !$this->tables) {
       $specification = new CRM_Core_CodeGen_Specification();
       $specification->parse($this->schemaPath, $this->buildVersion);
       $this->database = $specification->database;
       $this->tables = $specification->tables;
     }
+    return $this;
   }
 
 }
diff --git a/civicrm/CRM/Core/CodeGen/Schema.php b/civicrm/CRM/Core/CodeGen/Schema.php
index b96cb39ebe..8a7cfb5822 100644
--- a/civicrm/CRM/Core/CodeGen/Schema.php
+++ b/civicrm/CRM/Core/CodeGen/Schema.php
@@ -18,24 +18,38 @@ class CRM_Core_CodeGen_Schema extends CRM_Core_CodeGen_BaseTask {
   public function run() {
     CRM_Core_CodeGen_Util_File::createDir($this->config->sqlCodePath);
 
-    $this->generateCreateSql();
-    $this->generateDropSql();
+    $put = function ($files) {
+      foreach ($files as $file => $content) {
+        if (substr($content, -1) !== "\n") {
+          $content .= "\n";
+        }
+        file_put_contents($this->config->sqlCodePath . $file, $content);
+      }
+    };
 
-    $this->generateLocaleDataSql();
+    echo "Generating sql file\n";
+    $put($this->generateCreateSql());
+
+    echo "Generating sql drop tables file\n";
+    $put($this->generateDropSql());
+
+    foreach ($this->locales as $locale) {
+      echo "Generating data files for $locale\n";
+      $put($this->generateLocaleDataSql($locale));
+    }
 
     // also create the archive tables
     // $this->generateCreateSql('civicrm_archive.mysql' );
     // $this->generateDropSql('civicrm_archive_drop.mysql');
 
-    $this->generateNavigation();
-    $this->generateSample();
+    echo "Generating navigation file\n";
+    $put($this->generateNavigation());
+
+    echo "Generating sample file\n";
+    $put($this->generateSample());
   }
 
-  /**
-   * @param string $fileName
-   */
-  public function generateCreateSql($fileName = 'civicrm.mysql') {
-    echo "Generating sql file\n";
+  public function generateCreateSql() {
     $template = new CRM_Core_CodeGen_Util_Template('sql');
 
     $template->assign('database', $this->config->database);
@@ -44,33 +58,34 @@ class CRM_Core_CodeGen_Schema extends CRM_Core_CodeGen_BaseTask {
     $template->assign('dropOrder', $dropOrder);
     $template->assign('mysql', 'modern');
 
-    $template->run('schema.tpl', $this->config->sqlCodePath . $fileName);
+    return ['civicrm.mysql' => $template->fetch('schema.tpl')];
   }
 
-  /**
-   * @param string $fileName
-   */
-  public function generateDropSql($fileName = 'civicrm_drop.mysql') {
-    echo "Generating sql drop tables file\n";
+  public function generateDropSql() {
     $dropOrder = array_reverse(array_keys($this->tables));
     $template = new CRM_Core_CodeGen_Util_Template('sql');
     $template->assign('dropOrder', $dropOrder);
-    $template->run('drop.tpl', $this->config->sqlCodePath . $fileName);
+    return ['civicrm_drop.mysql' => $template->fetch('drop.tpl')];
   }
 
   public function generateNavigation() {
-    echo "Generating navigation file\n";
     $template = new CRM_Core_CodeGen_Util_Template('sql');
-    $template->run('civicrm_navigation.tpl', $this->config->sqlCodePath . "civicrm_navigation.mysql");
+    return ['civicrm_navigation.mysql' => $template->fetch('civicrm_navigation.tpl')];
   }
 
-  public function generateLocaleDataSql() {
+  /**
+   * @param string $locale
+   *   Ex: en_US, fr_FR
+   * @return array
+   */
+  public function generateLocaleDataSql($locale) {
     $template = new CRM_Core_CodeGen_Util_Template('sql');
 
     global $tsLocale;
     $oldTsLocale = $tsLocale;
-    foreach ($this->locales as $locale) {
-      echo "Generating data files for $locale\n";
+
+    try {
+
       $tsLocale = $locale;
       $template->assign('locale', $locale);
       $template->assign('db_version', $this->config->db_version);
@@ -85,24 +100,32 @@ class CRM_Core_CodeGen_Schema extends CRM_Core_CodeGen_BaseTask {
       ];
 
       $ext = ($locale != 'en_US' ? ".$locale" : '');
-      // write the initialize base-data sql script
-      $template->runConcat($sections, $this->config->sqlCodePath . "civicrm_data$ext.mysql");
 
-      // write the acl sql script
-      $template->run('civicrm_acl.tpl', $this->config->sqlCodePath . "civicrm_acl$ext.mysql");
+      return [
+        "civicrm_data$ext.mysql" => $template->fetchConcat($sections),
+        "civicrm_acl$ext.mysql" => $template->fetch('civicrm_acl.tpl'),
+      ];
+    }
+    finally {
+      $tsLocale = $oldTsLocale;
     }
-    $tsLocale = $oldTsLocale;
   }
 
+  /**
+   * @return array
+   *   Array(string $fileName => string $fileContent).
+   *   List of files
+   */
   public function generateSample() {
     $template = new CRM_Core_CodeGen_Util_Template('sql');
     $sections = [
       'civicrm_sample.tpl',
       'civicrm_acl.tpl',
     ];
-    $template->runConcat($sections, $this->config->sqlCodePath . 'civicrm_sample.mysql');
-
-    $template->run('case_sample.tpl', $this->config->sqlCodePath . 'case_sample.mysql');
+    return [
+      'civicrm_sample.mysql' => $template->fetchConcat($sections),
+      'case_sample.mysql' => $template->fetch('case_sample.tpl'),
+    ];
   }
 
   /**
diff --git a/civicrm/CRM/Core/CodeGen/Util/Smarty.php b/civicrm/CRM/Core/CodeGen/Util/Smarty.php
index 68a7077ec7..d45989504d 100644
--- a/civicrm/CRM/Core/CodeGen/Util/Smarty.php
+++ b/civicrm/CRM/Core/CodeGen/Util/Smarty.php
@@ -46,11 +46,12 @@ class CRM_Core_CodeGen_Util_Smarty {
    */
   public function createSmarty() {
     $base = dirname(dirname(dirname(dirname(__DIR__))));
+    $pkgs = file_exists(dirname($base) . "/civicrm-packages") ? dirname($base) . "/civicrm-packages" : "$base/packages";
 
     require_once 'Smarty/Smarty.class.php';
     $smarty = new Smarty();
     $smarty->template_dir = "$base/xml/templates";
-    $smarty->plugins_dir = ["$base/packages/Smarty/plugins", "$base/CRM/Core/Smarty/plugins"];
+    $smarty->plugins_dir = ["$pkgs/Smarty/plugins", "$base/CRM/Core/Smarty/plugins"];
     $smarty->compile_dir = $this->getCompileDir();
     $smarty->clear_all_cache();
 
@@ -59,6 +60,8 @@ class CRM_Core_CodeGen_Util_Smarty {
     require_once 'CRM/Core/Smarty/plugins/block.localize.php';
     $smarty->register_block('localize', 'smarty_block_localize');
 
+    $smarty->assign('gencodeXmlDir', dirname(dirname(dirname(dirname(__DIR__)))) . '/xml');
+
     return $smarty;
   }
 
diff --git a/civicrm/CRM/Core/CodeGen/Util/Template.php b/civicrm/CRM/Core/CodeGen/Util/Template.php
index 5183997b45..ee0e09bd4b 100644
--- a/civicrm/CRM/Core/CodeGen/Util/Template.php
+++ b/civicrm/CRM/Core/CodeGen/Util/Template.php
@@ -105,6 +105,23 @@ class CRM_Core_CodeGen_Util_Template {
     return $this->smarty->fetch($infile);
   }
 
+  /**
+   * Fetch multiple templates - and concatenate them.
+   *
+   * @see runConcat
+   * @param array $inputs
+   *   Template filenames.
+   * @return string
+   */
+  public function fetchConcat($inputs) {
+    $buf = '';
+    foreach ($inputs as $infile) {
+      $buf .= $this->smarty->fetch($infile);
+      $buf .= "\n";
+    }
+    return $buf;
+  }
+
   /**
    * @param $key
    * @param $value
diff --git a/civicrm/CRM/Core/Config.php b/civicrm/CRM/Core/Config.php
index a942d7ffcc..4025c5d5ac 100644
--- a/civicrm/CRM/Core/Config.php
+++ b/civicrm/CRM/Core/Config.php
@@ -196,10 +196,13 @@ class CRM_Core_Config extends CRM_Core_Config_MagicMerge {
   /**
    * Reset the serialized array and recompute.
    * use with care
+   *
+   * @deprecated
    */
   public function reset() {
-    $query = "UPDATE civicrm_domain SET config_backend = null";
-    CRM_Core_DAO::executeQuery($query);
+    // This is what it used to do. However, it hasn't meant anything since 4.6.
+    // $query = "UPDATE civicrm_domain SET config_backend = null";
+    // CRM_Core_DAO::executeQuery($query);
   }
 
   /**
@@ -242,7 +245,7 @@ class CRM_Core_Config extends CRM_Core_Config_MagicMerge {
       $domain = defined('CIVICRM_DOMAIN_ID') ? CIVICRM_DOMAIN_ID : 1;
     }
 
-    return $domain;
+    return (int) $domain;
   }
 
   /**
diff --git a/civicrm/CRM/Core/DAO.php b/civicrm/CRM/Core/DAO.php
index 80045ca09a..70fd10bc8a 100644
--- a/civicrm/CRM/Core/DAO.php
+++ b/civicrm/CRM/Core/DAO.php
@@ -144,6 +144,7 @@ class CRM_Core_DAO extends DB_DataObject {
     Civi::$statics[__CLASS__]['init'] = 1;
     $options = &PEAR::getStaticProperty('DB_DataObject', 'options');
     $options['database'] = $dsn;
+    $options['quote_identifiers'] = TRUE;
     if (defined('CIVICRM_DAO_DEBUG')) {
       self::DebugLevel(CIVICRM_DAO_DEBUG);
     }
@@ -1103,7 +1104,7 @@ FROM   civicrm_domain
    *
    * @return array
    */
-  public function fetchAll() {
+  public function fetchAll($k = FALSE, $v = FALSE, $method = FALSE) {
     $result = [];
     while ($this->fetch()) {
       $result[] = $this->toArray();
diff --git a/civicrm/CRM/Core/DAO/Address.php b/civicrm/CRM/Core/DAO/Address.php
index 0354340602..e0619a1a47 100644
--- a/civicrm/CRM/Core/DAO/Address.php
+++ b/civicrm/CRM/Core/DAO/Address.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Core/Address.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:c53b9ecace9b92f598172ccd17620489)
+ * (GenCodeChecksum:aed8175462599ecc4c8d43887d76350a)
  */
 
 /**
@@ -266,13 +266,14 @@ class CRM_Core_DAO_Address extends CRM_Core_DAO {
   public static function &fields() {
     if (!isset(Civi::$statics[__CLASS__]['fields'])) {
       Civi::$statics[__CLASS__]['fields'] = [
-        'id' => [
+        'address_id' => [
           'name' => 'id',
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Address ID'),
           'description' => ts('Unique Address ID'),
           'required' => TRUE,
           'where' => 'civicrm_address.id',
+          'export' => TRUE,
           'table_name' => 'civicrm_address',
           'entity' => 'Address',
           'bao' => 'CRM_Core_BAO_Address',
@@ -312,7 +313,7 @@ class CRM_Core_DAO_Address extends CRM_Core_DAO {
         'is_primary' => [
           'name' => 'is_primary',
           'type' => CRM_Utils_Type::T_BOOLEAN,
-          'title' => ts('Is Address Primary?'),
+          'title' => ts('Primary address'),
           'description' => ts('Is this the primary address.'),
           'where' => 'civicrm_address.is_primary',
           'default' => '0',
@@ -321,7 +322,7 @@ class CRM_Core_DAO_Address extends CRM_Core_DAO {
           'bao' => 'CRM_Core_BAO_Address',
           'localizable' => 0,
           'html' => [
-            'type' => 'CheckBox',
+            'type' => 'Radio',
           ],
         ],
         'is_billing' => [
diff --git a/civicrm/CRM/Core/DAO/Domain.php b/civicrm/CRM/Core/DAO/Domain.php
index 42569bdbc7..39c07dc6bf 100644
--- a/civicrm/CRM/Core/DAO/Domain.php
+++ b/civicrm/CRM/Core/DAO/Domain.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Core/Domain.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:63a7b29cbea5066fe2605191bd41226a)
+ * (GenCodeChecksum:cdd41aa071b68a8a4be6b28f7ca3a0a3)
  */
 
 /**
@@ -49,13 +49,6 @@ class CRM_Core_DAO_Domain extends CRM_Core_DAO {
    */
   public $description;
 
-  /**
-   * Backend configuration.
-   *
-   * @var text
-   */
-  public $config_backend;
-
   /**
    * The civicrm version this instance is running
    *
@@ -159,18 +152,6 @@ class CRM_Core_DAO_Domain extends CRM_Core_DAO {
             'type' => 'Text',
           ],
         ],
-        'config_backend' => [
-          'name' => 'config_backend',
-          'type' => CRM_Utils_Type::T_TEXT,
-          'title' => ts('Domain Configuration'),
-          'description' => ts('Backend configuration.'),
-          'where' => 'civicrm_domain.config_backend',
-          'table_name' => 'civicrm_domain',
-          'entity' => 'Domain',
-          'bao' => 'CRM_Core_BAO_Domain',
-          'localizable' => 0,
-          'serialize' => self::SERIALIZE_PHP,
-        ],
         'version' => [
           'name' => 'version',
           'type' => CRM_Utils_Type::T_STRING,
diff --git a/civicrm/CRM/Core/DAO/Email.php b/civicrm/CRM/Core/DAO/Email.php
index 12b8173e49..083c4064db 100644
--- a/civicrm/CRM/Core/DAO/Email.php
+++ b/civicrm/CRM/Core/DAO/Email.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Core/Email.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:68301f75314731f6ee2ec37298fe49fe)
+ * (GenCodeChecksum:ae76175a9d3e57bc555ce90cac672e73)
  */
 
 /**
@@ -57,7 +57,7 @@ class CRM_Core_DAO_Email extends CRM_Core_DAO {
   public $email;
 
   /**
-   * Is this the primary?
+   * Is this the primary email address
    *
    * @var bool
    */
@@ -210,14 +210,17 @@ class CRM_Core_DAO_Email extends CRM_Core_DAO {
         'is_primary' => [
           'name' => 'is_primary',
           'type' => CRM_Utils_Type::T_BOOLEAN,
-          'title' => ts('Is Primary email'),
-          'description' => ts('Is this the primary?'),
+          'title' => ts('Primary email'),
+          'description' => ts('Is this the primary email address'),
           'where' => 'civicrm_email.is_primary',
           'default' => '0',
           'table_name' => 'civicrm_email',
           'entity' => 'Email',
           'bao' => 'CRM_Core_BAO_Email',
           'localizable' => 0,
+          'html' => [
+            'type' => 'Radio',
+          ],
         ],
         'is_billing' => [
           'name' => 'is_billing',
diff --git a/civicrm/CRM/Core/DAO/IM.php b/civicrm/CRM/Core/DAO/IM.php
index bb07bee65b..9562be99bc 100644
--- a/civicrm/CRM/Core/DAO/IM.php
+++ b/civicrm/CRM/Core/DAO/IM.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Core/IM.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:e09b9168fc001341138686c827deba1f)
+ * (GenCodeChecksum:9ea5d47a6892a28874a633ca8c5ef92c)
  */
 
 /**
@@ -192,7 +192,7 @@ class CRM_Core_DAO_IM extends CRM_Core_DAO {
         'is_primary' => [
           'name' => 'is_primary',
           'type' => CRM_Utils_Type::T_BOOLEAN,
-          'title' => ts('Is IM Primary?'),
+          'title' => ts('Primary IM'),
           'description' => ts('Is this the primary IM for this contact and location.'),
           'where' => 'civicrm_im.is_primary',
           'default' => '0',
@@ -200,6 +200,9 @@ class CRM_Core_DAO_IM extends CRM_Core_DAO {
           'entity' => 'IM',
           'bao' => 'CRM_Core_BAO_IM',
           'localizable' => 0,
+          'html' => [
+            'type' => 'Radio',
+          ],
         ],
         'is_billing' => [
           'name' => 'is_billing',
diff --git a/civicrm/CRM/Core/DAO/OpenID.php b/civicrm/CRM/Core/DAO/OpenID.php
index 4b85ea7148..56fc736a9c 100644
--- a/civicrm/CRM/Core/DAO/OpenID.php
+++ b/civicrm/CRM/Core/DAO/OpenID.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Core/OpenID.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:4ff4afe262a2f93f500559f17f096ae8)
+ * (GenCodeChecksum:4baa608e9caa3e118ac02d28032b8bc2)
  */
 
 /**
@@ -170,7 +170,7 @@ class CRM_Core_DAO_OpenID extends CRM_Core_DAO {
         'is_primary' => [
           'name' => 'is_primary',
           'type' => CRM_Utils_Type::T_BOOLEAN,
-          'title' => ts('Is OpenID Primary?'),
+          'title' => ts('Primary ID'),
           'description' => ts('Is this the primary email for this contact and location.'),
           'where' => 'civicrm_openid.is_primary',
           'default' => '0',
@@ -178,6 +178,9 @@ class CRM_Core_DAO_OpenID extends CRM_Core_DAO {
           'entity' => 'OpenID',
           'bao' => 'CRM_Core_BAO_OpenID',
           'localizable' => 0,
+          'html' => [
+            'type' => 'Radio',
+          ],
         ],
       ];
       CRM_Core_DAO_AllCoreTables::invoke(__CLASS__, 'fields_callback', Civi::$statics[__CLASS__]['fields']);
diff --git a/civicrm/CRM/Core/DAO/Phone.php b/civicrm/CRM/Core/DAO/Phone.php
index d2c869ffc9..f0b7498084 100644
--- a/civicrm/CRM/Core/DAO/Phone.php
+++ b/civicrm/CRM/Core/DAO/Phone.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Core/Phone.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:8298e3f0ae875f23de4b0c6a737e94c6)
+ * (GenCodeChecksum:76a7202934e0d8aa7f4240c61a42e42c)
  */
 
 /**
@@ -175,7 +175,7 @@ class CRM_Core_DAO_Phone extends CRM_Core_DAO {
         'is_primary' => [
           'name' => 'is_primary',
           'type' => CRM_Utils_Type::T_BOOLEAN,
-          'title' => ts('Is Phone Primary?'),
+          'title' => ts('Primary phone'),
           'description' => ts('Is this the primary phone for this contact and location.'),
           'where' => 'civicrm_phone.is_primary',
           'default' => '0',
@@ -183,6 +183,9 @@ class CRM_Core_DAO_Phone extends CRM_Core_DAO {
           'entity' => 'Phone',
           'bao' => 'CRM_Core_BAO_Phone',
           'localizable' => 0,
+          'html' => [
+            'type' => 'Radio',
+          ],
         ],
         'is_billing' => [
           'name' => 'is_billing',
diff --git a/civicrm/CRM/Core/Error.php b/civicrm/CRM/Core/Error.php
index d99104c202..1f0b4d40db 100644
--- a/civicrm/CRM/Core/Error.php
+++ b/civicrm/CRM/Core/Error.php
@@ -803,16 +803,19 @@ class CRM_Core_Error extends PEAR_ErrorStack {
     if ($e instanceof PEAR_Exception) {
       $ei = $e;
       while (is_callable([$ei, 'getCause'])) {
-        if ($ei->getCause() instanceof PEAR_Error) {
-          $msg .= '<table class="crm-db-error">';
-          $msg .= sprintf('<thead><tr><th>%s</th><th>%s</th></tr></thead>', ts('Error Field'), ts('Error Value'));
-          $msg .= '<tbody>';
-          foreach (['Type', 'Code', 'Message', 'Mode', 'UserInfo', 'DebugInfo'] as $f) {
-            $msg .= sprintf('<tr><td>%s</td><td>%s</td></tr>', $f, call_user_func([$ei->getCause(), "get$f"]));
+        // DB_ERROR doesn't have a getCause but does have a __call function which tricks is_callable.
+        if (!$ei instanceof DB_Error) {
+          if ($ei->getCause() instanceof PEAR_Error) {
+            $msg .= '<table class="crm-db-error">';
+            $msg .= sprintf('<thead><tr><th>%s</th><th>%s</th></tr></thead>', ts('Error Field'), ts('Error Value'));
+            $msg .= '<tbody>';
+            foreach (['Type', 'Code', 'Message', 'Mode', 'UserInfo', 'DebugInfo'] as $f) {
+              $msg .= sprintf('<tr><td>%s</td><td>%s</td></tr>', $f, call_user_func([$ei->getCause(), "get$f"]));
+            }
+            $msg .= '</tbody></table>';
           }
-          $msg .= '</tbody></table>';
+          $ei = $ei->getCause();
         }
-        $ei = $ei->getCause();
       }
       $msg .= $e->toHtml();
     }
@@ -835,12 +838,19 @@ class CRM_Core_Error extends PEAR_ErrorStack {
 
     $ei = $e;
     while (is_callable([$ei, 'getCause'])) {
-      if ($ei->getCause() instanceof PEAR_Error) {
-        foreach (['Type', 'Code', 'Message', 'Mode', 'UserInfo', 'DebugInfo'] as $f) {
-          $msg .= sprintf(" * ERROR %s: %s\n", strtoupper($f), call_user_func([$ei->getCause(), "get$f"]));
+      // DB_ERROR doesn't have a getCause but does have a __call function which tricks is_callable.
+      if (!$ei instanceof DB_Error) {
+        if ($ei->getCause() instanceof PEAR_Error) {
+          foreach (['Type', 'Code', 'Message', 'Mode', 'UserInfo', 'DebugInfo'] as $f) {
+            $msg .= sprintf(" * ERROR %s: %s\n", strtoupper($f), call_user_func([$ei->getCause(), "get$f"]));
+          }
         }
+        $ei = $ei->getCause();
+      }
+      // if we have reached a DB_Error assume that is the end of the road.
+      else {
+        $ei = NULL;
       }
-      $ei = $ei->getCause();
     }
     $msg .= self::formatBacktrace($e->getTrace());
     return $msg;
diff --git a/civicrm/CRM/Core/Exception/ResourceConflictException.php b/civicrm/CRM/Core/Exception/ResourceConflictException.php
new file mode 100644
index 0000000000..c722320295
--- /dev/null
+++ b/civicrm/CRM/Core/Exception/ResourceConflictException.php
@@ -0,0 +1,42 @@
+<?php
+/*
+ +--------------------------------------------------------------------+
+ | CiviCRM version 5                                                  |
+ +--------------------------------------------------------------------+
+ | Copyright CiviCRM LLC (c) 2004-2019                                |
+ +--------------------------------------------------------------------+
+ | This file is a part of CiviCRM.                                    |
+ |                                                                    |
+ | CiviCRM is free software; you can copy, modify, and distribute it  |
+ | under the terms of the GNU Affero General Public License           |
+ | Version 3, 19 November 2007 and the CiviCRM Licensing Exception.   |
+ |                                                                    |
+ | CiviCRM is distributed in the hope that it will be useful, but     |
+ | WITHOUT ANY WARRANTY; without even the implied warranty of         |
+ | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.               |
+ | See the GNU Affero General Public License for more details.        |
+ |                                                                    |
+ | You should have received a copy of the GNU Affero General Public   |
+ | License and the CiviCRM Licensing Exception along                  |
+ | with this program; if not, contact CiviCRM LLC                     |
+ | at info[AT]civicrm[DOT]org. If you have questions about the        |
+ | GNU Affero General Public License or the licensing of CiviCRM,     |
+ | see the CiviCRM license FAQ at http://civicrm.org/licensing        |
+ +--------------------------------------------------------------------+
+ */
+
+/**
+ * Exception thrown when contention over a resource causes process to abort.
+ *
+ * @param string $message
+ *   The human friendly error message.
+ * @param string $error_code
+ *   A computer friendly error code. By convention, no space (but underscore allowed).
+ *   ex: mandatory_missing, duplicate, invalid_format
+ * @param array $data
+ *   Extra params to return. eg an extra array of ids. It is not mandatory, but can help the computer using the api.
+ * Keep in mind the api consumer isn't to be trusted. eg. the database password is NOT a good extra data.
+ */
+class CRM_Core_Exception_ResourceConflictException extends \CRM_Core_Exception {
+
+}
diff --git a/civicrm/CRM/Core/Form/EntityFormTrait.php b/civicrm/CRM/Core/Form/EntityFormTrait.php
index 61b800205d..15ff60830a 100644
--- a/civicrm/CRM/Core/Form/EntityFormTrait.php
+++ b/civicrm/CRM/Core/Form/EntityFormTrait.php
@@ -21,7 +21,7 @@ trait CRM_Core_Form_EntityFormTrait {
    *
    * @var int
    */
-  protected $_entitySubTypeId;
+  protected $_entitySubTypeId = NULL;
 
   /**
    * Get entity fields for the entity to be added to the form.
@@ -83,17 +83,21 @@ trait CRM_Core_Form_EntityFormTrait {
   /**
    * Get the entity subtype ID being edited
    *
-   * @param $subTypeId
-   *
    * @return int|null
    */
-  public function getEntitySubTypeId($subTypeId) {
-    if ($subTypeId) {
-      return $subTypeId;
-    }
+  public function getEntitySubTypeId() {
     return $this->_entitySubTypeId;
   }
 
+  /**
+   * Set the entity subtype ID being edited
+   *
+   * @param $subTypeId
+   */
+  public function setEntitySubTypeId($subTypeId) {
+    $this->_entitySubTypeId = $subTypeId;
+  }
+
   /**
    * If the custom data is in the submitted data (eg. added via ajax loaded form) add to form.
    */
@@ -103,7 +107,7 @@ trait CRM_Core_Form_EntityFormTrait {
     }
     $customisableEntities = CRM_Core_SelectValues::customGroupExtends();
     if (isset($customisableEntities[$this->getDefaultEntity()])) {
-      CRM_Custom_Form_CustomData::addToForm($this);
+      CRM_Custom_Form_CustomData::addToForm($this, $this->getEntitySubTypeId());
     }
   }
 
diff --git a/civicrm/CRM/Core/Form/Search.php b/civicrm/CRM/Core/Form/Search.php
index 4dc1b95db3..66cebe8282 100644
--- a/civicrm/CRM/Core/Form/Search.php
+++ b/civicrm/CRM/Core/Form/Search.php
@@ -21,13 +21,6 @@ class CRM_Core_Form_Search extends CRM_Core_Form {
    */
   protected $_force;
 
-  /**
-   * Name of search button
-   *
-   * @var string
-   */
-  protected $_searchButtonName;
-
   /**
    * Name of action button
    *
diff --git a/civicrm/CRM/Core/Form/Task.php b/civicrm/CRM/Core/Form/Task.php
index 879bfc6a47..67ca0537ad 100644
--- a/civicrm/CRM/Core/Form/Task.php
+++ b/civicrm/CRM/Core/Form/Task.php
@@ -167,8 +167,7 @@ abstract class CRM_Core_Form_Task extends CRM_Core_Form {
   }
 
   /**
-   * Simple shell that derived classes can call to add buttons to
-   * the form with a customized title for the main Submit
+   * Add buttons to the form.
    *
    * @param string $title
    *   Title of the main button.
diff --git a/civicrm/CRM/Core/Form/Task/PDFLetterCommon.php b/civicrm/CRM/Core/Form/Task/PDFLetterCommon.php
index a76e97996d..0ec70a5b1b 100644
--- a/civicrm/CRM/Core/Form/Task/PDFLetterCommon.php
+++ b/civicrm/CRM/Core/Form/Task/PDFLetterCommon.php
@@ -131,7 +131,7 @@ class CRM_Core_Form_Task_PDFLetterCommon {
 
     $form->assign('useThisPageFormat', ts('Always use this Page Format with the new template?'));
     $form->assign('useSelectedPageFormat', ts('Should the new template always use the selected Page Format?'));
-    $form->assign('totalSelectedContacts', count($form->_contactIds));
+    $form->assign('totalSelectedContacts', !is_null($form->_contactIds) ? count($form->_contactIds) : 0);
 
     $form->add('select', 'document_type', ts('Document Type'), CRM_Core_SelectValues::documentFormat());
 
@@ -219,6 +219,10 @@ class CRM_Core_Form_Task_PDFLetterCommon {
 
   /**
    * Handle the template processing part of the form
+   *
+   * @param array $formValues
+   *
+   * @return string $html_message
    */
   public static function processTemplate(&$formValues) {
     $html_message = CRM_Utils_Array::value('html_message', $formValues);
@@ -320,4 +324,46 @@ class CRM_Core_Form_Task_PDFLetterCommon {
     $message = implode($newLineOperators['p']['oper'], $htmlMsg);
   }
 
+  /**
+   * Render html from rows
+   * @param  array $rows   Array of \Civi\Token\TokenRow
+   * @param  string $msgPart The name registered with the TokenProcessor
+   * @param  string $formValues The values submitted through the form
+   * @return string
+   *   $html if formValues['is_unit_test'] is true, otherwise outputs document to browser
+   *
+   */
+  public static function renderFromRows($rows, $msgPart, $formValues) {
+    $html = array();
+    foreach ($rows as $row) {
+      $html[] = $row->render($msgPart);
+    }
+
+    if (!empty($formValues['is_unit_test'])) {
+      return $html;
+    }
+
+    if (!empty($html)) {
+      $type = $formValues['document_type'];
+
+      if ($type == 'pdf') {
+        CRM_Utils_PDF_Utils::html2pdf($html, "CiviLetter.pdf", FALSE, $formValues);
+      }
+      else {
+        CRM_Utils_PDF_Document::html2doc($html, "CiviLetter.$type", $formValues);
+      }
+    }
+  }
+
+  /**
+   * List the available tokens
+   * @return array of token name => label
+   */
+  public static function listTokens() {
+    $class = get_called_class();
+    if (method_exists($class, 'createTokenProcessor')) {
+      return $class::createTokenProcessor()->listTokens();
+    }
+  }
+
 }
diff --git a/civicrm/CRM/Core/I18n.php b/civicrm/CRM/Core/I18n.php
index be23d592ff..1da5d28005 100644
--- a/civicrm/CRM/Core/I18n.php
+++ b/civicrm/CRM/Core/I18n.php
@@ -282,11 +282,7 @@ class CRM_Core_I18n {
    * @return string
    */
   public static function getResourceDir() {
-    static $dir = NULL;
-    if ($dir === NULL) {
-      $dir = dirname(dirname(__DIR__)) . DIRECTORY_SEPARATOR . 'l10n' . DIRECTORY_SEPARATOR;
-    }
-    return $dir;
+    return \Civi::paths()->getPath('[civicrm.l10n]/.');
   }
 
   /**
@@ -424,17 +420,7 @@ class CRM_Core_I18n {
 
     // do all wildcard translations first
 
-    // FIXME: Is there a constant we can reference instead of hardcoding en_US?
-    $replacementsLocale = $this->locale ? $this->locale : 'en_US';
-    if (!isset(Civi::$statics[__CLASS__]) || !array_key_exists($replacementsLocale, Civi::$statics[__CLASS__])) {
-      if (defined('CIVICRM_DSN') && !CRM_Core_Config::isUpgradeMode()) {
-        Civi::$statics[__CLASS__][$replacementsLocale] = CRM_Core_BAO_WordReplacement::getLocaleCustomStrings($replacementsLocale);
-      }
-      else {
-        Civi::$statics[__CLASS__][$replacementsLocale] = [];
-      }
-    }
-    $stringTable = Civi::$statics[__CLASS__][$replacementsLocale];
+    $stringTable = $this->getWordReplacements();
 
     $exactMatch = FALSE;
     if (isset($stringTable['enabled']['exactMatch'])) {
@@ -462,7 +448,7 @@ class CRM_Core_I18n {
       if (isset($count) && isset($plural)) {
 
         if ($this->_phpgettext) {
-          $text = $this->_phpgettext->ngettext($text, $plural, $count);
+          $text = $this->_phpgettext->ngettext($text, $plural, (int) $count);
         }
         else {
           // if the locale's not set, we do ngettext work by hand
@@ -741,6 +727,28 @@ class CRM_Core_I18n {
     return $tsLocale ? $tsLocale : 'en_US';
   }
 
+  /**
+   * @return array
+   *   Ex: $stringTable['enabled']['wildcardMatch']['foo'] = 'bar';
+   */
+  private function getWordReplacements() {
+    if (isset(Civi::$statics['testPreInstall'])) {
+      return [];
+    }
+
+    // FIXME: Is there a constant we can reference instead of hardcoding en_US?
+    $replacementsLocale = $this->locale ? $this->locale : 'en_US';
+    if ((!isset(Civi::$statics[__CLASS__]) || !array_key_exists($replacementsLocale, Civi::$statics[__CLASS__]))) {
+      if (defined('CIVICRM_DSN') && !CRM_Core_Config::isUpgradeMode()) {
+        Civi::$statics[__CLASS__][$replacementsLocale] = CRM_Core_BAO_WordReplacement::getLocaleCustomStrings($replacementsLocale);
+      }
+      else {
+        Civi::$statics[__CLASS__][$replacementsLocale] = [];
+      }
+    }
+    return Civi::$statics[__CLASS__][$replacementsLocale];
+  }
+
 }
 
 /**
diff --git a/civicrm/CRM/Core/I18n/Schema.php b/civicrm/CRM/Core/I18n/Schema.php
index 7f6a291811..13318083bb 100644
--- a/civicrm/CRM/Core/I18n/Schema.php
+++ b/civicrm/CRM/Core/I18n/Schema.php
@@ -487,17 +487,17 @@ class CRM_Core_I18n_Schema {
       if (!in_array($dao->Field, array_keys($columns[$table])) and
         !preg_match('/_[a-z][a-z]_[A-Z][A-Z]$/', $dao->Field)
       ) {
-        $cols[] = $dao->Field;
+        $cols[] = '`' . $dao->Field . '`';
       }
       $tableCols[] = $dao->Field;
     }
     // view intrernationalized columns through an alias
     foreach ($columns[$table] as $column => $_) {
       if (!$isUpgradeMode) {
-        $cols[] = "{$column}_{$locale} {$column}";
+        $cols[] = "`{$column}_{$locale}` `{$column}`";
       }
       elseif (in_array("{$column}_{$locale}", $tableCols)) {
-        $cols[] = "{$column}_{$locale} {$column}";
+        $cols[] = "`{$column}_{$locale}` `{$column}`";
       }
     }
     return "CREATE OR REPLACE VIEW {$table}_{$locale} AS SELECT " . implode(', ', $cols) . " FROM {$table}";
diff --git a/civicrm/CRM/Core/IDS.php b/civicrm/CRM/Core/IDS.php
index e72afd146f..7a3eded15a 100644
--- a/civicrm/CRM/Core/IDS.php
+++ b/civicrm/CRM/Core/IDS.php
@@ -103,14 +103,14 @@ class CRM_Core_IDS {
   public static function createBaseConfig() {
     $config = \CRM_Core_Config::singleton();
     $tmpDir = empty($config->uploadDir) ? Civi::paths()->getVariable('civicrm.compile', 'path') : $config->uploadDir;
-    global $civicrm_root;
+    $pkgs = Civi::paths()->getVariable('civicrm.packages', 'path');
 
     return [
       'General' => [
         'filter_type' => 'xml',
-        'filter_path' => "{$civicrm_root}/packages/IDS/default_filter.xml",
+        'filter_path' => "{$pkgs}/IDS/default_filter.xml",
         'tmp_path' => $tmpDir,
-        'HTML_Purifier_Path' => $civicrm_root . 'packages/IDS/vendors/htmlpurifier/HTMLPurifier.auto.php',
+        'HTML_Purifier_Path' => $pkgs . '/IDS/vendors/htmlpurifier/HTMLPurifier.auto.php',
         'HTML_Purifier_Cache' => $tmpDir,
         'scan_keys' => '',
         'exceptions' => ['__utmz', '__utmc'],
diff --git a/civicrm/CRM/Core/InnoDBIndexer.php b/civicrm/CRM/Core/InnoDBIndexer.php
index fdd401eb8d..e9d26997a0 100644
--- a/civicrm/CRM/Core/InnoDBIndexer.php
+++ b/civicrm/CRM/Core/InnoDBIndexer.php
@@ -169,10 +169,17 @@ class CRM_Core_InnoDBIndexer {
     }
 
     // Note: this only works in MySQL 5.6,  but this whole system is intended to only work in MySQL 5.6
+    // Note: In MYSQL 8 the Tables have been renamed from INNODB_SYS_TABLES and INNODB_SYS_INDEXES to INNODB_TABLES and INNODB_INDEXES
+    $innodbTable = "innodb_sys_tables";
+    $innodbIndex = "innodb_sys_indexes";
+    if (version_compare($mysqlVersion, '8.0', '>=')) {
+      $innodbTable = "innodb_tables";
+      $innodbIndex = "innodb_indexes";
+    }
     $sql = "
-      SELECT i.name as index_name
-      FROM information_schema.innodb_sys_tables t
-      JOIN information_schema.innodb_sys_indexes i USING (table_id)
+      SELECT i.name as `index_name`
+      FROM information_schema.$innodbTable t
+      JOIN information_schema.$innodbIndex i USING (table_id)
       WHERE t.name = concat(database(),'/$table')
       AND i.name like '" . self::IDX_PREFIX . "%'
       ";
diff --git a/civicrm/CRM/Core/Menu.php b/civicrm/CRM/Core/Menu.php
index ceb7e2a98c..f370b8cacb 100644
--- a/civicrm/CRM/Core/Menu.php
+++ b/civicrm/CRM/Core/Menu.php
@@ -96,7 +96,7 @@ class CRM_Core_Menu {
    * @throws Exception
    */
   public static function read($name, &$menu) {
-    $xml = simplexml_load_file($name);
+    $xml = simplexml_load_string(file_get_contents($name));
     self::readXML($xml, $menu);
   }
 
diff --git a/civicrm/CRM/Core/Payment/BaseIPN.php b/civicrm/CRM/Core/Payment/BaseIPN.php
index 192f347e68..9ebe28db8d 100644
--- a/civicrm/CRM/Core/Payment/BaseIPN.php
+++ b/civicrm/CRM/Core/Payment/BaseIPN.php
@@ -87,15 +87,7 @@ class CRM_Core_Payment_BaseIPN {
    */
   public function validateData(&$input, &$ids, &$objects, $required = TRUE, $paymentProcessorID = NULL) {
 
-    // make sure contact exists and is valid
-    $contact = new CRM_Contact_BAO_Contact();
-    $contact->id = $ids['contact'];
-    if (!$contact->find(TRUE)) {
-      CRM_Core_Error::debug_log_message("Could not find contact record: {$ids['contact']} in IPN request: " . print_r($input, TRUE));
-      echo "Failure: Could not find contact record: {$ids['contact']}<p>";
-      return FALSE;
-    }
-
+    // Check if the contribution exists
     // make sure contribution exists and is valid
     $contribution = new CRM_Contribute_BAO_Contribution();
     $contribution->id = $ids['contribution'];
@@ -104,6 +96,29 @@ class CRM_Core_Payment_BaseIPN {
       echo "Failure: Could not find contribution record for {$contribution->id}<p>";
       return FALSE;
     }
+
+    // make sure contact exists and is valid
+    // use the contact id from the contribution record as the id in the IPN may not be valid anymore.
+    $contact = new CRM_Contact_BAO_Contact();
+    $contact->id = $contribution->contact_id;
+    $contact->find(TRUE);
+    if ($contact->id != $ids['contact']) {
+      // If the ids do not match then it is possible the contact id in the IPN has been merged into another contact which is why we use the contact_id from the contribution
+      CRM_Core_Error::debug_log_message("Contact ID in IPN {$ids['contact']} not found but contact_id found in contribution {$contribution->contact_id} used instead");
+      echo "WARNING: Could not find contact record: {$ids['contact']}<p>";
+      $ids['contact'] = $contribution->contact_id;
+    }
+
+    if (!empty($ids['contributionRecur'])) {
+      $contributionRecur = new CRM_Contribute_BAO_ContributionRecur();
+      $contributionRecur->id = $ids['contributionRecur'];
+      if (!$contributionRecur->find(TRUE)) {
+        CRM_Core_Error::debug_log_message("Could not find contribution recur record: {$ids['ContributionRecur']} in IPN request: " . print_r($input, TRUE));
+        echo "Failure: Could not find contribution recur record: {$ids['ContributionRecur']}<p>";
+        return FALSE;
+      }
+    }
+
     $contribution->receive_date = CRM_Utils_Date::isoToMysql($contribution->receive_date);
     $contribution->receipt_date = CRM_Utils_Date::isoToMysql($contribution->receipt_date);
 
diff --git a/civicrm/CRM/Core/Payment/Manual.php b/civicrm/CRM/Core/Payment/Manual.php
index deaff40907..be4a171c96 100644
--- a/civicrm/CRM/Core/Payment/Manual.php
+++ b/civicrm/CRM/Core/Payment/Manual.php
@@ -117,7 +117,7 @@ class CRM_Core_Payment_Manual extends CRM_Core_Payment {
    */
   protected function getResult() {
     if (!$this->result) {
-      $this->setResult(CRM_Core_PseudoConstant::getKey('CRM_Contribute_BAO_Contribution', 'status_id', 'Pending'));
+      $this->setResult(CRM_Core_PseudoConstant::getKey('CRM_Contribute_BAO_Contribution', 'contribution_status_id', 'Pending'));
     }
     return $this->result;
   }
diff --git a/civicrm/CRM/Core/Payment/PaymentExpress.php b/civicrm/CRM/Core/Payment/PaymentExpress.php
index 28552293fe..47db6a690c 100644
--- a/civicrm/CRM/Core/Payment/PaymentExpress.php
+++ b/civicrm/CRM/Core/Payment/PaymentExpress.php
@@ -121,7 +121,7 @@ class CRM_Core_Payment_PaymentExpress extends CRM_Core_Payment {
       CRM_Core_Error::fatal(ts('Component is invalid'));
     }
 
-    $url = $config->userFrameworkResourceURL . "extern/pxIPN.php";
+    $url = CRM_Utils_System::externUrl('extern/pxIPN');
 
     if ($component == 'event') {
       $cancelURL = CRM_Utils_System::url('civicrm/event/register',
diff --git a/civicrm/CRM/Core/Permission/Drupal8.php b/civicrm/CRM/Core/Permission/Drupal8.php
index 8464b79b2b..7596e15af3 100644
--- a/civicrm/CRM/Core/Permission/Drupal8.php
+++ b/civicrm/CRM/Core/Permission/Drupal8.php
@@ -92,4 +92,31 @@ class CRM_Core_Permission_Drupal8 extends CRM_Core_Permission_DrupalBase {
     }
   }
 
+  /**
+   * Given a roles array, check user has at least one of those roles
+   *
+   * @param array $roles_to_check
+   *   The roles to check. An array indexed starting at 0, e.g. [0 => 'administrator']
+   *
+   * @return bool
+   *   true if user has at least one of the roles, else false
+   */
+  public function checkGroupRole($roles_to_check) {
+    if (isset($roles_to_check)) {
+
+      // This returns an array indexed starting at 0 of role machine names, e.g.
+      // [
+      //   0 => 'authenticated',
+      //   1 => 'administrator',
+      // ]
+      // or
+      // [ 0 => 'anonymous' ]
+      $user_roles = \Drupal::currentUser()->getRoles();
+
+      $roles_in_both = array_intersect($user_roles, $roles_to_check);
+      return !empty($roles_in_both);
+    }
+    return FALSE;
+  }
+
 }
diff --git a/civicrm/CRM/Core/PseudoConstant.php b/civicrm/CRM/Core/PseudoConstant.php
index 99316fada8..255594e465 100644
--- a/civicrm/CRM/Core/PseudoConstant.php
+++ b/civicrm/CRM/Core/PseudoConstant.php
@@ -358,7 +358,7 @@ class CRM_Core_PseudoConstant {
             $i18n->localizeArray($output, $I18nParams);
             // Maintain sort by label
             if ($order == "ORDER BY %2") {
-              CRM_Utils_Array::asort($output);
+              $output = CRM_Utils_Array::asort($output);
             }
           }
           CRM_Utils_Hook::fieldOptions($entity, $fieldName, $output, $params);
diff --git a/civicrm/CRM/Core/Report/Excel.php b/civicrm/CRM/Core/Report/Excel.php
index 127f23e5c4..18749398b3 100644
--- a/civicrm/CRM/Core/Report/Excel.php
+++ b/civicrm/CRM/Core/Report/Excel.php
@@ -40,22 +40,10 @@ class CRM_Core_Report_Excel {
 
     $config = CRM_Core_Config::singleton();
     $seperator = $config->fieldSeparator;
-    $enclosed = '"';
-    $escaped = $enclosed;
     $add_character = "\015\012";
 
-    $schema_insert = '';
-    foreach ($header as $field) {
-      $schema_insert .= $enclosed . str_replace($enclosed, $escaped . $enclosed, stripslashes($field)) . $enclosed;
-      $schema_insert .= $seperator;
-    }
-    // end while
-
     if ($outputHeader) {
-      // need to add PMA_exportOutputHandler functionality out here, rather than
-      // doing it the moronic way of assembling a buffer
-      $out = trim(substr($schema_insert, 0, -1)) . $add_character;
-      echo $out;
+      self::outputHeaderRow($header);
     }
 
     $fields_cnt = count($header);
@@ -70,13 +58,14 @@ class CRM_Core_Report_Excel {
         else {
           // loic1 : always enclose fields
           //$value = ereg_replace("\015(\012)?", "\012", $value);
+          // Convert  carriage return to line feed.
           $value = preg_replace("/\015(\012)?/", "\012", $value);
           if ((substr($value, 0, 1) == CRM_Core_DAO::VALUE_SEPARATOR) &&
             (substr($value, -1, 1) == CRM_Core_DAO::VALUE_SEPARATOR)
           ) {
 
             $strArray = explode(CRM_Core_DAO::VALUE_SEPARATOR, $value);
-
+            // Filter out empty value separated strings.
             foreach ($strArray as $key => $val) {
               if (trim($val) == '') {
                 unset($strArray[$key]);
@@ -87,7 +76,7 @@ class CRM_Core_Report_Excel {
             $value = &$str;
           }
 
-          $schema_insert .= $enclosed . str_replace($enclosed, $escaped . $enclosed, $value) . $enclosed;
+          $schema_insert .= '"' . str_replace('"', '""', $value) . '"';
         }
 
         if ($colNo < $fields_cnt - 1) {
@@ -102,6 +91,26 @@ class CRM_Core_Report_Excel {
     }
   }
 
+  /**
+   * Output the header row for a csv file.
+   *
+   * @param array $header
+   *   Array of field names.
+   */
+  public static function outputHeaderRow($header) {
+    $schema_insert = '';
+    $separator = Civi::settings()->get('fieldSeparator');
+    foreach ($header as $field) {
+      $schema_insert .= '"' . str_replace('"', '""', stripslashes($field)) . '"';
+      $schema_insert .= $separator;
+    }
+    // end while
+    // need to add PMA_exportOutputHandler functionality out here, rather than
+    // doing it the moronic way of assembling a buffer
+    // We append a hex newline at the end.
+    echo trim(substr($schema_insert, 0, -1)) . "\015\012";
+  }
+
   /**
    * @param string $fileName
    * @param $header
diff --git a/civicrm/CRM/Core/Resources.php b/civicrm/CRM/Core/Resources.php
index 2c4f211c43..99448dd0da 100644
--- a/civicrm/CRM/Core/Resources.php
+++ b/civicrm/CRM/Core/Resources.php
@@ -818,6 +818,19 @@ class CRM_Core_Resources {
     // Allow hooks to modify this list
     CRM_Utils_Hook::coreResourceList($items, $region);
 
+    // Oof, existing listeners would expect $items to typically begin with 'bower_components/' or 'packages/'
+    // (using an implicit base of `[civicrm.root]`). We preserve the hook contract and cleanup $items post-hook.
+    $map = [
+      'bower_components' => rtrim(Civi::paths()->getUrl('[civicrm.bower]/.', 'absolute'), '/'),
+      'packages' => rtrim(Civi::paths()->getUrl('[civicrm.packages]/.', 'absolute'), '/'),
+    ];
+    $filter = function($m) use ($map) {
+      return $map[$m[1]] . $m[2];
+    };
+    $items = array_map(function($item) use ($filter) {
+      return is_array($item) ? $item : preg_replace_callback(';^(bower_components|packages)(/.*);', $filter, $item);
+    }, $items);
+
     return $items;
   }
 
diff --git a/civicrm/CRM/Core/SelectValues.php b/civicrm/CRM/Core/SelectValues.php
index 170f348a05..9ebe8db0ce 100644
--- a/civicrm/CRM/Core/SelectValues.php
+++ b/civicrm/CRM/Core/SelectValues.php
@@ -87,7 +87,7 @@ class CRM_Core_SelectValues {
       'month' => ts('month'),
       'year' => ts('year'),
     ];
-    if ($unitType == 'duration') {
+    if ($unitType === 'duration') {
       $unitList['lifetime'] = ts('lifetime');
     }
     return $unitList;
@@ -121,10 +121,10 @@ class CRM_Core_SelectValues {
    */
   public static function emailSelectMethods() {
     return [
-      'automatic' => ts("Automatic"),
-      'location-only' => ts("Only send to email addresses assigned to the specified location"),
-      'location-prefer' => ts("Prefer email addresses assigned to the specified location"),
-      'location-exclude' => ts("Exclude email addresses assigned to the specified location"),
+      'automatic' => ts('Automatic'),
+      'location-only' => ts('Only send to email addresses assigned to the specified location'),
+      'location-prefer' => ts('Prefer email addresses assigned to the specified location'),
+      'location-exclude' => ts('Exclude email addresses assigned to the specified location'),
     ];
   }
 
@@ -294,7 +294,7 @@ class CRM_Core_SelectValues {
    *
    * @return array
    *   the date array
-   * @throws \Exception
+   * @throws CRM_Core_Exception
    */
   public static function date($type = NULL, $format = NULL, $minOffset = NULL, $maxOffset = NULL, $context = 'display') {
     // These options are deprecated. Definitely not used in datepicker. Possibly not even in jcalendar+addDateTime.
@@ -312,7 +312,7 @@ class CRM_Core_SelectValues {
         $dao = new CRM_Core_DAO_PreferencesDate();
         $dao->name = $type;
         if (!$dao->find(TRUE)) {
-          CRM_Core_Error::fatal();
+          throw new CRM_Core_Exception('Date preferences not configured.');
         }
         if (!$maxOffset) {
           $maxOffset = $dao->end;
@@ -326,7 +326,7 @@ class CRM_Core_SelectValues {
       }
 
       if (empty($date['format'])) {
-        if ($context == 'Input') {
+        if ($context === 'Input') {
           $date['format'] = Civi::settings()->get('dateInputFormat');
         }
         else {
@@ -443,6 +443,27 @@ class CRM_Core_SelectValues {
     return $geo;
   }
 
+  /**
+   * Get options for displaying tax.
+   *
+   * @return array
+   *
+   * @throws \CRM_Core_Exception
+   */
+  public function taxDisplayOptions() {
+    return [
+      'Do_not_show' => ts('Do not show breakdown, only show total - i.e %1', [
+        1 => CRM_Utils_Money::format(120),
+      ]),
+      'Inclusive' => ts('Show [tax term] inclusive price - i.e. %1', [
+        1 => ts('%1 (includes [tax term] of %2)', [1 => CRM_Utils_Money::format(120), 2 => CRM_Utils_Money::format(20)]),
+      ]),
+      'Exclusive' => ts('Show [tax term] exclusive price - i.e. %1', [
+        1 => ts('%1 + %2 [tax term]', [1 => CRM_Utils_Money::format(120), 2 => CRM_Utils_Money::format(20)]),
+      ]),
+    ];
+  }
+
   /**
    * Get the Address Standardization Providers from available plugins.
    *
@@ -477,6 +498,7 @@ class CRM_Core_SelectValues {
       '{domain.address}' => ts('Domain (organization) address'),
       '{domain.phone}' => ts('Domain (organization) phone'),
       '{domain.email}' => ts('Domain (organization) email'),
+      '{mailing.key}' => ts('Mailing key'),
       '{mailing.name}' => ts('Mailing name'),
       '{mailing.group}' => ts('Mailing group'),
       '{mailing.viewUrl}' => ts('Mailing permalink'),
@@ -865,7 +887,7 @@ class CRM_Core_SelectValues {
    *
    * @return array
    */
-  public static function getSearchBuilderOperators($fieldType = NULL) {
+  public static function getSearchBuilderOperators() {
     return [
       '=' => '=',
       '!=' => '≠',
@@ -1098,6 +1120,7 @@ class CRM_Core_SelectValues {
    * Dropdown options for quicksearch in the menu
    *
    * @return array
+   * @throws \CiviCRM_API3_Exception
    */
   public static function quicksearchOptions() {
     $includeEmail = civicrm_api3('setting', 'getvalue', ['name' => 'includeEmailInName', 'group' => 'Search Preferences']);
diff --git a/civicrm/CRM/Core/Session.php b/civicrm/CRM/Core/Session.php
index 7794ca48b6..8cbcfdfead 100644
--- a/civicrm/CRM/Core/Session.php
+++ b/civicrm/CRM/Core/Session.php
@@ -41,6 +41,13 @@ class CRM_Core_Session {
    */
   protected $_session = NULL;
 
+  /**
+   * Current php Session ID : needed to detect if the session is changed
+   *
+   * @var string
+   */
+  protected $sessionID;
+
   /**
    * We only need one instance of this object. So we use the singleton
    * pattern and cache the instance in this variable
@@ -88,6 +95,11 @@ class CRM_Core_Session {
    *   Is this a read operation, in this case, the session will not be touched.
    */
   public function initialize($isRead = FALSE) {
+    // remove $_SESSION reference if session is changed
+    if (($sid = session_id()) !== $this->sessionID) {
+      $this->_session = NULL;
+      $this->sessionID = $sid;
+    }
     // lets initialize the _session variable just before we need it
     // hopefully any bootstrapping code will actually load the session from the CMS
     if (!isset($this->_session)) {
@@ -96,17 +108,7 @@ class CRM_Core_Session {
         if ($isRead) {
           return;
         }
-        // FIXME: This belongs in CRM_Utils_System_*
-        if (CRM_Core_Config::singleton()->userSystem->is_drupal && function_exists('drupal_session_start')) {
-          // https://issues.civicrm.org/jira/browse/CRM-14356
-          if (!(isset($GLOBALS['lazy_session']) && $GLOBALS['lazy_session'] == TRUE)) {
-            drupal_session_start();
-          }
-          $_SESSION = [];
-        }
-        else {
-          session_start();
-        }
+        CRM_Core_Config::singleton()->userSystem->sessionStart();
       }
       $this->_session =& $_SESSION;
     }
diff --git a/civicrm/CRM/Core/Smarty.php b/civicrm/CRM/Core/Smarty.php
index c6403d5934..ef0fc4dab0 100644
--- a/civicrm/CRM/Core/Smarty.php
+++ b/civicrm/CRM/Core/Smarty.php
@@ -118,7 +118,8 @@ class CRM_Core_Smarty extends Smarty {
       }
     }
 
-    $smartyDir = dirname(dirname(__DIR__)) . DIRECTORY_SEPARATOR . 'packages' . DIRECTORY_SEPARATOR . 'Smarty' . DIRECTORY_SEPARATOR;
+    $pkgsDir = Civi::paths()->getVariable('civicrm.packages', 'path');
+    $smartyDir = $pkgsDir . DIRECTORY_SEPARATOR . 'Smarty' . DIRECTORY_SEPARATOR;
     $pluginsDir = __DIR__ . DIRECTORY_SEPARATOR . 'Smarty' . DIRECTORY_SEPARATOR . 'plugins' . DIRECTORY_SEPARATOR;
 
     if ($customPluginsDir) {
diff --git a/civicrm/CRM/Core/Smarty/plugins/function.crmResPath.php b/civicrm/CRM/Core/Smarty/plugins/function.crmResPath.php
index dd91bae335..01b47198a2 100644
--- a/civicrm/CRM/Core/Smarty/plugins/function.crmResPath.php
+++ b/civicrm/CRM/Core/Smarty/plugins/function.crmResPath.php
@@ -21,14 +21,21 @@
  * Determine the path of a resource file
  *
  * @param array $params
+ *   Identify the resource by either 'ext'+'file' or 'expr'.
+ *
  *   Array with keys:
  *   - ext: string, extension name. see CRM_Core_Resources::getPath
  *   - file: string, relative file path. see CRM_Core_Resources::getPath
+ *   - expr: string, a dynamic path expression. See: \Civi\Core\Paths::getPath()
  * @param CRM_Core_Smarty $smarty
  *
  * @return string
  */
 function smarty_function_crmResPath($params, &$smarty) {
+  if (!empty($params['expr'])) {
+    return Civi::paths()->getPath($params['expr']);
+  }
+
   $res = CRM_Core_Resources::singleton();
   if (!array_key_exists('ext', $params)) {
     $params['ext'] = 'civicrm';
diff --git a/civicrm/CRM/Core/Smarty/plugins/function.crmResURL.php b/civicrm/CRM/Core/Smarty/plugins/function.crmResURL.php
index 800c56997d..e73e67ac33 100644
--- a/civicrm/CRM/Core/Smarty/plugins/function.crmResURL.php
+++ b/civicrm/CRM/Core/Smarty/plugins/function.crmResURL.php
@@ -21,14 +21,21 @@
  * Determine the URL of a resource file
  *
  * @param array $params
+ *   Identify the resource by either 'ext'+'file' or 'expr'.
+ *
  *   Array with keys:
  *   - ext: string, extension name. see CRM_Core_Resources::getUrl
  *   - file: string, relative file path. see CRM_Core_Resources::getUrl
+ *   - expr: string, a dynamic path expression. See: \Civi\Core\Paths::getUrl()
  * @param CRM_Core_Smarty $smarty
  *
  * @return string
  */
 function smarty_function_crmResURL($params, &$smarty) {
+  if (!empty($params['expr'])) {
+    return Civi::paths()->getUrl($params['expr'], 'absolute');
+  }
+
   $res = CRM_Core_Resources::singleton();
   if (!array_key_exists('file', $params)) {
     $params['file'] = NULL;
diff --git a/civicrm/CRM/Custom/Form/CustomData.php b/civicrm/CRM/Custom/Form/CustomData.php
index 8bdc0d79ac..e502c72e15 100644
--- a/civicrm/CRM/Custom/Form/CustomData.php
+++ b/civicrm/CRM/Custom/Form/CustomData.php
@@ -29,7 +29,7 @@ class CRM_Custom_Form_CustomData {
    *   $params['custom'] = CRM_Core_BAO_CustomField::postProcess($submitted, $this->_id, $this->getDefaultEntity());
    *
    * @param CRM_Core_Form $form
-   * @param null|string $subType values stored in civicrm_custom_group.extends_entity_column_value
+   * @param null|string $entitySubType values stored in civicrm_custom_group.extends_entity_column_value
    *   e.g Student for contact type
    * @param null|string $subName value in civicrm_custom_group.extends_entity_column_id
    * @param null|int $groupCount number of entities that could have custom data
@@ -37,15 +37,12 @@ class CRM_Custom_Form_CustomData {
    *
    * @throws \CRM_Core_Exception
    */
-  public static function addToForm(&$form, $subType = NULL, $subName = NULL, $groupCount = 1, $contact_id = NULL) {
+  public static function addToForm(&$form, $entitySubType = NULL, $subName = NULL, $groupCount = 1, $contact_id = NULL) {
     $entityName = $form->getDefaultEntity();
     $entityID = $form->getEntityId();
-    // FIXME: If the form has been converted to use entityFormTrait then getEntitySubTypeId() will exist.
-    // However, if it is only partially converted (ie. we've switched customdata to use CRM_Custom_Form_CustomData)
-    // it won't, so we check if we have a subtype before calling the function.
-    $entitySubType = NULL;
-    if ($subType) {
-      $entitySubType = $form->getEntitySubTypeId($subType);
+    // If the form has been converted to use entityFormTrait then getEntitySubTypeId() will exist.
+    if (method_exists($form, 'getEntitySubTypeId') && empty($entitySubType)) {
+      $entitySubType = $form->getEntitySubTypeId();
     }
 
     if ($form->getAction() == CRM_Core_Action::VIEW) {
diff --git a/civicrm/CRM/Cxn/BAO/Cxn.php b/civicrm/CRM/Cxn/BAO/Cxn.php
index 2b3372eeec..2fb5d0be90 100644
--- a/civicrm/CRM/Cxn/BAO/Cxn.php
+++ b/civicrm/CRM/Cxn/BAO/Cxn.php
@@ -29,22 +29,7 @@ class CRM_Cxn_BAO_Cxn extends CRM_Cxn_DAO_Cxn {
    * @return string
    */
   public static function getSiteCallbackUrl() {
-    $config = CRM_Core_Config::singleton();
-
-    if (preg_match('/^(http|https):/', $config->resourceBase)) {
-      $civiUrl = $config->resourceBase;
-    }
-    else {
-      $civiUrl = rtrim(CRM_Utils_System::baseURL(), '/') . '/' . ltrim($config->resourceBase, '/');
-    }
-
-    // In practice, this may not be necessary, but we want to prevent
-    // edge-cases that downgrade security-level below system policy.
-    if (Civi::settings()->get('enableSSL')) {
-      $civiUrl = preg_replace('/^http:/', 'https:', $civiUrl);
-    }
-
-    return rtrim($civiUrl, '/') . '/extern/cxn.php';
+    return CRM_Utils_System::externUrl('extern/cxn', NULL, NULL, TRUE, TRUE);
   }
 
   /**
diff --git a/civicrm/CRM/Dashlet/Page/GettingStarted.php b/civicrm/CRM/Dashlet/Page/GettingStarted.php
index 7ce121fa69..f09a490f7e 100644
--- a/civicrm/CRM/Dashlet/Page/GettingStarted.php
+++ b/civicrm/CRM/Dashlet/Page/GettingStarted.php
@@ -72,13 +72,15 @@ class CRM_Dashlet_Page_GettingStarted extends CRM_Core_Page {
    * @return array
    */
   private function _gettingStarted() {
-    $value = Civi::cache('community_messages')->get('dashboard_gettingStarted');
+    $tsLocale = CRM_Core_I18n::getLocale();
+    $key = 'dashboard_gettingStarted_' . $tsLocale;
+    $value = Civi::cache('community_messages')->get($key);
 
     if (!$value) {
       $value = $this->_getHtml($this->gettingStartedUrl());
 
       if ($value) {
-        Civi::cache('community_messages')->set('dashboard_gettingStarted', $value, (60 * 60 * 24 * self::CACHE_DAYS));
+        Civi::cache('community_messages')->set($key, $value, (60 * 60 * 24 * self::CACHE_DAYS));
       }
     }
 
diff --git a/civicrm/CRM/Dedupe/Merger.php b/civicrm/CRM/Dedupe/Merger.php
index 57e6156155..12ec5faaa5 100644
--- a/civicrm/CRM/Dedupe/Merger.php
+++ b/civicrm/CRM/Dedupe/Merger.php
@@ -33,6 +33,7 @@ class CRM_Dedupe_Merger {
       $title = $userRecordUrl = '';
 
       $config = CRM_Core_Config::singleton();
+      // @todo - this user url stuff is only needed for the form layer - move to CRM_Contact_Form_Merge
       if ($config->userSystem->is_drupal) {
         $userRecordUrl = CRM_Utils_System::url('user/%ufid');
         $title = ts('%1 User: %2; user id: %3', [
@@ -933,7 +934,7 @@ INNER JOIN  civicrm_membership membership2 ON membership1.membership_type_id = m
    */
   public static function skipMerge($mainId, $otherId, &$migrationInfo, $mode = 'safe', &$conflicts = []) {
 
-    $conflicts = self::getConflicts($migrationInfo, $mainId, $otherId, $mode);
+    $conflicts = self::getConflicts($migrationInfo, $mainId, $otherId, $mode)['conflicts'];
     // A hook could have set skip_merge in order to alter merge behaviour.
     // This is a something we might ideally deprecate since they really 'should'
     // mess with the conflicts array instead.
@@ -1116,189 +1117,10 @@ INNER JOIN  civicrm_membership membership2 ON membership1.membership_type_id = m
     $locations = ['main' => [], 'other' => []];
 
     foreach ($locationBlocks as $blockName => $blockInfo) {
-
-      // Collect existing fields from both 'main' and 'other' contacts first
-      // This allows us to match up location/types when building the table rows
-      $locations['main'][$blockName] = self::buildLocationBlockForContact($mainId, $blockInfo, $blockName);
-      $locations['other'][$blockName] = self::buildLocationBlockForContact($otherId, $blockInfo, $blockName);
-
-      // Now, build the table rows appropriately, based off the information on
-      // the 'other' contact
-      if (!empty($locations['other']) && !empty($locations['other'][$blockName])) {
-        foreach ($locations['other'][$blockName] as $count => $value) {
-
-          $displayValue = $value[$blockInfo['displayField']];
-
-          // Add this value to the table rows
-          $rows["move_location_{$blockName}_{$count}"]['other'] = $displayValue;
-
-          // CRM-17556 Only display 'main' contact value if it's the same location + type
-          // Look it up from main values...
-
-          $lookupLocation = FALSE;
-          if ($blockInfo['hasLocation']) {
-            $lookupLocation = $value['location_type_id'];
-          }
-
-          $lookupType = FALSE;
-          if ($blockInfo['hasType']) {
-            $lookupType = CRM_Utils_Array::value($blockInfo['hasType'], $value);
-          }
-
-          // Hold ID of main contact's matching block
-          $mainContactBlockId = 0;
-
-          if (!empty($locations['main'][$blockName])) {
-            foreach ($locations['main'][$blockName] as $mainValueCheck) {
-              // No location/type, or matching location and type
-              if (
-                (empty($lookupLocation) || $lookupLocation == $mainValueCheck['location_type_id'])
-                && (empty($lookupType) || $lookupType == $mainValueCheck[$blockInfo['hasType']])
-              ) {
-                // Set this value as the default against the 'other' contact value
-                $rows["move_location_{$blockName}_{$count}"]['main'] = $mainValueCheck[$blockInfo['displayField']];
-                $rows["move_location_{$blockName}_{$count}"]['main_is_primary'] = $mainValueCheck['is_primary'];
-                $rows["move_location_{$blockName}_{$count}"]['location_entity'] = $blockName;
-                $mainContactBlockId = $mainValueCheck['id'];
-                break;
-              }
-            }
-          }
-
-          // Add checkbox to migrate data from 'other' to 'main'
-          $elements[] = ['advcheckbox', "move_location_{$blockName}_{$count}"];
-
-          // Add checkbox to set the 'other' location as primary
-          $elements[] = [
-            'advcheckbox',
-            "location_blocks[$blockName][$count][set_other_primary]",
-            NULL,
-            ts('Set as primary'),
-          ];
-
-          // Flag up this field to skipMerge function (@todo: do we need to?)
-          $migrationInfo["move_location_{$blockName}_{$count}"] = 1;
-
-          // Add a hidden field to store the ID of the target main contact block
-          $elements[] = [
-            'hidden',
-            "location_blocks[$blockName][$count][mainContactBlockId]",
-            $mainContactBlockId,
-          ];
-
-          // Setup variables
-          $thisTypeId = FALSE;
-          $thisLocId = FALSE;
-
-          // Provide a select drop-down for the location's location type
-          // eg: Home, Work...
-
-          if ($blockInfo['hasLocation']) {
-
-            // Load the location options for this entity
-            $locationOptions = civicrm_api3($blockName, 'getoptions', ['field' => 'location_type_id']);
-
-            $thisLocId = $value['location_type_id'];
-
-            // Put this field's location type at the top of the list
-            $tmpIdList = $locationOptions['values'];
-            $defaultLocId = [$thisLocId => $tmpIdList[$thisLocId]];
-            unset($tmpIdList[$thisLocId]);
-
-            // Add the element
-            $elements[] = [
-              'select',
-              "location_blocks[$blockName][$count][locTypeId]",
-              NULL,
-              $defaultLocId + $tmpIdList,
-            ];
-
-            // Add the relevant information to the $migrationInfo
-            // Keep location-type-id same as that of other-contact
-            // @todo Check this logic out
-            $migrationInfo['location_blocks'][$blockName][$count]['locTypeId'] = $thisLocId;
-            if ($blockName != 'address') {
-              $elements[] = [
-                'advcheckbox',
-                "location_blocks[{$blockName}][$count][operation]",
-                NULL,
-                ts('Add new'),
-              ];
-              // always use add operation
-              $migrationInfo['location_blocks'][$blockName][$count]['operation'] = 1;
-            }
-
-          }
-
-          // Provide a select drop-down for the location's type/provider
-          // eg websites: Google+, Facebook...
-
-          if ($blockInfo['hasType']) {
-
-            // Load the type options for this entity
-            $typeOptions = civicrm_api3($blockName, 'getoptions', ['field' => $blockInfo['hasType']]);
-
-            $thisTypeId = CRM_Utils_Array::value($blockInfo['hasType'], $value);
-
-            // Put this field's location type at the top of the list
-            $tmpIdList = $typeOptions['values'];
-            $defaultTypeId = [$thisTypeId => CRM_Utils_Array::value($thisTypeId, $tmpIdList)];
-            unset($tmpIdList[$thisTypeId]);
-
-            // Add the element
-            $elements[] = [
-              'select',
-              "location_blocks[$blockName][$count][typeTypeId]",
-              NULL,
-              $defaultTypeId + $tmpIdList,
-            ];
-
-            // Add the information to the migrationInfo
-            $migrationInfo['location_blocks'][$blockName][$count]['typeTypeId'] = $thisTypeId;
-
-          }
-
-          // Set the label for this row
-          $rowTitle = $blockInfo['label'] . ' ' . ($count + 1);
-          if (!empty($thisLocId)) {
-            $rowTitle .= ' (' . $locationOptions['values'][$thisLocId] . ')';
-          }
-          if (!empty($thisTypeId)) {
-            $rowTitle .= ' (' . $typeOptions['values'][$thisTypeId] . ')';
-          }
-          $rows["move_location_{$blockName}_$count"]['title'] = $rowTitle;
-
-        } // End loop through 'other' locations of this type
-
-      } // End if 'other' location for this type exists
-
+      list($locations, $rows, $elements, $migrationInfo) = self::addLocationFieldInfo($mainId, $otherId, $blockInfo, $blockName, $locations, $rows, $elements, $migrationInfo);
     } // End loop through each location block entity
 
     // add the related tables and unset the ones that don't sport any of the duplicate contact's info
-    $config = CRM_Core_Config::singleton();
-    $mainUfId = CRM_Core_BAO_UFMatch::getUFId($mainId);
-    $mainUser = NULL;
-    if ($mainUfId) {
-      // d6 compatible
-      if ($config->userSystem->is_drupal == '1' && function_exists($mainUser)) {
-        $mainUser = user_load($mainUfId);
-      }
-      elseif ($config->userFramework == 'Joomla') {
-        $mainUser = JFactory::getUser($mainUfId);
-      }
-    }
-    $otherUfId = CRM_Core_BAO_UFMatch::getUFId($otherId);
-    $otherUser = NULL;
-    if ($otherUfId) {
-      // d6 compatible
-      if ($config->userSystem->is_drupal == '1' && function_exists($mainUser)) {
-        $otherUser = user_load($otherUfId);
-      }
-      elseif ($config->userFramework == 'Joomla') {
-        $otherUser = JFactory::getUser($otherUfId);
-      }
-    }
-
     $mergeHandler = new CRM_Dedupe_MergeHandler((int) $mainId, (int) $otherId);
     $relTables = $mergeHandler->getTablesRelatedToTheMergePair();
     foreach ($relTables as $name => $null) {
@@ -1307,18 +1129,10 @@ INNER JOIN  civicrm_membership membership2 ON membership1.membership_type_id = m
 
       $relTables[$name]['main_url'] = str_replace('$cid', $mainId, $relTables[$name]['url']);
       $relTables[$name]['other_url'] = str_replace('$cid', $otherId, $relTables[$name]['url']);
-      if ($name == 'rel_table_users') {
-        $relTables[$name]['main_url'] = str_replace('%ufid', $mainUfId, $relTables[$name]['url']);
-        $relTables[$name]['other_url'] = str_replace('%ufid', $otherUfId, $relTables[$name]['url']);
-        $find = ['$ufid', '$ufname'];
-        if ($mainUser) {
-          $replace = [$mainUfId, $mainUser->name];
-          $relTables[$name]['main_title'] = str_replace($find, $replace, $relTables[$name]['title']);
-        }
-        if ($otherUser) {
-          $replace = [$otherUfId, $otherUser->name];
-          $relTables[$name]['other_title'] = str_replace($find, $replace, $relTables[$name]['title']);
-        }
+      if ($name === 'rel_table_users') {
+        // @todo - this user url stuff is only needed for the form layer - move to CRM_Contact_Form_Merge
+        $relTables[$name]['main_url'] = str_replace('%ufid', CRM_Core_BAO_UFMatch::getUFId($otherId), $relTables[$name]['url']);
+        $relTables[$name]['other_url'] = str_replace('%ufid', CRM_Core_BAO_UFMatch::getUFId($otherId), $relTables[$name]['url']);
       }
       if ($name == 'rel_table_memberships') {
         //Enable 'add new' checkbox if main contact does not contain any membership similar to duplicate contact.
@@ -1354,25 +1168,24 @@ INNER JOIN  civicrm_membership membership2 ON membership1.membership_type_id = m
     );
 
     foreach ($otherTree as $gid => $group) {
-      $foundField = FALSE;
       if (!isset($group['fields'])) {
         continue;
       }
 
       foreach ($group['fields'] as $fid => $field) {
+        $mainContactValue = $mainTree[$gid]['fields'][$fid]['customValue'] ?? NULL;
+        $otherContactValue = $otherTree[$gid]['fields'][$fid]['customValue'] ?? NULL;
         if (in_array($fid, $compareFields['custom'])) {
-          if (!$foundField) {
-            $rows["custom_group_$gid"]['title'] = $group['title'];
-            $foundField = TRUE;
-          }
-          if (!empty($mainTree[$gid]['fields'][$fid]['customValue'])) {
-            foreach ($mainTree[$gid]['fields'][$fid]['customValue'] as $valueId => $values) {
+          $rows["custom_group_$gid"]['title'] = $rows["custom_group_$gid"]['title'] ?? $group['title'];
+
+          if ($mainContactValue) {
+            foreach ($mainContactValue as $valueId => $values) {
               $rows["move_custom_$fid"]['main'] = CRM_Core_BAO_CustomField::displayValue($values['data'], $fid);
             }
           }
-          $value = "null";
-          if (!empty($otherTree[$gid]['fields'][$fid]['customValue'])) {
-            foreach ($otherTree[$gid]['fields'][$fid]['customValue'] as $valueId => $values) {
+          $value = 'null';
+          if ($otherContactValue) {
+            foreach ($otherContactValue as $valueId => $values) {
               $rows["move_custom_$fid"]['other'] = CRM_Core_BAO_CustomField::displayValue($values['data'], $fid);
               if ($values['data'] === 0 || $values['data'] === '0') {
                 $values['data'] = $qfZeroBug;
@@ -1383,12 +1196,13 @@ INNER JOIN  civicrm_membership membership2 ON membership1.membership_type_id = m
           $rows["move_custom_$fid"]['title'] = $field['label'];
 
           $elements[] = [
-            'advcheckbox',
-            "move_custom_$fid",
-            NULL,
-            NULL,
-            NULL,
-            $value,
+            0 => 'advcheckbox',
+            1 => "move_custom_$fid",
+            2 => NULL,
+            3 => NULL,
+            4 => NULL,
+            5 => $value,
+            'is_checked' => (!isset($rows["move_custom_$fid"]['main']) || $rows["move_custom_$fid"]['main'] === ''),
           ];
           $migrationInfo["move_custom_$fid"] = $value;
         }
@@ -2039,6 +1853,9 @@ INNER JOIN  civicrm_membership membership2 ON membership1.membership_type_id = m
     }
     $migrationInfo = [];
     $conflicts = [];
+    // Try to lock the contacts before we load the data as we don't want it changing under us.
+    // https://lab.civicrm.org/dev/core/issues/1355
+    $locks = self::getLocksOnContacts([$mainId, $otherId]);
     if (!CRM_Dedupe_Merger::skipMerge($mainId, $otherId, $migrationInfo, $mode, $conflicts)) {
       CRM_Dedupe_Merger::moveAllBelongings($mainId, $otherId, $migrationInfo, $checkPermissions);
       $resultStats['merged'][] = [
@@ -2060,6 +1877,7 @@ INNER JOIN  civicrm_membership membership2 ON membership1.membership_type_id = m
     else {
       CRM_Core_BAO_PrevNextCache::deletePair($mainId, $otherId, $cacheKeyString);
     }
+    self::releaseLocks($locks);
     return $resultStats;
   }
 
@@ -2346,13 +2164,13 @@ INNER JOIN  civicrm_membership membership2 ON membership1.membership_type_id = m
     // allow hook to override / manipulate migrationInfo as well
     $migrationInfo = $migrationData['migration_info'];
     foreach ($conflicts as $key => $val) {
-      if ($val !== NULL || $mode !== 'safe') {
-        // copy over the resolved values
-        $migrationInfo[$key] = $val;
-        unset($conflicts[$key]);
-      }
+      // Copy over the resolved values. If we are in aggressive mode we update to null
+      // so as not to copy over. Why it's different to safe mode is a bit murky.
+      // Working theory is it doesn't matter what we do in safe mode here if $val is NULL.
+      // as the merge is not gonna happen if $val == NULL
+      $migrationInfo[$key] = $val ?? ($mode === 'safe' ? $migrationInfo[$key] : NULL);
     }
-    return self::formatConflictArray($conflicts, $migrationInfo['rows'], $migrationInfo['main_details']['location_blocks'], $migrationInfo['other_details']['location_blocks'], $mainId, $otherId);
+    return self::formatConflictArray($conflicts, $migrationInfo['rows'], $migrationInfo['main_details']['location_blocks'], $migrationInfo['other_details']['location_blocks'], $mainId, $otherId, $mode);
   }
 
   /**
@@ -2362,12 +2180,29 @@ INNER JOIN  civicrm_membership membership2 ON membership1.membership_type_id = m
    * @param $toRemoveContactLocationBlocks
    * @param $toKeepID
    * @param $toRemoveID
+   * @param string $mode
    *
    * @return mixed
    * @throws \CRM_Core_Exception
    */
-  protected static function formatConflictArray($conflicts, $migrationInfo, $toKeepContactLocationBlocks, $toRemoveContactLocationBlocks, $toKeepID, $toRemoveID) {
+  protected static function formatConflictArray($conflicts, $migrationInfo, $toKeepContactLocationBlocks, $toRemoveContactLocationBlocks, $toKeepID, $toRemoveID, $mode) {
     $return = [];
+    $resolved = [];
+    foreach ($conflicts as $key => $val) {
+      if ($val !== NULL) {
+        // copy over the resolved values
+        $resolved[$key] = $val;
+        unset($conflicts[$key]);
+      }
+      elseif ($mode === 'aggressive') {
+        unset($conflicts[$key]);
+        if (strpos($key, 'move_location_') !== 0) {
+          // @todo - just handling plain contact fields for now because I think I need a bigger refactor
+          // of the below to handle locations & will do as a follow up.
+          $resolved['contact'][substr($key, 5)] = $migrationInfo[$key]['main'];
+        }
+      }
+    }
     foreach (array_keys($conflicts) as $index) {
       if (substr($index, 0, 14) === 'move_location_') {
         $parts = explode('_', $index);
@@ -2406,7 +2241,7 @@ INNER JOIN  civicrm_membership membership2 ON membership1.membership_type_id = m
         throw new CRM_Core_Exception(ts('Unknown parameter') . $index);
       }
     }
-    return $return;
+    return ['conflicts' => $return, 'resolved' => $resolved];
   }
 
   /**
@@ -2546,4 +2381,230 @@ INNER JOIN  civicrm_membership membership2 ON membership1.membership_type_id = m
     return $locationBlock;
   }
 
+  /**
+   * Get a lock on the given contact.
+   *
+   * The lock is like a gentleman's agreement between php & mysql. It is reserved at the
+   * mysql level so it works across php processes but it doesn't actually lock the database.
+   *
+   * Instead php can check the lock to see if it has been acquired before taking an action.
+   *
+   * In this case we really don't want to attempt to dedupe contacts if another process is
+   * trying to act on the specific contact as it could result in messy deadlocks & possibly data corruption.
+   * In most databases this would be a rare event but if multiple dedupe processes are running
+   * at once (for example) or there is also an import process in play there is potential for them to crash.
+   * By throwing a specific error the calling process can catch it and determine it is worth trying again later without a lot of
+   * noise.
+   *
+   * As of writing no other processes DO grab contact locks but it would be reasonable to consider
+   * grabbing them doing contact edits in general as well as imports etc.
+   *
+   * @param array $contacts
+   *
+   * @return array
+   *
+   * @throws \CRM_Core_Exception
+   * @throws \CRM_Core_Exception_ResourceConflictException
+   */
+  protected static function getLocksOnContacts($contacts):array {
+    $locks = [];
+    if (!CRM_Utils_SQL::supportsMultipleLocks()) {
+      return $locks;
+    }
+    foreach ($contacts as $contactID) {
+      $lock = Civi::lockManager()->acquire("data.core.contact.{$contactID}");
+      if ($lock->isAcquired()) {
+        $locks[] = $lock;
+      }
+      else {
+        self::releaseLocks($locks);
+        throw new CRM_Core_Exception_ResourceConflictException(ts('Contact is in Use'), 'contact_lock');
+      }
+    }
+    return $locks;
+  }
+
+  /**
+   * Release contact locks so another process can alter them if it wants.
+   *
+   * @param array $locks
+   */
+  protected static function releaseLocks(array $locks) {
+    foreach ($locks as $lock) {
+      /* @var Civi\Core\Lock\LockInterface $lock */
+      $lock->release();
+    }
+  }
+
+  /**
+   * @param $mainId
+   * @param $otherId
+   * @param $blockInfo
+   * @param $blockName
+   * @param array $locations
+   * @param array $rows
+   * @param array $elements
+   * @param array $migrationInfo
+   *
+   * @return array
+   * @throws \CiviCRM_API3_Exception
+   */
+  protected static function addLocationFieldInfo($mainId, $otherId, $blockInfo, $blockName, array $locations, array $rows, array $elements, array $migrationInfo): array {
+    // Collect existing fields from both 'main' and 'other' contacts first
+    // This allows us to match up location/types when building the table rows
+    $locations['main'][$blockName] = self::buildLocationBlockForContact($mainId, $blockInfo, $blockName);
+    $locations['other'][$blockName] = self::buildLocationBlockForContact($otherId, $blockInfo, $blockName);
+
+    // Now, build the table rows appropriately, based off the information on
+    // the 'other' contact
+    if (!empty($locations['other']) && !empty($locations['other'][$blockName])) {
+      foreach ($locations['other'][$blockName] as $count => $value) {
+
+        $displayValue = $value[$blockInfo['displayField']];
+
+        // Add this value to the table rows
+        $rows["move_location_{$blockName}_{$count}"]['other'] = $displayValue;
+
+        // CRM-17556 Only display 'main' contact value if it's the same location + type
+        // Look it up from main values...
+
+        $lookupLocation = FALSE;
+        if ($blockInfo['hasLocation']) {
+          $lookupLocation = $value['location_type_id'];
+        }
+
+        $lookupType = FALSE;
+        if ($blockInfo['hasType']) {
+          $lookupType = CRM_Utils_Array::value($blockInfo['hasType'], $value);
+        }
+
+        // Hold ID of main contact's matching block
+        $mainContactBlockId = 0;
+
+        if (!empty($locations['main'][$blockName])) {
+          foreach ($locations['main'][$blockName] as $mainValueCheck) {
+            // No location/type, or matching location and type
+            if (
+              (empty($lookupLocation) || $lookupLocation == $mainValueCheck['location_type_id'])
+              && (empty($lookupType) || $lookupType == $mainValueCheck[$blockInfo['hasType']])
+            ) {
+              // Set this value as the default against the 'other' contact value
+              $rows["move_location_{$blockName}_{$count}"]['main'] = $mainValueCheck[$blockInfo['displayField']];
+              $rows["move_location_{$blockName}_{$count}"]['main_is_primary'] = $mainValueCheck['is_primary'];
+              $rows["move_location_{$blockName}_{$count}"]['location_entity'] = $blockName;
+              $mainContactBlockId = $mainValueCheck['id'];
+              break;
+            }
+          }
+        }
+
+        // Add checkbox to migrate data from 'other' to 'main'
+        $elements[] = ['advcheckbox', "move_location_{$blockName}_{$count}"];
+
+        // Add checkbox to set the 'other' location as primary
+        $elements[] = [
+          'advcheckbox',
+          "location_blocks[$blockName][$count][set_other_primary]",
+          NULL,
+          ts('Set as primary'),
+        ];
+
+        // Flag up this field to skipMerge function (@todo: do we need to?)
+        $migrationInfo["move_location_{$blockName}_{$count}"] = 1;
+
+        // Add a hidden field to store the ID of the target main contact block
+        $elements[] = [
+          'hidden',
+          "location_blocks[$blockName][$count][mainContactBlockId]",
+          $mainContactBlockId,
+        ];
+
+        // Setup variables
+        $thisTypeId = FALSE;
+        $thisLocId = FALSE;
+
+        // Provide a select drop-down for the location's location type
+        // eg: Home, Work...
+
+        if ($blockInfo['hasLocation']) {
+
+          // Load the location options for this entity
+          $locationOptions = civicrm_api3($blockName, 'getoptions', ['field' => 'location_type_id']);
+
+          $thisLocId = $value['location_type_id'];
+
+          // Put this field's location type at the top of the list
+          $tmpIdList = $locationOptions['values'];
+          $defaultLocId = [$thisLocId => $tmpIdList[$thisLocId]];
+          unset($tmpIdList[$thisLocId]);
+
+          // Add the element
+          $elements[] = [
+            'select',
+            "location_blocks[$blockName][$count][locTypeId]",
+            NULL,
+            $defaultLocId + $tmpIdList,
+          ];
+
+          // Add the relevant information to the $migrationInfo
+          // Keep location-type-id same as that of other-contact
+          // @todo Check this logic out
+          $migrationInfo['location_blocks'][$blockName][$count]['locTypeId'] = $thisLocId;
+          if ($blockName != 'address') {
+            $elements[] = [
+              'advcheckbox',
+              "location_blocks[{$blockName}][$count][operation]",
+              NULL,
+              ts('Add new'),
+            ];
+            // always use add operation
+            $migrationInfo['location_blocks'][$blockName][$count]['operation'] = 1;
+          }
+
+        }
+
+        // Provide a select drop-down for the location's type/provider
+        // eg websites: Facebook...
+
+        if ($blockInfo['hasType']) {
+
+          // Load the type options for this entity
+          $typeOptions = civicrm_api3($blockName, 'getoptions', ['field' => $blockInfo['hasType']]);
+
+          $thisTypeId = CRM_Utils_Array::value($blockInfo['hasType'], $value);
+
+          // Put this field's location type at the top of the list
+          $tmpIdList = $typeOptions['values'];
+          $defaultTypeId = [$thisTypeId => CRM_Utils_Array::value($thisTypeId, $tmpIdList)];
+          unset($tmpIdList[$thisTypeId]);
+
+          // Add the element
+          $elements[] = [
+            'select',
+            "location_blocks[$blockName][$count][typeTypeId]",
+            NULL,
+            $defaultTypeId + $tmpIdList,
+          ];
+
+          // Add the information to the migrationInfo
+          $migrationInfo['location_blocks'][$blockName][$count]['typeTypeId'] = $thisTypeId;
+
+        }
+
+        // Set the label for this row
+        $rowTitle = $blockInfo['label'] . ' ' . ($count + 1);
+        if (!empty($thisLocId)) {
+          $rowTitle .= ' (' . $locationOptions['values'][$thisLocId] . ')';
+        }
+        if (!empty($thisTypeId)) {
+          $rowTitle .= ' (' . $typeOptions['values'][$thisTypeId] . ')';
+        }
+        $rows["move_location_{$blockName}_$count"]['title'] = $rowTitle;
+
+      } // End loop through 'other' locations of this type
+
+    }
+    return [$locations, $rows, $elements, $migrationInfo];
+  }
+
 }
diff --git a/civicrm/CRM/Event/BAO/Event.php b/civicrm/CRM/Event/BAO/Event.php
index c089518575..df78a6ac9c 100644
--- a/civicrm/CRM/Event/BAO/Event.php
+++ b/civicrm/CRM/Event/BAO/Event.php
@@ -1232,8 +1232,6 @@ WHERE civicrm_event.is_active = 1
             $values['event']
           );
           // append invoice pdf to email
-          $template = CRM_Core_Smarty::singleton();
-          $taxAmt = $template->get_template_vars('totalTaxAmount');
           $prefixValue = Civi::settings()->get('contribution_invoice_settings');
           $invoicing = CRM_Utils_Array::value('invoicing', $prefixValue);
           if (isset($invoicing) && isset($prefixValue['is_email_pdf']) && !empty($values['contributionId'])) {
@@ -1751,7 +1749,7 @@ WHERE  id = $cfID
 
     $customProfile = $additionalIDs = [];
     if (!$participantId) {
-      CRM_Core_Error::fatal(ts('Cannot find participant ID'));
+      throw new CRM_Core_Exception(ts('Cannot find participant ID'));
     }
 
     //set Ids of Primary Participant also.
@@ -2350,10 +2348,13 @@ LEFT  JOIN  civicrm_price_field_value value ON ( value.id = lineItem.price_field
     // Special logic for fields whose options depend on context or properties
     switch ($fieldName) {
       case 'financial_type_id':
-        // Fixme - this is going to ignore context, better to get conditions, add params, and call PseudoConstant::get
-        return CRM_Financial_BAO_FinancialType::getIncomeFinancialType();
-
-      break;
+        // @fixme - this is going to ignore context, better to get conditions, add params, and call PseudoConstant::get
+        // @fixme - https://lab.civicrm.org/dev/core/issues/547 if CiviContribute not enabled this causes an invalid query
+        //   because $relationTypeId is not set in CRM_Financial_BAO_FinancialType::getIncomeFinancialType()
+        if (array_key_exists('CiviEvent', CRM_Core_Component::getEnabledComponents())) {
+          return CRM_Financial_BAO_FinancialType::getIncomeFinancialType();
+        }
+        return [];
     }
     return CRM_Core_PseudoConstant::get(__CLASS__, $fieldName, $params, $context);
   }
diff --git a/civicrm/CRM/Event/BAO/Participant.php b/civicrm/CRM/Event/BAO/Participant.php
index a3f432c89e..f134201cc4 100644
--- a/civicrm/CRM/Event/BAO/Participant.php
+++ b/civicrm/CRM/Event/BAO/Participant.php
@@ -330,6 +330,12 @@ class CRM_Event_BAO_Participant extends CRM_Event_DAO_Participant {
    *
    * @param bool $returnWaitingCount
    * @param bool $considerTestParticipant
+   *   When TRUE, include participant records where is_test = 1.
+   * @param bool $onlyPositiveStatuses
+   *   When FALSE, count all participant statuses where is_counted = 1.  This includes
+   *   both "Positive" participants (Registered, Attended, etc.) and waitlisted
+   *   (and some pending) participants.
+   *   When TRUE, count only participants with statuses of "Positive".
    *
    * @return bool|int|null|string
    *   1. false                 => If event having some empty spaces.
@@ -339,7 +345,8 @@ class CRM_Event_BAO_Participant extends CRM_Event_DAO_Participant {
     $returnEmptySeats = FALSE,
     $includeWaitingList = TRUE,
     $returnWaitingCount = FALSE,
-    $considerTestParticipant = FALSE
+    $considerTestParticipant = FALSE,
+    $onlyPositiveStatuses = FALSE
   ) {
     $result = NULL;
     if (!$eventId) {
@@ -354,18 +361,16 @@ class CRM_Event_BAO_Participant extends CRM_Event_DAO_Participant {
 
     $participantRoles = CRM_Event_PseudoConstant::participantRole(NULL, 'filter = 1');
     $countedStatuses = CRM_Event_PseudoConstant::participantStatus(NULL, 'is_counted = 1');
+    $positiveStatuses = CRM_Event_PseudoConstant::participantStatus(NULL, "class = 'Positive'");
     $waitingStatuses = CRM_Event_PseudoConstant::participantStatus(NULL, "class = 'Waiting'");
     $onWaitlistStatusId = array_search('On waitlist', $waitingStatuses);
 
-    //when we do require only waiting count don't consider counted.
-    if (!$returnWaitingCount && !empty($countedStatuses)) {
-      $allStatusIds = array_keys($countedStatuses);
-    }
-
     $where = [' event.id = %1 '];
     if (!$considerTestParticipant) {
       $where[] = ' ( participant.is_test = 0 OR participant.is_test IS NULL ) ';
     }
+
+    // Only count Participant Roles with the "Counted?" flag.
     if (!empty($participantRoles)) {
       $escapedRoles = [];
       foreach (array_keys($participantRoles) as $participantRole) {
@@ -406,8 +411,13 @@ INNER JOIN  civicrm_event event ON ( event.id = participant.event_id )
       }
     }
 
-    //consider only counted participants.
-    $where[] = ' participant.status_id IN ( ' . implode(', ', array_keys($countedStatuses)) . ' ) ';
+    //Consider only counted participants, or alternatively only registered (not on waitlist) participants.
+    if ($onlyPositiveStatuses) {
+      $where[] = ' participant.status_id IN ( ' . implode(', ', array_keys($positiveStatuses)) . ' ) ';
+    }
+    else {
+      $where[] = ' participant.status_id IN ( ' . implode(', ', array_keys($countedStatuses)) . ' ) ';
+    }
     $whereClause = ' WHERE ' . implode(' AND ', $where);
     $eventSeatsWhere = implode(' AND ', $where);
 
@@ -557,6 +567,8 @@ INNER JOIN  civicrm_price_field field       ON ( value.price_field_id = field.id
    * Get the empty spaces for event those we can allocate
    * to pending participant to become confirm.
    *
+   * @deprecated
+   *
    * @param int $eventId
    *   Event id.
    *
@@ -564,42 +576,8 @@ INNER JOIN  civicrm_price_field field       ON ( value.price_field_id = field.id
    *   $spaces  Number of Empty Seats/null.
    */
   public static function pendingToConfirmSpaces($eventId) {
-    $emptySeats = 0;
-    if (!$eventId) {
-      return $emptySeats;
-    }
-
-    $positiveStatuses = CRM_Event_PseudoConstant::participantStatus(NULL, "class = 'Positive'");
-    $statusIds = '(' . implode(',', array_keys($positiveStatuses)) . ')';
-
-    $query = "
-  SELECT  count(participant.id) as registered,
-          civicrm_event.max_participants
-    FROM  civicrm_participant participant, civicrm_event
-   WHERE  participant.event_id = {$eventId}
-     AND  civicrm_event.id = participant.event_id
-     AND  participant.status_id IN {$statusIds}
-GROUP BY  participant.event_id
-";
-    $dao = CRM_Core_DAO::executeQuery($query);
-    if ($dao->fetch()) {
-
-      //unlimited space.
-      if ($dao->max_participants == NULL || $dao->max_participants <= 0) {
-        return NULL;
-      }
-
-      //no space.
-      if ($dao->registered >= $dao->max_participants) {
-        return $emptySeats;
-      }
-
-      //difference.
-      return $dao->max_participants - $dao->registered;
-    }
-
-    //space in case no registeration yet.
-    return CRM_Core_DAO::getFieldValue('CRM_Event_DAO_Event', $eventId, 'max_participants');
+    CRM_Core_Error::deprecatedFunctionWarning('CRM_Event_BAO_Participant::eventFull');
+    return CRM_Event_BAO_Participant::eventFull($eventId, TRUE, FALSE, TRUE, FALSE, TRUE);
   }
 
   /**
@@ -991,6 +969,21 @@ WHERE  civicrm_participant.id = {$participantId}
     }
   }
 
+  /**
+   * Get the ID of the default (first) participant role
+   *
+   * @return int
+   * @throws \CiviCRM_API3_Exception
+   */
+  public static function getDefaultRoleID() {
+    return (int) civicrm_api3('OptionValue', 'getvalue', [
+      'return' => 'value',
+      'option_group_id' => 'participant_role',
+      'is_active' => 1,
+      'options' => ['limit' => 1, 'sort' => 'is_default DESC'],
+    ]);
+  }
+
   /**
    * Get the additional participant ids.
    *
diff --git a/civicrm/CRM/Event/BAO/Query.php b/civicrm/CRM/Event/BAO/Query.php
index abf74dc022..ba9a353df8 100644
--- a/civicrm/CRM/Event/BAO/Query.php
+++ b/civicrm/CRM/Event/BAO/Query.php
@@ -49,25 +49,25 @@ class CRM_Event_BAO_Query extends CRM_Core_BAO_Query {
     if (($query->_mode & CRM_Contact_BAO_Query::MODE_EVENT) ||
       CRM_Contact_BAO_Query::componentPresent($query->_returnProperties, 'participant_')
     ) {
-      $query->_select['participant_id'] = "civicrm_participant.id as participant_id";
+      $query->_select['participant_id'] = 'civicrm_participant.id as participant_id';
       $query->_element['participant_id'] = 1;
       $query->_tables['civicrm_participant'] = $query->_whereTables['civicrm_participant'] = 1;
 
       //add fee level
       if (!empty($query->_returnProperties['participant_fee_level'])) {
-        $query->_select['participant_fee_level'] = "civicrm_participant.fee_level as participant_fee_level";
+        $query->_select['participant_fee_level'] = 'civicrm_participant.fee_level as participant_fee_level';
         $query->_element['participant_fee_level'] = 1;
       }
 
       //add participant contact ID
       if (!empty($query->_returnProperties['participant_contact_id'])) {
-        $query->_select['participant_contact_id'] = "civicrm_participant.contact_id as participant_contact_id";
+        $query->_select['participant_contact_id'] = 'civicrm_participant.contact_id as participant_contact_id';
         $query->_element['participant_contact_id'] = 1;
       }
 
       //add fee amount
       if (!empty($query->_returnProperties['participant_fee_amount'])) {
-        $query->_select['participant_fee_amount'] = "civicrm_participant.fee_amount as participant_fee_amount";
+        $query->_select['participant_fee_amount'] = 'civicrm_participant.fee_amount as participant_fee_amount';
         $query->_element['participant_fee_amount'] = 1;
       }
 
@@ -471,12 +471,12 @@ class CRM_Event_BAO_Query extends CRM_Core_BAO_Query {
     $from = NULL;
     switch ($name) {
       case 'civicrm_participant':
-        $from = " LEFT JOIN civicrm_participant ON civicrm_participant.contact_id = contact_a.id ";
+        $from = ' LEFT JOIN civicrm_participant ON civicrm_participant.contact_id = contact_a.id ';
         break;
 
       case 'civicrm_event':
         //CRM-17121
-        $from = " LEFT JOIN civicrm_event ON civicrm_participant.event_id = civicrm_event.id ";
+        $from = ' LEFT JOIN civicrm_event ON civicrm_participant.event_id = civicrm_event.id ';
         break;
 
       case 'event_type':
diff --git a/civicrm/CRM/Event/Form/Participant.php b/civicrm/CRM/Event/Form/Participant.php
index d0ac09656a..3ed5ae1a5a 100644
--- a/civicrm/CRM/Event/Form/Participant.php
+++ b/civicrm/CRM/Event/Form/Participant.php
@@ -10,20 +10,31 @@
  */
 
 /**
- *
+ * Back office participant form.
  *
  * @package CRM
  * @copyright CiviCRM LLC https://civicrm.org/licensing
- * $Id$
- *
  */
 
 /**
- * This class generates form components for processing a participation
- * in an event
+ * Back office participant form.
  */
 class CRM_Event_Form_Participant extends CRM_Contribute_Form_AbstractEditPayment {
 
+  /**
+   * Participant ID - use getParticipantID.
+   *
+   * @var int
+   */
+  public $_pId;
+
+  /**
+   * ID of discount record.
+   *
+   * @var int
+   */
+  public $_discountId;
+
   public $useLivePageJS = TRUE;
 
   /**
@@ -96,60 +107,70 @@ class CRM_Event_Form_Participant extends CRM_Contribute_Form_AbstractEditPayment
 
   /**
    * If event is paid or unpaid.
+   *
    * @var bool
    */
   public $_isPaidEvent;
 
   /**
    * Page action.
+   *
    * @var int
    */
   public $_action;
 
   /**
    * Role Id.
+   *
    * @var int
    */
   protected $_roleId = NULL;
 
   /**
    * Event Type Id.
+   *
    * @var int
    */
   protected $_eventTypeId = NULL;
 
   /**
    * Participant status Id.
+   *
    * @var int
    */
   protected $_statusId = NULL;
 
   /**
    * Cache all the participant statuses.
+   *
    * @var array
    */
   protected $_participantStatuses;
 
   /**
    * Participant mode.
+   *
    * @var string
    */
   public $_mode = NULL;
 
   /**
    * Event ID preselect.
+   *
    * @var int
    */
   public $_eID = NULL;
 
   /**
    * Line Item for Price Set.
+   *
    * @var array
    */
   public $_lineItem = NULL;
 
   /**
    * Contribution mode for event registration for offline mode.
+   *
    * @var string
    * @deprecated
    */
@@ -159,30 +180,35 @@ class CRM_Event_Form_Participant extends CRM_Contribute_Form_AbstractEditPayment
 
   /**
    * Store id of role custom data type ( option value )
+   *
    * @var int
    */
   protected $_roleCustomDataTypeID;
 
   /**
    * Store id of event Name custom data type ( option value)
+   *
    * @var int
    */
   protected $_eventNameCustomDataTypeID;
 
   /**
    * Selected discount id.
+   *
    * @var int
    */
   public $_originalDiscountId = NULL;
 
   /**
    * Event id.
+   *
    * @var int
    */
   public $_eventId = NULL;
 
   /**
    * Id of payment, if any
+   *
    * @var int
    */
   public $_paymentId = NULL;
@@ -193,6 +219,13 @@ class CRM_Event_Form_Participant extends CRM_Contribute_Form_AbstractEditPayment
    */
   public $_onlinePendingContributionId = NULL;
 
+  /**
+   * Stored participant record.
+   *
+   * @var array
+   */
+  protected $participantRecord;
+
   /**
    * Explicitly declare the entity api name.
    */
@@ -210,8 +243,8 @@ class CRM_Event_Form_Participant extends CRM_Contribute_Form_AbstractEditPayment
   /**
    * Set variables up before form is built.
    *
-   * @return void
    * @throws \CRM_Core_Exception
+   * @throws \CiviCRM_API3_Exception
    */
   public function preProcess() {
     parent::preProcess();
@@ -365,7 +398,7 @@ class CRM_Event_Form_Participant extends CRM_Contribute_Form_AbstractEditPayment
     // when fee amount is included in form
     if (!empty($_POST['hidden_feeblock']) || !empty($_POST['send_receipt'])) {
       CRM_Event_Form_EventFees::preProcess($this);
-      self::buildEventFeeForm($this);
+      $this->buildEventFeeForm($this);
       CRM_Event_Form_EventFees::setDefaultValues($this);
     }
 
@@ -587,7 +620,7 @@ class CRM_Event_Form_Participant extends CRM_Contribute_Form_AbstractEditPayment
     $this->assign('partiallyPaidStatusId', $partiallyPaidStatusId);
 
     if ($this->_showFeeBlock) {
-      return self::buildEventFeeForm($this);
+      return $this->buildEventFeeForm($this);
     }
 
     //need to assign custom data type to the template
@@ -973,11 +1006,17 @@ class CRM_Event_Form_Participant extends CRM_Contribute_Form_AbstractEditPayment
    * @throws \CiviCRM_API3_Exception
    */
   public function submit($params) {
+    if ($this->_mode && !$this->_isPaidEvent) {
+      CRM_Core_Error::statusBounce(ts('Selected Event is not Paid Event '));
+    }
     $participantStatus = CRM_Event_PseudoConstant::participantStatus();
     // set the contact, when contact is selected
     if (!empty($params['contact_id'])) {
       $this->_contactID = $this->_contactId = $params['contact_id'];
     }
+    if (!$this->_priceSetId && $this->_isPaidEvent) {
+      CRM_Core_Error::deprecatedFunctionWarning('this should never be true, handling to be removed');
+    }
     if ($this->_priceSetId && $isQuickConfig = CRM_Core_DAO::getFieldValue('CRM_Price_DAO_PriceSet', $this->_priceSetId, 'is_quick_config')) {
       $this->_quickConfig = $isQuickConfig;
     }
@@ -991,101 +1030,7 @@ class CRM_Event_Form_Participant extends CRM_Contribute_Form_AbstractEditPayment
       $params['total_amount'] = CRM_Utils_Rule::cleanMoney($params['total_amount']);
     }
     if ($this->_isPaidEvent) {
-
-      $contributionParams = ['skipCleanMoney' => TRUE];
-      $lineItem = [];
-      $additionalParticipantDetails = [];
-      if (Civi::settings()->get('deferred_revenue_enabled')) {
-        $eventStartDate = CRM_Core_DAO::getFieldValue('CRM_Event_DAO_Event', $this->_eventId, 'start_date');
-        if (strtotime($eventStartDate) > strtotime(date('Ymt'))) {
-          $contributionParams['revenue_recognition_date'] = date('Ymd', strtotime($eventStartDate));
-        }
-      }
-      if (($this->_id && $this->_action & CRM_Core_Action::UPDATE) && $this->_paymentId) {
-        $participantBAO = new CRM_Event_BAO_Participant();
-        $participantBAO->id = $this->_id;
-        $participantBAO->find(TRUE);
-        $contributionParams['total_amount'] = $participantBAO->fee_amount;
-
-        $params['discount_id'] = NULL;
-        //re-enter the values for UPDATE mode
-        $params['fee_level'] = $params['amount_level'] = $participantBAO->fee_level;
-        $params['fee_amount'] = $participantBAO->fee_amount;
-        if (isset($params['priceSetId'])) {
-          $lineItem[0] = CRM_Price_BAO_LineItem::getLineItems($this->_id);
-        }
-        //also add additional participant's fee level/priceset
-        if (CRM_Event_BAO_Participant::isPrimaryParticipant($this->_id)) {
-          $additionalIds = CRM_Event_BAO_Participant::getAdditionalParticipantIds($this->_id);
-          $hasLineItems = CRM_Utils_Array::value('priceSetId', $params, FALSE);
-          $additionalParticipantDetails = CRM_Event_BAO_Participant::getFeeDetails($additionalIds,
-            $hasLineItems
-          );
-        }
-      }
-      else {
-
-        // check that discount_id is set
-        if (empty($params['discount_id'])) {
-          $params['discount_id'] = 'null';
-        }
-
-        //lets carry currency, CRM-4453
-        $params['fee_currency'] = $config->defaultCurrency;
-        if (!isset($lineItem[0])) {
-          $lineItem[0] = [];
-        }
-        CRM_Price_BAO_PriceSet::processAmount($this->_values['fee'],
-          $params, $lineItem[0]
-        );
-        //CRM-11529 for quick config backoffice transactions
-        //when financial_type_id is passed in form, update the
-        //lineitems with the financial type selected in form
-        $submittedFinancialType = CRM_Utils_Array::value('financial_type_id', $params);
-        $isPaymentRecorded = CRM_Utils_Array::value('record_contribution', $params);
-        if ($isPaymentRecorded && $this->_quickConfig && $submittedFinancialType) {
-          foreach ($lineItem[0] as &$values) {
-            $values['financial_type_id'] = $submittedFinancialType;
-          }
-        }
-
-        $params['fee_level'] = $params['amount_level'];
-        $contributionParams['total_amount'] = $params['amount'];
-        if ($this->_quickConfig && !empty($params['total_amount']) &&
-          $params['status_id'] != array_search('Partially paid', $participantStatus)
-        ) {
-          $params['fee_amount'] = $params['total_amount'];
-        }
-        else {
-          //fix for CRM-3086
-          $params['fee_amount'] = $params['amount'];
-        }
-      }
-
-      if (isset($params['priceSetId'])) {
-        if (!empty($lineItem[0])) {
-          $this->set('lineItem', $lineItem);
-
-          $this->_lineItem = $lineItem;
-          $lineItem = array_merge($lineItem, $additionalParticipantDetails);
-
-          $participantCount = [];
-          foreach ($lineItem as $k) {
-            foreach ($k as $v) {
-              if (CRM_Utils_Array::value('participant_count', $v) > 0) {
-                $participantCount[] = $v['participant_count'];
-              }
-            }
-          }
-        }
-        if (isset($participantCount)) {
-          $this->assign('pricesetFieldsCount', $participantCount);
-        }
-        $this->assign('lineItem', empty($lineItem[0]) || $this->_quickConfig ? FALSE : $lineItem);
-      }
-      else {
-        $this->assign('amount_level', $params['amount_level']);
-      }
+      list($contributionParams, $lineItem, $additionalParticipantDetails, $params) = $this->preparePaidEventProcessing($params);
     }
 
     $this->_params = $params;
@@ -1113,28 +1058,16 @@ class CRM_Event_Form_Participant extends CRM_Contribute_Form_AbstractEditPayment
     //participant method (addParticipant)
     $this->_params['participant_status_id'] = $params['status_id'];
     $this->_params['participant_role_id'] = is_array($params['role_id']) ? $params['role_id'] : explode(',', $params['role_id']);
-    $this->_params['participant_register_date'] = $params['register_date'];
     $roleIdWithSeparator = implode(CRM_Core_DAO::VALUE_SEPARATOR, $this->_params['participant_role_id']);
 
     $now = date('YmdHis');
 
     if ($this->_mode) {
-      if (!$this->_isPaidEvent) {
-        CRM_Core_Error::statusBounce(ts('Selected Event is not Paid Event '));
-      }
-
-      $eventTitle
-        = CRM_Core_DAO::getFieldValue(
-          'CRM_Event_DAO_Event',
-          $params['event_id'],
-          'title'
-        );
-
       // set source if not set
       if (empty($params['source'])) {
         $this->_params['participant_source'] = ts('Offline Registration for Event: %2 by: %1', [
           1 => $userName,
-          2 => $eventTitle,
+          2 => $this->getEventValue('title'),
         ]);
       }
       else {
@@ -1151,8 +1084,6 @@ class CRM_Event_Form_Participant extends CRM_Contribute_Form_AbstractEditPayment
       $fields['email-Primary'] = 1;
       $params['email-Primary'] = $params["email-{$this->_bltID}"] = $this->_contributorEmail;
 
-      $params['register_date'] = $now;
-
       // now set the values for the billing location.
       foreach ($this->_fields as $name => $dontCare) {
         $fields[$name] = 1;
@@ -1277,10 +1208,10 @@ class CRM_Event_Form_Participant extends CRM_Contribute_Form_AbstractEditPayment
       $this->_params['mode'] = $this->_mode;
 
       //add contribution record
-      $contributions[] = $contribution = CRM_Event_Form_Registration_Confirm::processContribution(
+      $contributions[] = $contribution = $this->processContribution(
         $this, $this->_params,
         $result, $contactID,
-        FALSE, FALSE,
+        FALSE,
         $this->_paymentProcessor
       );
 
@@ -1295,7 +1226,7 @@ class CRM_Event_Form_Participant extends CRM_Contribute_Form_AbstractEditPayment
       //CRM-15372 patch to fix fee amount replacing amount
       $this->_params['fee_amount'] = $this->_params['amount'];
 
-      $participants[] = CRM_Event_Form_Registration::addParticipant($this, $contactID);
+      $participants[] = $this->addParticipant($this, $this->_params, $contactID);
 
       //add custom data for participant
       CRM_Core_BAO_CustomValueTable::postProcess($this->_params,
@@ -1338,13 +1269,6 @@ class CRM_Event_Form_Participant extends CRM_Contribute_Form_AbstractEditPayment
         }
       }
 
-      if (isset($params['event_id'])) {
-        $eventTitle = CRM_Core_DAO::getFieldValue('CRM_Event_DAO_Event',
-          $params['event_id'],
-          'title'
-        );
-      }
-
       if ($this->_single) {
         $this->_contactIds[] = $this->_contactId;
       }
@@ -1353,10 +1277,10 @@ class CRM_Event_Form_Participant extends CRM_Contribute_Form_AbstractEditPayment
       if (!empty($params['record_contribution'])) {
         if (!empty($params['id'])) {
           if ($this->_onlinePendingContributionId) {
-            $ids['contribution'] = $this->_onlinePendingContributionId;
+            $contributionParams['id'] = $this->_onlinePendingContributionId;
           }
           else {
-            $ids['contribution'] = CRM_Core_DAO::getFieldValue('CRM_Event_DAO_ParticipantPayment',
+            $contributionParams['id'] = CRM_Core_DAO::getFieldValue('CRM_Event_DAO_ParticipantPayment',
               $params['id'],
               'contribution_id',
               'participant_id'
@@ -1369,7 +1293,7 @@ class CRM_Event_Form_Participant extends CRM_Contribute_Form_AbstractEditPayment
         if (!$this->_onlinePendingContributionId) {
           if (empty($params['source'])) {
             $contributionParams['source'] = ts('%1 : Offline registration (by %2)', [
-              1 => $eventTitle,
+              1 => $this->getEventValue('title'),
               2 => $userName,
             ]);
           }
@@ -1428,7 +1352,7 @@ class CRM_Event_Form_Participant extends CRM_Contribute_Form_AbstractEditPayment
           // if multiple participants are link, consider contribution total amount as the amount Owed
           if ($this->_id && CRM_Event_BAO_Participant::isPrimaryParticipant($this->_id)) {
             $amountOwed = CRM_Core_DAO::getFieldValue('CRM_Contribute_DAO_Contribution',
-              $ids['contribution'],
+              $contributionParams['id'],
               'total_amount'
             );
           }
@@ -1439,6 +1363,7 @@ class CRM_Event_Form_Participant extends CRM_Contribute_Form_AbstractEditPayment
             $contributionParams['partial_payment_total'] = $amountOwed;
             // the actual amount paid
             $contributionParams['partial_amount_to_pay'] = $params['total_amount'];
+            $this->assign('balanceAmount', $contributionParams['partial_payment_total'] - $contributionParams['partial_amount_to_pay']);
           }
         }
 
@@ -1447,21 +1372,17 @@ class CRM_Event_Form_Participant extends CRM_Contribute_Form_AbstractEditPayment
         }
 
         if ($this->_single) {
-          if (empty($ids)) {
-            $ids = [];
-          }
-          $contributions[] = CRM_Contribute_BAO_Contribution::create($contributionParams, $ids);
+          $contributions[] = CRM_Contribute_BAO_Contribution::create($contributionParams);
         }
         else {
-          $ids = [];
           foreach ($this->_contactIds as $contactID) {
             $contributionParams['contact_id'] = $contactID;
-            $contributions[] = CRM_Contribute_BAO_Contribution::create($contributionParams, $ids);
+            $contributions[] = CRM_Contribute_BAO_Contribution::create($contributionParams);
           }
         }
 
         // Insert payment record for this participant
-        if (empty($ids['contribution'])) {
+        if (empty($contributionParams['id'])) {
           foreach ($this->_contactIds as $num => $contactID) {
             $participantPaymentParams = [
               'participant_id' => $participants[$num]->id,
@@ -1504,10 +1425,14 @@ class CRM_Event_Form_Participant extends CRM_Contribute_Form_AbstractEditPayment
               $lineItem[$this->_priceSetId][$lineKey] = $line;
             }
             CRM_Price_BAO_LineItem::processPriceSet($participants[$num]->id, $lineItem, CRM_Utils_Array::value($num, $contributions, NULL), 'civicrm_participant');
-            CRM_Contribute_BAO_Contribution::addPayments($contributions);
           }
         }
       }
+      foreach ($contributions as $contribution) {
+        if ('Partially paid' === CRM_Core_PseudoConstant::getName('CRM_Contribute_BAO_Contribution', 'contribution_status_id', $contribution->contribution_status_id)) {
+          CRM_Contribute_BAO_Contribution::addPayments($contribution);
+        }
+      }
     }
 
     $updateStatusMsg = NULL;
@@ -1525,53 +1450,11 @@ class CRM_Event_Form_Participant extends CRM_Contribute_Form_AbstractEditPayment
     $sent = [];
     $notSent = [];
     if (!empty($params['send_receipt'])) {
-      if (array_key_exists($params['from_email_address'], $this->_fromEmails['from_email_id'])) {
-        $receiptFrom = $params['from_email_address'];
-      }
 
       $this->assign('module', 'Event Registration');
-      //use of the message template below requires variables in different format
-      $event = $events = [];
-      $returnProperties = ['event_type_id', 'fee_label', 'start_date', 'end_date', 'is_show_location', 'title'];
-
-      //get all event details.
-      CRM_Core_DAO::commonRetrieveAll('CRM_Event_DAO_Event', 'id', $params['event_id'], $events, $returnProperties);
-      $event = $events[$params['event_id']];
-      unset($event['start_date']);
-      unset($event['end_date']);
-
-      $role = CRM_Event_PseudoConstant::participantRole();
-      $participantRoles = CRM_Utils_Array::value('role_id', $params);
-      if (is_array($participantRoles)) {
-        $selectedRoles = [];
-        foreach ($participantRoles as $roleId) {
-          $selectedRoles[] = $role[$roleId];
-        }
-        $event['participant_role'] = implode(', ', $selectedRoles);
-      }
-      else {
-        $event['participant_role'] = CRM_Utils_Array::value($participantRoles, $role);
-      }
-      $event['is_monetary'] = $this->_isPaidEvent;
-
-      if ($params['receipt_text']) {
-        $event['confirm_email_text'] = $params['receipt_text'];
-      }
-
+      $this->assignEventDetailsToTpl($params['event_id'], CRM_Utils_Array::value('role_id', $params), CRM_Utils_Array::value('receipt_text', $params), $this->_isPaidEvent);
       $this->assign('isAmountzero', 1);
-      $this->assign('event', $event);
-
-      $this->assign('isShowLocation', $event['is_show_location']);
-      if (CRM_Utils_Array::value('is_show_location', $event) == 1) {
-        $locationParams = [
-          'entity_id' => $params['event_id'],
-          'entity_table' => 'civicrm_event',
-        ];
-        $location = CRM_Core_BAO_Location::getValues($locationParams, TRUE);
-        $this->assign('location', $location);
-      }
 
-      $status = CRM_Event_PseudoConstant::participantStatus();
       if ($this->_isPaidEvent) {
         $paymentInstrument = CRM_Contribute_PseudoConstant::paymentInstrument();
         if (!$this->_mode) {
@@ -1585,11 +1468,6 @@ class CRM_Event_Form_Participant extends CRM_Contribute_Form_AbstractEditPayment
         }
 
         $this->assign('totalAmount', $contributionParams['total_amount']);
-        if (isset($contributionParams['partial_payment_total'])) {
-          // balance amount
-          $balanceAmount = $contributionParams['partial_payment_total'] - $contributionParams['partial_amount_to_pay'];
-          $this->assign('balanceAmount', $balanceAmount);
-        }
         $this->assign('isPrimary', 1);
         $this->assign('checkNumber', CRM_Utils_Array::value('check_number', $params));
       }
@@ -1705,6 +1583,9 @@ class CRM_Event_Form_Participant extends CRM_Contribute_Form_AbstractEditPayment
         // try to send emails only if email id is present
         // and the do-not-email option is not checked for that contact
         if ($this->_contributorEmail and !$this->_toDoNotEmail) {
+          if (array_key_exists($params['from_email_address'], $this->_fromEmails['from_email_id'])) {
+            $receiptFrom = $params['from_email_address'];
+          }
           $sendTemplateParams['from'] = $receiptFrom;
           $sendTemplateParams['toName'] = $this->_contributorDisplayName;
           $sendTemplateParams['toEmail'] = $this->_contributorEmail;
@@ -1807,33 +1688,21 @@ class CRM_Event_Form_Participant extends CRM_Contribute_Form_AbstractEditPayment
   /**
    * Build the form object.
    *
-   * @param CRM_Core_Form $form
+   * @param \CRM_Event_Form_Participant $form
    *
    * @return bool
    * @throws \CRM_Core_Exception
    * @throws \Exception
    */
-  public static function buildEventFeeForm(&$form) {
+  public function buildEventFeeForm($form) {
     if ($form->_eventId) {
       $form->_isPaidEvent = CRM_Core_DAO::getFieldValue('CRM_Event_DAO_Event', $form->_eventId, 'is_monetary');
       if ($form->_isPaidEvent) {
         $form->addElement('hidden', 'hidden_feeblock', 1);
       }
 
-      // make sure this is for backoffice registration.
-      if ($form->getName() == 'Participant') {
-        $eventfullMsg = CRM_Event_BAO_Participant::eventFullMessage($form->_eventId, $form->_pId);
-        $form->addElement('hidden', 'hidden_eventFullMsg', $eventfullMsg, ['id' => 'hidden_eventFullMsg']);
-      }
-    }
-
-    if ($form->_pId) {
-      if (CRM_Core_DAO::getFieldValue('CRM_Event_DAO_ParticipantPayment',
-        $form->_pId, 'contribution_id', 'participant_id'
-      )
-      ) {
-        $form->_online = !$form->isBackOffice;
-      }
+      $eventfullMsg = CRM_Event_BAO_Participant::eventFullMessage($form->_eventId, $this->getParticipantID());
+      $form->addElement('hidden', 'hidden_eventFullMsg', $eventfullMsg, ['id' => 'hidden_eventFullMsg']);
     }
 
     if ($form->_isPaidEvent) {
@@ -1873,10 +1742,6 @@ class CRM_Event_Form_Participant extends CRM_Contribute_Form_AbstractEditPayment
           FALSE,
           ['class' => "crm-select2"]
         );
-
-        if ($form->_online) {
-          $element->freeze();
-        }
       }
       if (CRM_Financial_BAO_FinancialType::isACLFinancialTypeStatus()
         && !CRM_Utils_Array::value('fee', $form->_values)
@@ -1971,4 +1836,404 @@ class CRM_Event_Form_Participant extends CRM_Contribute_Form_AbstractEditPayment
     $form->assign('hasPayment', $form->_paymentId);
   }
 
+  /**
+   * Extracted code relating to paid events.
+   *
+   * @param $params
+   *
+   * @return array
+   *
+   * @throws \CiviCRM_API3_Exception
+   */
+  protected function preparePaidEventProcessing($params): array {
+    $participantStatus = CRM_Event_PseudoConstant::participantStatus();
+    $contributionParams = [
+      'skipCleanMoney' => TRUE,
+      'revenue_recognition_date' => $this->getRevenueRecognitionDate(),
+    ];
+    $lineItem = [];
+    $additionalParticipantDetails = [];
+
+    if ($this->isPaymentOnExistingContribution()) {
+      $contributionParams['total_amount'] = $this->getParticipantValue('fee_amount');
+
+      $params['discount_id'] = NULL;
+      //re-enter the values for UPDATE mode
+      $params['fee_level'] = $params['amount_level'] = $this->getParticipantValue('fee_level');
+      $params['fee_amount'] = $this->getParticipantValue('fee_amount');
+      if (isset($params['priceSetId'])) {
+        $lineItem[0] = CRM_Price_BAO_LineItem::getLineItems($this->_id);
+      }
+      //also add additional participant's fee level/priceset
+      if (CRM_Event_BAO_Participant::isPrimaryParticipant($this->_id)) {
+        $additionalIds = CRM_Event_BAO_Participant::getAdditionalParticipantIds($this->_id);
+        $hasLineItems = CRM_Utils_Array::value('priceSetId', $params, FALSE);
+        $additionalParticipantDetails = CRM_Event_BAO_Participant::getFeeDetails($additionalIds,
+          $hasLineItems
+        );
+      }
+    }
+    else {
+
+      // check that discount_id is set
+      if (empty($params['discount_id'])) {
+        $params['discount_id'] = 'null';
+      }
+
+      //lets carry currency, CRM-4453
+      $params['fee_currency'] = CRM_Core_Config::singleton()->defaultCurrency;
+      if (!isset($lineItem[0])) {
+        $lineItem[0] = [];
+      }
+      CRM_Price_BAO_PriceSet::processAmount($this->_values['fee'],
+        $params, $lineItem[0]
+      );
+      //CRM-11529 for quick config backoffice transactions
+      //when financial_type_id is passed in form, update the
+      //lineitems with the financial type selected in form
+      $submittedFinancialType = CRM_Utils_Array::value('financial_type_id', $params);
+      $isPaymentRecorded = CRM_Utils_Array::value('record_contribution', $params);
+      if ($isPaymentRecorded && $this->_quickConfig && $submittedFinancialType) {
+        foreach ($lineItem[0] as &$values) {
+          $values['financial_type_id'] = $submittedFinancialType;
+        }
+      }
+
+      $params['fee_level'] = $params['amount_level'];
+      $contributionParams['total_amount'] = $params['amount'];
+      if ($this->_quickConfig && !empty($params['total_amount']) &&
+        $params['status_id'] != array_search('Partially paid', $participantStatus)
+      ) {
+        $params['fee_amount'] = $params['total_amount'];
+      }
+      else {
+        //fix for CRM-3086
+        $params['fee_amount'] = $params['amount'];
+      }
+    }
+
+    if (isset($params['priceSetId'])) {
+      if (!empty($lineItem[0])) {
+        $this->set('lineItem', $lineItem);
+
+        $this->_lineItem = $lineItem;
+        $lineItem = array_merge($lineItem, $additionalParticipantDetails);
+
+        $participantCount = [];
+        foreach ($lineItem as $k) {
+          foreach ($k as $v) {
+            if (CRM_Utils_Array::value('participant_count', $v) > 0) {
+              $participantCount[] = $v['participant_count'];
+            }
+          }
+        }
+      }
+      if (isset($participantCount)) {
+        $this->assign('pricesetFieldsCount', $participantCount);
+      }
+      $this->assign('lineItem', empty($lineItem[0]) || $this->_quickConfig ? FALSE : $lineItem);
+    }
+    else {
+      $this->assign('amount_level', $params['amount_level']);
+    }
+    return [$contributionParams, $lineItem, $additionalParticipantDetails, $params];
+  }
+
+  /**
+   * @param $eventID
+   * @param $participantRoles
+   * @param $receiptText
+   * @param $isPaidEvent
+   *
+   * @return void
+   */
+  protected function assignEventDetailsToTpl($eventID, $participantRoles, $receiptText, $isPaidEvent) {
+    //use of the message template below requires variables in different format
+    $events = [];
+    $returnProperties = ['event_type_id', 'fee_label', 'start_date', 'end_date', 'is_show_location', 'title'];
+
+    //get all event details.
+    CRM_Core_DAO::commonRetrieveAll('CRM_Event_DAO_Event', 'id', $eventID, $events, $returnProperties);
+    $event = $events[$eventID];
+    unset($event['start_date']);
+    unset($event['end_date']);
+
+    $role = CRM_Event_PseudoConstant::participantRole();
+
+    if (is_array($participantRoles)) {
+      $selectedRoles = [];
+      foreach ($participantRoles as $roleId) {
+        $selectedRoles[] = $role[$roleId];
+      }
+      $event['participant_role'] = implode(', ', $selectedRoles);
+    }
+    else {
+      $event['participant_role'] = CRM_Utils_Array::value($participantRoles, $role);
+    }
+    $event['is_monetary'] = $isPaidEvent;
+
+    if ($receiptText) {
+      $event['confirm_email_text'] = $receiptText;
+    }
+    $this->assign('event', $event);
+    $this->assign('isShowLocation', $event['is_show_location']);
+    if (CRM_Utils_Array::value('is_show_location', $event) == 1) {
+      $locationParams = [
+        'entity_id' => $eventID,
+        'entity_table' => 'civicrm_event',
+      ];
+      $location = CRM_Core_BAO_Location::getValues($locationParams, TRUE);
+      $this->assign('location', $location);
+    }
+  }
+
+  /**
+   * Process the contribution.
+   *
+   * @param CRM_Core_Form $form
+   * @param array $params
+   * @param array $result
+   * @param int $contactID
+   * @param bool $pending
+   * @param array $paymentProcessor
+   *
+   * @return \CRM_Contribute_BAO_Contribution
+   *
+   * @throws \CRM_Core_Exception
+   * @throws \CiviCRM_API3_Exception
+   */
+  public function processContribution(
+    &$form, $params, $result, $contactID,
+    $pending = FALSE,
+    $paymentProcessor = NULL
+  ) {
+    $transaction = new CRM_Core_Transaction();
+
+    $now = date('YmdHis');
+    $receiptDate = NULL;
+
+    if (!empty($form->_values['event']['is_email_confirm'])) {
+      $receiptDate = $now;
+    }
+
+    // CRM-20264: fetch CC type ID and number (last 4 digit) and assign it back to $params
+    CRM_Contribute_Form_AbstractEditPayment::formatCreditCardDetails($params);
+
+    $contribParams = [
+      'contact_id' => $contactID,
+      'financial_type_id' => !empty($form->_values['event']['financial_type_id']) ? $form->_values['event']['financial_type_id'] : $params['financial_type_id'],
+      'receive_date' => $now,
+      'total_amount' => $params['amount'],
+      'tax_amount' => $params['tax_amount'],
+      'amount_level' => $params['amount_level'],
+      'invoice_id' => $params['invoiceID'],
+      'currency' => $params['currencyID'],
+      'source' => !empty($params['participant_source']) ? $params['participant_source'] : $params['description'],
+      'is_pay_later' => CRM_Utils_Array::value('is_pay_later', $params, 0),
+      'campaign_id' => CRM_Utils_Array::value('campaign_id', $params),
+      'card_type_id' => CRM_Utils_Array::value('card_type_id', $params),
+      'pan_truncation' => CRM_Utils_Array::value('pan_truncation', $params),
+    ];
+
+    if ($paymentProcessor) {
+      $contribParams['payment_instrument_id'] = $paymentProcessor['payment_instrument_id'];
+      $contribParams['payment_processor'] = $paymentProcessor['id'];
+    }
+
+    if (!$pending && $result) {
+      $contribParams += [
+        'fee_amount' => CRM_Utils_Array::value('fee_amount', $result),
+        'trxn_id' => $result['trxn_id'],
+        'receipt_date' => $receiptDate,
+      ];
+    }
+
+    $allStatuses = CRM_Contribute_PseudoConstant::contributionStatus(NULL, 'name');
+    $contribParams['contribution_status_id'] = array_search('Completed', $allStatuses);
+    if ($pending) {
+      $contribParams['contribution_status_id'] = array_search('Pending', $allStatuses);
+    }
+
+    $contribParams['is_test'] = 0;
+    if ($form->_action & CRM_Core_Action::PREVIEW || CRM_Utils_Array::value('mode', $params) == 'test') {
+      $contribParams['is_test'] = 1;
+    }
+
+    if (!empty($contribParams['invoice_id'])) {
+      $contribParams['id'] = CRM_Core_DAO::getFieldValue('CRM_Contribute_DAO_Contribution',
+        $contribParams['invoice_id'],
+        'id',
+        'invoice_id'
+      );
+    }
+    $contribParams['revenue_recognition_date'] = $this->getRevenueRecognitionDate();
+
+    //create an contribution address
+    // The concept of contributeMode is deprecated. Elsewhere we use the function processBillingAddress() - although
+    // currently that is only inherited by back-office forms.
+    if ($form->_contributeMode != 'notify' && empty($params['is_pay_later'])) {
+      $contribParams['address_id'] = CRM_Contribute_BAO_Contribution::createAddress($params, $form->_bltID);
+    }
+
+    $contribParams['skipLineItem'] = 1;
+    $contribParams['skipCleanMoney'] = 1;
+    // create contribution record
+    $contribution = CRM_Contribute_BAO_Contribution::add($contribParams);
+    // CRM-11124
+    CRM_Event_BAO_Participant::createDiscountTrxn($form->_eventId, $contribParams, NULL, CRM_Price_BAO_PriceSet::parseFirstPriceSetValueIDFromParams($params));
+
+    // process soft credit / pcp pages
+    if (!empty($params['pcp_made_through_id'])) {
+      CRM_Contribute_BAO_ContributionSoft::formatSoftCreditParams($params, $form);
+      CRM_Contribute_BAO_ContributionSoft::processSoftContribution($params, $contribution);
+    }
+
+    $transaction->commit();
+
+    return $contribution;
+  }
+
+  /**
+   * Process the participant.
+   *
+   * @param CRM_Core_Form $form
+   * @param array $params
+   * @param int $contactID
+   *
+   * @return \CRM_Event_BAO_Participant
+   * @throws \CRM_Core_Exception
+   * @throws \CiviCRM_API3_Exception
+   */
+  protected function addParticipant(&$form, $params, $contactID) {
+    $transaction = new CRM_Core_Transaction();
+
+    $participantFields = CRM_Event_DAO_Participant::fields();
+    $participantParams = [
+      'id' => CRM_Utils_Array::value('participant_id', $params),
+      'contact_id' => $contactID,
+      'event_id' => $form->_eventId ? $form->_eventId : $params['event_id'],
+      'status_id' => CRM_Utils_Array::value('participant_status',
+        $params, 1
+      ),
+      'role_id' => CRM_Utils_Array::value('participant_role_id', $params) ?: CRM_Event_BAO_Participant::getDefaultRoleID(),
+      'register_date' => $params['register_date'],
+      'source' => CRM_Utils_String::ellipsify(
+        isset($params['participant_source']) ? CRM_Utils_Array::value('participant_source', $params) : CRM_Utils_Array::value('description', $params),
+        $participantFields['participant_source']['maxlength']
+      ),
+      'fee_level' => CRM_Utils_Array::value('amount_level', $params),
+      'is_pay_later' => CRM_Utils_Array::value('is_pay_later', $params, 0),
+      'fee_amount' => CRM_Utils_Array::value('fee_amount', $params),
+      'registered_by_id' => CRM_Utils_Array::value('registered_by_id', $params),
+      'discount_id' => CRM_Utils_Array::value('discount_id', $params),
+      'fee_currency' => CRM_Utils_Array::value('currencyID', $params),
+      'campaign_id' => CRM_Utils_Array::value('campaign_id', $params),
+    ];
+
+    if ($form->_action & CRM_Core_Action::PREVIEW || CRM_Utils_Array::value('mode', $params) == 'test') {
+      $participantParams['is_test'] = 1;
+    }
+    else {
+      $participantParams['is_test'] = 0;
+    }
+
+    if (!empty($form->_params['note'])) {
+      $participantParams['note'] = $form->_params['note'];
+    }
+    elseif (!empty($form->_params['participant_note'])) {
+      $participantParams['note'] = $form->_params['participant_note'];
+    }
+
+    // reuse id if one already exists for this one (can happen
+    // with back button being hit etc)
+    if (!$participantParams['id'] && !empty($params['contributionID'])) {
+      $pID = CRM_Core_DAO::getFieldValue('CRM_Event_DAO_ParticipantPayment',
+        $params['contributionID'],
+        'participant_id',
+        'contribution_id'
+      );
+      $participantParams['id'] = $pID;
+    }
+    $participantParams['discount_id'] = CRM_Core_BAO_Discount::findSet($form->_eventId, 'civicrm_event');
+
+    if (!$participantParams['discount_id']) {
+      $participantParams['discount_id'] = "null";
+    }
+
+    $participant = CRM_Event_BAO_Participant::create($participantParams);
+
+    $transaction->commit();
+
+    return $participant;
+  }
+
+  /**
+   * Is a payment being made on an existing contribution.
+   *
+   * Note
+   * 1) ideally we should not permit this on this form! Perhaps we don't & this is just cruft.
+   * 2) _paymentID is the contribution id.
+   *
+   * @return bool
+   */
+  protected function isPaymentOnExistingContribution(): bool {
+    return ($this->getParticipantID() && $this->_action & CRM_Core_Action::UPDATE) && $this->_paymentId;
+  }
+
+  /**
+   * Get the value for a field relating to the event.
+   *
+   * @param string $fieldName
+   *
+   * @return mixed
+   * @throws \CiviCRM_API3_Exception
+   */
+  protected function getEventValue(string $fieldName) {
+    if (!isset($this->_event)) {
+      $this->_event = civicrm_api3('Event', 'getsingle', ['id' => $this->_eventId]);
+    }
+    return $this->_event[$fieldName];
+  }
+
+  /**
+   * Get a value from the existing participant record (applies to edits).
+   *
+   * @param string $fieldName
+   *
+   * @return array
+   * @throws \CiviCRM_API3_Exception
+   */
+  protected function getParticipantValue($fieldName) {
+    if (!$this->participantRecord) {
+      $this->participantRecord = civicrm_api3('Participant', 'getsingle', ['id' => $this->_id]);
+    }
+    return $this->participantRecord[$fieldName] ?? $this->participantRecord['participant_' . $fieldName];
+  }
+
+  /**
+   * Get id of participant being edited.
+   *
+   * @return int|null
+   */
+  protected function getParticipantID() {
+    return $this->_id ?? $this->_pId;
+  }
+
+  /**
+   * Get the value for the revenue recognition date field.
+   *
+   * @return string
+   *
+   * @throws \CiviCRM_API3_Exception
+   */
+  protected function getRevenueRecognitionDate() {
+    if (Civi::settings()->get('deferred_revenue_enabled')) {
+      $eventStartDate = $this->getEventValue('start_date');
+      if (strtotime($eventStartDate) > strtotime(date('Ymt'))) {
+        return date('Ymd', strtotime($eventStartDate));
+      }
+    }
+    return '';
+  }
+
 }
diff --git a/civicrm/CRM/Event/Form/Registration.php b/civicrm/CRM/Event/Form/Registration.php
index 69a3d54a61..f6a19f5d86 100644
--- a/civicrm/CRM/Event/Form/Registration.php
+++ b/civicrm/CRM/Event/Form/Registration.php
@@ -692,7 +692,7 @@ class CRM_Event_Form_Registration extends CRM_Core_Form {
     }
 
     // add participant record
-    $participant = CRM_Event_Form_Registration::addParticipant($this, $contactID);
+    $participant = $this->addParticipant($this, $contactID);
     $this->_participantIDS[] = $participant->id;
 
     //setting register_by_id field and primaryContactId
@@ -778,10 +778,11 @@ class CRM_Event_Form_Registration extends CRM_Core_Form {
    * @return \CRM_Event_BAO_Participant
    * @throws \CiviCRM_API3_Exception
    */
-  public static function addParticipant(&$form, $contactID) {
+  protected function addParticipant(&$form, $contactID) {
     if (empty($form->_params)) {
       return NULL;
     }
+    // Note this used to be shared with the backoffice form & no longer is, some code may no longer be required.
     $params = $form->_params;
     $transaction = new CRM_Core_Transaction();
 
@@ -805,7 +806,7 @@ class CRM_Event_Form_Registration extends CRM_Core_Form {
       'status_id' => CRM_Utils_Array::value('participant_status',
         $params, 1
       ),
-      'role_id' => CRM_Utils_Array::value('participant_role_id', $params) ?: self::getDefaultRoleID(),
+      'role_id' => CRM_Utils_Array::value('participant_role_id', $params) ?: CRM_Event_BAO_Participant::getDefaultRoleID(),
       'register_date' => ($registerDate) ? $registerDate : date('YmdHis'),
       'source' => CRM_Utils_String::ellipsify(
         isset($params['participant_source']) ? CRM_Utils_Array::value('participant_source', $params) : CRM_Utils_Array::value('description', $params),
@@ -857,21 +858,6 @@ class CRM_Event_Form_Registration extends CRM_Core_Form {
     return $participant;
   }
 
-  /**
-   * Get the ID of the default (first) participant role
-   *
-   * @return int
-   * @throws \CiviCRM_API3_Exception
-   */
-  private static function getDefaultRoleID() {
-    return (int) civicrm_api3('OptionValue', 'getvalue', [
-      'return' => "value",
-      'option_group_id' => "participant_role",
-      'is_active' => 1,
-      'options' => ['limit' => 1, 'sort' => "is_default DESC"],
-    ]);
-  }
-
   /**
    * Calculate the total participant count as per params.
    *
diff --git a/civicrm/CRM/Event/Form/Registration/Confirm.php b/civicrm/CRM/Event/Form/Registration/Confirm.php
index 230001b9b6..735679d579 100644
--- a/civicrm/CRM/Event/Form/Registration/Confirm.php
+++ b/civicrm/CRM/Event/Form/Registration/Confirm.php
@@ -553,7 +553,7 @@ class CRM_Event_Form_Registration_Confirm extends CRM_Event_Form_Registration {
             list($result, $value) = $this->processPayment($payment, $value);
           }
           else {
-            CRM_Core_Error::fatal($paymentObjError);
+            throw new CRM_Core_Exception($paymentObjError);
           }
         }
 
@@ -576,13 +576,12 @@ class CRM_Event_Form_Registration_Confirm extends CRM_Event_Form_Registration {
           // if paid event add a contribution record
           //if primary participant contributing additional amount
           //append (multiple participants) to its fee level. CRM-4196.
-          $isAdditionalAmount = FALSE;
           if (count($params) > 1) {
-            $isAdditionalAmount = TRUE;
+            $value['amount_level'] .= ts(' (multiple participants)') . CRM_Core_DAO::VALUE_SEPARATOR;
           }
 
           //passing contribution id is already registered.
-          $contribution = self::processContribution($this, $value, $result, $contactID, $pending, $isAdditionalAmount, $this->_paymentProcessor);
+          $contribution = $this->processContribution($this, $value, $result, $contactID, $pending, $this->_paymentProcessor);
           $value['contributionID'] = $contribution->id;
           $value['contributionTypeID'] = $contribution->financial_type_id;
           $value['receive_date'] = $contribution->receive_date;
@@ -794,7 +793,7 @@ class CRM_Event_Form_Registration_Confirm extends CRM_Event_Form_Registration {
           $this->processPayment($payment, $primaryParticipant);
         }
         else {
-          CRM_Core_Error::fatal($paymentObjError);
+          throw new CRM_Core_Exception($paymentObjError);
         }
       }
     }
@@ -904,7 +903,6 @@ class CRM_Event_Form_Registration_Confirm extends CRM_Event_Form_Registration {
    * @param array $result
    * @param int $contactID
    * @param bool $pending
-   * @param bool $isAdditionalAmount
    * @param array $paymentProcessor
    *
    * @return \CRM_Contribute_BAO_Contribution
@@ -912,11 +910,12 @@ class CRM_Event_Form_Registration_Confirm extends CRM_Event_Form_Registration {
    * @throws \CRM_Core_Exception
    * @throws \CiviCRM_API3_Exception
    */
-  public static function processContribution(
+  protected function processContribution(
     &$form, $params, $result, $contactID,
-    $pending = FALSE, $isAdditionalAmount = FALSE,
+    $pending = FALSE,
     $paymentProcessor = NULL
   ) {
+    // Note this used to be shared with the backoffice form & no longer is, some code may no longer be required.
     $transaction = new CRM_Core_Transaction();
 
     $now = date('YmdHis');
@@ -925,10 +924,6 @@ class CRM_Event_Form_Registration_Confirm extends CRM_Event_Form_Registration {
     if (!empty($form->_values['event']['is_email_confirm'])) {
       $receiptDate = $now;
     }
-    //CRM-4196
-    if ($isAdditionalAmount) {
-      $params['amount_level'] = $params['amount_level'] . ts(' (multiple participants)') . CRM_Core_DAO::VALUE_SEPARATOR;
-    }
 
     // CRM-20264: fetch CC type ID and number (last 4 digit) and assign it back to $params
     CRM_Contribute_Form_AbstractEditPayment::formatCreditCardDetails($params);
diff --git a/civicrm/CRM/Event/Form/Registration/ParticipantConfirm.php b/civicrm/CRM/Event/Form/Registration/ParticipantConfirm.php
index 89fa02985b..6c23fce620 100644
--- a/civicrm/CRM/Event/Form/Registration/ParticipantConfirm.php
+++ b/civicrm/CRM/Event/Form/Registration/ParticipantConfirm.php
@@ -98,7 +98,7 @@ class CRM_Event_Form_Registration_ParticipantConfirm extends CRM_Event_Form_Regi
 
       //need to confirm that though participant confirming
       //registration - but is there enough space to confirm.
-      $emptySeats = CRM_Event_BAO_Participant::pendingToConfirmSpaces($this->_eventId);
+      $emptySeats = CRM_Event_BAO_Participant::eventFull($this->_eventId, TRUE, FALSE, TRUE, FALSE, TRUE);
       $additonalIds = CRM_Event_BAO_Participant::getAdditionalParticipantIds($this->_participantId);
       $requireSpace = 1 + count($additonalIds);
       if ($emptySeats !== NULL && ($requireSpace > $emptySeats)) {
diff --git a/civicrm/CRM/Event/Form/Registration/Register.php b/civicrm/CRM/Event/Form/Registration/Register.php
index 4065bed5db..be483125d7 100644
--- a/civicrm/CRM/Event/Form/Registration/Register.php
+++ b/civicrm/CRM/Event/Form/Registration/Register.php
@@ -1186,7 +1186,8 @@ class CRM_Event_Form_Registration_Register extends CRM_Event_Form_Registration {
       }
       $participant->is_test = 0;
       $participant->find();
-      $statusTypes = CRM_Event_PseudoConstant::participantStatus(NULL, 'is_counted = 1');
+      // Event#30 - Anyone whose status type has `is_counted` OR is on the waitlist should be considered as registered.
+      $statusTypes = CRM_Event_PseudoConstant::participantStatus(NULL, 'is_counted = 1') + CRM_Event_PseudoConstant::participantStatus(NULL, "name = 'On waitlist'");
       while ($participant->fetch()) {
         if (array_key_exists($participant->status_id, $statusTypes)) {
           if (!$isAdditional && !$form->_values['event']['allow_same_participant_emails']) {
@@ -1196,8 +1197,9 @@ class CRM_Event_Form_Registration_Register extends CRM_Event_Form_Registration {
             if ($form->_pcpId) {
               $registerUrl .= '&pcpId=' . $form->_pcpId;
             }
-
-            $status = ts("It looks like you are already registered for this event. If you want to change your registration, or you feel that you've received this message in error, please contact the site administrator.") . ' ' . ts('You can also <a href="%1">register another participant</a>.', [1 => $registerUrl]);
+            $registrationType = (CRM_Event_PseudoConstant::getKey('CRM_Event_BAO_Participant', 'participant_status_id', 'On waitlist') == $participant->status_id) ? 'waitlisted' : 'registered';
+            $status = ts("It looks like you are already %1 for this event. If you want to change your registration, or you feel that you've received this message in error, please contact the site administrator.", [1 => $registrationType]);
+            $status .= ' ' . ts('You can also <a href="%1">register another participant</a>.', [1 => $registerUrl]);
             CRM_Core_Session::singleton()->setStatus($status, ts('Oops.'), 'alert');
             $url = CRM_Utils_System::url('civicrm/event/info',
               "reset=1&id={$form->_values['event']['id']}&noFullMsg=true"
diff --git a/civicrm/CRM/Event/Form/Search.php b/civicrm/CRM/Event/Form/Search.php
index 6c2c7534b4..d1d0c9cdf8 100644
--- a/civicrm/CRM/Event/Form/Search.php
+++ b/civicrm/CRM/Event/Form/Search.php
@@ -84,7 +84,6 @@ class CRM_Event_Form_Search extends CRM_Core_Form_Search {
     /**
      * set the button names
      */
-    $this->_searchButtonName = $this->getButtonName('refresh');
     $this->_actionButtonName = $this->getButtonName('next', 'action');
 
     $this->_done = FALSE;
@@ -100,7 +99,7 @@ class CRM_Event_Form_Search extends CRM_Core_Form_Search {
       $this->_context
     );
     $prefix = NULL;
-    if ($this->_context == 'user') {
+    if ($this->_context === 'user') {
       $prefix = $this->_prefix;
     }
 
@@ -127,6 +126,7 @@ class CRM_Event_Form_Search extends CRM_Core_Form_Search {
    * @return void
    *
    * @throws \CRM_Core_Exception
+   * @throws \CiviCRM_API3_Exception
    */
   public function buildQuickForm() {
     parent::buildQuickForm();
@@ -302,8 +302,6 @@ class CRM_Event_Form_Search extends CRM_Core_Form_Search {
       return;
     }
 
-    $this->_queryParams = CRM_Contact_BAO_Query::convertFormValues($this->_formValues, 0, FALSE, NULL, ['event_id']);
-
     $selector = new CRM_Event_Selector_Search($this->_queryParams,
       $this->_action,
       NULL,
@@ -439,6 +437,7 @@ class CRM_Event_Form_Search extends CRM_Core_Form_Search {
    *
    * @return array
    *   the default array reference
+   * @throws \CRM_Core_Exception
    */
   public function setDefaultValues() {
     $this->_defaults = array_merge(parent::setDefaultValues(), (array) $this->_formValues);
diff --git a/civicrm/CRM/Event/Page/EventInfo.php b/civicrm/CRM/Event/Page/EventInfo.php
index c2410b7670..664105fabe 100644
--- a/civicrm/CRM/Event/Page/EventInfo.php
+++ b/civicrm/CRM/Event/Page/EventInfo.php
@@ -338,7 +338,7 @@ class CRM_Event_Page_EventInfo extends CRM_Core_Page {
     }
     $this->assign('location', $values['location']);
 
-    if (CRM_Core_Permission::check('access CiviEvent')) {
+    if (CRM_Core_Permission::check(['access CiviEvent', 'edit all events'])) {
       $enableCart = Civi::settings()->get('enable_cart');
       $this->assign('manageEventLinks', CRM_Event_Page_ManageEvent::tabs($enableCart));
     }
diff --git a/civicrm/CRM/Export/BAO/Export.php b/civicrm/CRM/Export/BAO/Export.php
index 0c4e50c844..5ddf6cb679 100644
--- a/civicrm/CRM/Export/BAO/Export.php
+++ b/civicrm/CRM/Export/BAO/Export.php
@@ -330,7 +330,7 @@ FROM   $tableName
       $sqlClause[] = '(' . implode(',', $valueString) . ')';
     }
     $sqlColumns = array_merge(['id' => 1], $processor->getSQLColumns());
-    $sqlColumnString = '(' . implode(',', array_keys($sqlColumns)) . ')';
+    $sqlColumnString = '(`' . implode('`, `', array_keys($sqlColumns)) . '`)';
 
     $sqlValueString = implode(",\n", $sqlClause);
 
diff --git a/civicrm/CRM/Export/BAO/ExportProcessor.php b/civicrm/CRM/Export/BAO/ExportProcessor.php
index bffb062de0..8453d02475 100644
--- a/civicrm/CRM/Export/BAO/ExportProcessor.php
+++ b/civicrm/CRM/Export/BAO/ExportProcessor.php
@@ -399,7 +399,7 @@ class CRM_Export_BAO_ExportProcessor {
     $this->setQueryOperator($queryOperator);
     $this->setRequestedFields($requestedFields);
     $this->setRelationshipTypes();
-    $this->setIsMergeSameHousehold($isMergeSameHousehold);
+    $this->setIsMergeSameHousehold($isMergeSameHousehold || $isMergeSameAddress);
     $this->setIsPostalableOnly($isPostalableOnly);
     $this->setIsMergeSameAddress($isMergeSameAddress);
     $this->setReturnProperties($this->determineReturnProperties());
@@ -754,7 +754,8 @@ class CRM_Export_BAO_ExportProcessor {
       // This will require a generalised handling cleanup
       return ts('Campaign ID');
     }
-    if ($this->isMergeSameHousehold() && $field === 'id') {
+    if ($this->isMergeSameHousehold() && !$this->isMergeSameAddress() && $field === 'id') {
+      // This is weird - even if we are merging households not every contact in the export is a household so this would not be accurate.
       return ts('Household ID');
     }
     elseif (isset($this->getQueryFields()[$field]['title'])) {
@@ -1431,7 +1432,7 @@ class CRM_Export_BAO_ExportProcessor {
     // in the DB it is an ID, but in the export, we retrive the display_name of the master record
     // also for current_employer, CRM-16939
     if ($columnName == 'master_id' || $columnName == 'current_employer') {
-      return "$fieldName varchar(128)";
+      return "`$fieldName` varchar(128)";
     }
 
     $queryFields = $this->getQueryFields();
@@ -1446,23 +1447,23 @@ class CRM_Export_BAO_ExportProcessor {
         case CRM_Utils_Type::T_INT:
         case CRM_Utils_Type::T_BOOLEAN:
           if (in_array(CRM_Utils_Array::value('data_type', $fieldSpec), ['Country', 'StateProvince', 'ContactReference'])) {
-            return "$fieldName varchar(255)";
+            return "`$fieldName` varchar(255)";
           }
-          return "$fieldName varchar(16)";
+          return "`$fieldName` varchar(16)";
 
         case CRM_Utils_Type::T_STRING:
           if (isset($queryFields[$columnName]['maxlength'])) {
-            return "$fieldName varchar({$queryFields[$columnName]['maxlength']})";
+            return "`$fieldName` varchar({$queryFields[$columnName]['maxlength']})";
           }
           else {
-            return "$fieldName varchar(255)";
+            return "`$fieldName` varchar(255)";
           }
 
         case CRM_Utils_Type::T_TEXT:
         case CRM_Utils_Type::T_LONGTEXT:
         case CRM_Utils_Type::T_BLOB:
         case CRM_Utils_Type::T_MEDIUMBLOB:
-          return "$fieldName longtext";
+          return "`$fieldName` longtext";
 
         case CRM_Utils_Type::T_FLOAT:
         case CRM_Utils_Type::T_ENUM:
@@ -1474,15 +1475,15 @@ class CRM_Export_BAO_ExportProcessor {
         case CRM_Utils_Type::T_URL:
         case CRM_Utils_Type::T_CCNUM:
         default:
-          return "$fieldName varchar(32)";
+          return "`$fieldName` varchar(32)";
       }
     }
     else {
       if (substr($fieldName, -3, 3) == '_id') {
-        return "$fieldName varchar(255)";
+        return "`$fieldName` varchar(255)";
       }
       elseif (substr($fieldName, -5, 5) == '_note') {
-        return "$fieldName text";
+        return "`$fieldName` text";
       }
       else {
         $changeFields = [
@@ -1492,7 +1493,7 @@ class CRM_Export_BAO_ExportProcessor {
         ];
 
         if (in_array($fieldName, $changeFields)) {
-          return "$fieldName text";
+          return "`$fieldName` text";
         }
         else {
           // set the sql columns for custom data
@@ -1502,20 +1503,20 @@ class CRM_Export_BAO_ExportProcessor {
               case 'String':
                 // May be option labels, which could be up to 512 characters
                 $length = max(512, CRM_Utils_Array::value('text_length', $queryFields[$columnName]));
-                return "$fieldName varchar($length)";
+                return "`$fieldName` varchar($length)";
 
               case 'Link':
-                return "$fieldName varchar(255)";
+                return "`$fieldName` varchar(255)";
 
               case 'Memo':
-                return "$fieldName text";
+                return "`$fieldName` text";
 
               default:
-                return "$fieldName varchar(255)";
+                return "`$fieldName` varchar(255)";
             }
           }
           else {
-            return "$fieldName text";
+            return "`$fieldName` text";
           }
         }
       }
@@ -1927,9 +1928,8 @@ class CRM_Export_BAO_ExportProcessor {
    * Build array for merging same addresses.
    *
    * @param string $sql
-   * @param bool $sharedAddress
    */
-  public function buildMasterCopyArray($sql, $sharedAddress = FALSE) {
+  public function buildMasterCopyArray($sql) {
 
     $parents = [];
     $dao = CRM_Core_DAO::executeQuery($sql);
@@ -1961,7 +1961,7 @@ class CRM_Export_BAO_ExportProcessor {
       }
       $parents[$copyID] = $masterID;
 
-      if (!$sharedAddress && !array_key_exists($copyID, $this->contactsToMerge[$masterID]['copy'])) {
+      if (!array_key_exists($copyID, $this->contactsToMerge[$masterID]['copy'])) {
         $copyPostalGreeting = $this->getContactPortionOfGreeting((int) $dao->copy_contact_id, (int) $dao->copy_postal_greeting_id, 'postal_greeting', $dao->copy_postal_greeting);
         if ($copyPostalGreeting) {
           $this->contactsToMerge[$masterID]['postalGreeting'] = "{$this->contactsToMerge[$masterID]['postalGreeting']}, {$copyPostalGreeting}";
@@ -1987,26 +1987,6 @@ class CRM_Export_BAO_ExportProcessor {
   public function mergeSameAddress() {
 
     $tableName = $this->getTemporaryTable();
-    // check if any records are present based on if they have used shared address feature,
-    // and not based on if city / state .. matches.
-    $sql = "
-SELECT    r1.id                 as copy_id,
-          r1.civicrm_primary_id as copy_contact_id,
-          r1.addressee          as copy_addressee,
-          r1.addressee_id       as copy_addressee_id,
-          r1.postal_greeting    as copy_postal_greeting,
-          r1.postal_greeting_id as copy_postal_greeting_id,
-          r2.id                 as master_id,
-          r2.civicrm_primary_id as master_contact_id,
-          r2.postal_greeting    as master_postal_greeting,
-          r2.postal_greeting_id as master_postal_greeting_id,
-          r2.addressee          as master_addressee,
-          r2.addressee_id       as master_addressee_id
-FROM      $tableName r1
-INNER JOIN civicrm_address adr ON r1.master_id   = adr.id
-INNER JOIN $tableName      r2  ON adr.contact_id = r2.civicrm_primary_id
-ORDER BY  r1.id";
-    $this->buildMasterCopyArray($sql, TRUE);
 
     // find all the records that have the same street address BUT not in a household
     // require match on city and state as well
@@ -2025,11 +2005,9 @@ SELECT    r1.id                 as master_id,
           r2.addressee_id       as copy_addressee_id
 FROM      $tableName r1
 LEFT JOIN $tableName r2 ON ( r1.street_address = r2.street_address AND
-               r1.city = r2.city AND
-               r1.state_province_id = r2.state_province_id )
-WHERE     ( r1.household_name IS NULL OR r1.household_name = '' )
-AND       ( r2.household_name IS NULL OR r2.household_name = '' )
-AND       ( r1.street_address != '' )
+          r1.city = r2.city AND
+          r1.state_province_id = r2.state_province_id )
+WHERE ( r1.street_address != '' )
 AND       r2.id > r1.id
 ORDER BY  r1.id
 ";
diff --git a/civicrm/CRM/Export/Form/Map.php b/civicrm/CRM/Export/Form/Map.php
index 7f4bfa06bd..25dd3816ea 100644
--- a/civicrm/CRM/Export/Form/Map.php
+++ b/civicrm/CRM/Export/Form/Map.php
@@ -22,20 +22,6 @@
  */
 class CRM_Export_Form_Map extends CRM_Core_Form {
 
-  /**
-   * Mapper fields
-   *
-   * @var array
-   */
-  protected $_mapperFields;
-
-  /**
-   * Number of columns in import file
-   *
-   * @var int
-   */
-  protected $_exportColumnCount;
-
   /**
    * Loaded mapping ID
    *
@@ -45,37 +31,45 @@ class CRM_Export_Form_Map extends CRM_Core_Form {
 
   /**
    * Build the form object.
-   *
-   * @return void
    */
   public function preProcess() {
-    $this->_exportColumnCount = $this->get('exportColumnCount');
     $this->_mappingId = $this->get('mappingId');
 
-    if (!$this->_exportColumnCount) {
-      // Set default from saved mapping
-      if ($this->_mappingId) {
-        $mapping = new CRM_Core_DAO_MappingField();
-        $mapping->mapping_id = $this->_mappingId;
-        $this->_exportColumnCount = $mapping->count();
-      }
-      else {
-        $this->_exportColumnCount = 10;
-      }
-    }
-    else {
-      $this->_exportColumnCount += 10;
+    $contactTypes = array_column(CRM_Utils_Array::makeNonAssociative(CRM_Contact_BAO_ContactType::basicTypePairs(), 'id', 'text'), NULL, 'id');
+    foreach (CRM_Contact_BAO_ContactType::subTypeInfo() as $subType) {
+      $contactTypes[$subType['parent']]['children'][] = [
+        'id' => $subType['name'],
+        'text' => $subType['label'],
+        'description' => $subType['description'] ?? NULL,
+      ];
     }
+    $mappingTypeId = $this->get('mappingTypeId');
+    $mappings = civicrm_api3('Mapping', 'get', ['return' => ['name', 'description'], 'mapping_type_id' => $mappingTypeId, 'options' => ['limit' => 0]]);
+
+    Civi::resources()->addVars('exportUi', [
+      'fields' => CRM_Export_Utils::getExportFields($this->get('exportMode')),
+      'contact_types' => array_values($contactTypes),
+      'location_type_id' => CRM_Utils_Array::makeNonAssociative(CRM_Core_BAO_Address::buildOptions('location_type_id'), 'id', 'text'),
+      'preview_data' => $this->getPreviewData(),
+      'mapping_id' => $this->_mappingId,
+      'mapping_description' => $mappings['values'][$this->_mappingId]['description'] ?? '',
+      'mapping_type_id' => $mappingTypeId,
+      'mapping_names' => CRM_Utils_Array::collect('name', $mappings['values']),
+      'option_list' => [
+        'phone_type_id' => CRM_Utils_Array::makeNonAssociative(CRM_Core_BAO_Phone::buildOptions('phone_type_id'), 'id', 'text'),
+        'website_type_id' => CRM_Utils_Array::makeNonAssociative(CRM_Core_BAO_Website::buildOptions('website_type_id'), 'id', 'text'),
+        'im_provider_id' => CRM_Utils_Array::makeNonAssociative(CRM_Core_BAO_IM::buildOptions('provider_id'), 'id', 'text'),
+      ],
+    ]);
+
+    // Bootstrap angular and load exportui app
+    $loader = new Civi\Angular\AngularLoader();
+    $loader->setModules(['exportui']);
+    $loader->load();
   }
 
   public function buildQuickForm() {
-    CRM_Core_BAO_Mapping::buildMappingForm($this,
-      'Export',
-      $this->_mappingId,
-      $this->_exportColumnCount,
-      2,
-      $this->get('exportMode')
-    );
+    $this->add('hidden', 'export_field_map');
 
     $this->addButtons([
       [
@@ -83,128 +77,54 @@ class CRM_Export_Form_Map extends CRM_Core_Form {
         'name' => ts('Previous'),
       ],
       [
-        'type' => 'next',
-        'name' => ts('Export'),
-        'spacing' => '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;',
+        'type' => 'done',
+        'icon' => 'fa-ban',
+        'name' => ts('Return to Search'),
       ],
       [
-        'type' => 'done',
-        'icon' => 'fa-times',
-        'name' => ts('Done'),
+        'type' => 'next',
+        'icon' => 'fa-download',
+        'name' => ts('Download File'),
       ],
     ]);
   }
 
-  /**
-   * Global validation rules for the form.
-   *
-   * @param array $fields
-   *   Posted values of the form.
-   *
-   * @param $values
-   * @param int $mappingTypeId
-   *
-   * @return array
-   *   list of errors to be posted back to the form
-   */
-  public static function formRule($fields, $values, $mappingTypeId) {
-    $errors = [];
-
-    if (!empty($fields['saveMapping']) && !empty($fields['_qf_Map_next'])) {
-      $nameField = CRM_Utils_Array::value('saveMappingName', $fields);
-      if (empty($nameField)) {
-        $errors['saveMappingName'] = ts('Name is required to save Export Mapping');
-      }
-      else {
-        //check for Duplicate mappingName
-        if (CRM_Core_BAO_Mapping::checkMapping($nameField, $mappingTypeId)) {
-          $errors['saveMappingName'] = ts('Duplicate Export Mapping Name');
-        }
-      }
-    }
-
-    if (!empty($errors)) {
-      $_flag = 1;
-      $assignError = new CRM_Core_Page();
-      $assignError->assign('mappingDetailsError', $_flag);
-      return $errors;
-    }
-    else {
-      return TRUE;
+  public function setDefaultValues() {
+    $defaults = [];
+    if ($this->_mappingId) {
+      $mappingFields = civicrm_api3('mappingField', 'get', ['mapping_id' => $this->_mappingId, 'options' => ['limit' => 0, 'sort' => 'column_number']]);
+      $defaults['export_field_map'] = json_encode(array_values($mappingFields['values']));
     }
+    return $defaults;
   }
 
   /**
-   * Process the uploaded file.
-   *
-   * @return void
+   * Process the form submission.
    */
   public function postProcess() {
     $params = $this->controller->exportValues($this->_name);
     $exportParams = $this->controller->exportValues('Select');
 
-    $currentPath = CRM_Utils_System::currentPath();
-
-    $urlParams = NULL;
-    $qfKey = CRM_Utils_Request::retrieve('qfKey', 'String', $this);
-    if (CRM_Utils_Rule::qfKey($qfKey)) {
-      $urlParams = "&qfKey=$qfKey";
-    }
-
-    //get the button name
-    $buttonName = $this->controller->getButtonName('done');
-    $buttonName1 = $this->controller->getButtonName('next');
-    if ($buttonName == '_qf_Map_done') {
-      $this->set('exportColumnCount', NULL);
+    // Redirect back to search if "done" button pressed
+    if ($this->controller->getButtonName('done') == '_qf_Map_done') {
+      $currentPath = CRM_Utils_System::currentPath();
+      $urlParams = NULL;
+      $qfKey = CRM_Utils_Request::retrieve('qfKey', 'String', $this);
+      if (CRM_Utils_Rule::qfKey($qfKey)) {
+        $urlParams = "&qfKey=$qfKey";
+      }
       $this->controller->resetPage($this->_name);
       return CRM_Utils_System::redirect(CRM_Utils_System::url($currentPath, 'force=1' . $urlParams));
     }
 
-    if ($this->controller->exportValue($this->_name, 'addMore')) {
-      $this->set('exportColumnCount', $this->_exportColumnCount);
-      return;
-    }
-
-    $mapperKeys = $params['mapper'][1];
-
-    $mappedFields = [];
-    foreach ((array) $mapperKeys as $field) {
-      if (!empty($field[1])) {
-        $mappedFields[] = CRM_Core_BAO_Mapping::getMappingParams([], $field);
-      }
-    }
-
-    if (!$mappedFields) {
-      $this->set('mappingId', NULL);
-      CRM_Utils_System::redirect(CRM_Utils_System::url($currentPath, '_qf_Map_display=true' . $urlParams));
-    }
-
-    if ($buttonName1 == '_qf_Map_next') {
-      if (!empty($params['updateMapping'])) {
-        //save mapping fields
-        CRM_Core_BAO_Mapping::saveMappingFields($params, $params['mappingId']);
-      }
-
-      if (!empty($params['saveMapping'])) {
-        $mappingParams = [
-          'name' => $params['saveMappingName'],
-          'description' => $params['saveMappingDesc'],
-          'mapping_type_id' => $this->get('mappingTypeId'),
-        ];
-
-        $saveMapping = CRM_Core_BAO_Mapping::add($mappingParams);
-
-        //save mapping fields
-        CRM_Core_BAO_Mapping::saveMappingFields($params, $saveMapping->id);
-      }
-    }
+    $selectedFields = json_decode($params['export_field_map'], TRUE);
 
     //get the csv file
     CRM_Export_BAO_Export::exportComponents($this->get('selectAll'),
       $this->get('componentIds'),
       (array) $this->get('queryParams'),
       $this->get(CRM_Utils_Sort::SORT_ORDER),
-      $mappedFields,
+      $selectedFields,
       $this->get('returnProperties'),
       $this->get('exportMode'),
       $this->get('componentClause'),
@@ -216,6 +136,38 @@ class CRM_Export_Form_Map extends CRM_Core_Form {
     );
   }
 
+  /**
+   * @return array
+   */
+  protected function getPreviewData() {
+    $exportParams = $this->controller->exportValues('Select');
+    $isPostalOnly = (
+      isset($exportParams['postal_mailing_export']['postal_mailing_export']) &&
+      $exportParams['postal_mailing_export']['postal_mailing_export'] == 1
+    );
+    $processor = new CRM_Export_BAO_ExportProcessor($this->get('exportMode'), NULL, $this->get('queryOperator'), $this->get('mergeSameHousehold'), $isPostalOnly, $this->get('mergeSameAddress'));
+    $processor->setComponentTable($this->get('componentTable'));
+    $processor->setComponentClause($this->get('componentClause'));
+    $data = $processor->getPreview(4);
+    $ids = CRM_Utils_Array::collect('id', $data);
+    $data = array_pad($data, 4, []);
+
+    // Add location-type-specific data
+    if ($ids) {
+      foreach (['address', 'phone', 'email'] as $ent) {
+        foreach (civicrm_api3($ent, 'get', ['options' => ['limit' => 0], 'contact_id' => ['IN' => $ids]])['values'] as $loc) {
+          $row = array_search($loc['contact_id'], $ids);
+          $suffix = '_' . $loc['location_type_id'] . ($ent == 'phone' ? '_' . $loc['phone_type_id'] : '');
+          CRM_Utils_Array::remove($loc, 'id', 'contact_id', 'location_type_id', 'phone_type_id');
+          foreach ($loc as $name => $val) {
+            $data[$row][$name . $suffix] = $val;
+          }
+        }
+      }
+    }
+    return $data;
+  }
+
   /**
    * Return a descriptive name for the page, used in wizard header
    *
diff --git a/civicrm/CRM/Export/Utils.php b/civicrm/CRM/Export/Utils.php
new file mode 100644
index 0000000000..adfed821b3
--- /dev/null
+++ b/civicrm/CRM/Export/Utils.php
@@ -0,0 +1,110 @@
+<?php
+
+class CRM_Export_Utils {
+
+  /**
+   * This transforms the lists of fields for each contact type & component
+   * into a single unified list suitable for select2.
+   *
+   * The return values of CRM_Core_BAO_Mapping::getBasicFields contain a separate field list
+   * for every contact type and sub-type. This is extremely redundant as 90%+ of the fields
+   * in each list are the same. To avoid sending bloated data to the client-side, we turn
+   * it into a single list where fields not shared by every contact type get a contact_type
+   * attribute so they can be filtered appropriately by the selector.
+   *
+   * We also sort fields into optgroup categories, and add component fields appropriate to this export.
+   *
+   * @param $exportMode
+   * @return array
+   * @throws CiviCRM_API3_Exception
+   */
+  public static function getExportFields($exportMode) {
+    $fieldGroups = CRM_Core_BAO_Mapping::getBasicFields('Export');
+
+    $categories = [
+      'contact' => ['text' => ts('Contact Fields'), 'is_contact' => TRUE],
+      'address' => ['text' => ts('Address Fields'), 'is_contact' => TRUE],
+      'communication' => ['text' => ts('Communication Fields'), 'is_contact' => TRUE],
+    ];
+    $optionMap = [
+      'civicrm_website' => 'website_type_id',
+      'civicrm_phone' => 'phone_type_id',
+      'civicrm_im' => 'im_provider_id',
+    ];
+    // Whitelist of field properties we actually care about; others will be discarded
+    $fieldProps = ['id', 'text', 'has_location', 'option_list', 'relationship_type_id', 'related_contact_type'];
+    $relTypes = civicrm_api3('RelationshipType', 'get', ['options' => ['limit' => 0]])['values'];
+
+    // Add component fields
+    $compFields = [];
+    $compLabels = CRM_Core_BAO_Mapping::addComponentFields($compFields, 'Export', $exportMode);
+    foreach ($compLabels as $comp => $label) {
+      $categories[$comp] = ['text' => $label];
+      foreach ($compFields[$comp] as $key => $field) {
+        $field['text'] = $field['title'];
+        $field['id'] = $key;
+        $categories[$comp]['children'][] = array_intersect_key($field, array_flip($fieldProps));
+      }
+    }
+
+    // Unset groups, tags, notes for component export
+    if ($exportMode != CRM_Export_Form_Select::CONTACT_EXPORT) {
+      foreach (array_keys($fieldGroups) as $contactType) {
+        CRM_Utils_Array::remove($fieldGroups[$contactType], 'groups', 'tags', 'notes');
+      }
+    }
+
+    // Now combine all those redundant lists of fields into a single list with categories
+    foreach ($fieldGroups as $contactType => $fields) {
+      // 'related' was like a poor-mans optgroup.
+      unset($fields['related']);
+      foreach ($fields as $key => $field) {
+        $group = 'contact';
+        $field['text'] = $field['title'];
+        $field['id'] = $key;
+        $field['has_location'] = !empty($field['hasLocationType']);
+        if (isset($field['table_name']) && isset($optionMap[$field['table_name']])) {
+          $field['option_list'] = $optionMap[$field['table_name']];
+          $group = 'communication';
+        }
+        elseif (!empty($field['has_location'])) {
+          $group = 'address';
+        }
+        if ($key == 'email') {
+          $group = 'communication';
+        }
+        if (!empty($field['custom_group_id'])) {
+          $group = $field['custom_group_id'];
+          $categories[$group]['text'] = $field['groupTitle'];
+          $categories[$group]['is_contact'] = TRUE;
+        }
+        if (!empty($field['related'])) {
+          $group = 'related';
+          $categories[$group]['text'] = ts('Related Contact Info');
+          list($type, , $dir) = explode('_', $key);
+          $field['related_contact_type'] = $relTypes[$type]["contact_sub_type_$dir"] ?? $relTypes[$type]["contact_type_$dir"] ?? '*';
+          // Skip relationship types targeting disabled contacts
+          if ($field['related_contact_type'] != '*' && !isset($fieldGroups[$field['related_contact_type']])) {
+            continue;
+          }
+        }
+        if (empty($categories[$group]['children'][$key])) {
+          // Discard unwanted field props to save space
+          $categories[$group]['children'][$key] = array_intersect_key($field, array_flip($fieldProps));
+        }
+        // Set contact_type, which gets added to on every iteration
+        $categories[$group]['children'][$key]['contact_type'][] = $contactType;
+        // If a field applies to every contact type, remove the contact_type flag as it's redundant
+        if (count($fieldGroups) == count($categories[$group]['children'][$key]['contact_type'])) {
+          unset($categories[$group]['children'][$key]['contact_type']);
+        }
+      }
+    }
+    // We needed meaningful keys while organizing fields but if we send them client-side they'll just be in the way
+    foreach ($categories as &$category) {
+      $category['children'] = array_values($category['children']);
+    }
+    return array_values($categories);
+  }
+
+}
diff --git a/civicrm/CRM/Financial/BAO/FinancialType.php b/civicrm/CRM/Financial/BAO/FinancialType.php
index bd695bb584..c551d67529 100644
--- a/civicrm/CRM/Financial/BAO/FinancialType.php
+++ b/civicrm/CRM/Financial/BAO/FinancialType.php
@@ -153,7 +153,7 @@ class CRM_Financial_BAO_FinancialType extends CRM_Financial_DAO_FinancialType {
     $entityFinancialType->entity_id = $financialTypeId;
     $entityFinancialType->entity_table = 'civicrm_financial_type';
     $entityFinancialType->delete();
-    return FALSE;
+    return TRUE;
   }
 
   /**
diff --git a/civicrm/CRM/Financial/BAO/Payment.php b/civicrm/CRM/Financial/BAO/Payment.php
index 7da4925b20..122f13cb91 100644
--- a/civicrm/CRM/Financial/BAO/Payment.php
+++ b/civicrm/CRM/Financial/BAO/Payment.php
@@ -149,6 +149,11 @@ class CRM_Financial_BAO_Payment {
     elseif ($contributionStatus === 'Pending' && $params['total_amount'] > 0) {
       self::updateContributionStatus($contribution['id'], 'Partially Paid');
     }
+    elseif ($contributionStatus === 'Completed' && ((float) CRM_Core_BAO_FinancialTrxn::getTotalPayments($contribution['id'], TRUE) === 0.0)) {
+      // If the contribution has previously been completed (fully paid) and now has total payments adding up to 0
+      //  change status to refunded.
+      self::updateContributionStatus($contribution['id'], 'Refunded');
+    }
     CRM_Contribute_BAO_Contribution::recordPaymentActivity($params['contribution_id'], CRM_Utils_Array::value('participant_id', $params), $params['total_amount'], $trxn->currency, $trxn->trxn_date);
     return $trxn;
   }
diff --git a/civicrm/CRM/Financial/BAO/PaymentProcessor.php b/civicrm/CRM/Financial/BAO/PaymentProcessor.php
index 0ce7d3941c..65dae3da36 100644
--- a/civicrm/CRM/Financial/BAO/PaymentProcessor.php
+++ b/civicrm/CRM/Financial/BAO/PaymentProcessor.php
@@ -35,6 +35,13 @@ class CRM_Financial_BAO_PaymentProcessor extends CRM_Financial_DAO_PaymentProces
    * @throws Exception
    */
   public static function create($params) {
+    // If we are creating a new PaymentProcessor and have not specified the payment instrument to use, get the default from the Payment Processor Type.
+    if (empty($params['id']) && empty($params['payment_instrument_id'])) {
+      $params['payment_instrument_id'] = civicrm_api3('PaymentProcessorType', 'getvalue', [
+        'id' => $params['payment_processor_type_id'],
+        'return' => 'payment_instrument_id',
+      ]);
+    }
     $processor = new CRM_Financial_DAO_PaymentProcessor();
     $processor->copyValues($params);
 
diff --git a/civicrm/CRM/Financial/DAO/PaymentProcessorType.php b/civicrm/CRM/Financial/DAO/PaymentProcessorType.php
index 1ec35e96d7..fc9627c090 100644
--- a/civicrm/CRM/Financial/DAO/PaymentProcessorType.php
+++ b/civicrm/CRM/Financial/DAO/PaymentProcessorType.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Financial/PaymentProcessorType.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:5c1b8ad9b5ebf8ee399cf5d5268349bc)
+ * (GenCodeChecksum:1133a3c9eb58738c315a8509fea39d72)
  */
 
 /**
@@ -36,7 +36,7 @@ class CRM_Financial_DAO_PaymentProcessorType extends CRM_Core_DAO {
   public $id;
 
   /**
-   * Payment Processor Name.
+   * Payment Processor Type Name.
    *
    * @var string
    */
@@ -194,8 +194,8 @@ class CRM_Financial_DAO_PaymentProcessorType extends CRM_Core_DAO {
         'name' => [
           'name' => 'name',
           'type' => CRM_Utils_Type::T_STRING,
-          'title' => ts('Payment Processor variable name to be used in code'),
-          'description' => ts('Payment Processor Name.'),
+          'title' => ts('Payment Processor Type variable name to be used in code'),
+          'description' => ts('Payment Processor Type Name.'),
           'required' => TRUE,
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
diff --git a/civicrm/CRM/Financial/Form/FinancialType.php b/civicrm/CRM/Financial/Form/FinancialType.php
index 9dd624538c..2e5e1ea46b 100644
--- a/civicrm/CRM/Financial/Form/FinancialType.php
+++ b/civicrm/CRM/Financial/Form/FinancialType.php
@@ -118,7 +118,7 @@ class CRM_Financial_Form_FinancialType extends CRM_Contribute_Form {
   public function postProcess() {
     if ($this->_action & CRM_Core_Action::DELETE) {
       $errors = CRM_Financial_BAO_FinancialType::del($this->_id);
-      if (!empty($errors)) {
+      if (is_array($errors) && !empty($errors)) {
         CRM_Core_Error::statusBounce($errors['error_message'], CRM_Utils_System::url('civicrm/admin/financial/financialType', "reset=1&action=browse"), ts('Cannot Delete'));
       }
       CRM_Core_Session::setStatus(ts('Selected financial type has been deleted.'), ts('Record Deleted'), 'success');
diff --git a/civicrm/CRM/Grant/Form/Search.php b/civicrm/CRM/Grant/Form/Search.php
index 4c54877d07..1ea774db22 100644
--- a/civicrm/CRM/Grant/Form/Search.php
+++ b/civicrm/CRM/Grant/Form/Search.php
@@ -72,7 +72,6 @@ class CRM_Grant_Form_Search extends CRM_Core_Form_Search {
     /**
      * set the button names
      */
-    $this->_searchButtonName = $this->getButtonName('refresh');
     $this->_actionButtonName = $this->getButtonName('next', 'action');
 
     $this->_done = FALSE;
diff --git a/civicrm/CRM/Invoicing/Utils.php b/civicrm/CRM/Invoicing/Utils.php
index 06b56fbab0..6f0bc50cf2 100644
--- a/civicrm/CRM/Invoicing/Utils.php
+++ b/civicrm/CRM/Invoicing/Utils.php
@@ -24,6 +24,8 @@ class CRM_Invoicing_Utils {
    * @param bool $oldValue
    * @param bool $newValue
    * @param array $metadata
+   *
+   * @throws \CiviCRM_API3_Exception
    */
   public static function onToggle($oldValue, $newValue, $metadata) {
     if ($oldValue == $newValue) {
@@ -32,7 +34,7 @@ class CRM_Invoicing_Utils {
     $existingUserViewOptions = civicrm_api3('Setting', 'get', ['return' => 'user_dashboard_options'])['values'][CRM_Core_Config::domainID()]['user_dashboard_options'];
     $optionValues = civicrm_api3('Setting', 'getoptions', ['field' => 'user_dashboard_options'])['values'];
     $invoiceKey = array_search('Invoices / Credit Notes', $optionValues);
-    $existingIndex = in_array($invoiceKey, $existingUserViewOptions);
+    $existingIndex = array_search($invoiceKey, $existingUserViewOptions);
 
     if ($newValue && $existingIndex === FALSE) {
       $existingUserViewOptions[] = $invoiceKey;
diff --git a/civicrm/CRM/Logging/Schema.php b/civicrm/CRM/Logging/Schema.php
index 176020b705..9a8e7133a2 100644
--- a/civicrm/CRM/Logging/Schema.php
+++ b/civicrm/CRM/Logging/Schema.php
@@ -774,7 +774,7 @@ WHERE  table_schema IN ('{$this->db}', '{$civiDB}')";
     // rewrite the queries into CREATE TABLE queries for log tables:
     $cols = <<<COLS
             ,
-            log_date    TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
+            log_date    TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
             log_conn_id VARCHAR(17),
             log_user_id INTEGER,
             log_action  ENUM('Initialization', 'Insert', 'Update', 'Delete')
diff --git a/civicrm/CRM/Mailing/BAO/Mailing.php b/civicrm/CRM/Mailing/BAO/Mailing.php
index a1ad4c8392..42c3281e6f 100644
--- a/civicrm/CRM/Mailing/BAO/Mailing.php
+++ b/civicrm/CRM/Mailing/BAO/Mailing.php
@@ -689,6 +689,7 @@ class CRM_Mailing_BAO_Mailing extends CRM_Mailing_DAO_Mailing {
         $this->templates['subject'] = implode("\n", $template);
       }
 
+      $this->templates['mailingID'] = $this->id;
       CRM_Utils_Hook::alterMailContent($this->templates);
     }
     return $this->templates;
@@ -1139,8 +1140,8 @@ ORDER BY   civicrm_email.is_bulkmail DESC
 
     // push the tracking url on to the html email if necessary
     if ($this->open_tracking && $html) {
-      array_push($html, "\n" . '<img src="' . $config->userFrameworkResourceURL .
-        "extern/open.php?q=$event_queue_id\" width='1' height='1' alt='' border='0'>"
+      array_push($html, "\n" . '<img src="' . CRM_Utils_System::externUrl('extern/open', "q=$event_queue_id")
+        . '" width="1" height="1" alt="" border="0">'
       );
     }
 
@@ -1514,7 +1515,9 @@ ORDER BY   civicrm_email.is_bulkmail DESC
    *
    * @return object
    *   $mailing      The new mailing object
-   * @throws \Exception
+   *
+   * @throws \CRM_Core_Exception
+   * @throws \CiviCRM_API3_Exception
    */
   public static function create(&$params, $ids = []) {
 
@@ -1546,8 +1549,7 @@ ORDER BY   civicrm_email.is_bulkmail DESC
         $domain_name = 'EXAMPLE.ORG';
       }
       if (!isset($params['created_id'])) {
-        $session =& CRM_Core_Session::singleton();
-        $params['created_id'] = $session->get('userID');
+        $params['created_id'] = CRM_Core_Session::getLoggedInContactID();
       }
       $defaults = [
         // load the default config settings for each
diff --git a/civicrm/CRM/Mailing/BAO/TrackableURL.php b/civicrm/CRM/Mailing/BAO/TrackableURL.php
index 23c01cf5cc..86650e3afe 100644
--- a/civicrm/CRM/Mailing/BAO/TrackableURL.php
+++ b/civicrm/CRM/Mailing/BAO/TrackableURL.php
@@ -57,7 +57,6 @@ class CRM_Mailing_BAO_TrackableURL extends CRM_Mailing_DAO_TrackableURL {
     else {
 
       $hrefExists = FALSE;
-      $config = CRM_Core_Config::singleton();
 
       $tracker = new CRM_Mailing_BAO_TrackableURL();
       if (preg_match('/^href/i', $url)) {
@@ -73,11 +72,11 @@ class CRM_Mailing_BAO_TrackableURL extends CRM_Mailing_DAO_TrackableURL {
       }
       $id = $tracker->id;
 
-      $redirect = $config->userFrameworkResourceURL . "extern/url.php?u=$id";
+      $redirect = CRM_Utils_System::externUrl('extern/url', "u=$id");
       $urlCache[$mailing_id . $url] = $redirect;
     }
 
-    $returnUrl = "{$urlCache[$mailing_id . $url]}&qid={$queue_id}";
+    $returnUrl = CRM_Utils_System::externUrl('extern/url', "u=$id&qid=$queue_id");
 
     if ($hrefExists) {
       $returnUrl = "href='{$returnUrl}' rel='nofollow'";
diff --git a/civicrm/CRM/Mailing/MailStore.php b/civicrm/CRM/Mailing/MailStore.php
index 7f1447475f..90db173cdc 100644
--- a/civicrm/CRM/Mailing/MailStore.php
+++ b/civicrm/CRM/Mailing/MailStore.php
@@ -39,7 +39,7 @@ class CRM_Mailing_MailStore {
       throw new Exception("Could not find entry named $name in civicrm_mail_settings");
     }
 
-    $protocols = CRM_Core_PseudoConstant::get('CRM_Core_DAO_MailSettings', 'protocol');
+    $protocols = CRM_Core_PseudoConstant::get('CRM_Core_DAO_MailSettings', 'protocol', [], 'validate');
     if (empty($protocols[$dao->protocol])) {
       throw new Exception("Empty mail protocol");
     }
@@ -48,6 +48,9 @@ class CRM_Mailing_MailStore {
       case 'IMAP':
         return new CRM_Mailing_MailStore_Imap($dao->server, $dao->username, $dao->password, (bool) $dao->is_ssl, $dao->source);
 
+      case 'IMAP_XOAUTH2':
+        return new CRM_Mailing_MailStore_Imap($dao->server, $dao->username, $dao->password, (bool) $dao->is_ssl, $dao->source, TRUE);
+
       case 'POP3':
         return new CRM_Mailing_MailStore_Pop3($dao->server, $dao->username, $dao->password, (bool) $dao->is_ssl);
 
diff --git a/civicrm/CRM/Mailing/MailStore/Imap.php b/civicrm/CRM/Mailing/MailStore/Imap.php
index 335dc182de..c24943e2db 100644
--- a/civicrm/CRM/Mailing/MailStore/Imap.php
+++ b/civicrm/CRM/Mailing/MailStore/Imap.php
@@ -33,10 +33,12 @@ class CRM_Mailing_MailStore_Imap extends CRM_Mailing_MailStore {
    *   Whether to use IMAP or IMAPS.
    * @param string $folder
    *   Name of the inbox folder.
+   * @param bool $useXOAUTH2
+   *   Use XOAUTH2 authentication method
    *
    * @return \CRM_Mailing_MailStore_Imap
    */
-  public function __construct($host, $username, $password, $ssl = TRUE, $folder = 'INBOX') {
+  public function __construct($host, $username, $password, $ssl = TRUE, $folder = 'INBOX', $useXOAUTH2 = FALSE) {
     // default to INBOX if an empty string
     if (!$folder) {
       $folder = 'INBOX';
@@ -48,9 +50,18 @@ class CRM_Mailing_MailStore_Imap extends CRM_Mailing_MailStore {
 
     }
 
-    $options = ['ssl' => $ssl, 'uidReferencing' => TRUE];
+    $options = [
+      'listLimit' => defined('MAIL_BATCH_SIZE') ? MAIL_BATCH_SIZE : 1000,
+      'ssl' => $ssl,
+      'uidReferencing' => TRUE,
+    ];
     $this->_transport = new ezcMailImapTransport($host, NULL, $options);
-    $this->_transport->authenticate($username, $password);
+    if ($useXOAUTH2) {
+      $this->_transport->authenticate($username, $password, ezcMailImapTransport::AUTH_XOAUTH2);
+    }
+    else {
+      $this->_transport->authenticate($username, $password);
+    }
     $this->_transport->selectMailbox($folder);
 
     $this->_ignored = implode($this->_transport->getHierarchyDelimiter(), [$folder, 'CiviMail', 'ignored']);
diff --git a/civicrm/CRM/Mailing/Page/View.php b/civicrm/CRM/Mailing/Page/View.php
index b82abe8f59..7b858c33a7 100644
--- a/civicrm/CRM/Mailing/Page/View.php
+++ b/civicrm/CRM/Mailing/Page/View.php
@@ -81,6 +81,10 @@ class CRM_Mailing_Page_View extends CRM_Core_Page {
       $this->_mailingID = CRM_Utils_Request::retrieve('id', 'String', CRM_Core_DAO::$_nullObject, TRUE);
     }
 
+    // Retrieve contact ID and checksum from the URL
+    $cs = CRM_Utils_Request::retrieve('cs', 'String');
+    $cid = CRM_Utils_Request::retrieve('cid', 'Int');
+
     // # CRM-7651
     // override contactID from the function level if passed in
     if (isset($contactID) &&
@@ -88,6 +92,12 @@ class CRM_Mailing_Page_View extends CRM_Core_Page {
     ) {
       $this->_contactID = $contactID;
     }
+
+    // Support checksummed view of the mailing to replace tokens
+    elseif (!empty($cs) && !empty($cid) && CRM_Contact_BAO_Contact_Utils::validChecksum($cid, $cs)) {
+      $this->_contactID = $cid;
+    }
+
     else {
       $this->_contactID = CRM_Core_Session::getLoggedInContactID();
     }
diff --git a/civicrm/CRM/Mailing/Tokens.php b/civicrm/CRM/Mailing/Tokens.php
index 79bdba3a78..f8b79336ad 100644
--- a/civicrm/CRM/Mailing/Tokens.php
+++ b/civicrm/CRM/Mailing/Tokens.php
@@ -26,6 +26,7 @@ class CRM_Mailing_Tokens extends \Civi\Token\AbstractTokenSubscriber {
   public function __construct() {
     parent::__construct('mailing', [
       'id' => ts('Mailing ID'),
+      'key' => ts('Mailing Key'),
       'name' => ts('Mailing Name'),
       'group' => ts('Mailing Group(s)'),
       'subject' => ts('Mailing Subject'),
diff --git a/civicrm/CRM/Member/BAO/Membership.php b/civicrm/CRM/Member/BAO/Membership.php
index 3fff6f955f..8386983c67 100644
--- a/civicrm/CRM/Member/BAO/Membership.php
+++ b/civicrm/CRM/Member/BAO/Membership.php
@@ -43,13 +43,11 @@ class CRM_Member_BAO_Membership extends CRM_Member_DAO_Membership {
    *
    * @param array $params
    *   (reference ) an assoc array of name/value pairs.
-   * @param array $ids
-   *   The array that holds all the db ids.
    *
    * @return CRM_Member_BAO_Membership
    * @throws \CiviCRM_API3_Exception
    */
-  public static function add(&$params, $ids = []) {
+  public static function add(&$params) {
     $oldStatus = $oldType = NULL;
     if ($params['id']) {
       CRM_Utils_Hook::pre('edit', 'Membership', $params['id'], $params);
@@ -105,13 +103,12 @@ class CRM_Member_BAO_Membership extends CRM_Member_DAO_Membership {
       'max_related' => $membership->max_related,
     ];
 
-    $session = CRM_Core_Session::singleton();
-    // If we have an authenticated session, set modified_id to that user's contact_id, else set to membership.contact_id
-    if ($session->get('userID')) {
-      $membershipLog['modified_id'] = $session->get('userID');
+    if (!empty($params['modified_id'])) {
+      $membershipLog['modified_id'] = $params['modified_id'];
     }
-    elseif (!empty($ids['userId'])) {
-      $membershipLog['modified_id'] = $ids['userId'];
+    // If we have an authenticated session, set modified_id to that user's contact_id, else set to membership.contact_id
+    elseif (CRM_Core_Session::singleton()->get('userID')) {
+      $membershipLog['modified_id'] = CRM_Core_Session::singleton()->get('userID');
     }
     else {
       $membershipLog['modified_id'] = $membership->contact_id;
@@ -133,8 +130,16 @@ class CRM_Member_BAO_Membership extends CRM_Member_DAO_Membership {
 
     $targetContactID = $membership->contact_id;
     if (!empty($params['is_for_organization'])) {
-      $targetContactID = CRM_Utils_Array::value('userId', $ids);
+      // @todo - deprecate is_for_organization, require modified_id
+      $targetContactID = CRM_Utils_Array::value('modified_id', $params);
     }
+
+    // add custom field values
+    if (!empty($params['custom']) && is_array($params['custom'])
+    ) {
+      CRM_Core_BAO_CustomValueTable::store($params['custom'], 'civicrm_membership', $membership->id);
+    }
+
     if ($id) {
       if ($membership->status_id != $oldStatus) {
         CRM_Activity_BAO_Activity::addActivity($membership,
@@ -297,19 +302,17 @@ class CRM_Member_BAO_Membership extends CRM_Member_DAO_Membership {
 
     // @todo remove $ids from here $ids['userId'] is still used
     $params['id'] = CRM_Utils_Array::value('id', $params, CRM_Utils_Array::value('membership', $ids));
-    $membership = self::add($params, $ids);
+    if (empty($params['modified_id']) && !empty($ids['userID'])) {
+      CRM_Core_Error::deprecatedFunctionWarning('$ids["userID"] no longer supported - use $params["modified_id"]');
+      $params['modified_id'] = $ids['userID'];
+    }
+    $membership = self::add($params);
 
     if (is_a($membership, 'CRM_Core_Error')) {
       $transaction->rollback();
       return $membership;
     }
 
-    // add custom field values
-    if (!empty($params['custom']) && is_array($params['custom'])
-    ) {
-      CRM_Core_BAO_CustomValueTable::store($params['custom'], 'civicrm_membership', $membership->id);
-    }
-
     $params['membership_id'] = $membership->id;
     // @todo further cleanup required to remove use of $ids['contribution'] from here
     if (isset($ids['membership'])) {
@@ -993,6 +996,13 @@ INNER JOIN  civicrm_membership_type type ON ( type.id = membership.membership_ty
    *   start_date is between $startDate and $endDate
    */
   public static function getMembershipStarts($membershipTypeId, $startDate, $endDate, $isTest = 0, $isOwner = 0) {
+    // Ensure that the dates that are passed to the query are in the format of yyyy-mm-dd
+    $dates = ['startDate', 'endDate'];
+    foreach ($dates as $date) {
+      if (strlen($$date) === 8) {
+        $$date = date('Y-m-d', strtotime($$date));
+      }
+    }
 
     $testClause = 'membership.is_test = 1';
     if (!$isTest) {
@@ -1537,55 +1547,19 @@ WHERE  civicrm_membership.contact_id = civicrm_contact.id
    *   behaviour unchanged).
    *
    * @return array
+   *
+   * @throws \CiviCRM_API3_Exception
    */
-  public static function buildMembershipTypeValues(&$form, $membershipTypeID = [], $activeOnly = FALSE) {
-    $whereClause = " WHERE domain_id = " . CRM_Core_Config::domainID();
+  public static function buildMembershipTypeValues($form, $membershipTypeID = [], $activeOnly = FALSE) {
     $membershipTypeIDS = (array) $membershipTypeID;
+    $membershipTypeValues = CRM_Member_BAO_MembershipType::getPermissionedMembershipTypes();
 
-    if ($activeOnly) {
-      $whereClause .= " AND is_active = 1 ";
-    }
-    if (!empty($membershipTypeIDS)) {
-      $allIDs = implode(',', $membershipTypeIDS);
-      $whereClause .= " AND id IN ( $allIDs )";
-    }
-    CRM_Financial_BAO_FinancialType::getAvailableFinancialTypes($financialTypes, CRM_Core_Action::ADD);
-
-    if ($financialTypes) {
-      $whereClause .= " AND financial_type_id IN (" . implode(',', array_keys($financialTypes)) . ")";
-    }
-    else {
-      $whereClause .= " AND financial_type_id IN (0)";
-    }
-
-    $query = "
-SELECT *
-FROM   civicrm_membership_type
-       $whereClause;
-";
-    $dao = CRM_Core_DAO::executeQuery($query);
-
-    $membershipTypeValues = [];
-    $membershipTypeFields = [
-      'id',
-      'minimum_fee',
-      'name',
-      'is_active',
-      'description',
-      'financial_type_id',
-      'auto_renew',
-      'member_of_contact_id',
-      'relationship_type_id',
-      'relationship_direction',
-      'max_related',
-      'duration_unit',
-      'duration_interval',
-    ];
-
-    while ($dao->fetch()) {
-      $membershipTypeValues[$dao->id] = [];
-      foreach ($membershipTypeFields as $mtField) {
-        $membershipTypeValues[$dao->id][$mtField] = $dao->$mtField;
+    // MembershipTypes are already filtered by domain, filter as appropriate by is_active & a passed in list of ids.
+    foreach ($membershipTypeValues as $id => $type) {
+      if (($activeOnly && empty($type['is_active']))
+        || (!empty($membershipTypeIDS) && !in_array($id, $membershipTypeIDS, FALSE))
+      ) {
+        unset($membershipTypeValues[$id]);
       }
     }
 
@@ -1594,11 +1568,10 @@ FROM   civicrm_membership_type
     if (is_numeric($membershipTypeID) &&
       $membershipTypeID > 0
     ) {
+      CRM_Core_Error::deprecatedFunctionWarning('Non arrays deprecated');
       return $membershipTypeValues[$membershipTypeID];
     }
-    else {
-      return $membershipTypeValues;
-    }
+    return $membershipTypeValues;
   }
 
   /**
@@ -2009,12 +1982,10 @@ INNER JOIN  civicrm_contact contact ON ( contact.id = membership.contact_id AND
 
     //CRM-4027, create log w/ individual contact.
     if ($modifiedID) {
-      $ids['userId'] = $modifiedID;
+      // @todo this param is likely unused now.
       $memParams['is_for_organization'] = TRUE;
     }
-    else {
-      $ids['userId'] = $contactID;
-    }
+    $params['modified_id'] = $modifiedID ?? $contactID;
 
     //inherit campaign from contrib page.
     if (isset($campaignId)) {
@@ -2288,10 +2259,9 @@ WHERE      civicrm_membership.is_test = 0
 
       // CRM-7248: added excludeIsAdmin param to the following fn call to prevent moving to admin statuses
       //get the membership status as per id.
-      $newStatus = civicrm_api('membership_status', 'calc',
+      $newStatus = civicrm_api3('membership_status', 'calc',
         [
           'membership_id' => $dao2->membership_id,
-          'version' => 3,
           'ignore_admin_only' => TRUE,
         ], TRUE
       );
diff --git a/civicrm/CRM/Member/BAO/MembershipType.php b/civicrm/CRM/Member/BAO/MembershipType.php
index 3ca7caf5d0..add9aacac3 100644
--- a/civicrm/CRM/Member/BAO/MembershipType.php
+++ b/civicrm/CRM/Member/BAO/MembershipType.php
@@ -818,7 +818,29 @@ class CRM_Member_BAO_MembershipType extends CRM_Member_DAO_MembershipType {
    */
   public static function getAllMembershipTypes() {
     if (!Civi::cache('metadata')->has(__CLASS__ . __FUNCTION__)) {
-      Civi::cache('metadata')->set(__CLASS__ . __FUNCTION__, civicrm_api3('MembershipType', 'get', ['options' => ['limit' => 0, 'sort' => 'weight']])['values']);
+      $types = civicrm_api3('MembershipType', 'get', ['options' => ['limit' => 0, 'sort' => 'weight']])['values'];
+      $taxRates = CRM_Core_PseudoConstant::getTaxRates();
+      $keys = ['description', 'relationship_type_id', 'relationship_direction', 'max_related'];
+      // In order to avoid down-stream e-notices we undo api v3 filtering of NULL values. This is covered
+      // in Unit tests & ideally we might switch to apiv4 but I would argue we should build caching
+      // of metadata entities like this directly into apiv4.
+      foreach ($types as $id => $type) {
+        foreach ($keys as $key) {
+          if (!isset($type[$key])) {
+            $types[$id][$key] = NULL;
+          }
+        }
+        if (isset($type['contribution_type_id'])) {
+          unset($types[$id]['contribution_type_id']);
+        }
+        $types[$id]['tax_rate'] = (float) ($taxRates[$type['financial_type_id']] ?? 0.0);
+        $multiplier = 1;
+        if ($types[$id]['tax_rate'] !== 0.0) {
+          $multiplier += ($types[$id]['tax_rate'] / 100);
+        }
+        $types[$id]['minimum_fee_with_tax'] = (float) $types[$id]['minimum_fee'] * $multiplier;
+      }
+      Civi::cache('metadata')->set(__CLASS__ . __FUNCTION__, $types);
     }
     return Civi::cache('metadata')->get(__CLASS__ . __FUNCTION__);
   }
@@ -835,4 +857,21 @@ class CRM_Member_BAO_MembershipType extends CRM_Member_DAO_MembershipType {
     return self::getAllMembershipTypes()[$id];
   }
 
+  /**
+   * Get an array of all membership types the contact is permitted to access.
+   *
+   * @throws \CiviCRM_API3_Exception
+   */
+  public static function getPermissionedMembershipTypes() {
+    $types = self::getAllMembershipTypes();
+    $financialTypes = NULL;
+    $financialTypes = CRM_Financial_BAO_FinancialType::getAvailableFinancialTypes($financialTypes, CRM_Core_Action::ADD);
+    foreach ($types as $id => $type) {
+      if (!isset($financialTypes[$type['financial_type_id']])) {
+        unset($types[$id]);
+      }
+    }
+    return $types;
+  }
+
 }
diff --git a/civicrm/CRM/Member/Form/Membership.php b/civicrm/CRM/Member/Form/Membership.php
index b9f272b126..8129a226b5 100644
--- a/civicrm/CRM/Member/Form/Membership.php
+++ b/civicrm/CRM/Member/Form/Membership.php
@@ -1082,7 +1082,6 @@ class CRM_Member_Form_Membership extends CRM_Member_Form {
     if ($this->_id) {
       $ids['membership'] = $params['id'] = $this->_id;
     }
-    $ids['userId'] = CRM_Core_Session::singleton()->get('userID');
 
     // Set variables that we normally get from context.
     // In form mode these are set in preProcess.
@@ -1241,7 +1240,7 @@ class CRM_Member_Form_Membership extends CRM_Member_Form {
     $membershipType = implode(', ', $membershipTypes);
 
     // Retrieve the name and email of the current user - this will be the FROM for the receipt email
-    list($userName) = CRM_Contact_BAO_Contact_Location::getEmailDetails($ids['userId']);
+    list($userName) = CRM_Contact_BAO_Contact_Location::getEmailDetails(CRM_Core_Session::getLoggedInContactID());
 
     //CRM-13981, allow different person as a soft-contributor of chosen type
     if ($this->_contributorContactID != $this->_contactID) {
diff --git a/civicrm/CRM/Member/Form/Search.php b/civicrm/CRM/Member/Form/Search.php
index 0b8774e903..c12df99797 100644
--- a/civicrm/CRM/Member/Form/Search.php
+++ b/civicrm/CRM/Member/Form/Search.php
@@ -65,7 +65,6 @@ class CRM_Member_Form_Search extends CRM_Core_Form_Search {
   public function preProcess() {
     $this->set('searchFormName', 'Search');
 
-    $this->_searchButtonName = $this->getButtonName('refresh');
     $this->_actionButtonName = $this->getButtonName('next', 'action');
 
     $this->_done = FALSE;
@@ -81,7 +80,7 @@ class CRM_Member_Form_Search extends CRM_Core_Form_Search {
       $this->_context
     );
     $prefix = NULL;
-    if ($this->_context == 'basic') {
+    if ($this->_context === 'basic') {
       $prefix = $this->_prefix;
     }
 
@@ -189,6 +188,8 @@ class CRM_Member_Form_Search extends CRM_Core_Form_Search {
    *        done.
    * The processing consists of using a Selector / Controller framework for getting the
    * search results.
+   *
+   * @throws \CRM_Core_Exception
    */
   public function postProcess() {
     if ($this->_done) {
@@ -234,7 +235,7 @@ class CRM_Member_Form_Search extends CRM_Core_Form_Search {
     $selector->setKey($this->controller->_key);
 
     $prefix = NULL;
-    if ($this->_context == 'basic') {
+    if ($this->_context === 'basic') {
       $prefix = $this->_prefix;
     }
 
@@ -247,8 +248,6 @@ class CRM_Member_Form_Search extends CRM_Core_Form_Search {
       $prefix
     );
     $controller->setEmbedded(TRUE);
-
-    $query = &$selector->getQuery();
     $controller->run();
   }
 
@@ -256,6 +255,8 @@ class CRM_Member_Form_Search extends CRM_Core_Form_Search {
    * If this search has been forced then see if there are any get values, and if so over-ride the post values.
    *
    * Note that this means that GET over-rides POST :) & that force with no parameters can be very destructive.
+   *
+   * @throws \CRM_Core_Exception
    */
   public function fixFormValues() {
     if (!$this->_force) {
diff --git a/civicrm/CRM/Member/Form/Task.php b/civicrm/CRM/Member/Form/Task.php
index 72c9e23374..5f5791d01a 100644
--- a/civicrm/CRM/Member/Form/Task.php
+++ b/civicrm/CRM/Member/Form/Task.php
@@ -13,8 +13,6 @@
  *
  * @package CRM
  * @copyright CiviCRM LLC https://civicrm.org/licensing
- * $Id$
- *
  */
 
 /**
@@ -36,6 +34,7 @@ class CRM_Member_Form_Task extends CRM_Core_Form_Task {
    * @param
    *
    * @return void
+   * @throws \CRM_Core_Exception
    */
   public function preProcess() {
     self::preProcessCommon($this);
@@ -43,6 +42,8 @@ class CRM_Member_Form_Task extends CRM_Core_Form_Task {
 
   /**
    * @param CRM_Core_Form $form
+   *
+   * @throws \CRM_Core_Exception
    */
   public static function preProcessCommon(&$form) {
     $form->_memberIds = [];
@@ -57,7 +58,7 @@ class CRM_Member_Form_Task extends CRM_Core_Form_Task {
     $form->assign('taskName', $tasks[$form->_task]);
 
     $ids = [];
-    if ($values['radio_ts'] == 'ts_sel') {
+    if ($values['radio_ts'] === 'ts_sel') {
       foreach ($values as $name => $value) {
         if (substr($name, 0, CRM_Core_Form::CB_PREFIX_LEN) == CRM_Core_Form::CB_PREFIX) {
           $ids[] = substr($name, CRM_Core_Form::CB_PREFIX_LEN);
@@ -99,7 +100,7 @@ class CRM_Member_Form_Task extends CRM_Core_Form_Task {
     }
 
     $searchFormName = strtolower($form->get('searchFormName'));
-    if ($searchFormName == 'search') {
+    if ($searchFormName === 'search') {
       $session->replaceUserContext(CRM_Utils_System::url('civicrm/member/search', $urlParams));
     }
     else {
@@ -119,30 +120,4 @@ class CRM_Member_Form_Task extends CRM_Core_Form_Task {
     );
   }
 
-  /**
-   * Simple shell that derived classes can call to add buttons to.
-   * the form with a customized title for the main Submit
-   *
-   * @param string $title
-   *   Title of the main button.
-   * @param string $nextType
-   * @param string $backType
-   * @param bool $submitOnce
-   *
-   * @return void
-   */
-  public function addDefaultButtons($title, $nextType = 'next', $backType = 'back', $submitOnce = FALSE) {
-    $this->addButtons([
-      [
-        'type' => $nextType,
-        'name' => $title,
-        'isDefault' => TRUE,
-      ],
-      [
-        'type' => $backType,
-        'name' => ts('Cancel'),
-      ],
-    ]);
-  }
-
 }
diff --git a/civicrm/CRM/PCP/BAO/PCP.php b/civicrm/CRM/PCP/BAO/PCP.php
index 586b138334..6b4660548e 100644
--- a/civicrm/CRM/PCP/BAO/PCP.php
+++ b/civicrm/CRM/PCP/BAO/PCP.php
@@ -65,7 +65,7 @@ class CRM_PCP_BAO_PCP extends CRM_PCP_DAO_PCP {
    *   Id for the PCP.
    *
    * @return null|string
-   *   Dispaly name of the contact if found
+   *   Display name of the contact if found
    */
   public static function displayName($id) {
     $id = CRM_Utils_Type::escape($id, 'Integer');
@@ -409,32 +409,53 @@ WHERE pcp.id = %1 AND cc.contribution_status_id = %2 AND cc.is_test = 0";
   }
 
   /**
-   * Add PCP form elements to a form.
+   * This function builds the supporter text for the pcp
    *
-   * @param int $pcpId
-   * @param CRM_Core_Form $page
-   * @param null $elements
+   * @param int $pcpID
+   *   the personal campaign page ID
+   * @param int $contributionPageID
+   * @param string $component
+   *   one of 'contribute' or 'event'
+   *
+   * @return string
    */
-  public static function buildPcp($pcpId, &$page, &$elements = NULL) {
-
-    $prms = ['id' => $pcpId];
-    CRM_Core_DAO::commonRetrieve('CRM_PCP_DAO_PCP', $prms, $pcpInfo);
-    if ($pcpSupporter = CRM_PCP_BAO_PCP::displayName($pcpId)) {
-      if ($pcpInfo['page_type'] == 'event') {
+  public static function getPcpSupporterText($pcpID, $contributionPageID, $component) {
+    $pcp_supporter_text = '';
+    $text = CRM_PCP_BAO_PCP::getPcpBlockStatus($contributionPageID, $component);
+    $pcpSupporter = CRM_PCP_BAO_PCP::displayName($pcpID);
+    switch ($component) {
+      case 'event':
         $pcp_supporter_text = ts('This event registration is being made thanks to the efforts of <strong>%1</strong>, who supports our campaign. ', [1 => $pcpSupporter]);
-        $text = CRM_PCP_BAO_PCP::getPcpBlockStatus($pcpInfo['page_id'], 'event');
         if (!empty($text)) {
-          $pcp_supporter_text .= "You can support it as well - once you complete the registration, you will be able to create your own Personal Campaign Page!";
+          $pcp_supporter_text .= ts('You can support it as well - once you complete the registration, you will be able to create your own Personal Campaign Page!');
         }
-      }
-      else {
+        break;
+
+      case 'contribute':
         $pcp_supporter_text = ts('This contribution is being made thanks to the efforts of <strong>%1</strong>, who supports our campaign. ', [1 => $pcpSupporter]);
-        $text = CRM_PCP_BAO_PCP::getPcpBlockStatus($pcpInfo['page_id'], 'contribute');
         if (!empty($text)) {
-          $pcp_supporter_text .= "You can support it as well - once you complete the donation, you will be able to create your own Personal Campaign Page!";
+          $pcp_supporter_text .= ts('You can support it as well - once you complete the donation, you will be able to create your own Personal Campaign Page!');
         }
-      }
+        break;
+    }
+    return $pcp_supporter_text;
+  }
+
+  /**
+   * Add PCP form elements to a form.
+   *
+   * @param int $pcpId
+   * @param CRM_Core_Form $page
+   * @param array $elements
+   *
+   * @throws \CiviCRM_API3_Exception
+   */
+  public static function buildPcp($pcpId, &$page, &$elements = NULL) {
+    $prms = ['id' => $pcpId];
+    CRM_Core_DAO::commonRetrieve('CRM_PCP_DAO_PCP', $prms, $pcpInfo);
 
+    if (CRM_PCP_BAO_PCP::displayName($pcpId)) {
+      $pcp_supporter_text = self::getPcpSupporterText($pcpId, $pcpInfo['page_id'], $pcpInfo['page_type']);
       $page->assign('pcpSupporterText', $pcp_supporter_text);
     }
     $page->assign('pcp', TRUE);
diff --git a/civicrm/CRM/PCP/Page/PCP.php b/civicrm/CRM/PCP/Page/PCP.php
index 2d72a6611c..c6f9d04bd3 100644
--- a/civicrm/CRM/PCP/Page/PCP.php
+++ b/civicrm/CRM/PCP/Page/PCP.php
@@ -13,7 +13,6 @@
  *
  * @package CRM
  * @copyright CiviCRM LLC https://civicrm.org/licensing
- * $Id$
  *
  */
 
@@ -50,45 +49,45 @@ class CRM_PCP_Page_PCP extends CRM_Core_Page_Basic {
       // helper variable for nicer formatting
       $deleteExtra = ts('Are you sure you want to delete this Campaign Page ?');
 
-      self::$_links = array(
-        CRM_Core_Action::UPDATE => array(
+      self::$_links = [
+        CRM_Core_Action::UPDATE => [
           'name' => ts('Edit'),
           'url' => 'civicrm/pcp/info',
           'qs' => 'action=update&reset=1&id=%%id%%&context=dashboard',
           'title' => ts('Edit Personal Campaign Page'),
-        ),
-        CRM_Core_Action::RENEW => array(
+        ],
+        CRM_Core_Action::RENEW => [
           'name' => ts('Approve'),
           'url' => 'civicrm/admin/pcp',
           'qs' => 'action=renew&id=%%id%%',
           'title' => ts('Approve Personal Campaign Page'),
-        ),
-        CRM_Core_Action::REVERT => array(
+        ],
+        CRM_Core_Action::REVERT => [
           'name' => ts('Reject'),
           'url' => 'civicrm/admin/pcp',
           'qs' => 'action=revert&id=%%id%%',
           'title' => ts('Reject Personal Campaign Page'),
-        ),
-        CRM_Core_Action::DELETE => array(
+        ],
+        CRM_Core_Action::DELETE => [
           'name' => ts('Delete'),
           'url' => 'civicrm/admin/pcp',
           'qs' => 'action=delete&id=%%id%%',
           'extra' => 'onclick = "return confirm(\'' . $deleteExtra . '\');"',
           'title' => ts('Delete Personal Campaign Page'),
-        ),
-        CRM_Core_Action::ENABLE => array(
+        ],
+        CRM_Core_Action::ENABLE => [
           'name' => ts('Enable'),
           'url' => 'civicrm/admin/pcp',
           'qs' => 'action=enable&id=%%id%%',
           'title' => ts('Enable'),
-        ),
-        CRM_Core_Action::DISABLE => array(
+        ],
+        CRM_Core_Action::DISABLE => [
           'name' => ts('Disable'),
           'url' => 'civicrm/admin/pcp',
           'qs' => 'action=disable&id=%%id%%',
           'title' => ts('Disable'),
-        ),
-      );
+        ],
+      ];
     }
     return self::$_links;
   }
@@ -100,9 +99,8 @@ class CRM_PCP_Page_PCP extends CRM_Core_Page_Basic {
    * type of action and executes that action.
    * Finally it calls the parent's run method.
    *
-   * @param
-   *
-   * @return void
+   * @return mixed|null
+   * @throws \CRM_Core_Exception
    */
   public function run() {
     $id = $this->getIdAndAction();
@@ -140,10 +138,9 @@ class CRM_PCP_Page_PCP extends CRM_Core_Page_Basic {
   /**
    * Browse all custom data groups.
    *
+   * @param int $action
    *
-   * @param null $action
-   *
-   * @return void
+   * @throws \CRM_Core_Exception
    */
   public function browse($action = NULL) {
     CRM_Core_Resources::singleton()->addStyleFile('civicrm', 'css/searchForm.css', 1, 'html-header');
@@ -160,32 +157,32 @@ class CRM_PCP_Page_PCP extends CRM_Core_Page_Basic {
 
     $status = CRM_PCP_BAO_PCP::buildOptions('status_id', 'create');
 
-    $pcpSummary = $params = array();
+    $pcpSummary = $params = [];
     $whereClause = NULL;
 
     if (!empty($_POST) || !empty($_GET['page_type'])) {
       if (!empty($_POST['status_id'])) {
         $whereClause = ' AND cp.status_id = %1';
-        $params['1'] = array($_POST['status_id'], 'Integer');
+        $params['1'] = [$_POST['status_id'], 'Integer'];
       }
 
       if (!empty($_POST['page_type'])) {
         $whereClause .= ' AND cp.page_type = %2';
-        $params['2'] = array($_POST['page_type'], 'String');
+        $params['2'] = [$_POST['page_type'], 'String'];
       }
       elseif (!empty($_GET['page_type'])) {
         $whereClause .= ' AND cp.page_type = %2';
-        $params['2'] = array($_GET['page_type'], 'String');
+        $params['2'] = [$_GET['page_type'], 'String'];
       }
 
       if (!empty($_POST['page_id'])) {
         $whereClause .= ' AND cp.page_id = %4 AND cp.page_type = "contribute"';
-        $params['4'] = array($_POST['page_id'], 'Integer');
+        $params['4'] = [$_POST['page_id'], 'Integer'];
       }
 
       if (!empty($_POST['event_id'])) {
         $whereClause .= ' AND cp.page_id = %5 AND cp.page_type = "event"';
-        $params['5'] = array($_POST['event_id'], 'Integer');
+        $params['5'] = [$_POST['event_id'], 'Integer'];
       }
 
       if ($whereClause) {
@@ -226,7 +223,7 @@ class CRM_PCP_Page_PCP extends CRM_Core_Page_Basic {
       $pages['event'][$epages->id]['end_date'] = $epages->registration_end_date;
     }
 
-    $params = $this->get('params') ? $this->get('params') : array();
+    $params = $this->get('params') ? $this->get('params') : [];
 
     $title = '1';
     if ($this->_sortByCharacter !== NULL) {
@@ -289,7 +286,7 @@ class CRM_PCP_Page_PCP extends CRM_Core_Page_Basic {
         $pageUrl = CRM_Utils_System::url('civicrm/' . $page_type . '/register', 'reset=1&id=' . $pcp->page_id);
       }
 
-      $pcpSummary[$pcp->id] = array(
+      $pcpSummary[$pcp->id] = [
         'id' => $pcp->id,
         'start_date' => $pages[$page_type][$page_id]['start_date'],
         'end_date' => $pages[$page_type][$page_id]['end_date'],
@@ -301,11 +298,11 @@ class CRM_PCP_Page_PCP extends CRM_Core_Page_Basic {
         'page_url' => $pageUrl,
         'page_type' => $page_type,
         'action' => CRM_Core_Action::formLink(self::links(), $action,
-          array('id' => $pcp->id), ts('more'), FALSE, 'contributionpage.pcp.list', 'PCP', $pcp->id
+          ['id' => $pcp->id], ts('more'), FALSE, 'contributionpage.pcp.list', 'PCP', $pcp->id
         ),
         'title' => $pcp->title,
         'class' => $class,
-      );
+      ];
     }
 
     $this->search();
@@ -323,7 +320,6 @@ class CRM_PCP_Page_PCP extends CRM_Core_Page_Basic {
   }
 
   public function search() {
-
     if ($this->_action & CRM_Core_Action::DELETE) {
       return;
     }
diff --git a/civicrm/CRM/Pledge/Form/Search.php b/civicrm/CRM/Pledge/Form/Search.php
index 92158a070c..7f7e75c529 100644
--- a/civicrm/CRM/Pledge/Form/Search.php
+++ b/civicrm/CRM/Pledge/Form/Search.php
@@ -59,7 +59,6 @@ class CRM_Pledge_Form_Search extends CRM_Core_Form_Search {
    */
   public function preProcess() {
 
-    $this->_searchButtonName = $this->getButtonName('refresh');
     $this->_actionButtonName = $this->getButtonName('next', 'action');
 
     $this->_done = FALSE;
diff --git a/civicrm/CRM/Price/BAO/LineItem.php b/civicrm/CRM/Price/BAO/LineItem.php
index efa24b312b..c1f017f435 100644
--- a/civicrm/CRM/Price/BAO/LineItem.php
+++ b/civicrm/CRM/Price/BAO/LineItem.php
@@ -181,11 +181,10 @@ WHERE li.contribution_id = %1";
    * @param bool $isQtyZero
    * @param bool $relatedEntity
    *
-   * @param bool $invoice
    * @return array
    *   Array of line items
    */
-  public static function getLineItems($entityId, $entity = 'participant', $isQuick = FALSE, $isQtyZero = TRUE, $relatedEntity = FALSE, $invoice = FALSE) {
+  public static function getLineItems($entityId, $entity = 'participant', $isQuick = FALSE, $isQtyZero = TRUE, $relatedEntity = FALSE) {
     $whereClause = $fromClause = NULL;
     $selectClause = "
       SELECT    li.id,
@@ -218,17 +217,7 @@ WHERE li.contribution_id = %1";
       LEFT JOIN civicrm_line_item li ON ({$condition})
       LEFT JOIN civicrm_price_field_value pfv ON ( pfv.id = li.price_field_value_id )
       LEFT JOIN civicrm_price_field pf ON (pf.id = li.price_field_id )";
-    $whereClause = "
-      WHERE     %2.id = %1";
-
-    // CRM-16250 get additional participant's fee selection details only for invoice PDF (if any)
-    if ($entity == 'participant' && $invoice) {
-      $additionalParticipantIDs = CRM_Event_BAO_Participant::getAdditionalParticipantIds($entityId);
-      if (!empty($additionalParticipantIDs)) {
-        $whereClause = "WHERE %2.id IN (%1, " . implode(', ', $additionalParticipantIDs) . ")";
-      }
-    }
-
+    $whereClause = " WHERE     %2.id = %1";
     $orderByClause = " ORDER BY pf.weight, pfv.weight";
 
     if ($isQuick) {
@@ -402,7 +391,7 @@ WHERE li.contribution_id = %1";
    * Process price set and line items.
    *
    * @param int $entityId
-   * @param array $lineItem
+   * @param array $lineItems
    *   Line item array.
    * @param object $contributionDetails
    * @param string $entityTable
@@ -413,14 +402,14 @@ WHERE li.contribution_id = %1";
    * @throws \CRM_Core_Exception
    * @throws \CiviCRM_API3_Exception
    */
-  public static function processPriceSet($entityId, $lineItem, $contributionDetails = NULL, $entityTable = 'civicrm_contribution', $update = FALSE) {
-    if (!$entityId || !is_array($lineItem)
-      || CRM_Utils_System::isNull($lineItem)
+  public static function processPriceSet($entityId, $lineItems, $contributionDetails = NULL, $entityTable = 'civicrm_contribution', $update = FALSE) {
+    if (!$entityId || !is_array($lineItems)
+      || CRM_Utils_System::isNull($lineItems)
     ) {
       return;
     }
 
-    foreach ($lineItem as $priceSetId => &$values) {
+    foreach ($lineItems as $priceSetId => &$values) {
       if (!$priceSetId) {
         continue;
       }
@@ -456,18 +445,18 @@ WHERE li.contribution_id = %1";
         if (!empty($line['price_field_value_id']) && empty($line['financial_type_id'])) {
           $line['financial_type_id'] = CRM_Core_DAO::getFieldValue('CRM_Price_DAO_PriceFieldValue', $line['price_field_value_id'], 'financial_type_id');
         }
-        $lineItems = CRM_Price_BAO_LineItem::create($line);
+        $createdLineItem = CRM_Price_BAO_LineItem::create($line);
         if (!$update && $contributionDetails) {
-          $financialItem = CRM_Financial_BAO_FinancialItem::add($lineItems, $contributionDetails);
+          $financialItem = CRM_Financial_BAO_FinancialItem::add($createdLineItem, $contributionDetails);
           $line['financial_item_id'] = $financialItem->id;
           if (!empty($line['tax_amount'])) {
-            CRM_Financial_BAO_FinancialItem::add($lineItems, $contributionDetails, TRUE);
+            CRM_Financial_BAO_FinancialItem::add($createdLineItem, $contributionDetails, TRUE);
           }
         }
       }
     }
     if (!$update && $contributionDetails) {
-      CRM_Core_BAO_FinancialTrxn::createDeferredTrxn($lineItem, $contributionDetails);
+      CRM_Core_BAO_FinancialTrxn::createDeferredTrxn($lineItems, $contributionDetails);
     }
   }
 
@@ -604,7 +593,7 @@ WHERE li.contribution_id = %1";
    *   These are per the way the form processes them - ie
    *   ['price_1' => 1, 'price_2' => 8]
    *   This would mean price field id 1, option 1 (or 1 unit if using is_enter_qty).
-   * @param float|NULL $overrideAmount
+   * @param float|null $overrideAmount
    *   Optional override of the amount.
    *
    * @param int|null $financialTypeID
diff --git a/civicrm/CRM/Price/BAO/PriceSet.php b/civicrm/CRM/Price/BAO/PriceSet.php
index 5ac93721fd..f9e24c14d9 100644
--- a/civicrm/CRM/Price/BAO/PriceSet.php
+++ b/civicrm/CRM/Price/BAO/PriceSet.php
@@ -661,23 +661,13 @@ WHERE  id = %1";
    * @param $lineItem
    *   Line item array to be altered.
    * @param int $priceSetID
+   *
+   * @todo $priceSetID is a pseudoparam for permit override - we should stop passing it where we
+   * don't specifically need it & find a better way where we do.
    */
   public static function processAmount($fields, &$params, &$lineItem, $priceSetID = NULL) {
     // using price set
     $totalPrice = $totalTax = 0;
-    // CRM-18701 Sometimes the amount in the price set is overridden by the amount on the form.
-    // This is notably the case with memberships and we need to put this amount
-    // on the line item rather than the calculated amount.
-    // This seems to only affect radio link items as that is the use case for the 'quick config'
-    // set up (which allows a free form field).
-    $amount_override = NULL;
-
-    if ($priceSetID) {
-      $priceFields = self::filterPriceFieldsFromParams($priceSetID, $params);
-      if (count($priceFields) == 1) {
-        $amount_override = CRM_Utils_Array::value('partial_payment_total', $params, CRM_Utils_Array::value('total_amount', $params));
-      }
-    }
     foreach ($fields as $id => $field) {
       if (empty($params["price_{$id}"]) ||
         (empty($params["price_{$id}"]) && $params["price_{$id}"] == NULL)
@@ -686,67 +676,7 @@ WHERE  id = %1";
         continue;
       }
 
-      switch ($field['html_type']) {
-        case 'Text':
-          $firstOption = reset($field['options']);
-          $params["price_{$id}"] = [$firstOption['id'] => $params["price_{$id}"]];
-          CRM_Price_BAO_LineItem::format($id, $params, $field, $lineItem, CRM_Utils_Array::value('partial_payment_total', $params));
-          $optionValueId = key($field['options']);
-
-          if (CRM_Utils_Array::value('name', $field['options'][$optionValueId]) == 'contribution_amount') {
-            $taxRates = CRM_Core_PseudoConstant::getTaxRates();
-            if (array_key_exists($params['financial_type_id'], $taxRates)) {
-              $field['options'][key($field['options'])]['tax_rate'] = $taxRates[$params['financial_type_id']];
-              $taxAmount = CRM_Contribute_BAO_Contribution_Utils::calculateTaxAmount($field['options'][$optionValueId]['amount'], $field['options'][$optionValueId]['tax_rate']);
-              $field['options'][$optionValueId]['tax_amount'] = round($taxAmount['tax_amount'], 2);
-            }
-          }
-          if (!empty($field['options'][$optionValueId]['tax_rate'])) {
-            $lineItem = self::setLineItem($field, $lineItem, $optionValueId, $totalTax);
-          }
-          $totalPrice += $lineItem[$firstOption['id']]['line_total'] + CRM_Utils_Array::value('tax_amount', $lineItem[key($field['options'])]);
-          break;
-
-        case 'Radio':
-          //special case if user select -none-
-          if ($params["price_{$id}"] <= 0) {
-            break;
-          }
-          $params["price_{$id}"] = [$params["price_{$id}"] => 1];
-          $optionValueId = CRM_Utils_Array::key(1, $params["price_{$id}"]);
-
-          CRM_Price_BAO_LineItem::format($id, $params, $field, $lineItem, $amount_override);
-          if (!empty($field['options'][$optionValueId]['tax_rate'])) {
-            $lineItem = self::setLineItem($field, $lineItem, $optionValueId, $totalTax);
-            if ($amount_override) {
-              $lineItem[$optionValueId]['line_total'] = $lineItem[$optionValueId]['unit_price'] = CRM_Utils_Rule::cleanMoney($lineItem[$optionValueId]['line_total'] - $lineItem[$optionValueId]['tax_amount']);
-            }
-          }
-          $totalPrice += $lineItem[$optionValueId]['line_total'] + CRM_Utils_Array::value('tax_amount', $lineItem[$optionValueId]);
-          break;
-
-        case 'Select':
-          $params["price_{$id}"] = [$params["price_{$id}"] => 1];
-          $optionValueId = CRM_Utils_Array::key(1, $params["price_{$id}"]);
-
-          CRM_Price_BAO_LineItem::format($id, $params, $field, $lineItem, CRM_Utils_Array::value('partial_payment_total', $params));
-          if (!empty($field['options'][$optionValueId]['tax_rate'])) {
-            $lineItem = self::setLineItem($field, $lineItem, $optionValueId, $totalTax);
-          }
-          $totalPrice += $lineItem[$optionValueId]['line_total'] + CRM_Utils_Array::value('tax_amount', $lineItem[$optionValueId]);
-          break;
-
-        case 'CheckBox':
-
-          CRM_Price_BAO_LineItem::format($id, $params, $field, $lineItem, CRM_Utils_Array::value('partial_payment_total', $params));
-          foreach ($params["price_{$id}"] as $optionId => $option) {
-            if (!empty($field['options'][$optionId]['tax_rate'])) {
-              $lineItem = self::setLineItem($field, $lineItem, $optionId, $totalTax);
-            }
-            $totalPrice += $lineItem[$optionId]['line_total'] + CRM_Utils_Array::value('tax_amount', $lineItem[$optionId]);
-          }
-          break;
-      }
+      list($params, $lineItem, $totalTax, $totalPrice) = self::getLine($params, $lineItem, $priceSetID, $field, $id, $totalPrice);
     }
 
     $amount_level = [];
@@ -769,7 +699,7 @@ WHERE  id = %1";
         // will get us by.
         // Crucially a test has been added so a better solution can be implemented later with some comfort.
         // @todo - stop setting amount level in this function & call the getAmountLevel function to retrieve it.
-        if ($values['label'] != ts('Contribution Amount')) {
+        if ($values['label'] !== ts('Contribution Amount')) {
           $amount_level[] = $values['label'] . ' - ' . (float) $values['qty'];
         }
       }
@@ -819,7 +749,7 @@ WHERE  id = %1";
         // We deliberately & specifically exclude contribution amount as it has a specific meaning.
         // ie. it represents the default price field for a contribution. Another approach would be not
         // to give it a label if we don't want it to show.
-        if ($field['label'] != ts('Contribution Amount')) {
+        if ($field['label'] !== ts('Contribution Amount')) {
           $amount_level[] = $field['label'] . $qtyString;
         }
       }
@@ -1749,4 +1679,96 @@ WHERE     ct.id = cp.financial_type_id AND
     return $usedBy;
   }
 
+  /**
+   * Get the relevant line item.
+   *
+   * Note this is part of code being cleaned up / refactored & may change.
+   *
+   * @param array $params
+   * @param array $lineItem
+   * @param int $priceSetID
+   * @param array $field
+   * @param int $id
+   * @param float $totalPrice
+   *
+   * @return array
+   */
+  protected static function getLine(&$params, &$lineItem, $priceSetID, $field, $id, $totalPrice): array {
+    $totalTax = 0;
+    switch ($field['html_type']) {
+      case 'Text':
+        $firstOption = reset($field['options']);
+        $params["price_{$id}"] = [$firstOption['id'] => $params["price_{$id}"]];
+        CRM_Price_BAO_LineItem::format($id, $params, $field, $lineItem, CRM_Utils_Array::value('partial_payment_total', $params));
+        $optionValueId = key($field['options']);
+
+        if (CRM_Utils_Array::value('name', $field['options'][$optionValueId]) === 'contribution_amount') {
+          $taxRates = CRM_Core_PseudoConstant::getTaxRates();
+          if (array_key_exists($params['financial_type_id'], $taxRates)) {
+            $field['options'][key($field['options'])]['tax_rate'] = $taxRates[$params['financial_type_id']];
+            $taxAmount = CRM_Contribute_BAO_Contribution_Utils::calculateTaxAmount($field['options'][$optionValueId]['amount'], $field['options'][$optionValueId]['tax_rate']);
+            $field['options'][$optionValueId]['tax_amount'] = round($taxAmount['tax_amount'], 2);
+          }
+        }
+        if (!empty($field['options'][$optionValueId]['tax_rate'])) {
+          $lineItem = self::setLineItem($field, $lineItem, $optionValueId, $totalTax);
+        }
+        $totalPrice += $lineItem[$firstOption['id']]['line_total'] + CRM_Utils_Array::value('tax_amount', $lineItem[key($field['options'])]);
+        break;
+
+      case 'Radio':
+        //special case if user select -none-
+        if ($params["price_{$id}"] <= 0) {
+          break;
+        }
+        $params["price_{$id}"] = [$params["price_{$id}"] => 1];
+        $optionValueId = CRM_Utils_Array::key(1, $params["price_{$id}"]);
+
+        // CRM-18701 Sometimes the amount in the price set is overridden by the amount on the form.
+        // This is notably the case with memberships and we need to put this amount
+        // on the line item rather than the calculated amount.
+        // This seems to only affect radio link items as that is the use case for the 'quick config'
+        // set up (which allows a free form field).
+        // @todo $priceSetID is a pseudoparam for permit override - we should stop passing it where we
+        // don't specifically need it & find a better way where we do.
+        $amount_override = NULL;
+
+        if ($priceSetID && count(self::filterPriceFieldsFromParams($priceSetID, $params)) === 1) {
+          $amount_override = CRM_Utils_Array::value('partial_payment_total', $params, CRM_Utils_Array::value('total_amount', $params));
+        }
+        CRM_Price_BAO_LineItem::format($id, $params, $field, $lineItem, $amount_override);
+        if (!empty($field['options'][$optionValueId]['tax_rate'])) {
+          $lineItem = self::setLineItem($field, $lineItem, $optionValueId, $totalTax);
+          if ($amount_override) {
+            $lineItem[$optionValueId]['line_total'] = $lineItem[$optionValueId]['unit_price'] = CRM_Utils_Rule::cleanMoney($lineItem[$optionValueId]['line_total'] - $lineItem[$optionValueId]['tax_amount']);
+          }
+        }
+        $totalPrice += $lineItem[$optionValueId]['line_total'] + CRM_Utils_Array::value('tax_amount', $lineItem[$optionValueId]);
+        break;
+
+      case 'Select':
+        $params["price_{$id}"] = [$params["price_{$id}"] => 1];
+        $optionValueId = CRM_Utils_Array::key(1, $params["price_{$id}"]);
+
+        CRM_Price_BAO_LineItem::format($id, $params, $field, $lineItem, CRM_Utils_Array::value('partial_payment_total', $params));
+        if (!empty($field['options'][$optionValueId]['tax_rate'])) {
+          $lineItem = self::setLineItem($field, $lineItem, $optionValueId, $totalTax);
+        }
+        $totalPrice += $lineItem[$optionValueId]['line_total'] + CRM_Utils_Array::value('tax_amount', $lineItem[$optionValueId]);
+        break;
+
+      case 'CheckBox':
+
+        CRM_Price_BAO_LineItem::format($id, $params, $field, $lineItem, CRM_Utils_Array::value('partial_payment_total', $params));
+        foreach ($params["price_{$id}"] as $optionId => $option) {
+          if (!empty($field['options'][$optionId]['tax_rate'])) {
+            $lineItem = self::setLineItem($field, $lineItem, $optionId, $totalTax);
+          }
+          $totalPrice += $lineItem[$optionId]['line_total'] + CRM_Utils_Array::value('tax_amount', $lineItem[$optionId]);
+        }
+        break;
+    }
+    return [$params, $lineItem, $totalTax, $totalPrice];
+  }
+
 }
diff --git a/civicrm/CRM/Report/Form.php b/civicrm/CRM/Report/Form.php
index 2d521ec8a8..669386a5b3 100644
--- a/civicrm/CRM/Report/Form.php
+++ b/civicrm/CRM/Report/Form.php
@@ -139,9 +139,6 @@ class CRM_Report_Form extends CRM_Core_Form {
    */
   protected $_groupFilter = FALSE;
 
-  // [ML] Required for civiexportexcel
-  public $supportsExportExcel = TRUE;
-
   /**
    * Has the report been optimised for group filtering.
    *
@@ -2551,6 +2548,23 @@ WHERE cg.extends IN ('" . implode("','", $this->_customGroupExtends) . "') AND
     return $value;
   }
 
+  /**
+   * @param $value
+   * @param $row
+   * @param $fieldname
+   *
+   * @return mixed
+   */
+  protected function alterCommunicationtMethod($value, &$row, $fieldname) {
+    $communicationMethods = CRM_Core_PseudoConstant::get('CRM_Contact_DAO_Contact', 'preferred_communication_method');
+
+    // Explode padded values.
+    $values = CRM_utils_array::explodePadded($value);
+    // Flip values, compute intersection with $communicationMethods, and implode with commas.
+    $value = implode(', ', array_intersect_key($communicationMethods, array_flip($values)));
+    return $value;
+  }
+
   /**
    * @param $value
    *
@@ -2831,11 +2845,6 @@ WHERE cg.extends IN ('" . implode("','", $this->_customGroupExtends) . "') AND
       $this->_absoluteUrl = TRUE;
       $this->addPaging = FALSE;
     }
-    elseif ($this->_outputMode == 'excel2007') {
-      $printOnly = TRUE;
-      $this->_absoluteUrl = TRUE;
-      $this->addPaging = FALSE;
-    }
     elseif ($this->_outputMode == 'group') {
       $this->assign('outputMode', 'group');
     }
@@ -3478,9 +3487,6 @@ WHERE cg.extends IN ('" . implode("','", $this->_customGroupExtends) . "') AND
     elseif ($this->_outputMode == 'csv') {
       CRM_Report_Utils_Report::export2csv($this, $rows);
     }
-    elseif ($this->_outputMode == 'excel2007') {
-      CRM_CiviExportExcel_Utils_Report::export2excel2007($this, $rows);
-    }
     elseif ($this->_outputMode == 'group') {
       $group = $this->_params['groups'];
       $this->add2group($group);
@@ -5474,6 +5480,15 @@ LEFT JOIN civicrm_contact {$field['alias']} ON {$field['alias']}.id = {$this->_a
         'is_group_bys' => TRUE,
         'is_order_bys' => TRUE,
       ],
+      $options['prefix'] . 'preferred_communication_method' => [
+        'title' => $options['prefix_label'] . ts('Preferred Communication Method'),
+        'alter_display' => 'alterCommunicationtMethod',
+        'name' => 'preferred_communication_method',
+        'is_fields' => TRUE,
+        'is_filters' => FALSE,
+        'is_group_bys' => FALSE,
+        'is_order_bys' => FALSE,
+      ],
     ];
     foreach ([
       'postal_greeting_display' => 'Postal Greeting',
@@ -5708,7 +5723,7 @@ LEFT JOIN civicrm_contact {$field['alias']} ON {$field['alias']}.id = {$this->_a
       $options['prefix'] . 'postal_code' => [
         'title' => $options['prefix_label'] . ts('Postal Code'),
         'name' => 'postal_code',
-        'type' => 1,
+        'type' => 2,
         'is_fields' => TRUE,
         'is_filters' => TRUE,
         'is_group_bys' => TRUE,
@@ -5717,7 +5732,7 @@ LEFT JOIN civicrm_contact {$field['alias']} ON {$field['alias']}.id = {$this->_a
       $options['prefix'] . 'postal_code_suffix' => [
         'title' => $options['prefix_label'] . ts('Postal Code Suffix'),
         'name' => 'postal_code_suffix',
-        'type' => 1,
+        'type' => 2,
         'is_fields' => TRUE,
         'is_filters' => TRUE,
         'is_group_bys' => TRUE,
diff --git a/civicrm/CRM/Report/Form/Contribute/Detail.php b/civicrm/CRM/Report/Form/Contribute/Detail.php
index 3a38e2d631..294c40ecdd 100644
--- a/civicrm/CRM/Report/Form/Contribute/Detail.php
+++ b/civicrm/CRM/Report/Form/Contribute/Detail.php
@@ -70,280 +70,285 @@ class CRM_Report_Form_Contribute_Detail extends CRM_Report_Form {
    */
   public function __construct() {
     $this->_autoIncludeIndexedFieldsAsOrderBys = 1;
-    $this->_columns = array_merge($this->getColumns('Contact', [
-      'order_bys_defaults' => ['sort_name' => 'ASC '],
-      'fields_defaults' => ['sort_name'],
-      'fields_excluded' => ['id'],
-      'fields_required' => ['id'],
-      'filters_defaults' => ['is_deleted' => 0],
-      'no_field_disambiguation' => TRUE,
-    ]), [
-      'civicrm_email' => [
-        'dao' => 'CRM_Core_DAO_Email',
-        'fields' => [
-          'email' => [
-            'title' => ts('Donor Email'),
-            'default' => TRUE,
+    $this->_columns = array_merge(
+      $this->getColumns('Contact', [
+        'order_bys_defaults' => ['sort_name' => 'ASC '],
+        'fields_defaults' => ['sort_name'],
+        'fields_excluded' => ['id'],
+        'fields_required' => ['id'],
+        'filters_defaults' => ['is_deleted' => 0],
+        'no_field_disambiguation' => TRUE,
+      ]),
+      [
+        'civicrm_email' => [
+          'dao' => 'CRM_Core_DAO_Email',
+          'fields' => [
+            'email' => [
+              'title' => ts('Donor Email'),
+              'default' => TRUE,
+            ],
           ],
+          'grouping' => 'contact-fields',
         ],
-        'grouping' => 'contact-fields',
-      ],
-      'civicrm_line_item' => [
-        'dao' => 'CRM_Price_DAO_LineItem',
-      ],
-      'civicrm_phone' => [
-        'dao' => 'CRM_Core_DAO_Phone',
-        'fields' => [
-          'phone' => [
-            'title' => ts('Donor Phone'),
-            'default' => TRUE,
-            'no_repeat' => TRUE,
-          ],
+        'civicrm_line_item' => [
+          'dao' => 'CRM_Price_DAO_LineItem',
         ],
-        'grouping' => 'contact-fields',
-      ],
-      'civicrm_contribution' => [
-        'dao' => 'CRM_Contribute_DAO_Contribution',
-        'fields' => [
-          'contribution_id' => [
-            'name' => 'id',
-            'no_display' => TRUE,
-            'required' => TRUE,
-          ],
-          'list_contri_id' => [
-            'name' => 'id',
-            'title' => ts('Contribution ID'),
-          ],
-          'financial_type_id' => [
-            'title' => ts('Financial Type'),
-            'default' => TRUE,
-          ],
-          'contribution_status_id' => [
-            'title' => ts('Contribution Status'),
-          ],
-          'contribution_page_id' => [
-            'title' => ts('Contribution Page'),
-          ],
-          'source' => [
-            'title' => ts('Source'),
-          ],
-          'payment_instrument_id' => [
-            'title' => ts('Payment Type'),
-          ],
-          'check_number' => [
-            'title' => ts('Check Number'),
-          ],
-          'currency' => [
-            'required' => TRUE,
-            'no_display' => TRUE,
-          ],
-          'trxn_id' => NULL,
-          'receive_date' => ['default' => TRUE],
-          'receipt_date' => NULL,
-          'thankyou_date' => NULL,
-          'total_amount' => [
-            'title' => ts('Amount'),
-            'required' => TRUE,
-          ],
-          'non_deductible_amount' => [
-            'title' => ts('Non-deductible Amount'),
-          ],
-          'fee_amount' => NULL,
-          'net_amount' => NULL,
-          'contribution_or_soft' => [
-            'title' => ts('Contribution OR Soft Credit?'),
-            'dbAlias' => "'Contribution'",
-          ],
-          'soft_credits' => [
-            'title' => ts('Soft Credits'),
-            'dbAlias' => "NULL",
-          ],
-          'soft_credit_for' => [
-            'title' => ts('Soft Credit For'),
-            'dbAlias' => "NULL",
-          ],
-          'cancel_date' => [
-            'title' => ts('Cancelled / Refunded Date'),
-            'name' => 'contribution_cancel_date',
-          ],
-          'cancel_reason' => [
-            'title' => ts('Cancellation / Refund Reason'),
+        'civicrm_phone' => [
+          'dao' => 'CRM_Core_DAO_Phone',
+          'fields' => [
+            'phone' => [
+              'title' => ts('Donor Phone'),
+              'default' => TRUE,
+              'no_repeat' => TRUE,
+            ],
           ],
+          'grouping' => 'contact-fields',
         ],
-        'filters' => [
-          'contribution_or_soft' => [
-            'title' => ts('Contribution OR Soft Credit?'),
-            'clause' => "(1)",
-            'operatorType' => CRM_Report_Form::OP_SELECT,
-            'type' => CRM_Utils_Type::T_STRING,
-            'options' => [
-              'contributions_only' => ts('Contributions Only'),
-              'soft_credits_only' => ts('Soft Credits Only'),
-              'both' => ts('Both'),
+        'civicrm_contribution' => [
+          'dao' => 'CRM_Contribute_DAO_Contribution',
+          'fields' => [
+            'contribution_id' => [
+              'name' => 'id',
+              'no_display' => TRUE,
+              'required' => TRUE,
+            ],
+            'list_contri_id' => [
+              'name' => 'id',
+              'title' => ts('Contribution ID'),
+            ],
+            'financial_type_id' => [
+              'title' => ts('Financial Type'),
+              'default' => TRUE,
+            ],
+            'contribution_status_id' => [
+              'title' => ts('Contribution Status'),
+            ],
+            'contribution_page_id' => [
+              'title' => ts('Contribution Page'),
+            ],
+            'source' => [
+              'title' => ts('Source'),
+            ],
+            'payment_instrument_id' => [
+              'title' => ts('Payment Type'),
+            ],
+            'check_number' => [
+              'title' => ts('Check Number'),
+            ],
+            'currency' => [
+              'required' => TRUE,
+              'no_display' => TRUE,
+            ],
+            'trxn_id' => NULL,
+            'receive_date' => ['default' => TRUE],
+            'receipt_date' => NULL,
+            'thankyou_date' => NULL,
+            'total_amount' => [
+              'title' => ts('Amount'),
+              'required' => TRUE,
+            ],
+            'non_deductible_amount' => [
+              'title' => ts('Non-deductible Amount'),
+            ],
+            'fee_amount' => NULL,
+            'net_amount' => NULL,
+            'contribution_or_soft' => [
+              'title' => ts('Contribution OR Soft Credit?'),
+              'dbAlias' => "'Contribution'",
+            ],
+            'soft_credits' => [
+              'title' => ts('Soft Credits'),
+              'dbAlias' => "NULL",
+            ],
+            'soft_credit_for' => [
+              'title' => ts('Soft Credit For'),
+              'dbAlias' => "NULL",
+            ],
+            'cancel_date' => [
+              'title' => ts('Cancelled / Refunded Date'),
+              'name' => 'contribution_cancel_date',
+            ],
+            'cancel_reason' => [
+              'title' => ts('Cancellation / Refund Reason'),
             ],
           ],
-          'receive_date' => ['operatorType' => CRM_Report_Form::OP_DATE],
-          'thankyou_date' => ['operatorType' => CRM_Report_Form::OP_DATE],
-          'contribution_source' => [
-            'title' => ts('Source'),
-            'name' => 'source',
-            'type' => CRM_Utils_Type::T_STRING,
-          ],
-          'currency' => [
-            'title' => ts('Currency'),
-            'operatorType' => CRM_Report_Form::OP_MULTISELECT,
-            'options' => CRM_Core_OptionGroup::values('currencies_enabled'),
-            'default' => NULL,
-            'type' => CRM_Utils_Type::T_STRING,
-          ],
-          'non_deductible_amount' => [
-            'title' => ts('Non-deductible Amount'),
-          ],
-          'financial_type_id' => [
-            'title' => ts('Financial Type'),
-            'operatorType' => CRM_Report_Form::OP_MULTISELECT,
-            'options' => CRM_Financial_BAO_FinancialType::getAvailableFinancialTypes(),
-            'type' => CRM_Utils_Type::T_INT,
-          ],
-          'contribution_page_id' => [
-            'title' => ts('Contribution Page'),
-            'operatorType' => CRM_Report_Form::OP_MULTISELECT,
-            'options' => CRM_Contribute_PseudoConstant::contributionPage(),
-            'type' => CRM_Utils_Type::T_INT,
-          ],
-          'payment_instrument_id' => [
-            'title' => ts('Payment Type'),
-            'operatorType' => CRM_Report_Form::OP_MULTISELECT,
-            'options' => CRM_Contribute_PseudoConstant::paymentInstrument(),
-            'type' => CRM_Utils_Type::T_INT,
-          ],
-          'contribution_status_id' => [
-            'title' => ts('Contribution Status'),
-            'operatorType' => CRM_Report_Form::OP_MULTISELECT,
-            'options' => CRM_Contribute_BAO_Contribution::buildOptions('contribution_status_id', 'search'),
-            'default' => [1],
-            'type' => CRM_Utils_Type::T_INT,
-          ],
-          'total_amount' => ['title' => ts('Contribution Amount')],
-          'cancel_date' => [
-            'title' => ts('Cancelled / Refunded Date'),
-            'operatorType' => CRM_Report_Form::OP_DATE,
-            'name' => 'contribution_cancel_date',
-          ],
-          'cancel_reason' => [
-            'title' => ts('Cancellation / Refund Reason'),
+          'filters' => [
+            'contribution_or_soft' => [
+              'title' => ts('Contribution OR Soft Credit?'),
+              'clause' => "(1)",
+              'operatorType' => CRM_Report_Form::OP_SELECT,
+              'type' => CRM_Utils_Type::T_STRING,
+              'options' => [
+                'contributions_only' => ts('Contributions Only'),
+                'soft_credits_only' => ts('Soft Credits Only'),
+                'both' => ts('Both'),
+              ],
+            ],
+            'receive_date' => ['operatorType' => CRM_Report_Form::OP_DATE],
+            'thankyou_date' => ['operatorType' => CRM_Report_Form::OP_DATE],
+            'contribution_source' => [
+              'title' => ts('Source'),
+              'name' => 'source',
+              'type' => CRM_Utils_Type::T_STRING,
+            ],
+            'currency' => [
+              'title' => ts('Currency'),
+              'operatorType' => CRM_Report_Form::OP_MULTISELECT,
+              'options' => CRM_Core_OptionGroup::values('currencies_enabled'),
+              'default' => NULL,
+              'type' => CRM_Utils_Type::T_STRING,
+            ],
+            'non_deductible_amount' => [
+              'title' => ts('Non-deductible Amount'),
+            ],
+            'financial_type_id' => [
+              'title' => ts('Financial Type'),
+              'operatorType' => CRM_Report_Form::OP_MULTISELECT,
+              'options' => CRM_Financial_BAO_FinancialType::getAvailableFinancialTypes(),
+              'type' => CRM_Utils_Type::T_INT,
+            ],
+            'contribution_page_id' => [
+              'title' => ts('Contribution Page'),
+              'operatorType' => CRM_Report_Form::OP_MULTISELECT,
+              'options' => CRM_Contribute_PseudoConstant::contributionPage(),
+              'type' => CRM_Utils_Type::T_INT,
+            ],
+            'payment_instrument_id' => [
+              'title' => ts('Payment Type'),
+              'operatorType' => CRM_Report_Form::OP_MULTISELECT,
+              'options' => CRM_Contribute_PseudoConstant::paymentInstrument(),
+              'type' => CRM_Utils_Type::T_INT,
+            ],
+            'contribution_status_id' => [
+              'title' => ts('Contribution Status'),
+              'operatorType' => CRM_Report_Form::OP_MULTISELECT,
+              'options' => CRM_Contribute_BAO_Contribution::buildOptions('contribution_status_id', 'search'),
+              'default' => [1],
+              'type' => CRM_Utils_Type::T_INT,
+            ],
+            'total_amount' => ['title' => ts('Contribution Amount')],
+            'cancel_date' => [
+              'title' => ts('Cancelled / Refunded Date'),
+              'operatorType' => CRM_Report_Form::OP_DATE,
+              'name' => 'contribution_cancel_date',
+            ],
+            'cancel_reason' => [
+              'title' => ts('Cancellation / Refund Reason'),
+            ],
           ],
-        ],
-        'order_bys' => [
-          'financial_type_id' => ['title' => ts('Financial Type')],
-          'contribution_status_id' => ['title' => ts('Contribution Status')],
-          'payment_instrument_id' => ['title' => ts('Payment Method')],
-          'receive_date' => ['title' => ts('Date Received')],
-          'thankyou_date' => ['title' => ts('Thank-you Date')],
-        ],
-        'group_bys' => [
-          'contribution_id' => [
-            'name' => 'id',
-            'required' => TRUE,
-            'default' => TRUE,
-            'title' => ts('Contribution'),
+          'order_bys' => [
+            'financial_type_id' => ['title' => ts('Financial Type')],
+            'contribution_status_id' => ['title' => ts('Contribution Status')],
+            'payment_instrument_id' => ['title' => ts('Payment Method')],
+            'receive_date' => ['title' => ts('Date Received')],
+            'thankyou_date' => ['title' => ts('Thank-you Date')],
+          ],
+          'group_bys' => [
+            'contribution_id' => [
+              'name' => 'id',
+              'required' => TRUE,
+              'default' => TRUE,
+              'title' => ts('Contribution'),
+            ],
           ],
+          'grouping' => 'contri-fields',
         ],
-        'grouping' => 'contri-fields',
-      ],
-      'civicrm_contribution_soft' => [
-        'dao' => 'CRM_Contribute_DAO_ContributionSoft',
-        'fields' => [
-          'soft_credit_type_id' => ['title' => ts('Soft Credit Type')],
-          'soft_credit_amount' => ['title' => ts('Soft Credit amount'), 'name' => 'amount', 'type' => CRM_Utils_Type::T_MONEY],
-        ],
-        'filters' => [
-          'soft_credit_type_id' => [
-            'title' => ts('Soft Credit Type'),
-            'operatorType' => CRM_Report_Form::OP_MULTISELECT,
-            'options' => CRM_Core_OptionGroup::values('soft_credit_type'),
-            'default' => NULL,
-            'type' => CRM_Utils_Type::T_STRING,
+        'civicrm_contribution_soft' => [
+          'dao' => 'CRM_Contribute_DAO_ContributionSoft',
+          'fields' => [
+            'soft_credit_type_id' => ['title' => ts('Soft Credit Type')],
+            'soft_credit_amount' => ['title' => ts('Soft Credit amount'), 'name' => 'amount', 'type' => CRM_Utils_Type::T_MONEY],
+          ],
+          'filters' => [
+            'soft_credit_type_id' => [
+              'title' => ts('Soft Credit Type'),
+              'operatorType' => CRM_Report_Form::OP_MULTISELECT,
+              'options' => CRM_Core_OptionGroup::values('soft_credit_type'),
+              'default' => NULL,
+              'type' => CRM_Utils_Type::T_STRING,
+            ],
           ],
-        ],
-        'group_bys' => [
-          'soft_credit_id' => [
-            'name' => 'id',
-            'title' => ts('Soft Credit'),
+          'group_bys' => [
+            'soft_credit_id' => [
+              'name' => 'id',
+              'title' => ts('Soft Credit'),
+            ],
           ],
         ],
-      ],
-      'civicrm_financial_trxn' => [
-        'dao' => 'CRM_Financial_DAO_FinancialTrxn',
-        'fields' => [
-          'card_type_id' => [
-            'title' => ts('Credit Card Type'),
+        'civicrm_financial_trxn' => [
+          'dao' => 'CRM_Financial_DAO_FinancialTrxn',
+          'fields' => [
+            'card_type_id' => [
+              'title' => ts('Credit Card Type'),
+            ],
           ],
-        ],
-        'filters' => [
-          'card_type_id' => [
-            'title' => ts('Credit Card Type'),
-            'operatorType' => CRM_Report_Form::OP_MULTISELECT,
-            'options' => CRM_Financial_DAO_FinancialTrxn::buildOptions('card_type_id'),
-            'default' => NULL,
-            'type' => CRM_Utils_Type::T_STRING,
+          'filters' => [
+            'card_type_id' => [
+              'title' => ts('Credit Card Type'),
+              'operatorType' => CRM_Report_Form::OP_MULTISELECT,
+              'options' => CRM_Financial_DAO_FinancialTrxn::buildOptions('card_type_id'),
+              'default' => NULL,
+              'type' => CRM_Utils_Type::T_STRING,
+            ],
           ],
         ],
-      ],
-      'civicrm_batch' => [
-        'dao' => 'CRM_Batch_DAO_EntityBatch',
-        'grouping' => 'contri-fields',
-        'fields' => [
-          'batch_id' => [
-            'name' => 'batch_id',
-            'title' => ts('Batch Name'),
+        'civicrm_batch' => [
+          'dao' => 'CRM_Batch_DAO_EntityBatch',
+          'grouping' => 'contri-fields',
+          'fields' => [
+            'batch_id' => [
+              'name' => 'batch_id',
+              'title' => ts('Batch Name'),
+            ],
           ],
-        ],
-        'filters' => [
-          'bid' => [
-            'title' => ts('Batch Name'),
-            'operatorType' => CRM_Report_Form::OP_MULTISELECT,
-            'options' => CRM_Batch_BAO_Batch::getBatches(),
-            'type' => CRM_Utils_Type::T_INT,
-            'dbAlias' => 'batch_civireport.batch_id',
+          'filters' => [
+            'bid' => [
+              'title' => ts('Batch Name'),
+              'operatorType' => CRM_Report_Form::OP_MULTISELECT,
+              'options' => CRM_Batch_BAO_Batch::getBatches(),
+              'type' => CRM_Utils_Type::T_INT,
+              'dbAlias' => 'batch_civireport.batch_id',
+            ],
           ],
         ],
-      ],
-      'civicrm_contribution_ordinality' => [
-        'dao' => 'CRM_Contribute_DAO_Contribution',
-        'alias' => 'cordinality',
-        'filters' => [
-          'ordinality' => [
-            'title' => ts('Contribution Ordinality'),
-            'operatorType' => CRM_Report_Form::OP_MULTISELECT,
-            'options' => [
-              0 => 'First by Contributor',
-              1 => 'Second or Later by Contributor',
-            ],
-            'type' => CRM_Utils_Type::T_INT,
+        'civicrm_contribution_ordinality' => [
+          'dao' => 'CRM_Contribute_DAO_Contribution',
+          'alias' => 'cordinality',
+          'filters' => [
+            'ordinality' => [
+              'title' => ts('Contribution Ordinality'),
+              'operatorType' => CRM_Report_Form::OP_MULTISELECT,
+              'options' => [
+                0 => 'First by Contributor',
+                1 => 'Second or Later by Contributor',
+              ],
+              'type' => CRM_Utils_Type::T_INT,
+            ],
           ],
         ],
-      ],
-      'civicrm_note' => [
-        'dao' => 'CRM_Core_DAO_Note',
-        'fields' => [
-          'contribution_note' => [
-            'name' => 'note',
-            'title' => ts('Contribution Note'),
+        'civicrm_note' => [
+          'dao' => 'CRM_Core_DAO_Note',
+          'fields' => [
+            'contribution_note' => [
+              'name' => 'note',
+              'title' => ts('Contribution Note'),
+            ],
           ],
-        ],
-        'filters' => [
-          'note' => [
-            'name' => 'note',
-            'title' => ts('Contribution Note'),
-            'operator' => 'like',
-            'type' => CRM_Utils_Type::T_STRING,
+          'filters' => [
+            'note' => [
+              'name' => 'note',
+              'title' => ts('Contribution Note'),
+              'operator' => 'like',
+              'type' => CRM_Utils_Type::T_STRING,
+            ],
           ],
         ],
       ],
-    ]) + $this->addAddressFields(FALSE);
+      $this->getColumns('Address')
+    );
     // The tests test for this variation of the sort_name field. Don't argue with the tests :-).
     $this->_columns['civicrm_contact']['fields']['sort_name']['title'] = ts('Donor Name');
+
     $this->_groupFilter = TRUE;
     $this->_tagFilter = TRUE;
     // If we have campaigns enabled, add those elements to both the fields, filters and sorting
diff --git a/civicrm/CRM/Report/Form/Contribute/History.php b/civicrm/CRM/Report/Form/Contribute/History.php
index e0c79133e6..99983fcf3f 100644
--- a/civicrm/CRM/Report/Form/Contribute/History.php
+++ b/civicrm/CRM/Report/Form/Contribute/History.php
@@ -39,6 +39,9 @@ class CRM_Report_Form_Contribute_History extends CRM_Report_Form {
   protected $_yearStatisticsTo = '';
 
   /**
+   * Class constructor.
+   *
+   * @throws \CRM_Core_Exception
    */
   public function __construct() {
     $this->_autoIncludeIndexedFieldsAsOrderBys = 1;
diff --git a/civicrm/CRM/Report/Form/Contribute/Summary.php b/civicrm/CRM/Report/Form/Contribute/Summary.php
index fe273cd31a..ab65d97d30 100644
--- a/civicrm/CRM/Report/Form/Contribute/Summary.php
+++ b/civicrm/CRM/Report/Form/Contribute/Summary.php
@@ -611,8 +611,14 @@ class CRM_Report_Form_Contribute_Summary extends CRM_Report_Form {
     $group = "\nGROUP BY {$this->_aliases['civicrm_contribution']}.currency";
 
     $this->from('contribution');
+    if ($softCredit) {
+      $this->from();
+    }
     $this->customDataFrom();
 
+    // Ensure that Extensions that modify the from statement in the sql also modify it in the statistics.
+    CRM_Utils_Hook::alterReportVar('sql', $this, $this);
+
     $contriQuery = "
 COUNT({$this->_aliases['civicrm_contribution']}.total_amount )        as civicrm_contribution_total_amount_count,
 SUM({$this->_aliases['civicrm_contribution']}.total_amount )          as civicrm_contribution_total_amount_sum,
@@ -621,8 +627,6 @@ ROUND(AVG({$this->_aliases['civicrm_contribution']}.total_amount), 2) as civicrm
 {$this->_from} {$this->_where}";
 
     if ($softCredit) {
-      $this->from();
-      $this->customDataFrom();
       $select = "
 COUNT({$this->_aliases['civicrm_contribution_soft']}.amount )        as civicrm_contribution_soft_soft_amount_count,
 SUM({$this->_aliases['civicrm_contribution_soft']}.amount )          as civicrm_contribution_soft_soft_amount_sum,
diff --git a/civicrm/CRM/Report/Form/Instance.php b/civicrm/CRM/Report/Form/Instance.php
index 8f00408a17..4ca1b81ad2 100644
--- a/civicrm/CRM/Report/Form/Instance.php
+++ b/civicrm/CRM/Report/Form/Instance.php
@@ -109,11 +109,7 @@ class CRM_Report_Form_Instance {
     );
 
     // prepare user_roles to save as names not as ids
-    if (function_exists('user_roles')) {
-      $user_roles_array = user_roles();
-      foreach ($user_roles_array as $key => $value) {
-        $user_roles[$value] = $value;
-      }
+    if ($user_roles = CRM_Core_Config::singleton()->userSystem->getRoleNames()) {
       $grouprole = $form->addElement('advmultiselect',
         'grouprole',
         ts('ACL Group/Role'),
diff --git a/civicrm/CRM/SMS/Form/Schedule.php b/civicrm/CRM/SMS/Form/Schedule.php
index 5cdf860cac..a3f0a76374 100644
--- a/civicrm/CRM/SMS/Form/Schedule.php
+++ b/civicrm/CRM/SMS/Form/Schedule.php
@@ -131,9 +131,9 @@ class CRM_SMS_Form_Schedule extends CRM_Core_Form {
   public function postProcess() {
     $params = [];
 
-    $params['mailing_id'] = $ids['mailing_id'] = $this->_mailingID;
+    $params['id'] = $this->_mailingID;
 
-    if (empty($params['mailing_id'])) {
+    if (empty($params['id'])) {
       CRM_Core_Error::statusBounce(ts('Could not find a mailing id'));
     }
 
@@ -157,7 +157,7 @@ class CRM_SMS_Form_Schedule extends CRM_Core_Form {
     }
 
     // Build the mailing object.
-    CRM_Mailing_BAO_Mailing::create($params, $ids);
+    CRM_Mailing_BAO_Mailing::create($params);
 
     $session = CRM_Core_Session::singleton();
     $session->pushUserContext(CRM_Utils_System::url('civicrm/mailing/browse/scheduled',
diff --git a/civicrm/CRM/SMS/Form/Upload.php b/civicrm/CRM/SMS/Form/Upload.php
index 1c5f6aa80c..922b281225 100644
--- a/civicrm/CRM/SMS/Form/Upload.php
+++ b/civicrm/CRM/SMS/Form/Upload.php
@@ -144,7 +144,7 @@ class CRM_SMS_Form_Upload extends CRM_Core_Form {
   }
 
   public function postProcess() {
-    $params = $ids = [];
+    $params = [];
     $uploadParams = ['from_name'];
 
     $formValues = $this->controller->exportValues($this->_name);
@@ -232,10 +232,10 @@ class CRM_SMS_Form_Upload extends CRM_Core_Form {
       $this->set('template', $params['msg_template_id']);
     }
 
-    $ids['mailing_id'] = $this->_mailingID;
+    $params['id'] = $this->_mailingID;
 
     // Build SMS in mailing table.
-    CRM_Mailing_BAO_Mailing::create($params, $ids);
+    CRM_Mailing_BAO_Mailing::create($params);
   }
 
   /**
diff --git a/civicrm/CRM/UF/Form/Group.php b/civicrm/CRM/UF/Form/Group.php
index e000616f5e..f531dfbbb8 100644
--- a/civicrm/CRM/UF/Form/Group.php
+++ b/civicrm/CRM/UF/Form/Group.php
@@ -390,7 +390,7 @@ class CRM_UF_Form_Group extends CRM_Core_Form {
 
       if (!empty($params['is_active'])) {
         //make entry in uf join table
-        CRM_Core_BAO_UFGroup::createUFJoin($params, $ufGroup->id);
+        CRM_Core_BAO_UFGroup::createUFJoin($params['weight'], $params['uf_group_type'] ?? [], $ufGroup->id);
       }
       elseif ($this->_id) {
         // this profile has been set to inactive, delete all corresponding UF Join's
diff --git a/civicrm/CRM/UF/Page/ProfileEditor.php b/civicrm/CRM/UF/Page/ProfileEditor.php
index 9d4e38a7b1..bbd6c1f49b 100644
--- a/civicrm/CRM/UF/Page/ProfileEditor.php
+++ b/civicrm/CRM/UF/Page/ProfileEditor.php
@@ -54,17 +54,17 @@ class CRM_UF_Page_ProfileEditor extends CRM_Core_Page {
           'profilePreviewKey' => CRM_Core_Key::get('CRM_UF_Form_Inline_Preview', TRUE),
         ];
       })
-      ->addScriptFile('civicrm', 'packages/backbone/json2.js', 100, 'html-header', FALSE)
-      ->addScriptFile('civicrm', 'packages/backbone/backbone.js', 120, 'html-header')
-      ->addScriptFile('civicrm', 'packages/backbone/backbone.marionette.js', 125, 'html-header', FALSE)
-      ->addScriptFile('civicrm', 'packages/backbone/backbone.collectionsubset.js', 125, 'html-header', FALSE)
-      ->addScriptFile('civicrm', 'packages/backbone-forms/distribution/backbone-forms.js', 130, 'html-header', FALSE)
-      ->addScriptFile('civicrm', 'packages/backbone-forms/distribution/adapters/backbone.bootstrap-modal.min.js', 140, 'html-header', FALSE)
-      ->addScriptFile('civicrm', 'packages/backbone-forms/distribution/editors/list.min.js', 140, 'html-header', FALSE)
-      ->addStyleFile('civicrm', 'packages/backbone-forms/distribution/templates/default.css', 140, 'html-header')
+      ->addScriptFile('civicrm.packages', 'backbone/json2.js', 100, 'html-header', FALSE)
+      ->addScriptFile('civicrm.packages', 'backbone/backbone.js', 120, 'html-header')
+      ->addScriptFile('civicrm.packages', 'backbone/backbone.marionette.js', 125, 'html-header', FALSE)
+      ->addScriptFile('civicrm.packages', 'backbone/backbone.collectionsubset.js', 125, 'html-header', FALSE)
+      ->addScriptFile('civicrm.packages', 'backbone-forms/distribution/backbone-forms.js', 130, 'html-header', FALSE)
+      ->addScriptFile('civicrm.packages', 'backbone-forms/distribution/adapters/backbone.bootstrap-modal.min.js', 140, 'html-header', FALSE)
+      ->addScriptFile('civicrm.packages', 'backbone-forms/distribution/editors/list.min.js', 140, 'html-header', FALSE)
+      ->addStyleFile('civicrm.packages', 'backbone-forms/distribution/templates/default.css', 140, 'html-header')
       ->addScript('CRM.BB = Backbone.noConflict();', 300, 'html-header')
-      ->addScriptFile('civicrm', 'packages/jquery/plugins/jstree/jquery.jstree.js', 0, 'html-header', FALSE)
-      ->addStyleFile('civicrm', 'packages/jquery/plugins/jstree/themes/default/style.css', 0, 'html-header')
+      ->addScriptFile('civicrm.packages', 'jquery/plugins/jstree/jquery.jstree.js', 0, 'html-header', FALSE)
+      ->addStyleFile('civicrm.packages', 'jquery/plugins/jstree/themes/default/style.css', 0, 'html-header')
       ->addStyleFile('civicrm', 'css/crm.designer.css', 140, 'html-header')
       ->addScriptFile('civicrm', 'js/crm.backbone.js', 150)
       ->addScriptFile('civicrm', 'js/model/crm.schema-mapped.js', 200)
diff --git a/civicrm/CRM/Upgrade/Form.php b/civicrm/CRM/Upgrade/Form.php
index 4d9f5ea5f5..ab3de5688f 100644
--- a/civicrm/CRM/Upgrade/Form.php
+++ b/civicrm/CRM/Upgrade/Form.php
@@ -35,6 +35,8 @@ class CRM_Upgrade_Form extends CRM_Core_Form {
    * Minimum php version required to run (equal to or lower than the minimum install version)
    *
    * As of Civi 5.16, using PHP 5.x will lead to a hard crash during bootstrap.
+   *
+   * Tip: Keep in sync with composer.json ("config => platform => php")
    */
   const MINIMUM_PHP_VERSION = '7.0.0';
 
diff --git a/civicrm/CRM/Upgrade/Incremental/Base.php b/civicrm/CRM/Upgrade/Incremental/Base.php
index bde6bb675b..0faa6012e4 100644
--- a/civicrm/CRM/Upgrade/Incremental/Base.php
+++ b/civicrm/CRM/Upgrade/Incremental/Base.php
@@ -9,6 +9,8 @@
  +--------------------------------------------------------------------+
  */
 
+use Civi\Core\SettingsBag;
+
 /**
  * Base class for incremental upgrades
  */
@@ -195,11 +197,16 @@ class CRM_Upgrade_Incremental_Base {
    * @return bool
    */
   public static function updateContributeSettings($ctx) {
-    $settings = Civi::settings()->get('contribution_invoice_settings');
-    $metadata = \Civi\Core\SettingsMetadata::getMetadata();
-    $conversions = array_intersect_key((array) $settings, $metadata);
-    foreach ($conversions as $key => $conversion) {
-      Civi::settings()->set($key, $conversion);
+    // Use a direct query as api now does some handling on this.
+    $settings = CRM_Core_DAO::executeQuery("SELECT value, domain_id FROM civicrm_setting WHERE name = 'contribution_invoice_settings'");
+
+    while ($settings->fetch()) {
+      $contributionSettings = (array) CRM_Utils_String::unserialize($settings->value);
+      foreach (array_merge(SettingsBag::getContributionInvoiceSettingKeys(), ['deferred_revenue_enabled' => 'deferred_revenue_enabled']) as $possibleKeyName => $settingName) {
+        if (!empty($contributionSettings[$possibleKeyName]) && empty(Civi::settings($settings->domain_id)->getExplicit($settingName))) {
+          Civi::settings($settings->domain_id)->set($settingName, $contributionSettings[$possibleKeyName]);
+        }
+      }
     }
     return TRUE;
   }
diff --git a/civicrm/CRM/Upgrade/Incremental/MessageTemplates.php b/civicrm/CRM/Upgrade/Incremental/MessageTemplates.php
index 21ecf3ec00..1a7c945a80 100644
--- a/civicrm/CRM/Upgrade/Incremental/MessageTemplates.php
+++ b/civicrm/CRM/Upgrade/Incremental/MessageTemplates.php
@@ -199,6 +199,15 @@ class CRM_Upgrade_Incremental_MessageTemplates {
           ['name' => 'membership_online_receipt', 'type' => 'html'],
         ],
       ],
+      [
+        'version' => '5.23.alpha1',
+        'upgrade_descriptor' => ts('Add Contributor Name to Offline Contribution receipts; fix bad event self-service URL'),
+        'templates' => [
+          ['name' => 'contribution_offline_receipt', 'type' => 'text'],
+          ['name' => 'contribution_offline_receipt', 'type' => 'html'],
+          ['name' => 'participant_confirm', 'type' => 'html'],
+        ],
+      ],
 
     ];
   }
diff --git a/civicrm/CRM/Upgrade/Incremental/php/FiveTwentyThree.php b/civicrm/CRM/Upgrade/Incremental/php/FiveTwentyThree.php
new file mode 100644
index 0000000000..4803387fc0
--- /dev/null
+++ b/civicrm/CRM/Upgrade/Incremental/php/FiveTwentyThree.php
@@ -0,0 +1,170 @@
+<?php
+/*
+ +--------------------------------------------------------------------+
+ | Copyright CiviCRM LLC. All rights reserved.                        |
+ |                                                                    |
+ | This work is published under the GNU AGPLv3 license with some      |
+ | permitted exceptions and without any warranty. For full license    |
+ | and copyright information, see https://civicrm.org/licensing       |
+ +--------------------------------------------------------------------+
+ */
+
+/**
+ * Upgrade logic for FiveTwentyThree */
+class CRM_Upgrade_Incremental_php_FiveTwentyThree extends CRM_Upgrade_Incremental_Base {
+
+  /**
+   * Compute any messages which should be displayed beforeupgrade.
+   *
+   * Note: This function is called iteratively for each upcoming
+   * revision to the database.
+   *
+   * @param string $preUpgradeMessage
+   * @param string $rev
+   *   a version number, e.g. '4.4.alpha1', '4.4.beta3', '4.4.0'.
+   * @param null $currentVer
+   */
+  public function setPreUpgradeMessage(&$preUpgradeMessage, $rev, $currentVer = NULL) {
+    // Example: Generate a pre-upgrade message.
+    // if ($rev == '5.12.34') {
+    //   $preUpgradeMessage .= '<p>' . ts('A new permission, "%1", has been added. This permission is now used to control access to the Manage Tags screen.', array(1 => ts('manage tags'))) . '</p>';
+    // }
+    if ($rev == '5.23.alpha1' && version_compare($currentVer, '4.7', '>=')) {
+      if ($this->hasConfigBackendData()) {
+        $preUpgradeMessage .= '<br/>' . ts("WARNING: The column \"<code>civicrm_domain.config_backend</code>\" is <a href='%2'>flagged for removal</a>. However, the upgrader has detected data in this copy of \"<code>civicrm_domain.config_backend</code>\". Please <a href='%1' target='_blank'>report</a> anything you can about the usage of this column. In the mean-time, the data will be preserved.", [
+          1 => 'https://civicrm.org/bug-reporting',
+          2 => 'https://lab.civicrm.org/dev/core/issues/1387',
+        ]);
+      }
+    }
+  }
+
+  /**
+   * Compute any messages which should be displayed after upgrade.
+   *
+   * @param string $postUpgradeMessage
+   *   alterable.
+   * @param string $rev
+   *   an intermediate version; note that setPostUpgradeMessage is called repeatedly with different $revs.
+   */
+  public function setPostUpgradeMessage(&$postUpgradeMessage, $rev) {
+    // Example: Generate a post-upgrade message.
+    // if ($rev == '5.12.34') {
+    //   $postUpgradeMessage .= '<br /><br />' . ts("By default, CiviCRM now disables the ability to import directly from SQL. To use this feature, you must explicitly grant permission 'import SQL datasource'.");
+    // }
+  }
+
+  /*
+   * Important! All upgrade functions MUST add a 'runSql' task.
+   * Uncomment and use the following template for a new upgrade version
+   * (change the x in the function name):
+   */
+
+  //  /**
+  //   * Upgrade function.
+  //   *
+  //   * @param string $rev
+  //   */
+  //  public function upgrade_5_0_x($rev) {
+  //    $this->addTask(ts('Upgrade DB to %1: SQL', [1 => $rev]), 'runSql', $rev);
+  //    $this->addTask('Do the foo change', 'taskFoo', ...);
+  //    // Additional tasks here...
+  //    // Note: do not use ts() in the addTask description because it adds unnecessary strings to transifex.
+  //    // The above is an exception because 'Upgrade DB to %1: SQL' is generic & reusable.
+  //  }
+
+  /**
+   * Upgrade function.
+   *
+   * @param string $rev
+   */
+  public function upgrade_5_23_alpha1($rev) {
+    $this->addTask(ts('Upgrade DB to %1: SQL', [1 => $rev]), 'runSql', $rev);
+    $this->addTask('Remove Google + location option', 'removeGooglePlusOption');
+    $this->addTask('dev/mailing#59 Add in IMAP_XOAUTH2 protocol option for mailbox access', 'addXoauth2ProtocolOption');
+    $this->addTask('dev/translation#34 Fix contact-reference option for Postal Code', 'fixContactRefOptionPostalCode');
+
+    // (dev/core#1387) This column was dropped in 4.7.alpha1, but it was still created on new installs.
+    if (!$this->hasConfigBackendData()) {
+      $this->addTask('Drop column "civicrm_domain.config_backend"', 'dropColumn', 'civicrm_domain', 'config_backend');
+    }
+  }
+
+  /**
+   * Add in the IMAP XOAUTH2 mailing protocol option
+   */
+  public static function addXoauth2ProtocolOption(CRM_Queue_TaskContext $ctx) {
+    CRM_Core_BAO_OptionValue::ensureOptionValueExists([
+      'option_group_id' => 'mail_protocol',
+      'name' => 'IMAP_XOAUTH2',
+      'label' => 'IMAP XOAUTH2',
+      'is_active' => FALSE,
+    ]);
+    return TRUE;
+  }
+
+  /**
+   * Remove Google + option value option for website type
+   * only if there is no websites using it
+   */
+  public static function removeGooglePlusOption(CRM_Queue_TaskContext $ctx) {
+    $googlePlusValue = CRM_Core_PseudoConstant::getKey('CRM_Core_BAO_Website', 'website_type_id', 'Google_');
+    if ($googlePlusValue) {
+      $values = CRM_Core_DAO::executeQuery("SELECT * FROM civicrm_website WHERE website_type_id = %1", [1 => [$googlePlusValue, 'Positive']])->fetchAll();
+      if (empty($values)) {
+        $optionGroup = CRM_Core_DAO::singleValueQuery("SELECT id FROM civicrm_option_group WHERE name = 'website_type'");
+        \Civi\Api4\OptionValue::delete()
+          ->addWhere('value', '=', $googlePlusValue)
+          ->addWhere('option_group_id', '=', $optionGroup)
+          ->setCheckPermissions(FALSE)
+          ->execute();
+      }
+    }
+    return TRUE;
+  }
+
+  /**
+   * Fix the Contact Reference 'Postal Code' option.
+   */
+  public static function fixContactRefOptionPostalCode(CRM_Queue_TaskContext $ctx) {
+    $optionGroup = \Civi\Api4\OptionGroup::get()
+      ->setSelect(['id'])
+      ->addWhere('name', '=', 'contact_reference_options')
+      ->setCheckPermissions(FALSE)
+      ->execute()
+      ->first();
+
+    if (!$optionGroup) {
+      return TRUE;
+    }
+
+    $optionValue = \Civi\Api4\OptionValue::get()
+      ->setSelect(['id', 'name'])
+      ->addWhere('option_group_id', '=', $optionGroup['id'])
+      ->addWhere('label', '=', ts('Postal Code'))
+      ->setCheckPermissions(FALSE)
+      ->execute()
+      ->first();
+
+    if (!$optionValue || $optionValue['name'] == 'postal_code') {
+      return TRUE;
+    }
+
+    \Civi\Api4\OptionValue::update()
+      ->addWhere('id', '=', $optionValue['id'])
+      ->addValue('name', 'postal_code')
+      ->setCheckPermissions(FALSE)
+      ->execute();
+
+    return TRUE;
+  }
+
+  /**
+   * @return bool
+   */
+  private function hasConfigBackendData() {
+    return CRM_Core_BAO_SchemaHandler::checkIfFieldExists('civicrm_domain', 'config_backend')
+    && CRM_Core_DAO::singleValueQuery('SELECT count(*) c FROM `civicrm_domain` WHERE config_backend IS NOT NULL') > 0;
+  }
+
+}
diff --git a/civicrm/CRM/Upgrade/Incremental/php/FourSeven.php b/civicrm/CRM/Upgrade/Incremental/php/FourSeven.php
index eee123e7ce..30724c0508 100644
--- a/civicrm/CRM/Upgrade/Incremental/php/FourSeven.php
+++ b/civicrm/CRM/Upgrade/Incremental/php/FourSeven.php
@@ -455,9 +455,10 @@ class CRM_Upgrade_Incremental_php_FourSeven extends CRM_Upgrade_Incremental_Base
     $this->addTask(ts('Upgrade DB to %1: SQL', [1 => $rev]), 'runSql', $rev);
     $this->addTask('CRM-20572: Fix date fields in save search criteria of Contrib Sybunt custom search ', 'fixDateFieldsInSmartGroups');
     // CRM-20868 : Update invoice_numbers (in batch) with value in [invoice prefix][contribution id] format
-    if ($invoicePrefix = CRM_Contribute_BAO_Contribution::checkContributeSettings('invoice_prefix', TRUE)) {
+    $contributionSettings = Civi::settings()->get('contribution_invoice_settings');
+    if (!empty($contributionSettings['invoicing']) && !empty($contributionSettings['invoice_prefix'])) {
       list($minId, $maxId) = CRM_Core_DAO::executeQuery("SELECT coalesce(min(id),0), coalesce(max(id),0)
-        FROM civicrm_contribution ")->getDatabaseResult()->fetchRow();
+      FROM civicrm_contribution ")->getDatabaseResult()->fetchRow();
       for ($startId = $minId; $startId <= $maxId; $startId += self::BATCH_SIZE) {
         $endId = $startId + self::BATCH_SIZE - 1;
         $title = ts("Upgrade DB to %1: Update Contribution Invoice number (%2 => %3)", [
@@ -465,7 +466,7 @@ class CRM_Upgrade_Incremental_php_FourSeven extends CRM_Upgrade_Incremental_Base
           2 => $startId,
           3 => $endId,
         ]);
-        $this->addTask($title, 'updateContributionInvoiceNumber', $startId, $endId, $invoicePrefix);
+        $this->addTask($title, 'updateContributionInvoiceNumber', $startId, $endId, $contributionSettings['invoice_prefix']);
       }
     }
 
diff --git a/civicrm/CRM/Upgrade/Incremental/sql/4.3.4.mysql.tpl b/civicrm/CRM/Upgrade/Incremental/sql/4.3.4.mysql.tpl
index d564c44fb7..4da5c51ee8 100644
--- a/civicrm/CRM/Upgrade/Incremental/sql/4.3.4.mysql.tpl
+++ b/civicrm/CRM/Upgrade/Incremental/sql/4.3.4.mysql.tpl
@@ -9,8 +9,8 @@ VALUES
 SELECT @option_group_id_csgOpt := max(id) FROM civicrm_option_group WHERE name = 'contact_smart_group_display';
 
 INSERT INTO
-civicrm_option_value (option_group_id, {localize field='label'}label{/localize}, value, name, grouping, filter,
-is_default, weight)
+civicrm_option_value (`option_group_id`, {localize field='label'}label{/localize}, `value`, `name`, `grouping`, `filter`,
+`is_default`, `weight`)
 VALUES
 (@option_group_id_csgOpt, {localize}'Show Smart Groups on Demand'{/localize}, 1, 'showondemand', NULL, 0, 0, 1),
 (@option_group_id_csgOpt, {localize}'Always Show Smart Groups'{/localize}, 2, 'alwaysshow', NULL, 0, 0, 2),
diff --git a/civicrm/CRM/Upgrade/Incremental/sql/4.7.10.mysql.tpl b/civicrm/CRM/Upgrade/Incremental/sql/4.7.10.mysql.tpl
index 52e04cca5f..fb4220c755 100644
--- a/civicrm/CRM/Upgrade/Incremental/sql/4.7.10.mysql.tpl
+++ b/civicrm/CRM/Upgrade/Incremental/sql/4.7.10.mysql.tpl
@@ -3,7 +3,7 @@ SELECT @option_group_id_report := max(id) from civicrm_option_group where name =
 SELECT @contributeCompId := max(id) FROM civicrm_component where name = 'CiviContribute';
 SELECT @option_group_id_report_wt  := MAX(weight) FROM civicrm_option_value WHERE option_group_id = @option_group_id_report;
 INSERT INTO
-   civicrm_option_value (option_group_id, {localize field='label'}label{/localize}, value, name, grouping, filter, is_default, weight, {localize field='description'}description{/localize}, is_optgroup, is_reserved, is_active, component_id, visibility_id)
+   civicrm_option_value (`option_group_id`, {localize field='label'}label{/localize}, `value`, `name`, `grouping`, `filter`, `is_default`, `weight`, {localize field='description'}description{/localize}, `is_optgroup`, `is_reserved`, `is_active`, `component_id`, `visibility_id`)
 VALUES
    (@option_group_id_report, {localize}'{ts escape="sql"}Deferred Revenue Details{/ts}'{/localize}, 'contribute/deferredrevenue', 'CRM_Report_Form_Contribute_DeferredRevenue', NULL, 0, NULL, @option_group_id_report_wt+1, {localize}'{ts escape="sql"}Deferred Revenue Details Report{/ts}'{/localize}, 0, 0, 1, @contributeCompId, NULL);
 
diff --git a/civicrm/CRM/Upgrade/Incremental/sql/4.7.25.mysql.tpl b/civicrm/CRM/Upgrade/Incremental/sql/4.7.25.mysql.tpl
index 7bb3bcebaa..d6d7aba13b 100644
--- a/civicrm/CRM/Upgrade/Incremental/sql/4.7.25.mysql.tpl
+++ b/civicrm/CRM/Upgrade/Incremental/sql/4.7.25.mysql.tpl
@@ -8,7 +8,7 @@ INSERT INTO civicrm_option_group
   (name, {localize field='title'}title{/localize}, is_reserved, is_active) VALUES ('environment', {localize}'{ts escape="sql"}Environment{/ts}'{/localize}, 0, 1);
 
 SELECT @option_group_id_env := max(id) from civicrm_option_group where name = 'environment';
-INSERT INTO civicrm_option_value (option_group_id, {localize field='label'}label{/localize}, value, name, grouping, filter, is_default, weight, {localize field='description'}description{/localize}, is_optgroup, is_reserved, is_active, component_id, visibility_id)
+INSERT INTO civicrm_option_value (`option_group_id`, {localize field='label'}label{/localize}, `value`, `name`, `grouping`, `filter`, `is_default`, `weight`, {localize field='description'}description{/localize}, `is_optgroup`, `is_reserved`, `is_active`, `component_id`, `visibility_id`)
  VALUES
     (@option_group_id_env, {localize}'{ts escape="sql"}Production{/ts}'{/localize}, 'Production', 'Production', NULL, 0, 1, 1, {localize}'{ts escape="sql"}Production Environment{/ts}'{/localize}, 0, 0, 1, NULL, NULL),
     (@option_group_id_env, {localize}'{ts escape="sql"}Staging{/ts}'{/localize}, 'Staging', 'Staging', NULL, 0, NULL, 2, {localize}'{ts escape="sql"}Staging Environment{/ts}'{/localize}, 0, 0, 1, NULL, NULL),
diff --git a/civicrm/CRM/Upgrade/Incremental/sql/4.7.beta1.mysql.tpl b/civicrm/CRM/Upgrade/Incremental/sql/4.7.beta1.mysql.tpl
index 47843e9ecc..1f3d76106b 100644
--- a/civicrm/CRM/Upgrade/Incremental/sql/4.7.beta1.mysql.tpl
+++ b/civicrm/CRM/Upgrade/Incremental/sql/4.7.beta1.mysql.tpl
@@ -4,7 +4,7 @@
 SELECT @option_group_id_report := max(id) from civicrm_option_group where name = 'report_template';
 SELECT @contributeCompId := max(id) FROM civicrm_component where name = 'CiviContribute';
 INSERT INTO
-   civicrm_option_value (option_group_id, {localize field='label'}label{/localize}, value, name, grouping, filter, is_default, weight, {localize field='description'}description{/localize}, is_optgroup, is_reserved, is_active, component_id, visibility_id)
+   civicrm_option_value (`option_group_id`, {localize field='label'}label{/localize}, `value`, `name`, `grouping`, `filter`, `is_default`, `weight`, {localize field='description'}description{/localize}, `is_optgroup`, `is_reserved`, `is_active`, `component_id`, `visibility_id`)
 VALUES
    (@option_group_id_report, {localize}'{ts escape="sql"}Recurring Contributions Summary{/ts}'{/localize}, 'contribute/recursummary', 'CRM_Report_Form_Contribute_RecurSummary',               NULL, 0, NULL, 49, {localize}'{ts escape="sql"}Provides simple summary for each payment instrument for which there are recurring contributions (e.g. Credit Card, Standing Order, Direct Debit etc.), showing within a given date range.{/ts}'{/localize}, 0, 0, 1, @contributeCompId, NULL);
 
diff --git a/civicrm/CRM/Upgrade/Incremental/sql/5.22.0.mysql.tpl b/civicrm/CRM/Upgrade/Incremental/sql/5.22.0.mysql.tpl
deleted file mode 100644
index 2326708b08..0000000000
--- a/civicrm/CRM/Upgrade/Incremental/sql/5.22.0.mysql.tpl
+++ /dev/null
@@ -1 +0,0 @@
-{* file to handle db changes in 5.22.0 during upgrade *}
diff --git a/civicrm/CRM/Upgrade/Incremental/sql/5.22.1.mysql.tpl b/civicrm/CRM/Upgrade/Incremental/sql/5.22.1.mysql.tpl
deleted file mode 100644
index 4ef6a0d710..0000000000
--- a/civicrm/CRM/Upgrade/Incremental/sql/5.22.1.mysql.tpl
+++ /dev/null
@@ -1 +0,0 @@
-{* file to handle db changes in 5.22.1 during upgrade *}
diff --git a/civicrm/CRM/Upgrade/Incremental/sql/5.23.0.mysql.tpl b/civicrm/CRM/Upgrade/Incremental/sql/5.23.0.mysql.tpl
new file mode 100644
index 0000000000..03483bee69
--- /dev/null
+++ b/civicrm/CRM/Upgrade/Incremental/sql/5.23.0.mysql.tpl
@@ -0,0 +1 @@
+{* file to handle db changes in 5.23.0 during upgrade *}
diff --git a/civicrm/CRM/Upgrade/Incremental/sql/5.23.alpha1.mysql.tpl b/civicrm/CRM/Upgrade/Incremental/sql/5.23.alpha1.mysql.tpl
new file mode 100644
index 0000000000..54cb0a3871
--- /dev/null
+++ b/civicrm/CRM/Upgrade/Incremental/sql/5.23.alpha1.mysql.tpl
@@ -0,0 +1,11 @@
+{* file to handle db changes in 5.23.alpha1 during upgrade *}
+UPDATE civicrm_payment_processor SET is_default = 0 WHERE is_default IS NULL;
+UPDATE civicrm_payment_processor SET is_active = 1 WHERE is_active IS NULL;
+UPDATE civicrm_payment_processor SET is_test = 0 WHERE is_test IS NULL;
+UPDATE civicrm_payment_processor_type SET is_active = 1 WHERE is_active IS NULL;
+UPDATE civicrm_payment_processor_type SET is_default = 0 WHERE is_default IS NULL;
+ALTER TABLE civicrm_payment_processor ALTER COLUMN is_default SET DEFAULT 0;
+ALTER TABLE civicrm_payment_processor ALTER COLUMN is_active SET DEFAULT 1;
+ALTER TABLE civicrm_payment_processor ALTER COLUMN is_test SET DEFAULT 0;
+ALTER TABLE civicrm_payment_processor_type ALTER COLUMN is_active SET DEFAULT 1;
+ALTER TABLE civicrm_payment_processor_type ALTER COLUMN is_default SET DEFAULT 0;
diff --git a/civicrm/CRM/Upgrade/Incremental/sql/5.23.beta1.mysql.tpl b/civicrm/CRM/Upgrade/Incremental/sql/5.23.beta1.mysql.tpl
new file mode 100644
index 0000000000..c31449ad8c
--- /dev/null
+++ b/civicrm/CRM/Upgrade/Incremental/sql/5.23.beta1.mysql.tpl
@@ -0,0 +1 @@
+{* file to handle db changes in 5.23.beta1 during upgrade *}
diff --git a/civicrm/CRM/Utils/API/HTMLInputCoder.php b/civicrm/CRM/Utils/API/HTMLInputCoder.php
index adf528920c..fa5de2b964 100644
--- a/civicrm/CRM/Utils/API/HTMLInputCoder.php
+++ b/civicrm/CRM/Utils/API/HTMLInputCoder.php
@@ -105,6 +105,10 @@ class CRM_Utils_API_HTMLInputCoder extends CRM_Utils_API_AbstractFieldCoder {
         'content',
         // CiviCampaign Goal Details
         'goal_general',
+        // https://lab.civicrm.org/dev/core/issues/1286
+        'header',
+        // https://lab.civicrm.org/dev/core/issues/1286
+        'footer',
       ];
       $custom = CRM_Core_DAO::executeQuery('SELECT id FROM civicrm_custom_field WHERE html_type = "RichTextEditor"');
       while ($custom->fetch()) {
diff --git a/civicrm/CRM/Utils/Check/Component/Schema.php b/civicrm/CRM/Utils/Check/Component/Schema.php
index 8486a18bc8..5de044b1b7 100644
--- a/civicrm/CRM/Utils/Check/Component/Schema.php
+++ b/civicrm/CRM/Utils/Check/Component/Schema.php
@@ -88,4 +88,80 @@ class CRM_Utils_Check_Component_Schema extends CRM_Utils_Check_Component {
     return $messages;
   }
 
+  /**
+   * @return array
+   */
+  public function checkSmartGroupCustomFieldCriteria() {
+    $messages = $problematicSG = [];
+    $customFieldIds = array_keys(CRM_Core_BAO_CustomField::getFields('ANY', FALSE, FALSE, NULL, NULL, FALSE, FALSE, FALSE));
+    $smartGroups = civicrm_api3('SavedSearch', 'get', [
+      'sequential' => 1,
+      'options' => ['limit' => 0],
+    ]);
+    if (empty($smartGroups['values'])) {
+      return $messages;
+    }
+    foreach ($smartGroups['values'] as $group) {
+      if (empty($group['form_values'])) {
+        continue;
+      }
+      foreach ($group['form_values'] as $formValues) {
+        if (substr($formValues[0], 0, 7) == 'custom_') {
+          list(, $customFieldID) = explode('custom_', $formValues[0]);
+          if (!in_array($customFieldID, $customFieldIds)) {
+            $problematicSG[CRM_Contact_BAO_SavedSearch::getName($group['id'], 'id')] = [
+              'title' => CRM_Contact_BAO_SavedSearch::getName($group['id'], 'title'),
+              'cfid' => $customFieldID,
+              'ssid' => $group['id'],
+            ];
+          }
+        }
+      }
+    }
+
+    if (!empty($problematicSG)) {
+      $html = '';
+      foreach ($problematicSG as $id => $field) {
+        if (!empty($field['cfid'])) {
+          try {
+            $customField = civicrm_api3('CustomField', 'getsingle', [
+              'sequential' => 1,
+              'id' => $field['cfid'],
+            ]);
+            $fieldName = ts('<a href="%1" title="Edit Custom Field"> %2 </a>', [
+              1 => CRM_Utils_System::url('civicrm/admin/custom/group/field/update',
+                "action=update&reset=1&gid={$customField['custom_group_id']}&id={$field['cfid']}", TRUE
+              ),
+              2 => $customField['label'],
+            ]);
+          }
+          catch (Exception $e) {
+            $fieldName = ' <span style="color:red"> - Deleted - </span> ';
+          }
+        }
+        $groupEdit = '<a href="' . CRM_Utils_System::url('civicrm/contact/search/advanced', "?reset=1&ssID={$field['ssid']}", TRUE) . '" title="' . ts('Edit search criteria') . '"> <i class="crm-i fa-pencil"></i> </a>';
+        $groupConfig = '<a href="' . CRM_Utils_System::url('civicrm/group', "?reset=1&action=update&id={$id}", TRUE) . '" title="' . ts('Group settings') . '"> <i class="crm-i fa-gear"></i> </a>';
+        $html .= "<tr><td>{$id} - {$field['title']} </td><td>{$groupEdit} {$groupConfig}</td><td class='disabled'>{$fieldName}</td>";
+      }
+
+      $message = "<p>The following smart groups include custom fields which are disabled/deleted from the database. This may cause errors on group page.
+        You might need to edit their search criteria and update them to clean outdated fields from saved search OR disable them in order to fix the error.</p>
+        <p><table><thead><tr><th>Group</th><th></th><th>Custom Field</th>
+        </tr></thead><tbody>
+        $html
+        </tbody></table></p>
+       ";
+
+      $msg = new CRM_Utils_Check_Message(
+        __FUNCTION__,
+        ts($message),
+        ts('Disabled/Deleted fields on Smart Groups'),
+        \Psr\Log\LogLevel::WARNING,
+        'fa-server'
+      );
+      $messages[] = $msg;
+    }
+    return $messages;
+  }
+
 }
diff --git a/civicrm/CRM/Utils/Date.php b/civicrm/CRM/Utils/Date.php
index 7b57e520dd..5accb77e7a 100644
--- a/civicrm/CRM/Utils/Date.php
+++ b/civicrm/CRM/Utils/Date.php
@@ -2033,19 +2033,6 @@ class CRM_Utils_Date {
       }
     }
 
-    // now we set display date using js, hence we should always setdefault
-    // 'm/d/Y' format. So that submitted value is alwats mm/dd/YY format
-    // note that for date display we dynamically create text field
-    /*
-    if ( !$format ) {
-    $format = $config->dateInputFormat;
-    }
-
-    // get actual format
-    $actualPHPFormats = CRM_Core_SelectValues::datePluginToPHPFormats( );
-    $dateFormat       = CRM_Utils_Array::value( $format, $actualPHPFormats );
-     */
-
     $dateFormat = 'm/d/Y';
     $date = date($dateFormat, strtotime($mysqlDate));
 
diff --git a/civicrm/CRM/Utils/Money.php b/civicrm/CRM/Utils/Money.php
index a523fed925..0e8cd6d76c 100644
--- a/civicrm/CRM/Utils/Money.php
+++ b/civicrm/CRM/Utils/Money.php
@@ -122,6 +122,10 @@ class CRM_Utils_Money {
   /**
    * Subtract currencies using integers instead of floats, to preserve precision
    *
+   * @param string|float $leftOp
+   * @param string|float $rightOp
+   * @param string $currency
+   *
    * @return float
    *   Result of subtracting $rightOp from $leftOp to the precision of $currency
    */
diff --git a/civicrm/CRM/Utils/Rule.php b/civicrm/CRM/Utils/Rule.php
index bb8be3aa21..e7f890b3ef 100644
--- a/civicrm/CRM/Utils/Rule.php
+++ b/civicrm/CRM/Utils/Rule.php
@@ -596,19 +596,6 @@ class CRM_Utils_Rule {
    * @return bool
    */
   public static function money($value) {
-    $config = CRM_Core_Config::singleton();
-
-    // only edge case when we have a decimal point in the input money
-    // field and not defined in the decimal Point in config settings
-    if ($config->monetaryDecimalPoint &&
-      $config->monetaryDecimalPoint != '.' &&
-      // CRM-7122 also check for Thousands Separator in config settings
-      $config->monetaryThousandSeparator != '.' &&
-      substr_count($value, '.')
-    ) {
-      return FALSE;
-    }
-
     $value = self::cleanMoney($value);
 
     if (self::integer($value)) {
diff --git a/civicrm/CRM/Utils/SQL/TempTable.php b/civicrm/CRM/Utils/SQL/TempTable.php
index 0681978495..f8c4e82d56 100644
--- a/civicrm/CRM/Utils/SQL/TempTable.php
+++ b/civicrm/CRM/Utils/SQL/TempTable.php
@@ -125,7 +125,7 @@ class CRM_Utils_SQL_TempTable {
     $sql = sprintf('%s %s %s AS %s',
       $this->toSQL('CREATE'),
       $this->memory ? self::MEMORY : self::INNODB,
-      $this->utf8 ? self::UTF8 : '',
+      $this->getUtf8String(),
       ($selectQuery instanceof CRM_Utils_SQL_Select ? $selectQuery->toSQL() : $selectQuery)
     );
     CRM_Core_DAO::executeQuery($sql, [], TRUE, NULL, TRUE, FALSE);
@@ -133,6 +133,29 @@ class CRM_Utils_SQL_TempTable {
     return $this;
   }
 
+  /**
+   * Get the utf8 string for the table.
+   *
+   * If the db collation is already utf8 by default (either
+   * utf8 or utf84mb) then rely on that. Otherwise set to utf8.
+   *
+   * Respecting the DB collation supports utf8mb4 adopters, which is currently
+   * not the norm in civi installs.
+   *
+   * @return string
+   */
+  public function getUtf8String() {
+    if (!$this->utf8) {
+      return '';
+    }
+    $dbUTF = CRM_Core_BAO_SchemaHandler::getDBCollation();
+    if (in_array($dbUTF, ['utf8_unicode_ci', 'utf8mb4_unicode_ci'])
+      && in_array($dbUTF, ['utf8', 'utf8mb4'])) {
+      return '';
+    }
+    return self::UTF8;
+  }
+
   /**
    * Create the empty table.
    *
diff --git a/civicrm/CRM/Utils/String.php b/civicrm/CRM/Utils/String.php
index 95eda6658d..1c878580af 100644
--- a/civicrm/CRM/Utils/String.php
+++ b/civicrm/CRM/Utils/String.php
@@ -433,7 +433,7 @@ class CRM_Utils_String {
    *   the converted string
    */
   public static function htmlToText($html) {
-    require_once 'packages/html2text/rcube_html2text.php';
+    require_once 'html2text/rcube_html2text.php';
     $token_html = preg_replace('!\{([a-z_.]+)\}!i', 'token:{$1}', $html);
     $converter = new rcube_html2text($token_html);
     $token_text = $converter->get_text();
@@ -952,4 +952,23 @@ class CRM_Utils_String {
     }
   }
 
+  /**
+   * Returns the plural form of an English word.
+   *
+   * @param string $str
+   * @return string
+   */
+  public static function pluralize($str) {
+    switch (substr($str, -1)) {
+      case 's':
+        return $str . 'es';
+
+      case 'y':
+        return substr($str, 0, -1) . 'ies';
+
+      default:
+        return $str . 's';
+    }
+  }
+
 }
diff --git a/civicrm/CRM/Utils/System.php b/civicrm/CRM/Utils/System.php
index 21cfda96a1..29b043f156 100644
--- a/civicrm/CRM/Utils/System.php
+++ b/civicrm/CRM/Utils/System.php
@@ -284,6 +284,43 @@ class CRM_Utils_System {
     return $url;
   }
 
+  /**
+   * Generates an extern url.
+   *
+   * @param string $path
+   *   The extern path, such as "extern/url".
+   * @param string $query
+   *   A query string to append to the link.
+   * @param string $fragment
+   *   A fragment identifier (named anchor) to append to the link.
+   * @param bool $absolute
+   *   Whether to force the output to be an absolute link (beginning with a
+   *   URI-scheme such as 'http:').
+   * @param bool $isSSL
+   *   NULL to autodetect. TRUE to force to SSL.
+   *
+   * @return string rawencoded URL.
+   */
+  public static function externUrl($path = NULL, $query = NULL, $fragment = NULL, $absolute = TRUE, $isSSL = NULL) {
+    $query = self::makeQueryString($query);
+
+    $url = Civi::paths()->getUrl("[civicrm.root]/{$path}.php", $absolute ? 'absolute' : 'relative', $isSSL)
+      . ($query ? "?$query" : "")
+      . ($fragment ? "#$fragment" : "");
+
+    $parsedUrl = CRM_Utils_Url::parseUrl($url);
+    $event = \Civi\Core\Event\GenericHookEvent::create([
+      'url' => &$parsedUrl,
+      'path' => $path,
+      'query' => $query,
+      'fragment' => $fragment,
+      'absolute' => $absolute,
+      'isSSL' => $isSSL,
+    ]);
+    Civi::service('dispatcher')->dispatch('hook_civicrm_alterExternUrl', $event);
+    return urldecode(CRM_Utils_Url::unparseUrl($event->url));
+  }
+
   /**
    * Path of the current page e.g. 'civicrm/contact/view'
    *
@@ -1443,6 +1480,9 @@ class CRM_Utils_System {
     // reset ACL cache
     CRM_ACL_BAO_Cache::resetCache();
 
+    // clear asset builder folder
+    \Civi::service('asset_builder')->clear(FALSE);
+
     // reset various static arrays used here
     CRM_Contact_BAO_Contact::$_importableFields = CRM_Contact_BAO_Contact::$_exportableFields
       = CRM_Contribute_BAO_Contribution::$_importableFields
@@ -1746,13 +1786,14 @@ class CRM_Utils_System {
     }
     else {
       $config = CRM_Core_Config::singleton();
+      $tsLocale = CRM_Core_I18n::getLocale();
       $vars = [
         '{ver}' => CRM_Utils_System::version(),
         '{uf}' => $config->userFramework,
         '{php}' => phpversion(),
         '{sid}' => self::getSiteID(),
         '{baseUrl}' => $config->userFrameworkBaseURL,
-        '{lang}' => $config->lcMessages,
+        '{lang}' => $tsLocale,
         '{co}' => $config->defaultContactCountry,
       ];
       return strtr($url, array_map('urlencode', $vars));
diff --git a/civicrm/CRM/Utils/System/Base.php b/civicrm/CRM/Utils/System/Base.php
index 8f16278794..c49b8afba2 100644
--- a/civicrm/CRM/Utils/System/Base.php
+++ b/civicrm/CRM/Utils/System/Base.php
@@ -974,4 +974,20 @@ abstract class CRM_Utils_System_Base {
     CRM_Utils_System::civiExit();
   }
 
+  /**
+   * Start a new session.
+   */
+  public function sessionStart() {
+    session_start();
+  }
+
+  /**
+   * Get role names
+   *
+   * @return array|null
+   */
+  public function getRoleNames() {
+    return NULL;
+  }
+
 }
diff --git a/civicrm/CRM/Utils/System/Drupal8.php b/civicrm/CRM/Utils/System/Drupal8.php
index 68a91361e3..a548406ddf 100644
--- a/civicrm/CRM/Utils/System/Drupal8.php
+++ b/civicrm/CRM/Utils/System/Drupal8.php
@@ -761,7 +761,7 @@ class CRM_Utils_System_Drupal8 extends CRM_Utils_System_DrupalBase {
             if ($addLanguagePart && !empty($config['prefixes'][$language])) {
               $url .= $config['prefixes'][$language] . '/';
             }
-            if ($removeLanguagePart) {
+            if ($removeLanguagePart && !empty($config['prefixes'][$language])) {
               $url = str_replace("/" . $config['prefixes'][$language] . "/", '/', $url);
             }
           }
@@ -794,4 +794,13 @@ class CRM_Utils_System_Drupal8 extends CRM_Utils_System_DrupalBase {
     return $url;
   }
 
+  /**
+   * Get role names
+   *
+   * @return array|null
+   */
+  public function getRoleNames() {
+    return user_role_names();
+  }
+
 }
diff --git a/civicrm/CRM/Utils/System/DrupalBase.php b/civicrm/CRM/Utils/System/DrupalBase.php
index 5521bd4efd..380a9f07d9 100644
--- a/civicrm/CRM/Utils/System/DrupalBase.php
+++ b/civicrm/CRM/Utils/System/DrupalBase.php
@@ -13,8 +13,6 @@
  *
  * @package CRM
  * @copyright CiviCRM LLC https://civicrm.org/licensing
- * $Id$
- *
  */
 
 /**
@@ -667,4 +665,29 @@ abstract class CRM_Utils_System_DrupalBase extends CRM_Utils_System_Base {
     return FALSE;
   }
 
+  /**
+   * Start a new session.
+   */
+  public function sessionStart() {
+    if (function_exists('drupal_session_start')) {
+      // https://issues.civicrm.org/jira/browse/CRM-14356
+      if (!(isset($GLOBALS['lazy_session']) && $GLOBALS['lazy_session'] == TRUE)) {
+        drupal_session_start();
+      }
+      $_SESSION = [];
+    }
+    else {
+      session_start();
+    }
+  }
+
+  /**
+   * Get role names
+   *
+   * @return array|null
+   */
+  public function getRoleNames() {
+    return array_combine(user_roles(), user_roles());
+  }
+
 }
diff --git a/civicrm/CRM/Utils/System/WordPress.php b/civicrm/CRM/Utils/System/WordPress.php
index f83c1f3c7b..d1cbaec087 100644
--- a/civicrm/CRM/Utils/System/WordPress.php
+++ b/civicrm/CRM/Utils/System/WordPress.php
@@ -417,8 +417,11 @@ class CRM_Utils_System_WordPress extends CRM_Utils_System_Base {
     elseif (defined('ICL_LANGUAGE_CODE')) {
       $language = ICL_LANGUAGE_CODE;
     }
-
-    // TODO: set language variable for others WordPress plugin
+    // Wordpress "standard" single language mode
+    // We still have to check if the function exists as it may not during bootstrap
+    elseif (function_exists('get_locale')) {
+      $language = get_locale();
+    }
 
     if (!empty($language)) {
       return CRM_Core_I18n_PseudoConstant::longForShort(substr($language, 0, 2));
@@ -835,13 +838,11 @@ class CRM_Utils_System_WordPress extends CRM_Utils_System_Base {
     $contactCreated = 0;
     $contactMatching = 0;
 
-    // previously used $wpdb - which means WordPress *must* be bootstrapped
-    $wpUsers = get_users(array(
-      'blog_id' => get_current_blog_id(),
-      'number' => -1,
-    ));
+    global $wpdb;
+    $wpUserIds = $wpdb->get_col("SELECT $wpdb->users.ID FROM $wpdb->users");
 
-    foreach ($wpUsers as $wpUserData) {
+    foreach ($wpUserIds as $wpUserId) {
+      $wpUserData = get_userdata($wpUserId);
       $contactCount++;
       if ($match = CRM_Core_BAO_UFMatch::synchronizeUFMatch($wpUserData,
         $wpUserData->$id,
diff --git a/civicrm/CRM/Utils/Token.php b/civicrm/CRM/Utils/Token.php
index 4f87292299..156f87a279 100644
--- a/civicrm/CRM/Utils/Token.php
+++ b/civicrm/CRM/Utils/Token.php
@@ -35,6 +35,7 @@ class CRM_Utils_Token {
     ],
     'mailing' => [
       'id',
+      'key',
       'name',
       'group',
       'subject',
@@ -450,6 +451,14 @@ class CRM_Utils_Token {
         $value = $mailing ? $mailing->id : 'undefined';
         break;
 
+      // Key is the ID, or the hash when the hash URLs setting is enabled
+      case 'key':
+        $value = $mailing->id;
+        if ($hash = CRM_Mailing_BAO_Mailing::getMailingHash($value)) {
+          $value = $hash;
+        }
+        break;
+
       case 'name':
         $value = $mailing ? $mailing->name : 'Mailing Name';
         break;
@@ -1603,7 +1612,7 @@ class CRM_Utils_Token {
 
   /**
    * @param int $caseId
-   * @param int $str
+   * @param string $str
    * @param array $knownTokens
    * @param bool $escapeSmarty
    * @return string
@@ -1875,7 +1884,7 @@ class CRM_Utils_Token {
       else {
         $split = explode('.', trim($k, '{}'));
         if (isset($split[1])) {
-          $entity = array_key_exists($split[1], CRM_Core_DAO_Address::export()) ? 'Address' : ucfirst($split[0]);
+          $entity = array_key_exists($split[1], CRM_Core_DAO_Address::export()) ? 'Address' : ucwords(str_replace('_', ' ', $split[0]));
         }
         else {
           $entity = 'Contact';
diff --git a/civicrm/CRM/Utils/XML.php b/civicrm/CRM/Utils/XML.php
index 278ca494c3..47619c1c6a 100644
--- a/civicrm/CRM/Utils/XML.php
+++ b/civicrm/CRM/Utils/XML.php
@@ -36,9 +36,10 @@ class CRM_Utils_XML {
       $oldLibXMLErrors = libxml_use_internal_errors();
       libxml_use_internal_errors(TRUE);
 
-      $xml = simplexml_load_file($file,
-        'SimpleXMLElement', LIBXML_NOCDATA
-      );
+      // Note that under obscure circumstances calling simplexml_load_file
+      // hit https://bugs.php.net/bug.php?id=62577
+      $string = file_get_contents($file);
+      $xml = simplexml_load_string($string, 'SimpleXMLElement', LIBXML_NOCDATA);
       if ($xml === FALSE) {
         $error = self::formatErrors(libxml_get_errors());
       }
diff --git a/civicrm/Civi/API/Kernel.php b/civicrm/Civi/API/Kernel.php
index c23658b952..9aaa03a274 100644
--- a/civicrm/Civi/API/Kernel.php
+++ b/civicrm/Civi/API/Kernel.php
@@ -132,12 +132,12 @@ class Kernel {
   }
 
   /**
-   * Execute an API request.
+   * Execute an API v3 or v4 request.
    *
    * The request must be in canonical format. Exceptions will be propagated out.
    *
-   * @param array $apiRequest
-   * @return array
+   * @param array|\Civi\Api4\Generic\AbstractAction $apiRequest
+   * @return array|\Civi\Api4\Generic\Result
    * @throws \API_Exception
    * @throws \Civi\API\Exception\NotImplementedException
    * @throws \Civi\API\Exception\UnauthorizedException
@@ -157,17 +157,16 @@ class Kernel {
   /**
    * Bootstrap - Load basic dependencies and sanity-check inputs.
    *
-   * @param \Civi\API\V4\Action|array $apiRequest
+   * @param \Civi\Api4\Generic\AbstractAction|array $apiRequest
    * @throws \API_Exception
    */
   public function boot($apiRequest) {
     require_once 'api/Exception.php';
-
-    if (!is_array($apiRequest['params'])) {
-      throw new \API_Exception('Input variable `params` is not an array', 2000);
-    }
     switch ($apiRequest['version']) {
       case 3:
+        if (!is_array($apiRequest['params'])) {
+          throw new \API_Exception('Input variable `params` is not an array', 2000);
+        }
         require_once 'api/v3/utils.php';
         _civicrm_api3_initialize();
         break;
diff --git a/civicrm/Civi/API/Subscriber/XDebugSubscriber.php b/civicrm/Civi/API/Subscriber/XDebugSubscriber.php
index 4b2f6d9a24..aec0c1259e 100644
--- a/civicrm/Civi/API/Subscriber/XDebugSubscriber.php
+++ b/civicrm/Civi/API/Subscriber/XDebugSubscriber.php
@@ -36,14 +36,26 @@ class XDebugSubscriber implements EventSubscriberInterface {
   public function onApiRespond(\Civi\API\Event\RespondEvent $event) {
     $apiRequest = $event->getApiRequest();
     $result = $event->getResponse();
-    if (function_exists('xdebug_time_index')
-      && \CRM_Utils_Array::value('debug', $apiRequest['params'])
-      // result would not be an array for getvalue
-      && is_array($result)
+    if (
+      function_exists('xdebug_time_index')
+      && !empty($apiRequest['params']['debug'])
+      && (empty($apiRequest['params']['check_permissions']) || \CRM_Core_Permission::check('view debug output'))
     ) {
-      $result['xdebug']['peakMemory'] = xdebug_peak_memory_usage();
-      $result['xdebug']['memory'] = xdebug_memory_usage();
-      $result['xdebug']['timeIndex'] = xdebug_time_index();
+      if (is_a($result, '\Civi\Api4\Generic\Result')) {
+        $result->debug = $result->debug ?? [];
+        $debug =& $result->debug;
+      }
+      // result would not be an array for api3 getvalue
+      elseif (is_array($result)) {
+        $result['xdebug'] = $result['xdebug'] ?? [];
+        $debug =& $result['xdebug'];
+      }
+      else {
+        return;
+      }
+      $debug['peakMemory'] = xdebug_peak_memory_usage();
+      $debug['memory'] = xdebug_memory_usage();
+      $debug['timeIndex'] = xdebug_time_index();
       $event->setResponse($result);
     }
   }
diff --git a/civicrm/Civi/ActionSchedule/RecipientBuilder.php b/civicrm/Civi/ActionSchedule/RecipientBuilder.php
index cb267eac2d..a54bca3b83 100644
--- a/civicrm/Civi/ActionSchedule/RecipientBuilder.php
+++ b/civicrm/Civi/ActionSchedule/RecipientBuilder.php
@@ -138,7 +138,7 @@ class RecipientBuilder {
   public function build() {
     $this->buildRelFirstPass();
 
-    if ($this->prepareAddlFilter('c.id')) {
+    if ($this->prepareAddlFilter('c.id') && $this->notTemplate()) {
       $this->buildAddlFirstPass();
     }
 
@@ -603,4 +603,25 @@ reminder.action_schedule_id = {$this->actionSchedule->id}";
     return $this->mapping->resetOnTriggerDateChange($this->actionSchedule);
   }
 
+  /**
+   * Confirm this object isn't attached to a template.
+   * Returns TRUE if this action schedule isn't attached to a template.
+   * Templates are (currently) unique to events, so we only evaluate those.
+   *
+   * @return bool;
+   */
+  private function notTemplate() {
+    if ($this->mapping->getEntity() === 'civicrm_participant') {
+      $entityId = $this->actionSchedule->entity_value;
+      $query = new \CRM_Utils_SQL_Select('civicrm_event e');
+      $sql = $query
+        ->select('is_template')
+        ->where("e.id = {$entityId}")
+        ->toSQL();
+      $dao = \CRM_Core_DAO::executeQuery($sql);
+      return !(bool) $dao->fetchValue();
+    }
+    return TRUE;
+  }
+
 }
diff --git a/civicrm/Civi/Angular/Manager.php b/civicrm/Civi/Angular/Manager.php
index e5f169a385..4b21537d3f 100644
--- a/civicrm/Civi/Angular/Manager.php
+++ b/civicrm/Civi/Angular/Manager.php
@@ -98,6 +98,7 @@ class Manager {
       $angularModules['ui.sortable'] = include "$civicrm_root/ang/ui.sortable.ang.php";
       $angularModules['unsavedChanges'] = include "$civicrm_root/ang/unsavedChanges.ang.php";
       $angularModules['statuspage'] = include "$civicrm_root/ang/crmStatusPage.ang.php";
+      $angularModules['exportui'] = include "$civicrm_root/ang/exportui.ang.php";
       $angularModules['api4Explorer'] = include "$civicrm_root/ang/api4Explorer.ang.php";
       $angularModules['api4'] = include "$civicrm_root/ang/api4.ang.php";
 
diff --git a/civicrm/Civi/Api4/ACL.php b/civicrm/Civi/Api4/ACL.php
index 7e037a5b38..8501391d8e 100644
--- a/civicrm/Civi/Api4/ACL.php
+++ b/civicrm/Civi/Api4/ACL.php
@@ -22,15 +22,17 @@
 namespace Civi\Api4;
 
 /**
- * ACL Entity.
+ * ACL (Access Control List).
  *
- * This entity holds the ACL informatiom. With this entity you add/update/delete an ACL permission which consists of
- * an Operation (e.g. 'View' or 'Edit'), a set of Data that the operation can be performed on (e.g. a group of contacts),
- * and a Role that has permission to do this operation. For more info refer to
- * https://docs.civicrm.org/user/en/latest/initial-set-up/permissions-and-access-control for more info.
+ * An ACL record consists of:
  *
- * Creating a new ACL requires at minimum a entity table, entity ID and object_table
+ *   1. An Operation (e.g. 'View' or 'Edit').
+ *   2. A set of Data that the operation can be performed on (e.g. a group of contacts).
+ *   3. A Role that has permission to do this operation.
  *
+ * Creating a new ACL requires at minimum an entity table, entity ID and object_table.
+ *
+ * @see https://docs.civicrm.org/user/en/latest/initial-set-up/permissions-and-access-control
  * @package Civi\Api4
  */
 class ACL extends Generic\DAOEntity {
diff --git a/civicrm/Civi/Api4/Action/Contact/GetFields.php b/civicrm/Civi/Api4/Action/Contact/GetFields.php
index 041b91d291..da6fc33409 100644
--- a/civicrm/Civi/Api4/Action/Contact/GetFields.php
+++ b/civicrm/Civi/Api4/Action/Contact/GetFields.php
@@ -22,6 +22,9 @@ namespace Civi\Api4\Action\Contact;
 
 use Civi\Api4\Generic\DAOGetFieldsAction;
 
+/**
+ * @inheritDoc
+ */
 class GetFields extends DAOGetFieldsAction {
 
   protected function getRecords() {
diff --git a/civicrm/Civi/Api4/Action/Entity/Get.php b/civicrm/Civi/Api4/Action/Entity/Get.php
index 457e11f67f..2b42ea2375 100644
--- a/civicrm/Civi/Api4/Action/Entity/Get.php
+++ b/civicrm/Civi/Api4/Action/Entity/Get.php
@@ -25,7 +25,11 @@ use Civi\Api4\CustomGroup;
 use Civi\Api4\Utils\ReflectionUtils;
 
 /**
- * Get entities
+ * Get the names & docblocks of all APIv4 entities.
+ *
+ * Scans for api entities in core + enabled extensions.
+ *
+ * Also includes pseudo-entities from multi-record custom groups by default.
  *
  * @method $this setIncludeCustom(bool $value)
  * @method bool getIncludeCustom()
@@ -44,6 +48,8 @@ class Get extends \Civi\Api4\Generic\BasicGetAction {
    */
   protected function getRecords() {
     $entities = [];
+    $toGet = $this->_itemsToGet('name');
+    $getDocs = $this->_isFieldSelected('description', 'comment', 'see');
     $locations = array_merge([\Civi::paths()->getPath('[civicrm.root]/Civi.php')],
       array_column(\CRM_Extension_System::singleton()->getMapper()->getActiveModuleFiles(), 'filePath')
     );
@@ -53,17 +59,22 @@ class Get extends \Civi\Api4\Generic\BasicGetAction {
         foreach (glob("$dir/*.php") as $file) {
           $matches = [];
           preg_match('/(\w*).php/', $file, $matches);
-          $entity = ['name' => $matches[1]];
-          if ($this->_isFieldSelected('description') || $this->_isFieldSelected('comment')) {
-            $this->addDocs($entity);
+          if (
+            (!$toGet || in_array($matches[1], $toGet))
+            && is_a('\Civi\Api4\\' . $matches[1], '\Civi\Api4\Generic\AbstractEntity', TRUE)
+          ) {
+            $entity = ['name' => $matches[1]];
+            if ($getDocs) {
+              $this->addDocs($entity);
+            }
+            $entities[$matches[1]] = $entity;
           }
-          $entities[$matches[1]] = $entity;
         }
       }
     }
-    unset($entities['CustomValue']);
 
-    if ($this->includeCustom) {
+    // Fetch custom entities unless we've already fetched everything requested
+    if ($this->includeCustom && (!$toGet || array_diff($toGet, array_keys($entities)))) {
       $this->addCustomEntities($entities);
     }
 
@@ -89,6 +100,10 @@ class Get extends \Civi\Api4\Generic\BasicGetAction {
       $entities[$fieldName] = [
         'name' => $fieldName,
         'description' => $customEntity['title'] . ' custom group - extends ' . $customEntity['extends'],
+        'see' => [
+          'https://docs.civicrm.org/user/en/latest/organising-your-data/creating-custom-fields/#multiple-record-fieldsets',
+          '\\Civi\\Api4\\CustomGroup',
+        ],
       ];
       if (!empty($customEntity['help_pre'])) {
         $entities[$fieldName]['comment'] = $this->plainTextify($customEntity['help_pre']);
@@ -117,7 +132,7 @@ class Get extends \Civi\Api4\Generic\BasicGetAction {
    */
   private function addDocs(&$entity) {
     $reflection = new \ReflectionClass("\\Civi\\Api4\\" . $entity['name']);
-    $entity += ReflectionUtils::getCodeDocs($reflection);
+    $entity += ReflectionUtils::getCodeDocs($reflection, NULL, ['entity' => $entity['name']]);
     unset($entity['package'], $entity['method']);
   }
 
diff --git a/civicrm/Civi/Api4/Action/GetActions.php b/civicrm/Civi/Api4/Action/GetActions.php
index c960bca6a9..b16fb0a285 100644
--- a/civicrm/Civi/Api4/Action/GetActions.php
+++ b/civicrm/Civi/Api4/Action/GetActions.php
@@ -27,7 +27,9 @@ use Civi\Api4\Utils\ActionUtil;
 use Civi\Api4\Utils\ReflectionUtils;
 
 /**
- * Get actions for an entity with a list of accepted params
+ * Get all API actions for the $ENTITY entity.
+ *
+ * Includes a list of accepted parameters for each action, descriptions and other documentation.
  */
 class GetActions extends BasicGetAction {
 
@@ -42,7 +44,7 @@ class GetActions extends BasicGetAction {
     foreach ($entityReflection->getMethods(\ReflectionMethod::IS_STATIC | \ReflectionMethod::IS_PUBLIC) as $method) {
       $actionName = $method->getName();
       if ($actionName != 'permissions' && $actionName[0] != '_') {
-        $this->loadAction($actionName);
+        $this->loadAction($actionName, $method);
       }
     }
     if (!$this->_actionsToGet || count($this->_actionsToGet) > count($this->_actions)) {
@@ -77,18 +79,29 @@ class GetActions extends BasicGetAction {
 
   /**
    * @param $actionName
+   * @param \ReflectionMethod $method
    */
-  private function loadAction($actionName) {
+  private function loadAction($actionName, $method = NULL) {
     try {
       if (!isset($this->_actions[$actionName]) && (!$this->_actionsToGet || in_array($actionName, $this->_actionsToGet))) {
         $action = ActionUtil::getAction($this->getEntityName(), $actionName);
         if (is_object($action)) {
           $this->_actions[$actionName] = ['name' => $actionName];
-          if ($this->_isFieldSelected('description') || $this->_isFieldSelected('comment')) {
-            $actionReflection = new \ReflectionClass($action);
-            $actionInfo = ReflectionUtils::getCodeDocs($actionReflection);
-            unset($actionInfo['method']);
-            $this->_actions[$actionName] += $actionInfo;
+          if ($this->_isFieldSelected('description', 'comment', 'see')) {
+            $vars = ['entity' => $this->getEntityName(), 'action' => $actionName];
+            // Docblock from action class
+            $actionDocs = ReflectionUtils::getCodeDocs($action->reflect(), NULL, $vars);
+            unset($actionDocs['method']);
+            // Docblock from action factory function in entity class. This takes precedence since most action classes are generic.
+            if ($method) {
+              $methodDocs = ReflectionUtils::getCodeDocs($method, 'Method', $vars);
+              // Allow method doc to inherit class doc
+              if (strpos($method->getDocComment(), '@inheritDoc') !== FALSE && !empty($methodDocs['comment']) && !empty($actionDocs['comment'])) {
+                $methodDocs['comment'] .= "\n\n" . $actionDocs['comment'];
+              }
+              $actionDocs = array_filter($methodDocs) + $actionDocs;
+            }
+            $this->_actions[$actionName] += $actionDocs;
           }
           if ($this->_isFieldSelected('params')) {
             $this->_actions[$actionName]['params'] = $action->getParamInfo();
@@ -112,18 +125,24 @@ class GetActions extends BasicGetAction {
     return [
       [
         'name' => 'name',
-        'data_type' => 'String',
+        'description' => 'Action name',
       ],
       [
         'name' => 'description',
-        'data_type' => 'String',
+        'description' => 'Description from docblock',
       ],
       [
         'name' => 'comment',
-        'data_type' => 'String',
+        'description' => 'Comments from docblock',
+      ],
+      [
+        'name' => 'see',
+        'data_type' => 'Array',
+        'description' => 'Any @see annotations from docblock',
       ],
       [
         'name' => 'params',
+        'description' => 'List of all accepted parameters',
         'data_type' => 'Array',
       ],
     ];
diff --git a/civicrm/Civi/Api4/Action/Setting/AbstractSettingAction.php b/civicrm/Civi/Api4/Action/Setting/AbstractSettingAction.php
index 53b9cdd891..d4a7a7dbe5 100644
--- a/civicrm/Civi/Api4/Action/Setting/AbstractSettingAction.php
+++ b/civicrm/Civi/Api4/Action/Setting/AbstractSettingAction.php
@@ -58,7 +58,7 @@ abstract class AbstractSettingAction extends \Civi\Api4\Generic\AbstractAction {
   }
 
   /**
-   * Checks that really ought to be taken care of by Civi::settings
+   * Checks that really ought to be taken care of by `Civi::settings`.
    *
    * @param int $domain
    * @return array
diff --git a/civicrm/Civi/Api4/Action/Setting/Get.php b/civicrm/Civi/Api4/Action/Setting/Get.php
index f7ba1ee5d1..fd4a0ce3f0 100644
--- a/civicrm/Civi/Api4/Action/Setting/Get.php
+++ b/civicrm/Civi/Api4/Action/Setting/Get.php
@@ -26,8 +26,7 @@ use Civi\Api4\Generic\Result;
  * Get the value of one or more CiviCRM settings.
  *
  * @method array getSelect
- * @method $this addSelect(string $name)
- * @method $this setSelect(array $select)
+ * @method $this setSelect(array $settingNames)
  */
 class Get extends AbstractSettingAction {
 
@@ -71,4 +70,14 @@ class Get extends AbstractSettingAction {
     }
   }
 
+  /**
+   * Add one or more settings to be selected
+   * @param string ...$settingNames
+   * @return $this
+   */
+  public function addSelect(string ...$settingNames) {
+    $this->select = array_merge($this->select, $settingNames);
+    return $this;
+  }
+
 }
diff --git a/civicrm/Civi/Api4/Action/Setting/Revert.php b/civicrm/Civi/Api4/Action/Setting/Revert.php
index 811a854bad..11abc64db4 100644
--- a/civicrm/Civi/Api4/Action/Setting/Revert.php
+++ b/civicrm/Civi/Api4/Action/Setting/Revert.php
@@ -26,8 +26,7 @@ use Civi\Api4\Generic\Result;
  * Revert one or more CiviCRM settings to their default value.
  *
  * @method array getSelect
- * @method $this addSelect(string $name)
- * @method $this setSelect(array $select)
+ * @method $this setSelect(array $settingNames) Set settings to be reverted
  */
 class Revert extends AbstractSettingAction {
 
@@ -62,4 +61,14 @@ class Revert extends AbstractSettingAction {
     }
   }
 
+  /**
+   * Add one or more settings to be reverted
+   * @param string ...$settingNames
+   * @return $this
+   */
+  public function addSelect(string ...$settingNames) {
+    $this->select = array_merge($this->select, $settingNames);
+    return $this;
+  }
+
 }
diff --git a/civicrm/Civi/Api4/Action/Setting/Set.php b/civicrm/Civi/Api4/Action/Setting/Set.php
index b4d3727a0e..9353436c82 100644
--- a/civicrm/Civi/Api4/Action/Setting/Set.php
+++ b/civicrm/Civi/Api4/Action/Setting/Set.php
@@ -27,7 +27,6 @@ use Civi\Api4\Generic\Result;
  *
  * @method array getValues
  * @method $this setValues(array $value)
- * @method $this addValue(string $name, mixed $value)
  */
 class Set extends AbstractSettingAction {
 
@@ -60,4 +59,15 @@ class Set extends AbstractSettingAction {
     }
   }
 
+  /**
+   * Add an item to the values array
+   * @param string $settingName
+   * @param mixed $value
+   * @return $this
+   */
+  public function addValue($settingName, $value) {
+    $this->values[$settingName] = $value;
+    return $this;
+  }
+
 }
diff --git a/civicrm/Civi/Api4/ActionSchedule.php b/civicrm/Civi/Api4/ActionSchedule.php
index e3539dc922..7ddcb4ea65 100644
--- a/civicrm/Civi/Api4/ActionSchedule.php
+++ b/civicrm/Civi/Api4/ActionSchedule.php
@@ -30,6 +30,7 @@ namespace Civi\Api4;
  *
  * Creating a new ActionSchedule requires at minimum a title, mapping_id and entity_value.
  *
+ * @see https://docs.civicrm.org/user/en/latest/email/scheduled-reminders/
  * @package Civi\Api4
  */
 class ActionSchedule extends Generic\DAOEntity {
diff --git a/civicrm/Civi/Api4/Activity.php b/civicrm/Civi/Api4/Activity.php
index 8761cd3d5b..c546502fc1 100644
--- a/civicrm/Civi/Api4/Activity.php
+++ b/civicrm/Civi/Api4/Activity.php
@@ -32,6 +32,7 @@ namespace Civi\Api4;
  *
  * An activity is a record of some type of interaction with one or more contacts.
  *
+ * @see https://docs.civicrm.org/user/en/latest/organising-your-data/activities/
  * @package Civi\Api4
  */
 class Activity extends Generic\DAOEntity {
diff --git a/civicrm/Civi/Api4/ActivityContact.php b/civicrm/Civi/Api4/ActivityContact.php
index 237c62e8fb..24dbc69423 100644
--- a/civicrm/Civi/Api4/ActivityContact.php
+++ b/civicrm/Civi/Api4/ActivityContact.php
@@ -28,6 +28,7 @@ namespace Civi\Api4;
  *
  * Creating a new ActivityContact requires at minimum a contact_id and activity_id.
  *
+ * @see \Civi\Api4\Activity
  * @package Civi\Api4
  */
 class ActivityContact extends Generic\DAOEntity {
diff --git a/civicrm/Civi/Api4/Campaign.php b/civicrm/Civi/Api4/Campaign.php
index 361ae34c3e..719a625e4d 100644
--- a/civicrm/Civi/Api4/Campaign.php
+++ b/civicrm/Civi/Api4/Campaign.php
@@ -24,6 +24,7 @@ namespace Civi\Api4;
 /**
  * Campaign entity.
  *
+ * @see https://docs.civicrm.org/user/en/latest/campaign/what-is-civicampaign/
  * @package Civi\Api4
  */
 class Campaign extends Generic\DAOEntity {
diff --git a/civicrm/Civi/Api4/Contact.php b/civicrm/Civi/Api4/Contact.php
index d0257579db..ca650abc7b 100644
--- a/civicrm/Civi/Api4/Contact.php
+++ b/civicrm/Civi/Api4/Contact.php
@@ -29,18 +29,28 @@ namespace Civi\Api4;
  *
  * Creating a new contact requires at minimum a name or email address.
  *
+ * @see https://docs.civicrm.org/user/en/latest/organising-your-data/contacts/
  * @package Civi\Api4
  */
 class Contact extends Generic\DAOEntity {
 
+  /**
+   * @return \Civi\Api4\Action\Contact\GetFields|Generic\DAOGetFieldsAction
+   */
   public static function getFields() {
     return new Action\Contact\GetFields(__CLASS__, __FUNCTION__);
   }
 
+  /**
+   * @return \Civi\Api4\Action\Contact\GetChecksum
+   */
   public static function getChecksum() {
     return new Action\Contact\GetChecksum(__CLASS__, __FUNCTION__);
   }
 
+  /**
+   * @return \Civi\Api4\Action\Contact\ValidateChecksum
+   */
   public static function validateChecksum() {
     return new Action\Contact\ValidateChecksum(__CLASS__, __FUNCTION__);
   }
diff --git a/civicrm/Civi/Api4/ContactType.php b/civicrm/Civi/Api4/ContactType.php
index 98822f11c6..8cf2d9a134 100644
--- a/civicrm/Civi/Api4/ContactType.php
+++ b/civicrm/Civi/Api4/ContactType.php
@@ -30,6 +30,8 @@ namespace Civi\Api4;
  *
  * Creating a new contact type requires at minimum a label and parent_id.
  *
+ * @see https://docs.civicrm.org/user/en/latest/organising-your-data/contacts/#contact-subtypes
+ * @see \Civi\Api4\Contact
  * @package Civi\Api4
  */
 class ContactType extends Generic\DAOEntity {
diff --git a/civicrm/Civi/Api4/CustomField.php b/civicrm/Civi/Api4/CustomField.php
index 702a5dc3e9..7cee0b982b 100644
--- a/civicrm/Civi/Api4/CustomField.php
+++ b/civicrm/Civi/Api4/CustomField.php
@@ -24,6 +24,8 @@ namespace Civi\Api4;
 /**
  * CustomField entity.
  *
+ * @see https://docs.civicrm.org/user/en/latest/organising-your-data/creating-custom-fields/
+ *
  * @package Civi\Api4
  */
 class CustomField extends Generic\DAOEntity {
diff --git a/civicrm/Civi/Api4/CustomGroup.php b/civicrm/Civi/Api4/CustomGroup.php
index 76ca7c6f39..47c6ca05fc 100644
--- a/civicrm/Civi/Api4/CustomGroup.php
+++ b/civicrm/Civi/Api4/CustomGroup.php
@@ -24,6 +24,8 @@ namespace Civi\Api4;
 /**
  * CustomGroup entity.
  *
+ * @see https://docs.civicrm.org/user/en/latest/organising-your-data/creating-custom-fields/
+ *
  * @package Civi\Api4
  */
 class CustomGroup extends Generic\DAOEntity {
diff --git a/civicrm/Civi/Api4/CustomValue.php b/civicrm/Civi/Api4/CustomValue.php
index 2860ea5cda..60c6d6c870 100644
--- a/civicrm/Civi/Api4/CustomValue.php
+++ b/civicrm/Civi/Api4/CustomValue.php
@@ -22,15 +22,25 @@
 namespace Civi\Api4;
 
 /**
- * CustomGroup entity.
+ * Provides virtual api entities for every multi-record custom group.
  *
+ * This class is different from other apis in that it is not itself an entity, but allows every
+ * multi-record custom group to act like an entity.
+ *
+ * Each action takes the name of the custom group as a parameter, or in traditional syntax the entity is prefixed with 'Custom_'
+ *
+ * **Ex. OOP:** `\Civi\Api4\CustomValue::get('MyStuff')->addWhere('id', '=', 123);`
+ * **Non-OOP:** `civicrm_api4('Custom_MyStuff', 'get', ['where' => [['id', '=', 123]]]);`
+ *
+ * Note: This class does NOT extend AbstractEntity so it doesn't get mistaken for a "real" entity.
  * @package Civi\Api4
  */
-class CustomValue extends Generic\AbstractEntity {
+class CustomValue {
 
   /**
    * @param string $customGroup
    * @return Action\CustomValue\Get
+   * @throws \API_Exception
    */
   public static function get($customGroup) {
     return new Action\CustomValue\Get($customGroup, __FUNCTION__);
@@ -39,6 +49,7 @@ class CustomValue extends Generic\AbstractEntity {
   /**
    * @param string $customGroup
    * @return Action\CustomValue\GetFields
+   * @throws \API_Exception
    */
   public static function getFields($customGroup = NULL) {
     return new Action\CustomValue\GetFields($customGroup, __FUNCTION__);
@@ -47,6 +58,7 @@ class CustomValue extends Generic\AbstractEntity {
   /**
    * @param string $customGroup
    * @return Action\CustomValue\Save
+   * @throws \API_Exception
    */
   public static function save($customGroup) {
     return new Action\CustomValue\Save($customGroup, __FUNCTION__);
@@ -55,6 +67,7 @@ class CustomValue extends Generic\AbstractEntity {
   /**
    * @param string $customGroup
    * @return Action\CustomValue\Create
+   * @throws \API_Exception
    */
   public static function create($customGroup) {
     return new Action\CustomValue\Create($customGroup, __FUNCTION__);
@@ -63,6 +76,7 @@ class CustomValue extends Generic\AbstractEntity {
   /**
    * @param string $customGroup
    * @return Action\CustomValue\Update
+   * @throws \API_Exception
    */
   public static function update($customGroup) {
     return new Action\CustomValue\Update($customGroup, __FUNCTION__);
@@ -71,6 +85,7 @@ class CustomValue extends Generic\AbstractEntity {
   /**
    * @param string $customGroup
    * @return Action\CustomValue\Delete
+   * @throws \API_Exception
    */
   public static function delete($customGroup) {
     return new Action\CustomValue\Delete($customGroup, __FUNCTION__);
@@ -79,6 +94,7 @@ class CustomValue extends Generic\AbstractEntity {
   /**
    * @param string $customGroup
    * @return Action\CustomValue\Replace
+   * @throws \API_Exception
    */
   public static function replace($customGroup) {
     return new Action\CustomValue\Replace($customGroup, __FUNCTION__);
@@ -87,6 +103,7 @@ class CustomValue extends Generic\AbstractEntity {
   /**
    * @param string $customGroup
    * @return Action\CustomValue\GetActions
+   * @throws \API_Exception
    */
   public static function getActions($customGroup = NULL) {
     return new Action\CustomValue\GetActions($customGroup, __FUNCTION__);
diff --git a/civicrm/Civi/Api4/Domain.php b/civicrm/Civi/Api4/Domain.php
index 01172433b6..589f57052e 100644
--- a/civicrm/Civi/Api4/Domain.php
+++ b/civicrm/Civi/Api4/Domain.php
@@ -24,6 +24,8 @@ namespace Civi\Api4;
 /**
  * Domains - multisite instances of CiviCRM.
  *
+ * @see https://docs.civicrm.org/sysadmin/en/latest/setup/multisite/
+ *
  * @package Civi\Api4
  */
 class Domain extends Generic\DAOEntity {
diff --git a/civicrm/Civi/Api4/Entity.php b/civicrm/Civi/Api4/Entity.php
index 090550184e..430900b663 100644
--- a/civicrm/Civi/Api4/Entity.php
+++ b/civicrm/Civi/Api4/Entity.php
@@ -24,6 +24,8 @@ namespace Civi\Api4;
 /**
  * Retrieves information about all Api4 entities.
  *
+ * @see \Civi\Api4\Generic\AbstractEntity
+ *
  * @package Civi\Api4
  */
 class Entity extends Generic\AbstractEntity {
@@ -41,9 +43,23 @@ class Entity extends Generic\AbstractEntity {
   public static function getFields() {
     return new \Civi\Api4\Generic\BasicGetFieldsAction('Entity', __FUNCTION__, function() {
       return [
-        ['name' => 'name'],
-        ['name' => 'description'],
-        ['name' => 'comment'],
+        [
+          'name' => 'name',
+          'description' => 'Entity name',
+        ],
+        [
+          'name' => 'description',
+          'description' => 'Description from docblock',
+        ],
+        [
+          'name' => 'comment',
+          'description' => 'Comments from docblock',
+        ],
+        [
+          'name' => 'see',
+          'data_type' => 'Array',
+          'description' => 'Any @see annotations from docblock',
+        ],
       ];
     });
   }
diff --git a/civicrm/Civi/Api4/EntityTag.php b/civicrm/Civi/Api4/EntityTag.php
index 7760c1854d..06ae229c19 100644
--- a/civicrm/Civi/Api4/EntityTag.php
+++ b/civicrm/Civi/Api4/EntityTag.php
@@ -18,12 +18,13 @@
  *
  */
 
-
 namespace Civi\Api4;
 
 /**
  * EntityTag - links tags to contacts, activities, etc.
  *
+ * @see \Civi\Api4\Tag
+ *
  * @package Civi\Api4
  */
 class EntityTag extends Generic\DAOEntity {
diff --git a/civicrm/Civi/Api4/Event.php b/civicrm/Civi/Api4/Event.php
index 09f19fd13a..c21a0def34 100644
--- a/civicrm/Civi/Api4/Event.php
+++ b/civicrm/Civi/Api4/Event.php
@@ -24,6 +24,8 @@ namespace Civi\Api4;
 /**
  * Event entity.
  *
+ * @see https://docs.civicrm.org/user/en/latest/events/what-is-civievent/
+ *
  * @package Civi\Api4
  */
 class Event extends Generic\DAOEntity {
diff --git a/civicrm/Civi/Api4/Event/Events.php b/civicrm/Civi/Api4/Event/Events.php
index 9586b10181..bb866e287b 100644
--- a/civicrm/Civi/Api4/Event/Events.php
+++ b/civicrm/Civi/Api4/Event/Events.php
@@ -27,7 +27,7 @@ class Events {
    * Prepare the specification for a request. Fired from within a request to
    * get fields.
    *
-   * @see GetSpecEvent
+   * @see \Civi\Api4\Event\GetSpecEvent
    */
   const GET_SPEC = 'civi.api.get_spec';
 
diff --git a/civicrm/Civi/Api4/Event/Subscriber/PostSelectQuerySubscriber.php b/civicrm/Civi/Api4/Event/Subscriber/PostSelectQuerySubscriber.php
index e9522b31dc..84dbca9e79 100644
--- a/civicrm/Civi/Api4/Event/Subscriber/PostSelectQuerySubscriber.php
+++ b/civicrm/Civi/Api4/Event/Subscriber/PostSelectQuerySubscriber.php
@@ -25,6 +25,7 @@ use Civi\Api4\Event\Events;
 use Civi\Api4\Event\PostSelectQueryEvent;
 use Civi\Api4\Query\Api4SelectQuery;
 use Civi\Api4\Utils\ArrayInsertionUtil;
+use Civi\Api4\Utils\FormattingUtil;
 use Symfony\Component\EventDispatcher\EventSubscriberInterface;
 
 /**
@@ -33,7 +34,7 @@ use Symfony\Component\EventDispatcher\EventSubscriberInterface;
 class PostSelectQuerySubscriber implements EventSubscriberInterface {
 
   /**
-   * @inheritdoc
+   * @inheritDoc
    */
   public static function getSubscribedEvents() {
     return [
@@ -60,8 +61,7 @@ class PostSelectQuerySubscriber implements EventSubscriberInterface {
       return $results;
     }
 
-    $fieldSpec = $query->getApiFieldSpec();
-    $this->unserializeFields($results, $query->getEntity(), $fieldSpec);
+    FormattingUtil::formatOutputValues($results, $query->getApiFieldSpec(), $query->getEntity());
 
     // Group the selects to avoid queries for each field
     $groupedSelects = $this->getNtoManyJoinSelects($query);
@@ -75,7 +75,7 @@ class PostSelectQuerySubscriber implements EventSubscriberInterface {
       foreach ($results as &$primaryResult) {
         $baseId = $primaryResult['id'];
         $filtered = array_filter($joinResults, function ($res) use ($baseId) {
-          return ($res['_base_id'] === $baseId);
+          return ($res['_base_id'] == $baseId);
         });
         $filtered = array_values($filtered);
         ArrayInsertionUtil::insert($primaryResult, $joinPath, $filtered);
@@ -98,25 +98,7 @@ class PostSelectQuerySubscriber implements EventSubscriberInterface {
       $fields[array_pop($name)] = $field->toArray();
     }
     if ($fields) {
-      $this->unserializeFields($joinResults, NULL, $fields);
-    }
-  }
-
-  /**
-   * Unserialize values
-   *
-   * @param array $results
-   * @param string $entity
-   * @param array $fields
-   */
-  protected function unserializeFields(&$results, $entity, $fields = []) {
-    foreach ($results as &$result) {
-      foreach ($result as $field => &$value) {
-        if (!empty($fields[$field]['serialize']) && is_string($value)) {
-          $serializationType = $fields[$field]['serialize'];
-          $value = \CRM_Core_DAO::unSerializeField($value, $serializationType);
-        }
-      }
+      FormattingUtil::formatOutputValues($joinResults, $fields, $join->getEntity());
     }
   }
 
@@ -258,9 +240,13 @@ class PostSelectQuerySubscriber implements EventSubscriberInterface {
     }, $selects, array_keys($selects));
 
     $newSelect = sprintf('SELECT DISTINCT %s', implode(", ", $aliasedSelects));
-    $sql = str_replace("\n", ' ', $query->getQuery()->toSQL());
-    $originalSelect = substr($sql, 0, strpos($sql, ' FROM'));
-    $sql = str_replace($originalSelect, $newSelect, $sql);
+    $sql = $query->getQuery()->toSQL();
+    // Replace the "SELECT" clause
+    $sql = $newSelect . substr($sql, strpos($sql, "\nFROM"));
+
+    if (is_array($query->debugOutput)) {
+      $query->debugOutput['sql'][] = $sql;
+    }
 
     $relatedResults = [];
     $resultDAO = \CRM_Core_DAO::executeQuery($sql);
diff --git a/civicrm/Civi/Api4/Generic/AbstractAction.php b/civicrm/Civi/Api4/Generic/AbstractAction.php
index d81c9aa33a..531f11aace 100644
--- a/civicrm/Civi/Api4/Generic/AbstractAction.php
+++ b/civicrm/Civi/Api4/Generic/AbstractAction.php
@@ -26,8 +26,19 @@ use Civi\Api4\Utils\ActionUtil;
 /**
  * Base class for all api actions.
  *
- * @method $this setCheckPermissions(bool $value)
+ * An api Action object stores the parameters of the api call, and defines a _run function to execute the action.
+ *
+ * Every `protected` class var is considered a parameter (unless it starts with an underscore).
+ *
+ * Adding a `protected` var to your Action named e.g. `$thing` will automatically:
+ *  - Provide a getter/setter (via `__call` MagicMethod) named `getThing()` and `setThing()`.
+ *  - Expose the param in the Api Explorer (be sure to add a doc-block as it displays in the help panel).
+ *  - Require a value for the param if you add the "@required" annotation.
+ *
+ * @method $this setCheckPermissions(bool $value) Enable/disable permission checks
  * @method bool getCheckPermissions()
+ * @method $this setDebug(bool $value) Enable/disable debug output
+ * @method bool getDebug()
  * @method $this setChain(array $chain)
  * @method array getChain()
  */
@@ -45,16 +56,21 @@ abstract class AbstractAction implements \ArrayAccess {
    *
    * Keys can be any string - this will be the name given to the output.
    *
-   * You can reference other values in the api results in this call by prefixing them with $
+   * You can reference other values in the api results in this call by prefixing them with `$`.
    *
    * For example, you could create a contact and place them in a group by chaining the
-   * GroupContact api to the Contact api:
+   * `GroupContact` api to the `Contact` api:
    *
+   * ```php
    * Contact::create()
    *   ->setValue('first_name', 'Hello')
-   *   ->addChain('add_to_a_group', GroupContact::create()->setValue('contact_id', '$id')->setValue('group_id', 123))
+   *   ->addChain('add_a_group', GroupContact::create()
+   *     ->setValue('contact_id', '$id')
+   *     ->setValue('group_id', 123)
+   *   )
+   * ```
    *
-   * This will substitute the id of the newly created contact with $id.
+   * This will substitute the id of the newly created contact with `$id`.
    *
    * @var array
    */
@@ -70,6 +86,18 @@ abstract class AbstractAction implements \ArrayAccess {
    */
   protected $checkPermissions = TRUE;
 
+  /**
+   * Add debugging info to the api result.
+   *
+   * When enabled, `$result->debug` will be populated with information about the api call,
+   * including sql queries executed.
+   *
+   * **Note:** with checkPermissions enabled, debug info will only be returned if the user has "view debug output" permission.
+   *
+   * @var bool
+   */
+  protected $debug = FALSE;
+
   /**
    * @var string
    */
@@ -107,6 +135,8 @@ abstract class AbstractAction implements \ArrayAccess {
    */
   private $_id;
 
+  public $_debugOutput = [];
+
   /**
    * Action constructor.
    *
@@ -140,7 +170,7 @@ abstract class AbstractAction implements \ArrayAccess {
    * @throws \API_Exception
    */
   public function setVersion($val) {
-    if ($val != 4) {
+    if ($val !== 4 && $val !== '4') {
       throw new \API_Exception('Cannot modify api version');
     }
     return $this;
@@ -150,9 +180,8 @@ abstract class AbstractAction implements \ArrayAccess {
    * @param string $name
    *   Unique name for this chained request
    * @param \Civi\Api4\Generic\AbstractAction $apiRequest
-   * @param string|int $index
-   *   Either a string for how the results should be indexed e.g. 'name'
-   *   or the index of a single result to return e.g. 0 for the first result.
+   * @param string|int|array $index
+   *   See `civicrm_api4()` for documentation of `$index` param
    * @return $this
    */
   public function addChain($name, AbstractAction $apiRequest, $index = NULL) {
@@ -161,7 +190,7 @@ abstract class AbstractAction implements \ArrayAccess {
   }
 
   /**
-   * Magic function to provide addFoo, getFoo and setFoo for params.
+   * Magic function to provide automatic getter/setter for params.
    *
    * @param $name
    * @param $arguments
@@ -174,10 +203,6 @@ abstract class AbstractAction implements \ArrayAccess {
       throw new \API_Exception('Unknown api parameter: ' . $name);
     }
     $mode = substr($name, 0, 3);
-    // Handle plural when adding to e.g. $values with "addValue" method.
-    if ($mode == 'add' && $this->paramExists($param . 's')) {
-      $param .= 's';
-    }
     if ($this->paramExists($param)) {
       switch ($mode) {
         case 'get':
@@ -186,18 +211,6 @@ abstract class AbstractAction implements \ArrayAccess {
         case 'set':
           $this->$param = $arguments[0];
           return $this;
-
-        case 'add':
-          if (!is_array($this->$param)) {
-            throw new \API_Exception('Cannot add to non-array param');
-          }
-          if (array_key_exists(1, $arguments)) {
-            $this->{$param}[$arguments[0]] = $arguments[1];
-          }
-          else {
-            $this->{$param}[] = $arguments[0];
-          }
-          return $this;
       }
     }
     throw new \API_Exception('Unknown api parameter: ' . $name);
@@ -210,13 +223,21 @@ abstract class AbstractAction implements \ArrayAccess {
    * This is basically the outer wrapper for api v4.
    *
    * @return \Civi\Api4\Generic\Result
+   * @throws \API_Exception
    * @throws \Civi\API\Exception\UnauthorizedException
    */
   public function execute() {
     /** @var \Civi\API\Kernel $kernel */
     $kernel = \Civi::service('civi_api_kernel');
-
-    return $kernel->runRequest($this);
+    $result = $kernel->runRequest($this);
+    if ($this->debug && (!$this->checkPermissions || \CRM_Core_Permission::check('view debug output'))) {
+      $result->debug['actionClass'] = get_class($this);
+      $result->debug = array_merge($result->debug, $this->_debugOutput);
+    }
+    else {
+      $result->debug = NULL;
+    }
+    return $result;
   }
 
   /**
@@ -249,10 +270,19 @@ abstract class AbstractAction implements \ArrayAccess {
   public function getParamInfo($param = NULL) {
     if (!isset($this->_paramInfo)) {
       $defaults = $this->getParamDefaults();
+      $vars = [
+        'entity' => $this->getEntityName(),
+        'action' => $this->getActionName(),
+      ];
+      // For actions like "getFields" and "getActions" they are not getting the entity itself.
+      // So generic docs will make more sense like this:
+      if (substr($vars['action'], 0, 3) === 'get' && substr($vars['action'], -1) === 's') {
+        $vars['entity'] = lcfirst(substr($vars['action'], 3, -1));
+      }
       foreach ($this->reflect()->getProperties(\ReflectionProperty::IS_PROTECTED) as $property) {
         $name = $property->getName();
         if ($name != 'version' && $name[0] != '_') {
-          $this->_paramInfo[$name] = ReflectionUtils::getCodeDocs($property, 'Property');
+          $this->_paramInfo[$name] = ReflectionUtils::getCodeDocs($property, 'Property', $vars);
           $this->_paramInfo[$name]['default'] = $defaults[$name];
         }
       }
@@ -383,12 +413,13 @@ abstract class AbstractAction implements \ArrayAccess {
   /**
    * Returns schema fields for this entity & action.
    *
-   * Here we bypass the api wrapper and execute the getFields action directly.
+   * Here we bypass the api wrapper and run the getFields action directly.
    * This is because we DON'T want the wrapper to check permissions as this is an internal op,
    * but we DO want permissions to be checked inside the getFields request so e.g. the api_key
    * field can be conditionally included.
    * @see \Civi\Api4\Action\Contact\GetFields
    *
+   * @throws \API_Exception
    * @return array
    */
   public function entityFields() {
@@ -462,4 +493,25 @@ abstract class AbstractAction implements \ArrayAccess {
     return (bool) trim(\CRM_Core_Smarty::singleton()->fetchWith('string:' . $tpl, $vars));
   }
 
+  /**
+   * When in debug mode, this logs the callback function being used by a Basic*Action class.
+   *
+   * @param callable $callable
+   */
+  protected function addCallbackToDebugOutput($callable) {
+    if ($this->debug && empty($this->_debugOutput['callback'])) {
+      if (is_scalar($callable)) {
+        $this->_debugOutput['callback'] = (string) $callable;
+      }
+      elseif (is_array($callable)) {
+        foreach ($callable as $key => $unit) {
+          $this->_debugOutput['callback'][$key] = is_object($unit) ? get_class($unit) : (string) $unit;
+        }
+      }
+      elseif (is_object($callable)) {
+        $this->_debugOutput['callback'] = get_class($callable);
+      }
+    }
+  }
+
 }
diff --git a/civicrm/Civi/Api4/Generic/AbstractBatchAction.php b/civicrm/Civi/Api4/Generic/AbstractBatchAction.php
index 05c078b587..4945b43291 100644
--- a/civicrm/Civi/Api4/Generic/AbstractBatchAction.php
+++ b/civicrm/Civi/Api4/Generic/AbstractBatchAction.php
@@ -31,7 +31,7 @@ namespace Civi\Api4\Generic;
 abstract class AbstractBatchAction extends AbstractQueryAction {
 
   /**
-   * Criteria for selecting items to process.
+   * Criteria for selecting $ENTITIES to process.
    *
    * @var array
    * @required
diff --git a/civicrm/Civi/Api4/Generic/AbstractCreateAction.php b/civicrm/Civi/Api4/Generic/AbstractCreateAction.php
index 20551e5b09..ea9d3cdb9d 100644
--- a/civicrm/Civi/Api4/Generic/AbstractCreateAction.php
+++ b/civicrm/Civi/Api4/Generic/AbstractCreateAction.php
@@ -22,10 +22,9 @@
 namespace Civi\Api4\Generic;
 
 /**
- * Base class for all "Create" api actions.
+ * Base class for all `Create` api actions.
  *
  * @method $this setValues(array $values) Set all field values from an array of key => value pairs.
- * @method $this addValue($field, $value) Set field value.
  * @method array getValues() Get field values.
  *
  * @package Civi\Api4\Generic
@@ -33,19 +32,29 @@ namespace Civi\Api4\Generic;
 abstract class AbstractCreateAction extends AbstractAction {
 
   /**
-   * Field values to set
+   * Field values to set for the new $ENTITY.
    *
    * @var array
    */
   protected $values = [];
 
   /**
-   * @param string $key
-   *
+   * @param string $fieldName
    * @return mixed|null
    */
-  public function getValue($key) {
-    return isset($this->values[$key]) ? $this->values[$key] : NULL;
+  public function getValue(string $fieldName) {
+    return isset($this->values[$fieldName]) ? $this->values[$fieldName] : NULL;
+  }
+
+  /**
+   * Add a field value.
+   * @param string $fieldName
+   * @param mixed $value
+   * @return $this
+   */
+  public function addValue(string $fieldName, $value) {
+    $this->values[$fieldName] = $value;
+    return $this;
   }
 
   /**
diff --git a/civicrm/Civi/Api4/Generic/AbstractEntity.php b/civicrm/Civi/Api4/Generic/AbstractEntity.php
index bd0c447fe9..d05697a84e 100644
--- a/civicrm/Civi/Api4/Generic/AbstractEntity.php
+++ b/civicrm/Civi/Api4/Generic/AbstractEntity.php
@@ -30,17 +30,20 @@ use Civi\API\Exception\NotImplementedException;
  *
  * The recommended way to create a non-DAO-based api is to extend this class
  * and then add a getFields function and any other actions you wish, e.g.
- * - a get() function which returns BasicGetAction using your custom getter callback
- * - a create() function which returns BasicCreateAction using your custom setter callback
- * - an update() function which returns BasicUpdateAction using your custom setter callback
- * - a delete() function which returns BasicBatchAction using your custom delete callback
+ * - a get() function which returns BasicGetAction using your custom getter callback.
+ * - a create() function which returns BasicCreateAction using your custom setter callback.
+ * - a save() function which returns BasicSaveAction using your custom setter callback.
+ * - an update() function which returns BasicUpdateAction using your custom setter callback.
+ * - a delete() function which returns BasicBatchAction using your custom delete callback.
  * - a replace() function which returns BasicReplaceAction (no callback needed but
- *   depends on the existence of get, create, update & delete actions)
+ *   depends on the existence of get, save & delete actions).
  *
  * Note that you can use the same setter callback function for update as create -
  * that function can distinguish between new & existing records by checking if the
  * unique identifier has been set (identifier field defaults to "id" but you can change
- * that when constructing BasicUpdateAction)
+ * that when constructing BasicUpdateAction).
+ *
+ * @see https://lab.civicrm.org/extensions/api4example
  */
 abstract class AbstractEntity {
 
@@ -52,13 +55,9 @@ abstract class AbstractEntity {
   }
 
   /**
-   * Should return \Civi\Api4\Generic\BasicGetFieldsAction
-   * @todo make this function abstract when we require php 7.
-   * @throws \Civi\API\Exception\NotImplementedException
+   * @return \Civi\Api4\Generic\BasicGetFieldsAction
    */
-  public static function getFields() {
-    throw new NotImplementedException(self::getEntityName() . ' should implement getFields action.');
-  }
+  abstract public static function getFields();
 
   /**
    * Returns a list of permissions needed to access the various actions in this api.
diff --git a/civicrm/Civi/Api4/Generic/AbstractGetAction.php b/civicrm/Civi/Api4/Generic/AbstractGetAction.php
index e48b3c1597..e9f892c2af 100644
--- a/civicrm/Civi/Api4/Generic/AbstractGetAction.php
+++ b/civicrm/Civi/Api4/Generic/AbstractGetAction.php
@@ -21,21 +21,25 @@
 
 namespace Civi\Api4\Generic;
 
+use Civi\Api4\Utils\SelectUtil;
+
 /**
- * Base class for all "Get" api actions.
+ * Base class for all `Get` api actions.
  *
  * @package Civi\Api4\Generic
  *
- * @method $this addSelect(string $select)
- * @method $this setSelect(array $selects)
+ * @method $this setSelect(array $selects) Set array of fields to be selected (wildcard * allowed)
  * @method array getSelect()
  */
 abstract class AbstractGetAction extends AbstractQueryAction {
 
   /**
-   * Fields to return. Defaults to all fields.
+   * Fields to return for each $ENTITY. Defaults to all fields `[*]`.
+   *
+   * Use the * wildcard by itself to select all available fields, or use it to match similarly-named fields.
+   * E.g. `is_*` will match fields named is_primary, is_active, etc.
    *
-   * Set to ["row_count"] to return only the number of items found.
+   * Set to `["row_count"]` to return only the number of $ENTITIES found.
    *
    * @var array
    */
@@ -70,6 +74,20 @@ abstract class AbstractGetAction extends AbstractQueryAction {
     }
   }
 
+  /**
+   * Adds all fields matched by the * wildcard
+   *
+   * @throws \API_Exception
+   */
+  protected function expandSelectClauseWildcards() {
+    foreach ($this->select as $item) {
+      if (strpos($item, '*') !== FALSE && strpos($item, '.') === FALSE) {
+        $this->select = array_diff($this->select, [$item]);
+        $this->select = array_unique(array_merge($this->select, SelectUtil::getMatchingFields($item, array_column($this->entityFields(), 'name'))));
+      }
+    }
+  }
+
   /**
    * Helper to parse the WHERE param for getRecords to perform simple pre-filtering.
    *
@@ -78,7 +96,7 @@ abstract class AbstractGetAction extends AbstractQueryAction {
    *
    * Ex: If getRecords fetches a long list of items each with a unique name,
    * but the user has specified a single record to retrieve, you can optimize the call
-   * by checking $this->_itemsToGet('name') and only fetching the item(s) with that name.
+   * by checking `$this->_itemsToGet('name')` and only fetching the item(s) with that name.
    *
    * @param string $field
    * @return array|null
@@ -94,45 +112,60 @@ abstract class AbstractGetAction extends AbstractQueryAction {
   }
 
   /**
-   * Helper to see if a field should be selected by the getRecords function.
+   * Helper to see if field(s) should be selected by the getRecords function.
    *
    * Checks the SELECT, WHERE and ORDER BY params to see what fields are needed.
    *
    * Note that if no SELECT clause has been set then all fields should be selected
    * and this function will always return TRUE.
    *
-   * @param string $field
+   * @param string ...$fieldNames
+   *   One or more field names to check (uses OR if multiple)
    * @return bool
+   *   Returns true if any given fields are in use.
    */
-  protected function _isFieldSelected($field) {
-    if (!$this->select || in_array($field, $this->select) || isset($this->orderBy[$field])) {
+  protected function _isFieldSelected(string ...$fieldNames) {
+    if (!$this->select || array_intersect($fieldNames, array_merge($this->select, array_keys($this->orderBy)))) {
       return TRUE;
     }
-    return $this->_whereContains($field);
+    return $this->_whereContains($fieldNames);
   }
 
   /**
-   * Walk through the where clause and check if a field is in use.
+   * Walk through the where clause and check if field(s) are in use.
    *
-   * @param string $field
+   * @param string|array $fieldName
+   *   A single fieldName or an array of names (uses OR if multiple)
    * @param array $clauses
    * @return bool
+   *   Returns true if any given fields are found in the where clause.
    */
-  protected function _whereContains($field, $clauses = NULL) {
+  protected function _whereContains($fieldName, $clauses = NULL) {
     if ($clauses === NULL) {
       $clauses = $this->where;
     }
+    $fieldName = (array) $fieldName;
     foreach ($clauses as $clause) {
       if (is_array($clause) && is_string($clause[0])) {
-        if ($clause[0] == $field) {
+        if (in_array($clause[0], $fieldName)) {
           return TRUE;
         }
         elseif (is_array($clause[1])) {
-          return $this->_whereContains($field, $clause[1]);
+          return $this->_whereContains($fieldName, $clause[1]);
         }
       }
     }
     return FALSE;
   }
 
+  /**
+   * Add one or more fields to be selected (wildcard * allowed)
+   * @param string ...$fieldNames
+   * @return $this
+   */
+  public function addSelect(string ...$fieldNames) {
+    $this->select = array_merge($this->select, $fieldNames);
+    return $this;
+  }
+
 }
diff --git a/civicrm/Civi/Api4/Generic/AbstractQueryAction.php b/civicrm/Civi/Api4/Generic/AbstractQueryAction.php
index 4088545bd1..e58ab26659 100644
--- a/civicrm/Civi/Api4/Generic/AbstractQueryAction.php
+++ b/civicrm/Civi/Api4/Generic/AbstractQueryAction.php
@@ -22,7 +22,7 @@
 namespace Civi\Api4\Generic;
 
 /**
- * Base class for all actions that need to fetch records (Get, Update, Delete, etc)
+ * Base class for all actions that need to fetch records (`Get`, `Update`, `Delete`, etc.).
  *
  * @package Civi\Api4\Generic
  *
@@ -38,27 +38,29 @@ namespace Civi\Api4\Generic;
 abstract class AbstractQueryAction extends AbstractAction {
 
   /**
-   * Criteria for selecting items.
-   *
-   * $example->addWhere('contact_type', 'IN', array('Individual', 'Household'))
+   * Criteria for selecting $ENTITIES.
    *
+   * ```php
+   * $example->addWhere('contact_type', 'IN', ['Individual', 'Household'])
+   * ```
    * @var array
    */
   protected $where = [];
 
   /**
-   * Array of field(s) to use in ordering the results
+   * Array of field(s) to use in ordering the results.
    *
    * Defaults to id ASC
    *
+   * ```php
    * $example->addOrderBy('sort_name', 'ASC')
-   *
+   * ```
    * @var array
    */
   protected $orderBy = [];
 
   /**
-   * Maximum number of results to return.
+   * Maximum number of $ENTITIES to return.
    *
    * Defaults to unlimited.
    *
@@ -70,26 +72,26 @@ abstract class AbstractQueryAction extends AbstractAction {
   protected $limit = 0;
 
   /**
-   * Zero-based index of first result to return.
+   * Zero-based index of first $ENTITY to return.
    *
-   * Defaults to "0" - first record.
+   * Defaults to "0" - first $ENTITY found.
    *
    * @var int
    */
   protected $offset = 0;
 
   /**
-   * @param string $field
+   * @param string $fieldName
    * @param string $op
    * @param mixed $value
    * @return $this
    * @throws \API_Exception
    */
-  public function addWhere($field, $op, $value = NULL) {
+  public function addWhere(string $fieldName, string $op, $value = NULL) {
     if (!in_array($op, \CRM_Core_DAO::acceptedSQLOperators())) {
       throw new \API_Exception('Unsupported operator');
     }
-    $this->where[] = [$field, $op, $value];
+    $this->where[] = [$fieldName, $op, $value];
     return $this;
   }
 
@@ -103,7 +105,7 @@ abstract class AbstractQueryAction extends AbstractAction {
    * @return $this
    * @throws \API_Exception
    */
-  public function addClause($operator, $condition1) {
+  public function addClause(string $operator, $condition1) {
     if (!is_array($condition1[0])) {
       $condition1 = array_slice(func_get_args(), 1);
     }
@@ -112,17 +114,18 @@ abstract class AbstractQueryAction extends AbstractAction {
   }
 
   /**
-   * @param string $field
+   * Adds to the orderBy clause
+   * @param string $fieldName
    * @param string $direction
    * @return $this
    */
-  public function addOrderBy($field, $direction = 'ASC') {
-    $this->orderBy[$field] = $direction;
+  public function addOrderBy(string $fieldName, $direction = 'ASC') {
+    $this->orderBy[$fieldName] = $direction;
     return $this;
   }
 
   /**
-   * A human-readable where clause, for the reading enjoyment of you humans.
+   * Produces a human-readable where clause, for the reading enjoyment of you humans.
    *
    * @param array $whereClause
    * @param string $op
diff --git a/civicrm/Civi/Api4/Generic/AbstractSaveAction.php b/civicrm/Civi/Api4/Generic/AbstractSaveAction.php
index 170d63bd59..749184ed8d 100644
--- a/civicrm/Civi/Api4/Generic/AbstractSaveAction.php
+++ b/civicrm/Civi/Api4/Generic/AbstractSaveAction.php
@@ -22,13 +22,11 @@
 namespace Civi\Api4\Generic;
 
 /**
- * Base class for all "Save" api actions.
+ * Base class for all `Save` api actions.
  *
- * @method $this setRecords(array $records) Array of records.
- * @method $this addRecord($record) Add a record to update.
+ * @method $this setRecords(array $records) Set array of records to be saved.
  * @method array getRecords()
  * @method $this setDefaults(array $defaults) Array of defaults.
- * @method $this addDefault($name, $value) Add a default value.
  * @method array getDefaults()
  * @method $this setReload(bool $reload) Specify whether complete objects will be returned after saving.
  * @method bool getReload()
@@ -38,9 +36,9 @@ namespace Civi\Api4\Generic;
 abstract class AbstractSaveAction extends AbstractAction {
 
   /**
-   * Array of records.
+   * Array of $ENTITIES to save.
    *
-   * Should be in the same format as returned by Get.
+   * Should be in the same format as returned by `Get`.
    *
    * @var array
    * @required
@@ -50,18 +48,20 @@ abstract class AbstractSaveAction extends AbstractAction {
   /**
    * Array of default values.
    *
-   * These defaults will be applied to all records unless they specify otherwise.
+   * These defaults will be merged into every $ENTITY in `records` before saving.
+   * Values set in `records` will override these defaults if set in both places,
+   * but updating existing $ENTITIES will overwrite current values with these defaults.
    *
    * @var array
    */
   protected $defaults = [];
 
   /**
-   * Reload records after saving.
+   * Reload $ENTITIES after saving.
    *
-   * By default this api typically returns partial records containing only the fields
-   * that were updated. Set reload to TRUE to do an additional lookup after saving
-   * to return complete records.
+   * By default this action typically returns partial records containing only the fields
+   * that were updated. Set `reload` to `true` to do an additional lookup after saving
+   * to return complete values for every $ENTITY.
    *
    * @var bool
    */
@@ -106,4 +106,25 @@ abstract class AbstractSaveAction extends AbstractAction {
     return $this->idField;
   }
 
+  /**
+   * Add one or more records to be saved.
+   * @param array ...$records
+   * @return $this
+   */
+  public function addRecord(array ...$records) {
+    $this->records = array_merge($this->records, $records);
+    return $this;
+  }
+
+  /**
+   * Set default value for a field.
+   * @param string $fieldName
+   * @param mixed $defaultValue
+   * @return $this
+   */
+  public function addDefault(string $fieldName, $defaultValue) {
+    $this->defaults[$fieldName] = $defaultValue;
+    return $this;
+  }
+
 }
diff --git a/civicrm/Civi/Api4/Generic/AbstractUpdateAction.php b/civicrm/Civi/Api4/Generic/AbstractUpdateAction.php
index d0f81572de..93940e1976 100644
--- a/civicrm/Civi/Api4/Generic/AbstractUpdateAction.php
+++ b/civicrm/Civi/Api4/Generic/AbstractUpdateAction.php
@@ -22,10 +22,9 @@
 namespace Civi\Api4\Generic;
 
 /**
- * Base class for all "Update" api actions
+ * Base class for all `Update` api actions
  *
  * @method $this setValues(array $values) Set all field values from an array of key => value pairs.
- * @method $this addValue($field, $value) Set field value.
  * @method array getValues() Get field values.
  * @method $this setReload(bool $reload) Specify whether complete objects will be returned after saving.
  * @method bool getReload()
@@ -43,22 +42,34 @@ abstract class AbstractUpdateAction extends AbstractBatchAction {
   protected $values = [];
 
   /**
-   * Reload objects after saving.
+   * Reload $ENTITIES after saving.
    *
-   * Setting to TRUE will load complete records and return them as the api result.
-   * If FALSE the api usually returns only the fields specified to be updated.
+   * Setting to `true` will load complete records and return them as the api result.
+   * If `false` the api usually returns only the fields specified to be updated.
    *
    * @var bool
    */
   protected $reload = FALSE;
 
   /**
-   * @param string $key
+   * @param string $fieldName
    *
    * @return mixed|null
    */
-  public function getValue($key) {
-    return isset($this->values[$key]) ? $this->values[$key] : NULL;
+  public function getValue(string $fieldName) {
+    return isset($this->values[$fieldName]) ? $this->values[$fieldName] : NULL;
+  }
+
+  /**
+   * Add an item to the values array.
+   *
+   * @param string $fieldName
+   * @param mixed $value
+   * @return $this
+   */
+  public function addValue(string $fieldName, $value) {
+    $this->values[$fieldName] = $value;
+    return $this;
   }
 
 }
diff --git a/civicrm/Civi/Api4/Generic/BasicBatchAction.php b/civicrm/Civi/Api4/Generic/BasicBatchAction.php
index 5a342dbab7..cf86203a9e 100644
--- a/civicrm/Civi/Api4/Generic/BasicBatchAction.php
+++ b/civicrm/Civi/Api4/Generic/BasicBatchAction.php
@@ -24,12 +24,9 @@ namespace Civi\Api4\Generic;
 use Civi\API\Exception\NotImplementedException;
 
 /**
- * Basic action for deleting or performing some other task with a set of records.  Ex:
+ * $ACTION one or more $ENTITIES.
  *
- * $myAction = new BasicBatchAction('Entity', 'action', function($item) {
- *   // Do something with $item
- *   $return $item;
- * });
+ * $ENTITIES are selected based on criteria specified in `where` parameter (required).
  *
  * @package Civi\Api4\Generic
  */
@@ -45,6 +42,13 @@ class BasicBatchAction extends AbstractBatchAction {
   /**
    * BasicBatchAction constructor.
    *
+   * ```php
+   * $myAction = new BasicBatchAction($entityName, $actionName, function($item) {
+   *   // Do something with $item
+   *   $return $item;
+   * });
+   * ```
+   *
    * @param string $entityName
    * @param string $actionName
    * @param string|array $select
@@ -84,6 +88,7 @@ class BasicBatchAction extends AbstractBatchAction {
    */
   protected function doTask($item) {
     if (is_callable($this->doer)) {
+      $this->addCallbackToDebugOutput($this->doer);
       return call_user_func($this->doer, $item, $this);
     }
     throw new NotImplementedException('Doer function not found for api4 ' . $this->getEntityName() . '::' . $this->getActionName());
diff --git a/civicrm/Civi/Api4/Generic/BasicCreateAction.php b/civicrm/Civi/Api4/Generic/BasicCreateAction.php
index 9fa2d1673b..66f4e1b50f 100644
--- a/civicrm/Civi/Api4/Generic/BasicCreateAction.php
+++ b/civicrm/Civi/Api4/Generic/BasicCreateAction.php
@@ -24,9 +24,10 @@ namespace Civi\Api4\Generic;
 use Civi\API\Exception\NotImplementedException;
 
 /**
- * Create a new object from supplied values.
+ * Create a new $ENTITY from supplied values.
  *
- * This function will create 1 new object. It cannot be used to update existing objects. Use the Update or Replace actions for that.
+ * This action will create 1 new $ENTITY.
+ * It cannot be used to update existing $ENTITIES; use the `Update` or `Replace` actions for that.
  */
 class BasicCreateAction extends AbstractCreateAction {
 
@@ -75,6 +76,7 @@ class BasicCreateAction extends AbstractCreateAction {
    */
   protected function writeRecord($item) {
     if (is_callable($this->setter)) {
+      $this->addCallbackToDebugOutput($this->setter);
       return call_user_func($this->setter, $item, $this);
     }
     throw new NotImplementedException('Setter function not found for api4 ' . $this->getEntityName() . '::' . $this->getActionName());
diff --git a/civicrm/Civi/Api4/Generic/BasicGetAction.php b/civicrm/Civi/Api4/Generic/BasicGetAction.php
index 2de0146eb0..22278c973e 100644
--- a/civicrm/Civi/Api4/Generic/BasicGetAction.php
+++ b/civicrm/Civi/Api4/Generic/BasicGetAction.php
@@ -24,9 +24,9 @@ namespace Civi\Api4\Generic;
 use Civi\API\Exception\NotImplementedException;
 
 /**
- * Retrieve items based on criteria specified in the 'where' param.
+ * Retrieve $ENTITIES based on criteria specified in the `where` parameter.
  *
- * Use the 'select' param to determine which fields are returned, defaults to *.
+ * Use the `select` param to determine which fields are returned, defaults to `[*]`.
  */
 class BasicGetAction extends AbstractGetAction {
   use Traits\ArrayQueryActionTrait;
@@ -57,6 +57,7 @@ class BasicGetAction extends AbstractGetAction {
    */
   public function _run(Result $result) {
     $this->setDefaultWhereClause();
+    $this->expandSelectClauseWildcards();
     $values = $this->getRecords();
     $result->exchangeArray($this->queryArray($values));
   }
@@ -95,6 +96,7 @@ class BasicGetAction extends AbstractGetAction {
    */
   protected function getRecords() {
     if (is_callable($this->getter)) {
+      $this->addCallbackToDebugOutput($this->getter);
       return call_user_func($this->getter, $this);
     }
     throw new NotImplementedException('Getter function not found for api4 ' . $this->getEntityName() . '::' . $this->getActionName());
diff --git a/civicrm/Civi/Api4/Generic/BasicGetFieldsAction.php b/civicrm/Civi/Api4/Generic/BasicGetFieldsAction.php
index 5c2b0ccb11..ae11f65f48 100644
--- a/civicrm/Civi/Api4/Generic/BasicGetFieldsAction.php
+++ b/civicrm/Civi/Api4/Generic/BasicGetFieldsAction.php
@@ -25,12 +25,17 @@ use Civi\API\Exception\NotImplementedException;
 use Civi\Api4\Utils\ActionUtil;
 
 /**
- * Get fields for an entity.
+ * Lists information about fields for the $ENTITY entity.
+ *
+ * This field information is also known as "metadata."
+ *
+ * Note that different actions may support different lists of fields.
+ * By default this will fetch the field list relevant to `get`,
+ * but a different list may be returned if you specify another action.
  *
  * @method $this setLoadOptions(bool $value)
  * @method bool getLoadOptions()
  * @method $this setAction(string $value)
- * @method $this addValue(string $value)
  * @method $this setValues(array $values)
  * @method array getValues()
  */
@@ -127,6 +132,17 @@ class BasicGetFieldsAction extends BasicGetAction {
     return $sub[$this->action] ?? $this->action;
   }
 
+  /**
+   * Add an item to the values array
+   * @param string $fieldName
+   * @param mixed $value
+   * @return $this
+   */
+  public function addValue(string $fieldName, $value) {
+    $this->values[$fieldName] = $value;
+    return $this;
+  }
+
   public function fields() {
     return [
       [
diff --git a/civicrm/Civi/Api4/Generic/BasicReplaceAction.php b/civicrm/Civi/Api4/Generic/BasicReplaceAction.php
index 1c71536279..b8e20285cd 100644
--- a/civicrm/Civi/Api4/Generic/BasicReplaceAction.php
+++ b/civicrm/Civi/Api4/Generic/BasicReplaceAction.php
@@ -21,17 +21,21 @@
 
 namespace Civi\Api4\Generic;
 
-use Civi\API\Exception\NotImplementedException;
 use Civi\Api4\Utils\ActionUtil;
 
 /**
- * Given a set of records, will appropriately update the database.
+ * Replaces an existing set of $ENTITIES with a new one.
  *
- * @method $this setRecords(array $records) Array of records.
- * @method $this addRecord($record) Add a record to update.
+ * This will select a group of existing $ENTITIES based on the `where` parameter.
+ * Each will be compared with the $ENTITIES passed in as `records`:
+ *
+ *  - $ENTITIES in `records` that don't already exist will be created.
+ *  - Existing $ENTITIES that are included in `records` will be updated.
+ *  - Existing $ENTITIES that are omitted from `records` will be deleted.
+ *
+ * @method $this setRecords(array $records) Set array of records.
  * @method array getRecords()
- * @method $this setDefaults(array $defaults) Array of defaults.
- * @method $this addDefault($name, $value) Add a default value.
+ * @method $this setDefaults(array $defaults) Set array of defaults.
  * @method array getDefaults()
  * @method $this setReload(bool $reload) Specify whether complete objects will be returned after saving.
  * @method bool getReload()
@@ -39,9 +43,9 @@ use Civi\Api4\Utils\ActionUtil;
 class BasicReplaceAction extends AbstractBatchAction {
 
   /**
-   * Array of records.
+   * Array of $ENTITY records.
    *
-   * Should be in the same format as returned by Get.
+   * Should be in the same format as returned by `Get`.
    *
    * @var array
    * @required
@@ -51,18 +55,23 @@ class BasicReplaceAction extends AbstractBatchAction {
   /**
    * Array of default values.
    *
-   * Will be merged into $records before saving.
+   * These defaults will be merged into every $ENTITY in `records` before saving.
+   * Values set in `records` will override these defaults if set in both places,
+   * but updating existing $ENTITIES will overwrite current values with these defaults.
+   *
+   * **Note:** Values from the `where` clause that use the `=` operator are _also_ treated as default values;
+   * those do not need to be repeated here.
    *
    * @var array
    */
   protected $defaults = [];
 
   /**
-   * Reload records after saving.
+   * Reload $ENTITIES after saving.
    *
-   * By default this api typically returns partial records containing only the fields
-   * that were updated. Set reload to TRUE to do an additional lookup after saving
-   * to return complete records.
+   * By default this action typically returns partial records containing only the fields
+   * that were updated. Set `reload` to `true` to do an additional lookup after saving
+   * to return complete values for every $ENTITY.
    *
    * @var bool
    */
@@ -91,36 +100,13 @@ class BasicReplaceAction extends AbstractBatchAction {
     $idField = $this->getSelect()[0];
     $toDelete = array_diff_key(array_column($items, NULL, $idField), array_flip(array_filter(\CRM_Utils_Array::collect($idField, $this->records))));
 
-    // Try to delegate to the Save action
-    try {
-      $saveAction = ActionUtil::getAction($this->getEntityName(), 'save');
-      $saveAction
-        ->setCheckPermissions($this->getCheckPermissions())
-        ->setReload($this->reload)
-        ->setRecords($this->records)
-        ->setDefaults($this->defaults);
-      $result->exchangeArray((array) $saveAction->execute());
-    }
-    // Fall back on Create/Update if Save doesn't exist
-    catch (NotImplementedException $e) {
-      foreach ($this->records as $record) {
-        $record += $this->defaults;
-        if (!empty($record[$idField])) {
-          $result[] = civicrm_api4($this->getEntityName(), 'update', [
-            'reload' => $this->reload,
-            'where' => [[$idField, '=', $record[$idField]]],
-            'values' => $record,
-            'checkPermissions' => $this->getCheckPermissions(),
-          ])->first();
-        }
-        else {
-          $result[] = civicrm_api4($this->getEntityName(), 'create', [
-            'values' => $record,
-            'checkPermissions' => $this->getCheckPermissions(),
-          ])->first();
-        }
-      }
-    }
+    $saveAction = ActionUtil::getAction($this->getEntityName(), 'save');
+    $saveAction
+      ->setCheckPermissions($this->getCheckPermissions())
+      ->setReload($this->reload)
+      ->setRecords($this->records)
+      ->setDefaults($this->defaults);
+    $result->exchangeArray((array) $saveAction->execute());
 
     if ($toDelete) {
       $result->deleted = (array) civicrm_api4($this->getEntityName(), 'delete', [
@@ -130,4 +116,25 @@ class BasicReplaceAction extends AbstractBatchAction {
     }
   }
 
+  /**
+   * Set default value for a field.
+   * @param string $fieldName
+   * @param mixed $defaultValue
+   * @return $this
+   */
+  public function addDefault(string $fieldName, $defaultValue) {
+    $this->defaults[$fieldName] = $defaultValue;
+    return $this;
+  }
+
+  /**
+   * Add one or more records
+   * @param array ...$records
+   * @return $this
+   */
+  public function addRecord(array ...$records) {
+    $this->records = array_merge($this->records, $records);
+    return $this;
+  }
+
 }
diff --git a/civicrm/Civi/Api4/Generic/BasicSaveAction.php b/civicrm/Civi/Api4/Generic/BasicSaveAction.php
index 9eef7c4346..b5c998af56 100644
--- a/civicrm/Civi/Api4/Generic/BasicSaveAction.php
+++ b/civicrm/Civi/Api4/Generic/BasicSaveAction.php
@@ -25,11 +25,11 @@ use Civi\API\Exception\NotImplementedException;
 use Civi\Api4\Utils\ActionUtil;
 
 /**
- * Create or update one or more records.
+ * $ACTION one or more $ENTITIES.
  *
- * If creating more than one record with similar values, use the "defaults" param.
+ * If saving more than one new $ENTITY with similar values, use the `defaults` parameter.
  *
- * Set "reload" if you need the api to return complete records.
+ * Set `reload` if you need the api to return complete $ENTITY records.
  */
 class BasicSaveAction extends AbstractSaveAction {
 
@@ -90,6 +90,7 @@ class BasicSaveAction extends AbstractSaveAction {
    */
   protected function writeRecord($item) {
     if (is_callable($this->setter)) {
+      $this->addCallbackToDebugOutput($this->setter);
       return call_user_func($this->setter, $item, $this);
     }
     throw new NotImplementedException('Setter function not found for api4 ' . $this->getEntityName() . '::' . $this->getActionName());
diff --git a/civicrm/Civi/Api4/Generic/BasicUpdateAction.php b/civicrm/Civi/Api4/Generic/BasicUpdateAction.php
index 8867523e48..a7c8865f8c 100644
--- a/civicrm/Civi/Api4/Generic/BasicUpdateAction.php
+++ b/civicrm/Civi/Api4/Generic/BasicUpdateAction.php
@@ -24,9 +24,9 @@ namespace Civi\Api4\Generic;
 use Civi\API\Exception\NotImplementedException;
 
 /**
- * Update one or more records with new values.
+ * Update one or more $ENTITY with new values.
  *
- * Use the where clause (required) to select them.
+ * Use the `where` clause (required) to select them.
  */
 class BasicUpdateAction extends AbstractUpdateAction {
 
@@ -64,10 +64,6 @@ class BasicUpdateAction extends AbstractUpdateAction {
     foreach ($this->getBatchRecords() as $item) {
       $result[] = $this->writeRecord($this->values + $item);
     }
-
-    if (!$result->count()) {
-      throw new \API_Exception('Cannot ' . $this->getActionName() . ' ' . $this->getEntityName() . ', no records found with ' . $this->whereClauseToString());
-    }
   }
 
   /**
@@ -84,6 +80,7 @@ class BasicUpdateAction extends AbstractUpdateAction {
    */
   protected function writeRecord($item) {
     if (is_callable($this->setter)) {
+      $this->addCallbackToDebugOutput($this->setter);
       return call_user_func($this->setter, $item, $this);
     }
     throw new NotImplementedException('Setter function not found for api4 ' . $this->getEntityName() . '::' . $this->getActionName());
diff --git a/civicrm/Civi/Api4/Generic/DAOCreateAction.php b/civicrm/Civi/Api4/Generic/DAOCreateAction.php
index 36b19a0a6d..c90b81116d 100644
--- a/civicrm/Civi/Api4/Generic/DAOCreateAction.php
+++ b/civicrm/Civi/Api4/Generic/DAOCreateAction.php
@@ -22,9 +22,10 @@
 namespace Civi\Api4\Generic;
 
 /**
- * Create a new object from supplied values.
+ * Create a new $ENTITY from supplied values.
  *
- * This function will create 1 new object. It cannot be used to update existing objects. Use the Update or Replace actions for that.
+ * This action will create 1 new $ENTITY.
+ * It cannot be used to update existing $ENTITIES; use the `Update` or `Replace` actions for that.
  */
 class DAOCreateAction extends AbstractCreateAction {
   use Traits\DAOActionTrait;
diff --git a/civicrm/Civi/Api4/Generic/DAODeleteAction.php b/civicrm/Civi/Api4/Generic/DAODeleteAction.php
index 9c2c3cee22..3e0135f899 100644
--- a/civicrm/Civi/Api4/Generic/DAODeleteAction.php
+++ b/civicrm/Civi/Api4/Generic/DAODeleteAction.php
@@ -22,7 +22,9 @@
 namespace Civi\Api4\Generic;
 
 /**
- * Delete one or more items, based on criteria specified in Where param (required).
+ * Delete one or more $ENTITIES.
+ *
+ * $ENTITIES are deleted based on criteria specified in `where` parameter (required).
  */
 class DAODeleteAction extends AbstractBatchAction {
   use Traits\DAOActionTrait;
@@ -32,19 +34,14 @@ class DAODeleteAction extends AbstractBatchAction {
    */
   public function _run(Result $result) {
     $defaults = $this->getParamDefaults();
-    if ($defaults['where'] && !array_diff_key($this->where, $defaults['where'])) {
+    if ($defaults['where'] && $this->where === $defaults['where']) {
       throw new \API_Exception('Cannot delete ' . $this->getEntityName() . ' with no "where" parameter specified');
     }
 
     $items = $this->getObjects();
-
-    if (!$items) {
-      throw new \API_Exception('Cannot delete ' . $this->getEntityName() . ', no records found with ' . $this->whereClauseToString());
+    if ($items) {
+      $result->exchangeArray($this->deleteObjects($items));
     }
-
-    $ids = $this->deleteObjects($items);
-
-    $result->exchangeArray($ids);
   }
 
   /**
diff --git a/civicrm/Civi/Api4/Generic/DAOEntity.php b/civicrm/Civi/Api4/Generic/DAOEntity.php
index 9fc8bb161b..38888227c6 100644
--- a/civicrm/Civi/Api4/Generic/DAOEntity.php
+++ b/civicrm/Civi/Api4/Generic/DAOEntity.php
@@ -34,7 +34,7 @@ abstract class DAOEntity extends AbstractEntity {
   }
 
   /**
-   * @return DAOGetAction
+   * @return DAOSaveAction
    */
   public static function save() {
     return new DAOSaveAction(static::class, __FUNCTION__);
diff --git a/civicrm/Civi/Api4/Generic/DAOGetAction.php b/civicrm/Civi/Api4/Generic/DAOGetAction.php
index 728506b7d0..c7472969f4 100644
--- a/civicrm/Civi/Api4/Generic/DAOGetAction.php
+++ b/civicrm/Civi/Api4/Generic/DAOGetAction.php
@@ -22,17 +22,29 @@
 namespace Civi\Api4\Generic;
 
 /**
- * Retrieve items based on criteria specified in the 'where' param.
+ * Retrieve $ENTITIES based on criteria specified in the `where` parameter.
  *
- * Use the 'select' param to determine which fields are returned, defaults to *.
+ * Use the `select` param to determine which fields are returned, defaults to `[*]`.
  *
  * Perform joins on other related entities using a dot notation.
  */
 class DAOGetAction extends AbstractGetAction {
   use Traits\DAOActionTrait;
 
+  /**
+   * Fields to return. Defaults to all non-custom fields `[*]`.
+   *
+   * Use the dot notation to perform joins in the select clause, e.g. selecting `['*', 'contact.*']` from `Email::get()`
+   * will select all fields for the email + all fields for the related contact.
+   *
+   * @var array
+   * @inheritDoc
+   */
+  protected $select = [];
+
   public function _run(Result $result) {
     $this->setDefaultWhereClause();
+    $this->expandSelectClauseWildcards();
     $result->exchangeArray($this->getObjects());
   }
 
diff --git a/civicrm/Civi/Api4/Generic/DAOGetFieldsAction.php b/civicrm/Civi/Api4/Generic/DAOGetFieldsAction.php
index d64155fd0b..992eca6707 100644
--- a/civicrm/Civi/Api4/Generic/DAOGetFieldsAction.php
+++ b/civicrm/Civi/Api4/Generic/DAOGetFieldsAction.php
@@ -24,8 +24,7 @@ namespace Civi\Api4\Generic;
 use Civi\Api4\Service\Spec\SpecFormatter;
 
 /**
- * Get fields for a DAO-based entity.
- *
+ * @inheritDoc
  * @method $this setIncludeCustom(bool $value)
  * @method bool getIncludeCustom()
  */
@@ -39,7 +38,7 @@ class DAOGetFieldsAction extends BasicGetFieldsAction {
   protected $includeCustom = TRUE;
 
   /**
-   * Get fields for a DAO-based entity
+   * Get fields for a DAO-based entity.
    *
    * @return array
    */
diff --git a/civicrm/Civi/Api4/Generic/DAOSaveAction.php b/civicrm/Civi/Api4/Generic/DAOSaveAction.php
index cd91e53be1..954ecae5ba 100644
--- a/civicrm/Civi/Api4/Generic/DAOSaveAction.php
+++ b/civicrm/Civi/Api4/Generic/DAOSaveAction.php
@@ -22,11 +22,11 @@
 namespace Civi\Api4\Generic;
 
 /**
- * Create or update one or more records.
+ * Create or update one or more $ENTITIES.
  *
- * If creating more than one record with similar values, use the "defaults" param.
+ * If creating more than one $ENTITY with similar values, use the `defaults` param.
  *
- * Set "reload" if you need the api to return complete records.
+ * Set `reload` if you need the api to return complete records for each saved $ENTITY.
  */
 class DAOSaveAction extends AbstractSaveAction {
   use Traits\DAOActionTrait;
diff --git a/civicrm/Civi/Api4/Generic/DAOUpdateAction.php b/civicrm/Civi/Api4/Generic/DAOUpdateAction.php
index fb5c45cfd4..b2768ee4d1 100644
--- a/civicrm/Civi/Api4/Generic/DAOUpdateAction.php
+++ b/civicrm/Civi/Api4/Generic/DAOUpdateAction.php
@@ -22,9 +22,9 @@
 namespace Civi\Api4\Generic;
 
 /**
- * Update one or more records with new values.
+ * Update one or more $ENTITY with new values.
  *
- * Use the where clause (required) to select them.
+ * Use the `where` clause (required) to select them.
  */
 class DAOUpdateAction extends AbstractUpdateAction {
   use Traits\DAOActionTrait;
@@ -71,10 +71,6 @@ class DAOUpdateAction extends AbstractUpdateAction {
       $item = $this->values + $item;
     }
 
-    if (!$items) {
-      throw new \API_Exception('Cannot ' . $this->getActionName() . ' ' . $this->getEntityName() . ', no records found with ' . $this->whereClauseToString());
-    }
-
     $result->exchangeArray($this->writeObjects($items));
   }
 
diff --git a/civicrm/Civi/Api4/Generic/Result.php b/civicrm/Civi/Api4/Generic/Result.php
index ca10ef6f5d..fa6561a330 100644
--- a/civicrm/Civi/Api4/Generic/Result.php
+++ b/civicrm/Civi/Api4/Generic/Result.php
@@ -13,6 +13,14 @@ namespace Civi\Api4\Generic;
 
 /**
  * Container for api results.
+ *
+ * The Result object has three functions:
+ *
+ *  1. Store the results of the API call (accessible via ArrayAccess).
+ *  2. Store metadata like the Entity & Action names.
+ *     - Note: some actions extend the Result object to store extra metadata.
+ *       For example, BasicReplaceAction returns ReplaceResult which includes the additional $deleted property to list any items deleted by the operation.
+ *  3. Provide convenience methods like `$result->first()` and `$result->indexBy($field)`.
  */
 class Result extends \ArrayObject {
   /**
@@ -23,6 +31,10 @@ class Result extends \ArrayObject {
    * @var string
    */
   public $action;
+  /**
+   * @var array
+   */
+  public $debug;
   /**
    * Api version
    * @var int
diff --git a/civicrm/Civi/Api4/Generic/Traits/DAOActionTrait.php b/civicrm/Civi/Api4/Generic/Traits/DAOActionTrait.php
index 3748daa4ab..451e31f7f2 100644
--- a/civicrm/Civi/Api4/Generic/Traits/DAOActionTrait.php
+++ b/civicrm/Civi/Api4/Generic/Traits/DAOActionTrait.php
@@ -20,7 +20,6 @@
 
 namespace Civi\Api4\Generic\Traits;
 
-use CRM_Utils_Array as UtilsArray;
 use Civi\Api4\Utils\FormattingUtil;
 use Civi\Api4\Query\Api4SelectQuery;
 
@@ -76,6 +75,9 @@ trait DAOActionTrait {
     $query->orderBy = $this->getOrderBy();
     $query->limit = $this->getLimit();
     $query->offset = $this->getOffset();
+    if ($this->getDebug()) {
+      $query->debugOutput =& $this->_debugOutput;
+    }
     $result = $query->run();
     if (is_array($result)) {
       \CRM_Utils_API_HTMLInputCoder::singleton()->decodeRows($result);
@@ -129,7 +131,7 @@ trait DAOActionTrait {
     $result = [];
 
     foreach ($items as $item) {
-      $entityId = UtilsArray::value('id', $item);
+      $entityId = $item['id'] ?? NULL;
       FormattingUtil::formatWriteParams($item, $this->getEntityName(), $this->entityFields());
       $this->formatCustomParams($item, $entityId);
       $item['check_permissions'] = $this->getCheckPermissions();
@@ -167,6 +169,7 @@ trait DAOActionTrait {
 
       $result[] = $resultArray;
     }
+    FormattingUtil::formatOutputValues($result, $this->entityFields(), $this->getEntityName());
     return $result;
   }
 
@@ -180,7 +183,7 @@ trait DAOActionTrait {
     $baoName = $this->getBaoName();
     $hook = empty($params['id']) ? 'create' : 'edit';
 
-    \CRM_Utils_Hook::pre($hook, $this->getEntityName(), UtilsArray::value('id', $params), $params);
+    \CRM_Utils_Hook::pre($hook, $this->getEntityName(), $params['id'] ?? NULL, $params);
     /** @var \CRM_Core_DAO $instance */
     $instance = new $baoName();
     $instance->copyValues($params, TRUE);
diff --git a/civicrm/Civi/Api4/Group.php b/civicrm/Civi/Api4/Group.php
index 334e62d17e..b1cfa8591a 100644
--- a/civicrm/Civi/Api4/Group.php
+++ b/civicrm/Civi/Api4/Group.php
@@ -18,12 +18,13 @@
  *
  */
 
-
 namespace Civi\Api4;
 
 /**
  * Group entity.
  *
+ * @see https://docs.civicrm.org/user/en/latest/organising-your-data/groups-and-tags/#groups
+ *
  * @package Civi\Api4
  */
 class Group extends Generic\DAOEntity {
diff --git a/civicrm/Civi/Api4/GroupContact.php b/civicrm/Civi/Api4/GroupContact.php
index 7af2722431..62d1b2dc0f 100644
--- a/civicrm/Civi/Api4/GroupContact.php
+++ b/civicrm/Civi/Api4/GroupContact.php
@@ -18,7 +18,6 @@
  *
  */
 
-
 namespace Civi\Api4;
 
 /**
@@ -27,6 +26,8 @@ namespace Civi\Api4;
  * A contact can either be "Added" "Removed" or "Pending" in a group.
  * CiviCRM only considers them to be "in" a group if their status is "Added".
  *
+ * @see \Civi\Api4\Group
+ *
  * @package Civi\Api4
  */
 class GroupContact extends Generic\DAOEntity {
diff --git a/civicrm/Civi/Api4/GroupNesting.php b/civicrm/Civi/Api4/GroupNesting.php
index 83e4ad77d7..96276beee6 100644
--- a/civicrm/Civi/Api4/GroupNesting.php
+++ b/civicrm/Civi/Api4/GroupNesting.php
@@ -23,6 +23,8 @@ namespace Civi\Api4;
 /**
  * GroupNesting entity.
  *
+ * @see \Civi\Api4\Group
+ *
  * @package Civi\Api4
  */
 class GroupNesting extends Generic\DAOEntity {
diff --git a/civicrm/Civi/Api4/GroupOrganization.php b/civicrm/Civi/Api4/GroupOrganization.php
index a640e2cb93..e98654dcf4 100644
--- a/civicrm/Civi/Api4/GroupOrganization.php
+++ b/civicrm/Civi/Api4/GroupOrganization.php
@@ -23,6 +23,9 @@ namespace Civi\Api4;
 /**
  * GroupOrganization entity.
  *
+ * Relates groups to organizations.
+ *
+ * @see \Civi\Api4\Group
  * @package Civi\Api4
  */
 class GroupOrganization extends Generic\DAOEntity {
diff --git a/civicrm/Civi/Api4/Mapping.php b/civicrm/Civi/Api4/Mapping.php
index 341cf1698f..c54f0dd534 100644
--- a/civicrm/Civi/Api4/Mapping.php
+++ b/civicrm/Civi/Api4/Mapping.php
@@ -18,7 +18,6 @@
  *
  */
 
-
 namespace Civi\Api4;
 
 /**
diff --git a/civicrm/Civi/Api4/MappingField.php b/civicrm/Civi/Api4/MappingField.php
index e59be2b131..16cf57ad56 100644
--- a/civicrm/Civi/Api4/MappingField.php
+++ b/civicrm/Civi/Api4/MappingField.php
@@ -18,7 +18,6 @@
  *
  */
 
-
 namespace Civi\Api4;
 
 /**
@@ -26,6 +25,8 @@ namespace Civi\Api4;
  *
  * This represents one field in a Mapping collection.
  *
+ * @see \Civi\Api4\Mapping
+ *
  * @package Civi\Api4
  */
 class MappingField extends Generic\DAOEntity {
diff --git a/civicrm/Civi/Api4/Navigation.php b/civicrm/Civi/Api4/Navigation.php
index 440a4818df..9833842ec7 100644
--- a/civicrm/Civi/Api4/Navigation.php
+++ b/civicrm/Civi/Api4/Navigation.php
@@ -18,7 +18,6 @@
  *
  */
 
-
 namespace Civi\Api4;
 
 /**
diff --git a/civicrm/Civi/Api4/OptionGroup.php b/civicrm/Civi/Api4/OptionGroup.php
index 751334945c..22f28d5fcf 100644
--- a/civicrm/Civi/Api4/OptionGroup.php
+++ b/civicrm/Civi/Api4/OptionGroup.php
@@ -24,6 +24,7 @@ namespace Civi\Api4;
 /**
  * OptionGroup entity.
  *
+ * @see \Civi\Api4\OptionValue
  * @package Civi\Api4
  */
 class OptionGroup extends Generic\DAOEntity {
diff --git a/civicrm/Civi/Api4/OptionValue.php b/civicrm/Civi/Api4/OptionValue.php
index 8d8946d2eb..98e9cae388 100644
--- a/civicrm/Civi/Api4/OptionValue.php
+++ b/civicrm/Civi/Api4/OptionValue.php
@@ -24,6 +24,7 @@ namespace Civi\Api4;
 /**
  * OptionValue entity.
  *
+ * @see \Civi\Api4\OptionGroup
  * @package Civi\Api4
  */
 class OptionValue extends Generic\DAOEntity {
diff --git a/civicrm/Civi/Api4/Participant.php b/civicrm/Civi/Api4/Participant.php
index a5c4115f61..473deace0c 100644
--- a/civicrm/Civi/Api4/Participant.php
+++ b/civicrm/Civi/Api4/Participant.php
@@ -18,7 +18,6 @@
  *
  */
 
-
 namespace Civi\Api4;
 
 /**
diff --git a/civicrm/Civi/Api4/PaymentProcessor.php b/civicrm/Civi/Api4/PaymentProcessor.php
new file mode 100644
index 0000000000..c15a448733
--- /dev/null
+++ b/civicrm/Civi/Api4/PaymentProcessor.php
@@ -0,0 +1,29 @@
+<?php
+/*
+ +--------------------------------------------------------------------+
+ | Copyright CiviCRM LLC. All rights reserved.                        |
+ |                                                                    |
+ | This work is published under the GNU AGPLv3 license with some      |
+ | permitted exceptions and without any warranty. For full license    |
+ | and copyright information, see https://civicrm.org/licensing       |
+ +--------------------------------------------------------------------+
+ */
+
+/**
+ *
+ * @package CRM
+ * @copyright CiviCRM LLC https://civicrm.org/licensing
+ */
+
+namespace Civi\Api4;
+
+/**
+ * Payment Processor entity.
+ *
+ * @see https://docs.civicrm.org/sysadmin/en/latest/setup/payment-processors/
+ *
+ * @package Civi\Api4
+ */
+class PaymentProcessor extends Generic\DAOEntity {
+
+}
diff --git a/civicrm/Civi/Api4/PaymentProcessorType.php b/civicrm/Civi/Api4/PaymentProcessorType.php
new file mode 100644
index 0000000000..425d4ba122
--- /dev/null
+++ b/civicrm/Civi/Api4/PaymentProcessorType.php
@@ -0,0 +1,29 @@
+<?php
+/*
+ +--------------------------------------------------------------------+
+ | Copyright CiviCRM LLC. All rights reserved.                        |
+ |                                                                    |
+ | This work is published under the GNU AGPLv3 license with some      |
+ | permitted exceptions and without any warranty. For full license    |
+ | and copyright information, see https://civicrm.org/licensing       |
+ +--------------------------------------------------------------------+
+ */
+
+/**
+ *
+ * @package CRM
+ * @copyright CiviCRM LLC https://civicrm.org/licensing
+ */
+
+namespace Civi\Api4;
+
+/**
+ * Payment Processor Type entity.
+ *
+ * @see \Civi\Api4\PaymentProcessor
+ *
+ * @package Civi\Api4
+ */
+class PaymentProcessorType extends Generic\DAOEntity {
+
+}
diff --git a/civicrm/Civi/Api4/Provider/ActionObjectProvider.php b/civicrm/Civi/Api4/Provider/ActionObjectProvider.php
index 2180672cb0..b31c3d323f 100644
--- a/civicrm/Civi/Api4/Provider/ActionObjectProvider.php
+++ b/civicrm/Civi/Api4/Provider/ActionObjectProvider.php
@@ -61,7 +61,7 @@ class ActionObjectProvider implements EventSubscriberInterface, ProviderInterfac
     // Load result class based on @return annotation in the execute() method.
     $reflection = new \ReflectionClass($action);
     $doc = ReflectionUtils::getCodeDocs($reflection->getMethod('execute'), 'Method');
-    $resultClass = \CRM_Utils_Array::value('return', $doc, '\\Civi\\Api4\\Generic\\Result');
+    $resultClass = $doc['return'][0] ?? '\\Civi\\Api4\\Generic\\Result';
     $result = new $resultClass();
     $result->action = $action->getActionName();
     $result->entity = $action->getEntityName();
diff --git a/civicrm/Civi/Api4/Query/Api4SelectQuery.php b/civicrm/Civi/Api4/Query/Api4SelectQuery.php
index 80ecaf55cf..4181543bbc 100644
--- a/civicrm/Civi/Api4/Query/Api4SelectQuery.php
+++ b/civicrm/Civi/Api4/Query/Api4SelectQuery.php
@@ -18,6 +18,7 @@ use Civi\Api4\Service\Schema\Joinable\CustomGroupJoinable;
 use Civi\Api4\Service\Schema\Joinable\Joinable;
 use Civi\Api4\Utils\FormattingUtil;
 use Civi\Api4\Utils\CoreUtil;
+use Civi\Api4\Utils\SelectUtil;
 use CRM_Core_DAO_AllCoreTables as AllCoreTables;
 use CRM_Utils_Array as UtilsArray;
 
@@ -53,6 +54,13 @@ class Api4SelectQuery extends SelectQuery {
    */
   protected $joinedTables = [];
 
+  /**
+   * If set to an array, this will start collecting debug info.
+   *
+   * @var null|array
+   */
+  public $debugOutput = NULL;
+
   /**
    * @param string $entity
    * @param bool $checkPermissions
@@ -104,6 +112,9 @@ class Api4SelectQuery extends SelectQuery {
 
     $results = [];
     $sql = $this->query->toSQL();
+    if (is_array($this->debugOutput)) {
+      $this->debugOutput['sql'][] = $sql;
+    }
     $query = \CRM_Core_DAO::executeQuery($sql);
 
     while ($query->fetch()) {
@@ -161,15 +172,8 @@ class Api4SelectQuery extends SelectQuery {
    * @throws \Civi\API\Exception\UnauthorizedException
    */
   protected function buildSelectFields() {
-    $return_all_fields = (empty($this->select) || !is_array($this->select));
-    $return = $return_all_fields ? $this->entityFieldNames : $this->select;
-    if ($return_all_fields || in_array('custom', $this->select)) {
-      foreach (array_keys($this->apiFieldSpec) as $fieldName) {
-        if (strpos($fieldName, 'custom_') === 0) {
-          $return[] = $fieldName;
-        }
-      }
-    }
+    $selectAll = (empty($this->select) || in_array('*', $this->select));
+    $select = $selectAll ? $this->entityFieldNames : $this->select;
 
     // Always select the ID if the table has one.
     if (array_key_exists('id', $this->apiFieldSpec) || strstr($this->entity, 'Custom_')) {
@@ -177,7 +181,7 @@ class Api4SelectQuery extends SelectQuery {
     }
 
     // core return fields
-    foreach ($return as $fieldName) {
+    foreach ($select as $fieldName) {
       $field = $this->getField($fieldName);
       if (strpos($fieldName, '.') && !empty($this->fkSelectAliases[$fieldName]) && !array_filter($this->getPathJoinTypes($fieldName))) {
         $this->selectFields[$this->fkSelectAliases[$fieldName]] = $fieldName;
@@ -280,7 +284,7 @@ class Api4SelectQuery extends SelectQuery {
       throw new \API_Exception("Invalid field '$key' in where clause.");
     }
 
-    FormattingUtil::formatValue($value, $fieldSpec, $this->getEntity());
+    FormattingUtil::formatInputValue($value, $fieldSpec, $this->getEntity());
 
     $sql_clause = \CRM_Core_DAO::createSQLFilter("`$table_name`.`$column_name`", [$operator => $value]);
     if ($sql_clause === NULL) {
@@ -338,6 +342,14 @@ class Api4SelectQuery extends SelectQuery {
     /** @var \Civi\Api4\Service\Schema\Joinable\Joinable $lastLink */
     $lastLink = array_pop($joinPath);
 
+    $isWild = strpos($field, '*') !== FALSE;
+    if ($isWild) {
+      if (!in_array($key, $this->select)) {
+        throw new \API_Exception('Wildcards can only be used in the SELECT clause.');
+      }
+      $this->select = array_diff($this->select, [$key]);
+    }
+
     // Cache field info for retrieval by $this->getField()
     $prefix = array_pop($pathArray) . '.';
     if (!isset($this->apiFieldSpec[$prefix . $field])) {
@@ -351,19 +363,29 @@ class Api4SelectQuery extends SelectQuery {
       }
     }
 
-    if (!$lastLink->getField($field)) {
+    if (!$isWild && !$lastLink->getField($field)) {
       throw new \API_Exception('Invalid join');
     }
 
-    // custom groups use aliases for field names
-    if ($lastLink instanceof CustomGroupJoinable) {
-      $field = $lastLink->getSqlColumn($field);
+    $fields = $isWild ? [] : [$field];
+    // Expand wildcard and add matching fields to $this->select
+    if ($isWild) {
+      $fields = SelectUtil::getMatchingFields($field, $lastLink->getEntityFieldNames());
+      foreach ($fields as $field) {
+        $this->select[] = $pathString . '.' . $field;
+      }
+      $this->select = array_unique($this->select);
     }
-    // Check Permission on field.
-    if ($this->checkPermissions && !empty($this->apiFieldSpec[$prefix . $field]['permission']) && !\CRM_Core_Permission::check($this->apiFieldSpec[$prefix . $field]['permission'])) {
-      return;
+
+    foreach ($fields as $field) {
+      // custom groups use aliases for field names
+      $col = ($lastLink instanceof CustomGroupJoinable) ? $lastLink->getSqlColumn($field) : $field;
+      // Check Permission on field.
+      if ($this->checkPermissions && !empty($this->apiFieldSpec[$prefix . $field]['permission']) && !\CRM_Core_Permission::check($this->apiFieldSpec[$prefix . $field]['permission'])) {
+        return;
+      }
+      $this->fkSelectAliases[$pathString . '.' . $field] = sprintf('%s.%s', $lastLink->getAlias(), $col);
     }
-    $this->fkSelectAliases[$key] = sprintf('%s.%s', $lastLink->getAlias(), $field);
   }
 
   /**
diff --git a/civicrm/Civi/Api4/Relationship.php b/civicrm/Civi/Api4/Relationship.php
index b7e26270c4..d1a76fede9 100644
--- a/civicrm/Civi/Api4/Relationship.php
+++ b/civicrm/Civi/Api4/Relationship.php
@@ -24,6 +24,8 @@ namespace Civi\Api4;
 /**
  * Relationship entity.
  *
+ * @see https://docs.civicrm.org/user/en/latest/organising-your-data/relationships/
+ *
  * @package Civi\Api4
  */
 class Relationship extends Generic\DAOEntity {
diff --git a/civicrm/Civi/Api4/RelationshipType.php b/civicrm/Civi/Api4/RelationshipType.php
index ea874c4452..59a10a6c37 100644
--- a/civicrm/Civi/Api4/RelationshipType.php
+++ b/civicrm/Civi/Api4/RelationshipType.php
@@ -24,6 +24,8 @@ namespace Civi\Api4;
 /**
  * RelationshipType entity.
  *
+ * @see \Civi\Api4\Relationship
+ *
  * @package Civi\Api4
  */
 class RelationshipType extends Generic\DAOEntity {
diff --git a/civicrm/Civi/Api4/Route.php b/civicrm/Civi/Api4/Route.php
index e1c5b779c5..f3d36bc61c 100644
--- a/civicrm/Civi/Api4/Route.php
+++ b/civicrm/Civi/Api4/Route.php
@@ -22,6 +22,17 @@ namespace Civi\Api4;
 
 use Civi\Api4\Generic\BasicGetFieldsAction;
 
+/**
+ * CiviCRM menu route.
+ *
+ * Provides page routes registered in the CiviCRM menu system.
+ *
+ * Note: this is a read-only api as routes are set via xml files and hooks.
+ *
+ * @see https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_alterMenu/
+ *
+ * @package Civi\Api4
+ */
 class Route extends \Civi\Api4\Generic\AbstractEntity {
 
   /**
diff --git a/civicrm/Civi/Api4/Service/Schema/Joinable/CustomGroupJoinable.php b/civicrm/Civi/Api4/Service/Schema/Joinable/CustomGroupJoinable.php
index 3e57abfbb0..695c7b5662 100644
--- a/civicrm/Civi/Api4/Service/Schema/Joinable/CustomGroupJoinable.php
+++ b/civicrm/Civi/Api4/Service/Schema/Joinable/CustomGroupJoinable.php
@@ -86,6 +86,9 @@ class CustomGroupJoinable extends Joinable {
    * @return string
    */
   public function getSqlColumn($fieldName) {
+    if (strpos($fieldName, '.') !== FALSE) {
+      $fieldName = substr($fieldName, 1 + strrpos($fieldName, '.'));
+    }
     return $this->columns[$fieldName];
   }
 
diff --git a/civicrm/Civi/Api4/Service/Schema/Joinable/Joinable.php b/civicrm/Civi/Api4/Service/Schema/Joinable/Joinable.php
index a0b6338bef..3cd51f970d 100644
--- a/civicrm/Civi/Api4/Service/Schema/Joinable/Joinable.php
+++ b/civicrm/Civi/Api4/Service/Schema/Joinable/Joinable.php
@@ -281,6 +281,17 @@ class Joinable {
     return $this->entityFields;
   }
 
+  /**
+   * @return array
+   */
+  public function getEntityFieldNames() {
+    $fieldNames = [];
+    foreach ($this->getEntityFields() as $fieldSpec) {
+      $fieldNames[] = $fieldSpec->getName();
+    }
+    return $fieldNames;
+  }
+
   /**
    * @return \Civi\Api4\Service\Spec\FieldSpec|NULL
    */
diff --git a/civicrm/Civi/Api4/Service/Spec/Provider/PaymentProcessorCreationSpecProvider.php b/civicrm/Civi/Api4/Service/Spec/Provider/PaymentProcessorCreationSpecProvider.php
new file mode 100644
index 0000000000..ec6a236080
--- /dev/null
+++ b/civicrm/Civi/Api4/Service/Spec/Provider/PaymentProcessorCreationSpecProvider.php
@@ -0,0 +1,52 @@
+<?php
+/*
+ +--------------------------------------------------------------------+
+ | Copyright CiviCRM LLC. All rights reserved.                        |
+ |                                                                    |
+ | This work is published under the GNU AGPLv3 license with some      |
+ | permitted exceptions and without any warranty. For full license    |
+ | and copyright information, see https://civicrm.org/licensing       |
+ +--------------------------------------------------------------------+
+ */
+
+/**
+ *
+ * @package CRM
+ * @copyright CiviCRM LLC https://civicrm.org/licensing
+ */
+
+namespace Civi\Api4\Service\Spec\Provider;
+
+use Civi\Api4\Service\Spec\FieldSpec;
+use Civi\Api4\Service\Spec\RequestSpec;
+
+class PaymentProcessorCreationSpecProvider implements Generic\SpecProviderInterface {
+
+  /**
+   * This runs for both create and get actions
+   *
+   * @inheritDoc
+   */
+  public function modifySpec(RequestSpec $spec) {
+    $spec->getFieldByName('domain_id')->setRequired(FALSE)->setDefaultValue('current_domain');
+    // Billing mode is copied across from the payment processor type field in the BAO::create function.
+    $spec->getFieldByName('billing_mode')->setRequired(FALSE);
+
+    $financial_account_id = new FieldSpec('financial_account_id', 'PaymentProcessor', 'Integer');
+    $financial_account_id
+      ->setTitle('Financial Account ID')
+      ->setDescription('The financial account that this payment processor is linked to')
+      ->setRequired(FALSE)
+      ->setDefaultValue(\CRM_Financial_BAO_PaymentProcessor::getDefaultFinancialAccountID())
+      ->setFkEntity('FinancialAccount');
+    $spec->addFieldSpec($financial_account_id);
+  }
+
+  /**
+   * @inheritDoc
+   */
+  public function applies($entity, $action) {
+    return $entity === 'PaymentProcessor' && in_array($action, ['create']);
+  }
+
+}
diff --git a/civicrm/Civi/Api4/Service/Spec/Provider/PaymentProcessorTypeCreationSpecProvider.php b/civicrm/Civi/Api4/Service/Spec/Provider/PaymentProcessorTypeCreationSpecProvider.php
new file mode 100644
index 0000000000..f0ed1edf87
--- /dev/null
+++ b/civicrm/Civi/Api4/Service/Spec/Provider/PaymentProcessorTypeCreationSpecProvider.php
@@ -0,0 +1,56 @@
+<?php
+/*
+ +--------------------------------------------------------------------+
+ | CiviCRM version 5                                                  |
+ +--------------------------------------------------------------------+
+ | Copyright CiviCRM LLC (c) 2004-2019                                |
+ +--------------------------------------------------------------------+
+ | This file is a part of CiviCRM.                                    |
+ |                                                                    |
+ | CiviCRM is free software; you can copy, modify, and distribute it  |
+ | under the terms of the GNU Affero General Public License           |
+ | Version 3, 19 November 2007 and the CiviCRM Licensing Exception.   |
+ |                                                                    |
+ | CiviCRM is distributed in the hope that it will be useful, but     |
+ | WITHOUT ANY WARRANTY; without even the implied warranty of         |
+ | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.               |
+ | See the GNU Affero General Public License for more details.        |
+ |                                                                    |
+ | You should have received a copy of the GNU Affero General Public   |
+ | License and the CiviCRM Licensing Exception along                  |
+ | with this program; if not, contact CiviCRM LLC                     |
+ | at info[AT]civicrm[DOT]org. If you have questions about the        |
+ | GNU Affero General Public License or the licensing of CiviCRM,     |
+ | see the CiviCRM license FAQ at http://civicrm.org/licensing        |
+ +--------------------------------------------------------------------+
+ */
+/**
+ *
+ * @package CRM
+ * @copyright CiviCRM LLC (c) 2004-2019
+ * $Id$
+ *
+ */
+namespace Civi\Api4\Service\Spec\Provider;
+
+use Civi\Api4\Service\Spec\RequestSpec;
+
+class PaymentProcessorTypeCreationSpecProvider implements Generic\SpecProviderInterface {
+
+  /**
+   * This runs for both create and get actions
+   *
+   * @inheritDoc
+   */
+  public function modifySpec(RequestSpec $spec) {
+    $spec->getFieldByName('payment_instrument_id')->setRequired(FALSE)->setDefaultValue(1);
+  }
+
+  /**
+   * @inheritDoc
+   */
+  public function applies($entity, $action) {
+    return $entity === 'PaymentProcessorType' && in_array($action, ['create']);
+  }
+
+}
diff --git a/civicrm/Civi/Api4/Service/Spec/SpecGatherer.php b/civicrm/Civi/Api4/Service/Spec/SpecGatherer.php
index 0edb4e8c6a..dc7304731c 100644
--- a/civicrm/Civi/Api4/Service/Spec/SpecGatherer.php
+++ b/civicrm/Civi/Api4/Service/Spec/SpecGatherer.php
@@ -42,7 +42,7 @@ class SpecGatherer {
   /**
    * Returns a RequestSpec with all the fields available. Uses spec providers
    * to add or modify field specifications.
-   * For an example @see CustomFieldSpecProvider.
+   * @see \Civi\Api4\Service\Spec\Provider\CustomFieldCreationSpecProvider
    *
    * @param string $entity
    * @param string $action
diff --git a/civicrm/Civi/Api4/Setting.php b/civicrm/Civi/Api4/Setting.php
index cded4ed519..8b269fe214 100644
--- a/civicrm/Civi/Api4/Setting.php
+++ b/civicrm/Civi/Api4/Setting.php
@@ -26,6 +26,7 @@ namespace Civi\Api4;
  *
  * Used to read/write persistent setting data from CiviCRM.
  *
+ * @see \Civi\Core\SettingsBag
  * @package Civi\Api4
  */
 class Setting extends Generic\AbstractEntity {
diff --git a/civicrm/Civi/Api4/StatusPreference.php b/civicrm/Civi/Api4/StatusPreference.php
index d7318a5c90..0b106b2ae7 100644
--- a/civicrm/Civi/Api4/StatusPreference.php
+++ b/civicrm/Civi/Api4/StatusPreference.php
@@ -22,6 +22,8 @@
 namespace Civi\Api4;
 
 /**
+ * StatusPreference entity.
+ *
  * For setting "hush" preferences for system check alerts.
  *
  * @package Civi\Api4
diff --git a/civicrm/Civi/Api4/Tag.php b/civicrm/Civi/Api4/Tag.php
index 9d03a7f8bd..2aae3769ea 100644
--- a/civicrm/Civi/Api4/Tag.php
+++ b/civicrm/Civi/Api4/Tag.php
@@ -27,6 +27,7 @@ namespace Civi\Api4;
  * Tags in CiviCRM are used for Contacts, Activities, Cases & Attachments.
  * They are connected to those entities via the EntityTag table.
  *
+ * @see https://docs.civicrm.org/user/en/latest/organising-your-data/groups-and-tags/#tags
  * @package Civi\Api4
  */
 class Tag extends Generic\DAOEntity {
diff --git a/civicrm/Civi/Api4/UFField.php b/civicrm/Civi/Api4/UFField.php
index df6970c9e8..3cb294f98f 100644
--- a/civicrm/Civi/Api4/UFField.php
+++ b/civicrm/Civi/Api4/UFField.php
@@ -24,6 +24,7 @@ namespace Civi\Api4;
 /**
  * UFField entity - aka profile fields.
  *
+ * @see \Civi\Api4\UFGroup
  * @package Civi\Api4
  */
 class UFField extends Generic\DAOEntity {
diff --git a/civicrm/Civi/Api4/UFGroup.php b/civicrm/Civi/Api4/UFGroup.php
index 890f34f311..dbf4b28820 100644
--- a/civicrm/Civi/Api4/UFGroup.php
+++ b/civicrm/Civi/Api4/UFGroup.php
@@ -24,6 +24,7 @@ namespace Civi\Api4;
 /**
  * UFGroup entity - AKA profiles.
  *
+ * @see https://docs.civicrm.org/user/en/latest/organising-your-data/profiles/
  * @package Civi\Api4
  */
 class UFGroup extends Generic\DAOEntity {
diff --git a/civicrm/Civi/Api4/UFJoin.php b/civicrm/Civi/Api4/UFJoin.php
index 995e34f5a5..6112ee1c1d 100644
--- a/civicrm/Civi/Api4/UFJoin.php
+++ b/civicrm/Civi/Api4/UFJoin.php
@@ -24,6 +24,7 @@ namespace Civi\Api4;
 /**
  * UFJoin entity - links profiles to the components/extensions they are used for.
  *
+ * @see \Civi\Api4\UFGroup
  * @package Civi\Api4
  */
 class UFJoin extends Generic\DAOEntity {
diff --git a/civicrm/Civi/Api4/Utils/FormattingUtil.php b/civicrm/Civi/Api4/Utils/FormattingUtil.php
index 21c3d4e6b5..b4a55d493c 100644
--- a/civicrm/Civi/Api4/Utils/FormattingUtil.php
+++ b/civicrm/Civi/Api4/Utils/FormattingUtil.php
@@ -21,8 +21,6 @@
 
 namespace Civi\Api4\Utils;
 
-use CRM_Utils_Array as UtilsArray;
-
 require_once 'api/v3/utils.php';
 
 class FormattingUtil {
@@ -43,7 +41,7 @@ class FormattingUtil {
         if ($value === 'null') {
           $value = 'Null';
         }
-        FormattingUtil::formatValue($value, $field, $entity);
+        self::formatInputValue($value, $field, $entity);
         // Ensure we have an array for serialized fields
         if (!empty($field['serialize'] && !is_array($value))) {
           $value = (array) $value;
@@ -80,18 +78,14 @@ class FormattingUtil {
    *   Ex: 'Contact', 'Domain'
    * @throws \API_Exception
    */
-  public static function formatValue(&$value, $fieldSpec, $entity) {
+  public static function formatInputValue(&$value, $fieldSpec, $entity) {
     if (is_array($value)) {
       foreach ($value as &$val) {
-        self::formatValue($val, $fieldSpec, $entity);
+        self::formatInputValue($val, $fieldSpec, $entity);
       }
       return;
     }
-    $fk = UtilsArray::value('fk_entity', $fieldSpec);
-    if ($fieldSpec['name'] == 'id') {
-      $fk = $entity;
-    }
-    $dataType = UtilsArray::value('data_type', $fieldSpec);
+    $fk = $fieldSpec['name'] == 'id' ? $entity : $fieldSpec['fk_entity'] ?? NULL;
 
     if ($fk === 'Domain' && $value === 'current_domain') {
       $value = \CRM_Core_Config::domainID();
@@ -104,7 +98,7 @@ class FormattingUtil {
       }
     }
 
-    switch ($dataType) {
+    switch ($fieldSpec['data_type'] ?? NULL) {
       case 'Timestamp':
         $value = date('Y-m-d H:i:s', strtotime($value));
         break;
@@ -120,4 +114,73 @@ class FormattingUtil {
     }
   }
 
+  /**
+   * Unserialize raw DAO values and convert to correct type
+   *
+   * @param array $results
+   * @param array $fields
+   * @param string $entity
+   * @throws \CRM_Core_Exception
+   */
+  public static function formatOutputValues(&$results, $fields, $entity) {
+    foreach ($results as &$result) {
+      // Remove inapplicable contact fields
+      if ($entity === 'Contact' && !empty($result['contact_type'])) {
+        \CRM_Utils_Array::remove($result, self::contactFieldsToRemove($result['contact_type']));
+      }
+      foreach ($result as $field => $value) {
+        $dataType = $fields[$field]['data_type'] ?? ($field == 'id' ? 'Integer' : NULL);
+        if (!empty($fields[$field]['serialize'])) {
+          if (is_string($value)) {
+            $result[$field] = $value = \CRM_Core_DAO::unSerializeField($value, $fields[$field]['serialize']);
+            foreach ($value as $key => $val) {
+              $result[$field][$key] = self::convertDataType($val, $dataType);
+            }
+          }
+        }
+        else {
+          $result[$field] = self::convertDataType($value, $dataType);
+        }
+      }
+    }
+  }
+
+  /**
+   * @param mixed $value
+   * @param string $dataType
+   * @return mixed
+   */
+  public static function convertDataType($value, $dataType) {
+    if (isset($value)) {
+      switch ($dataType) {
+        case 'Boolean':
+          return (bool) $value;
+
+        case 'Integer':
+          return (int) $value;
+
+        case 'Money':
+        case 'Float':
+          return (float) $value;
+      }
+    }
+    return $value;
+  }
+
+  /**
+   * @param string $contactType
+   * @return array
+   */
+  public static function contactFieldsToRemove($contactType) {
+    if (!isset(\Civi::$statics[__CLASS__][__FUNCTION__][$contactType])) {
+      \Civi::$statics[__CLASS__][__FUNCTION__][$contactType] = [];
+      foreach (\CRM_Contact_DAO_Contact::fields() as $field) {
+        if (!empty($field['contactType']) && $field['contactType'] != $contactType) {
+          \Civi::$statics[__CLASS__][__FUNCTION__][$contactType][] = $field['name'];
+        }
+      }
+    }
+    return \Civi::$statics[__CLASS__][__FUNCTION__][$contactType];
+  }
+
 }
diff --git a/civicrm/Civi/Api4/Utils/ReflectionUtils.php b/civicrm/Civi/Api4/Utils/ReflectionUtils.php
index aa125662bb..0733b20f89 100644
--- a/civicrm/Civi/Api4/Utils/ReflectionUtils.php
+++ b/civicrm/Civi/Api4/Utils/ReflectionUtils.php
@@ -20,11 +20,17 @@ class ReflectionUtils {
    * @param \Reflector|\ReflectionClass $reflection
    * @param string $type
    *   If we are not reflecting the class itself, specify "Method", "Property", etc.
-   *
+   * @param array $vars
+   *   Variable substitutions to perform in the docblock
    * @return array
    */
-  public static function getCodeDocs($reflection, $type = NULL) {
-    $docs = self::parseDocBlock($reflection->getDocComment());
+  public static function getCodeDocs($reflection, $type = NULL, $vars = []) {
+    $comment = $reflection->getDocComment();
+    foreach ($vars as $key => $val) {
+      $comment = str_replace('$' . strtoupper(\CRM_Utils_String::pluralize($key)), \CRM_Utils_String::pluralize($val), $comment);
+      $comment = str_replace('$' . strtoupper($key), $val, $comment);
+    }
+    $docs = self::parseDocBlock($comment);
 
     // Recurse into parent functions
     if (isset($docs['inheritDoc']) || isset($docs['inheritdoc'])) {
@@ -47,7 +53,7 @@ class ReflectionUtils {
       }
       if ($newReflection) {
         // Mix in
-        $additionalDocs = self::getCodeDocs($newReflection, $type);
+        $additionalDocs = self::getCodeDocs($newReflection, $type, $vars);
         if (!empty($docs['comment']) && !empty($additionalDocs['comment'])) {
           $docs['comment'] .= "\n\n" . $additionalDocs['comment'];
         }
@@ -63,41 +69,71 @@ class ReflectionUtils {
    */
   public static function parseDocBlock($comment) {
     $info = [];
+    $param = NULL;
     foreach (preg_split("/((\r?\n)|(\r\n?))/", $comment) as $num => $line) {
       if (!$num || strpos($line, '*/') !== FALSE) {
         continue;
       }
-      $line = ltrim(trim($line), '* ');
-      if (strpos($line, '@') === 0) {
-        $words = explode(' ', $line);
-        $key = substr($words[0], 1);
+      $line = ltrim(trim($line), '*');
+      if (strlen($line) && $line[0] === ' ') {
+        $line = substr($line, 1);
+      }
+      if (strpos(ltrim($line), '@') === 0) {
+        $words = explode(' ', ltrim($line, ' @'));
+        $key = array_shift($words);
+        $param = NULL;
         if ($key == 'var') {
-          $info['type'] = explode('|', $words[1]);
+          $info['type'] = explode('|', $words[0]);
+        }
+        elseif ($key == 'return') {
+          $info['return'] = explode('|', $words[0]);
         }
         elseif ($key == 'options') {
-          $val = str_replace(', ', ',', implode(' ', array_slice($words, 1)));
+          $val = str_replace(', ', ',', implode(' ', $words));
           $info['options'] = explode(',', $val);
         }
+        elseif ($key == 'throws' || $key == 'see') {
+          $info[$key][] = implode(' ', $words);
+        }
+        elseif ($key == 'param' && $words) {
+          $type = $words[0][0] !== '$' ? explode('|', array_shift($words)) : NULL;
+          $param = rtrim(array_shift($words), '-:()/');
+          $info['params'][$param] = [
+            'type' => $type,
+            'description' => $words ? ltrim(implode(' ', $words), '-: ') : '',
+            'comment' => '',
+          ];
+        }
         else {
           // Unrecognized annotation, but we'll duly add it to the info array
-          $val = implode(' ', array_slice($words, 1));
+          $val = implode(' ', $words);
           $info[$key] = strlen($val) ? $val : TRUE;
         }
       }
+      elseif ($param) {
+        $info['params'][$param]['comment'] .= $line . "\n";
+      }
       elseif ($num == 1) {
-        $info['description'] = $line;
+        $info['description'] = ucfirst($line);
       }
       elseif (!$line) {
         if (isset($info['comment'])) {
           $info['comment'] .= "\n";
         }
+        else {
+          $info['comment'] = NULL;
+        }
+      }
+      // For multi-line description.
+      elseif (count($info) === 1 && isset($info['description']) && substr($info['description'], -1) !== '.') {
+        $info['description'] .= ' ' . $line;
       }
       else {
         $info['comment'] = isset($info['comment']) ? "{$info['comment']}\n$line" : $line;
       }
     }
     if (isset($info['comment'])) {
-      $info['comment'] = trim($info['comment']);
+      $info['comment'] = rtrim($info['comment']);
     }
     return $info;
   }
diff --git a/civicrm/Civi/Api4/Utils/SelectUtil.php b/civicrm/Civi/Api4/Utils/SelectUtil.php
new file mode 100644
index 0000000000..38b085ceef
--- /dev/null
+++ b/civicrm/Civi/Api4/Utils/SelectUtil.php
@@ -0,0 +1,60 @@
+<?php
+
+/*
+ +--------------------------------------------------------------------+
+ | Copyright CiviCRM LLC. All rights reserved.                        |
+ |                                                                    |
+ | This work is published under the GNU AGPLv3 license with some      |
+ | permitted exceptions and without any warranty. For full license    |
+ | and copyright information, see https://civicrm.org/licensing       |
+ +--------------------------------------------------------------------+
+ */
+
+/**
+ *
+ * @package CRM
+ * @copyright CiviCRM LLC https://civicrm.org/licensing
+ * $Id$
+ *
+ */
+
+
+namespace Civi\Api4\Utils;
+
+class SelectUtil {
+
+  /**
+   * Checks if a field is in the Select array or matches a wildcard pattern in the Select array
+   *
+   * @param string $field
+   * @param array $selects
+   * @return bool
+   */
+  public static function isFieldSelected($field, $selects) {
+    if (in_array($field, $selects) || (in_array('*', $selects) && strpos($field, '.') === FALSE)) {
+      return TRUE;
+    }
+    foreach ($selects as $item) {
+      if (strpos($item, '*') !== FALSE && self::getMatchingFields($item, [$field])) {
+        return TRUE;
+      }
+    }
+    return FALSE;
+  }
+
+  /**
+   * @param string $pattern
+   * @param array $fieldNames
+   * @return array
+   */
+  public static function getMatchingFields($pattern, $fieldNames) {
+    if ($pattern === '*') {
+      return $fieldNames;
+    }
+    $pattern = '/^' . str_replace('\*', '.*', preg_quote($pattern, '/')) . '$/';
+    return array_values(array_filter($fieldNames, function($field) use ($pattern) {
+      return preg_match($pattern, $field);
+    }));
+  }
+
+}
diff --git a/civicrm/Civi/Core/AssetBuilder.php b/civicrm/Civi/Core/AssetBuilder.php
index 4f0756610e..82e2141461 100644
--- a/civicrm/Civi/Core/AssetBuilder.php
+++ b/civicrm/Civi/Core/AssetBuilder.php
@@ -226,9 +226,11 @@ class AssetBuilder {
 
   /**
    * Clear out any cache files.
+   *
+   * @param bool $removeDir Should folder itself be removed too.
    */
-  public function clear() {
-    \CRM_Utils_File::cleanDir($this->getCachePath());
+  public function clear($removeDir = TRUE) {
+    \CRM_Utils_File::cleanDir($this->getCachePath(), $removeDir);
   }
 
   /**
diff --git a/civicrm/Civi/Core/Paths.php b/civicrm/Civi/Core/Paths.php
index 29bd7393d0..651fb29cdc 100644
--- a/civicrm/Civi/Core/Paths.php
+++ b/civicrm/Civi/Core/Paths.php
@@ -78,6 +78,12 @@ class Paths {
           'path' => defined('CIVICRM_TEMPLATE_COMPILEDIR') ? CIVICRM_TEMPLATE_COMPILEDIR : \Civi::paths()->getPath('[civicrm.private]/templates_c'),
         ];
       })
+      ->register('civicrm.l10n', function () {
+        $dir = defined('CIVICRM_L10N_BASEDIR') ? CIVICRM_L10N_BASEDIR : \Civi::paths()->getPath('[civicrm.private]/l10n');
+        return [
+          'path' => is_dir($dir) ? $dir : \Civi::paths()->getPath('[civicrm.root]/l10n'),
+        ];
+      })
       ->register('wp.frontend.base', function () {
         return ['url' => rtrim(CIVICRM_UF_BASEURL, '/') . '/'];
       })
@@ -140,6 +146,10 @@ class Paths {
       if (isset($GLOBALS['civicrm_paths'][$name])) {
         $this->variables[$name] = array_merge($this->variables[$name], $GLOBALS['civicrm_paths'][$name]);
       }
+      if (isset($this->variables[$name]['url'])) {
+        // Typical behavior is to return an absolute URL. If an admin has put an override that's site-relative, then convert.
+        $this->variables[$name]['url'] = $this->toAbsoluteUrl($this->variables[$name]['url'], $name);
+      }
     }
     if (!isset($this->variables[$name][$attr])) {
       throw new \RuntimeException("Cannot resolve path using \"$name.$attr\"");
@@ -147,6 +157,37 @@ class Paths {
     return $this->variables[$name][$attr];
   }
 
+  /**
+   * @param string $url
+   *   Ex: 'https://example.com:8000/foobar' or '/foobar'
+   * @param string $for
+   *   Ex: 'civicrm.root' or 'civicrm.packages'
+   * @return string
+   */
+  private function toAbsoluteUrl($url, $for) {
+    if (!$url) {
+      return $url;
+    }
+    elseif ($url[0] === '/') {
+      // Relative URL interpretation
+      if ($for === 'cms.root') {
+        throw new \RuntimeException('Invalid configuration: the [cms.root] path must be an absolute URL');
+      }
+      $cmsUrl = rtrim($this->getVariable('cms.root', 'url'), '/');
+      // The norms for relative URLs dictate:
+      // Single-slash: "/sub/dir" or "/" (domain-relative)
+      // Double-slash: "//example.com/sub/dir" (same-scheme)
+      $prefix = ($url === '/' || $url[1] !== '/')
+        ? $cmsUrl
+        : (parse_url($cmsUrl, PHP_URL_SCHEME) . ':');
+      return $prefix . $url;
+    }
+    else {
+      // Assume this is an absolute URL, as in the past ('_h_ttp://').
+      return $url;
+    }
+  }
+
   /**
    * Does the variable exist.
    *
@@ -214,7 +255,7 @@ class Paths {
       return $value;
     }
 
-    $value = $this->getVariable($defaultContainer, 'url') . $value;
+    $value = rtrim($this->getVariable($defaultContainer, 'url'), '/') . '/' . $value;
 
     if ($preferFormat === 'relative') {
       $parsed = parse_url($value);
diff --git a/civicrm/Civi/Core/SettingsBag.php b/civicrm/Civi/Core/SettingsBag.php
index c94f3e7a89..779bc3a230 100644
--- a/civicrm/Civi/Core/SettingsBag.php
+++ b/civicrm/Civi/Core/SettingsBag.php
@@ -136,6 +136,7 @@ class SettingsBag {
       while ($dao->fetch()) {
         $this->values[$dao->name] = ($dao->value !== NULL) ? \CRM_Utils_String::unserialize($dao->value) : NULL;
       }
+      $dao->values['contribution_invoice_settings'] = $this->getContributionSettings();
     }
 
     return $this;
@@ -253,12 +254,51 @@ class SettingsBag {
    * @return SettingsBag
    */
   public function set($key, $value) {
+    if ($key === 'contribution_invoice_settings') {
+      $this->setContributionSettings($value);
+      return $this;
+    }
     $this->setDb($key, $value);
     $this->values[$key] = $value;
     $this->combined = NULL;
     return $this;
   }
 
+  /**
+   * Temporary handling for phasing out contribution_invoice_settings.
+   *
+   * Until we have transitioned we need to handle setting & retrieving
+   * contribution_invoice_settings.
+   *
+   * Once removed from core we will add deprecation notices & then remove this.
+   *
+   * https://lab.civicrm.org/dev/core/issues/1558
+   *
+   * @param array $value
+   */
+  public function setContributionSettings($value) {
+    foreach (SettingsBag::getContributionInvoiceSettingKeys() as $possibleKeyName => $settingName) {
+      $keyValue = $value[$possibleKeyName] ?? '';
+      $this->set($settingName, $keyValue);
+    }
+    $this->values['contribution_invoice_settings'] = $this->getContributionSettings();
+  }
+
+  /**
+   * Temporary function to handle returning the contribution_settings key despite it being deprecated.
+   *
+   * See more in comment block on previous function.
+   *
+   * @return array
+   */
+  public function getContributionSettings() {
+    $contributionSettings = [];
+    foreach (SettingsBag::getContributionInvoiceSettingKeys() as $keyName => $settingName) {
+      $contributionSettings[$keyName] = $this->values[$settingName] ?? '';
+    }
+    return $contributionSettings;
+  }
+
   /**
    * @return \CRM_Utils_SQL_Select
    */
@@ -378,4 +418,22 @@ class SettingsBag {
     }
   }
 
+  /**
+   * @return array
+   */
+  public static function getContributionInvoiceSettingKeys(): array {
+    $convertedKeys = [
+      'credit_notes_prefix' => 'credit_notes_prefix',
+      'invoice_prefix' => 'invoice_prefix',
+      'due_date' => 'invoice_due_date',
+      'due_date_period' => 'invoice_due_date_period',
+      'notes' => 'invoice_notes',
+      'is_email_pdf'  => 'invoice_is_email_pdf',
+      'tax_term' => 'tax_term',
+      'tax_display_settings' => 'tax_display_settings',
+      'invoicing' => 'invoicing',
+    ];
+    return $convertedKeys;
+  }
+
 }
diff --git a/civicrm/Civi/Payment/PropertyBag.php b/civicrm/Civi/Payment/PropertyBag.php
index 8085a1958a..6cea55241e 100644
--- a/civicrm/Civi/Payment/PropertyBag.php
+++ b/civicrm/Civi/Payment/PropertyBag.php
@@ -21,6 +21,12 @@ use CRM_Core_PseudoConstant;
  *
  */
 class PropertyBag implements \ArrayAccess {
+  /**
+   * @var array
+   * - see legacyWarning
+   */
+  public static $legacyWarnings = [];
+
   protected $props = ['default' => []];
 
   protected static $propMap = [
@@ -161,12 +167,34 @@ class PropertyBag implements \ArrayAccess {
   }
 
   /**
+   * Log legacy warnings info.
+   *
    * @param string $message
    */
   protected function legacyWarning($message) {
-    $message = "Deprecated code: $message";
+    if (empty(static::$legacyWarnings)) {
+      // First time we have been called.
+      register_shutdown_function([PropertyBag::class, 'writeLegacyWarnings']);
+    }
+    // Store warnings instead of logging immediately, as calls to Civi::log()
+    // can take over half a second to work in some hosting environments.
+    static::$legacyWarnings[$message] = TRUE;
+
+    // For unit tests:
     $this->lastWarning = $message;
-    Civi::log()->warning($message);
+  }
+
+  /**
+   * Save any legacy warnings to log.
+   *
+   * Called as a shutdown function.
+   */
+  public static function writeLegacyWarnings() {
+    if (!empty(static::$legacyWarnings)) {
+      $message = "Civi\\Payment\\PropertyBag related deprecation warnings:\n"
+        . implode("\n", array_keys(static::$legacyWarnings));
+      Civi::log()->warning($message, ['civi.tag' => 'deprecated']);
+    }
   }
 
   /**
diff --git a/civicrm/Civi/Test.php b/civicrm/Civi/Test.php
index 51d929054d..7eb83cade1 100644
--- a/civicrm/Civi/Test.php
+++ b/civicrm/Civi/Test.php
@@ -16,6 +16,37 @@ class Test {
    */
   private static $singletons = [];
 
+  /**
+   * @var array
+   */
+  public static $statics = [];
+
+  /**
+   * Run code in a pre-boot fashion.
+   *
+   * @param callable $callback
+   * @return mixed
+   *   Pass through the result of the callback.
+   */
+  public static function asPreInstall($callback) {
+    $conn = \Civi\Test::pdo();
+
+    $oldEscaper = \CRM_Core_I18n::$SQL_ESCAPER;
+    \Civi::$statics['testPreInstall'] = (\Civi::$statics['testPreInstall'] ?? 0) + 1;
+    try {
+      \CRM_Core_I18n::$SQL_ESCAPER = function ($text) use ($conn) {
+        return substr($conn->quote($text), 1, -1);
+      };
+      return $callback();
+    } finally {
+      \CRM_Core_I18n::$SQL_ESCAPER = $oldEscaper;
+      \Civi::$statics['testPreInstall']--;
+      if (\Civi::$statics['testPreInstall'] <= 0) {
+        unset(\Civi::$statics['testPreInstall']);
+      }
+    }
+  }
+
   /**
    * Get the data source used for testing.
    *
@@ -88,7 +119,7 @@ class Test {
         echo "Installing {$dbName} schema\n";
         \Civi\Test::schema()->dropAll();
       }, 'headless-drop')
-      ->sqlFile($civiRoot . "/sql/civicrm.mysql")
+      ->coreSchema()
       ->sql("DELETE FROM civicrm_extension")
       ->callback(function ($ctx) {
         \Civi\Test::data()->populate();
@@ -127,6 +158,19 @@ class Test {
     return self::$singletons['schema'];
   }
 
+  /**
+   * @return \CRM_Core_CodeGen_Main
+   */
+  public static function codeGen() {
+    if (!isset(self::$singletons['codeGen'])) {
+      $civiRoot = dirname(__DIR__);
+      $codeGen = new \CRM_Core_CodeGen_Main("$civiRoot/CRM/Core/DAO", "$civiRoot/sql", $civiRoot, "$civiRoot/templates", NULL, "UnitTests", NULL, "$civiRoot/xml/schema/Schema.xml", NULL);
+      $codeGen->init();
+      self::$singletons['codeGen'] = $codeGen;
+    }
+    return self::$singletons['codeGen'];
+  }
+
   /**
    * @return \Civi\Test\Data
    */
diff --git a/civicrm/Civi/Test/Api3TestTrait.php b/civicrm/Civi/Test/Api3TestTrait.php
index 98f993936e..79e6e8e53c 100644
--- a/civicrm/Civi/Test/Api3TestTrait.php
+++ b/civicrm/Civi/Test/Api3TestTrait.php
@@ -4,6 +4,7 @@ namespace Civi\Test;
 
 use Civi\API\Exception\NotImplementedException;
 
+require_once 'api/v3/utils.php';
 /**
  * Class Api3TestTrait
  * @package Civi\Test
@@ -411,6 +412,10 @@ trait Api3TestTrait {
       case 'get':
         if ($options['return'] && $v3Action !== 'getcount') {
           $v4Params['select'] = array_keys($options['return']);
+          // Ensure id field is returned as v3 always expects it
+          if ($v4Entity != 'Setting' && !in_array('id', $v4Params['select'])) {
+            $v4Params['select'][] = 'id';
+          }
           // Convert join syntax
           foreach ($v4Params['select'] as &$select) {
             if (strstr($select, '_id.')) {
@@ -455,7 +460,7 @@ trait Api3TestTrait {
         break;
 
       case 'delete':
-        if (!empty($v3Params['id'])) {
+        if (isset($v3Params['id'])) {
           $v4Params['where'][] = ['id', '=', $v3Params['id']];
         }
         break;
@@ -527,7 +532,7 @@ trait Api3TestTrait {
       ];
     }
 
-    if (($v3Action == 'getsingle' || $v3Action == 'getvalue') && count($result) != 1) {
+    if (($v3Action == 'getsingle' || $v3Action == 'getvalue' || $v3Action == 'delete') && count($result) != 1) {
       return $onlySuccess ? 0 : [
         'is_error' => 1,
         'error_message' => "Expected one $v4Entity but found " . count($result),
diff --git a/civicrm/Civi/Test/CiviEnvBuilder.php b/civicrm/Civi/Test/CiviEnvBuilder.php
index 767d34033a..8bce9d1fbf 100644
--- a/civicrm/Civi/Test/CiviEnvBuilder.php
+++ b/civicrm/Civi/Test/CiviEnvBuilder.php
@@ -2,6 +2,7 @@
 namespace Civi\Test;
 
 use Civi\Test\CiviEnvBuilder\CallbackStep;
+use Civi\Test\CiviEnvBuilder\CoreSchemaStep;
 use Civi\Test\CiviEnvBuilder\ExtensionsStep;
 use Civi\Test\CiviEnvBuilder\SqlFileStep;
 use Civi\Test\CiviEnvBuilder\SqlStep;
@@ -41,6 +42,15 @@ class CiviEnvBuilder {
     return $this->addStep(new CallbackStep($callback, $signature));
   }
 
+  /**
+   * Generate the core SQL tables.
+   *
+   * @return \Civi\Test\CiviEnvBuilder
+   */
+  public function coreSchema() {
+    return $this->addStep(new CoreSchemaStep());
+  }
+
   public function sql($sql) {
     return $this->addStep(new SqlStep($sql));
   }
@@ -168,24 +178,26 @@ class CiviEnvBuilder {
    * @return CiviEnvBuilder
    */
   public function apply($force = FALSE) {
-    $dbName = \Civi\Test::dsn('database');
-    $query = "USE {$dbName};"
-      . "CREATE TABLE IF NOT EXISTS civitest_revs (name VARCHAR(64) PRIMARY KEY, rev VARCHAR(64));";
+    return \Civi\Test::asPreInstall(function() use ($force) {
+      $dbName = \Civi\Test::dsn('database');
+      $query = "USE {$dbName};"
+        . "CREATE TABLE IF NOT EXISTS civitest_revs (name VARCHAR(64) PRIMARY KEY, rev VARCHAR(64));";
 
-    if (\Civi\Test::execute($query) === FALSE) {
-      throw new \RuntimeException("Failed to flag schema version: $query");
-    }
+      if (\Civi\Test::execute($query) === FALSE) {
+        throw new \RuntimeException("Failed to flag schema version: $query");
+      }
 
-    $this->assertValid();
+      $this->assertValid();
 
-    if (!$force && $this->getSavedSignature() === $this->getTargetSignature()) {
+      if (!$force && $this->getSavedSignature() === $this->getTargetSignature()) {
+        return $this;
+      }
+      foreach ($this->steps as $step) {
+        $step->run($this);
+      }
+      $this->setSavedSignature($this->getTargetSignature());
       return $this;
-    }
-    foreach ($this->steps as $step) {
-      $step->run($this);
-    }
-    $this->setSavedSignature($this->getTargetSignature());
-    return $this;
+    });
   }
 
   /**
diff --git a/civicrm/Civi/Test/CiviEnvBuilder/CoreSchemaStep.php b/civicrm/Civi/Test/CiviEnvBuilder/CoreSchemaStep.php
new file mode 100644
index 0000000000..5f8e56abf9
--- /dev/null
+++ b/civicrm/Civi/Test/CiviEnvBuilder/CoreSchemaStep.php
@@ -0,0 +1,50 @@
+<?php
+namespace Civi\Test\CiviEnvBuilder;
+
+/**
+ * Class CoreSchemaStep
+ * @package Civi\Test\CiviEnvBuilder
+ *
+ * An initialization step which loads the core SQL schema.
+ *
+ * Note that the computation of the schema is cached for the duration of
+ * the PHP process (\Civi\Test::$statics).
+ */
+class CoreSchemaStep implements StepInterface {
+
+  /**
+   * @return array
+   *   - digest: string
+   *   - content: string
+   */
+  public function getSql() {
+    if (!isset(\Civi\Test::$statics['core_schema_sql'])) {
+      $schema = new \CRM_Core_CodeGen_Schema(\Civi\Test::codeGen());
+      $files = $schema->generateCreateSql();
+      \Civi\Test::$statics['core_schema_sql'] = [
+        'digest' => md5($files['civicrm.mysql']),
+        'content' => $files['civicrm.mysql'],
+      ];
+    }
+    return \Civi\Test::$statics['core_schema_sql'];
+  }
+
+  public function getSig() {
+    return $this->getSql()['digest'];
+  }
+
+  public function isValid() {
+    return TRUE;
+  }
+
+  /**
+   * @param \Civi\Test\CiviEnvBuilder $ctx
+   */
+  public function run($ctx) {
+    $sql = $this->getSql();
+    if (\Civi\Test::execute($sql['content']) === FALSE) {
+      throw new \RuntimeException("Cannot execute SQL");
+    }
+  }
+
+}
diff --git a/civicrm/Civi/Test/Data.php b/civicrm/Civi/Test/Data.php
index 8b90b5d493..8cada62629 100644
--- a/civicrm/Civi/Test/Data.php
+++ b/civicrm/Civi/Test/Data.php
@@ -12,30 +12,37 @@ class Data {
    * @return bool
    */
   public function populate() {
-    \Civi\Test::schema()->truncateAll();
-
-    \Civi\Test::schema()->setStrict(FALSE);
-
-    // Ensure that when we populate the database it is done in utf8 mode
-    \Civi\Test::execute('SET NAMES utf8');
-    $sqlDir = dirname(dirname(__DIR__)) . "/sql";
-
-    $query2 = file_get_contents("$sqlDir/civicrm_data.mysql");
-    $query3 = file_get_contents("$sqlDir/test_data.mysql");
-    $query4 = file_get_contents("$sqlDir/test_data_second_domain.mysql");
-    if (\Civi\Test::execute($query2) === FALSE) {
-      throw new RuntimeException("Cannot load civicrm_data.mysql. Aborting.");
-    }
-    if (\Civi\Test::execute($query3) === FALSE) {
-      throw new RuntimeException("Cannot load test_data.mysql. Aborting.");
-    }
-    if (\Civi\Test::execute($query4) === FALSE) {
-      throw new RuntimeException("Cannot load test_data.mysql. Aborting.");
-    }
-
-    unset($query, $query2, $query3);
-
-    \Civi\Test::schema()->setStrict(TRUE);
+    \Civi\Test::asPreInstall(function() {
+      \Civi\Test::schema()->truncateAll();
+
+      \Civi\Test::schema()->setStrict(FALSE);
+
+      // Ensure that when we populate the database it is done in utf8 mode
+      \Civi\Test::execute('SET NAMES utf8');
+      $sqlDir = dirname(dirname(__DIR__)) . "/sql";
+
+      if (!isset(\Civi\Test::$statics['locale_data'])) {
+        $schema = new \CRM_Core_CodeGen_Schema(\Civi\Test::codeGen());
+        \Civi\Test::$statics['locale_data'] = $schema->generateLocaleDataSql('en_US');
+      }
+
+      $query2 = \Civi\Test::$statics['locale_data']["civicrm_data.mysql"];
+      $query3 = file_get_contents("$sqlDir/test_data.mysql");
+      $query4 = file_get_contents("$sqlDir/test_data_second_domain.mysql");
+      if (\Civi\Test::execute($query2) === FALSE) {
+        throw new RuntimeException("Cannot load civicrm_data.mysql. Aborting.");
+      }
+      if (\Civi\Test::execute($query3) === FALSE) {
+        throw new RuntimeException("Cannot load test_data.mysql. Aborting.");
+      }
+      if (\Civi\Test::execute($query4) === FALSE) {
+        throw new RuntimeException("Cannot load test_data.mysql. Aborting.");
+      }
+
+      unset($query, $query2, $query3);
+
+      \Civi\Test::schema()->setStrict(TRUE);
+    });
 
     // Rebuild triggers
     civicrm_api('system', 'flush', ['version' => 3, 'triggers' => 1]);
diff --git a/civicrm/Civi/Token/TokenRow.php b/civicrm/Civi/Token/TokenRow.php
index 5287219a94..2a7b732c2b 100644
--- a/civicrm/Civi/Token/TokenRow.php
+++ b/civicrm/Civi/Token/TokenRow.php
@@ -157,7 +157,7 @@ class TokenRow {
    * @param string $tokenEntity
    * @param string $tokenField
    * @param string $baoName
-   * @param array $baoField
+   * @param string $baoField
    * @param mixed $fieldValue
    * @return TokenRow
    * @throws \CRM_Core_Exception
diff --git a/civicrm/ang/api4Explorer/Explorer.html b/civicrm/ang/api4Explorer/Explorer.html
index 927513a5b9..5c9b3f4340 100644
--- a/civicrm/ang/api4Explorer/Explorer.html
+++ b/civicrm/ang/api4Explorer/Explorer.html
@@ -2,7 +2,7 @@
   <div crm-ui-debug="availableParams"></div>
 
   <h1 crm-page-title>
-    {{ ts('CiviCRM API v4') }}{{ entity ? (' (' + entity + '::' + action + ')') : '' }}
+    {{ ts('CiviCRM APIv4') }}{{ entity ? (' (' + entity + '::' + action + ')') : '' }}
   </h1>
 
   <!--This warning will show if bootstrap is unavailable. Normally it will be hidden by the bootstrap .collapse class.-->
@@ -18,22 +18,26 @@
       <form name="api4-explorer" class="panel panel-default explorer-params-panel">
         <div class="panel-heading">
           <div class="form-inline">
-            <input class="collapsible-optgroups form-control" ng-model="entity" ng-disabled="!entities.length" ng-class="{loading: !entities.length}" crm-ui-select="{placeholder: ts('Entity'), data: entities}" />
-            <input class="collapsible-optgroups form-control" ng-model="action" ng-disabled="!entity || !actions.length" ng-class="{loading: entity && !actions.length}" crm-ui-select="{placeholder: ts('Action'), data: actions}" />
-            <input class="form-control api4-index" ng-model="index" ng-mouseenter="help('index', indexHelp)" ng-mouseleave="help()" placeholder="{{ ts('Index') }}" />
+            <span ng-mouseenter="help('entity', paramDoc('$entity'))" ng-mouseleave="help()">
+              <input class="collapsible-optgroups form-control" ng-model="entity" ng-disabled="!entities.length" ng-class="{loading: !entities.length}" crm-ui-select="{placeholder: ts('Entity'), data: entities}" />
+            </span>
+            <span ng-mouseenter="help('action', paramDoc('$action'))" ng-mouseleave="help()">
+              <input class="collapsible-optgroups form-control" ng-model="action" ng-disabled="!entity || !actions.length" ng-class="{loading: entity && !actions.length}" crm-ui-select="{placeholder: ts('Action'), data: actions}" />
+            </span>
+            <input class="form-control api4-index" type="search" ng-model="index" ng-mouseenter="help('index', paramDoc('$index'))" ng-mouseleave="help()" placeholder="{{ ts('Index') }}" />
             <button class="btn btn-success pull-right" crm-icon="fa-bolt" ng-disabled="!entity || !action || loading" ng-click="execute()">{{ ts('Execute') }}</button>
           </div>
         </div>
         <div class="panel-body">
           <div class="api4-input form-inline">
-            <div class="form-control" ng-mouseenter="help(name, param)" ng-mouseleave="help()" ng-class="{'api4-option-selected': params[name]}" ng-repeat="(name, param) in availableParams" ng-if="!isSpecial(name) && param.type[0] === 'bool' && param.default !== null">
+            <label class="form-control" ng-mouseenter="help(name, param)" ng-mouseleave="help()" ng-class="{'api4-option-selected': params[name]}" ng-repeat="(name, param) in availableParams" ng-if="!isSpecial(name) && param.type[0] === 'bool' && param.default !== null">
               <input type="checkbox" id="api4-param-{{ name }}" ng-model="params[name]"/>
-              <label for="api4-param-{{ name }}">{{ name }}<span class="crm-marker" ng-if="param.required"> *</span></label>
-            </div>
-            <div class="form-control" ng-mouseenter="help('selectRowCount', availableParams.select)" ng-mouseleave="help()" ng-class="{'api4-option-selected': isSelectRowCount()}" ng-if="availableParams.select">
+              {{ name }}<span class="crm-marker" ng-if="param.required"> *</span>
+            </label>
+            <label class="form-control" ng-mouseenter="help('selectRowCount', availableParams.select)" ng-mouseleave="help()" ng-class="{'api4-option-selected': isSelectRowCount()}" ng-if="availableParams.select">
               <input type="checkbox" id="api4-param-selectRowCount" ng-checked="isSelectRowCount()" ng-click="selectRowCount()" />
-              <label for="api4-param-selectRowCount">SelectRowCount</label>
-            </div>
+              SelectRowCount
+            </label>
           </div>
           <div class="api4-input form-inline" ng-mouseenter="help(name, param)" ng-mouseleave="help()" ng-repeat="(name, param) in availableParams" ng-if="!isSpecial(name) && param.type[0] === 'bool' && param.default === null">
             <label>{{ name }}<span class="crm-marker" ng-if="param.required"> *</span></label>
@@ -47,7 +51,7 @@
           </div>
           <div class="api4-input form-inline" ng-mouseenter="help('select', availableParams.select)" ng-mouseleave="help()" ng-if="availableParams.select && !isSelectRowCount()">
             <label for="api4-param-select">select<span class="crm-marker" ng-if="availableParams.select.required"> *</span></label>
-            <input class="collapsible-optgroups form-control" ng-list crm-ui-select="{data: fieldsAndJoins, multiple: true}" id="api4-param-select" ng-model="params.select" style="width: 85%;"/>
+            <input class="collapsible-optgroups form-control" ng-list crm-ui-select="{data: selectFieldsAndJoins, multiple: true}" placeholder="*" id="api4-param-select" ng-model="params.select" style="width: 85%;"/>
           </div>
           <div class="api4-input form-inline" ng-mouseenter="help('fields', availableParams.fields)" ng-mouseleave="help()"ng-if="availableParams.fields">
             <label for="api4-param-fields">fields<span class="crm-marker" ng-if="availableParams.fields.required"> *</span></label>
@@ -70,14 +74,14 @@
           </div>
           <fieldset ng-if="availableParams.where" class="api4-where-fieldset" ng-mouseenter="help('where', availableParams.where)" ng-mouseleave="help()" crm-api4-where-clause="{where: params.where, required: availableParams.where.required, op: 'AND', label: 'where', fields: fieldsAndJoins}">
           </fieldset>
-          <fieldset ng-if="availableParams.values" ng-mouseenter="help('values', availableParams.values)" ng-mouseleave="help()">
-            <legend>values<span class="crm-marker" ng-if="availableParams.values.required"> *</span></legend>
-            <div class="api4-input form-inline" ng-repeat="clause in params.values" ng-mouseenter="help('value: ' + clause[0], fieldHelp(clause[0]))" ng-mouseleave="help('values', availableParams.values)">
-              <input class="collapsible-optgroups form-control" ng-model="clause[0]" crm-ui-select="{formatResult: formatSelect2Item, formatSelection: formatSelect2Item, data: valuesFields, allowClear: true, placeholder: 'Field'}" />
+          <fieldset ng-repeat="name in ['values', 'defaults']" ng-if="availableParams[name]" ng-mouseenter="help(name, availableParams[name])" ng-mouseleave="help()">
+            <legend>{{ name }}<span class="crm-marker" ng-if="availableParams[name].required"> *</span></legend>
+            <div class="api4-input form-inline" ng-repeat="clause in params[name]" ng-mouseenter="help('value: ' + clause[0], fieldHelp(clause[0]))" ng-mouseleave="help(name, availableParams[name])">
+              <input class="collapsible-optgroups form-control" ng-model="clause[0]" crm-ui-select="{formatResult: formatSelect2Item, formatSelection: formatSelect2Item, data: fieldList(name), allowClear: true, placeholder: 'Field'}" />
               <input class="form-control" ng-model="clause[1]" api4-exp-value="{field: clause[0], action: action === 'getFields' ? params.action || 'get' : action}" />
             </div>
             <div class="api4-input form-inline">
-              <input class="collapsible-optgroups form-control" ng-model="controls.values" crm-ui-select="{formatResult: formatSelect2Item, formatSelection: formatSelect2Item, data: valuesFields}" placeholder="Add value" />
+              <input class="collapsible-optgroups form-control" ng-model="controls[name]" crm-ui-select="{formatResult: formatSelect2Item, formatSelection: formatSelect2Item, data: fieldList(name), placeholder: ts('Add %1', {1: name.slice(0, -1)})}"/>
             </div>
           </fieldset>
           <fieldset ng-if="availableParams.orderBy" ng-mouseenter="help('orderBy', availableParams.orderBy)" ng-mouseleave="help()">
@@ -108,45 +112,70 @@
           <h3 class="panel-title" crm-icon="fa-info-circle">{{ helpTitle }}</h3>
         </div>
         <div class="panel-body">
-          <h4>{{ helpContent.description }}</h4>
-          <div ng-if="helpContent.comment">
-            <p ng-repeat='text in helpContent.comment.split("\n\n")'>{{ text }}</p>
-          </div>
-          <p ng-repeat="(key, item) in helpContent" ng-if="key !== 'description' && key !== 'comment'">
+          <h4 ng-bind-html="helpContent.description"></h4>
+          <div ng-bind-html="helpContent.comment"></div>
+          <p ng-repeat="(key, item) in helpContent" ng-if="key !== 'description' && key !== 'comment' && key !== 'see'">
             <strong>{{ key }}:</strong> {{ item }}
           </p>
+          <div ng-if="helpContent.see">
+            <strong>See:</strong>
+            <ul>
+              <li ng-repeat="ref in helpContent.see" ng-bind-html="ref"> </li>
+            </ul>
+          </div>
         </div>
       </div>
   </div>
   <div class="api4-explorer-row">
       <div class="panel panel-warning explorer-code-panel">
-        <div class="panel-heading">
-          <h3 class="panel-title" crm-icon="fa-code">{{ ts('Code') }}</h3>
-        </div>
+        <ul class="panel-heading nav nav-tabs">
+          <li role="presentation" ng-repeat="tab in code" ng-class="{active: selectedTab.code === tab.lang}">
+            <a href ng-click="selectedTab.code = tab.lang">
+              {{ tab.lang }}
+            </a>
+          </li>
+        </ul>
         <div class="panel-body">
-          <table>
-            <tr ng-repeat="(type, item) in code">
-              <td>{{ codeLabel[type] }}</td>
-              <td><pre class="prettyprint" ng-bind-html="item"></pre></td>
+          <table ng-repeat="tab in code" ng-show="selectedTab.code === tab.lang">
+            <tr ng-repeat="style in tab.style">
+              <td>{{ style.label }}</td>
+              <td><pre class="prettyprint" ng-bind-html="style.code"></pre></td>
             </tr>
           </table>
         </div>
       </div>
       <div class="panel explorer-result-panel panel-{{ status }}" >
-        <div class="panel-heading">
-          <h3 class="panel-title">
-            <i class="fa fa-circle-o" ng-if="status === 'default'"></i>
-            <i class="fa fa-check-circle" ng-if="status === 'success'"></i>
-            <i class="fa fa-minus-circle" ng-if="status === 'danger'"></i>
-            <i class="fa fa-spinner fa-pulse" ng-if="status === 'warning'"></i>
-            {{ ts('Result') }}
-          </h3>
-        </div>
+        <ul class="panel-heading nav nav-tabs">
+          <li role="presentation" ng-class="{active: selectedTab.result === 'result'}">
+            <a href ng-click="selectedTab.result = 'result'">
+              <i class="fa fa-fw fa-circle-o" ng-if="status === 'default'"></i>
+              <i class="fa fa-fw fa-check-circle" ng-if="status === 'success'"></i>
+              <i class="fa fa-fw fa-minus-circle" ng-if="status === 'danger'"></i>
+              <i class="fa fa-fw fa-spinner fa-pulse" ng-if="status === 'warning'"></i>
+              <span>{{ ts('Result') }}</span>
+            </a>
+          </li>
+          <li role="presentation" ng-if="perm.accessDebugOutput" ng-class="{active: selectedTab.result === 'debug'}">
+            <a href ng-click="selectedTab.result = 'debug'">
+              <i class="fa fa-fw fa-{{ debug ? 'bug' : 'circle-o' }}"></i>
+              <span>{{ ts('Debug') }}</span>
+            </a>
+          </li>
+        </ul>
         <div class="panel-body">
-          <pre class="prettyprint" ng-repeat="code in result" ng-bind-html="code"></pre>
+          <div ng-show="selectedTab.result === 'result'">
+            <pre class="prettyprint" ng-repeat="code in result" ng-bind-html="code"></pre>
+          </div>
+          <div ng-show="selectedTab.result === 'debug'">
+            <pre ng-if="debug" class="prettyprint" ng-bind-html="debug"></pre>
+            <p ng-if="!debug">
+              {{ ts('To view debugging output, enable the debug param before executing.') }}
+            </p>
+            <p ng-if="!debug">
+              {{ ts('Enable backtrace in system settings to see error backtraces.') }}
+            </p>
+          </div>
         </div>
       </div>
   </div>
-
-
 </div>
diff --git a/civicrm/ang/api4Explorer/Explorer.js b/civicrm/ang/api4Explorer/Explorer.js
index 982f618d3f..ecf2d45973 100644
--- a/civicrm/ang/api4Explorer/Explorer.js
+++ b/civicrm/ang/api4Explorer/Explorer.js
@@ -26,33 +26,57 @@
     $scope.actions = actions;
     $scope.fields = [];
     $scope.fieldsAndJoins = [];
+    $scope.selectFieldsAndJoins = [];
     $scope.availableParams = {};
     $scope.params = {};
     $scope.index = '';
+    $scope.selectedTab = {result: 'result', code: 'php'};
+    $scope.perm = {
+      accessDebugOutput: CRM.checkPerm('access debug output')
+    };
+    marked.setOptions({highlight: prettyPrintOne});
     var getMetaParams = {},
-      objectParams = {orderBy: 'ASC', values: '', chain: ['Entity', '', '{}']},
+      objectParams = {orderBy: 'ASC', values: '', defaults: '', chain: ['Entity', '', '{}']},
+      docs = CRM.vars.api4.docs,
       helpTitle = '',
       helpContent = {};
     $scope.helpTitle = '';
     $scope.helpContent = {};
     $scope.entity = $routeParams.api4entity;
     $scope.result = [];
+    $scope.debug = null;
     $scope.status = 'default';
     $scope.loading = false;
     $scope.controls = {};
-    $scope.codeLabel = {
-      oop: ts('PHP (oop style)'),
-      php: ts('PHP (traditional)'),
-      js: ts('Javascript'),
-      cli: ts('Command Line')
-    };
-    $scope.code = codeDefaults();
-
-    function codeDefaults() {
-      return _.mapValues($scope.codeLabel, function(val, key) {
-        return key === 'oop' ? ts('Select an entity and action') : '';
-      });
-    }
+    $scope.code = [
+      {
+        lang: 'php',
+        style: [
+          {name: 'oop', label: ts('OOP Style'), code: ''},
+          {name: 'php', label: ts('Traditional'), code: ''}
+        ]
+      },
+      {
+        lang: 'js',
+        style: [
+          {name: 'js', label: ts('Single Call'), code: ''},
+          {name: 'js2', label: ts('Batch Calls'), code: ''}
+        ]
+      },
+      {
+        lang: 'ang',
+        style: [
+          {name: 'ang', label: ts('Single Call'), code: ''},
+          {name: 'ang2', label: ts('Batch Calls'), code: ''}
+        ]
+      },
+      {
+        lang: 'cli',
+        style: [
+          {name: 'cv', label: ts('CV'), code: ''}
+        ]
+      },
+    ];
 
     if (!entities.length) {
       formatForSelect2(schema, entities, 'name', ['description']);
@@ -112,32 +136,64 @@
       return fields;
     }
 
-    function addJoins(fieldList) {
+    function addJoins(fieldList, addWildcard) {
       var fields = _.cloneDeep(fieldList),
         fks = _.findWhere(links, {entity: $scope.entity}) || {};
       _.each(fks.links, function(link) {
-        var linkFields = entityFields(link.entity);
+        var linkFields = _.cloneDeep(entityFields(link.entity)),
+          wildCard = addWildcard ? [{id: link.alias + '.*', text: link.alias + '.*', 'description': 'All core ' + link.entity + ' fields'}] : [];
         if (linkFields) {
           fields.push({
             text: link.alias,
             description: 'Join to ' + link.entity,
-            children: formatForSelect2(linkFields, [], 'name', ['description'], link.alias + '.')
+            children: wildCard.concat(formatForSelect2(linkFields, [], 'name', ['description'], link.alias + '.'))
           });
         }
       });
       return fields;
     }
 
-    $scope.help = function(title, param) {
-      if (!param) {
+    $scope.help = function(title, content) {
+      if (!content) {
         $scope.helpTitle = helpTitle;
         $scope.helpContent = helpContent;
       } else {
         $scope.helpTitle = title;
-        $scope.helpContent = param;
+        $scope.helpContent = formatHelp(content);
       }
     };
 
+    // Sets the static help text (which gets overridden by mousing over other elements)
+    function setHelp(title, content) {
+      $scope.helpTitle = helpTitle = title;
+      $scope.helpContent = helpContent = formatHelp(content);
+    }
+
+    // Convert plain-text help to markdown; replace variables and format links
+    function formatHelp(rawContent) {
+      function formatRefs(see) {
+        _.each(see, function(ref, idx) {
+          var match = ref.match(/^\\Civi\\Api4\\([a-zA-Z]+)$/);
+          if (match) {
+            ref = '#/explorer/' + match[1];
+          }
+          if (ref[0] === '\\') {
+            ref = 'https://github.com/civicrm/civicrm-core/blob/master' + ref.replace(/\\/i, '/') + '.php';
+          }
+          see[idx] = '<a target="' + (ref[0] === '#' ? '_self' : '_blank') + '" href="' + ref + '">' + see[idx] + '</a>';
+        });
+      }
+      var formatted = _.cloneDeep(rawContent);
+      if (formatted.description) {
+        formatted.description = marked(formatted.description);
+      }
+      if (formatted.comment) {
+        formatted.comment = marked(formatted.comment);
+      }
+      formatRefs(formatted.see);
+      return formatted;
+    }
+
     $scope.fieldHelp = function(fieldName) {
       var field = getField(fieldName, $scope.entity, $scope.action);
       if (!field) {
@@ -158,13 +214,15 @@
       return info;
     };
 
-    $scope.valuesFields = function() {
-      var fields = _.cloneDeep($scope.action === 'getFields' ? getFieldList($scope.params.action || 'get') : $scope.fields);
-      // Disable fields that are already in use
-      _.each($scope.params.values || [], function(val) {
-        (_.findWhere(fields, {id: val[0]}) || {}).disabled = true;
-      });
-      return {results: fields};
+    $scope.fieldList = function(param) {
+      return function() {
+        var fields = _.cloneDeep($scope.action === 'getFields' ? getFieldList($scope.params.action || 'get') : $scope.fields);
+        // Disable fields that are already in use
+        _.each($scope.params[param] || [], function(val) {
+          (_.findWhere(fields, {id: val[0]}) || {}).disabled = true;
+        });
+        return {results: fields};
+      };
     };
 
     $scope.formatSelect2Item = function(row) {
@@ -178,7 +236,7 @@
     };
 
     $scope.isSpecial = function(name) {
-      var specialParams = ['select', 'fields', 'action', 'where', 'values', 'orderBy', 'chain'];
+      var specialParams = ['select', 'fields', 'action', 'where', 'values', 'defaults', 'orderBy', 'chain'];
       return _.contains(specialParams, name);
     };
 
@@ -187,6 +245,7 @@
         $scope.params.select = [];
       } else {
         $scope.params.select = ['row_count'];
+        $scope.index = '';
         if ($scope.params.limit == 25) {
           $scope.params.limit = 0;
         }
@@ -194,9 +253,13 @@
     };
 
     $scope.isSelectRowCount = function() {
-      return $scope.params && $scope.params.select && $scope.params.select.length === 1 && $scope.params.select[0] === 'row_count';
+      return isSelectRowCount($scope.params);
     };
 
+    function isSelectRowCount(params) {
+      return params && params.select && params.select.length === 1 && params.select[0] === 'row_count';
+    }
+
     function getEntity(entityName) {
       return _.findWhere(schema, {name: entityName || $scope.entity});
     }
@@ -259,7 +322,8 @@
 
     function selectAction() {
       $scope.action = $routeParams.api4action;
-      $scope.fieldsAndJoins = [];
+      $scope.fieldsAndJoins.length = 0;
+      $scope.selectFieldsAndJoins.length = 0;
       if (!actions.length) {
         formatForSelect2(getEntity().actions, actions, 'name', ['description', 'params']);
       }
@@ -268,9 +332,12 @@
         $scope.fields = getFieldList($scope.action);
         if (_.contains(['get', 'update', 'delete', 'replace'], $scope.action)) {
           $scope.fieldsAndJoins = addJoins($scope.fields);
+          $scope.selectFieldsAndJoins = addJoins($scope.fields, true);
         } else {
           $scope.fieldsAndJoins = $scope.fields;
+          $scope.selectFieldsAndJoins = _.cloneDeep($scope.fields);
         }
+        $scope.selectFieldsAndJoins.unshift({id: '*', text: '*', 'description': 'All core ' + $scope.entity + ' fields'});
         _.each(actionInfo.params, function (param, name) {
           var format,
             defaultVal = _.cloneDeep(param.default);
@@ -289,9 +356,12 @@
               default:
                 format = 'raw';
             }
-            if (name == 'limit') {
+            if (name === 'limit') {
               defaultVal = 25;
             }
+            if (name === 'debug') {
+              defaultVal = true;
+            }
             if (name === 'values') {
               defaultVal = defaultValues(defaultVal);
             }
@@ -355,40 +425,43 @@
     }
 
     function writeCode() {
-      var code = codeDefaults(),
+      var code = {},
         entity = $scope.entity,
         action = $scope.action,
         params = getParams(),
-        index = isInt($scope.index) ? +$scope.index : $scope.index,
+        index = isInt($scope.index) ? +$scope.index : parseYaml($scope.index),
         result = 'result';
       if ($scope.entity && $scope.action) {
+        delete params.debug;
         if (action.slice(0, 3) === 'get') {
           result = entity.substr(0, 7) === 'Custom_' ? _.camelCase(entity.substr(7)) : entity;
           result = lcfirst(action.replace(/s$/, '').slice(3) || result);
         }
         var results = lcfirst(_.isNumber(index) ? result : pluralize(result)),
           paramCount = _.size(params),
-          isSelectRowCount = params.select && params.select.length === 1 && params.select[0] === 'row_count',
           i = 0;
 
-        if (isSelectRowCount) {
+        if (isSelectRowCount(params)) {
           results = result + 'Count';
         }
 
         // Write javascript
-        code.js = "CRM.api4('" + entity + "', '" + action + "', {";
+        var js = "'" + entity + "', '" + action + "', {";
         _.each(params, function(param, key) {
-          code.js += "\n  " + key + ': ' + stringify(param) +
+          js += "\n  " + key + ': ' + stringify(param) +
             (++i < paramCount ? ',' : '');
           if (key === 'checkPermissions') {
-            code.js += ' // IGNORED: permissions are always enforced from client-side requests';
+            js += ' // IGNORED: permissions are always enforced from client-side requests';
           }
         });
-        code.js += "\n}";
+        js += "\n}";
         if (index || index === 0) {
-          code.js += ', ' + JSON.stringify(index);
+          js += ', ' + JSON.stringify(index);
         }
-        code.js += ").then(function(" + results + ") {\n  // do something with " + results + " array\n}, function(failure) {\n  // handle failure\n});";
+        code.js = "CRM.api4(" + js + ").then(function(" + results + ") {\n  // do something with " + results + " array\n}, function(failure) {\n  // handle failure\n});";
+        code.js2 = "CRM.api4({" + results + ': [' + js + "]}).then(function(batch) {\n  // do something with batch." + results + " array\n}, function(failure) {\n  // handle failure\n});";
+        code.ang = "crmApi4(" + js + ").then(function(" + results + ") {\n  // do something with " + results + " array\n}, function(failure) {\n  // handle failure\n});";
+        code.ang2 = "crmApi4({" + results + ': [' + js + "]}).then(function(batch) {\n  // do something with batch." + results + " array\n}, function(failure) {\n  // handle failure\n});";
 
         // Write php code
         code.php = '$' + results + " = civicrm_api4('" + entity + "', '" + action + "', [";
@@ -402,53 +475,75 @@
         code.php += ");";
 
         // Write oop code
-        if (entity.substr(0, 7) !== 'Custom_') {
-          code.oop = '$' + results + " = \\Civi\\Api4\\" + entity + '::' + action + '()';
-        } else {
-          code.oop = '$' + results + " = \\Civi\\Api4\\CustomValue::" + action + "('" + entity.substr(7) + "')";
-        }
-        _.each(params, function(param, key) {
-          var val = '';
-          if (typeof objectParams[key] !== 'undefined' && key !== 'chain') {
-            _.each(param, function(item, index) {
-              val = phpFormat(index) + ', ' + phpFormat(item, 4);
-              code.oop += "\n  ->add" + ucfirst(key).replace(/s$/, '') + '(' + val + ')';
-            });
-          } else if (key === 'where') {
-            _.each(param, function (clause) {
-              if (clause[0] === 'AND' || clause[0] === 'OR' || clause[0] === 'NOT') {
-                code.oop += "\n  ->addClause(" + phpFormat(clause[0]) + ", " + phpFormat(clause[1]).slice(1, -1) + ')';
-              } else {
-                code.oop += "\n  ->addWhere(" + phpFormat(clause).slice(1, -1) + ")";
-              }
-            });
-          } else if (key === 'select' && isSelectRowCount) {
-            code.oop += "\n  ->selectRowCount()";
-          } else {
-            code.oop += "\n  ->set" + ucfirst(key) + '(' + phpFormat(param, 4) + ')';
-          }
-        });
-        code.oop += "\n  ->execute()";
-        if (_.isNumber(index)) {
+        code.oop = '$' + results + " = " + formatOOP(entity, action, params, 2) + "\n  ->execute()";
+        if (isSelectRowCount(params)) {
+          code.oop += "\n  ->count()";
+        } else if (_.isNumber(index)) {
           code.oop += !index ? '\n  ->first()' : (index === -1 ? '\n  ->last()' : '\n  ->itemAt(' + index + ')');
         } else if (index) {
-          code.oop += "\n  ->indexBy('" + index + "')";
-        } else if (isSelectRowCount) {
-          code.oop += "\n  ->count()";
+          if (_.isString(index) || (_.isPlainObject(index) && !index[0] && !index['0'])) {
+            code.oop += "\n  ->indexBy('" + (_.isPlainObject(index) ? _.keys(index)[0] : index) + "')";
+          }
+          if (_.isArray(index) || _.isPlainObject(index)) {
+            code.oop += "\n  ->column('" + (_.isArray(index) ? index[0] : _.values(index)[0]) + "')";
+          }
         }
         code.oop += ";\n";
-        if (!_.isNumber(index) && !isSelectRowCount) {
+        if (!_.isNumber(index) && !isSelectRowCount(params)) {
           code.oop += "foreach ($" + results + ' as $' + ((_.isString(index) && index) ? index + ' => $' : '') + result + ') {\n  // do something\n}';
         }
 
         // Write cli code
-        code.cli = 'cv api4 ' + entity + '.' + action + " '" + stringify(params) + "'";
+        code.cv = 'cv api4 ' + entity + '.' + action + " '" + stringify(params) + "'";
       }
-      _.each(code, function(val, type) {
-        $scope.code[type] = prettyPrintOne(_.escape(val));
+      _.each($scope.code, function(vals) {
+        _.each(vals.style, function(style) {
+          style.code = code[style.name] ? prettyPrintOne(code[style.name]) : '';
+        });
       });
     }
 
+    // Format oop params
+    function formatOOP(entity, action, params, indent) {
+      var code = '',
+        newLine = "\n" + _.repeat(' ', indent);
+      if (entity.substr(0, 7) !== 'Custom_') {
+        code = "\\Civi\\Api4\\" + entity + '::' + action + '()';
+      } else {
+        code = "\\Civi\\Api4\\CustomValue::" + action + "('" + entity.substr(7) + "')";
+      }
+      _.each(params, function(param, key) {
+        var val = '';
+        if (typeof objectParams[key] !== 'undefined' && key !== 'chain') {
+          _.each(param, function(item, index) {
+            val = phpFormat(index) + ', ' + phpFormat(item, 2 + indent);
+            code += newLine + "->add" + ucfirst(key).replace(/s$/, '') + '(' + val + ')';
+          });
+        } else if (key === 'where') {
+          _.each(param, function (clause) {
+            if (clause[0] === 'AND' || clause[0] === 'OR' || clause[0] === 'NOT') {
+              code += newLine + "->addClause(" + phpFormat(clause[0]) + ", " + phpFormat(clause[1]).slice(1, -1) + ')';
+            } else {
+              code += newLine + "->addWhere(" + phpFormat(clause).slice(1, -1) + ")";
+            }
+          });
+        } else if (key === 'select') {
+          code += newLine;
+          // addSelect() is a variadic function & can take multiple arguments; selectRowCount() is a shortcut for addSelect('row_count')
+          code += isSelectRowCount(params) ? '->selectRowCount()' : '->addSelect(' + phpFormat(param).slice(1, -1) + ')';
+        } else if (key === 'chain') {
+          _.each(param, function(chain, name) {
+            code += newLine + "->addChain('" + name + "', " + formatOOP(chain[0], chain[1], chain[2], 2 + indent);
+            code += (chain.length > 3 ? ',' : '') + (!_.isEmpty(chain[2]) ? newLine : ' ') + (chain.length > 3 ? phpFormat(chain[3]) : '') + ')';
+          });
+        }
+        else {
+          code += newLine + "->set" + ucfirst(key) + '(' + phpFormat(param, 2 + indent) + ')';
+        }
+      });
+      return code;
+    }
+
     function isInt(value) {
       if (_.isFinite(value)) {
         return true;
@@ -474,7 +569,7 @@
       $scope.loading = true;
       $http.post(CRM.url('civicrm/ajax/api4/' + $scope.entity + '/' + $scope.action, {
         params: angular.toJson(getParams()),
-        index: $scope.index
+        index: isInt($scope.index) ? +$scope.index : parseYaml($scope.index)
       }), null, {
         headers: {
           'X-Requested-With': 'XMLHttpRequest'
@@ -482,14 +577,22 @@
       }).then(function(resp) {
           $scope.loading = false;
           $scope.status = 'success';
+          $scope.debug = debugFormat(resp.data);
           $scope.result = [formatMeta(resp.data), prettyPrintOne(_.escape(JSON.stringify(resp.data.values, null, 2)), 'js', 1)];
         }, function(resp) {
           $scope.loading = false;
           $scope.status = 'danger';
+          $scope.debug = debugFormat(resp.data);
           $scope.result = [formatMeta(resp), prettyPrintOne(_.escape(JSON.stringify(resp.data, null, 2)))];
         });
     };
 
+    function debugFormat(data) {
+      var debug = data.debug ? prettyPrintOne(_.escape(JSON.stringify(data.debug, null, 2)).replace(/\\n/g, "\n")) : null;
+      delete data.debug;
+      return debug;
+    }
+
     /**
      * Format value to look like php code
      */
@@ -536,16 +639,15 @@
     // Help for an entity with no action selected
     function showEntityHelp(entityName) {
       var entityInfo = getEntity(entityName);
-      $scope.helpTitle = helpTitle = $scope.entity;
-      $scope.helpContent = helpContent = {
+      setHelp($scope.entity, {
         description: entityInfo.description,
-        comment: entityInfo.comment
-      };
+        comment: entityInfo.comment,
+        see: entityInfo.see
+      });
     }
 
     if (!$scope.entity) {
-      $scope.helpTitle = helpTitle = ts('Help');
-      $scope.helpContent = helpContent = {description: ts('Welcome to the api explorer.'), comment: ts('Select an entity to begin.')};
+      setHelp(ts('APIv4 Explorer'), {description: docs.description, comment: docs.comment, see: docs.see});
     } else if (!actions.length && !getEntity().actions) {
       getMetaParams.actions = [$scope.entity, 'getActions', {chain: {fields: [$scope.entity, 'getFields', {action: '$name'}]}}];
       fetchMeta();
@@ -571,15 +673,12 @@
       if ($scope.entity && $routeParams.api4action !== newVal && !_.isUndefined(newVal)) {
         $location.url('/explorer/' + $scope.entity + '/' + newVal);
       } else if (newVal) {
-        $scope.helpTitle = helpTitle = $scope.entity + '::' + newVal;
-        $scope.helpContent = helpContent = _.pick(_.findWhere(getEntity().actions, {name: newVal}), ['description', 'comment']);
+        setHelp($scope.entity + '::' + newVal, _.pick(_.findWhere(getEntity().actions, {name: newVal}), ['description', 'comment', 'see']));
       }
     });
 
-    $scope.indexHelp = {
-      description: ts('(string|int) Index results or select by index.'),
-      comment: ts('Pass a string to index the results by a field value. E.g. index: "name" will return an associative array with names as keys.') + '\n\n' +
-        ts('Pass an integer to return a single result; e.g. index: 0 will return the first result, 1 will return the second, and -1 will return the last.')
+    $scope.paramDoc = function(name) {
+      return docs.params[name];
     };
 
     $scope.$watch('params', writeCode, true);
@@ -701,8 +800,8 @@
               });
             } else if (dataType === 'Boolean') {
               $el.attr('placeholder', ts('- select -')).crmSelect2({allowClear: false, multiple: multi, placeholder: ts('- select -'), data: [
-                {id: '1', text: ts('Yes')},
-                {id: '0', text: ts('No')}
+                {id: 'true', text: ts('Yes')},
+                {id: 'false', text: ts('No')}
               ]});
             }
           } else if (dataType === 'Integer' && !multi) {
diff --git a/civicrm/ang/crmCaseType/caseTypeDetails.html b/civicrm/ang/crmCaseType/caseTypeDetails.html
index d11cc913c3..2bc30182ea 100644
--- a/civicrm/ang/crmCaseType/caseTypeDetails.html
+++ b/civicrm/ang/crmCaseType/caseTypeDetails.html
@@ -48,7 +48,7 @@ The original form used table layout; don't know if we have an alternative, CSS-b
           <input
             name="activityAsgmtGrps"
             crm-ui-id="caseTypeDetailForm.activityAsgmtGrps"
-            crm-entityref="{entity: 'Group', api: {params: {is_hidden: 0, is_active: 1}}, select: {allowClear: true, multiple: true, placeholder: ts('Select Group')}}"
+            crm-entityref="{entity: 'Group', api: {id_field: 'name', params: {is_hidden: 0, is_active: 1}}, select: {allowClear: true, multiple: true, placeholder: ts('Select Group')}}"
             ng-model="caseType.definition.activityAsgmtGrps"
           />
         </div>
diff --git a/civicrm/ang/crmCaseType/rolesTable.html b/civicrm/ang/crmCaseType/rolesTable.html
index 8af3b488c4..ed8983db0c 100644
--- a/civicrm/ang/crmCaseType/rolesTable.html
+++ b/civicrm/ang/crmCaseType/rolesTable.html
@@ -8,6 +8,7 @@ Required vars: caseType
 	    <th>{{ts('Display Label')}}</th>
 	    <th>{{ts('Assign to Creator')}}</th>
 	    <th>{{ts('Is Manager')}}</th>
+	    <th>{{ts('Restrict to Groups')}}</th>
 	    <th></th>
 	  </tr>
   </thead>
@@ -17,6 +18,10 @@ Required vars: caseType
 	    <td>{{relType.displayLabel}}</td>
 	    <td><input type="checkbox" ng-model="relType.creator" ng-true-value="'1'" ng-false-value="'0'"></td>
 	    <td><input type="radio" ng-model="relType.manager" value="1" ng-change="onManagerChange(relType)"></td>
+	    <td><input ng-list class="big"
+				crm-entityref="{entity: 'Group', api: {id_field: 'name', params: {is_hidden: 0, is_active: 1}}, select: {allowClear: true, multiple: true, placeholder: ts('Select Group')}}"
+				ng-model="relType.groups"
+			/></td>
 	    <td>
 	      <a crm-icon="fa-trash" class="crm-hover-button" ng-click="removeItem(caseType.definition.caseRoles,relType)" title="{{ts('Remove')}}"></a>
 	    </td>
diff --git a/civicrm/ang/exportui.ang.php b/civicrm/ang/exportui.ang.php
new file mode 100644
index 0000000000..81dafe4af3
--- /dev/null
+++ b/civicrm/ang/exportui.ang.php
@@ -0,0 +1,23 @@
+<?php
+// Export UI Angular module configuration
+return [
+  'ext' => 'civicrm',
+  'js' => [
+    'ang/exportui/*.js',
+    'ang/exportui/*/*.js',
+  ],
+  'css' => [
+    'ang/exportui.css',
+  ],
+  'partials' => [
+    'ang/exportui',
+  ],
+  'basePages' => [],
+  'requires' => [
+    'crmUi',
+    'crmUtil',
+    'ui.sortable',
+    'dialogService',
+  ],
+  'settings' => [],
+];
diff --git a/civicrm/ang/exportui.css b/civicrm/ang/exportui.css
new file mode 100644
index 0000000000..114d36107a
--- /dev/null
+++ b/civicrm/ang/exportui.css
@@ -0,0 +1,56 @@
+/* "fade-out" effect */
+div.crm-export-field-selector-outer {
+  position: relative;
+  overflow-x: hidden;
+}
+div.crm-export-field-selector-outer:after {
+  position: absolute;
+  top: 0;
+  right: 0;
+  height: 100%;
+  width: 20%;
+  content: ' ';
+  background-image: linear-gradient(to right, transparent, #efefe5);
+}
+table.crm-export-field-selector tbody tr {
+  background-color: #FAFAFA;
+}
+table.crm-export-field-selector tbody tr:nth-child(odd) {
+  background-color: #EFEFEF;
+}
+table.crm-export-field-selector tfoot tr {
+  background-color: white;
+  border-top: 2px solid #CFCEC3;
+}
+table.crm-export-field-selector tfoot tr td > span {
+  margin-left: 18px;
+}
+.crm-export-field-selector tbody td {
+  cursor: move;
+  width: 18%
+}
+.crm-export-field-selector tbody td:first-child {
+  width: 28%;
+  min-width: 230px;
+}
+.crm-export-field-selector tbody td:first-child > div + div {
+  margin-left: 17px;
+}
+.crm-export-field-selector .crm-export-add-field {
+  width: 16em;
+}
+.crm-export-ui-save-mapping-dialog .crm-form-block > div {
+  padding: 5px;
+}
+.crm-export-ui-save-mapping-dialog .ui-dialog-buttonpane {
+  position: absolute;
+  bottom: 20px;
+  height: 20px;
+  width: calc(100% - 3em);
+}
+.crm-export-row-handle {
+  opacity: .5;
+}
+.crm-export-field-selector tr:hover .crm-export-row-handle {
+  opacity: 1;
+}
diff --git a/civicrm/ang/exportui/export.html b/civicrm/ang/exportui/export.html
new file mode 100644
index 0000000000..3a1638c33a
--- /dev/null
+++ b/civicrm/ang/exportui/export.html
@@ -0,0 +1,30 @@
+<table class="crm-export-field-selector">
+  <thead>
+    <tr>
+      <th colspan="6">
+        <label>{{ ts('Contact Type') }}</label>
+        <input class="twelve" crm-ui-select="{data: contact_types, placeholder: ts('All'), allowClear: true}" ng-model="data.contact_type" />
+      </th>
+    </tr>
+  </thead>
+  <tbody ui-sortable="{axis: 'y'}" ng-model="data.columns">
+    <tr ng-repeat="field in data.columns">
+      <td ng-include="'~/exportui/exportField.html'"></td>
+      <td ng-repeat="row in data.preview">
+        {{ showPreview(row, field) }}
+      </td>
+    </tr>
+  </tbody>
+  <tfoot>
+    <tr>
+      <td colspan="6">
+        <input class="crm-action-menu fa-plus crm-export-add-field" crm-ui-select="{data: getFields, placeholder: ts('Add field')}" ng-model="new.col" />
+        <span ng-if="data.columns.length">
+          <button type="button" ng-click="saveMappingDialog()" crm-icon="fa-save">
+            {{ ts('Save Fields') }}
+          </button>
+        </span>
+      </td>
+    </tr>
+  </tfoot>
+</table>
diff --git a/civicrm/ang/exportui/exportField.html b/civicrm/ang/exportui/exportField.html
new file mode 100644
index 0000000000..7ae919749c
--- /dev/null
+++ b/civicrm/ang/exportui/exportField.html
@@ -0,0 +1,15 @@
+<div>
+  <span class="crm-export-row-handle crm-i fa-arrows"></span>
+  <input class="big" crm-ui-select="{data: getFields, allowClear: true, placeholder: 'clear'}" ng-model="field.select" />
+</div>
+<div ng-if="fields[field.select].relationship_type_id">
+  <input class="big" crm-ui-select="{data: getRelatedFields(fields[field.select].related_contact_type), allowClear: true, placeholder: ts('Choose field')}" ng-model="field.name" />
+</div>
+<div>
+  <span ng-if="field.name && fields[field.name].has_location">
+    <input class="six crm-action-menu" crm-ui-select="{data: location_type_id, allowClear: false, placeholder: ts('Primary')}" ng-model="field.location_type_id" />
+    </span>
+  <span ng-repeat="(list, options) in option_list" ng-if="(field.location_type_id || !fields[field.name].has_location) && fields[field.name].option_list === list">
+    <input class="six" crm-ui-select="{data: options, minimumResultsForSearch: 10}" ng-model="field[list]" />
+  </span>
+</div>
diff --git a/civicrm/ang/exportui/exportSaveMapping.html b/civicrm/ang/exportui/exportSaveMapping.html
new file mode 100644
index 0000000000..39a787db55
--- /dev/null
+++ b/civicrm/ang/exportui/exportSaveMapping.html
@@ -0,0 +1,27 @@
+<form class="crm-export-ui-save-mapping-dialog">
+  <div class="crm-form-block">
+    <div ng-if="model.mapping_id">
+      <label><input type="radio" ng-model="model.overwrite" value="1"> {{ model.ts('Update %1', {1: model.mapping_names[model.mapping_id]}) }}</label>
+      <label><input type="radio" ng-model="model.overwrite" value="0"> {{ model.ts('Save new mapping') }}</label>
+    </div>
+    <div>
+      <label for="export_save_mapping_name">{{ model.ts('Name this field mapping:') }} <span class="crm-marker">*</span></label>
+      <input class="crm-form-text" ng-model="model.new_name" id="export_save_mapping_name" />
+      <span class="crm-error" ng-show="!model.nameIsUnique()">
+        {{ model.ts('That name is already taken') }}
+      </span>
+    </div>
+    <div>
+      <label for="export_save_mapping_description">{{ model.ts('Description:') }}</label>
+      <input class="crm-form-text huge" ng-model="model.description" id="export_save_mapping_description" />
+    </div>
+  </div>
+  <div class="ui-dialog-buttonpane ui-widget-content">
+    <div class="ui-dialog-buttonset">
+      <button type="button" class="crm-button" ng-click="model.saveMapping()" ng-disabled="!model.new_name || model.saving || !model.nameIsUnique()">
+        <i class="crm-i" ng-class="{'fa-check': !model.saving, 'fa-spinner fa-pulse': model.saving}"></i>
+        {{ model.ts('Save Fields') }}
+      </button>
+    </div>
+  </div>
+</form>
diff --git a/civicrm/ang/exportui/exportui.js b/civicrm/ang/exportui/exportui.js
new file mode 100644
index 0000000000..88bb01a268
--- /dev/null
+++ b/civicrm/ang/exportui/exportui.js
@@ -0,0 +1,247 @@
+(function(angular, $, _) {
+  angular.module('exportui', CRM.angRequires('exportui'));
+
+  angular.module('exportui', CRM.angular.modules)
+
+  .controller('ExportUiCtrl', function($scope, $timeout, crmApi, dialogService) {
+    var ts = $scope.ts = CRM.ts('exportui'),
+      // Which relationships we've already looked up for the preview
+      relations = [];
+
+    $scope.option_list = CRM.vars.exportUi.option_list;
+    $scope.contact_types = CRM.vars.exportUi.contact_types;
+    $scope.location_type_id = [{id: '', text: ts('Primary')}].concat(CRM.vars.exportUi.location_type_id);
+    // Map of all fields keyed by name
+    $scope.fields = _.transform(CRM.vars.exportUi.fields, function(result, category) {
+      _.each(category.children, function(field) {
+        result[field.id] = field;
+      });
+    }, {});
+    $scope.data = {
+      preview: CRM.vars.exportUi.preview_data,
+      contact_type: '',
+      columns: []
+    };
+    // For the "add new field" dropdown
+    $scope.new = {col: ''};
+    var contactTypes = _.transform($scope.contact_types, function(result, type) {
+      result.push(type.id);
+      _.each(type.children || [], function(subType) {
+        result.push(subType.id);
+      });
+    });
+    var cids = _.filter(_.map(CRM.vars.exportUi.preview_data, 'id'));
+
+    // Get fields for performing the export or saving the field mapping
+    function getSelectedColumns() {
+      var map = [];
+      _.each($scope.data.columns, function(col, no) {
+        // Make a copy of col without the extra angular props
+        var item = JSON.parse(angular.toJson(col));
+        delete item.select;
+        delete item.mapping_id;
+        item.contact_type = $scope.data.contact_type || 'Contact';
+        item.column_number = no;
+        map.push(item);
+      });
+      return map;
+    }
+
+    // Load a saved field mapping
+    function loadFieldMap(map) {
+      $scope.data.columns = [];
+      var mapContactTypes = [];
+      _.each(map, function(col) {
+        if (_.contains(contactTypes, col.contact_type)) {
+          mapContactTypes.push(col.contact_type);
+        }
+        if (col.relationship_type_id && col.relationship_direction) {
+          col.select = '' + col.relationship_type_id + '_' + col.relationship_direction;
+        } else {
+          col.select = col.name;
+        }
+        $scope.data.columns.push(col);
+      });
+      // If all the fields are for the same contact type, set it form-wide
+      if (!$scope.data.contact_type && _.unique(mapContactTypes).length === 1) {
+        $scope.data.contact_type = mapContactTypes[0];
+      }
+    }
+
+    // Return fields relevant to a contact type
+    // Filter out non-contact fields (for relationship selectors)
+    function filterFields(contactType, onlyContact) {
+      return _.transform(CRM.vars.exportUi.fields, function(result, cat) {
+        if (!cat.is_contact && onlyContact) {
+          return;
+        }
+        var fields = _.filter(cat.children, function(field) {
+          return !field.contact_type || !contactType || _.contains(field.contact_type, contactType);
+        });
+        if (fields.length) {
+          result.push({
+            id: cat.id,
+            text: cat.text,
+            children: fields
+          });
+        }
+      });
+    }
+
+    $scope.getFields = function() {
+      return {results: filterFields($scope.data.contact_type)};
+    };
+
+    $scope.getRelatedFields = function(contact_type) {
+      return function() {
+        return {results: filterFields(contact_type, true)};
+      };
+    };
+
+    $scope.showPreview = function(row, field) {
+      var key = field.name;
+      if (field.relationship_type_id && field.relationship_direction) {
+        fetchRelations(field);
+        key = '' + field.relationship_type_id + '_' + field.relationship_direction + '_' + key;
+      }
+      if (field.location_type_id) {
+        key += '_' + field.location_type_id + (field.phone_type_id ? '_' + field.phone_type_id : '');
+      }
+      return field.name ? row[key] : '';
+    };
+
+    function fetchRelations(field) {
+      if (cids.length && !relations[field.relationship_type_id + field.relationship_direction]) {
+        relations[field.relationship_type_id + field.relationship_direction] = true;
+        var a = field.relationship_direction[0],
+          b = field.relationship_direction[2],
+          params = {
+            relationship_type_id: field.relationship_type_id,
+            filters: {is_current: 1},
+            "api.Contact.getsingle": {id: '$value.contact_id_' + b}
+          };
+        params['contact_' + a] = {'IN': cids};
+        (function (field, params) {
+          crmApi('Relationship', 'get', params).then(function (data) {
+            _.each(data.values, function (rel) {
+              var row = cids.indexOf(rel['contact_id_' + a]);
+              if (row > -1) {
+                _.each(rel["api.Contact.getsingle"], function (item, key) {
+                  $scope.data.preview[row][field.relationship_type_id + '_' + field.relationship_direction + '_' + key] = item;
+                });
+              }
+            });
+          });
+        })(field, params);
+      }
+    }
+
+    $scope.saveMappingDialog = function() {
+      var options = CRM.utils.adjustDialogDefaults({
+        width: '40%',
+        height: 300,
+        autoOpen: false,
+        title: ts('Save Fields')
+      });
+      var mappingNames = _.transform(CRM.vars.exportUi.mapping_names, function(result, n, key) {
+        result[key] = n.toLowerCase();
+      });
+      var model = {
+        ts: ts,
+        saving: false,
+        overwrite: CRM.vars.exportUi.mapping_id ? '1' : '0',
+        mapping_id: CRM.vars.exportUi.mapping_id,
+        mapping_type_id: CRM.vars.exportUi.mapping_type_id,
+        mapping_names: CRM.vars.exportUi.mapping_names,
+        new_name: CRM.vars.exportUi.mapping_id ? CRM.vars.exportUi.mapping_names[CRM.vars.exportUi.mapping_id] : '',
+        description: CRM.vars.exportUi.mapping_description,
+        nameIsUnique: function() {
+          return !_.contains(mappingNames, this.new_name.toLowerCase()) || (this.overwrite === '1' && this.new_name.toLowerCase() === this.mapping_names[this.mapping_id].toLowerCase());
+        },
+        saveMapping: function() {
+          this.saving = true;
+          var mapping = {
+            id: this.overwrite === '1' ? this.mapping_id : null,
+            mapping_type_id: this.mapping_type_id,
+            name: this.new_name,
+            description: this.description,
+            sequential: 1
+          },
+            mappingFields = getSelectedColumns();
+          if (!mapping.id) {
+            _.each(mappingFields, function(field) {
+              delete field.id;
+            });
+          }
+          mapping['api.MappingField.replace'] = {values: mappingFields};
+          crmApi('Mapping', 'create', mapping).then(function(result) {
+            CRM.vars.exportUi.mapping_id = result.id;
+            CRM.vars.exportUi.mapping_description = mapping.description;
+            CRM.vars.exportUi.mapping_names[result.id] = mapping.name;
+            // Call loadFieldMap to update field ids in $scope.data.columns
+            loadFieldMap(result.values[0]['api.MappingField.replace'].values);
+            dialogService.close('exportSaveMapping');
+          });
+        }
+      };
+      dialogService.open('exportSaveMapping', '~/exportui/exportSaveMapping.html', model, options);
+    };
+
+    // Load saved mapping
+    if ($('input[name=export_field_map]').val()) {
+      loadFieldMap(JSON.parse($('input[name=export_field_map]').val()));
+    }
+
+    // Add new col
+    $scope.$watch('new.col', function(val) {
+      var field = val;
+      $timeout(function() {
+        if (field) {
+          $scope.data.columns.push({
+            select: field,
+            name: '',
+            location_type_id: null,
+            phone_type_id: null,
+            website_type_id: null,
+            im_provider_id: null,
+            relationship_type_id: null,
+            relationship_direction: null
+          });
+          $scope.new.col = '';
+        }
+      });
+    });
+
+    // When adding/removing columns
+    $scope.$watch('data.columns', function(values) {
+      _.each(values, function(col, index) {
+        // Remove empty values
+        if (!col.select) {
+          $scope.data.columns.splice(index, 1);
+        } else {
+          // Format item
+          var selection = $scope.fields[col.select];
+          if (selection.relationship_type_id) {
+            col.relationship_type_id = selection.relationship_type_id;
+            col.relationship_direction = col.select.slice(col.select.indexOf('_')+1);
+          } else {
+            col.name = col.select;
+            col.relationship_direction = col.relationship_type_id = null;
+          }
+          var field = col.name ? $scope.fields[col.name] : {};
+          col.location_type_id = field.has_location ? col.location_type_id || '' : null;
+          _.each($scope.option_list, function(options, list) {
+            col[list] = (col.location_type_id || !field.has_location) && field.option_list === list ? col[list] || options[0].id : null;
+          });
+        }
+      });
+      // Store data in a quickform hidden field
+      var selectedColumns = getSelectedColumns();
+      $('input[name=export_field_map]').val(JSON.stringify(selectedColumns));
+
+      // Hide submit button when no fields selected
+      $('.crm-button_qf_Map_next').toggle(!!selectedColumns.length);
+    }, true);
+  });
+
+})(angular, CRM.$, CRM._);
diff --git a/civicrm/api/api.php b/civicrm/api/api.php
index 61501b6afd..1a70bc3921 100644
--- a/civicrm/api/api.php
+++ b/civicrm/api/api.php
@@ -24,14 +24,37 @@ function civicrm_api(string $entity = NULL, string $action, array $params, $extr
 }
 
 /**
- * Procedural wrapper for the OO api version 4.
+ * CiviCRM API version 4.
  *
- * @param string $entity
- * @param string $action
- * @param array $params
- * @param string|int $index
- *   If $index is a string, the results array will be indexed by that key.
- *   If $index is an integer, only the result at that index will be returned.
+ * This API (Application Programming Interface) is used to access and manage data in CiviCRM.
+ *
+ * APIv4 is the latest stable version.
+ *
+ * @see https://docs.civicrm.org/dev/en/latest/api/v4/usage/
+ *
+ * @param string $entity Name of the CiviCRM entity to access.
+ *   All entity names are capitalized CamelCase, e.g. `ContributionPage`.
+ *   Most entities correspond to a database table (e.g. `Contact` is the table `civicrm_contact`).
+ *   For a complete list of available entities, call `civicrm_api4('Entity', 'get');`
+ *
+ * @param string $action The "verb" of the api call.
+ *   For a complete list of actions for a given entity (e.g. `Contact`), call `civicrm_api4('Contact', 'getActions');`
+ *
+ * @param array $params An array of API input keyed by parameter name.
+ *   The easiest way to discover all available parameters is to visit the API Explorer on your CiviCRM site.
+ *   The API Explorer is listed in the CiviCRM menu under Support -> Developer.
+ *
+ * @param string|int|array $index Controls the Result array format.
+ *   By default the api Result contains a non-associative array of data. Passing an $index tells the api to
+ *   automatically reformat the array, depending on the variable type passed:
+ *   - **Integer:** return a single result array;
+ *     e.g. `$index = 0` will return the first result, 1 will return the second, and -1 will return the last.
+ *   - **String:** index the results by a field value;
+ *     e.g. `$index = "name"` will return an associative array with the field 'name' as keys.
+ *   - **Non-associative array:** return a single value from each result;
+ *     e.g. `$index = ['title']` will return a non-associative array of strings - the 'title' field from each result.
+ *   - **Associative array:** a combination of the previous two modes;
+ *     e.g. `$index = ['name' => 'title']` will return an array of strings - the 'title' field keyed by the 'name' field.
  *
  * @return \Civi\Api4\Generic\Result
  * @throws \API_Exception
@@ -39,18 +62,43 @@ function civicrm_api(string $entity = NULL, string $action, array $params, $extr
  */
 function civicrm_api4(string $entity, string $action, array $params = [], $index = NULL) {
   $apiCall = \Civi\Api4\Utils\ActionUtil::getAction($entity, $action);
+  $indexField = $index && is_string($index) && !CRM_Utils_Rule::integer($index) ? $index : NULL;
+  $removeIndexField = FALSE;
+
+  // If index field is not part of the select query, we add it here and remove it below
+  if ($indexField && !empty($params['select']) && is_array($params['select']) && !\Civi\Api4\Utils\SelectUtil::isFieldSelected($indexField, $params['select'])) {
+    $params['select'][] = $indexField;
+    $removeIndexField = TRUE;
+  }
   foreach ($params as $name => $param) {
     $setter = 'set' . ucfirst($name);
     $apiCall->$setter($param);
   }
+
+  if ($index && is_array($index)) {
+    $indexCol = reset($index);
+    $indexField = key($index);
+    if (property_exists($apiCall, 'select')) {
+      $apiCall->setSelect([$indexCol]);
+      if ($indexField && $indexField != $indexCol) {
+        $apiCall->addSelect($indexField);
+      }
+    }
+  }
+
   $result = $apiCall->execute();
 
   // Index results by key
-  if ($index && is_string($index) && !CRM_Utils_Rule::integer($index)) {
-    $result->indexBy($index);
+  if ($indexField) {
+    $result->indexBy($indexField);
+    if ($removeIndexField) {
+      foreach ($result as $key => $value) {
+        unset($result[$key][$indexField]);
+      }
+    }
   }
   // Return result at index
-  if (CRM_Utils_Rule::integer($index)) {
+  elseif (CRM_Utils_Rule::integer($index)) {
     $item = $result->itemAt($index);
     if (is_null($item)) {
       throw new \API_Exception("Index $index not found in api results");
@@ -60,7 +108,9 @@ function civicrm_api4(string $entity, string $action, array $params = [], $index
       return $item;
     }
     $result->exchangeArray($item);
-
+  }
+  if (!empty($indexCol)) {
+    $result->exchangeArray($result->column($indexCol));
   }
   return $result;
 }
diff --git a/civicrm/api/v3/Contact.php b/civicrm/api/v3/Contact.php
index ef3cd25f6c..680583cf1e 100644
--- a/civicrm/api/v3/Contact.php
+++ b/civicrm/api/v3/Contact.php
@@ -1208,7 +1208,7 @@ function civicrm_api3_contact_get_merge_conflicts($params) {
   $migrationInfo = [];
   $result = [];
   foreach ((array) $params['mode'] as $mode) {
-    $result[$mode]['conflicts'] = CRM_Dedupe_Merger::getConflicts(
+    $result[$mode] = CRM_Dedupe_Merger::getConflicts(
       $migrationInfo,
       $params['to_remove_id'], $params['to_keep_id'],
       $mode
diff --git a/civicrm/api/v3/Entity.php b/civicrm/api/v3/Entity.php
index 4bab9fe893..fba4b7eb1a 100644
--- a/civicrm/api/v3/Entity.php
+++ b/civicrm/api/v3/Entity.php
@@ -14,6 +14,8 @@ function _civicrm_api3_entity_deprecation($entities) {
   $deprecated = [];
   if (!empty($entities['values'])) {
     foreach ($entities['values'] as $entity) {
+      $apiFile = "api/v3/$entity.php";
+      @include_once $apiFile;
       if (is_string(_civicrm_api3_deprecation_check($entity))) {
         $deprecated[] = $entity;
       }
diff --git a/civicrm/api/v3/Membership.php b/civicrm/api/v3/Membership.php
index 2038306a23..879aeb80ad 100644
--- a/civicrm/api/v3/Membership.php
+++ b/civicrm/api/v3/Membership.php
@@ -66,6 +66,9 @@ function civicrm_api3_membership_delete($params) {
  *
  * @return array
  *   API result array.
+ *
+ * @throws \CRM_Core_Exception
+ * @throws \CiviCRM_API3_Exception
  */
 function civicrm_api3_membership_create($params) {
   // check params for membership id during update
@@ -121,10 +124,6 @@ function civicrm_api3_membership_create($params) {
   $ids = [];
   if (empty($params['id'])) {
     $params['action'] = CRM_Core_Action::ADD;
-    // we need user id during add mode
-    if (!empty($params['contact_id'])) {
-      $ids['userId'] = $params['contact_id'];
-    }
   }
   else {
     // edit mode
@@ -134,7 +133,7 @@ function civicrm_api3_membership_create($params) {
   }
 
   // @todo stop passing $ids (membership and userId may be set above)
-  $membershipBAO = CRM_Member_BAO_Membership::create($params, $ids, TRUE);
+  $membershipBAO = CRM_Member_BAO_Membership::create($params, $ids);
 
   if (array_key_exists('is_error', $membershipBAO)) {
     // In case of no valid status for given dates, $membershipBAO
diff --git a/civicrm/api/v3/MembershipStatus.php b/civicrm/api/v3/MembershipStatus.php
index 87d01b3656..97421d09d9 100644
--- a/civicrm/api/v3/MembershipStatus.php
+++ b/civicrm/api/v3/MembershipStatus.php
@@ -173,4 +173,7 @@ SELECT start_date, end_date, join_date, membership_type_id
 function _civicrm_api3_membership_status_calc_spec(&$params) {
   $params['membership_id']['api.required'] = 1;
   $params['membership_id']['title'] = 'Membership ID';
+  $params['ignore_admin_only']['title'] = 'Ignore admin only statuses';
+  $params['ignore_admin_only']['description'] = 'Ignore statuses that are for admin/manual assignment only';
+  $params['ignore_admin_only']['type'] = CRM_Utils_Type::T_BOOLEAN;
 }
diff --git a/civicrm/api/v3/Order.php b/civicrm/api/v3/Order.php
index 88236aa011..464dcd4270 100644
--- a/civicrm/api/v3/Order.php
+++ b/civicrm/api/v3/Order.php
@@ -141,6 +141,9 @@ function civicrm_api3_order_create($params) {
       if ($entity == 'pledge') {
         $paymentParams += $entityParams;
       }
+      elseif ($entity == 'membership') {
+        $paymentParams['isSkipLineItem'] = TRUE;
+      }
       $payments = civicrm_api3($entity . '_payment', 'create', $paymentParams);
     }
   }
diff --git a/civicrm/api/v3/PaymentProcessor.php b/civicrm/api/v3/PaymentProcessor.php
index 4d7df87fe1..06587f00ca 100644
--- a/civicrm/api/v3/PaymentProcessor.php
+++ b/civicrm/api/v3/PaymentProcessor.php
@@ -24,12 +24,6 @@
  *   API result array
  */
 function civicrm_api3_payment_processor_create($params) {
-  if (empty($params['id']) && empty($params['payment_instrument_id'])) {
-    $params['payment_instrument_id'] = civicrm_api3('PaymentProcessorType', 'getvalue', [
-      'id' => $params['payment_processor_type_id'],
-      'return' => 'payment_instrument_id',
-    ]);
-  }
   return _civicrm_api3_basic_create(_civicrm_api3_get_BAO(__FUNCTION__), $params, 'PaymentProcessor');
 }
 
diff --git a/civicrm/api/v3/System.php b/civicrm/api/v3/System.php
index c91583fc0f..3eb6845ce4 100644
--- a/civicrm/api/v3/System.php
+++ b/civicrm/api/v3/System.php
@@ -384,6 +384,38 @@ function civicrm_api3_system_updatelogtables($params) {
   return civicrm_api3_create_success($updatedTablesCount);
 }
 
+/**
+ * Update log table structures.
+ *
+ * This updates the engine type if defined in the hook and changes the field type
+ * for log_conn_id to reflect CRM-18193.
+ *
+ * @param array $params
+ *
+ * @return array
+ *
+ * @throws \API_Exception
+ */
+function civicrm_api3_system_utf8conversion($params) {
+  if (CRM_Core_BAO_SchemaHandler::migrateUtf8mb4($params['is_revert'])) {
+    return civicrm_api3_create_success(1);
+  }
+  throw new API_Exception('Conversion failed');
+}
+
+/**
+ * Metadata for conversion function.
+ *
+ * @param array $params
+ */
+function _civicrm_api3_system_utf8conversion_spec(&$params) {
+  $params['is_revert'] = [
+    'title' => ts('Revert back from UTF8MB4 to UTF8?'),
+    'type' => CRM_Utils_Type::T_BOOLEAN,
+    'api.default' => FALSE,
+  ];
+}
+
 /**
  * Adjust Metadata for Flush action.
  *
@@ -411,22 +443,56 @@ function _civicrm_api3_system_updatelogtables_spec(&$params) {
  * Update indexes.
  *
  * This adds any indexes that exist in the schema but not the database.
+ *
+ * @param array $params
+ *
+ * @return array
  */
-function civicrm_api3_system_updateindexes() {
-  CRM_Core_BAO_SchemaHandler::createMissingIndices(CRM_Core_BAO_SchemaHandler::getMissingIndices(TRUE));
+function civicrm_api3_system_updateindexes(array $params):array {
+  $tables = empty($params['tables']) ? FALSE : (array) $params['tables'];
+  CRM_Core_BAO_SchemaHandler::createMissingIndices(CRM_Core_BAO_SchemaHandler::getMissingIndices(TRUE, $tables));
   return civicrm_api3_create_success(1);
 }
 
+/**
+ * Declare metadata for api System.getmissingindices
+ *
+ * @param array $params
+ */
+function _civicrm_api3_system_updateindexes_spec(array &$params) {
+  $params['tables'] = [
+    'type' => CRM_Utils_Type::T_STRING,
+    'api.default' => FALSE,
+    'title' => ts('Optional tables filter'),
+  ];
+}
+
 /**
  * Get an array of indices that should be defined but are not.
  *
+ * @param array $params
+ *
  * @return array
  */
-function civicrm_api3_system_getmissingindices() {
-  $indices = CRM_Core_BAO_SchemaHandler::getMissingIndices(FALSE);
+function civicrm_api3_system_getmissingindices($params) {
+  $tables = empty($params['tables']) ? FALSE : (array) $params['tables'];
+  $indices = CRM_Core_BAO_SchemaHandler::getMissingIndices(FALSE, $tables);
   return civicrm_api3_create_success($indices);
 }
 
+/**
+ * Declare metadata for api System.getmissingindices
+ *
+ * @param array $params
+ */
+function _civicrm_api3_system_getmissingindices_spec(&$params) {
+  $params['tables'] = [
+    'type' => CRM_Utils_Type::T_STRING,
+    'api.default' => FALSE,
+    'title' => ts('Optional tables filter'),
+  ];
+}
+
 /**
  * Creates missing log tables.
  *
diff --git a/civicrm/api/v3/examples/Domain/Create.ex.php b/civicrm/api/v3/examples/Domain/Create.ex.php
index 85b9fb6dbe..70280cf0b4 100644
--- a/civicrm/api/v3/examples/Domain/Create.ex.php
+++ b/civicrm/api/v3/examples/Domain/Create.ex.php
@@ -50,7 +50,6 @@ function domain_create_expectedresult() {
         'id' => '3',
         'name' => 'A-team domain',
         'description' => 'domain of chaos',
-        'config_backend' => '',
         'contact_id' => '7',
         'locales' => '',
         'locale_custom_strings' => '',
diff --git a/civicrm/api/v3/examples/Event/Create.ex.php b/civicrm/api/v3/examples/Event/Create.ex.php
index 0a9977424c..ccca91dcce 100644
--- a/civicrm/api/v3/examples/Event/Create.ex.php
+++ b/civicrm/api/v3/examples/Event/Create.ex.php
@@ -8,7 +8,7 @@
 function event_create_example() {
   $params = [
     'title' => 'Annual CiviCRM meet',
-    'summary' => 'If you have any CiviCRM realted issues or want to track where CiviCRM is heading, Sign up now',
+    'summary' => 'If you have any CiviCRM related issues or want to track where CiviCRM is heading, Sign up now',
     'description' => 'This event is intended to give brief idea about progess of CiviCRM and giving solutions to common user issues',
     'event_type_id' => 1,
     'is_public' => 1,
@@ -60,7 +60,7 @@ function event_create_expectedresult() {
       '3' => [
         'id' => '3',
         'title' => 'Annual CiviCRM meet',
-        'summary' => 'If you have any CiviCRM realted issues or want to track where CiviCRM is heading, Sign up now',
+        'summary' => 'If you have any CiviCRM related issues or want to track where CiviCRM is heading, Sign up now',
         'description' => 'This event is intended to give brief idea about progess of CiviCRM and giving solutions to common user issues',
         'event_type_id' => '1',
         'participant_listing_id' => '',
diff --git a/civicrm/api/v3/examples/Event/IsCurrentOption.ex.php b/civicrm/api/v3/examples/Event/IsCurrentOption.ex.php
index c43d238240..a0ce413047 100644
--- a/civicrm/api/v3/examples/Event/IsCurrentOption.ex.php
+++ b/civicrm/api/v3/examples/Event/IsCurrentOption.ex.php
@@ -49,7 +49,7 @@ function event_get_expectedresult() {
         'id' => '3',
         'title' => 'Annual CiviCRM meet 2',
         'event_title' => 'Annual CiviCRM meet 2',
-        'summary' => 'If you have any CiviCRM realted issues or want to track where CiviCRM is heading, Sign up now',
+        'summary' => 'If you have any CiviCRM related issues or want to track where CiviCRM is heading, Sign up now',
         'description' => 'This event is intended to give brief idea about progess of CiviCRM and giving solutions to common user issues',
         'event_description' => 'This event is intended to give brief idea about progess of CiviCRM and giving solutions to common user issues',
         'event_type_id' => '1',
diff --git a/civicrm/api/v3/examples/Setting/GetFields.ex.php b/civicrm/api/v3/examples/Setting/GetFields.ex.php
index c188d7d591..2f479ace75 100644
--- a/civicrm/api/v3/examples/Setting/GetFields.ex.php
+++ b/civicrm/api/v3/examples/Setting/GetFields.ex.php
@@ -234,7 +234,6 @@ function setting_getfields_expectedresult() {
         'type' => 'Array',
         'default' => [
           'invoice_prefix' => 'INV_',
-          'credit_notes_prefix' => 'CN_',
           'due_date' => '10',
           'due_date_period' => 'days',
           'notes' => '',
diff --git a/civicrm/api/v3/utils.php b/civicrm/api/v3/utils.php
index dd90088fe6..fb3c509cb9 100644
--- a/civicrm/api/v3/utils.php
+++ b/civicrm/api/v3/utils.php
@@ -2442,10 +2442,6 @@ function _civicrm_api3_api_resolve_alias($entity, $fieldName, $action = 'create'
  */
 function _civicrm_api3_deprecation_check($entity, $result = []) {
   if ($entity) {
-    $apiFile = "api/v3/$entity.php";
-    if (CRM_Utils_File::isIncludable($apiFile)) {
-      require_once $apiFile;
-    }
     $lowercase_entity = _civicrm_api_get_entity_name_from_camel($entity);
     $fnName = "_civicrm_api3_{$lowercase_entity}_deprecation";
     if (function_exists($fnName)) {
diff --git a/civicrm/bin/regen.sh b/civicrm/bin/regen.sh
index f975c2e88a..0af6490e58 100755
--- a/civicrm/bin/regen.sh
+++ b/civicrm/bin/regen.sh
@@ -48,7 +48,7 @@ cms_eval 'civicrm_initialize();'
 php GenerateData.php
 
 ## Prune local data
-$MYSQLCMD -e "DROP TABLE zipcodes; DROP TABLE IF EXISTS civicrm_install_canary; UPDATE civicrm_domain SET config_backend = NULL; DELETE FROM civicrm_extension; DELETE FROM civicrm_cache; DELETE FROM civicrm_setting;"
+$MYSQLCMD -e "DROP TABLE zipcodes; DROP TABLE IF EXISTS civicrm_install_canary; DELETE FROM civicrm_extension; DELETE FROM civicrm_cache; DELETE FROM civicrm_setting;"
 TABLENAMES=$( echo "show tables like 'civicrm_%'" | $MYSQLCMD | grep ^civicrm_ | xargs )
 
 cd $CIVISOURCEDIR/sql
diff --git a/civicrm/bower_components/marked/.composer-downloads/marked-5bbf2d6725b29ad8ddb7c3ab47c50930.json b/civicrm/bower_components/marked/.composer-downloads/marked-5bbf2d6725b29ad8ddb7c3ab47c50930.json
new file mode 100644
index 0000000000..890bab8740
--- /dev/null
+++ b/civicrm/bower_components/marked/.composer-downloads/marked-5bbf2d6725b29ad8ddb7c3ab47c50930.json
@@ -0,0 +1,4 @@
+{
+    "name": "civicrm/civicrm-core:marked",
+    "url": "https://github.com/markedjs/marked/archive/v0.8.0.zip"
+}
\ No newline at end of file
diff --git a/civicrm/bower_components/marked/index.js b/civicrm/bower_components/marked/index.js
new file mode 100644
index 0000000000..a12f90569f
--- /dev/null
+++ b/civicrm/bower_components/marked/index.js
@@ -0,0 +1 @@
+module.exports = require('./lib/marked');
diff --git a/civicrm/bower_components/marked/marked.min.js b/civicrm/bower_components/marked/marked.min.js
new file mode 100644
index 0000000000..a46426cc2b
--- /dev/null
+++ b/civicrm/bower_components/marked/marked.min.js
@@ -0,0 +1,6 @@
+/**
+ * marked - a markdown parser
+ * Copyright (c) 2011-2019, Christopher Jeffrey. (MIT Licensed)
+ * https://github.com/markedjs/marked
+ */
+!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self).marked=t()}(this,function(){"use strict";function r(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function t(e,t,n){return t&&r(e.prototype,t),n&&r(e,n),e}function n(e){return h[e]}var e,s=(function(t){function e(){return{baseUrl:null,breaks:!1,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:null,sanitize:!1,sanitizer:null,silent:!1,smartLists:!1,smartypants:!1,xhtml:!1}}t.exports={defaults:e(),getDefaults:e,changeDefaults:function(e){t.exports.defaults=e}}}(e={exports:{}},e.exports),e.exports),i=(s.defaults,s.getDefaults,s.changeDefaults,/[&<>"']/),l=/[&<>"']/g,a=/[<>"']|&(?!#?\w+;)/,o=/[<>"']|&(?!#?\w+;)/g,h={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"};var u=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi;function c(e){return e.replace(u,function(e,t){return"colon"===(t=t.toLowerCase())?":":"#"===t.charAt(0)?"x"===t.charAt(1)?String.fromCharCode(parseInt(t.substring(2),16)):String.fromCharCode(+t.substring(1)):""})}var p=/(^|[^\[])\^/g;var g=/[^\w:]/g,f=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;var d={},k=/^[^:]+:\/*[^/]*$/,b=/^([^:]+:)[\s\S]*$/,m=/^([^:]+:\/*[^/]*)[\s\S]*$/;function x(e,t){d[" "+e]||(k.test(e)?d[" "+e]=e+"/":d[" "+e]=_(e,"/",!0));var n=-1===(e=d[" "+e]).indexOf(":");return"//"===t.substring(0,2)?n?t:e.replace(b,"$1")+t:"/"===t.charAt(0)?n?t:e.replace(m,"$1")+t:e+t}function _(e,t,n){var r=e.length;if(0===r)return"";for(var s=0;s<r;){var i=e.charAt(r-s-1);if(i!==t||n){if(i===t||!n)break;s++}else s++}return e.substr(0,r-s)}var y=function(e,t){if(t){if(i.test(e))return e.replace(l,n)}else if(a.test(e))return e.replace(o,n);return e},w=c,v=function(e,t,n){if(e){var r;try{r=decodeURIComponent(c(n)).replace(g,"").toLowerCase()}catch(e){return null}if(0===r.indexOf("javascript:")||0===r.indexOf("vbscript:")||0===r.indexOf("data:"))return null}t&&!f.test(n)&&(n=x(t,n));try{n=encodeURI(n).replace(/%25/g,"%")}catch(e){return null}return n},$=function(e){for(var t,n,r=1;r<arguments.length;r++)for(n in t=arguments[r])Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e},S=function(e,t){var n=e.replace(/\|/g,function(e,t,n){for(var r=!1,s=t;0<=--s&&"\\"===n[s];)r=!r;return r?"|":" |"}).split(/ \|/),r=0;if(n.length>t)n.splice(t);else for(;n.length<t;)n.push("");for(;r<n.length;r++)n[r]=n[r].trim().replace(/\\\|/g,"|");return n},z=_,A=function(e,t){if(-1===e.indexOf(t[1]))return-1;for(var n=e.length,r=0,s=0;s<n;s++)if("\\"===e[s])s++;else if(e[s]===t[0])r++;else if(e[s]===t[1]&&--r<0)return s;return-1},R=function(e){e&&e.sanitize&&!e.silent&&console.warn("marked(): sanitize and sanitizer parameters are deprecated since version 0.7.0, should not be used and will be removed in the future. Read more here: https://marked.js.org/#/USING_ADVANCED.md#options")},Z={exec:function(){}},L=function(n,e){n=n.source||n,e=e||"";var r={replace:function(e,t){return t=(t=t.source||t).replace(p,"$1"),n=n.replace(e,t),r},getRegex:function(){return new RegExp(n,e)}};return r},q=$,C={newline:/^\n+/,code:/^( {4}[^\n]+\n*)+/,fences:/^ {0,3}(`{3,}|~{3,})([^`~\n]*)\n(?:|([\s\S]*?)\n)(?: {0,3}\1[~`]* *(?:\n+|$)|$)/,hr:/^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\* *){3,})(?:\n+|$)/,heading:/^ {0,3}(#{1,6}) +([^\n]*?)(?: +#+)? *(?:\n+|$)/,blockquote:/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,list:/^( {0,3})(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,html:"^ {0,3}(?:<(script|pre|style)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?\\?>\\n*|<![A-Z][\\s\\S]*?>\\n*|<!\\[CDATA\\[[\\s\\S]*?\\]\\]>\\n*|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:\\n{2,}|$)|<(?!script|pre|style)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:\\n{2,}|$)|</(?!script|pre|style)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:\\n{2,}|$))",def:/^ {0,3}\[(label)\]: *\n? *<?([^\s>]+)>?(?:(?: +\n? *| *\n *)(title))? *(?:\n+|$)/,nptable:Z,table:Z,lheading:/^([^\n]+)\n {0,3}(=+|-+) *(?:\n+|$)/,_paragraph:/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html)[^\n]+)*)/,text:/^[^\n]+/,_label:/(?!\s*\])(?:\\[\[\]]|[^\[\]])+/,_title:/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/};C.def=L(C.def).replace("label",C._label).replace("title",C._title).getRegex(),C.bullet=/(?:[*+-]|\d{1,9}\.)/,C.item=/^( *)(bull) ?[^\n]*(?:\n(?!\1bull ?)[^\n]*)*/,C.item=L(C.item,"gm").replace(/bull/g,C.bullet).getRegex(),C.list=L(C.list).replace(/bull/g,C.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+C.def.source+")").getRegex(),C._tag="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",C._comment=/<!--(?!-?>)[\s\S]*?-->/,C.html=L(C.html,"i").replace("comment",C._comment).replace("tag",C._tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),C.paragraph=L(C._paragraph).replace("hr",C.hr).replace("heading"," {0,3}#{1,6} +").replace("|lheading","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}|~{3,})[^`\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|!--)").replace("tag",C._tag).getRegex(),C.blockquote=L(C.blockquote).replace("paragraph",C.paragraph).getRegex(),C.normal=q({},C),C.gfm=q({},C.normal,{nptable:/^ *([^|\n ].*\|.*)\n *([-:]+ *\|[-| :]*)(?:\n((?:.*[^>\n ].*(?:\n|$))*)\n*|$)/,table:/^ *\|(.+)\n *\|?( *[-:]+[-| :]*)(?:\n((?: *[^>\n ].*(?:\n|$))*)\n*|$)/}),C.pedantic=q({},C.normal,{html:L("^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:\"[^\"]*\"|'[^']*'|\\s[^'\"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment",C._comment).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^ *(#{1,6}) *([^\n]+?) *(?:#+ *)?(?:\n+|$)/,fences:Z,paragraph:L(C.normal._paragraph).replace("hr",C.hr).replace("heading"," *#{1,6} *[^\n]").replace("lheading",C.lheading).replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").getRegex()});var O={escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:Z,tag:"^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>",link:/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/,reflink:/^!?\[(label)\]\[(?!\s*\])((?:\\[\[\]]?|[^\[\]\\])+)\]/,nolink:/^!?\[(?!\s*\])((?:\[[^\[\]]*\]|\\[\[\]]|[^\[\]])*)\](?:\[\])?/,strong:/^__([^\s_])__(?!_)|^\*\*([^\s*])\*\*(?!\*)|^__([^\s][\s\S]*?[^\s])__(?!_)|^\*\*([^\s][\s\S]*?[^\s])\*\*(?!\*)/,em:/^_([^\s_])_(?!_)|^\*([^\s*<\[])\*(?!\*)|^_([^\s<][\s\S]*?[^\s_])_(?!_|[^\spunctuation])|^_([^\s_<][\s\S]*?[^\s])_(?!_|[^\spunctuation])|^\*([^\s<"][\s\S]*?[^\s\*])\*(?!\*|[^\spunctuation])|^\*([^\s*"<\[][\s\S]*?[^\s])\*(?!\*)/,code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,br:/^( {2,}|\\)\n(?!\s*$)/,del:Z,text:/^(`+|[^`])(?:[\s\S]*?(?:(?=[\\<!\[`*]|\b_|$)|[^ ](?= {2,}\n))|(?= {2,}\n))/,_punctuation:"!\"#$%&'()*+,\\-./:;<=>?@\\[^_{|}~"};O.em=L(O.em).replace(/punctuation/g,O._punctuation).getRegex(),O._escapes=/\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g,O._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/,O._email=/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/,O.autolink=L(O.autolink).replace("scheme",O._scheme).replace("email",O._email).getRegex(),O._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/,O.tag=L(O.tag).replace("comment",C._comment).replace("attribute",O._attribute).getRegex(),O._label=/(?:\[[^\[\]]*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,O._href=/<(?:\\[<>]?|[^\s<>\\])*>|[^\s\x00-\x1f]*/,O._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/,O.link=L(O.link).replace("label",O._label).replace("href",O._href).replace("title",O._title).getRegex(),O.reflink=L(O.reflink).replace("label",O._label).getRegex(),O.normal=q({},O),O.pedantic=q({},O.normal,{strong:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,em:/^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/,link:L(/^!?\[(label)\]\((.*?)\)/).replace("label",O._label).getRegex(),reflink:L(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",O._label).getRegex()}),O.gfm=q({},O.normal,{escape:L(O.escape).replace("])","~|])").getRegex(),_extended_email:/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,url:/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,_backpedal:/(?:[^?!.,:;*_~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,del:/^~+(?=\S)([\s\S]*?\S)~+/,text:/^(`+|[^`])(?:[\s\S]*?(?:(?=[\\<!\[`*~]|\b_|https?:\/\/|ftp:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@))|(?= {2,}\n|[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@))/}),O.gfm.url=L(O.gfm.url,"i").replace("email",O.gfm._extended_email).getRegex(),O.breaks=q({},O.gfm,{br:L(O.br).replace("{2,}","*").getRegex(),text:L(O.gfm.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()});var D={block:C,inline:O},E=s.defaults,j=D.block,P=z,T=S,I=y,B=function(){function n(e){this.tokens=[],this.tokens.links=Object.create(null),this.options=e||E,this.rules=j.normal,this.options.pedantic?this.rules=j.pedantic:this.options.gfm&&(this.rules=j.gfm)}n.lex=function(e,t){return new n(t).lex(e)};var e=n.prototype;return e.lex=function(e){return e=e.replace(/\r\n|\r/g,"\n").replace(/\t/g,"    "),this.token(e,!0)},e.token=function(e,t){var n,r,s,i,l,a,o,h,u,c,p,g,f,d,k,b;for(e=e.replace(/^ +$/gm,"");e;)if((s=this.rules.newline.exec(e))&&(e=e.substring(s[0].length),1<s[0].length&&this.tokens.push({type:"space"})),s=this.rules.code.exec(e)){var m=this.tokens[this.tokens.length-1];e=e.substring(s[0].length),m&&"paragraph"===m.type?m.text+="\n"+s[0].trimRight():(s=s[0].replace(/^ {4}/gm,""),this.tokens.push({type:"code",codeBlockStyle:"indented",text:this.options.pedantic?s:P(s,"\n")}))}else if(s=this.rules.fences.exec(e))e=e.substring(s[0].length),this.tokens.push({type:"code",lang:s[2]?s[2].trim():s[2],text:s[3]||""});else if(s=this.rules.heading.exec(e))e=e.substring(s[0].length),this.tokens.push({type:"heading",depth:s[1].length,text:s[2]});else if((s=this.rules.nptable.exec(e))&&(a={type:"table",header:T(s[1].replace(/^ *| *\| *$/g,"")),align:s[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:s[3]?s[3].replace(/\n$/,"").split("\n"):[]}).header.length===a.align.length){for(e=e.substring(s[0].length),p=0;p<a.align.length;p++)/^ *-+: *$/.test(a.align[p])?a.align[p]="right":/^ *:-+: *$/.test(a.align[p])?a.align[p]="center":/^ *:-+ *$/.test(a.align[p])?a.align[p]="left":a.align[p]=null;for(p=0;p<a.cells.length;p++)a.cells[p]=T(a.cells[p],a.header.length);this.tokens.push(a)}else if(s=this.rules.hr.exec(e))e=e.substring(s[0].length),this.tokens.push({type:"hr"});else if(s=this.rules.blockquote.exec(e))e=e.substring(s[0].length),this.tokens.push({type:"blockquote_start"}),s=s[0].replace(/^ *> ?/gm,""),this.token(s,t),this.tokens.push({type:"blockquote_end"});else if(s=this.rules.list.exec(e)){for(e=e.substring(s[0].length),o={type:"list_start",ordered:d=1<(i=s[2]).length,start:d?+i:"",loose:!1},this.tokens.push(o),n=!(h=[]),f=(s=s[0].match(this.rules.item)).length,p=0;p<f;p++)c=(a=s[p]).length,~(a=a.replace(/^ *([*+-]|\d+\.) */,"")).indexOf("\n ")&&(c-=a.length,a=this.options.pedantic?a.replace(/^ {1,4}/gm,""):a.replace(new RegExp("^ {1,"+c+"}","gm"),"")),p!==f-1&&(l=j.bullet.exec(s[p+1])[0],(1<i.length?1===l.length:1<l.length||this.options.smartLists&&l!==i)&&(e=s.slice(p+1).join("\n")+e,p=f-1)),r=n||/\n\n(?!\s*$)/.test(a),p!==f-1&&(n="\n"===a.charAt(a.length-1),r=r||n),r&&(o.loose=!0),b=void 0,(k=/^\[[ xX]\] /.test(a))&&(b=" "!==a[1],a=a.replace(/^\[[ xX]\] +/,"")),u={type:"list_item_start",task:k,checked:b,loose:r},h.push(u),this.tokens.push(u),this.token(a,!1),this.tokens.push({type:"list_item_end"});if(o.loose)for(f=h.length,p=0;p<f;p++)h[p].loose=!0;this.tokens.push({type:"list_end"})}else if(s=this.rules.html.exec(e))e=e.substring(s[0].length),this.tokens.push({type:this.options.sanitize?"paragraph":"html",pre:!this.options.sanitizer&&("pre"===s[1]||"script"===s[1]||"style"===s[1]),text:this.options.sanitize?this.options.sanitizer?this.options.sanitizer(s[0]):I(s[0]):s[0]});else if(t&&(s=this.rules.def.exec(e)))e=e.substring(s[0].length),s[3]&&(s[3]=s[3].substring(1,s[3].length-1)),g=s[1].toLowerCase().replace(/\s+/g," "),this.tokens.links[g]||(this.tokens.links[g]={href:s[2],title:s[3]});else if((s=this.rules.table.exec(e))&&(a={type:"table",header:T(s[1].replace(/^ *| *\| *$/g,"")),align:s[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:s[3]?s[3].replace(/\n$/,"").split("\n"):[]}).header.length===a.align.length){for(e=e.substring(s[0].length),p=0;p<a.align.length;p++)/^ *-+: *$/.test(a.align[p])?a.align[p]="right":/^ *:-+: *$/.test(a.align[p])?a.align[p]="center":/^ *:-+ *$/.test(a.align[p])?a.align[p]="left":a.align[p]=null;for(p=0;p<a.cells.length;p++)a.cells[p]=T(a.cells[p].replace(/^ *\| *| *\| *$/g,""),a.header.length);this.tokens.push(a)}else if(s=this.rules.lheading.exec(e))e=e.substring(s[0].length),this.tokens.push({type:"heading",depth:"="===s[2].charAt(0)?1:2,text:s[1]});else if(t&&(s=this.rules.paragraph.exec(e)))e=e.substring(s[0].length),this.tokens.push({type:"paragraph",text:"\n"===s[1].charAt(s[1].length-1)?s[1].slice(0,-1):s[1]});else if(s=this.rules.text.exec(e))e=e.substring(s[0].length),this.tokens.push({type:"text",text:s[0]});else if(e)throw new Error("Infinite loop on byte: "+e.charCodeAt(0));return this.tokens},t(n,null,[{key:"rules",get:function(){return j}}]),n}(),U=s.defaults,F=v,N=y,X=function(){function e(e){this.options=e||U}var t=e.prototype;return t.code=function(e,t,n){var r=(t||"").match(/\S*/)[0];if(this.options.highlight){var s=this.options.highlight(e,r);null!=s&&s!==e&&(n=!0,e=s)}return r?'<pre><code class="'+this.options.langPrefix+N(r,!0)+'">'+(n?e:N(e,!0))+"</code></pre>\n":"<pre><code>"+(n?e:N(e,!0))+"</code></pre>"},t.blockquote=function(e){return"<blockquote>\n"+e+"</blockquote>\n"},t.html=function(e){return e},t.heading=function(e,t,n,r){return this.options.headerIds?"<h"+t+' id="'+this.options.headerPrefix+r.slug(n)+'">'+e+"</h"+t+">\n":"<h"+t+">"+e+"</h"+t+">\n"},t.hr=function(){return this.options.xhtml?"<hr/>\n":"<hr>\n"},t.list=function(e,t,n){var r=t?"ol":"ul";return"<"+r+(t&&1!==n?' start="'+n+'"':"")+">\n"+e+"</"+r+">\n"},t.listitem=function(e){return"<li>"+e+"</li>\n"},t.checkbox=function(e){return"<input "+(e?'checked="" ':"")+'disabled="" type="checkbox"'+(this.options.xhtml?" /":"")+"> "},t.paragraph=function(e){return"<p>"+e+"</p>\n"},t.table=function(e,t){return"<table>\n<thead>\n"+e+"</thead>\n"+(t=t&&"<tbody>"+t+"</tbody>")+"</table>\n"},t.tablerow=function(e){return"<tr>\n"+e+"</tr>\n"},t.tablecell=function(e,t){var n=t.header?"th":"td";return(t.align?"<"+n+' align="'+t.align+'">':"<"+n+">")+e+"</"+n+">\n"},t.strong=function(e){return"<strong>"+e+"</strong>"},t.em=function(e){return"<em>"+e+"</em>"},t.codespan=function(e){return"<code>"+e+"</code>"},t.br=function(){return this.options.xhtml?"<br/>":"<br>"},t.del=function(e){return"<del>"+e+"</del>"},t.link=function(e,t,n){if(null===(e=F(this.options.sanitize,this.options.baseUrl,e)))return n;var r='<a href="'+N(e)+'"';return t&&(r+=' title="'+t+'"'),r+=">"+n+"</a>"},t.image=function(e,t,n){if(null===(e=F(this.options.sanitize,this.options.baseUrl,e)))return n;var r='<img src="'+e+'" alt="'+n+'"';return t&&(r+=' title="'+t+'"'),r+=this.options.xhtml?"/>":">"},t.text=function(e){return e},e}(),G=function(){function e(){this.seen={}}return e.prototype.slug=function(e){var t=e.toLowerCase().trim().replace(/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~]/g,"").replace(/\s/g,"-");if(this.seen.hasOwnProperty(t))for(var n=t;this.seen[n]++,t=n+"-"+this.seen[n],this.seen.hasOwnProperty(t););return this.seen[t]=0,t},e}(),M=s.defaults,V=D.inline,H=A,J=y,K=function(){function u(e,t){if(this.options=t||M,this.links=e,this.rules=V.normal,this.options.renderer=this.options.renderer||new X,this.renderer=this.options.renderer,this.renderer.options=this.options,!this.links)throw new Error("Tokens array requires a `links` property.");this.options.pedantic?this.rules=V.pedantic:this.options.gfm&&(this.options.breaks?this.rules=V.breaks:this.rules=V.gfm)}u.output=function(e,t,n){return new u(t,n).output(e)};var e=u.prototype;return e.output=function(e){for(var t,n,r,s,i,l,a="";e;)if(i=this.rules.escape.exec(e))e=e.substring(i[0].length),a+=J(i[1]);else if(i=this.rules.tag.exec(e))!this.inLink&&/^<a /i.test(i[0])?this.inLink=!0:this.inLink&&/^<\/a>/i.test(i[0])&&(this.inLink=!1),!this.inRawBlock&&/^<(pre|code|kbd|script)(\s|>)/i.test(i[0])?this.inRawBlock=!0:this.inRawBlock&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(i[0])&&(this.inRawBlock=!1),e=e.substring(i[0].length),a+=this.options.sanitize?this.options.sanitizer?this.options.sanitizer(i[0]):J(i[0]):i[0];else if(i=this.rules.link.exec(e)){var o=H(i[2],"()");if(-1<o){var h=(0===i[0].indexOf("!")?5:4)+i[1].length+o;i[2]=i[2].substring(0,o),i[0]=i[0].substring(0,h).trim(),i[3]=""}e=e.substring(i[0].length),this.inLink=!0,r=i[2],s=this.options.pedantic?(t=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(r))?(r=t[1],t[3]):"":i[3]?i[3].slice(1,-1):"",r=r.trim().replace(/^<([\s\S]*)>$/,"$1"),a+=this.outputLink(i,{href:u.escapes(r),title:u.escapes(s)}),this.inLink=!1}else if((i=this.rules.reflink.exec(e))||(i=this.rules.nolink.exec(e))){if(e=e.substring(i[0].length),t=(i[2]||i[1]).replace(/\s+/g," "),!(t=this.links[t.toLowerCase()])||!t.href){a+=i[0].charAt(0),e=i[0].substring(1)+e;continue}this.inLink=!0,a+=this.outputLink(i,t),this.inLink=!1}else if(i=this.rules.strong.exec(e))e=e.substring(i[0].length),a+=this.renderer.strong(this.output(i[4]||i[3]||i[2]||i[1]));else if(i=this.rules.em.exec(e))e=e.substring(i[0].length),a+=this.renderer.em(this.output(i[6]||i[5]||i[4]||i[3]||i[2]||i[1]));else if(i=this.rules.code.exec(e))e=e.substring(i[0].length),a+=this.renderer.codespan(J(i[2].trim(),!0));else if(i=this.rules.br.exec(e))e=e.substring(i[0].length),a+=this.renderer.br();else if(i=this.rules.del.exec(e))e=e.substring(i[0].length),a+=this.renderer.del(this.output(i[1]));else if(i=this.rules.autolink.exec(e))e=e.substring(i[0].length),r="@"===i[2]?"mailto:"+(n=J(this.mangle(i[1]))):n=J(i[1]),a+=this.renderer.link(r,null,n);else if(this.inLink||!(i=this.rules.url.exec(e))){if(i=this.rules.text.exec(e))e=e.substring(i[0].length),this.inRawBlock?a+=this.renderer.text(this.options.sanitize?this.options.sanitizer?this.options.sanitizer(i[0]):J(i[0]):i[0]):a+=this.renderer.text(J(this.smartypants(i[0])));else if(e)throw new Error("Infinite loop on byte: "+e.charCodeAt(0))}else{if("@"===i[2])r="mailto:"+(n=J(i[0]));else{for(;l=i[0],i[0]=this.rules._backpedal.exec(i[0])[0],l!==i[0];);n=J(i[0]),r="www."===i[1]?"http://"+n:n}e=e.substring(i[0].length),a+=this.renderer.link(r,null,n)}return a},u.escapes=function(e){return e?e.replace(u.rules._escapes,"$1"):e},e.outputLink=function(e,t){var n=t.href,r=t.title?J(t.title):null;return"!"!==e[0].charAt(0)?this.renderer.link(n,r,this.output(e[1])):this.renderer.image(n,r,J(e[1]))},e.smartypants=function(e){return this.options.smartypants?e.replace(/---/g,"—").replace(/--/g,"–").replace(/(^|[-\u2014/(\[{"\s])'/g,"$1‘").replace(/'/g,"’").replace(/(^|[-\u2014/(\[{\u2018\s])"/g,"$1“").replace(/"/g,"”").replace(/\.{3}/g,"…"):e},e.mangle=function(e){if(!this.options.mangle)return e;for(var t,n=e.length,r="",s=0;s<n;s++)t=e.charCodeAt(s),.5<Math.random()&&(t="x"+t.toString(16)),r+="&#"+t+";";return r},t(u,null,[{key:"rules",get:function(){return V}}]),u}(),Q=function(){function e(){}var t=e.prototype;return t.strong=function(e){return e},t.em=function(e){return e},t.codespan=function(e){return e},t.del=function(e){return e},t.text=function(e){return e},t.link=function(e,t,n){return""+n},t.image=function(e,t,n){return""+n},t.br=function(){return""},e}(),W=s.defaults,Y=$,ee=w,te=function(){function n(e){this.tokens=[],this.token=null,this.options=e||W,this.options.renderer=this.options.renderer||new X,this.renderer=this.options.renderer,this.renderer.options=this.options,this.slugger=new G}n.parse=function(e,t){return new n(t).parse(e)};var e=n.prototype;return e.parse=function(e){this.inline=new K(e.links,this.options),this.inlineText=new K(e.links,Y({},this.options,{renderer:new Q})),this.tokens=e.reverse();for(var t="";this.next();)t+=this.tok();return t},e.next=function(){return this.token=this.tokens.pop(),this.token},e.peek=function(){return this.tokens[this.tokens.length-1]||0},e.parseText=function(){for(var e=this.token.text;"text"===this.peek().type;)e+="\n"+this.next().text;return this.inline.output(e)},e.tok=function(){var e="";switch(this.token.type){case"space":return"";case"hr":return this.renderer.hr();case"heading":return this.renderer.heading(this.inline.output(this.token.text),this.token.depth,ee(this.inlineText.output(this.token.text)),this.slugger);case"code":return this.renderer.code(this.token.text,this.token.lang,this.token.escaped);case"table":var t,n,r,s,i="";for(r="",t=0;t<this.token.header.length;t++)r+=this.renderer.tablecell(this.inline.output(this.token.header[t]),{header:!0,align:this.token.align[t]});for(i+=this.renderer.tablerow(r),t=0;t<this.token.cells.length;t++){for(n=this.token.cells[t],r="",s=0;s<n.length;s++)r+=this.renderer.tablecell(this.inline.output(n[s]),{header:!1,align:this.token.align[s]});e+=this.renderer.tablerow(r)}return this.renderer.table(i,e);case"blockquote_start":for(e="";"blockquote_end"!==this.next().type;)e+=this.tok();return this.renderer.blockquote(e);case"list_start":e="";for(var l=this.token.ordered,a=this.token.start;"list_end"!==this.next().type;)e+=this.tok();return this.renderer.list(e,l,a);case"list_item_start":e="";var o=this.token.loose,h=this.token.checked,u=this.token.task;if(this.token.task)if(o)if("text"===this.peek().type){var c=this.peek();c.text=this.renderer.checkbox(h)+" "+c.text}else this.tokens.push({type:"text",text:this.renderer.checkbox(h)});else e+=this.renderer.checkbox(h);for(;"list_item_end"!==this.next().type;)e+=o||"text"!==this.token.type?this.tok():this.parseText();return this.renderer.listitem(e,u,h);case"html":return this.renderer.html(this.token.text);case"paragraph":return this.renderer.paragraph(this.inline.output(this.token.text));case"text":return this.renderer.paragraph(this.parseText());default:var p='Token with "'+this.token.type+'" type was not found.';if(!this.options.silent)throw new Error(p);console.log(p)}},n}(),ne=$,re=R,se=y,ie=s.getDefaults,le=s.changeDefaults,ae=s.defaults;function oe(t,l,a){if(null==t)throw new Error("marked(): input parameter is undefined or null");if("string"!=typeof t)throw new Error("marked(): input parameter is of type "+Object.prototype.toString.call(t)+", string expected");if(a||"function"==typeof l){var e=function(){a||(a=l,l=null),l=ne({},oe.defaults,l||{}),re(l);var n,r,s=l.highlight,e=0;try{n=B.lex(t,l)}catch(e){return{v:a(e)}}r=n.length;function i(t){if(t)return l.highlight=s,a(t);var e;try{e=te.parse(n,l)}catch(e){t=e}return l.highlight=s,t?a(t):a(null,e)}if(!s||s.length<3)return{v:i()};if(delete l.highlight,!r)return{v:i()};for(;e<n.length;e++)!function(n){"code"!==n.type?--r||i():s(n.text,n.lang,function(e,t){return e?i(e):null==t||t===n.text?--r||i():(n.text=t,n.escaped=!0,void(--r||i()))})}(n[e]);return{v:void 0}}();if("object"==typeof e)return e.v}try{return l=ne({},oe.defaults,l||{}),re(l),te.parse(B.lex(t,l),l)}catch(e){if(e.message+="\nPlease report this to https://github.com/markedjs/marked.",(l||oe.defaults).silent)return"<p>An error occurred:</p><pre>"+se(e.message+"",!0)+"</pre>";throw e}}return oe.options=oe.setOptions=function(e){return ne(oe.defaults,e),le(oe.defaults),oe},oe.getDefaults=ie,oe.defaults=ae,oe.Parser=te,oe.parser=te.parse,oe.Renderer=X,oe.TextRenderer=Q,oe.Lexer=B,oe.lexer=B.lex,oe.InlineLexer=K,oe.inlineLexer=K.output,oe.Slugger=G,oe.parse=oe});
\ No newline at end of file
diff --git a/civicrm/bower_components/marked/rollup.config.esm.js b/civicrm/bower_components/marked/rollup.config.esm.js
new file mode 100644
index 0000000000..47590d59ea
--- /dev/null
+++ b/civicrm/bower_components/marked/rollup.config.esm.js
@@ -0,0 +1,26 @@
+const commonjs = require('rollup-plugin-commonjs');
+const license = require('rollup-plugin-license');
+
+module.exports = {
+  input: 'src/marked.js',
+  output: {
+    file: 'lib/marked.esm.js',
+    format: 'esm'
+  },
+  plugins: [
+    license({
+      banner: `
+DO NOT EDIT THIS FILE
+The code in this file is generated from files in ./src/
+`
+    }),
+    license({
+      banner: `
+marked - a markdown parser
+Copyright (c) 2011-${new Date().getFullYear()}, Christopher Jeffrey. (MIT Licensed)
+https://github.com/markedjs/marked
+`
+    }),
+    commonjs()
+  ]
+};
diff --git a/civicrm/bower_components/marked/rollup.config.js b/civicrm/bower_components/marked/rollup.config.js
new file mode 100644
index 0000000000..79b3c65ace
--- /dev/null
+++ b/civicrm/bower_components/marked/rollup.config.js
@@ -0,0 +1,31 @@
+const commonjs = require('rollup-plugin-commonjs');
+const babel = require('rollup-plugin-babel');
+const license = require('rollup-plugin-license');
+
+module.exports = {
+  input: 'src/marked.js',
+  output: {
+    file: 'lib/marked.js',
+    format: 'umd',
+    name: 'marked'
+  },
+  plugins: [
+    license({
+      banner: `
+DO NOT EDIT THIS FILE
+The code in this file is generated from files in ./src/
+`
+    }),
+    license({
+      banner: `
+marked - a markdown parser
+Copyright (c) 2011-${new Date().getFullYear()}, Christopher Jeffrey. (MIT Licensed)
+https://github.com/markedjs/marked
+`
+    }),
+    commonjs(),
+    babel({
+      presets: [['@babel/preset-env', { loose: true }]]
+    })
+  ]
+};
diff --git a/civicrm/civicrm-version.php b/civicrm/civicrm-version.php
index 545c84d8e6..bad3effb54 100644
--- a/civicrm/civicrm-version.php
+++ b/civicrm/civicrm-version.php
@@ -1,7 +1,7 @@
 <?php
 /** @deprecated */
 function civicrmVersion( ) {
-  return array( 'version'  => '5.22.1',
+  return array( 'version'  => '5.23.0',
                 'cms'      => 'Wordpress',
                 'revision' => '' );
 }
diff --git a/civicrm/composer.json b/civicrm/composer.json
index 88702936dc..6c14e526a2 100644
--- a/civicrm/composer.json
+++ b/civicrm/composer.json
@@ -33,6 +33,11 @@
     }
   },
   "include-path": ["vendor/tecnickcom"],
+  "config": {
+    "platform": {
+      "php": "7.0.10"
+    }
+  },
   "require": {
     "php": "~7.0",
     "dompdf/dompdf" : "0.8.*",
@@ -43,12 +48,12 @@
     "symfony/event-dispatcher": "^2.8.50 || ~3.0",
     "symfony/filesystem": "^2.8.50 || ~3.0",
     "symfony/process": "^2.8.50 || ~3.0",
-    "psr/log": "~1.1",
+    "psr/log": "~1.0",
     "symfony/finder": "^2.8.50 || ~3.0",
     "tecnickcom/tcpdf" : "6.2.*",
     "totten/ca-config": "~17.05",
     "zetacomponents/base": "1.9.*",
-    "zetacomponents/mail": "dev-master",
+    "zetacomponents/mail": "1.9.*",
     "marcj/topsort": "~1.1",
     "phpoffice/phpword": "^0.15.0",
     "pear/validate_finance_creditcard": "dev-master",
@@ -57,7 +62,7 @@
     "pear/net_smtp": "1.6.*",
     "pear/net_socket": "1.0.*",
     "pear/mail": "^1.4",
-    "civicrm/civicrm-setup": "~0.2.0",
+    "civicrm/civicrm-setup": "~0.4.0",
     "guzzlehttp/guzzle": "^6.3",
     "psr/simple-cache": "~1.0.1",
     "cweagans/composer-patches": "~1.0",
@@ -189,6 +194,10 @@
         "url": "https://github.com/FortAwesome/Font-Awesome/archive/v4.7.0.zip",
         "ignore": ["*/.*", "*.json", "src", "*.yml", "Gemfile", "Gemfile.lock", "*.md"]
       },
+      "marked": {
+        "url": "https://github.com/markedjs/marked/archive/v0.8.0.zip",
+        "ignore": [".*", "*.json", "*.md", "Makefile", "*/*"]
+      },
       "google-code-prettify": {
         "url": "https://github.com/tcollard/google-code-prettify/archive/v1.0.5.zip",
         "ignore": ["closure-compiler", "js-modules", "tests", "yui-compressor", "Makefile"]
diff --git a/civicrm/composer.lock b/civicrm/composer.lock
index 9dfa4335a4..240823ffed 100644
--- a/civicrm/composer.lock
+++ b/civicrm/composer.lock
@@ -4,7 +4,7 @@
         "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
         "This file is @generated automatically"
     ],
-    "content-hash": "78720e4ea4f746b3244c8275f05d6d1b",
+    "content-hash": "6b2ec4d9dc608f8b2e0def4af6d7bafb",
     "packages": [
         {
             "name": "civicrm/civicrm-cxn-rpc",
@@ -45,16 +45,16 @@
         },
         {
             "name": "civicrm/civicrm-setup",
-            "version": "v0.2.0",
+            "version": "v0.4.0",
             "source": {
                 "type": "git",
                 "url": "https://github.com/civicrm/civicrm-setup.git",
-                "reference": "e7991aff516c3fff952bed8f90832804a134358a"
+                "reference": "8417d0c62b6e725ef7a49a75935995d0269cbbe8"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/civicrm/civicrm-setup/zipball/e7991aff516c3fff952bed8f90832804a134358a",
-                "reference": "e7991aff516c3fff952bed8f90832804a134358a",
+                "url": "https://api.github.com/repos/civicrm/civicrm-setup/zipball/8417d0c62b6e725ef7a49a75935995d0269cbbe8",
+                "reference": "8417d0c62b6e725ef7a49a75935995d0269cbbe8",
                 "shasum": ""
             },
             "require": {
@@ -78,7 +78,7 @@
                 }
             ],
             "description": "CiviCRM installation library",
-            "time": "2018-01-23T06:26:55+00:00"
+            "time": "2020-01-18T03:46:43+00:00"
         },
         {
             "name": "civicrm/composer-downloads-plugin",
@@ -504,6 +504,7 @@
                 "mimetype",
                 "php"
             ],
+            "abandoned": true,
             "time": "2017-03-23T02:05:33+00:00"
         },
         {
@@ -1524,16 +1525,16 @@
         },
         {
             "name": "psr/log",
-            "version": "1.1.0",
+            "version": "1.1.2",
             "source": {
                 "type": "git",
                 "url": "https://github.com/php-fig/log.git",
-                "reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd"
+                "reference": "446d54b4cb6bf489fc9d75f55843658e6f25d801"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/php-fig/log/zipball/6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd",
-                "reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd",
+                "url": "https://api.github.com/repos/php-fig/log/zipball/446d54b4cb6bf489fc9d75f55843658e6f25d801",
+                "reference": "446d54b4cb6bf489fc9d75f55843658e6f25d801",
                 "shasum": ""
             },
             "require": {
@@ -1542,7 +1543,7 @@
             "type": "library",
             "extra": {
                 "branch-alias": {
-                    "dev-master": "1.0.x-dev"
+                    "dev-master": "1.1.x-dev"
                 }
             },
             "autoload": {
@@ -1567,7 +1568,7 @@
                 "psr",
                 "psr-3"
             ],
-            "time": "2018-11-20T15:27:04+00:00"
+            "time": "2019-11-01T11:05:21+00:00"
         },
         {
             "name": "psr/simple-cache",
@@ -2244,9 +2245,7 @@
             "version": "3.0.0+php53",
             "dist": {
                 "type": "zip",
-                "url": "https://github.com/tplaner/When/archive/c1ec099f421bff354cc5c929f83b94031423fc80.zip",
-                "reference": null,
-                "shasum": null
+                "url": "https://github.com/tplaner/When/archive/c1ec099f421bff354cc5c929f83b94031423fc80.zip"
             },
             "require": {
                 "php": ">=5.3.0"
@@ -2372,6 +2371,7 @@
                 "escaper",
                 "zf2"
             ],
+            "abandoned": "laminas/laminas-escaper",
             "time": "2015-05-07T14:55:31+00:00"
         },
         {
@@ -2440,16 +2440,16 @@
         },
         {
             "name": "zetacomponents/mail",
-            "version": "dev-master",
+            "version": "1.9.1",
             "source": {
                 "type": "git",
                 "url": "https://github.com/zetacomponents/Mail.git",
-                "reference": "b60e9a543f6c3d9a9ec74452d4ff5736a1c63a77"
+                "reference": "4dc71ccbcc8b67951a2efe47d3fcc2aeaa7f530d"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/zetacomponents/Mail/zipball/b60e9a543f6c3d9a9ec74452d4ff5736a1c63a77",
-                "reference": "b60e9a543f6c3d9a9ec74452d4ff5736a1c63a77",
+                "url": "https://api.github.com/repos/zetacomponents/Mail/zipball/4dc71ccbcc8b67951a2efe47d3fcc2aeaa7f530d",
+                "reference": "4dc71ccbcc8b67951a2efe47d3fcc2aeaa7f530d",
                 "shasum": ""
             },
             "require": {
@@ -2504,19 +2504,19 @@
                 {
                     "name": "Alexandru Stanoi"
                 },
-                {
-                    "name": "Christian Michel"
-                },
                 {
                     "name": "Sinisa Dukaric"
                 },
                 {
                     "name": "Mikko Koppanen"
+                },
+                {
+                    "name": "Christian Michel"
                 }
             ],
             "description": "The component allows you construct and/or parse Mail messages conforming to  the mail standard. It has support for attachments, multipart messages and HTML  mail. It also interfaces with SMTP to send mail or IMAP, POP3 or mbox to  retrieve e-mail.",
             "homepage": "https://github.com/zetacomponents",
-            "time": "2019-02-13T11:33:09+00:00"
+            "time": "2020-01-17T11:18:01+00:00"
         }
     ],
     "packages-dev": [
@@ -2687,7 +2687,6 @@
     "aliases": [],
     "minimum-stability": "stable",
     "stability-flags": {
-        "zetacomponents/mail": 20,
         "pear/validate_finance_creditcard": 20,
         "cache/integration-tests": 20
     },
@@ -2696,5 +2695,8 @@
     "platform": {
         "php": "~7.0"
     },
-    "platform-dev": []
+    "platform-dev": [],
+    "platform-overrides": {
+        "php": "7.0.10"
+    }
 }
diff --git a/civicrm/css/api4-explorer.css b/civicrm/css/api4-explorer.css
index 2171d003e8..ae419a5086 100644
--- a/civicrm/css/api4-explorer.css
+++ b/civicrm/css/api4-explorer.css
@@ -22,7 +22,7 @@
 #bootstrap-theme.api4-explorer-page > div > .panel {
   flex: 1;
   margin: 10px;
-  min-height: 400px;
+  min-height: 500px;
 }
 #bootstrap-theme.api4-explorer-page > div > form.panel {
   flex: 2;
@@ -33,8 +33,21 @@
   border-bottom-left-radius: 0;
   margin-bottom: 0;
 }
+#bootstrap-theme.api4-explorer-page .panel-heading.nav-tabs {
+  padding: 8px 0 0 20px;
+}
+#bootstrap-theme .panel-heading>li>a {
+  background-color: #f1f1f18c
+}
 #bootstrap-theme.api4-explorer-page .explorer-code-panel table td:first-child {
-  width: 5em;
+  width: 6em;
+  word-break: break-word;
+}
+#bootstrap-theme.api4-explorer-page .explorer-code-panel table td pre {
+  min-height: 3.3em;
+}
+#bootstrap-theme.api4-explorer-page .explorer-code-panel .panel-heading.nav li a {
+  text-transform: uppercase;
 }
 
 #bootstrap-theme.api4-explorer-page .explorer-params-panel > .panel-body > div.api4-input {
@@ -49,6 +62,11 @@
   word-break: break-word;
 }
 
+/* because each help p is in a div, this undoes bootstrap removing margin from last-child */
+#bootstrap-theme.api4-explorer-page .explorer-help-panel .panel-body p {
+  margin-bottom: 10px;
+}
+
 #bootstrap-theme.api4-explorer-page form label {
   text-transform: capitalize;
 }
@@ -90,15 +108,19 @@
   background-color: rgba(255, 255, 255, .9);
 }
 
-#bootstrap-theme.api4-explorer-page div.api4-input.form-inline .form-control {
+#bootstrap-theme.api4-explorer-page div.api4-input.form-inline label.form-control {
   margin-right: 6px;
 }
+#bootstrap-theme.api4-explorer-page div.api4-input.form-inline label.form-control input[type=checkbox] {
+  margin: 0 2px 0 0;
+}
 
-#bootstrap-theme.api4-explorer-page div.api4-input.form-inline .form-control:not(.api4-option-selected) {
+#bootstrap-theme.api4-explorer-page div.api4-input.form-inline label.form-control:not(.api4-option-selected) {
   transition: none;
   box-shadow: none;
   -webkit-box-shadow: none;
   -moz-box-shadow: none;
+  font-weight: normal;
 }
 
 #bootstrap-theme.api4-explorer-page div.api4-input.form-inline .form-control label {
@@ -146,12 +168,11 @@
 
 #bootstrap-theme.api4-explorer-page .api4-operator,
 #bootstrap-theme.api4-explorer-page .api4-chain-index,
-#bootstrap-theme.api4-explorer-page .api4-index,
 #bootstrap-theme.api4-explorer-page .api4-chain-action {
   width: 90px;
 }
 #bootstrap-theme.api4-explorer-page .api4-chain-params {
-  width: calc(100% - 386px);
+  width: calc(100% - 390px);
 }
 
 #bootstrap-theme.api4-explorer-page .api4-add-where-group-menu {
diff --git a/civicrm/css/civicrm.css b/civicrm/css/civicrm.css
index 41bbaf7faa..8d8446b346 100644
--- a/civicrm/css/civicrm.css
+++ b/civicrm/css/civicrm.css
@@ -2873,6 +2873,10 @@ tbody.scrollContent tr.alternateRow {
   color: #3e3e3e;
 }
 
+.crm-container a.crm-icon-picker-button .ui-button-icon {
+  margin: 5px 0 5px 5px;
+}
+
 .crm-container a.crm-icon-picker-button .ui-button-text {
   color: #9f9f9f;
 }
diff --git a/civicrm/ext/iatspayments/iats.php b/civicrm/ext/iatspayments/iats.php
index 9cedcdb18d..e797720251 100644
--- a/civicrm/ext/iatspayments/iats.php
+++ b/civicrm/ext/iatspayments/iats.php
@@ -356,7 +356,7 @@ function iats_civicrm_buildForm_CRM_Financial_Form_Payment(&$form) {
   // Uses javascript to hide/reset unless they have recurring contributions checked.
   $settings = Civi::settings()->get('iats_settings');
   if (!empty($settings['enable_public_future_recurring_start'])
-    && $form->_paymentObject->supportsFutureRecurStartDate()
+    && $form->_paymentObject->supports('FutureRecurStartDate')
   ) {
     $allow_days = empty($settings['days']) ? array('-1') : $settings['days'];
     $start_dates = CRM_Iats_Transaction::get_future_monthly_start_dates(time(), $allow_days);
diff --git a/civicrm/ext/iatspayments/info.xml b/civicrm/ext/iatspayments/info.xml
index ca30065b58..6b340eb01c 100644
--- a/civicrm/ext/iatspayments/info.xml
+++ b/civicrm/ext/iatspayments/info.xml
@@ -9,7 +9,7 @@
     <url desc="Support">https://github.com/iATSPayments/com.iatspayments.civicrm/issues?state=open</url>
     <url desc="Installation Instructions">https://github.com/iATSPayments/com.iatspayments.civicrm</url>
     <url desc="Documentation">https://github.com/iATSPayments/com.iatspayments.civicrm</url>
-    <url desc="Release Notes">https://github.com/iATSPayments/com.iatspayments.civicrm/blob/master/release-notes/1.7.1.md</url>
+    <url desc="Release Notes">https://github.com/iATSPayments/com.iatspayments.civicrm/blob/master/release-notes/1.7.2.md</url>
     <url desc="Getting Started">https://www.semper-it.com/civicamp-iats-payments-slides</url>
   </urls>
   <license>AGPL-3.0</license>
@@ -17,8 +17,8 @@
     <author>Alan Dixon</author>
     <email>iats@blackflysolutions.ca</email>
   </maintainer>
-  <releaseDate>2020-02-05</releaseDate>
-  <version>1.7.1</version>
+  <releaseDate>2020-02-27</releaseDate>
+  <version>1.7.2</version>
   <develStage>stable</develStage>
   <compatibility>
     <ver>5.13</ver>
diff --git a/civicrm/ext/iatspayments/release-notes/1.7.2.md b/civicrm/ext/iatspayments/release-notes/1.7.2.md
new file mode 100644
index 0000000000..25419315d0
--- /dev/null
+++ b/civicrm/ext/iatspayments/release-notes/1.7.2.md
@@ -0,0 +1,9 @@
+# iATS CiviCRM Extension 1.7.2
+
+Feb 27, 2020
+
+This release is a minor maintenance release for the 1.7 series.
+It is recommended for all CiviCRM installs on 5.x and above.
+
+It:
+1. Fixes the issue 298 that causes errors on donation pages that have multiple processors. https://github.com/iATSPayments/com.iatspayments.civicrm/issues/298 
diff --git a/civicrm/extension-compatibility.json b/civicrm/extension-compatibility.json
index 60be476584..b7b4031ae3 100644
--- a/civicrm/extension-compatibility.json
+++ b/civicrm/extension-compatibility.json
@@ -1,4 +1,9 @@
 {
+  "org.civicrm.exportui": {
+    "obsolete": "5.23",
+    "disable": true,
+    "uninstall": true
+  },
   "org.civicrm.api4": {
     "obsolete": "5.19",
     "force-uninstall": true
diff --git a/civicrm/i/check.gif b/civicrm/i/check.gif
index a9925a06ab02db30c1e7ead9c701c15bc63145cb..7e21249cb8bc055f172ea2eaace1d29e9fcf2650 100644
GIT binary patch
literal 519
zcmZ?wbhEHb6krfwIOfP;UTtVmV`N!tY*lAsRc~V5U~1E7X4_<L+idR8YU$qR5ID;-
zaE@otT(97H-XZh7!{_^lF7OFk=o`5pFnp0;)S{r6#lbO)Lt>YNL@f)9UmBLMEIe^}
zM9P}z^tCY=>*A6(L}sp!&)SfXwJ9NIQ&QU2=-kc8Y1?9Qw<PCoO)lG;U3nn4?nFuB
z$+FfHRm~?W8c&rqoholVS=Dy3vgve1>*>n2Gd1mJs@u=jbe^s4JXhCsuD<tNL-+am
z-t&$97n>$rYWY8uf#OdVMlObW1|0?<0L2LddrCunQ*%peTYE=`NN1~%nqp6rpo+bo
zbPvChovjRKC!eCVl{9;cx^^?KyrqQ{TZ^i(jbuHKoSCTvYpa5mgORd^zKIx1yQHR-
hxq+@Ib0@c~p^h-qL@sdw#)(ZF40j$pY-(h%1^}yFIgkJV

literal 537
zcmV+!0_OdRP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00004XF*Lt006JZ
zHwB960000PbVXQnQ*UN;cVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBUzt4TybR5;7M
zli4mqVHAaX=Q!_TZq*o5LaK&TC+g@aMJbINs;8}1t3yf*$E6r*j>Hs{AQG2a)rMyf
zFQK~pm1x3+7!nu%-M`k}``c>^00{o_1pjWJUTfl8mg=3qGEl8H@}^@w`VUx0_$uy4
z2FhRqKX}xI*?Tv<H&*Dj)Tr<j*}f%KtVns|p$^k=7pCG)bZ)nz(p!uYhmcBtGG4MZ
zhBKz;vsk_?<x?$B#+(Sm9B-A&-Qq;?SOJwD!Fa)z^`0_M+_eepu5##IOknYS`&tC<
z#^ArRgWXi2%vG2uvgcE2i2di<+TKw6qc6;1IyMf?mMlSF4apWIQ-(bTzNj7ETMiu?
z3Y3nE5@K5(^<j-YCz?$CVH?a>1DJd8z#F#0c%*~rM30HE1@2o5m~}ZyoWhqv>ql{V
z1ZGE0lgcoK^lx+eqc*rAX1Ky;Xx3U%u#zG!m-;eD1Qsn@kf3|F9qz~|95=&g3(7!X
zB}JAT>RU;a%vaNOGnJ%e1=K6eAh43c(QN8RQ6~GP%O}Jju$~Ld*%`mO1p<rCAIZx2
bmuq|lzM`o-QVIh|00000NkvXXu0mjfO@{7Q

diff --git a/civicrm/js/jquery/jquery.crmEditable.js b/civicrm/js/jquery/jquery.crmEditable.js
index ca1a08e248..b68b27f0a2 100644
--- a/civicrm/js/jquery/jquery.crmEditable.js
+++ b/civicrm/js/jquery/jquery.crmEditable.js
@@ -168,7 +168,7 @@
           });
       }
 
-      CRM.loadScript(CRM.config.resourceBase + 'packages/jquery/plugins/jquery.jeditable.min.js').done(function() {
+      CRM.loadScript(CRM.config.packagesBase + 'jquery/plugins/jquery.jeditable.min.js').done(function() {
         $i.editable(callback, settings);
       });
 
diff --git a/civicrm/js/jquery/jquery.crmIconPicker.js b/civicrm/js/jquery/jquery.crmIconPicker.js
index 5dea481a85..19f50f6b22 100644
--- a/civicrm/js/jquery/jquery.crmIconPicker.js
+++ b/civicrm/js/jquery/jquery.crmIconPicker.js
@@ -71,7 +71,7 @@
           $.each(icons, function(i, icon) {
             if (!term.length || icon.replace(/-/g, '').indexOf(term) > -1) {
               var item = $('<a href="#" title="' + icon + '"/>').button({
-                icons: {primary: icon}
+                icons: {primary: icon + ' ' + $style.val()}
               });
               $place.append(item);
             }
@@ -81,20 +81,34 @@
         function displayDialog() {
           dialog.append('<style type="text/css">' +
             '#crmIconPicker {font-size: 20px;}' +
-            '#crmIconPicker .icon-search input {font-family: FontAwesome; padding-left: .5em; margin-bottom: 1em;}' +
+            '#crmIconPicker .icon-ctrls input {font-family: FontAwesome; padding-left: .5em; margin-bottom: 1em;}' +
+            '#crmIconPicker .icon-ctrls > * {display: inline-block; vertical-align: top; margin-right: 1em;}' +
+            '#crmIconPicker .icon-ctrls > button {float: right; margin-right: 0;}' +
             '#crmIconPicker a.ui-button {width: 1em; height: 1em; color: #222;}' +
             '#crmIconPicker a.ui-button .ui-icon {margin-top: -0.5em; width: auto; height: auto;}' +
             '</style>' +
-            '<div class="icon-search"><input class="crm-form-text" name="search" placeholder="&#xf002"/></div>' +
+            '<div class="icon-ctrls crm-clearfix">' +
+            '<input class="crm-form-text" name="search" placeholder="&#xf002"/>' +
+            '<select class="crm-form-select"></select>' +
+            '<button type="button" class="cancel" title=""><i class="crm-i fa-ban"></i> ' + ts('No icon') + '</button>' +
+            '</div>' +
             '<div class="icons"></div>'
           );
+          var $styleSelect = $('.icon-ctrls select', dialog);
+          CRM.utils.setOptions($styleSelect, options, ts('Normal'));
+          $styleSelect.val($style.val());
+          $styleSelect.change(function() {
+            $style.val($styleSelect.val());
+            displayIcons();
+          });
+          $('.icon-ctrls button', dialog).click(pickIcon);
           displayIcons();
           dialog.unblock();
         }
 
         function pickIcon(e) {
           var newIcon = $(this).attr('title'),
-            style = $style.val();
+            style = newIcon ? $style.val() : '';
           $input.val(newIcon + (style ? ' ' + style : '')).change();
           dialog.dialog('close');
           e.preventDefault();
@@ -103,7 +117,7 @@
         dialog = $('<div id="crmIconPicker"/>').dialog({
           title: $input.attr('title'),
           width: '80%',
-          height: 400,
+          height: '90%',
           modal: true
         }).block()
           .on('click', 'a', pickIcon)
diff --git a/civicrm/js/view/crm.designer.js b/civicrm/js/view/crm.designer.js
index 3db0eb0ca1..9d43b92bf0 100644
--- a/civicrm/js/view/crm.designer.js
+++ b/civicrm/js/view/crm.designer.js
@@ -370,7 +370,7 @@
           "theme": 'classic',
           "dots": false,
           "icons": false,
-          "url": CRM.config.resourceBase + 'packages/jquery/plugins/jstree/themes/classic/style.css'
+          "url": CRM.config.packagesBase + 'jquery/plugins/jstree/themes/classic/style.css'
         },
         'plugins': ['themes', 'json_data', 'ui', 'search']
       }).bind('loaded.jstree', function () {
diff --git a/civicrm/js/wysiwyg/crm.ckeditor.js b/civicrm/js/wysiwyg/crm.ckeditor.js
index 64d4a116f3..59bf880df9 100644
--- a/civicrm/js/wysiwyg/crm.ckeditor.js
+++ b/civicrm/js/wysiwyg/crm.ckeditor.js
@@ -54,8 +54,8 @@
 
     function initialize() {
       var
-        browseUrl = CRM.config.resourceBase + "packages/kcfinder/browse.php?cms=civicrm",
-        uploadUrl = CRM.config.resourceBase + "packages/kcfinder/upload.php?cms=civicrm&format=json",
+        browseUrl = CRM.config.packagesBase + "kcfinder/browse.php?cms=civicrm",
+        uploadUrl = CRM.config.packagesBase + "kcfinder/upload.php?cms=civicrm&format=json",
         preset = $(item).data('preset') || 'default',
         // This variable is always an array but a legacy extension could be setting it as a string.
         customConfig = (typeof CRM.config.CKEditorCustomConfig === 'string') ? CRM.config.CKEditorCustomConfig :
diff --git a/civicrm/packages/DB.php b/civicrm/packages/DB.php
index 90f9d63622..0612a1397d 100644
--- a/civicrm/packages/DB.php
+++ b/civicrm/packages/DB.php
@@ -5,7 +5,7 @@
 /**
  * Database independent query interface
  *
- * PHP versions 4 and 5
+ * PHP version 5
  *
  * LICENSE: This source file is subject to version 3.0 of the PHP license
  * that is available through the world-wide-web at the following URI:
@@ -20,7 +20,7 @@
  * @author     Daniel Convissor <danielc@php.net>
  * @copyright  1997-2007 The PHP Group
  * @license    http://www.php.net/license/3_0.txt  PHP License 3.0
- * @version    CVS: $Id: DB.php,v 1.88 2007/08/12 05:27:25 aharvey Exp $
+ * @version    CVS: $Id$
  * @link       http://pear.php.net/package/DB
  */
 
@@ -49,9 +49,7 @@ define('DB_OK', 1);
 /**
  * Unkown error
  */
-if (!defined('DB_ERROR')) {
-    define('DB_ERROR', -1);
-}
+define('DB_ERROR', -1);
 
 /**
  * Syntax error
@@ -442,12 +440,12 @@ define('DB_PORTABILITY_ALL', 63);
  * @author     Daniel Convissor <danielc@php.net>
  * @copyright  1997-2007 The PHP Group
  * @license    http://www.php.net/license/3_0.txt  PHP License 3.0
- * @version    Release: 1.7.13
+ * @version    Release: 1.9.3
  * @link       http://pear.php.net/package/DB
  */
 class DB
 {
-    // {{{ &factory()
+    // {{{ factory()
 
     /**
      * Create a new DB object for the specified database type but don't
@@ -460,7 +458,7 @@ class DB
      *
      * @see DB_common::setOption()
      */
-    function &factory($type, $options = false)
+    public static function factory($type, $options = false)
     {
         if (!is_array($options)) {
             $options = array('persistent' => $options);
@@ -496,7 +494,7 @@ class DB
     }
 
     // }}}
-    // {{{ &connect()
+    // {{{ connect()
 
     /**
      * Create a new DB object including a connection to the specified database
@@ -531,7 +529,7 @@ class DB
      *
      * @uses DB::parseDSN(), DB_common::setOption(), PEAR::isError()
      */
-    static function &connect($dsn, $options = array())
+    public static function connect($dsn, $options = array())
     {
         $dsninfo = DB::parseDSN($dsn);
         $type = $dsninfo['phptype'];
@@ -548,15 +546,15 @@ class DB
             // expose php errors with sufficient debug level
             include_once "DB/${type}.php";
         } else {
-            include_once "DB/${type}.php";
+            @include_once "DB/${type}.php";
         }
 
         $classname = "DB_${type}";
         if (!class_exists($classname)) {
-            $obj = new PEAR;
-            $tmp = $obj->raiseError(null, DB_ERROR_NOT_FOUND, null, null,
+            $tmp = PEAR::raiseError(null, DB_ERROR_NOT_FOUND, null, null,
                                     "Unable to include the DB/{$type}.php"
-                                    . " file for '$dsn'",
+                                    . " file for '"
+                                    . DB::getDSNString($dsn, true) . "'",
                                     'DB_Error', true);
             return $tmp;
         }
@@ -593,7 +591,7 @@ class DB
      */
     function apiVersion()
     {
-        return '1.7.13';
+        return '1.9.3';
     }
 
     // }}}
@@ -606,9 +604,9 @@ class DB
      *
      * @return bool  whether $value is DB_Error object
      */
-    static function isError($value)
+    public static function isError($value)
     {
-        return is_a($value, 'DB_Error');
+        return is_object($value) && is_a($value, 'DB_Error');
     }
 
     // }}}
@@ -621,7 +619,7 @@ class DB
      *
      * @return bool  whether $value is a DB_<driver> object
      */
-    function isConnection($value)
+    public static function isConnection($value)
     {
         return (is_object($value) &&
                 is_subclass_of($value, 'db_common') &&
@@ -642,15 +640,16 @@ class DB
      *
      * @return boolean  whether $query is a data manipulation query
      */
-    static function isManip($query)
+    public static function isManip($query)
     {
         $manips = 'INSERT|UPDATE|DELETE|REPLACE|'
                 . 'CREATE|DROP|'
                 . 'LOAD DATA|SELECT .* INTO .* FROM|COPY|'
                 . 'ALTER|GRANT|REVOKE|'
+                // CRM_Core_Transaction Tests fail without the following line.
                 . 'SAVEPOINT|ROLLBACK|'
                 . 'LOCK|UNLOCK';
-        // First strip any leading comments.
+        // First strip any leading comments
         $queryString = (substr($query, 0, 2) === '/*') ? substr($query, strpos($query, '*/') + 2) : $query;
         if (preg_match('/^\s*"?(' . $manips . ')\s+/i', $queryString)) {
             return true;
@@ -669,7 +668,7 @@ class DB
      * @return string  the error message or false if the error code was
      *                  not recognized
      */
-    static function errorMessage($value)
+    public static function errorMessage($value)
     {
         static $errorMessages;
         if (!isset($errorMessages)) {
@@ -753,8 +752,9 @@ class DB
      *  + username: User name for login
      *  + password: Password for login
      */
-	 static function parseDSN($dsn)
+    public static function parseDSN($dsn)
     {
+
         if (defined('DB_DSN_MODE') && DB_DSN_MODE === 'auto') {
             if (extension_loaded('mysqli')) {
                 $dsn = preg_replace('/^mysql:/', 'mysqli:', $dsn);
@@ -891,7 +891,7 @@ class DB
      * @param boolean true to hide the password, false to include it
      * @return string
      */
-    function getDSNString($dsn, $hidePassword) {
+    public static function getDSNString($dsn, $hidePassword) {
         /* Calling parseDSN will ensure that we have all the array elements
          * defined, and means that we deal with strings and array in the same
          * manner. */
@@ -972,7 +972,7 @@ class DB
  * @author     Stig Bakken <ssb@php.net>
  * @copyright  1997-2007 The PHP Group
  * @license    http://www.php.net/license/3_0.txt  PHP License 3.0
- * @version    Release: 1.7.13
+ * @version    Release: 1.9.3
  * @link       http://pear.php.net/package/DB
  */
 class DB_Error extends PEAR_Error
@@ -1002,6 +1002,20 @@ class DB_Error extends PEAR_Error
         }
     }
 
+    /**
+     * Workaround to both avoid the "Redefining already defined constructor"
+     * PHP error and provide backward compatibility in case someone is calling
+     * DB_Error() dynamically
+     */
+    public function __call($method, $arguments)
+    {
+        if ($method == 'DB_Error') {
+            return call_user_func_array(array($this, '__construct'), $arguments);
+        }
+        trigger_error(
+            'Call to undefined method DB_Error::' . $method . '()', E_USER_ERROR
+        );
+    }
     // }}}
 }
 
@@ -1019,7 +1033,7 @@ class DB_Error extends PEAR_Error
  * @author     Stig Bakken <ssb@php.net>
  * @copyright  1997-2007 The PHP Group
  * @license    http://www.php.net/license/3_0.txt  PHP License 3.0
- * @version    Release: 1.7.13
+ * @version    Release: 1.9.3
  * @link       http://pear.php.net/package/DB
  */
 class DB_result
@@ -1416,9 +1430,12 @@ class DB_result
     function free()
     {
         $err = $this->dbh->freeResult($this->result);
+        if (DB::isError($err)) {
+            return $err;
+        }
         $this->result = false;
         $this->statement = false;
-        return $err;
+        return true;
     }
 
     // }}}
@@ -1481,7 +1498,7 @@ class DB_result
  * @author     Stig Bakken <ssb@php.net>
  * @copyright  1997-2007 The PHP Group
  * @license    http://www.php.net/license/3_0.txt  PHP License 3.0
- * @version    Release: 1.7.13
+ * @version    Release: 1.9.3
  * @link       http://pear.php.net/package/DB
  * @see        DB_common::setFetchMode()
  */
diff --git a/civicrm/packages/DB/DataObject.php b/civicrm/packages/DB/DataObject.php
index 87edfbfbeb..c2b94098da 100644
--- a/civicrm/packages/DB/DataObject.php
+++ b/civicrm/packages/DB/DataObject.php
@@ -15,7 +15,7 @@
  * @author     Alan Knowles <alan@akbkhome.com>
  * @copyright  1997-2006 The PHP Group
  * @license    http://www.php.net/license/3_01.txt  PHP License 3.01
- * @version    CVS: $Id: DataObject.php 284150 2009-07-15 23:27:59Z alan_k $
+ * @version    CVS: $Id: DataObject.php 336751 2015-05-12 04:39:50Z alan_k $
  * @link       http://pear.php.net/package/DB_DataObject
  */
 
@@ -176,6 +176,10 @@ $GLOBALS['_DB_DATAOBJECT']['QUERYENDTIME'] = 0;
 
 
 // this will be horrifically slow!!!!
+// these two are BC/FC handlers for call in PHP4/5
+
+
+if (!defined('DB_DATAOBJECT_NO_OVERLOAD')) {
 
     class DB_DataObject_Overload
     {
@@ -190,6 +194,14 @@ $GLOBALS['_DB_DATAOBJECT']['QUERYENDTIME'] = 0;
             return array_keys(get_object_vars($this)) ;
         }
     }
+} else {
+    class DB_DataObject_Overload {}
+}
+
+
+
+
+
 
 
  /*
@@ -207,7 +219,7 @@ class DB_DataObject extends DB_DataObject_Overload
     * @access   private
     * @var      string
     */
-    var $_DB_DataObject_version = "1.8.12";
+    var $_DB_DataObject_version = "1.11.3";
 
     /**
      * The Database table (used by table extends)
@@ -262,7 +274,7 @@ class DB_DataObject extends DB_DataObject_Overload
             $v = $k;
             $keys = $this->keys();
             if (!$keys) {
-                $this->raiseError("No Keys available for {$this->__table}", DB_DATAOBJECT_ERROR_INVALIDCONFIG);
+                $this->raiseError("No Keys available for {$this->tableName()}", DB_DATAOBJECT_ERROR_INVALIDCONFIG);
                 return false;
             }
             $k = $keys[0];
@@ -280,66 +292,86 @@ class DB_DataObject extends DB_DataObject_Overload
     }
 
     /**
-     * An autoloading, caching static get method  using key, value (based on get)
+     * Get the value of the primary id
      *
-     * Usage:
-     * $object = DB_DataObject::staticGet("DbTable_mytable",12);
-     * or
-     * $object =  DB_DataObject::staticGet("DbTable_mytable","name","fred");
+     * While I normally use 'id' as the PRIMARY KEY value, some database use
+     * {table}_id as the column name.
      *
-     * or write it into your extended class:
-     * function &staticGet($k,$v=NULL) { return DB_DataObject::staticGet("This_Class",$k,$v);  }
+     * To save a bit of typing,
      *
-     * @param   string  $class class name
-     * @param   string  $k     column (or value if using keys)
-     * @param   string  $v     value (optional)
-     * @access  public
-     * @return  object
+     * $id = $do->pid();
+     *
+     * @return the id
      */
-    function &staticGet($class, $k, $v = null)
+    function pid()
     {
-        $lclass = strtolower($class);
-        global $_DB_DATAOBJECT;
-        if (empty($_DB_DATAOBJECT['CONFIG'])) {
-            DB_DataObject::_loadConfig();
+        $keys = $this->keys();
+        if (!$keys) {
+            $this->raiseError("No Keys available for {$this->tableName()}",
+                            DB_DATAOBJECT_ERROR_INVALIDCONFIG);
+            return false;
+        }
+        $k = $keys[0];
+        if (empty($this->$k)) { // we do not
+            $this->raiseError("pid() called on Object where primary key value not available",
+                            DB_DATAOBJECT_ERROR_NODATA);
+            return false;
         }
+        return $this->$k;
+    }
 
 
 
-        $key = "$k:$v";
-        if ($v === null) {
-            $key = $k;
-        }
-        if (!empty($_DB_DATAOBJECT['CONFIG']['debug'])) {
-            DB_DataObject::debug("$class $key","STATIC GET - TRY CACHE");
-        }
-        if (!empty($_DB_DATAOBJECT['CACHE'][$lclass][$key])) {
-            return $_DB_DATAOBJECT['CACHE'][$lclass][$key];
-        }
-        if (!empty($_DB_DATAOBJECT['CONFIG']['debug'])) {
-            DB_DataObject::debug("$class $key","STATIC GET - NOT IN CACHE");
-        }
+    /**
+     * build the basic select query.
+     *
+     * @access private
+     */
 
-        $obj = DB_DataObject::factory(substr($class,strlen($_DB_DATAOBJECT['CONFIG']['class_prefix'])));
-        if (PEAR::isError($obj)) {
-            DB_DataObject::raiseError("could not autoload $class", DB_DATAOBJECT_ERROR_NOCLASS);
-            $r = false;
-            return $r;
+    function _build_select()
+    {
+        global $_DB_DATAOBJECT;
+        $quoteIdentifiers = !empty($_DB_DATAOBJECT['CONFIG']['quote_identifiers']);
+        if ($quoteIdentifiers) {
+            $this->_connect();
+            $DB = $_DB_DATAOBJECT['CONNECTIONS'][$this->_database_dsn_md5];
         }
+        $tn = ($quoteIdentifiers ? $DB->quoteIdentifier($this->tableName()) : $this->tableName()) ;
+        if (!empty($this->_query['derive_table']) && !empty($this->_query['derive_select']) ) {
+
+            // this is a derived select..
+            // not much support in the api yet..
+
+             $sql = 'SELECT ' .
+               $this->_query['derive_select']
+               .' FROM ( SELECT'.
+                    $this->_query['data_select'] . " \n" .
+                    " FROM   $tn  " . $this->_query['useindex'] . " \n" .
+                    $this->_join . " \n" .
+                    $this->_query['condition'] . " \n" .
+                    $this->_query['group_by'] . " \n" .
+                    $this->_query['having'] . " \n" .
+                ') ' . $this->_query['derive_table'];
+
+            return $sql;
 
-        if (!isset($_DB_DATAOBJECT['CACHE'][$lclass])) {
-            $_DB_DATAOBJECT['CACHE'][$lclass] = array();
-        }
-        if (!$obj->get($k,$v)) {
-            DB_DataObject::raiseError("No Data return from get $k $v", DB_DATAOBJECT_ERROR_NODATA);
 
-            $r = false;
-            return $r;
         }
-        $_DB_DATAOBJECT['CACHE'][$lclass][$key] = $obj;
-        return $_DB_DATAOBJECT['CACHE'][$lclass][$key];
+
+
+
+        $sql = 'SELECT ' .
+            $this->_query['data_select'] . " \n" .
+            " FROM   $tn  " . $this->_query['useindex'] . " \n" .
+            $this->_join . " \n" .
+            $this->_query['condition'] . " \n" .
+            $this->_query['group_by'] . " \n" .
+            $this->_query['having'] . " \n";
+
+        return $sql;
     }
 
+
     /**
      * find results, either normal or crosstable
      *
@@ -353,6 +385,10 @@ class DB_DataObject extends DB_DataObject_Overload
      * will set $object->N to number of rows, and expects next command to fetch rows
      * will return $object->N
      *
+     * if an error occurs $object->N will be set to false and return value will also be false;
+     * if numRows is not supported it will
+     *
+     *
      * @param   boolean $n Fetch first result
      * @access  public
      * @return  mixed (number of rows returned, or true if numRows fetching is not supported)
@@ -374,7 +410,7 @@ class DB_DataObject extends DB_DataObject_Overload
         if (!empty($_DB_DATAOBJECT['CONFIG']['debug'])) {
             $this->debug($n, "find",1);
         }
-        if (!$this->__table) {
+        if (!strlen($this->tableName())) {
             // xdebug can backtrace this!
             trigger_error("NO \$__table SPECIFIED in class definition",E_USER_ERROR);
         }
@@ -382,20 +418,21 @@ class DB_DataObject extends DB_DataObject_Overload
         $query_before = $this->_query;
         $this->_build_condition($this->table()) ;
 
-        $quoteIdentifiers = !empty($_DB_DATAOBJECT['CONFIG']['quote_identifiers']);
+
         $this->_connect();
-        $DB = &$_DB_DATAOBJECT['CONNECTIONS'][$this->_database_dsn_md5];
+        $DB = $_DB_DATAOBJECT['CONNECTIONS'][$this->_database_dsn_md5];
 
-        /* We are checking for method modifyLimitQuery as it is PEAR DB specific */
-        $sql = 'SELECT ' .
-            $this->_query['data_select'] . " \n" .
-            ' FROM ' . ($quoteIdentifiers ? $DB->quoteIdentifier($this->__table) : $this->__table) . " \n" .
-            $this->_join . " \n" .
-            $this->_query['condition'] . " \n" .
-            $this->_query['group_by']  . " \n" .
-            $this->_query['having']    . " \n" .
-            $this->_query['order_by']  . " \n";
 
+        $sql = $this->_build_select();
+
+        foreach ($this->_query['unions'] as $union_ar) {
+            $sql .=   $union_ar[1] .   $union_ar[0]->_build_select() . " \n";
+        }
+
+        $sql .=  $this->_query['order_by']  . " \n";
+
+
+        /* We are checking for method modifyLimitQuery as it is PEAR DB specific */
         if ((!isset($_DB_DATAOBJECT['CONFIG']['db_driver'])) ||
             ($_DB_DATAOBJECT['CONFIG']['db_driver'] == 'DB')) {
             /* PEAR DB specific */
@@ -406,11 +443,15 @@ class DB_DataObject extends DB_DataObject_Overload
         } else {
             /* theoretically MDB2! */
             if (isset($this->_query['limit_start']) && strlen($this->_query['limit_start'] . $this->_query['limit_count'])) {
-              $DB->setLimit($this->_query['limit_count'],$this->_query['limit_start']);
-          }
+	            $DB->setLimit($this->_query['limit_count'],$this->_query['limit_start']);
+	        }
         }
 
-        $this->_query($sql);
+
+        $err = $this->_query($sql);
+        if (is_a($err,'PEAR_Error')) {
+            return false;
+        }
 
         if (!empty($_DB_DATAOBJECT['CONFIG']['debug'])) {
             $this->debug("CHECK autofetchd $n", "find", 1);
@@ -482,7 +523,7 @@ class DB_DataObject extends DB_DataObject_Overload
         }
 
         if (empty($_DB_DATAOBJECT['RESULTS'][$this->_DB_resultid]) ||
-            !is_object($result = &$_DB_DATAOBJECT['RESULTS'][$this->_DB_resultid]))
+            !is_object($result = $_DB_DATAOBJECT['RESULTS'][$this->_DB_resultid]))
         {
             if (!empty($_DB_DATAOBJECT['CONFIG']['debug'])) {
                 $this->debug('fetched on object after fetch completed (no results found)');
@@ -527,7 +568,6 @@ class DB_DataObject extends DB_DataObject_Overload
             // note: we dont declare this to keep the print_r size down.
             $_DB_DATAOBJECT['RESULTFIELDS'][$this->_DB_resultid]= array_flip(array_keys($array));
         }
-
         $keys = str_replace(array("."," "), "_", array_keys($array));
         $i = 0;
         foreach($array as $val) {
@@ -541,7 +581,7 @@ class DB_DataObject extends DB_DataObject_Overload
         // set link flag
         $this->_link_loaded=false;
         if (!empty($_DB_DATAOBJECT['CONFIG']['debug'])) {
-            $this->debug("{$this->__table} DONE", "fetchrow",2);
+            $this->debug("{$this->tableName()} DONE", "fetchrow",2);
         }
         if (($this->_query !== false) &&  empty($_DB_DATAOBJECT['CONFIG']['keep_query_after_fetch'])) {
             $this->_query = false;
@@ -549,6 +589,84 @@ class DB_DataObject extends DB_DataObject_Overload
         return true;
     }
 
+
+     /**
+     * fetches all results as an array,
+     *
+     * return format is dependant on args.
+     * if selectAdd() has not been called on the object, then it will add the correct columns to the query.
+     *
+     * A) Array of values (eg. a list of 'id')
+     *
+     * $x = DB_DataObject::factory('mytable');
+     * $x->whereAdd('something = 1')
+     * $ar = $x->fetchAll('id');
+     * -- returns array(1,2,3,4,5)
+     *
+     * B) Array of values (not from table)
+     *
+     * $x = DB_DataObject::factory('mytable');
+     * $x->whereAdd('something = 1');
+     * $x->selectAdd();
+     * $x->selectAdd('distinct(group_id) as group_id');
+     * $ar = $x->fetchAll('group_id');
+     * -- returns array(1,2,3,4,5)
+     *     *
+     * C) A key=>value associative array
+     *
+     * $x = DB_DataObject::factory('mytable');
+     * $x->whereAdd('something = 1')
+     * $ar = $x->fetchAll('id','name');
+     * -- returns array(1=>'fred',2=>'blogs',3=> .......
+     *
+     * D) array of objects
+     * $x = DB_DataObject::factory('mytable');
+     * $x->whereAdd('something = 1');
+     * $ar = $x->fetchAll();
+     *
+     * E) array of arrays (for example)
+     * $x = DB_DataObject::factory('mytable');
+     * $x->whereAdd('something = 1');
+     * $ar = $x->fetchAll(false,false,'toArray');
+     *
+     *
+     * @param    string|false  $k key
+     * @param    string|false  $v value
+     * @param    string|false  $method method to call on each result to get array value (eg. 'toArray')
+     * @access  public
+     * @return  array  format dependant on arguments, may be empty
+     */
+    function fetchAll($k= false, $v = false, $method = false)
+    {
+        // should it even do this!!!?!?
+        if ($k !== false &&
+                (   // only do this is we have not been explicit..
+                    empty($this->_query['data_select']) ||
+                    ($this->_query['data_select'] == '*')
+                )
+            ) {
+            $this->selectAdd();
+            $this->selectAdd($k);
+            if ($v !== false) {
+                $this->selectAdd($v);
+            }
+        }
+
+        $this->find();
+        $ret = array();
+        while ($this->fetch()) {
+            if ($v !== false) {
+                $ret[$this->$k] = $this->$v;
+                continue;
+            }
+            $ret[] = $k === false ?
+                ($method == false ? clone($this)  : $this->$method())
+                : $this->$k;
+        }
+        return $ret;
+
+    }
+
     /**
      * Adds a condition to the WHERE statement, defaults to AND
      *
@@ -573,8 +691,7 @@ class DB_DataObject extends DB_DataObject_Overload
         }
 
         if ($cond === false) {
-            $r = isset( $this->_query['condition'] ) ?
-                $this->_query['condition'] : null;
+            $r = isset($this->_query['condition']) ? $this->_query['condition'] : null;
             $_query['condition'] = '';
             $this->_query = $_query;
             return preg_replace('/^\s+WHERE\s+/','',$r);
@@ -594,6 +711,48 @@ class DB_DataObject extends DB_DataObject_Overload
         return $r;
     }
 
+    /**
+    * Adds a 'IN' condition to the WHERE statement
+    *
+    * $object->whereAddIn('id', $array, 'int'); //minimal usage
+    * $object->whereAddIn('price', $array, 'float', 'OR');  // cast to float, and call whereAdd with 'OR'
+    * $object->whereAddIn('name', $array, 'string');  // quote strings
+    *
+    * @param    string  $key  key column to match
+    * @param    array  $list  list of values to match
+    * @param    string  $type  string|int|integer|float|bool  cast to type.
+    * @param    string  $logic optional logic to call whereAdd with eg. "OR" (defaults to "AND")
+    * @access   public
+    * @return   string|PEAR::Error - previous condition or Error when invalid args found
+    */
+    function whereAddIn($key, $list, $type, $logic = 'AND')
+    {
+        $not = '';
+        if ($key[0] == '!') {
+            $not = 'NOT ';
+            $key = substr($key, 1);
+        }
+        // fix type for short entry.
+        $type = $type == 'int' ? 'integer' : $type;
+
+        if ($type == 'string') {
+            $this->_connect();
+        }
+
+        $ar = array();
+        foreach($list as $k) {
+            settype($k, $type);
+            $ar[] = $type == 'string' ? $this->_quote($k) : $k;
+        }
+
+        if (!$ar) {
+            return $not ? $this->_query['condition'] : $this->whereAdd("1=0");
+        }
+        return $this->whereAdd("$key $not IN (". implode(',', $ar). ')', $logic );
+    }
+
+
+
     /**
      * Adds a order by condition
      *
@@ -633,10 +792,10 @@ class DB_DataObject extends DB_DataObject_Overload
      * Return affected rows for current connection.
      * Override the mysql affectedRows w/ db object.
      */
-    function affectedRows( ) {
+    function affectedRows() {
         global $_DB_DATAOBJECT;
-        $DB = &$_DB_DATAOBJECT['CONNECTIONS'][$this->_database_dsn_md5];
-        return $DB->affectedRows( );
+        $DB = $_DB_DATAOBJECT['CONNECTIONS'][$this->_database_dsn_md5];
+        return $DB->affectedRows();
     }
 
     /**
@@ -710,6 +869,43 @@ class DB_DataObject extends DB_DataObject_Overload
         $this->_query['having'] .= " AND {$having}";
     }
 
+    /**
+     * Adds a using Index
+     *
+     * $object->useIndex(); //reset the use Index
+     * $object->useIndex("some_index");
+     *
+     * Note do not put unfiltered user input into theis method.
+     * This is mysql specific at present? - might need altering to support other databases.
+     *
+     * @param  string|array  $index  index or indexes to use.
+     * @access public
+     * @return none|PEAR::Error - invalid args only
+     */
+    function useIndex($index = false)
+    {
+        if ($this->_query === false) {
+            $this->raiseError(
+                "You cannot do two queries on the same object (copy it before finding)",
+                DB_DATAOBJECT_ERROR_INVALIDARGS);
+            return false;
+        }
+        if ($index=== false) {
+            $this->_query['useindex'] = '';
+            return;
+        }
+        // check input...= 0 or '    ' == error!
+        if ((is_string($index) && !trim($index)) || (is_array($index) && !count($index)) ) {
+            return $this->raiseError("Having: No Valid Arguments", DB_DATAOBJECT_ERROR_INVALIDARGS);
+        }
+        $index = is_array($index) ? implode(', ', $index) : $index;
+
+        if (!$this->_query['useindex']) {
+            $this->_query['useindex'] = " USE INDEX ({$index}) ";
+            return;
+        }
+        $this->_query['useindex'] =  substr($this->_query['useindex'],0, -2) . ", {$index}) ";
+    }
     /**
      * Sets the Limit
      *
@@ -747,7 +943,7 @@ class DB_DataObject extends DB_DataObject_Overload
         }
         global $_DB_DATAOBJECT;
         $this->_connect();
-        $DB = &$_DB_DATAOBJECT['CONNECTIONS'][$this->_database_dsn_md5];
+        $DB = $_DB_DATAOBJECT['CONNECTIONS'][$this->_database_dsn_md5];
 
         $this->_query['limit_start'] = ($b == null) ? 0 : (int)$a;
         $this->_query['limit_count'] = ($b == null) ? (int)$a : (int)$b;
@@ -778,8 +974,7 @@ class DB_DataObject extends DB_DataObject_Overload
             return false;
         }
         if ($k === null) {
-            $old = isset( $this->_query['data_select'] ) ?
-                $this->_query['data_select'] : null;
+            $old = isset($this->_query['data_select']) ? $this->_query['data_select'] : null;
             $this->_query['data_select'] = '';
             return $old;
         }
@@ -828,9 +1023,9 @@ class DB_DataObject extends DB_DataObject_Overload
         }
 
 
-        $table = $this->__table;
+        $table = $this->tableName();
         if (is_object($from)) {
-            $table = $from->__table;
+            $table = $from->tableName();
             $from = array_keys($from->table());
         }
 
@@ -840,7 +1035,7 @@ class DB_DataObject extends DB_DataObject_Overload
         $s = '%s';
         if (!empty($_DB_DATAOBJECT['CONFIG']['quote_identifiers'])) {
             $this->_connect();
-            $DB = &$_DB_DATAOBJECT['CONNECTIONS'][$this->_database_dsn_md5];
+            $DB = $_DB_DATAOBJECT['CONNECTIONS'][$this->_database_dsn_md5];
             $s      = $DB->quoteIdentifier($s);
             $format = $DB->quoteIdentifier($format);
         }
@@ -878,25 +1073,24 @@ class DB_DataObject extends DB_DataObject_Overload
 
         $quoteIdentifiers  = !empty($_DB_DATAOBJECT['CONFIG']['quote_identifiers']);
 
-        $DB = &$_DB_DATAOBJECT['CONNECTIONS'][$this->_database_dsn_md5];
+        $DB = $_DB_DATAOBJECT['CONNECTIONS'][$this->_database_dsn_md5];
 
-        $items =  isset($_DB_DATAOBJECT['INI'][$this->_database][$this->__table]) ?
-            $_DB_DATAOBJECT['INI'][$this->_database][$this->__table] : $this->table();
+        $items = $this->table();
 
         if (!$items) {
-            $this->raiseError("insert:No table definition for {$this->__table}",
+            $this->raiseError("insert:No table definition for {$this->tableName()}",
                 DB_DATAOBJECT_ERROR_INVALIDCONFIG);
             return false;
         }
-        $options = &$_DB_DATAOBJECT['CONFIG'];
+        $options = $_DB_DATAOBJECT['CONFIG'];
 
 
         $datasaved = 1;
         $leftq     = '';
         $rightq    = '';
 
-        $seqKeys   = isset($_DB_DATAOBJECT['SEQUENCE'][$this->_database][$this->__table]) ?
-                        $_DB_DATAOBJECT['SEQUENCE'][$this->_database][$this->__table] :
+        $seqKeys   = isset($_DB_DATAOBJECT['SEQUENCE'][$this->_database][$this->tableName()]) ?
+                        $_DB_DATAOBJECT['SEQUENCE'][$this->_database][$this->tableName()] :
                         $this->sequenceKey();
 
         $key       = isset($seqKeys[0]) ? $seqKeys[0] : false;
@@ -913,7 +1107,7 @@ class DB_DataObject extends DB_DataObject_Overload
         if (($key !== false) && !$useNative) {
 
             if (!$seq) {
-                $keyvalue =  $DB->nextId($this->__table);
+                $keyvalue =  $DB->nextId($this->tableName());
             } else {
                 $f = $DB->getOption('seqname_format');
                 $DB->setOption('seqname_format','%s');
@@ -927,6 +1121,10 @@ class DB_DataObject extends DB_DataObject_Overload
             $this->$key = $keyvalue;
         }
 
+        // if we haven't set disable_null_strings to "full"
+        $ignore_null = !isset($options['disable_null_strings'])
+                    || !is_string($options['disable_null_strings'])
+                    || strtolower($options['disable_null_strings']) !== 'full' ;
 
 
         foreach($items as $k => $v) {
@@ -937,7 +1135,10 @@ class DB_DataObject extends DB_DataObject_Overload
             }
 
 
-            if (!isset($this->$k)) {
+            // Ignore INTEGERS which aren't set to a value - or empty string..
+            if ( (!isset($this->$k) || ($v == 1 && $this->$k === ''))
+                    && $ignore_null
+            ) {
                 continue;
             }
 
@@ -949,7 +1150,7 @@ class DB_DataObject extends DB_DataObject_Overload
             $leftq .= ($quoteIdentifiers ? ($DB->quoteIdentifier($k) . ' ')  : "$k ");
 
             /***
-            if (is_a($this->$k,'DB_DataObject_Cast')) {
+            if (is_object($this->$k) && is_a($this->$k,'DB_DataObject_Cast')) {
                 $value = $this->$k->toString($v,$DB);
                 if (PEAR::isError($value)) {
                     $this->raiseError($value->toString() ,DB_DATAOBJECT_ERROR_INVALIDARGS);
@@ -960,25 +1161,27 @@ class DB_DataObject extends DB_DataObject_Overload
             }
             **/
 
-
-
-            if (!isset($options['disable_null_strings']) && is_string($this->$k) && (strtolower($this->$k) === 'null') && $this->$k !== 'Null' && !($v & DB_DATAOBJECT_NOTNULL)) {
+            if (!($v & DB_DATAOBJECT_NOTNULL) && DB_DataObject::_is_null($this,$k)) {
                 $rightq .= " NULL ";
                 continue;
             }
-          if (($v & DB_DATAOBJECT_DATE) || ($v & DB_DATAOBJECT_TIME) || $v & DB_DATAOBJECT_MYSQLTIMESTAMP) {
-            if (strpos($this->$k, '-') !== FALSE) {
-              /*
-               * per CRM-14986 we have been having ongoing problems with the format returned from $dao->find(TRUE) NOT
-               * being acceptable for an immediate save. This has resulted in the codebase being smattered with
-               * instances of CRM_Utils_Date::isoToMysql for date fields retrieved in this way
-               * which seems both risky (have to remember to do it for every field) & cludgey.
-               * doing it here should be safe as only fields with a '-' in them will be affected - if they are
-               *  already formatted or empty then this line will not be hit
-               */
-              $this->$k = CRM_Utils_Date::isoToMysql($this->$k);
+
+            // CRM-14986 starts
+            if (($v & DB_DATAOBJECT_DATE) || ($v & DB_DATAOBJECT_TIME) || $v & DB_DATAOBJECT_MYSQLTIMESTAMP) {
+              if (strpos($this->$k, '-') !== FALSE) {
+                /*
+                 * per CRM-14986 we have been having ongoing problems with the format returned from $dao->find(TRUE) NOT
+                 * being acceptable for an immediate save. This has resulted in the codebase being smattered with
+                 * instances of CRM_Utils_Date::isoToMysql for date fields retrieved in this way
+                 * which seems both risky (have to remember to do it for every field) & cludgey.
+                 * doing it here should be safe as only fields with a '-' in them will be affected - if they are
+                 *  already formatted or empty then this line will not be hit
+                 */
+                $this->$k = CRM_Utils_Date::isoToMysql($this->$k);
+              }
             }
-          }
+            // CRM-14986 ends
+
             // DATE is empty... on a col. that can be null..
             // note: this may be usefull for time as well..
             if (!$this->$k &&
@@ -1001,16 +1204,18 @@ class DB_DataObject extends DB_DataObject_Overload
                 continue;
             }
 
+            // CiviCRM hack CRM-14476: Extend CaseType API to return/save XML
+            // https://issues.civicrm.org/jira/browse/CRM-14476
             if ($v & DB_DATAOBJECT_TXT) {
                 $rightq .= $this->_quote((string) $this->$k ) . ' ';
                 continue;
             }
 
-           if ($v & DB_DATAOBJECT_BLOB) {
-              $rightq .= $this->_quote( $this->$k ) . ' ';
-              continue;
-           }
-
+            if ($v & DB_DATAOBJECT_BLOB) {
+               $rightq .= $this->_quote( $this->$k ) . ' ';
+               continue;
+            }
+            // CRM-14476 hack ends
 
             if (is_numeric($this->$k)) {
                 $rightq .=" {$this->$k} ";
@@ -1031,7 +1236,7 @@ class DB_DataObject extends DB_DataObject_Overload
 
 
         if ($leftq || $useNative) {
-            $table = ($quoteIdentifiers ? $DB->quoteIdentifier($this->__table)    : $this->__table);
+            $table = ($quoteIdentifiers ? $DB->quoteIdentifier($this->tableName())    : $this->tableName());
 
 
             if (($dbtype == 'pgsql') && empty($leftq)) {
@@ -1083,7 +1288,7 @@ class DB_DataObject extends DB_DataObject_Overload
 
                     case 'pgsql':
                         if (!$seq) {
-                            $seq = $DB->getSequenceName(strtolower($this->__table));
+                            $seq = $DB->getSequenceName(strtolower($this->tableName()));
                         }
                         $db_driver = empty($options['db_driver']) ? 'DB' : $options['db_driver'];
                         $method = ($db_driver  == 'DB') ? 'getOne' : 'queryOne';
@@ -1166,19 +1371,18 @@ class DB_DataObject extends DB_DataObject_Overload
 
         $original_query =  $this->_query;
 
-        $items =  isset($_DB_DATAOBJECT['INI'][$this->_database][$this->__table]) ?
-            $_DB_DATAOBJECT['INI'][$this->_database][$this->__table] : $this->table();
+        $items = $this->table();
 
         // only apply update against sequence key if it is set?????
 
         $seq    = $this->sequenceKey();
         if ($seq[0] !== false) {
             $keys = array($seq[0]);
-            if (empty($this->{$keys[0]}) && $dataObject !== true) {
+            if (!isset($this->{$keys[0]}) && $dataObject !== true) {
                 $this->raiseError("update: trying to perform an update without
                         the key set, and argument to update is not
                         DB_DATAOBJECT_WHEREADD_ONLY
-                    ", DB_DATAOBJECT_ERROR_INVALIDARGS);
+                    ". print_r(array('seq' => $seq , 'keys'=>$keys), true), DB_DATAOBJECT_ERROR_INVALIDARGS);
                 return false;
             }
         } else {
@@ -1187,22 +1391,31 @@ class DB_DataObject extends DB_DataObject_Overload
 
 
         if (!$items) {
-            $this->raiseError("update:No table definition for {$this->__table}", DB_DATAOBJECT_ERROR_INVALIDCONFIG);
+            $this->raiseError("update:No table definition for {$this->tableName()}", DB_DATAOBJECT_ERROR_INVALIDCONFIG);
             return false;
         }
         $datasaved = 1;
         $settings  = '';
         $this->_connect();
 
-        $DB            = &$_DB_DATAOBJECT['CONNECTIONS'][$this->_database_dsn_md5];
+        $DB            = $_DB_DATAOBJECT['CONNECTIONS'][$this->_database_dsn_md5];
         $dbtype        = $DB->dsn["phptype"];
         $quoteIdentifiers = !empty($_DB_DATAOBJECT['CONFIG']['quote_identifiers']);
         $options = $_DB_DATAOBJECT['CONFIG'];
 
 
+        $ignore_null = !isset($options['disable_null_strings'])
+                    || !is_string($options['disable_null_strings'])
+                    || strtolower($options['disable_null_strings']) !== 'full' ;
+
+
         foreach($items as $k => $v) {
-            if (!isset($this->$k)) {
-                continue;
+
+            // I think this is ignoring empty vlalues
+            if ((!isset($this->$k) || ($v == 1 && $this->$k === ''))
+                    && $ignore_null
+            ) {
+                 continue;
             }
             // ignore stuff thats
 
@@ -1223,7 +1436,7 @@ class DB_DataObject extends DB_DataObject_Overload
             $kSql = ($quoteIdentifiers ? $DB->quoteIdentifier($k) : $k);
 
             /***
-            if (is_a($this->$k,'DB_DataObject_Cast')) {
+            if (is_object($this->$k) && is_a($this->$k,'DB_DataObject_Cast')) {
                 $value = $this->$k->toString($v,$DB);
                 if (PEAR::isError($value)) {
                     $this->raiseError($value->getMessage() ,DB_DATAOBJECT_ERROR_INVALIDARG);
@@ -1235,23 +1448,27 @@ class DB_DataObject extends DB_DataObject_Overload
             ***/
 
             // special values ... at least null is handled...
-            if (!isset($options['disable_null_strings']) && is_string($this->$k) && (strtolower($this->$k) === 'null') && $this->$k !== 'Null' && !($v & DB_DATAOBJECT_NOTNULL)) {
+            if (!($v & DB_DATAOBJECT_NOTNULL) && DB_DataObject::_is_null($this,$k)) {
                 $settings .= "$kSql = NULL ";
                 continue;
             }
-          if (($v & DB_DATAOBJECT_DATE) || ($v & DB_DATAOBJECT_TIME) || $v & DB_DATAOBJECT_MYSQLTIMESTAMP) {
-            if (strpos($this->$k, '-') !== FALSE) {
-             /*
-              * per CRM-14986 we have been having ongoing problems with the format returned from $dao->find(TRUE) NOT
-              * being acceptable for an immediate save. This has resulted in the codebase being smattered with
-              * instances of CRM_Utils_Date::isoToMysql for date fields retrieved in this way
-              * which seems both risky (have to remember to do it for every field) & cludgey.
-              * doing it here should be safe as only fields with a '-' in them will be affected - if they are
-              *  already formatted or empty then this line will not be hit
-              */
-              $this->$k = CRM_Utils_Date::isoToMysql($this->$k);
+
+            // CRM-14986 starts
+            if (($v & DB_DATAOBJECT_DATE) || ($v & DB_DATAOBJECT_TIME) || $v & DB_DATAOBJECT_MYSQLTIMESTAMP) {
+              if (strpos($this->$k, '-') !== FALSE) {
+               /*
+                * per CRM-14986 we have been having ongoing problems with the format returned from $dao->find(TRUE) NOT
+                * being acceptable for an immediate save. This has resulted in the codebase being smattered with
+                * instances of CRM_Utils_Date::isoToMysql for date fields retrieved in this way
+                * which seems both risky (have to remember to do it for every field) & cludgey.
+                * doing it here should be safe as only fields with a '-' in them will be affected - if they are
+                *  already formatted or empty then this line will not be hit
+                */
+                $this->$k = CRM_Utils_Date::isoToMysql($this->$k);
+              }
             }
-          }
+            // CRM-14986 ends
+
             // DATE is empty... on a col. that can be null..
             // note: this may be usefull for time as well..
             if (!$this->$k &&
@@ -1274,6 +1491,8 @@ class DB_DataObject extends DB_DataObject_Overload
                 continue;
             }
 
+            // CiviCRM hack CRM-14476: Extend CaseType API to return/save XML
+            // https://issues.civicrm.org/jira/browse/CRM-14476
             if ($v & DB_DATAOBJECT_TXT) {
                 $settings .= "$kSql = " . $this->_quote((string) $this->$k ) . ' ';
                 continue;
@@ -1283,6 +1502,7 @@ class DB_DataObject extends DB_DataObject_Overload
               $settings .= "$kSql = " . $this->_quote($this->$k ) . ' ';
               continue;
             }
+            // CRM-14725 ends
 
             if (is_numeric($this->$k)) {
                 $settings .= "$kSql = {$this->$k} ";
@@ -1293,6 +1513,7 @@ class DB_DataObject extends DB_DataObject_Overload
             $settings .= "$kSql = " . intval($this->$k) . ' ';
         }
 
+
         if (!empty($_DB_DATAOBJECT['CONFIG']['debug'])) {
             $this->debug("got keys as ".serialize($keys),3);
         }
@@ -1313,7 +1534,7 @@ class DB_DataObject extends DB_DataObject_Overload
         //  echo " $settings, $this->condition ";
         if ($settings && isset($this->_query) && $this->_query['condition']) {
 
-            $table = ($quoteIdentifiers ? $DB->quoteIdentifier($this->__table) : $this->__table);
+            $table = ($quoteIdentifiers ? $DB->quoteIdentifier($this->tableName()) : $this->tableName());
 
             $r = $this->_query("UPDATE  {$table}  SET {$settings} {$this->_query['condition']} ");
 
@@ -1340,8 +1561,8 @@ class DB_DataObject extends DB_DataObject_Overload
         }
 
         // $this->raiseError(
-        //     "update: No Data specifed for query $settings , {$this->_query['condition']}",
-        //     DB_DATAOBJECT_ERROR_NODATA);
+        //    "update: No Data specifed for query $settings , {$this->_query['condition']}",
+        //    DB_DATAOBJECT_ERROR_NODATA);
         // return false;
         // we allow empty updates always [CiviCRM]
         return true;
@@ -1378,7 +1599,7 @@ class DB_DataObject extends DB_DataObject_Overload
         global $_DB_DATAOBJECT;
         // connect will load the config!
         $this->_connect();
-        $DB = &$_DB_DATAOBJECT['CONNECTIONS'][$this->_database_dsn_md5];
+        $DB = $_DB_DATAOBJECT['CONNECTIONS'][$this->_database_dsn_md5];
         $quoteIdentifiers  = !empty($_DB_DATAOBJECT['CONFIG']['quote_identifiers']);
 
         $extra_cond = ' ' . (isset($this->_query['order_by']) ? $this->_query['order_by'] : '');
@@ -1400,7 +1621,7 @@ class DB_DataObject extends DB_DataObject_Overload
         // don't delete without a condition
         if (($this->_query !== false) && $this->_query['condition']) {
 
-            $table = ($quoteIdentifiers ? $DB->quoteIdentifier($this->__table) : $this->__table);
+            $table = ($quoteIdentifiers ? $DB->quoteIdentifier($this->tableName()) : $this->tableName());
             $sql = "DELETE ";
             // using a joined delete. - with useWhere..
             $sql .= (!empty($this->_join) && $useWhere) ?
@@ -1462,9 +1683,9 @@ class DB_DataObject extends DB_DataObject_Overload
             $this->_loadConfig();
         }
         if (!empty($_DB_DATAOBJECT['CONFIG']['debug'])) {
-            $this->debug("{$this->__table} $row of {$this->N}", "fetchrow",3);
+            $this->debug("{$this->tableName()} $row of {$this->N}", "fetchrow",3);
         }
-        if (!$this->__table) {
+        if (!$this->tableName()) {
             $this->raiseError("fetchrow: No table", DB_DATAOBJECT_ERROR_INVALIDCONFIG);
             return false;
         }
@@ -1477,17 +1698,16 @@ class DB_DataObject extends DB_DataObject_Overload
             return false;
         }
         if (!empty($_DB_DATAOBJECT['CONFIG']['debug'])) {
-            $this->debug("{$this->__table} $row of {$this->N}", "fetchrow",3);
+            $this->debug("{$this->tableName()} $row of {$this->N}", "fetchrow",3);
         }
 
 
-        $result = &$_DB_DATAOBJECT['RESULTS'][$this->_DB_resultid];
+        $result = $_DB_DATAOBJECT['RESULTS'][$this->_DB_resultid];
         $array  = $result->fetchrow(DB_DATAOBJECT_FETCHMODE_ASSOC,$row);
         if (!is_array($array)) {
             $this->raiseError("fetchrow: No results available", DB_DATAOBJECT_ERROR_NODATA);
             return false;
         }
-
         $keys = str_replace(array("."," "), "_", array_keys($array));
         $i = 0;
         foreach($array as $val) {
@@ -1499,7 +1719,7 @@ class DB_DataObject extends DB_DataObject_Overload
         }
 
         if (!empty($_DB_DATAOBJECT['CONFIG']['debug'])) {
-            $this->debug("{$this->__table} DONE", "fetchrow", 3);
+            $this->debug("{$this->tableName()} DONE", "fetchrow", 3);
         }
         return true;
     }
@@ -1553,7 +1773,7 @@ class DB_DataObject extends DB_DataObject_Overload
             return false;
         }
         $this->_connect();
-        $DB = &$_DB_DATAOBJECT['CONNECTIONS'][$this->_database_dsn_md5];
+        $DB = $_DB_DATAOBJECT['CONNECTIONS'][$this->_database_dsn_md5];
 
 
         if (!$whereAddOnly && $items)  {
@@ -1568,7 +1788,7 @@ class DB_DataObject extends DB_DataObject_Overload
             return false;
 
         }
-        $table   = ($quoteIdentifiers ? $DB->quoteIdentifier($this->__table) : $this->__table);
+        $table   = ($quoteIdentifiers ? $DB->quoteIdentifier($this->tableName()) : $this->tableName());
         $key_col = empty($keys[0]) ? '' : (($quoteIdentifiers ? $DB->quoteIdentifier($keys[0]) : $keys[0]));
         $as      = ($quoteIdentifiers ? $DB->quoteIdentifier('DATAOBJECT_NUM') : 'DATAOBJECT_NUM');
 
@@ -1585,11 +1805,13 @@ class DB_DataObject extends DB_DataObject_Overload
             return false;
         }
 
-        $result  = &$_DB_DATAOBJECT['RESULTS'][$t->_DB_resultid];
+        $result  = $_DB_DATAOBJECT['RESULTS'][$t->_DB_resultid];
         $l = $result->fetchRow(DB_DATAOBJECT_FETCHMODE_ORDERED);
         // free the results - essential on oracle.
         $t->free();
-
+        if (!empty($_DB_DATAOBJECT['CONFIG']['debug'])) {
+            $this->debug('Count returned '. $l[0] ,1);
+        }
         return (int) $l[0];
     }
 
@@ -1623,7 +1845,7 @@ class DB_DataObject extends DB_DataObject_Overload
     {
         global $_DB_DATAOBJECT;
         $this->_connect();
-        $DB = &$_DB_DATAOBJECT['CONNECTIONS'][$this->_database_dsn_md5];
+        $DB = $_DB_DATAOBJECT['CONNECTIONS'][$this->_database_dsn_md5];
         // mdb2 uses escape...
         $dd = empty($_DB_DATAOBJECT['CONFIG']['db_driver']) ? 'DB' : $_DB_DATAOBJECT['CONFIG']['db_driver'];
         $ret = ($dd == 'DB') ? $DB->escapeSimple($string) : $DB->escape($string);
@@ -1682,9 +1904,13 @@ class DB_DataObject extends DB_DataObject_Overload
         'group_by'    => '', // the GROUP BY condition
         'order_by'    => '', // the ORDER BY condition
         'having'      => '', // the HAVING condition
+        'useindex'   => '', // the USE INDEX condition
         'limit_start' => '', // the LIMIT condition
         'limit_count' => '', // the LIMIT condition
         'data_select' => '*', // the columns to be SELECTed
+        'unions'      => array(), // the added unions,
+        'derive_table' => '', // derived table name (BETA)
+        'derive_select' => '', // derived table select (BETA)
     );
 
 
@@ -1753,7 +1979,7 @@ class DB_DataObject extends DB_DataObject_Overload
                 $x = new DB_DataObject;
                 $x->_database = $args[0];
                 $this->_connect();
-                $DB = &$_DB_DATAOBJECT['CONNECTIONS'][$this->_database_dsn_md5];
+                $DB = $_DB_DATAOBJECT['CONNECTIONS'][$this->_database_dsn_md5];
 
                 $tables = $DB->getListOf('tables');
                 class_exists('DB_DataObject_Generator') ? '' :
@@ -1784,32 +2010,41 @@ class DB_DataObject extends DB_DataObject_Overload
             $this->_connect();
         }
 
-        // loaded already?
-        if (!empty($_DB_DATAOBJECT['INI'][$this->_database])) {
 
-            // database loaded - but this is table is not available..
-            if (
-                    empty($_DB_DATAOBJECT['INI'][$this->_database][$this->__table])
-                    && !empty($_DB_DATAOBJECT['CONFIG']['proxy'])
-                ) {
-                if (!empty($_DB_DATAOBJECT['CONFIG']['debug'])) {
-                    $this->debug("Loading Generator to fetch Schema",1);
-                }
-                class_exists('DB_DataObject_Generator') ? '' :
-                    require_once 'DB/DataObject/Generator.php';
-
-
-                $x = new DB_DataObject_Generator;
-                $x->fillTableSchema($this->_database,$this->__table);
-            }
+        // if this table is already loaded this table..
+        if (!empty($_DB_DATAOBJECT['INI'][$this->_database][$this->tableName()])) {
             return true;
         }
 
+        // initialize the ini data.. if empt..
+        if (empty($_DB_DATAOBJECT['INI'][$this->_database])) {
+            $_DB_DATAOBJECT['INI'][$this->_database] = array();
+        }
 
         if (empty($_DB_DATAOBJECT['CONFIG'])) {
             DB_DataObject::_loadConfig();
         }
 
+        // we do not have the data for this table yet...
+
+        // if we are configured to use the proxy..
+
+        if ( !empty($_DB_DATAOBJECT['CONFIG']['proxy']) ) {
+            if (!empty($_DB_DATAOBJECT['CONFIG']['debug'])) {
+                $this->debug("Loading Generator to fetch Schema",1);
+            }
+            class_exists('DB_DataObject_Generator') ? '' :
+                require_once 'DB/DataObject/Generator.php';
+
+
+            $x = new DB_DataObject_Generator;
+            $x->fillTableSchema($this->_database,$this->tableName());
+            return true;
+        }
+
+
+
+
         // if you supply this with arguments, then it will take those
         // as the database and links array...
 
@@ -1824,10 +2059,15 @@ class DB_DataObject extends DB_DataObject_Overload
         }
 
 
-
+        $_DB_DATAOBJECT['INI'][$this->_database] = array();
         foreach ($schemas as $ini) {
              if (file_exists($ini) && is_file($ini)) {
-                $_DB_DATAOBJECT['INI'][$this->_database] = parse_ini_file($ini, true);
+
+                $_DB_DATAOBJECT['INI'][$this->_database] = array_merge(
+                    $_DB_DATAOBJECT['INI'][$this->_database],
+                    parse_ini_file($ini, true)
+                );
+
                 if (!empty($_DB_DATAOBJECT['CONFIG']['debug'])) {
                     if (!is_readable ($ini)) {
                         $this->debug("ini file is not readable: $ini","databaseStructure",1);
@@ -1842,9 +2082,18 @@ class DB_DataObject extends DB_DataObject_Overload
             }
 
         }
+        // are table name lowecased..
+        if (!empty($_DB_DATAOBJECT['CONFIG']['portability']) && $_DB_DATAOBJECT['CONFIG']['portability'] & 1) {
+            foreach($_DB_DATAOBJECT['INI'][$this->_database] as $k=>$v) {
+                // results in duplicate cols.. but not a big issue..
+                $_DB_DATAOBJECT['INI'][$this->_database][strtolower($k)] = $v;
+            }
+        }
+
+
         // now have we loaded the structure..
 
-        if (!empty($_DB_DATAOBJECT['INI'][$this->_database][$this->__table])) {
+        if (!empty($_DB_DATAOBJECT['INI'][$this->_database][$this->tableName()])) {
             return true;
         }
         // - if not try building it..
@@ -1853,11 +2102,11 @@ class DB_DataObject extends DB_DataObject_Overload
                 require_once 'DB/DataObject/Generator.php';
 
             $x = new DB_DataObject_Generator;
-            $x->fillTableSchema($this->_database,$this->__table);
+            $x->fillTableSchema($this->_database,$this->tableName());
             // should this fail!!!???
             return true;
         }
-        $this->debug("Cant find database schema: {$this->_database}/{$this->__table} \n".
+        $this->debug("Cant find database schema: {$this->_database}/{$this->tableName()} \n".
                     "in links file data: " . print_r($_DB_DATAOBJECT['INI'],true),"databaseStructure",5);
         // we have to die here!! - it causes chaos if we dont (including looping forever!)
         $this->raiseError( "Unable to load schema for database and table (turn debugging up to 5 for full error message)", DB_DATAOBJECT_ERROR_INVALIDARGS, PEAR_ERROR_DIE);
@@ -1879,10 +2128,17 @@ class DB_DataObject extends DB_DataObject_Overload
      */
     function tableName()
     {
+        global $_DB_DATAOBJECT;
         $args = func_get_args();
         if (count($args)) {
             $this->__table = $args[0];
         }
+        if (empty($this->__table)) {
+            return '';
+        }
+        if (!empty($_DB_DATAOBJECT['CONFIG']['portability']) && $_DB_DATAOBJECT['CONFIG']['portability'] & 1) {
+            return strtolower($this->__table);
+        }
         return $this->__table;
     }
 
@@ -1898,7 +2154,10 @@ class DB_DataObject extends DB_DataObject_Overload
         $args = func_get_args();
         if (count($args)) {
             $this->_database = $args[0];
+        } else {
+            $this->_connect();
         }
+
         return $this->_database;
     }
 
@@ -1928,16 +2187,16 @@ class DB_DataObject extends DB_DataObject_Overload
             $this->_connect();
         }
 
-        if (isset($_DB_DATAOBJECT['INI'][$this->_database][$this->__table])) {
-            return $_DB_DATAOBJECT['INI'][$this->_database][$this->__table];
+        if (isset($_DB_DATAOBJECT['INI'][$this->_database][$this->tableName()])) {
+            return $_DB_DATAOBJECT['INI'][$this->_database][$this->tableName()];
         }
 
         $this->databaseStructure();
 
 
         $ret = array();
-        if (isset($_DB_DATAOBJECT['INI'][$this->_database][$this->__table])) {
-            $ret =  $_DB_DATAOBJECT['INI'][$this->_database][$this->__table];
+        if (isset($_DB_DATAOBJECT['INI'][$this->_database][$this->tableName()])) {
+            $ret =  $_DB_DATAOBJECT['INI'][$this->_database][$this->tableName()];
         }
 
         return $ret;
@@ -1952,7 +2211,7 @@ class DB_DataObject extends DB_DataObject_Overload
      * or you do not want to use ini tables, you can override this.
      * @param  string optional set the key
      * @param  *   optional  set more keys
-     * @access private
+     * @access public
      * @return array
      */
     function keys()
@@ -1971,13 +2230,13 @@ class DB_DataObject extends DB_DataObject_Overload
         if (!isset($_DB_DATAOBJECT['CONNECTIONS'][$this->_database_dsn_md5])) {
             $this->_connect();
         }
-        if (isset($_DB_DATAOBJECT['INI'][$this->_database][$this->__table."__keys"])) {
-            return array_keys($_DB_DATAOBJECT['INI'][$this->_database][$this->__table."__keys"]);
+        if (isset($_DB_DATAOBJECT['INI'][$this->_database][$this->tableName()."__keys"])) {
+            return array_keys($_DB_DATAOBJECT['INI'][$this->_database][$this->tableName()."__keys"]);
         }
         $this->databaseStructure();
 
-        if (isset($_DB_DATAOBJECT['INI'][$this->_database][$this->__table."__keys"])) {
-            return array_keys($_DB_DATAOBJECT['INI'][$this->_database][$this->__table."__keys"]);
+        if (isset($_DB_DATAOBJECT['INI'][$this->_database][$this->tableName()."__keys"])) {
+            return array_keys($_DB_DATAOBJECT['INI'][$this->_database][$this->tableName()."__keys"]);
         }
         return array();
     }
@@ -1992,7 +2251,7 @@ class DB_DataObject extends DB_DataObject_Overload
      * @param  string  optional the key sequence/autoinc. key
      * @param  boolean optional use native increment. default false
      * @param  false|string optional native sequence name
-     * @access private
+     * @access public
      * @return array (column,use_native,sequence_name)
      */
     function sequenceKey()
@@ -2013,10 +2272,10 @@ class DB_DataObject extends DB_DataObject_Overload
         if (count($args)) {
             $args[1] = isset($args[1]) ? $args[1] : false;
             $args[2] = isset($args[2]) ? $args[2] : false;
-            $_DB_DATAOBJECT['SEQUENCE'][$this->_database][$this->__table] = $args;
+            $_DB_DATAOBJECT['SEQUENCE'][$this->_database][$this->tableName()] = $args;
         }
-        if (isset($_DB_DATAOBJECT['SEQUENCE'][$this->_database][$this->__table])) {
-            return $_DB_DATAOBJECT['SEQUENCE'][$this->_database][$this->__table];
+        if (isset($_DB_DATAOBJECT['SEQUENCE'][$this->_database][$this->tableName()])) {
+            return $_DB_DATAOBJECT['SEQUENCE'][$this->_database][$this->tableName()];
         }
         // end call setting (eg. $do->sequenceKeys(a,b,c); )
 
@@ -2025,13 +2284,12 @@ class DB_DataObject extends DB_DataObject_Overload
 
         $keys = $this->keys();
         if (!$keys) {
-            return $_DB_DATAOBJECT['SEQUENCE'][$this->_database][$this->__table]
+            return $_DB_DATAOBJECT['SEQUENCE'][$this->_database][$this->tableName()]
                 = array(false,false,false);
         }
 
 
-        $table =  isset($_DB_DATAOBJECT['INI'][$this->_database][$this->__table]) ?
-            $_DB_DATAOBJECT['INI'][$this->_database][$this->__table] : $this->table();
+        $table =  $this->table();
 
         $dbtype    = $_DB_DATAOBJECT['CONNECTIONS'][$this->_database_dsn_md5]->dsn['phptype'];
 
@@ -2041,35 +2299,35 @@ class DB_DataObject extends DB_DataObject_Overload
 
         $seqname = false;
 
-        if (!empty($_DB_DATAOBJECT['CONFIG']['sequence_'.$this->__table])) {
-            $usekey = $_DB_DATAOBJECT['CONFIG']['sequence_'.$this->__table];
-            if (strpos($usekey,':') !== false) {
-                list($usekey,$seqname) = explode(':',$usekey);
+        if (!empty($_DB_DATAOBJECT['CONFIG']['sequence_'.$this->tableName()])) {
+            $seqname = $_DB_DATAOBJECT['CONFIG']['sequence_'.$this->tableName()];
+            if (strpos($seqname,':') !== false) {
+                list($usekey,$seqname) = explode(':',$seqname);
             }
         }
 
 
         // if the key is not an integer - then it's not a sequence or native
         if (empty($table[$usekey]) || !($table[$usekey] & DB_DATAOBJECT_INT)) {
-                return $_DB_DATAOBJECT['SEQUENCE'][$this->_database][$this->__table] = array(false,false,false);
+                return $_DB_DATAOBJECT['SEQUENCE'][$this->_database][$this->tableName()] = array(false,false,false);
         }
 
 
         if (!empty($_DB_DATAOBJECT['CONFIG']['ignore_sequence_keys'])) {
             $ignore =  $_DB_DATAOBJECT['CONFIG']['ignore_sequence_keys'];
             if (is_string($ignore) && (strtoupper($ignore) == 'ALL')) {
-                return $_DB_DATAOBJECT['SEQUENCE'][$this->_database][$this->__table] = array(false,false,$seqname);
+                return $_DB_DATAOBJECT['SEQUENCE'][$this->_database][$this->tableName()] = array(false,false,$seqname);
             }
             if (is_string($ignore)) {
                 $ignore = $_DB_DATAOBJECT['CONFIG']['ignore_sequence_keys'] = explode(',',$ignore);
             }
-            if (in_array($this->__table,$ignore)) {
-                return $_DB_DATAOBJECT['SEQUENCE'][$this->_database][$this->__table] = array(false,false,$seqname);
+            if (in_array($this->tableName(),$ignore)) {
+                return $_DB_DATAOBJECT['SEQUENCE'][$this->_database][$this->tableName()] = array(false,false,$seqname);
             }
         }
 
 
-        $realkeys = $_DB_DATAOBJECT['INI'][$this->_database][$this->__table."__keys"];
+        $realkeys = $_DB_DATAOBJECT['INI'][$this->_database][$this->tableName()."__keys"];
 
         // if you are using an old ini file - go back to old behaviour...
         if (is_numeric($realkeys[$usekey])) {
@@ -2078,25 +2336,38 @@ class DB_DataObject extends DB_DataObject_Overload
 
         // multiple unique primary keys without a native sequence...
         if (($realkeys[$usekey] == 'K') && (count($keys) > 1)) {
-            return $_DB_DATAOBJECT['SEQUENCE'][$this->_database][$this->__table] = array(false,false,$seqname);
+            return $_DB_DATAOBJECT['SEQUENCE'][$this->_database][$this->tableName()] = array(false,false,$seqname);
         }
         // use native sequence keys...
         // technically postgres native here...
         // we need to get the new improved tabledata sorted out first.
 
+        // support named sequence keys.. - currently postgres only..
+
+        if (    in_array($dbtype , array('pgsql')) &&
+                ($table[$usekey] & DB_DATAOBJECT_INT) &&
+                isset($realkeys[$usekey]) && strlen($realkeys[$usekey]) > 1) {
+            return $_DB_DATAOBJECT['SEQUENCE'][$this->_database][$this->tableName()] = array($usekey,true, $realkeys[$usekey]);
+        }
+
         if (    in_array($dbtype , array('pgsql', 'mysql', 'mysqli', 'mssql', 'ifx')) &&
                 ($table[$usekey] & DB_DATAOBJECT_INT) &&
                 isset($realkeys[$usekey]) && ($realkeys[$usekey] == 'N')
                 ) {
-            return $_DB_DATAOBJECT['SEQUENCE'][$this->_database][$this->__table] = array($usekey,true,$seqname);
+            return $_DB_DATAOBJECT['SEQUENCE'][$this->_database][$this->tableName()] = array($usekey,true,$seqname);
         }
+
+
         // if not a native autoinc, and we have not assumed all primary keys are sequence
         if (($realkeys[$usekey] != 'N') &&
             !empty($_DB_DATAOBJECT['CONFIG']['dont_use_pear_sequences'])) {
             return array(false,false,false);
         }
+
+
+
         // I assume it's going to try and be a nextval DB sequence.. (not native)
-        return $_DB_DATAOBJECT['SEQUENCE'][$this->_database][$this->__table] = array($usekey,false,$seqname);
+        return $_DB_DATAOBJECT['SEQUENCE'][$this->_database][$this->tableName()] = array($usekey,false,$seqname);
     }
 
 
@@ -2208,13 +2479,13 @@ class DB_DataObject extends DB_DataObject_Overload
         // it's not currently connected!
         // try and work out what to use for the dsn !
 
-        $options= &$_DB_DATAOBJECT['CONFIG'];
+        $options= $_DB_DATAOBJECT['CONFIG'];
         // if the databse dsn dis defined in the object..
         $dsn = isset($this->_database_dsn) ? $this->_database_dsn : null;
 
         if (!$dsn) {
-            if (!$this->_database) {
-                $this->_database = isset($options["table_{$this->__table}"]) ? $options["table_{$this->__table}"] : null;
+            if (!$this->_database && !strlen($this->tableName())) {
+                $this->_database = isset($options["table_{$this->tableName()}"]) ? $options["table_{$this->tableName()}"] : null;
             }
             if (!empty($_DB_DATAOBJECT['CONFIG']['debug'])) {
                 $this->debug("Checking for database specific ini ('{$this->_database}') : database_{$this->_database} in options","CONNECT");
@@ -2300,13 +2571,13 @@ class DB_DataObject extends DB_DataObject_Overload
 
         }
 
-        // change the connection and results charsets to UTF-8 if we're using MySQL 4.1+
+        // Change the connection and results charsets to utf8mb4 if we're using MySQL 5.5.3+
         $civicrmConfig = CRM_Core_Config::singleton();
         $this->query("/*!40101 SET NAMES utf8 */");
         $this->query("/*!50503 SET NAMES utf8mb4 */");
 
         if (!empty($_DB_DATAOBJECT['CONFIG']['debug'])) {
-            $this->debug(serialize($_DB_DATAOBJECT['CONNECTIONS']), "CONNECT",5);
+            $this->debug(print_r($_DB_DATAOBJECT['CONNECTIONS'],true), "CONNECT",5);
         }
         if (PEAR::isError($_DB_DATAOBJECT['CONNECTIONS'][$this->_database_dsn_md5])) {
             $this->debug($_DB_DATAOBJECT['CONNECTIONS'][$this->_database_dsn_md5]->toString(), "CONNECT FAILED",5);
@@ -2333,7 +2604,6 @@ class DB_DataObject extends DB_DataObject_Overload
         }
 
         // Oracle need to optimize for portibility - not sure exactly what this does though :)
-        $c = &$_DB_DATAOBJECT['CONNECTIONS'][$this->_database_dsn_md5];
 
         return true;
     }
@@ -2348,14 +2618,15 @@ class DB_DataObject extends DB_DataObject_Overload
      */
     function _query($string)
     {
-        global $_DB_DATAOBJECT, $queries, $user;
+        global $_DB_DATAOBJECT;
         $this->_connect();
 
-        // Logging the query first makes sure it gets logged even if it fails.
+        // CRM-18093 Logging the query first makes sure it gets logged even if it fails.
         CRM_Core_Error::debug_query($string);
-        $DB = &$_DB_DATAOBJECT['CONNECTIONS'][$this->_database_dsn_md5];
 
-        $options = &$_DB_DATAOBJECT['CONFIG'];
+        $DB = $_DB_DATAOBJECT['CONNECTIONS'][$this->_database_dsn_md5];
+
+        $options = $_DB_DATAOBJECT['CONFIG'];
 
         $_DB_driver = empty($_DB_DATAOBJECT['CONFIG']['db_driver']) ?
                     'DB':  $_DB_DATAOBJECT['CONFIG']['db_driver'];
@@ -2365,15 +2636,19 @@ class DB_DataObject extends DB_DataObject_Overload
 
         }
 
-        if (strtoupper($string) == 'BEGIN') {
+        if (
+            strtoupper($string) == 'BEGIN' ||
+            strtoupper($string) == 'START TRANSACTION'
+        ) {
             if ($_DB_driver == 'DB') {
                 $DB->autoCommit(false);
+                $DB->simpleQuery('BEGIN');
             } else {
                 $DB->beginTransaction();
             }
-            // db backend adds begin anyway from now on..
             return true;
         }
+
         if (strtoupper($string) == 'COMMIT') {
             $res = $DB->commit();
             if ($_DB_driver == 'DB') {
@@ -2436,8 +2711,7 @@ class DB_DataObject extends DB_DataObject_Overload
             CRM_Core_Error::debug_log_message("Retrying after $message hit on attempt " . ($tries + 1) . ' at query : ' . $string);
             continue;
           }
-
-        } else {
+            } else {
                 switch (strtolower(substr(trim($string),0,6))) {
 
                     case 'insert':
@@ -2452,8 +2726,9 @@ class DB_DataObject extends DB_DataObject_Overload
                 }
             }
 
-            // See CRM-21489 for why I believe this is never hit.
-            if (!is_a($result,'PEAR_Error')) {
+            // see if we got a failure.. - try again a few times..
+            // See CRM-21489 for why Eileen believes this is never hit.
+            if (!is_object($result) || !is_a($result,'PEAR_Error')) {
                 break;
             }
             if ($result->getCode() != -14) {  // *DB_ERROR_NODBSELECTED
@@ -2463,22 +2738,26 @@ class DB_DataObject extends DB_DataObject_Overload
             $DB->connect($DB->dsn);
         }
 
-        if (is_a($result,'PEAR_Error')) {
+
+        if (is_object($result) && is_a($result,'PEAR_Error')) {
             if (!empty($_DB_DATAOBJECT['CONFIG']['debug'])) {
                 $this->debug($result->toString(), "Query Error",1 );
             }
+            $this->N = false;
             return $this->raiseError($result);
         }
-        // Strip any prepended comments
+
+        // CRM-18093 starts.
+        // CRM-20445 starts Strip any prepended comments
         $queryString = (substr($string, 0, 2) === '/*') ? substr($string, strpos($string, '*/') + 2) : $string;
         $action = strtolower(substr(trim($queryString),0,6));
+        // CRM-20445 ends
 
         if (!empty($_DB_DATAOBJECT['CONFIG']['debug']) || defined('CIVICRM_DEBUG_LOG_QUERY')) {
           $timeTaken = sprintf("%0.6f", microtime(TRUE) - $time);
           $alertLevel = $this->getAlertLevel($timeTaken);
-
           $message = "$alertLevel QUERY DONE IN $timeTaken  seconds.";
-          if (in_array($action, array('insert', 'update', 'delete')) && $_DB_driver == 'DB') {
+          if (in_array($action, ['insert', 'update', 'delete']) && $_DB_driver === 'DB') {
             $message .= " " . $DB->affectedRows() . " row(s)s subject to $action action";
           }
           elseif (is_a($result, 'DB_result') && method_exists($result, 'numrows')) {
@@ -2497,6 +2776,7 @@ class DB_DataObject extends DB_DataObject_Overload
             $this->debug($message, 'query', 1);
           }
         }
+      // CRM-18093 ends.
 
         switch ($action) {
             case 'insert':
@@ -2510,10 +2790,7 @@ class DB_DataObject extends DB_DataObject_Overload
         }
         if (is_object($result)) {
             // lets hope that copying the result object is OK!
-            // fix notices in unit test.
-            if ( !CRM_Utils_Array::value( 'RESULTSEQ', $GLOBALS['_DB_DATAOBJECT'] ) ) {
-                $GLOBALS['_DB_DATAOBJECT']['RESULTSEQ'] = 1;
-            }
+
             $_DB_resultid  = $GLOBALS['_DB_DATAOBJECT']['RESULTSEQ']++;
             $_DB_DATAOBJECT['RESULTS'][$_DB_resultid] = $result;
             $this->_DB_resultid = $_DB_resultid;
@@ -2522,14 +2799,17 @@ class DB_DataObject extends DB_DataObject_Overload
         if (!empty($_DB_DATAOBJECT['CONFIG']['debug'])) {
             $this->debug(serialize($result), 'RESULT',5);
         }
-        if (method_exists($result, 'numrows')) {
+        if (method_exists($result, 'numRows')) {
             if ($_DB_driver == 'DB') {
                 $DB->expectError(DB_ERROR_UNSUPPORTED);
             } else {
                 $DB->expectError(MDB2_ERROR_UNSUPPORTED);
             }
-            $this->N = $result->numrows();
-            if (is_a($this->N,'PEAR_Error')) {
+
+            $this->N = $result->numRows();
+            //var_dump($this->N);
+
+            if (is_object($this->N) && is_a($this->N,'PEAR_Error')) {
                 $this->N = true;
             }
             $DB->popExpect();
@@ -2549,7 +2829,7 @@ class DB_DataObject extends DB_DataObject_Overload
     {
         global $_DB_DATAOBJECT;
         $this->_connect();
-        $DB = &$_DB_DATAOBJECT['CONNECTIONS'][$this->_database_dsn_md5];
+        $DB = $_DB_DATAOBJECT['CONNECTIONS'][$this->_database_dsn_md5];
 
         $quoteIdentifiers  = !empty($_DB_DATAOBJECT['CONFIG']['quote_identifiers']);
         $options = $_DB_DATAOBJECT['CONFIG'];
@@ -2560,6 +2840,7 @@ class DB_DataObject extends DB_DataObject_Overload
             $this->_query= $x->_query;
         }
 
+
         foreach($keys as $k => $v) {
             // index keys is an indexed array
             /* these filter checks are a bit suspicious..
@@ -2580,13 +2861,12 @@ class DB_DataObject extends DB_DataObject_Overload
             }
 
             $kSql = $quoteIdentifiers
-                ? ( $DB->quoteIdentifier($this->__table) . '.' . $DB->quoteIdentifier($k) )
-                : "{$this->__table}.{$k}";
-
+                ? ( $DB->quoteIdentifier($this->tableName()) . '.' . $DB->quoteIdentifier($k) )
+                : "{$this->tableName()}.{$k}";
 
 
             /***
-            if (is_a($this->$k,'DB_DataObject_Cast')) {
+            if (is_object($this->$k) && is_a($this->$k,'DB_DataObject_Cast')) {
                 $dbtype = $DB->dsn["phptype"];
                 $value = $this->$k->toString($v,$DB);
                 if (PEAR::isError($value)) {
@@ -2602,7 +2882,7 @@ class DB_DataObject extends DB_DataObject_Overload
             }
             ***/
 
-            if (!isset($options['disable_null_strings']) && is_string($this->$k) && (strtolower($this->$k) === 'null') && $this->$k !== 'Null' && !($v & DB_DATAOBJECT_NOTNULL)) {
+            if (!($v & DB_DATAOBJECT_NOTNULL) && DB_DataObject::_is_null($this,$k)) {
                 $this->whereAdd(" $kSql  IS NULL");
                 continue;
             }
@@ -2628,28 +2908,6 @@ class DB_DataObject extends DB_DataObject_Overload
         }
     }
 
-    /**
-     * autoload Class relating to a table
-     * (depreciated - use ::factory)
-     *
-     * @param  string  $table  table
-     * @access private
-     * @return string classname on Success
-     */
-    function staticAutoloadTable($table)
-    {
-        global $_DB_DATAOBJECT;
-        if (empty($_DB_DATAOBJECT['CONFIG'])) {
-            DB_DataObject::_loadConfig();
-        }
-        $p = isset($_DB_DATAOBJECT['CONFIG']['class_prefix']) ?
-            $_DB_DATAOBJECT['CONFIG']['class_prefix'] : '';
-        $class = $p . preg_replace('/[^A-Z0-9]/i','_',ucfirst($table));
-
-        $ce = substr(phpversion(),0,1) > 4 ? class_exists($class,false) : class_exists($class);
-        $class = $ce ? $class  : DB_DataObject::_autoloadClass($class);
-        return $class;
-    }
 
 
      /**
@@ -2673,7 +2931,8 @@ class DB_DataObject extends DB_DataObject_Overload
 
 
 
-    function factory($table = '') {
+    function factory($table = '')
+    {
         global $_DB_DATAOBJECT;
 
 
@@ -2690,16 +2949,17 @@ class DB_DataObject extends DB_DataObject_Overload
         }
         // no configuration available for database
         if (!empty($database) && empty($_DB_DATAOBJECT['CONFIG']['database_'.$database])) {
-                return DB_DataObject::raiseError(
+                $do = new DB_DataObject();
+                $do->raiseError(
                     "unable to find database_{$database} in Configuration, It is required for factory with database"
                     , 0, PEAR_ERROR_DIE );
        }
 
 
-
+        /*
         if ($table === '') {
-            if (is_a($this,'DB_DataObject') && strlen($this->__table)) {
-                $table = $this->__table;
+            if (is_a($this,'DB_DataObject') && strlen($this->tableName())) {
+                $table = $this->tableName();
             } else {
                 return DB_DataObject::raiseError(
                     "factory did not recieve a table name",
@@ -2707,16 +2967,34 @@ class DB_DataObject extends DB_DataObject_Overload
             }
         }
 
+        */
         // does this need multi db support??
-        $p = isset($_DB_DATAOBJECT['CONFIG']['class_prefix']) ?
-            $_DB_DATAOBJECT['CONFIG']['class_prefix'] : '';
-        $class = $p . preg_replace('/[^A-Z0-9]/i','_',ucfirst($table));
-        $ce = substr(phpversion(),0,1) > 4 ? class_exists($class,false) : class_exists($class);
+        $cp = isset($_DB_DATAOBJECT['CONFIG']['class_prefix']) ?
+            explode(PATH_SEPARATOR, $_DB_DATAOBJECT['CONFIG']['class_prefix']) : '';
+
+        //print_r($cp);
+
+        // multiprefix support.
+        $tbl = preg_replace('/[^A-Z0-9]/i','_',ucfirst($table));
+        if (is_array($cp)) {
+            $class = array();
+            foreach($cp as $cpr) {
+                $ce = substr(phpversion(),0,1) > 4 ? class_exists($cpr . $tbl,false) : class_exists($cpr . $tbl);
+                if ($ce) {
+                    $class = $cpr . $tbl;
+                    break;
+                }
+                $class[] = $cpr . $tbl;
+            }
+        } else {
+            $class = $tbl;
+            $ce = substr(phpversion(),0,1) > 4 ? class_exists($class,false) : class_exists($class);
+        }
 
-        $class = $ce ? $class  : DB_DataObject::_autoloadClass($class);
 
+        $rclass = $ce ? $class  : DB_DataObject::_autoloadClass($class, $table);
         // proxy = full|light
-        if (!$class && isset($_DB_DATAOBJECT['CONFIG']['proxy'])) {
+        if (!$rclass && isset($_DB_DATAOBJECT['CONFIG']['proxy'])) {
 
             DB_DataObject::debug("FAILED TO Autoload  $database.$table - using proxy.","FACTORY",1);
 
@@ -2729,7 +3007,9 @@ class DB_DataObject extends DB_DataObject_Overload
             $d = new DB_DataObject;
 
             $d->__table = $table;
-            if (is_a($ret = $d->_connect(), 'PEAR_Error')) {
+
+            $ret = $d->_connect();
+            if (is_object($ret) && is_a($ret, 'PEAR_Error')) {
                 return $ret;
             }
 
@@ -2737,12 +3017,17 @@ class DB_DataObject extends DB_DataObject_Overload
             return $x->$proxyMethod( $d->_database, $table);
         }
 
-        if (!$class) {
-            return DB_DataObject::raiseError(
-                "factory could not find class $class from $table",
+        if (!$rclass || !class_exists($rclass)) {
+            $dor = new DB_DataObject();
+            return $dor->raiseError(
+                "factory could not find class " .
+                (is_array($class) ? implode(PATH_SEPARATOR, $class)  : $class  ).
+                "from $table",
                 DB_DATAOBJECT_ERROR_INVALIDCONFIG);
         }
-        $ret = new $class;
+
+        $ret = new $rclass();
+
         if (!empty($database)) {
             DB_DataObject::debug("Setting database to $database","FACTORY",1);
             $ret->database($database);
@@ -2752,11 +3037,12 @@ class DB_DataObject extends DB_DataObject_Overload
     /**
      * autoload Class
      *
-     * @param  string  $class  Class
+     * @param  string|array  $class  Class
+     * @param  string  $table  Table trying to load.
      * @access private
      * @return string classname on Success
      */
-    function _autoloadClass($class)
+    function _autoloadClass($class, $table=false)
     {
         global $_DB_DATAOBJECT;
 
@@ -2766,32 +3052,63 @@ class DB_DataObject extends DB_DataObject_Overload
         $class_prefix = empty($_DB_DATAOBJECT['CONFIG']['class_prefix']) ?
                 '' : $_DB_DATAOBJECT['CONFIG']['class_prefix'];
 
-        $table   = substr($class,strlen($class_prefix));
+        $table   = $table ? $table : substr($class,strlen($class_prefix));
 
         // only include the file if it exists - and barf badly if it has parse errors :)
         if (!empty($_DB_DATAOBJECT['CONFIG']['proxy']) || empty($_DB_DATAOBJECT['CONFIG']['class_location'])) {
             return false;
         }
+        // support for:
+        // class_location = mydir/ => maps to mydir/Tablename.php
+        // class_location = mydir/myfile_%s.php => maps to mydir/myfile_Tablename
+        // with directory sepr
+        // class_location = mydir/:mydir2/: => tries all of thes locations.
+        $cl = $_DB_DATAOBJECT['CONFIG']['class_location'];
 
 
-        if (strpos($_DB_DATAOBJECT['CONFIG']['class_location'],'%s') !== false) {
-            $file = sprintf($_DB_DATAOBJECT['CONFIG']['class_location'], preg_replace('/[^A-Z0-9]/i','_',ucfirst($table)));
-        } else {
-            $file = $_DB_DATAOBJECT['CONFIG']['class_location'].'/'.preg_replace('/[^A-Z0-9]/i','_',ucfirst($table)).".php";
+        switch (true) {
+            case (strpos($cl ,'%s') !== false):
+                $file = sprintf($cl , preg_replace('/[^A-Z0-9]/i','_',ucfirst($table)));
+                break;
+
+            case (strpos($cl , PATH_SEPARATOR) !== false):
+                $file = array();
+                foreach(explode(PATH_SEPARATOR, $cl ) as $p) {
+                    $file[] =  $p .'/'.preg_replace('/[^A-Z0-9]/i','_',ucfirst($table)).".php";
+                }
+                break;
+            default:
+                $file = $cl .'/'.preg_replace('/[^A-Z0-9]/i','_',ucfirst($table)).".php";
+                break;
         }
 
-        if (!file_exists($file)) {
+        $cls = is_array($class) ? $class : array($class);
+
+        if (is_array($file) || !file_exists($file)) {
             $found = false;
-            foreach(explode(PATH_SEPARATOR, ini_get('include_path')) as $p) {
-                if (file_exists("$p/$file")) {
-                    $file = "$p/$file";
-                    $found = true;
+
+            $file = is_array($file) ? $file : array($file);
+            $search = implode(PATH_SEPARATOR, $file);
+            foreach($file as $f) {
+                foreach(explode(PATH_SEPARATOR, '' . PATH_SEPARATOR . ini_get('include_path')) as $p) {
+                    $ff = empty($p) ? $f : "$p/$f";
+
+                    if (file_exists($ff)) {
+                        $file = $ff;
+                        $found = true;
+                        break;
+                    }
+                }
+                if ($found) {
                     break;
                 }
             }
             if (!$found) {
-                DB_DataObject::raiseError(
-                    "autoload:Could not find class {$class} using class_location value",
+                $dor = new DB_DataObject();
+                $dor->raiseError(
+                    "autoload:Could not find class " . implode(',', $cls) .
+                    " using class_location value :" . $search .
+                    " using include_path value :" . ini_get('include_path'),
                     DB_DATAOBJECT_ERROR_INVALIDCONFIG);
                 return false;
             }
@@ -2800,11 +3117,18 @@ class DB_DataObject extends DB_DataObject_Overload
         include_once $file;
 
 
-        $ce = substr(phpversion(),0,1) > 4 ? class_exists($class,false) : class_exists($class);
-
+        $ce = false;
+        foreach($cls as $c) {
+            $ce = substr(phpversion(),0,1) > 4 ? class_exists($c,false) : class_exists($c);
+            if ($ce) {
+                $class = $c;
+                break;
+            }
+        }
         if (!$ce) {
-            DB_DataObject::raiseError(
-                "autoload:Could not autoload {$class}",
+            $dor = new DB_DataObject();
+            $dor->raiseError(
+                "autoload:Could not autoload " . implode(',', $cls) ,
                 DB_DATAOBJECT_ERROR_INVALIDCONFIG);
             return false;
         }
@@ -2830,11 +3154,14 @@ class DB_DataObject extends DB_DataObject_Overload
     * Should look a bit like
     *       [local_col_name] => "related_tablename:related_col_name"
     *
+    * @param    array $new_links optional - force update of the links for this table
+    *               You probably want to restore it to it's original state after,
+    *               as modifying here does it for the whole PHP request.
     *
     * @return   array|null
     *           array       = if there are links defined for this table.
     *           empty array - if there is a links.ini file, but no links on this table
-    *           null        - if no links.ini exists for this database (hence try auto_links).
+    *           false       - if no links.ini exists for this database (hence try auto_links).
     * @access   public
     * @see      DB_DataObject::getLinks(), DB_DataObject::getLink()
     */
@@ -2848,237 +3175,190 @@ class DB_DataObject extends DB_DataObject_Overload
         // have to connect.. -> otherwise things break later.
         $this->_connect();
 
-        if (isset($_DB_DATAOBJECT['LINKS'][$this->_database][$this->__table])) {
-            return $_DB_DATAOBJECT['LINKS'][$this->_database][$this->__table];
+        // alias for shorter code..
+        $lcfg  = &$_DB_DATAOBJECT['LINKS'];
+        $cfg   =  $_DB_DATAOBJECT['CONFIG'];
+
+        if ($args = func_get_args()) {
+            // an associative array was specified, that updates the current
+            // schema... - be careful doing this
+            if (empty( $lcfg[$this->_database])) {
+                $lcfg[$this->_database] = array();
+            }
+            $lcfg[$this->_database][$this->tableName()] = $args[0];
+
+        }
+        // loaded and available.
+        if (isset($lcfg[$this->_database][$this->tableName()])) {
+            return $lcfg[$this->_database][$this->tableName()];
         }
 
+        // loaded
+        if (isset($lcfg[$this->_database])) {
+            // either no file, or empty..
+            return $lcfg[$this->_database] === false ? null : array();
+        }
 
+        // links are same place as schema by default.
+        $schemas = isset($cfg['schema_location']) ?
+            array("{$cfg['schema_location']}/{$this->_database}.ini") :
+            array() ;
 
+        // if ini_* is set look there instead.
+        // and support multiple locations.
+        if (isset($cfg["ini_{$this->_database}"])) {
+            $schemas = is_array($cfg["ini_{$this->_database}"]) ?
+                $cfg["ini_{$this->_database}"] :
+                explode(PATH_SEPARATOR,$cfg["ini_{$this->_database}"]);
+        }
 
+        // default to not available.
+        $lcfg[$this->_database] = false;
 
-        // attempt to load links file here..
+        foreach ($schemas as $ini) {
 
-        if (!isset($_DB_DATAOBJECT['LINKS'][$this->_database])) {
-            $schemas = isset($_DB_DATAOBJECT['CONFIG']['schema_location']) ?
-                array("{$_DB_DATAOBJECT['CONFIG']['schema_location']}/{$this->_database}.ini") :
-                array() ;
+            $links = isset($cfg["links_{$this->_database}"]) ?
+                    $cfg["links_{$this->_database}"] :
+                    str_replace('.ini','.links.ini',$ini);
 
-            if (isset($_DB_DATAOBJECT['CONFIG']["ini_{$this->_database}"])) {
-                $schemas = is_array($_DB_DATAOBJECT['CONFIG']["ini_{$this->_database}"]) ?
-                    $_DB_DATAOBJECT['CONFIG']["ini_{$this->_database}"] :
-                    explode(PATH_SEPARATOR,$_DB_DATAOBJECT['CONFIG']["ini_{$this->_database}"]);
+            // file really exists..
+            if (!file_exists($links) || !is_file($links)) {
+                if (!empty($cfg['debug'])) {
+                    $this->debug("Missing links.ini file: $links","links",1);
+                }
+                continue;
             }
 
+            // set to empty array - as we have at least one file now..
+            $lcfg[$this->_database] = empty($lcfg[$this->_database]) ? array() : $lcfg[$this->_database];
 
+            // merge schema file into lcfg..
+            $lcfg[$this->_database] = array_merge(
+                $lcfg[$this->_database],
+                parse_ini_file($links, true)
+            );
 
-            foreach ($schemas as $ini) {
 
-                $links =
-                    isset($_DB_DATAOBJECT['CONFIG']["links_{$this->_database}"]) ?
-                        $_DB_DATAOBJECT['CONFIG']["links_{$this->_database}"] :
-                        str_replace('.ini','.links.ini',$ini);
+            if (!empty($cfg['debug'])) {
+                $this->debug("Loaded links.ini file: $links","links",1);
+            }
 
-                if (empty($_DB_DATAOBJECT['LINKS'][$this->_database]) && file_exists($links) && is_file($links)) {
-                    /* not sure why $links = ... here  - TODO check if that works */
-                    $_DB_DATAOBJECT['LINKS'][$this->_database] = parse_ini_file($links, true);
-                    if (!empty($_DB_DATAOBJECT['CONFIG']['debug'])) {
-                        $this->debug("Loaded links.ini file: $links","links",1);
-                    }
-                } else {
-                    if (!empty($_DB_DATAOBJECT['CONFIG']['debug'])) {
-                        $this->debug("Missing links.ini file: $links","links",1);
-                    }
+        }
+
+        if (!empty($_DB_DATAOBJECT['CONFIG']['portability']) && $_DB_DATAOBJECT['CONFIG']['portability'] & 1) {
+            foreach($lcfg[$this->_database] as $k=>$v) {
+
+                $nk = strtolower($k);
+                // results in duplicate cols.. but not a big issue..
+                $lcfg[$this->_database][$nk] = isset($lcfg[$this->_database][$nk])
+                    ? $lcfg[$this->_database][$nk]  : array();
+
+                foreach($v as $kk =>$vv) {
+                    //var_Dump($vv);exit;
+                    $vv =explode(':', $vv);
+                    $vv[0] = strtolower($vv[0]);
+                    $lcfg[$this->_database][$nk][$kk] = implode(':', $vv);
                 }
+
+
             }
         }
-
+        //echo '<PRE>';print_r($lcfg);exit;
 
         // if there is no link data at all on the file!
         // we return null.
-        if (!isset($_DB_DATAOBJECT['LINKS'][$this->_database])) {
+        if ($lcfg[$this->_database] === false) {
             return null;
         }
 
-        if (isset($_DB_DATAOBJECT['LINKS'][$this->_database][$this->__table])) {
-            return $_DB_DATAOBJECT['LINKS'][$this->_database][$this->__table];
+        if (isset($lcfg[$this->_database][$this->tableName()])) {
+            return $lcfg[$this->_database][$this->tableName()];
         }
 
         return array();
     }
+
+
     /**
-     * load related objects
+     * generic getter/setter for links
      *
-     * There are two ways to use this, one is to set up a <dbname>.links.ini file
-     * into a static property named <dbname>.links and specifies the table joins,
-     * the other highly dependent on naming columns 'correctly' :)
-     * using colname = xxxxx_yyyyyy
-     * xxxxxx = related table; (yyyyy = user defined..)
-     * looks up table xxxxx, for value id=$this->xxxxx
-     * stores it in $this->_xxxxx_yyyyy
-     * you can change what object vars the links are stored in by
-     * changeing the format parameter
+     * This is the new 'recommended' way to get get/set linked objects.
+     * must be used with links.ini
      *
+     * usage:
+     *  get:
+     *  $obj = $do->link('company_id');
+     *  $obj = $do->link(array('local_col', 'linktable:linked_col'));
      *
-     * @param  string format (default _%s) where %s is the table name.
-     * @author Tim White <tim@cyface.com>
+     *  set:
+     *  $do->link('company_id',0);
+     *  $do->link('company_id',$obj);
+     *  $do->link('company_id', array($obj));
+     *
+     *  example function
+     *
+     *  function company() {
+     *     $this->link(array('company_id','company:id'), func_get_args());
+     *   }
+     *
+     *
+     *
+     * @param  mixed $link_spec              link specification (normally a string)
+     *                                       uses similar rules to  joinAdd() array argument.
+     * @param  mixed $set_value (optional)   int, DataObject, or array('set')
+     * @author Alan Knowles
      * @access public
-     * @return boolean , true on success
+     * @return mixed true or false on setting, object on getting
      */
-    function getLinks($format = '_%s')
+    function link($field, $set_args = array())
     {
+        require_once 'DB/DataObject/Links.php';
+        $l = new DB_DataObject_Links($this);
+        return  $l->link($field,$set_args) ;
 
-        // get table will load the options.
-        if ($this->_link_loaded) {
-            return true;
-        }
-        $this->_link_loaded = false;
-        $cols  = $this->table();
-        $links = $this->links();
-
-        $loaded = array();
-
-        if ($links) {
-            foreach($links as $key => $match) {
-                list($table,$link) = explode(':', $match);
-                $k = sprintf($format, str_replace('.', '_', $key));
-                // makes sure that '.' is the end of the key;
-                if ($p = strpos($key,'.')) {
-                      $key = substr($key, 0, $p);
-                }
-
-                $this->$k = $this->getLink($key, $table, $link);
-
-                if (is_object($this->$k)) {
-                    $loaded[] = $k;
-                }
-            }
-            $this->_link_loaded = $loaded;
-            return true;
-        }
-        // this is the autonaming stuff..
-        // it sends the column name down to getLink and lets that sort it out..
-        // if there is a links file then it is not used!
-        // IT IS DEPRECIATED!!!! - USE
-        if (!is_null($links)) {
-            return false;
-        }
-
-
-        foreach (array_keys($cols) as $key) {
-            if (!($p = strpos($key, '_'))) {
-                continue;
-            }
-            // does the table exist.
-            $k =sprintf($format, $key);
-            $this->$k = $this->getLink($key);
-            if (is_object($this->$k)) {
-                $loaded[] = $k;
-            }
-        }
-        $this->_link_loaded = $loaded;
-        return true;
     }
 
-    /**
-     * return name from related object
-     *
-     * There are two ways to use this, one is to set up a <dbname>.links.ini file
-     * into a static property named <dbname>.links and specifies the table joins,
-     * the other is highly dependant on naming columns 'correctly' :)
+      /**
+     * load related objects
      *
-     * NOTE: the naming convention is depreciated!!! - use links.ini
+     * Generally not recommended to use this.
+     * The generator should support creating getter_setter methods which are better suited.
      *
-     * using colname = xxxxx_yyyyyy
-     * xxxxxx = related table; (yyyyy = user defined..)
-     * looks up table xxxxx, for value id=$this->xxxxx
-     * stores it in $this->_xxxxx_yyyyy
+     * Relies on  <dbname>.links.ini
      *
-     * you can also use $this->getLink('thisColumnName','otherTable','otherTableColumnName')
+     * Sets properties on the calling dataobject  you can change what
+     * object vars the links are stored in by  changeing the format parameter
      *
      *
-     * @param string $row    either row or row.xxxxx
-     * @param string $table  name of table to look up value in
-     * @param string $link   name of column in other table to match
+     * @param  string format (default _%s) where %s is the table name.
      * @author Tim White <tim@cyface.com>
      * @access public
-     * @return mixed object on success
+     * @return boolean , true on success
      */
-    function getLink($row, $table = null, $link = false)
+    function getLinks($format = '_%s')
     {
+        require_once 'DB/DataObject/Links.php';
+         $l = new DB_DataObject_Links($this);
+        return $l->applyLinks($format);
 
+    }
 
-        // GUESS THE LINKED TABLE.. (if found - recursevly call self)
-
-        if ($table === null) {
-            $links = $this->links();
-
-            if (is_array($links)) {
-
-                if ($links[$row]) {
-                    list($table,$link) = explode(':', $links[$row]);
-                    if ($p = strpos($row,".")) {
-                        $row = substr($row,0,$p);
-                    }
-                    return $this->getLink($row,$table,$link);
-
-                }
-
-                $this->raiseError(
-                    "getLink: $row is not defined as a link (normally this is ok)",
-                    DB_DATAOBJECT_ERROR_NODATA);
-
-                $r = false;
-                return $r;// technically a possible error condition?
-
-            }
-            // use the old _ method - this shouldnt happen if called via getLinks()
-            if (!($p = strpos($row, '_'))) {
-                $r = null;
-                return $r;
-            }
-            $table = substr($row, 0, $p);
-            return $this->getLink($row, $table);
-
-
-        }
-
-
-
-        if (!isset($this->$row)) {
-            $this->raiseError("getLink: row not set $row", DB_DATAOBJECT_ERROR_NODATA);
-            return false;
-        }
-
-        // check to see if we know anything about this table..
-
-        $obj = $this->factory($table);
-
-        if (!is_a($obj,'DB_DataObject')) {
-            $this->raiseError(
-                "getLink:Could not find class for row $row, table $table",
-                DB_DATAOBJECT_ERROR_INVALIDCONFIG);
-            return false;
-        }
-        if ($link) {
-            if ($obj->get($link, $this->$row)) {
-                $obj->free();
-                return $obj;
-            }
-            return  false;
-        }
+    /**
+     * deprecited : @use link()
+     */
+    function getLink($row, $table = null, $link = false)
+    {
+        require_once 'DB/DataObject/Links.php';
+        $l = new DB_DataObject_Links($this);
+        return $l->getLink($row, $table === null ? false: $table, $link);
 
-        if ($obj->get($this->$row)) {
-            $obj->free();
-            return $obj;
-        }
-        return false;
 
     }
 
     /**
-     * IS THIS SUPPORTED/USED ANYMORE????
-     *return a list of options for a linked table
-     *
+     * getLinkArray
+     * Fetch an array of related objects. This should be used in conjunction with a <dbname>.links.ini file configuration (see the introduction on linking for details on this).
+     * You may also use this with all parameters to specify, the column and related table.
      * This is highly dependant on naming columns 'correctly' :)
      * using colname = xxxxx_yyyyyy
      * xxxxxx = related table; (yyyyy = user defined..)
@@ -3086,51 +3366,70 @@ class DB_DataObject extends DB_DataObject_Overload
      * stores it in $this->_xxxxx_yyyyy
      *
      * @access public
-     * @return array of results (empty array on failure)
+     * @param string $column - either column or column.xxxxx
+     * @param string $table - name of table to look up value in
+     * @return array - array of results (empty array on failure)
+     *
+     * Example - Getting the related objects
+     *
+     * $person = new DataObjects_Person;
+     * $person->get(12);
+     * $children = $person->getLinkArray('children');
+     *
+     * echo 'There are ', count($children), ' descendant(s):<br />';
+     * foreach ($children as $child) {
+     *     echo $child->name, '<br />';
+     * }
+     *
      */
-    function &getLinkArray($row, $table = null)
+    function getLinkArray($row, $table = null)
     {
+        require_once 'DB/DataObject/Links.php';
+        $l = new DB_DataObject_Links($this);
+        return $l->getLinkArray($row, $table === null ? false: $table);
 
-        $ret = array();
-        if (!$table) {
-            $links = $this->links();
-
-            if (is_array($links)) {
-                if (!isset($links[$row])) {
-                    // failed..
-                    return $ret;
-                }
-                list($table,$link) = explode(':',$links[$row]);
-            } else {
-                if (!($p = strpos($row,'_'))) {
-                    return $ret;
-                }
-                $table = substr($row,0,$p);
-            }
-        }
+    }
 
-        $c  = $this->factory($table);
+     /**
+     * unionAdd - adds another dataobject to this, building a unioned query.
+     *
+     * usage:
+     * $doTable1 = DB_DataObject::factory("table1");
+     * $doTable2 = DB_DataObject::factory("table2");
+     *
+     * $doTable1->selectAdd();
+     * $doTable1->selectAdd("col1,col2");
+     * $doTable1->whereAdd("col1 > 100");
+     * $doTable1->orderBy("col1");
+     *
+     * $doTable2->selectAdd();
+     * $doTable2->selectAdd("col1, col2");
+     * $doTable2->whereAdd("col2 = 'v'");
+     *
+     * $doTable1->unionAdd($doTable2);
+     * $doTable1->find();
+      *
+     * Note: this model may be a better way to implement joinAdd?, eg. do the building in find?
+     *
+     *
+     * @param             $obj       object|false the union object or false to reset
+     * @param    optional $is_all    string 'ALL' to do all.
+     * @returns           $obj       object|array the added object, or old list if reset.
+     */
 
-        if (!is_a($c,'DB_DataObject')) {
-            $this->raiseError(
-                "getLinkArray:Could not find class for row $row, table $table",
-                DB_DATAOBJECT_ERROR_INVALIDCONFIG
-            );
+    function unionAdd($obj,$is_all= '')
+    {
+        if ($obj === false) {
+            $ret = $this->_query['unions'];
+            $this->_query['unions'] = array();
             return $ret;
         }
-
-        // if the user defined method list exists - use it...
-        if (method_exists($c, 'listFind')) {
-            $c->listFind($this->id);
-        } else {
-            $c->find();
-        }
-        while ($c->fetch()) {
-            $ret[] = $c;
-        }
-        return $ret;
+        $this->_query['unions'][] = array($obj, 'UNION ' . $is_all . ' ') ;
+        return $obj;
     }
 
+
+
     /**
      * The JOIN condition
      *
@@ -3168,9 +3467,10 @@ class DB_DataObject extends DB_DataObject_Overload
      * @param    optional $obj       object |array    the joining object (no value resets the join)
      *                                          If you use an array here it should be in the format:
      *                                          array('local_column','remotetable:remote_column');
-     *                                          if remotetable does not have a definition, you should
-     *                                          use @ to hide the include error message..
-     *
+     *                                             if remotetable does not have a definition, you should
+     *                                             use @ to hide the include error message..
+     *                                          array('local_column',  $dataobject , 'remote_column');
+     *                                             if array has 3 args, then second is assumed to be the linked dataobject.
      *
      * @param    optional $joinType  string | array
      *                                          'LEFT'|'INNER'|'RIGHT'|'' Inner is default, '' indicates
@@ -3230,14 +3530,21 @@ class DB_DataObject extends DB_DataObject_Overload
         $toTable = false;
         if (is_array($obj)) {
             $tfield = $obj[0];
-            list($toTable,$ofield) = explode(':',$obj[1]);
-            $obj = DB_DataObject::factory($toTable);
 
-            if (!$obj || is_a($obj,'PEAR_Error')) {
-                $obj = new DB_DataObject;
-                $obj->__table = $toTable;
+            if (count($obj) == 3) {
+                $ofield = $obj[2];
+                $obj = $obj[1];
+            } else {
+                list($toTable,$ofield) = explode(':',$obj[1]);
+
+                $obj = is_string($toTable) ? DB_DataObject::factory($toTable) : $toTable;
+
+                if (!$obj || !is_object($obj) || is_a($obj,'PEAR_Error')) {
+                    $obj = new DB_DataObject;
+                    $obj->__table = $toTable;
+                }
+                $obj->_connect();
             }
-            $obj->_connect();
             // set the table items to nothing.. - eg. do not try and match
             // things in the child table...???
             $items = array();
@@ -3248,7 +3555,7 @@ class DB_DataObject extends DB_DataObject_Overload
         }
         /*  make sure $this->_database is set.  */
         $this->_connect();
-        $DB = &$_DB_DATAOBJECT['CONNECTIONS'][$this->_database_dsn_md5];
+        $DB = $_DB_DATAOBJECT['CONNECTIONS'][$this->_database_dsn_md5];
 
 
         /// CHANGED 26 JUN 2009 - we prefer links from our local table over the remote one.
@@ -3256,31 +3563,46 @@ class DB_DataObject extends DB_DataObject_Overload
         /* otherwise see if there are any links from this table to the obj. */
         //print_r($this->links());
         if (($ofield === false) && ($links = $this->links())) {
-            foreach ($links as $k => $v) {
-                /* link contains {this column} = {linked table}:{linked column} */
-                $ar = explode(':', $v);
-                // Feature Request #4266 - Allow joins with multiple keys
-                if (strpos($k, ',') !== false) {
-                    $k = explode(',', $k);
-                }
-                if (strpos($ar[1], ',') !== false) {
-                    $ar[1] = explode(',', $ar[1]);
+            // this enables for support for arrays of links in ini file.
+            // link contains this_column[] =  linked_table:linked_column
+            // or standard way.
+            // link contains this_column =  linked_table:linked_column
+            foreach ($links as $k => $linkVar) {
+
+                if (!is_array($linkVar)) {
+                    $linkVar  = array($linkVar);
                 }
+                foreach($linkVar as $v) {
+
 
-                if ($ar[0] == $obj->__table) {
+
+                    /* link contains {this column} = {linked table}:{linked column} */
+                    $ar = explode(':', $v);
+                    // Feature Request #4266 - Allow joins with multiple keys
+                    if (strpos($k, ',') !== false) {
+                        $k = explode(',', $k);
+                    }
+                    if (strpos($ar[1], ',') !== false) {
+                        $ar[1] = explode(',', $ar[1]);
+                    }
+
+                    if ($ar[0] != $obj->tableName()) {
+                        continue;
+                    }
                     if ($joinCol !== false) {
                         if ($k == $joinCol) {
+                            // got it!?
                             $tfield = $k;
                             $ofield = $ar[1];
                             break;
-                        } else {
-                            continue;
                         }
-                    } else {
-                        $tfield = $k;
-                        $ofield = $ar[1];
-                        break;
+                        continue;
+
                     }
+                    $tfield = $k;
+                    $ofield = $ar[1];
+                    break;
+
                 }
             }
         }
@@ -3288,23 +3610,30 @@ class DB_DataObject extends DB_DataObject_Overload
         //print_r($obj->links());
         if (!$ofield && ($olinks = $obj->links())) {
 
-            foreach ($olinks as $k => $v) {
-                /* link contains {this column} = {linked table}:{linked column} */
-                $ar = explode(':', $v);
+            foreach ($olinks as $k => $linkVar) {
+                /* link contains {this column} = array ( {linked table}:{linked column} )*/
+                if (!is_array($linkVar)) {
+                    $linkVar  = array($linkVar);
+                }
+                foreach($linkVar as $v) {
 
-                // Feature Request #4266 - Allow joins with multiple keys
+                    /* link contains {this column} = {linked table}:{linked column} */
+                    $ar = explode(':', $v);
 
-                $links_key_array = strpos($k,',');
-                if ($links_key_array !== false) {
-                    $k = explode(',', $k);
-                }
+                    // Feature Request #4266 - Allow joins with multiple keys
+                    $links_key_array = strpos($k,',');
+                    if ($links_key_array !== false) {
+                        $k = explode(',', $k);
+                    }
 
-                $ar_array = strpos($ar[1],',');
-                if ($ar_array !== false) {
-                    $ar[1] = explode(',', $ar[1]);
-                }
+                    $ar_array = strpos($ar[1],',');
+                    if ($ar_array !== false) {
+                        $ar[1] = explode(',', $ar[1]);
+                    }
 
-                if ($ar[0] == $this->__table) {
+                    if ($ar[0] != $this->tableName()) {
+                        continue;
+                    }
 
                     // you have explictly specified the column
                     // and the col is listed here..
@@ -3313,7 +3642,7 @@ class DB_DataObject extends DB_DataObject_Overload
                     if ($joinCol !== false) {
                         $this->raiseError(
                             "joinAdd: You cannot target a join column in the " .
-                            "'link from' table ({$obj->__table}). " .
+                            "'link from' table ({$obj->tableName()}). " .
                             "Either remove the fourth argument to joinAdd() ".
                             "({$joinCol}), or alter your links.ini file.",
                             DB_DATAOBJECT_ERROR_NODATA);
@@ -3323,6 +3652,7 @@ class DB_DataObject extends DB_DataObject_Overload
                     $ofield = $k;
                     $tfield = $ar[1];
                     break;
+
                 }
             }
         }
@@ -3338,7 +3668,7 @@ class DB_DataObject extends DB_DataObject_Overload
 
         if ($ofield === false) {
             $this->raiseError(
-                "joinAdd: {$obj->__table} has no link with {$this->__table}",
+                "joinAdd: {$obj->tableName()} has no link with {$this->tableName()}",
                 DB_DATAOBJECT_ERROR_NODATA);
             return false;
         }
@@ -3347,7 +3677,7 @@ class DB_DataObject extends DB_DataObject_Overload
         // we default to joining as the same name (this is remvoed later..)
 
         if ($joinAs === false) {
-            $joinAs = $obj->__table;
+            $joinAs = $obj->tableName();
         }
 
         $quoteIdentifiers = !empty($_DB_DATAOBJECT['CONFIG']['quote_identifiers']);
@@ -3355,8 +3685,8 @@ class DB_DataObject extends DB_DataObject_Overload
 
         // not sure  how portable adding database prefixes is..
         $objTable = $quoteIdentifiers ?
-                $DB->quoteIdentifier($obj->__table) :
-                 $obj->__table ;
+                $DB->quoteIdentifier($obj->tableName()) :
+                 $obj->tableName() ;
 
         $dbPrefix  = '';
         if (strlen($obj->_database) && in_array($DB->dsn['phptype'],array('mysql','mysqli'))) {
@@ -3395,18 +3725,27 @@ class DB_DataObject extends DB_DataObject_Overload
 
             if (!$items) {
                 $this->raiseError(
-                    "joinAdd: No table definition for {$obj->__table}",
+                    "joinAdd: No table definition for {$obj->tableName()}",
                     DB_DATAOBJECT_ERROR_INVALIDCONFIG);
                 return false;
             }
 
+            $ignore_null = !isset($options['disable_null_strings'])
+                    || !is_string($options['disable_null_strings'])
+                    || strtolower($options['disable_null_strings']) !== 'full' ;
+
+
             foreach($items as $k => $v) {
-                if (!isset($obj->$k)) {
+                if (!isset($obj->$k) && $ignore_null) {
                     continue;
                 }
 
                 $kSql = ($quoteIdentifiers ? $DB->quoteIdentifier($k) : $k);
 
+                if (DB_DataObject::_is_null($obj,$k)) {
+                	$obj->whereAdd("{$joinAs}.{$kSql} IS NULL");
+                	continue;
+                }
 
                 if ($v & DB_DATAOBJECT_STR) {
                     $obj->whereAdd("{$joinAs}.{$kSql} = " . $this->_quote((string) (
@@ -3423,19 +3762,14 @@ class DB_DataObject extends DB_DataObject_Overload
                     continue;
                 }
 
-                if (is_a($obj->$k,'DB_DataObject_Cast')) {
+                if (is_object($obj->$k) && is_a($obj->$k,'DB_DataObject_Cast')) {
                     $value = $obj->$k->toString($v,$DB);
                     if (PEAR::isError($value)) {
                         $this->raiseError($value->getMessage() ,DB_DATAOBJECT_ERROR_INVALIDARG);
                         return false;
                     }
-                    if (!isset($options['disable_null_strings']) && strtolower($value) === 'null' && $value !== 'Null' ) {
-                        $obj->whereAdd("{$joinAs}.{$kSql} IS NULL");
-                        continue;
-                    } else {
-                        $obj->whereAdd("{$joinAs}.{$kSql} = $value");
-                        continue;
-                    }
+                    $obj->whereAdd("{$joinAs}.{$kSql} = $value");
+                    continue;
                 }
 
 
@@ -3485,7 +3819,7 @@ class DB_DataObject extends DB_DataObject_Overload
 
 
 
-        $table = $this->__table;
+        $table = $this->tableName();
 
         if ($quoteIdentifiers) {
             $joinAs   = $DB->quoteIdentifier($joinAs);
@@ -3497,7 +3831,7 @@ class DB_DataObject extends DB_DataObject_Overload
 
 
         $fullJoinAs = '';
-        $addJoinAs  = ($quoteIdentifiers ? $DB->quoteIdentifier($obj->__table) : $obj->__table) != $joinAs;
+        $addJoinAs  = ($quoteIdentifiers ? $DB->quoteIdentifier($obj->tableName()) : $obj->tableName()) != $joinAs;
         if ($addJoinAs) {
             // join table a AS b - is only supported by a few databases and is probably not needed
             // , however since it makes the whole Statement alot clearer we are leaving it in
@@ -3518,18 +3852,18 @@ class DB_DataObject extends DB_DataObject_Overload
                 $jadd = "\n {$joinType} JOIN {$objTable} {$fullJoinAs}";
                 //$this->_join .= "\n {$joinType} JOIN {$objTable} {$fullJoinAs}";
                 if (is_array($ofield)) {
-                  $key_count = count($ofield);
+                	$key_count = count($ofield);
                     for($i = 0; $i < $key_count; $i++) {
-                      if ($i == 0) {
-                        $jadd .= " ON ({$joinAs}.{$ofield[$i]}={$table}.{$tfield[$i]}) ";
-                      }
-                      else {
-                        $jadd .= " AND {$joinAs}.{$ofield[$i]}={$table}.{$tfield[$i]} ";
-                      }
+                    	if ($i == 0) {
+                    		$jadd .= " ON ({$joinAs}.{$ofield[$i]}={$table}.{$tfield[$i]}) ";
+                    	}
+                    	else {
+                    		$jadd .= " AND {$joinAs}.{$ofield[$i]}={$table}.{$tfield[$i]} ";
+                    	}
                     }
                     $jadd .= ' ' . $appendJoin . ' ';
                 } else {
-                  $jadd .= " ON ({$joinAs}.{$ofield}={$table}.{$tfield}) {$appendJoin} ";
+	                $jadd .= " ON ({$joinAs}.{$ofield}={$table}.{$tfield}) {$appendJoin} ";
                 }
                 // jadd avaliable for debugging join build.
                 //echo $jadd ."\n";
@@ -3546,6 +3880,254 @@ class DB_DataObject extends DB_DataObject_Overload
 
     }
 
+    /**
+     * autoJoin - using the links.ini file, it builds a query with all the joins
+     * usage:
+     * $x = DB_DataObject::factory('mytable');
+     * $x->autoJoin();
+     * $x->get(123);
+     *   will result in all of the joined data being added to the fetched object..
+     *
+     * $x = DB_DataObject::factory('mytable');
+     * $x->autoJoin();
+     * $ar = $x->fetchAll();
+     *   will result in an array containing all the data from the table, and any joined tables..
+     *
+     * $x = DB_DataObject::factory('mytable');
+     * $jdata = $x->autoJoin();
+     * $x->selectAdd(); //reset..
+     * foreach($_REQUEST['requested_cols'] as $c) {
+     *    if (!isset($jdata[$c])) continue; // ignore columns not available..
+     *    $x->selectAdd( $jdata[$c] . ' as ' . $c);
+     * }
+     * $ar = $x->fetchAll();
+     *   will result in only the columns requested being fetched...
+     *
+     *
+     *
+     * @param     array     Configuration
+     *          exclude  Array of columns to exclude from results (eg. modified_by_id)
+     *          links    The equivilant links.ini data for this table eg.
+     *                    array( 'person_id' => 'person:id', .... )
+     *          include  Array of columns to include
+     *          distinct Array of distinct columns.
+     *
+     * @return   array      info about joins
+     *                      cols => map of resulting {joined_tablename}.{joined_table_column_name}
+     *                      join_names => map of resulting {join_name_as}.{joined_table_column_name}
+     *                      count => the column to count on.
+     * @access   public
+     */
+    function autoJoin($cfg = array())
+    {
+        global $_DB_DATAOBJECT;
+        //var_Dump($cfg);exit;
+        $pre_links = $this->links();
+        if (!empty($cfg['links'])) {
+            $this->links(array_merge( $pre_links , $cfg['links']));
+        }
+        $map = $this->links( );
+
+        $this->databaseStructure();
+        $dbstructure = $_DB_DATAOBJECT['INI'][$this->_database];
+        //print_r($map);
+        $tabdef = $this->table();
+
+        // we need this as normally it's only cleared by an empty selectAs call.
+
+
+        $keys = array_keys($tabdef);
+        if (!empty($cfg['exclude'])) {
+            $keys = array_intersect($keys, array_diff($keys, $cfg['exclude']));
+        }
+        if (!empty($cfg['include'])) {
+
+            $keys =  array_intersect($keys,  $cfg['include']);
+        }
+
+        $selectAs = array();
+
+        if (!empty($keys)) {
+            $selectAs = array(array( $keys , '%s', false));
+        }
+
+        $ret = array(
+            'cols' => array(),
+            'join_names' => array(),
+            'count' => false,
+        );
+
+
+
+        $has_distinct = false;
+        if (!empty($cfg['distinct']) && $keys) {
+
+            // reset the columsn?
+            $cols = array();
+
+             //echo '<PRE>' ;print_r($xx);exit;
+            foreach($keys as $c) {
+                //var_dump($c);
+
+                if (  $cfg['distinct'] == $c) {
+                    $has_distinct = 'DISTINCT( ' . $this->tableName() .'.'. $c .') as ' . $c;
+                    $ret['count'] =  'DISTINCT  ' . $this->tableName() .'.'. $c .'';
+                    continue;
+                }
+                // cols is in our filtered keys...
+                $cols = $c;
+
+            }
+            // apply our filtered version, which excludes the distinct column.
+
+            $selectAs = empty($cols) ?  array() : array(array(array(  $cols) , '%s', false)) ;
+
+
+
+        }
+
+        foreach($keys as $k) {
+            $ret['cols'][$k] = $this->tableName(). '.' . $k;
+        }
+
+
+
+        foreach($map as $ocl=>$info) {
+
+            list($tab,$col) = explode(':', $info);
+            // what about multiple joins on the same table!!!
+
+            // if links point to a table that does not exist - ignore.
+            if (!isset($dbstructure[$tab])) {
+                continue;
+            }
+
+            $xx = DB_DataObject::factory($tab);
+            if (!is_object($xx) || !is_a($xx, 'DB_DataObject')) {
+                continue;
+            }
+            // skip columns that are excluded.
+
+            // we ignore include here... - as
+
+            // this is borked ... for multiple jions..
+            $this->joinAdd($xx, 'LEFT', 'join_'.$ocl.'_'. $col, $ocl);
+
+            if (!empty($cfg['exclude']) && in_array($ocl, $cfg['exclude'])) {
+                continue;
+            }
+
+            $tabdef = $xx->table();
+            $table = $xx->tableName();
+
+            $keys = array_keys($tabdef);
+
+
+            if (!empty($cfg['exclude'])) {
+                $keys = array_intersect($keys, array_diff($keys, $cfg['exclude']));
+
+                foreach($keys as $k) {
+                    if (in_array($ocl.'_'.$k, $cfg['exclude'])) {
+                        $keys = array_diff($keys, $k); // removes the k..
+                    }
+                }
+
+            }
+
+            if (!empty($cfg['include'])) {
+                // include will basically be BASECOLNAME_joinedcolname
+                $nkeys = array();
+                foreach($keys as $k) {
+                    if (in_array( sprintf($ocl.'_%s', $k), $cfg['include'])) {
+                        $nkeys[] = $k;
+                    }
+                }
+                $keys = $nkeys;
+            }
+
+            if (empty($keys)) {
+                continue;
+            }
+            // got distinct, and not yet found it..
+            if (!$has_distinct && !empty($cfg['distinct']))  {
+                $cols = array();
+                foreach($keys as $c) {
+                    $tn = sprintf($ocl.'_%s', $c);
+
+                    if ( $tn == $cfg['distinct']) {
+
+                        $has_distinct = 'DISTINCT( ' . 'join_'.$ocl.'_'.$col.'.'.$c .')  as ' . $tn ;
+                        $ret['count'] =  'DISTINCT  join_'.$ocl.'_'.$col.'.'.$c;
+                       // var_dump($this->countWhat );
+                        continue;
+                    }
+                    $cols[] = $c;
+
+                }
+
+                if (!empty($cols)) {
+                    $selectAs[] = array($cols, $ocl.'_%s', 'join_'.$ocl.'_'. $col);
+                }
+
+            } else {
+                $selectAs[] = array($keys, $ocl.'_%s', 'join_'.$ocl.'_'. $col);
+            }
+
+            foreach($keys as $k) {
+                $ret['cols'][sprintf('%s_%s', $ocl, $k)] = $tab.'.'.$k;
+                $ret['join_names'][sprintf('%s_%s', $ocl, $k)] = sprintf('join_%s_%s.%s',$ocl, $col, $k);
+            }
+
+        }
+
+        // fill in the select details..
+        $this->selectAdd();
+
+        if ($has_distinct) {
+            $this->selectAdd($has_distinct);
+        }
+
+        foreach($selectAs as $ar) {
+            $this->selectAs($ar[0], $ar[1], $ar[2]);
+        }
+        // restore links..
+        $this->links( $pre_links );
+
+        return $ret;
+
+    }
+
+    /**
+     * Factory method for calling DB_DataObject_Cast
+     *
+     * if used with 1 argument DB_DataObject_Cast::sql($value) is called
+     *
+     * if used with 2 arguments DB_DataObject_Cast::$value($callvalue) is called
+     * valid first arguments are: blob, string, date, sql
+     *
+     * eg. $member->updated = $member->sqlValue('NOW()');
+     *
+     *
+     * might handle more arguments for escaping later...
+     *
+     *
+     * @param string $value (or type if used with 2 arguments)
+     * @param string $callvalue (optional) used with date/null etc..
+     */
+
+    function sqlValue($value)
+    {
+        $method = 'sql';
+        if (func_num_args() == 2) {
+            $method = $value;
+            $value = func_get_arg(1);
+        }
+        require_once 'DB/DataObject/Cast.php';
+        return call_user_func(array('DB_DataObject_Cast', $method), $value);
+
+    }
+
+
     /**
      * Copies items that are in the table definitions from an
      * array or object into the current object
@@ -3563,9 +4145,10 @@ class DB_DataObject extends DB_DataObject_Overload
         global $_DB_DATAOBJECT;
         $keys  = $this->keys();
         $items = $this->table();
+
         if (!$items) {
             $this->raiseError(
-                "setFrom:Could not find table definition for {$this->__table}",
+                "setFrom:Could not find table definition for {$this->tableName()}",
                 DB_DATAOBJECT_ERROR_INVALIDCONFIG);
             return;
         }
@@ -3577,7 +4160,14 @@ class DB_DataObject extends DB_DataObject_Overload
             if (!$k) {
                 continue; // ignore empty keys!!! what
             }
-            if (is_object($from) && isset($from->{sprintf($format,$k)})) {
+
+            $chk = is_object($from) &&
+                (version_compare(phpversion(), "5.1.0" , ">=") ?
+                    property_exists($from, sprintf($format,$k)) :  // php5.1
+                    array_key_exists( sprintf($format,$k), get_class_vars($from)) //older
+                );
+            // if from has property ($format($k)
+            if ($chk) {
                 $kk = (strtolower($k) == 'from') ? '_from' : $k;
                 if (method_exists($this,'set'.$kk)) {
                     $ret = $this->{'set'.$kk}($from->{sprintf($format,$k)});
@@ -3598,7 +4188,7 @@ class DB_DataObject extends DB_DataObject_Overload
                 continue;
             }
 
-            if (!isset($from[sprintf($format,$k)])) {
+            if (!isset($from[sprintf($format,$k)]) && !DB_DataObject::_is_null($from, sprintf($format,$k))) {
                 continue;
             }
 
@@ -3610,13 +4200,15 @@ class DB_DataObject extends DB_DataObject_Overload
                 }
                 continue;
             }
-            if (is_object($from[sprintf($format,$k)])) {
+            $val = $from[sprintf($format,$k)];
+            if (is_a($val, 'DB_DataObject_Cast')) {
+                $this->$k = $val;
                 continue;
             }
-            if (is_array($from[sprintf($format,$k)])) {
+            if (is_object($val) || is_array($val)) {
                 continue;
             }
-            $ret = $this->fromValue($k,$from[sprintf($format,$k)]);
+            $ret = $this->fromValue($k,$val);
             if ($ret !== true)  {
                 $overload_return[$k] = 'Not A Valid Value';
             }
@@ -3639,55 +4231,52 @@ class DB_DataObject extends DB_DataObject_Overload
      * will also return links converted to arrays.
      *
      * @param   string  sprintf format for array
-     * @param   bool    empty only return elemnts that have a value set.
+     * @param   bool||number    [true = elemnts that have a value set],
+     *                          [false = table + returned colums] ,
+     *                          [0 = returned columsn only]
      *
      * @access   public
      * @return   array of key => value for row
      */
 
-    function toArray($format = null, $hideEmpty = false)
+    function toArray($format = '%s', $hideEmpty = false)
     {
         global $_DB_DATAOBJECT;
+
+        // we use false to ignore sprintf.. (speed up..)
+        $format = $format == '%s' ? false : $format;
+
         $ret = array();
         $rf = ($this->_resultFields !== false) ? $this->_resultFields :
-                (isset($_DB_DATAOBJECT['RESULTFIELDS'][$this->_DB_resultid]) ? $_DB_DATAOBJECT['RESULTFIELDS'][$this->_DB_resultid] : false);
+                (isset($_DB_DATAOBJECT['RESULTFIELDS'][$this->_DB_resultid]) ?
+                 $_DB_DATAOBJECT['RESULTFIELDS'][$this->_DB_resultid] : false);
+
         $ar = ($rf !== false) ?
-            array_merge($_DB_DATAOBJECT['RESULTFIELDS'][$this->_DB_resultid],$this->table()) :
+            (($hideEmpty === 0) ? $rf : array_merge($rf, $this->table())) :
             $this->table();
 
         foreach($ar as $k=>$v) {
 
             if (!isset($this->$k)) {
                 if (!$hideEmpty) {
-                    if ($format === null)
-                        $ret[$k] = '';
-                    else
-                        $ret[sprintf($format,$k)] = '';
+                    $ret[$format === false ? $k : sprintf($format,$k)] = '';
                 }
                 continue;
             }
             // call the overloaded getXXXX() method. - except getLink and getLinks
             if (method_exists($this,'get'.$k) && !in_array(strtolower($k),array('links','link'))) {
-                if ($format === null)
-                    $ret[$k] = $this->{'get'.$k}();
-                else
-                    $ret[sprintf($format,$k)] = $this->{'get'.$k}();
+                $ret[$format === false ? $k : sprintf($format,$k)] = $this->{'get'.$k}();
                 continue;
             }
             // should this call toValue() ???
-            if ($format === null)
-                $ret[$k] = $this->$k;
-            else
-                $ret[sprintf($format,$k)] = $this->$k;
+            $ret[$format === false ? $k : sprintf($format,$k)] = $this->$k;
         }
         if (!$this->_link_loaded) {
             return $ret;
         }
         foreach($this->_link_loaded as $k) {
-            if ($format === null)
-                $ret[$k] = $this->$k->toArray();
-            else
-                $ret[sprintf($format,$k)] = $this->$k->toArray();
+            $ret[$format === false ? $k : sprintf($format,$k)] = $this->$k->toArray();
+
         }
 
         return $ret;
@@ -3738,7 +4327,7 @@ class DB_DataObject extends DB_DataObject_Overload
 
             // if not null - and it's not set.......
 
-            if (!isset($this->$key) && ($val & DB_DATAOBJECT_NOTNULL)) {
+            if ($val & DB_DATAOBJECT_NOTNULL && DB_DataObject::_is_null($this, $key)) {
                 // dont check empty sequence key values..
                 if (($key == $seq[0]) && ($seq[1] == true)) {
                     continue;
@@ -3748,7 +4337,7 @@ class DB_DataObject extends DB_DataObject_Overload
             }
 
 
-            if (!isset($options['disable_null_strings']) && is_string($this->$key) && (strtolower($this->$key) == 'null') && $this->$key !== 'Null') {
+             if (DB_DataObject::_is_null($this, $key)) {
                 if ($val & DB_DATAOBJECT_NOTNULL) {
                     $this->debug("'null' field used for '$key', but it is defined as NOT NULL", 'VALIDATION', 4);
                     $ret[$key] = false;
@@ -3799,7 +4388,7 @@ class DB_DataObject extends DB_DataObject_Overload
      * @access public
      * @return object The DB connection
      */
-    function &getDatabaseConnection()
+    function getDatabaseConnection()
     {
         global $_DB_DATAOBJECT;
 
@@ -3822,7 +4411,7 @@ class DB_DataObject extends DB_DataObject_Overload
      * @return object The DB result object
      */
 
-    function &getDatabaseResult()
+    function getDatabaseResult()
     {
         global $_DB_DATAOBJECT;
         $this->_connect();
@@ -3954,20 +4543,21 @@ class DB_DataObject extends DB_DataObject_Overload
         $options = $_DB_DATAOBJECT['CONFIG'];
         $cols = $this->table();
         // dont know anything about this col..
-        if (!isset($cols[$col])) {
+        if (!isset($cols[$col]) || is_a($value, 'DB_DataObject_Cast')) {
             $this->$col = $value;
             return true;
         }
         //echo "FROM VALUE $col, {$cols[$col]}, $value\n";
         switch (true) {
             // set to null and column is can be null...
-            case (!isset($options['disable_null_strings']) && (strtolower($value) == 'null') && $value !== 'Null' && (!($cols[$col] & DB_DATAOBJECT_NOTNULL))):
+            case ((!($cols[$col] & DB_DATAOBJECT_NOTNULL)) && DB_DataObject::_is_null($value, false)):
             case (is_object($value) && is_a($value,'DB_DataObject_Cast')):
                 $this->$col = $value;
                 return true;
 
             // fail on setting null on a not null field..
-            case (!isset($options['disable_null_strings']) && (strtolower($value) == 'null') && $value !== 'Null' && ($cols[$col] & DB_DATAOBJECT_NOTNULL)):
+            case (($cols[$col] & DB_DATAOBJECT_NOTNULL) && DB_DataObject::_is_null($value,false)):
+
                 return false;
 
             case (($cols[$col] & DB_DATAOBJECT_DATE) &&  ($cols[$col] & DB_DATAOBJECT_TIME)):
@@ -4170,9 +4760,12 @@ class DB_DataObject extends DB_DataObject_Overload
      * @param   int     $v  level
      * @access  public
      * @return  none
+     *
+     * CRM-15212 fix visibility.
      */
     public static function debugLevel($v = null)
     {
+        // CRM-15212. ends
         global $_DB_DATAOBJECT;
         if (empty($_DB_DATAOBJECT['CONFIG'])) {
             DB_DataObject::_loadConfig();
@@ -4213,16 +4806,9 @@ class DB_DataObject extends DB_DataObject_Overload
         if ($behaviour == PEAR_ERROR_DIE && !empty($_DB_DATAOBJECT['CONFIG']['dont_die'])) {
             $behaviour = null;
         }
-        $error = PEAR::getStaticProperty('DB_DataObject','lastError');
-
-        // this will never work totally with PHP's object model.
-        // as this is passed on static calls (like staticGet in our case)
 
-        if (isset($this) && is_object($this) && is_subclass_of($this,'db_dataobject')) {
-            $this->_lastError = $error;
-        }
+        $error = PEAR::getStaticProperty('DB_DataObject','lastError');
 
-        $_DB_DATAOBJECT['LASTERROR'] = $error;
 
         // no checks for production here?....... - we log  errors before we throw them.
         DB_DataObject::debug($message,'ERROR',1);
@@ -4232,10 +4818,19 @@ class DB_DataObject extends DB_DataObject_Overload
             $error = $message;
         } else {
             require_once 'DB/DataObject/Error.php';
-            $error = PEAR::raiseError($message, $type, $behaviour,
+            $dor = new PEAR();
+            $error = $dor->raiseError($message, $type, $behaviour,
                             $opts=null, $userinfo=null, 'DB_DataObject_Error'
                         );
         }
+        // this will never work totally with PHP's object model.
+        // as this is passed on static calls (like staticGet in our case)
+
+        $_DB_DATAOBJECT['LASTERROR'] = $error;
+
+        if (isset($this) && is_object($this) && is_subclass_of($this,'db_dataobject')) {
+            $this->_lastError = $error;
+        }
 
         return $error;
     }
@@ -4282,20 +4877,145 @@ class DB_DataObject extends DB_DataObject_Overload
         if (isset($_DB_DATAOBJECT['CONNECTIONS'][$this->_database_dsn_md5])) {
             $_DB_DATAOBJECT['CONNECTIONS'][$this->_database_dsn_md5]->num_rows = array();
         }
+
         if (is_array($this->_link_loaded)) {
             foreach ($this->_link_loaded as $do) {
                 if (
                         !empty($this->{$do}) &&
                         is_object($this->{$do}) &&
-                       method_exists($this->{$do}, 'free')
+                        method_exists($this->{$do}, 'free')
                     ) {
                     $this->{$do}->free();
                 }
             }
         }
 
+
+    }
+    /**
+    * Evaluate whether or not a value is set to null, taking the 'disable_null_strings' option into account.
+    * If the value is a string set to "null" and the "disable_null_strings" option is not set to
+    * true, then the value is considered to be null.
+    * If the value is actually a PHP NULL value, and "disable_null_strings" has been set to
+    * the value "full", then it will also be considered null. - this can not differenticate between not set
+    *
+    *
+    * @param  object|array $obj_or_ar
+    * @param  string|false $prop prperty
+
+    * @access private
+    * @return bool  object
+    */
+    function _is_null($obj_or_ar , $prop)
+    {
+    	global $_DB_DATAOBJECT;
+
+
+        $isset = $prop === false ? isset($obj_or_ar) :
+            (is_array($obj_or_ar) ? isset($obj_or_ar[$prop]) : isset($obj_or_ar->$prop));
+
+        $value = $isset ?
+            ($prop === false ? $obj_or_ar :
+                (is_array($obj_or_ar) ? $obj_or_ar[$prop] : $obj_or_ar->$prop))
+            : null;
+
+
+
+    	$options = $_DB_DATAOBJECT['CONFIG'];
+
+        $null_strings = !isset($options['disable_null_strings'])
+                    || $options['disable_null_strings'] === false;
+
+        $crazy_null = isset($options['disable_null_strings'])
+                && is_string($options['disable_null_strings'])
+                && strtolower($options['disable_null_strings'] === 'full');
+
+        // CRM-15522 Ensure that Last name of Null is validly stored.
+        if ( $null_strings && $isset  && is_string($value)  && (strtolower($value) === 'null')  && $value !== 'Null') {
+        // CRM-15522 ends
+            return true;
+        }
+
+        if ( $crazy_null && !$isset )  {
+        	return true;
+        }
+
+        return false;
+
+
     }
 
+    /**
+     * (deprecated - use ::get / and your own caching method)
+     */
+    static function staticGet($class, $k, $v = null)
+    {
+        $lclass = strtolower($class);
+        global $_DB_DATAOBJECT;
+        if (empty($_DB_DATAOBJECT['CONFIG'])) {
+            DB_DataObject::_loadConfig();
+        }
+
+
+
+        $key = "$k:$v";
+        if ($v === null) {
+            $key = $k;
+        }
+        if (!empty($_DB_DATAOBJECT['CONFIG']['debug'])) {
+            DB_DataObject::debug("$class $key","STATIC GET - TRY CACHE");
+        }
+        if (!empty($_DB_DATAOBJECT['CACHE'][$lclass][$key])) {
+            return $_DB_DATAOBJECT['CACHE'][$lclass][$key];
+        }
+        if (!empty($_DB_DATAOBJECT['CONFIG']['debug'])) {
+            DB_DataObject::debug("$class $key","STATIC GET - NOT IN CACHE");
+        }
+
+        $obj = DB_DataObject::factory(substr($class,strlen($_DB_DATAOBJECT['CONFIG']['class_prefix'])));
+        if (PEAR::isError($obj)) {
+            $dor = new DB_DataObject();
+            $dor->raiseError("could not autoload $class", DB_DATAOBJECT_ERROR_NOCLASS);
+            $r = false;
+            return $r;
+        }
+
+        if (!isset($_DB_DATAOBJECT['CACHE'][$lclass])) {
+            $_DB_DATAOBJECT['CACHE'][$lclass] = array();
+        }
+        if (!$obj->get($k,$v)) {
+            $dor = new DB_DataObject();
+            $dor->raiseError("No Data return from get $k $v", DB_DATAOBJECT_ERROR_NODATA);
+
+            $r = false;
+            return $r;
+        }
+        $_DB_DATAOBJECT['CACHE'][$lclass][$key] = $obj;
+        return $_DB_DATAOBJECT['CACHE'][$lclass][$key];
+    }
+
+    /**
+     * autoload Class relating to a table
+     * (deprecited - use ::factory)
+     *
+     * @param  string  $table  table
+     * @access private
+     * @return string classname on Success
+     */
+    function staticAutoloadTable($table)
+    {
+        global $_DB_DATAOBJECT;
+        if (empty($_DB_DATAOBJECT['CONFIG'])) {
+            DB_DataObject::_loadConfig();
+        }
+        $p = isset($_DB_DATAOBJECT['CONFIG']['class_prefix']) ?
+            $_DB_DATAOBJECT['CONFIG']['class_prefix'] : '';
+        $class = $p . preg_replace('/[^A-Z0-9]/i','_',ucfirst($table));
+
+        $ce = substr(phpversion(),0,1) > 4 ? class_exists($class,false) : class_exists($class);
+        $class = $ce ? $class  : DB_DataObject::_autoloadClass($class);
+        return $class;
+    }
 
     /* ---- LEGACY BC METHODS - NOT DOCUMENTED - See Documentation on New Methods. ---*/
 
@@ -4310,6 +5030,8 @@ class DB_DataObject extends DB_DataObject_Overload
    * @param float $timeTaken
    *
    * @return string
+   *
+   * function only needed for CRM-18093.
    */
   public function getAlertLevel($timeTaken) {
     if ($timeTaken >= 20) {
@@ -4327,11 +5049,6 @@ class DB_DataObject extends DB_DataObject_Overload
     return '';
   }
 
-  public function lastInsertId() {
-    $DB = &$_DB_DATAOBJECT['CONNECTIONS'][$this->_database_dsn_md5];
-    return $DB->lastInsertId();
-  }
-
 }
 // technially 4.3.2RC1 was broken!!
 // looks like 4.3.3 may have problems too....
@@ -4345,3 +5062,4 @@ if (!defined('DB_DATAOBJECT_NO_OVERLOAD')) {
     }
 }
 
+
diff --git a/civicrm/packages/DB/DataObject/Cast.php b/civicrm/packages/DB/DataObject/Cast.php
index 2049beb581..7fa5a280d1 100644
--- a/civicrm/packages/DB/DataObject/Cast.php
+++ b/civicrm/packages/DB/DataObject/Cast.php
@@ -20,9 +20,9 @@
  * @version    CVS: $Id: Cast.php 287158 2009-08-12 13:58:31Z alan_k $
  * @link       http://pear.php.net/package/DB_DataObject
  */
-  
+
 /**
-*  
+*
 * Common usages:
 *   // blobs
 *   $data = DB_DataObject_Cast::blob($somefile);
@@ -33,7 +33,7 @@
 *   $d1 = new DB_DataObject_Cast::date('12/12/2000');
 *   $d2 = new DB_DataObject_Cast::date(2000,12,30);
 *   $d3 = new DB_DataObject_Cast::date($d1->year, $d1->month+30, $d1->day+30);
-*   
+*
 *   // time, datetime.. ?????????
 *
 *   // raw sql????
@@ -42,8 +42,8 @@
 *
 *   // int's/string etc. are proably pretty pointless..!!!!
 *
-*   
-*   inside DB_DataObject, 
+*
+*   inside DB_DataObject,
 *   if (is_a($v,'db_dataobject_class')) {
 *           $value .= $v->toString(DB_DATAOBJECT_INT,'mysql');
 *   }
@@ -52,17 +52,17 @@
 *
 *
 
-*/ 
+*/
 class DB_DataObject_Cast {
-        
+
     /**
     * Type of data Stored in the object..
     *
     * @var string       (date|blob|.....?)
-    * @access public        
+    * @access public
     */
     var $type;
-        
+
     /**
     * Data For date representation
     *
@@ -73,7 +73,7 @@ class DB_DataObject_Cast {
     var $month;
     var $year;
 
-    
+
     /**
     * Generic Data..
     *
@@ -89,14 +89,14 @@ class DB_DataObject_Cast {
     * Blob consructor
     *
     * create a Cast object from some raw data.. (binary)
-    * 
-    * 
+    *
+    *
     * @param   string (with binary data!)
     *
     * @return   object DB_DataObject_Cast
-    * @access   public 
+    * @access   public
     */
-  
+
     function blob($value) {
         $r = new DB_DataObject_Cast;
         $r->type = 'blob';
@@ -109,33 +109,33 @@ class DB_DataObject_Cast {
     * String consructor (actually use if for ints and everything else!!!
     *
     * create a Cast object from some string (not binary)
-    * 
-    * 
+    *
+    *
     * @param   string (with binary data!)
     *
     * @return   object DB_DataObject_Cast
-    * @access   public 
+    * @access   public
     */
-  
+
     function string($value) {
         $r = new DB_DataObject_Cast;
         $r->type = 'string';
         $r->value = $value;
         return $r;
     }
-    
+
     /**
     * SQL constructor (for raw SQL insert)
     *
     * create a Cast object from some sql
-    * 
+    *
     * @param   string (with binary data!)
     *
     * @return   object DB_DataObject_Cast
-    * @access   public 
+    * @access   public
     */
-  
-    function sql($value) 
+
+    function sql($value)
     {
         $r = new DB_DataObject_Cast;
         $r->type = 'sql';
@@ -149,7 +149,7 @@ class DB_DataObject_Cast {
     *
     * create a Cast object from some string (not binary)
     * NO VALIDATION DONE, although some crappy re-calcing done!
-    * 
+    *
     * @param   vargs... accepts
     *       dd/mm
     *       dd/mm/yyyy
@@ -161,18 +161,18 @@ class DB_DataObject_Cast {
     *
     *
     * @return   object DB_DataObject_Cast
-    * @access   public 
+    * @access   public
     */
-  
-    function date() 
-    {  
+
+    function date()
+    {
         $args = func_get_args();
         switch(count($args)) {
             case 0: // no args = today!
                $bits =  explode('-',date('Y-m-d'));
                 break;
-            case 1: // one arg = a string 
-            
+            case 1: // one arg = a string
+
                 if (strpos($args[0],'/') !== false) {
                     $bits = array_reverse(explode('/',$args[0]));
                 } else {
@@ -185,11 +185,11 @@ class DB_DataObject_Cast {
         if (count($bits) == 1) { // if YYYY set day = 1st..
             $bits[] = 1;
         }
-        
+
         if (count($bits) == 2) { // if YYYY-DD set day = 1st..
             $bits[] = 1;
         }
-        
+
         // if year < 1970 we cant use system tools to check it...
         // so we make a few best gueses....
         // basically do date calculations for the year 2000!!!
@@ -207,8 +207,8 @@ class DB_DataObject_Cast {
         list($r->year,$r->month,$r->day) = $bits;
         return $r;
     }
-    
-   
+
+
 
     /**
     * Data For time representation ** does not handle timezones!!
@@ -220,61 +220,61 @@ class DB_DataObject_Cast {
     var $minute;
     var $second;
 
-    
+
     /**
     * DateTime Constructor
     *
     * create a Cast object from a Date/Time
     * Maybe should accept a Date object.!
     * NO VALIDATION DONE, although some crappy re-calcing done!
-    * 
+    *
     * @param   vargs... accepts
     *              noargs (now)
     *              yyyy-mm-dd HH:MM:SS (Iso)
-    *              array(yyyy,mm,dd,HH,MM,SS) 
+    *              array(yyyy,mm,dd,HH,MM,SS)
     *
     *
     * @return   object DB_DataObject_Cast
-    * @access   public 
+    * @access   public
     * @author   therion 5 at hotmail
     */
-    
+
     function dateTime()
     {
         $args = func_get_args();
         switch(count($args)) {
             case 0: // no args = now!
                 $datetime = date('Y-m-d G:i:s', mktime());
-            
+
             case 1:
                 // continue on from 0 args.
                 if (!isset($datetime)) {
                     $datetime = $args[0];
                 }
-                
+
                 $parts =  explode(' ', $datetime);
                 $bits = explode('-', $parts[0]);
                 $bits = array_merge($bits, explode(':', $parts[1]));
                 break;
-                
+
             default: // 2 or more..
                 $bits = $args;
-                
+
         }
 
         if (count($bits) != 6) {
             // PEAR ERROR?
             return false;
         }
-        
+
         $r = DB_DataObject_Cast::date($bits[0], $bits[1], $bits[2]);
         if (!$r) {
             return $r; // pass thru error (False) - doesnt happen at present!
         }
         // change the type!
         $r->type = 'datetime';
-        
-        // should we mathematically sort this out.. 
+
+        // should we mathematically sort this out..
         // (or just assume that no-one's dumb enough to enter 26:90:90 as a time!
         $r->hour = $bits[3];
         $r->minute = $bits[4];
@@ -295,11 +295,11 @@ class DB_DataObject_Cast {
     * @param   vargs... accepts
     *              noargs (now)
     *              HH:MM:SS (Iso)
-    *              array(HH,MM,SS)    
+    *              array(HH,MM,SS)
     *
     *
     * @return   object DB_DataObject_Cast
-    * @access   public 
+    * @access   public
     * @author   therion 5 at hotmail
     */
     function time()
@@ -308,7 +308,7 @@ class DB_DataObject_Cast {
         switch (count($args)) {
             case 0: // no args = now!
                 $time = date('G:i:s', mktime());
-                
+
             case 1:
                 // continue on from 0 args.
                 if (!isset($time)) {
@@ -316,16 +316,16 @@ class DB_DataObject_Cast {
                 }
                 $bits =  explode(':', $time);
                 break;
-                
+
             default: // 2 or more..
                 $bits = $args;
-                
+
         }
-        
+
         if (count($bits) != 3) {
             return false;
         }
-        
+
         // now take data from bits into object fields
         $r = new DB_DataObject_Cast;
         $r->type = 'time';
@@ -336,162 +336,179 @@ class DB_DataObject_Cast {
 
     }
 
-  
-  
+
+
     /**
     * get the string to use in the SQL statement for this...
     *
-    * 
+    *
     * @param   int      $to Type (DB_DATAOBJECT_*
     * @param   object   $db DB Connection Object
-    * 
     *
-    * @return   string 
+    *
+    * @return   string
     * @access   public
     */
-  
-    function toString($to=false,$db) 
+
+    function toString($to=false,$db)
     {
         // if $this->type is not set, we are in serious trouble!!!!
         // values for to:
         $method = 'toStringFrom'.$this->type;
         return $this->$method($to,$db);
     }
-    
+
     /**
-    * get the string to use in the SQL statement from a blob of binary data 
+    * get the string to use in the SQL statement from a blob of binary data
     *   ** Suppots only blob->postgres::bytea
     *
     * @param   int      $to Type (DB_DATAOBJECT_*
     * @param   object   $db DB Connection Object
-    * 
     *
-    * @return   string 
+    *
+    * @return   string
     * @access   public
     */
-    function toStringFromBlob($to,$db) 
+    function toStringFromBlob($to,$db)
     {
         // first weed out invalid casts..
         // in blobs can only be cast to blobs.!
-        
+
         // perhaps we should support TEXT fields???
-        
+
         if (!($to & DB_DATAOBJECT_BLOB)) {
             return PEAR::raiseError('Invalid Cast from a DB_DataObject_Cast::blob to something other than a blob!');
         }
-        
+
         switch ($db->dsn["phptype"]) {
             case 'pgsql':
                 return "'".pg_escape_bytea($this->value)."'::bytea";
-                
+
             case 'mysql':
                 return "'".mysql_real_escape_string($this->value,$db->connection)."'";
-            
+
             case 'mysqli':
                 // this is funny - the parameter order is reversed ;)
                 return "'".mysqli_real_escape_string($db->connection, $this->value)."'";
-             
+
             case 'sqlite':
                 // this is funny - the parameter order is reversed ;)
                 return "'".sqlite_escape_string($this->value)."'";
-           
-                 
+
+            case 'mssql':
+
+                if(is_numeric($this->value)) {
+                    return $this->value;
+                }
+                $unpacked = unpack('H*hex', $this->value);
+                return '0x' . $unpacked['hex'];
+
+
+
             default:
                 return PEAR::raiseError("DB_DataObject_Cast cant handle blobs for Database:{$db->dsn['phptype']} Yet");
         }
-    
+
     }
-    
+
     /**
     * get the string to use in the SQL statement for a blob from a string!
     *   ** Suppots only string->postgres::bytea
-    * 
+    *
     *
     * @param   int      $to Type (DB_DATAOBJECT_*
     * @param   object   $db DB Connection Object
-    * 
     *
-    * @return   string 
+    *
+    * @return   string
     * @access   public
     */
-    function toStringFromString($to,$db) 
+    function toStringFromString($to,$db)
     {
         // first weed out invalid casts..
         // in blobs can only be cast to blobs.!
-        
+
         // perhaps we should support TEXT fields???
-        // 
-        
-        if (!($to & DB_DATAOBJECT_BLOB)) {
-            return PEAR::raiseError('Invalid Cast from a DB_DataObject_Cast::string to something other than a blob!'.
-                ' (why not just use native features)');
-        }
-        
+        //
+
+        // $to == a string field which is the default type (0)
+        // so we do not test it here. - we assume that number fields
+        // will accept a string?? - which is stretching it a bit ...
+        // should probaly add that test as some point.
+
         switch ($db->dsn['phptype']) {
             case 'pgsql':
                 return "'".pg_escape_string($this->value)."'::bytea";
-            
+
             case 'mysql':
                 return "'".mysql_real_escape_string($this->value,$db->connection)."'";
-            
-            
+
+
             case 'mysqli':
                 return "'".mysqli_real_escape_string($db->connection, $this->value)."'";
 
-            
+            case 'mssql':
+                // copied from the old DB mssql code...?? not sure how safe this is.
+                return "'" . str_replace(
+                        array("'", "\\\r\n", "\\\n"),
+                        array("''", "\\\\\r\n\r\n", "\\\\\n\n"),
+                        $this->value
+                    ) . "'";
+
+
             default:
                 return PEAR::raiseError("DB_DataObject_Cast cant handle blobs for Database:{$db->dsn['phptype']} Yet");
         }
-    
+
     }
-    
-    
+
+
     /**
     * get the string to use in the SQL statement for a date
-    *   
-    * 
+    *
+    *
     *
     * @param   int      $to Type (DB_DATAOBJECT_*
     * @param   object   $db DB Connection Object
-    * 
     *
-    * @return   string 
+    *
+    * @return   string
     * @access   public
     */
-    function toStringFromDate($to,$db) 
+    function toStringFromDate($to,$db)
     {
         // first weed out invalid casts..
         // in blobs can only be cast to blobs.!
          // perhaps we should support TEXT fields???
-        // 
-        
+        //
+
         if (($to !== false) && !($to & DB_DATAOBJECT_DATE)) {
             return PEAR::raiseError('Invalid Cast from a DB_DataObject_Cast::string to something other than a date!'.
                 ' (why not just use native features)');
         }
         return "'{$this->year}-{$this->month}-{$this->day}'";
     }
-    
+
     /**
     * get the string to use in the SQL statement for a datetime
-    *   
-    * 
+    *
+    *
     *
     * @param   int     $to Type (DB_DATAOBJECT_*
     * @param   object   $db DB Connection Object
-    * 
     *
-    * @return   string 
+    *
+    * @return   string
     * @access   public
     * @author   therion 5 at hotmail
     */
-    
-    function toStringFromDateTime($to,$db) 
+
+    function toStringFromDateTime($to,$db)
     {
         // first weed out invalid casts..
         // in blobs can only be cast to blobs.!
         // perhaps we should support TEXT fields???
-        if (($to !== false) && 
+        if (($to !== false) &&
             !($to & (DB_DATAOBJECT_DATE + DB_DATAOBJECT_TIME))) {
             return PEAR::raiseError('Invalid Cast from a ' .
                 ' DB_DataObject_Cast::dateTime to something other than a datetime!' .
@@ -502,48 +519,47 @@ class DB_DataObject_Cast {
 
     /**
     * get the string to use in the SQL statement for a time
-    *   
-    * 
+    *
+    *
     *
     * @param   int     $to Type (DB_DATAOBJECT_*
     * @param   object   $db DB Connection Object
-    * 
     *
-    * @return   string 
+    *
+    * @return   string
     * @access   public
     * @author   therion 5 at hotmail
     */
 
-    function toStringFromTime($to,$db) 
+    function toStringFromTime($to,$db)
     {
         // first weed out invalid casts..
         // in blobs can only be cast to blobs.!
         // perhaps we should support TEXT fields???
         if (($to !== false) && !($to & DB_DATAOBJECT_TIME)) {
-            return PEAR::raiseError('Invalid Cast from a' . 
+            return PEAR::raiseError('Invalid Cast from a' .
                 ' DB_DataObject_Cast::time to something other than a time!'.
                 ' (try using native features)');
         }
         return "'{$this->hour}:{$this->minute}:{$this->second}'";
     }
-  
+
     /**
     * get the string to use in the SQL statement for a raw sql statement.
     *
     * @param   int      $to Type (DB_DATAOBJECT_*
     * @param   object   $db DB Connection Object
-    * 
     *
-    * @return   string 
+    *
+    * @return   string
     * @access   public
     */
-    function toStringFromSql($to,$db) 
+    function toStringFromSql($to,$db)
     {
-        return $this->value; 
+        return $this->value;
     }
-    
-    
-    
-    
+
+
+
 }
 
diff --git a/civicrm/packages/DB/DataObject/Error.php b/civicrm/packages/DB/DataObject/Error.php
index bb04d6457e..174108c428 100644
--- a/civicrm/packages/DB/DataObject/Error.php
+++ b/civicrm/packages/DB/DataObject/Error.php
@@ -21,11 +21,11 @@
  * @version    CVS: $Id: Error.php 287158 2009-08-12 13:58:31Z alan_k $
  * @link       http://pear.php.net/package/DB_DataObject
  */
-  
- 
+
+
 class DB_DataObject_Error extends PEAR_Error
 {
-    
+
     /**
      * DB_DataObject_Error constructor.
      *
@@ -42,12 +42,12 @@ class DB_DataObject_Error extends PEAR_Error
               $level = E_USER_NOTICE)
     {
         parent::__construct('DB_DataObject Error: ' . $message, $code, $mode, $level);
-        
+
     }
-    
-    
+
+
     // todo : - support code -> message handling, and translated error messages...
-    
-    
-    
+
+
+
 }
diff --git a/civicrm/packages/DB/DataObject/Generator.php b/civicrm/packages/DB/DataObject/Generator.php
index 8ac19d189b..d51b4e25fc 100644
--- a/civicrm/packages/DB/DataObject/Generator.php
+++ b/civicrm/packages/DB/DataObject/Generator.php
@@ -15,10 +15,10 @@
  * @author     Alan Knowles <alan@akbkhome.com>
  * @copyright  1997-2006 The PHP Group
  * @license    http://www.php.net/license/3_01.txt  PHP License 3.01
- * @version    CVS: $Id: Generator.php 284150 2009-07-15 23:27:59Z alan_k $
+ * @version    CVS: $Id: Generator.php 336719 2015-05-05 10:37:33Z alan_k $
  * @link       http://pear.php.net/package/DB_DataObject
  */
- 
+
  /*
  * Security Notes:
  *   This class uses eval to create classes on the fly.
@@ -26,14 +26,14 @@
  *   class definitions, we now check for quotes and semi-colon's in both variables
  *   so I cant see how it would be possible to generate code even if
  *   for some crazy reason you took the classname and table name from User Input.
- *   
+ *
  *   If you consider that wrong, or can prove it.. let me know!
  */
- 
+
  /**
- * 
+ *
  * Config _$ptions
- * [DB_DataObject_Generator]
+ * [DB_DataObject]
  * ; optional default = DB/DataObject.php
  * extends_location =
  * ; optional default = DB_DataObject
@@ -86,6 +86,13 @@ class DB_DataObject_Generator extends DB_DataObject
      */
     var $table; // active tablename
 
+    /**
+     * links (generated)
+     *
+     * @var array
+     * @access private
+     */
+    var $_fkeys; // active tablename
 
     /**
      * The 'starter' = call this to start the process
@@ -142,6 +149,7 @@ class DB_DataObject_Generator extends DB_DataObject
                 $t->_database = basename($t->_database);
             }
             $t->_createTableList();
+            $t->_createForiegnKeys();
 
             foreach(get_class_methods($class) as $method) {
                 if (substr($method,0,8 ) != 'generate') {
@@ -173,17 +181,20 @@ class DB_DataObject_Generator extends DB_DataObject
     function _createTableList()
     {
         $this->_connect();
+
         $options = PEAR::getStaticProperty('DB_DataObject','options');
 
+
+
         $__DB= &$GLOBALS['_DB_DATAOBJECT']['CONNECTIONS'][$this->_database_dsn_md5];
 
         $db_driver = empty($options['db_driver']) ? 'DB' : $options['db_driver'];
         $is_MDB2 = ($db_driver != 'DB') ? true : false;
 
-        if (is_a($__DB , 'PEAR_Error')) {
+        if (is_object($__DB) && is_a($__DB , 'PEAR_Error')) {
             return PEAR::raiseError($__DB->toString(), null, PEAR_ERROR_DIE);
         }
-        
+
         if (!$is_MDB2) {
             // try getting a list of schema tables first. (postgres)
             $__DB->expectError(DB_ERROR_UNSUPPORTED);
@@ -197,12 +208,12 @@ class DB_DataObject_Generator extends DB_DataObject
             if (empty($db_options)) {
                 $__DB->setOption('portability', MDB2_PORTABILITY_ALL ^ MDB2_PORTABILITY_FIX_CASE);
             }
-            
+
             $__DB->loadModule('Manager');
             $__DB->loadModule('Reverse');
         }
 
-        if ((empty($this->tables) || is_a($this->tables , 'PEAR_Error'))) {
+        if ((empty($this->tables) || (is_object($this->tables) && is_a($this->tables , 'PEAR_Error')))) {
             //if that fails fall back to clasic tables list.
             if (!$is_MDB2) {
                 // try getting a list of schema tables first. (postgres)
@@ -218,18 +229,19 @@ class DB_DataObject_Generator extends DB_DataObject
             }
         }
 
-        if (is_a($this->tables , 'PEAR_Error')) {
+        if (is_object($this->tables) && is_a($this->tables , 'PEAR_Error')) {
             return PEAR::raiseError($this->tables->toString(), null, PEAR_ERROR_DIE);
         }
 
         // build views as well if asked to.
         if (!empty($options['build_views'])) {
             if (!$is_MDB2) {
-                $views = $__DB->getListOf('views');
+                $views = $__DB->getListOf(is_string($options['build_views']) ?
+                                    $options['build_views'] : 'views');
             } else {
                 $views = $__DB->manager->listViews();
             }
-            if (is_a($views,'PEAR_Error')) {
+            if (is_object($views) && is_a($views,'PEAR_Error')) {
                 return PEAR::raiseError(
                 'Error getting Views (check the PEAR bug database for the fix to DB), ' .
                 $views->toString(),
@@ -246,34 +258,48 @@ class DB_DataObject_Generator extends DB_DataObject
 
         foreach($this->tables as $table) {
             if (isset($options['generator_include_regex']) &&
-            !preg_match($options['generator_include_regex'],$table)) {
+                    !preg_match($options['generator_include_regex'],$table)) {
+                $this->debug("SKIPPING (generator_include_regex) : $table");
                 continue;
-            } else if (isset($options['generator_exclude_regex']) &&
-            preg_match($options['generator_exclude_regex'],$table)) {
+            }
+
+            if (isset($options['generator_exclude_regex']) &&
+                    preg_match($options['generator_exclude_regex'],$table)) {
                 continue;
             }
+
+            $strip = empty($options['generator_strip_schema']) ? false : $options['generator_strip_schema'];
+            $strip = is_numeric($strip) ? (bool) $strip : $strip;
+            $strip = (is_string($strip) && strtolower($strip) == 'true') ? true : $strip;
+
             // postgres strip the schema bit from the
-            if (!empty($options['generator_strip_schema'])) {
-                $bits = explode('.', $table,2);
-                $table = $bits[0];
-                if (count($bits) > 1) {
-                    $table = $bits[1];
+            if (!empty($strip) ) {
+
+                if (!is_string($strip) || preg_match($strip, $table)) {
+                    $bits = explode('.', $table,2);
+                    $table = $bits[0];
+                    if (count($bits) > 1) {
+                        $table = $bits[1];
+                    }
                 }
             }
-            $quotedTable = !empty($options['quote_identifiers_tableinfo']) ? 
+            $this->debug("EXTRACTING : $table");
+
+            $quotedTable = !empty($options['quote_identifiers_tableinfo']) ?
                 $__DB->quoteIdentifier($table) : $table;
-                
+
             if (!$is_MDB2) {
-                
+
                 $defs =  $__DB->tableInfo($quotedTable);
             } else {
                 $defs =  $__DB->reverse->tableInfo($quotedTable);
                 // rename the length value, so it matches db's return.
-                
+
             }
 
-            if (is_a($defs,'PEAR_Error')) {
+            if (is_object($defs) && is_a($defs,'PEAR_Error')) {
                 // running in debug mode should pick this up as a big warning..
+                $this->debug("Error reading tableInfo: $table");
                 $this->raiseError('Error reading tableInfo, '. $defs->toString());
                 continue;
             }
@@ -300,9 +326,10 @@ class DB_DataObject_Generator extends DB_DataObject
         // the temporary table array is now the right one (tables names matching
         // with regex expressions have been removed)
         $this->tables = $tmp_table;
+
         //print_r($this->_definitions);
     }
-    
+
     /**
      * Auto generation of table data.
      *
@@ -342,7 +369,7 @@ class DB_DataObject_Generator extends DB_DataObject
         } else {
             $file = "{$base}/{$this->_database}.ini";
         }
-        
+
         if (!file_exists(dirname($file))) {
             require_once 'System.php';
             System::mkdir(array('-p','-m',0755,dirname($file)));
@@ -352,13 +379,19 @@ class DB_DataObject_Generator extends DB_DataObject
         $tmpname = tempnam(session_save_path(),'DataObject_');
         //print_r($this->_newConfig);
         $fh = fopen($tmpname,'w');
+        if (!$fh) {
+            return PEAR::raiseError(
+                "Failed to create temporary file: $tmpname\n".
+                "make sure session.save_path is set and is writable\n"
+                ,null, PEAR_ERROR_DIE);
+        }
         fwrite($fh,$this->_newConfig);
         fclose($fh);
         $perms = file_exists($file) ? fileperms($file) : 0755;
         // windows can fail doing this. - not a perfect solution but otherwise it's getting really kludgy..
-        
-        if (!@rename($tmpname, $file)) { 
-            unlink($file); 
+
+        if (!@rename($tmpname, $file)) {
+            unlink($file);
             rename($tmpname, $file);
         }
         chmod($file,$perms);
@@ -368,57 +401,128 @@ class DB_DataObject_Generator extends DB_DataObject
         //    return PEAR::raiseError($ret->message,null,PEAR_ERROR_DIE);
         // }
     }
-
-    /**
-     * generate Foreign Keys (for links.ini) 
-     * Currenly only works with mysql / mysqli
+     /**
+     * create the data for Foreign Keys (for links.ini)
+     * Currenly only works with mysql / mysqli / posgtreas
      * to use, you must set option: generate_links=true
-     * 
-     * @author Pascal Sch�ni 
+     *
+     * @author Pascal Sch�ni
      */
-    function generateForeignKeys() 
+
+    function _createForiegnKeys()
     {
         $options = PEAR::getStaticProperty('DB_DataObject','options');
         if (empty($options['generate_links'])) {
             return false;
         }
         $__DB = &$GLOBALS['_DB_DATAOBJECT']['CONNECTIONS'][$this->_database_dsn_md5];
-        if (!in_array($__DB->phptype, array('mysql','mysqli'))) {
-            echo "WARNING: cant handle non-mysql introspection for defaults.";
+        if (!in_array($__DB->phptype, array('mysql', 'mysqli', 'pgsql'))) {
+            echo "WARNING: cant handle non-mysql and pgsql introspection for defaults.";
             return; // cant handle non-mysql introspection for defaults.
         }
-
+        $this->debug("generateForeignKeys: Start");
         $DB = $this->getDatabaseConnection();
 
         $fk = array();
 
-        foreach($this->tables as $this->table) {
-            $quotedTable = !empty($options['quote_identifiers_tableinfo']) ?  $DB->quoteIdentifier($table)  : $this->table;
-            
-            $res =& $DB->query('SHOW CREATE TABLE ' . $quotedTable );
 
-            if (PEAR::isError($res)) {
-                die($res->getMessage());
-            }
+        switch ($DB->phptype) {
 
-            $text = $res->fetchRow(DB_FETCHMODE_DEFAULT, 0);
-            $treffer = array();
-            // Extract FOREIGN KEYS
-            preg_match_all(
-                "/FOREIGN KEY \(`(\w*)`\) REFERENCES `(\w*)` \(`(\w*)`\)/i", 
-                $text[1], 
-                $treffer, 
-                PREG_SET_ORDER);
 
-            if (count($treffer) < 1) {
-                continue;
-            }
-            for ($i = 0; $i < count($treffer); $i++) {
-                $fk[$this->table][$treffer[$i][1]] = $treffer[$i][2] . ":" . $treffer[$i][3];
-            }
-            
+            case 'pgsql':
+                foreach($this->tables as $this->table) {
+                    $quotedTable = !empty($options['quote_identifiers_tableinfo']) ?  $DB->quoteIdentifier($table)  : $this->table;
+                    $res =& $DB->query("SELECT
+                                pg_catalog.pg_get_constraintdef(r.oid, true) AS condef
+                            FROM pg_catalog.pg_constraint r,
+                                 pg_catalog.pg_class c
+                            WHERE c.oid=r.conrelid
+                                  AND r.contype = 'f'
+                                  AND c.relname = '" . $quotedTable . "'");
+                    if (PEAR::isError($res)) {
+                        die($res->getMessage());
+                    }
+
+                    while ($row = $res->fetchRow(DB_FETCHMODE_ASSOC)) {
+                        $treffer = array();
+                        // this only picks up one of these.. see this for why: http://pear.php.net/bugs/bug.php?id=17049
+                        preg_match(
+                            "/FOREIGN KEY \((\w*)\) REFERENCES (\w*)\((\w*)\)/i",
+                            $row['condef'],
+                            $treffer);
+                        if (!count($treffer)) {
+                            continue;
+                        }
+                        $fk[$this->table][$treffer[1]] = $treffer[2] . ":" . $treffer[3];
+                    }
+                }
+                break;
+
+
+            case 'mysql':
+            case 'mysqli':
+            default:
+
+                foreach($this->tables as $this->table) {
+                    $quotedTable = !empty($options['quote_identifiers_tableinfo']) ?  $DB->quoteIdentifier($table)  : $this->table;
+
+                    $res =& $DB->query('SHOW CREATE TABLE ' . $quotedTable );
+
+                    if (PEAR::isError($res)) {
+                        die($res->getMessage());
+                    }
+
+                    $text = $res->fetchRow(DB_FETCHMODE_DEFAULT, 0);
+                    $treffer = array();
+                    // Extract FOREIGN KEYS
+                    preg_match_all(
+                        "/FOREIGN KEY \(`(\w*)`\) REFERENCES `(\w*)` \(`(\w*)`\)/i",
+                        $text[1],
+                        $treffer,
+                        PREG_SET_ORDER);
+
+                    if (!count($treffer)) {
+                        continue;
+                    }
+                    foreach($treffer as $i=> $tref) {
+                        $fk[$this->table][$tref[1]] = $tref[2] . ":" . $tref[3];
+                    }
+
+                }
+
+        }
+
+
+        $this->_fkeys = $fk;
+
+
+
+
+
+    }
+
+
+    /**
+     * generate Foreign Keys (for links.ini)
+     * Currenly only works with mysql / mysqli
+     * to use, you must set option: generate_links=true
+     *
+     * @author Pascal Sch�ni
+     */
+    function generateForeignKeys()
+    {
+        $options = PEAR::getStaticProperty('DB_DataObject','options');
+        if (empty($options['generate_links'])) {
+            return false;
         }
+        $__DB = &$GLOBALS['_DB_DATAOBJECT']['CONNECTIONS'][$this->_database_dsn_md5];
+        if (!in_array($__DB->phptype, array('mysql', 'mysqli', 'pgsql'))) {
+            echo "WARNING: cant handle non-mysql and pgsql introspection for defaults.";
+            return; // cant handle non-mysql introspection for defaults.
+        }
+        $this->debug("generateForeignKeys: Start");
 
+        $fk = $this->_fkeys;
         $links_ini = "";
 
         foreach($fk as $table => $details) {
@@ -433,36 +537,44 @@ class DB_DataObject_Generator extends DB_DataObject
         // it's created on the fly!
         $options = PEAR::getStaticProperty('DB_DataObject','options');
 
-        if (empty($options['schema_location'])) {
+        if (!empty($options['schema_location'])) {
+             $file = "{$options['schema_location']}/{$this->_database}.links.ini";
+        } elseif (isset($options["ini_{$this->_database}"])) {
+            $file = preg_replace('/\.ini/','.links.ini',$options["ini_{$this->_database}"]);
+        } else {
+            $this->debug("generateForeignKeys: SKIP - schema_location or ini_{database} was not set");
             return;
         }
 
-        
-        $file = "{$options['schema_location']}/{$this->_database}.links.ini";
 
         if (!file_exists(dirname($file))) {
-            require_once 'System.php';
-            System::mkdir(array('-p','-m',0755,dirname($file)));
+            mkdir(dirname($file),0755, true);
         }
 
         $this->debug("Writing ini as {$file}\n");
-        
+
         //touch($file); // not sure why this is needed?
         $tmpname = tempnam(session_save_path(),'DataObject_');
-       
+
         $fh = fopen($tmpname,'w');
+        if (!$fh) {
+            return PEAR::raiseError(
+                "Failed to create temporary file: $tmpname\n".
+                "make sure session.save_path is set and is writable\n"
+                ,null, PEAR_ERROR_DIE);
+        }
         fwrite($fh,$links_ini);
         fclose($fh);
         $perms = file_exists($file) ? fileperms($file) : 0755;
         // windows can fail doing this. - not a perfect solution but otherwise it's getting really kludgy..
-        if (!@rename($tmpname, $file)) { 
-            unlink($file); 
+        if (!@rename($tmpname, $file)) {
+            unlink($file);
             rename($tmpname, $file);
         }
         chmod($file, $perms);
     }
 
-      
+
     /**
      * The table geneation part
      *
@@ -484,23 +596,23 @@ class DB_DataObject_Generator extends DB_DataObject
         }
         $DB = $this->getDatabaseConnection();
         $dbtype = $DB->phptype;
-        
+
         $ret = array(
                 'table' => array(),
                 'keys' => array(),
             );
-            
+
         $ret_keys_primary = array();
         $ret_keys_secondary = array();
-        
-        
-        
+
+
+
         foreach($defs as $t) {
-             
+
             $n=0;
             $write_ini = true;
-            
-            
+
+
             switch (strtoupper($t->type)) {
 
                 case 'INT':
@@ -519,7 +631,7 @@ class DB_DataObject_Generator extends DB_DataObject
                         $type +=  DB_DATAOBJECT_BOOL;
                     }
                     break;
-               
+
                 case 'REAL':
                 case 'DOUBLE':
                 case 'DOUBLE PRECISION': // double precision (firebird)
@@ -529,92 +641,93 @@ class DB_DataObject_Generator extends DB_DataObject
                 case 'DECIMAL':
                 case 'MONEY':  // mssql and maybe others
                 case 'NUMERIC':
-                case 'NUMBER': // oci8 
+                case 'NUMBER': // oci8
                     $type = DB_DATAOBJECT_INT; // should really by FLOAT!!! / MONEY...
                     break;
-                    
+
                 case 'YEAR':
-                    $type = DB_DATAOBJECT_INT; 
+                    $type = DB_DATAOBJECT_INT;
                     break;
-                    
+
                 case 'BIT':
-                case 'BOOL':   
-                case 'BOOLEAN':   
-                
+                case 'BOOL':
+                case 'BOOLEAN':
+
                     $type = DB_DATAOBJECT_BOOL;
                     // postgres needs to quote '0'
                     if ($dbtype == 'pgsql') {
                         $type +=  DB_DATAOBJECT_STR;
                     }
                     break;
-                    
+
                 case 'STRING':
                 case 'CHAR':
                 case 'VARCHAR':
                 case 'VARCHAR2':
                 case 'TINYTEXT':
-                
+
                 case 'ENUM':
                 case 'SET':         // not really but oh well
-                
+
                 case 'POINT':       // mysql geometry stuff - not really string - but will do..
-                
+
                 case 'TIMESTAMPTZ': // postgres
                 case 'BPCHAR':      // postgres
                 case 'INTERVAL':    // postgres (eg. '12 days')
-                
+
                 case 'CIDR':        // postgres IP net spec
                 case 'INET':        // postgres IP
                 case 'MACADDR':     // postgress network Mac address.
-                
+
                 case 'INTEGER[]':   // postgres type
                 case 'BOOLEAN[]':   // postgres type
-                
+
                     $type = DB_DATAOBJECT_STR;
                     break;
-                
+
                 case 'TEXT':
                 case 'MEDIUMTEXT':
                 case 'LONGTEXT':
-                    
+                case '_TEXT':   //postgres (?? view ??)
+
                     $type = DB_DATAOBJECT_STR + DB_DATAOBJECT_TXT;
                     break;
-                
-                
-                case 'DATE':    
+
+
+                case 'DATE':
                     $type = DB_DATAOBJECT_STR + DB_DATAOBJECT_DATE;
                     break;
-                    
-                case 'TIME':    
+
+                case 'TIME':
                     $type = DB_DATAOBJECT_STR + DB_DATAOBJECT_TIME;
-                    break;    
-                    
-                
-                case 'DATETIME': 
-                     
+                    break;
+
+
+                case 'DATETIME':
+
                     $type = DB_DATAOBJECT_STR + DB_DATAOBJECT_DATE + DB_DATAOBJECT_TIME;
-                    break;    
-                    
+                    break;
+
                 case 'TIMESTAMP': // do other databases use this???
-                    
+
                     $type = ($dbtype == 'mysql') ?
-                        DB_DATAOBJECT_MYSQLTIMESTAMP : 
+                        DB_DATAOBJECT_MYSQLTIMESTAMP :
                         DB_DATAOBJECT_STR + DB_DATAOBJECT_DATE + DB_DATAOBJECT_TIME;
-                    break;    
-                    
-                
+                    break;
+
+
                 case 'BLOB':       /// these should really be ignored!!!???
                 case 'TINYBLOB':
                 case 'MEDIUMBLOB':
                 case 'LONGBLOB':
-                
+
                 case 'CLOB': // oracle character lob support
-                
+
                 case 'BYTEA':   // postgres blob support..
                     $type = DB_DATAOBJECT_STR + DB_DATAOBJECT_BLOB;
                     break;
-                    
-                default:     
+
+                default:
                     echo "*****************************************************************\n".
                          "**               WARNING UNKNOWN TYPE                          **\n".
                          "** Found column '{$t->name}', of type  '{$t->type}'            **\n".
@@ -627,7 +740,7 @@ class DB_DataObject_Generator extends DB_DataObject
                     $write_ini = false;
                     break;
             }
-            
+
             if (!preg_match('/^[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*$/', $t->name)) {
                 echo "*****************************************************************\n".
                      "**               WARNING COLUMN NAME UNUSABLE                  **\n".
@@ -638,16 +751,16 @@ class DB_DataObject_Generator extends DB_DataObject
                      "*****************************************************************\n";
                 continue;
             }
-            
+
             if (!strlen(trim($t->name))) {
                 continue; // is this a bug?
             }
-            
+
             if (preg_match('/not[ _]null/i',$t->flags)) {
                 $type += DB_DATAOBJECT_NOTNULL;
             }
-           
-           
+
+
             if (in_array($t->name,array('null','yes','no','true','false'))) {
                 echo "*****************************************************************\n".
                      "**                             WARNING                         **\n".
@@ -659,49 +772,55 @@ class DB_DataObject_Generator extends DB_DataObject
             } else {
                 $this->_newConfig .= "{$t->name} = $type\n";
             }
-            
+
             $ret['table'][$t->name] = $type;
             // i've no idea if this will work well on other databases?
             // only use primary key or nextval(), cause the setFrom blocks you setting all key items...
             // if no keys exist fall back to using unique
             //echo "\n{$t->name} => {$t->flags}\n";
             $secondary_key_match = isset($options['generator_secondary_key_match']) ? $options['generator_secondary_key_match'] : 'primary|unique';
-            
-            if (preg_match('/(auto_increment|nextval\()/i',rawurldecode($t->flags)) 
+
+            $m = array();
+            if (preg_match('/(auto_increment|nextval\(([^)]*))/i',rawurldecode($t->flags),$m)
                 || (isset($t->autoincrement) && ($t->autoincrement === true))) {
-                    
+
+                $sn = 'N';
+                if ($DB->phptype == 'pgsql' && !empty($m[2])) {
+                    $sn = preg_replace('/[("]+/','', $m[2]);
+                    //echo urldecode($t->flags) . "\n" ;
+                }
                 // native sequences = 2
                 if ($write_ini) {
-                    $keys_out_primary .= "{$t->name} = N\n";
+                    $keys_out_primary .= "{$t->name} = $sn\n";
                 }
-                $ret_keys_primary[$t->name] = 'N';
-            
+                $ret_keys_primary[$t->name] = $sn;
+
             } else if ($secondary_key_match && preg_match('/('.$secondary_key_match.')/i',$t->flags)) {
                 // keys.. = 1
                 $key_type = 'K';
                 if (!preg_match("/(primary)/i",$t->flags)) {
                     $key_type = 'U';
                 }
-                
+
                 if ($write_ini) {
                     $keys_out_secondary .= "{$t->name} = {$key_type}\n";
                 }
                 $ret_keys_secondary[$t->name] = $key_type;
             }
-            
-        
+
+
         }
-        
+
         $this->_newConfig .= $keys_out . (empty($keys_out_primary) ? $keys_out_secondary : $keys_out_primary);
         $ret['keys'] = empty($keys_out_primary) ? $ret_keys_secondary : $ret_keys_primary;
-        
+
         if (@$_DB_DATAOBJECT['CONFIG']['debug'] > 2) {
             print_r(array("dump for {$this->table}", $ret));
         }
-        
+
         return $ret;
-        
-        
+
+
     }
 
     /**
@@ -710,62 +829,62 @@ class DB_DataObject_Generator extends DB_DataObject
     * @access  public
     * @return  string class name;
     */
-    
-    
+
+
     function getClassNameFromTableName($table)
     {
-        $options = PEAR::getStaticProperty('DB_DataObject','options');
+        $options = EAR::getStaticProperty('DB_DataObject','options');
         $class_prefix  = empty($options['class_prefix']) ? '' : $options['class_prefix'];
         return  $class_prefix.preg_replace('/[^A-Z0-9]/i','_',ucfirst(trim($this->table)));
     }
-    
-    
+
+
     /**
     * Convert a table name into a file name -> override this if you want a different mapping
     *
     * @access  public
     * @return  string file name;
     */
-    
-    
+
+
     function getFileNameFromTableName($table)
     {
         $options = PEAR::getStaticProperty('DB_DataObject','options');
         $base = $options['class_location'];
         if (strpos($base,'%s') !== false) {
             $base = dirname($base);
-        } 
+        }
         if (!file_exists($base)) {
             require_once 'System.php';
             System::mkdir(array('-p',$base));
         }
         if (strpos($options['class_location'],'%s') !== false) {
-            $outfilename   = sprintf($options['class_location'], 
+            $outfilename   = sprintf($options['class_location'],
                     preg_replace('/[^A-Z0-9]/i','_',ucfirst($this->table)));
-        } else { 
+        } else {
             $outfilename = "{$base}/".preg_replace('/[^A-Z0-9]/i','_',ucfirst($this->table)).".php";
         }
         return $outfilename;
-        
+
     }
-    
-    
+
+
      /**
     * Convert a column name into a method name (usually prefixed by get/set/validateXXXXX)
     *
     * @access  public
     * @return  string method name;
     */
-    
-    
+
+
     function getMethodNameFromColumnName($col)
     {
         return ucfirst($col);
     }
-    
-    
-    
-    
+
+
+
+
     /*
      * building the class files
      * for each of the tables output a file!
@@ -774,47 +893,51 @@ class DB_DataObject_Generator extends DB_DataObject
     {
         //echo "Generating Class files:        \n";
         $options = PEAR::getStaticProperty('DB_DataObject','options');
-       
-        
-        if ($extends = @$options['extends']) {
-            $this->_extends = $extends;
-            $this->_extendsFile = $options['extends_location'];
-        }
+
+        $this->_extends = empty($options['extends']) ? $this->_extends : $options['extends'];
+        $this->_extendsFile = !isset($options['extends_location']) ? $this->_extendsFile : $options['extends_location'];
+
 
         foreach($this->tables as $this->table) {
             $this->table        = trim($this->table);
             $this->classname    = $this->getClassNameFromTableName($this->table);
             $i = '';
             $outfilename        = $this->getFileNameFromTableName($this->table);
-            
+
             $oldcontents = '';
             if (file_exists($outfilename)) {
                 // file_get_contents???
                 $oldcontents = implode('',file($outfilename));
             }
-            
+
             $out = $this->_generateClassTable($oldcontents);
             $this->debug( "writing $this->classname\n");
             $tmpname = tempnam(session_save_path(),'DataObject_');
-       
+
             $fh = fopen($tmpname, "w");
+            if (!$fh) {
+                return PEAR::raiseError(
+                    "Failed to create temporary file: $tmpname\n".
+                    "make sure session.save_path is set and is writable\n"
+                    ,null, PEAR_ERROR_DIE);
+            }
             fputs($fh,$out);
             fclose($fh);
             $perms = file_exists($outfilename) ? fileperms($outfilename) : 0755;
-            
+
             // windows can fail doing this. - not a perfect solution but otherwise it's getting really kludgy..
             if (!@rename($tmpname, $outfilename)) {
-                unlink($outfilename); 
+                unlink($outfilename);
                 rename($tmpname, $outfilename);
             }
-            
+
             chmod($outfilename, $perms);
         }
         //echo $out;
     }
 
     /**
-     * class being extended (can be overridden by [DB_DataObject_Generator] extends=xxxx
+     * class being extended (can be overridden by [DB_DataObject] extends=xxxx
      *
      * @var    string
      * @access private
@@ -852,56 +975,59 @@ class DB_DataObject_Generator extends DB_DataObject
         $head .= " */\n";
         $head .= $this->derivedHookExtendsDocBlock();
 
-        
-        // requires
-        $head .= "require_once '{$this->_extendsFile}';\n\n";
+
+        // requires - if you set extends_location = (blank) then no require line will be set
+        // this can be used if you have an autoloader
+
+        if (!empty($this->_extendsFile)) {
+            $head .= "require_once '{$this->_extendsFile}';\n\n";
+        }
         // add dummy class header in...
-        // class 
+        // class
         $head .= $this->derivedHookClassDocBlock();
         $head .= "class {$this->classname} extends {$this->_extends} \n{";
 
         $body =  "\n    ###START_AUTOCODE\n";
         $body .= "    /* the code below is auto generated do not remove the above tag */\n\n";
         // table
-        $padding = (30 - strlen($this->table));
-        $padding  = ($padding < 2) ? 2 : $padding;
-        
-        $p =  str_repeat(' ',$padding) ;
-        
+
+        $p = str_repeat(' ',max(2, (18 - strlen($this->table)))) ;
+
         $options = PEAR::getStaticProperty('DB_DataObject','options');
-        
-        
+
+
         $var = (substr(phpversion(),0,1) > 4) ? 'public' : 'var';
         $var = !empty($options['generator_var_keyword']) ? $options['generator_var_keyword'] : $var;
-        
-        
+
+
         $body .= "    {$var} \$__table = '{$this->table}';  {$p}// table name\n";
-    
-        
+
         // if we are using the option database_{databasename} = dsn
         // then we should add var $_database = here
-        // as database names may not always match.. 
-        
+        // as database names may not always match..
+
         if (empty($GLOBALS['_DB_DATAOBJECT']['CONFIG'])) {
             DB_DataObject::_loadConfig();
         }
 
          // Only include the $_database property if the omit_database_var is unset or false
-        
+
         if (isset($options["database_{$this->_database}"]) && empty($GLOBALS['_DB_DATAOBJECT']['CONFIG']['generator_omit_database_var'])) {
+            $p = str_repeat(' ',   max(2, (16 - strlen($this->_database))));
             $body .= "    {$var} \$_database = '{$this->_database}';  {$p}// database name (used with database_{*} config)\n";
         }
-        
-        
+
+
         if (!empty($options['generator_novars'])) {
             $var = '//'.$var;
         }
-        
+
         $defs = $this->_definitions[$this->table];
 
         // show nice information!
         $connections = array();
         $sets = array();
+
         foreach($defs as $t) {
             if (!strlen(trim($t->name))) {
                 continue;
@@ -916,42 +1042,47 @@ class DB_DataObject_Generator extends DB_DataObject
                      "*****************************************************************\n";
                 continue;
             }
-            
-            
-            $padding = (30 - strlen($t->name));
-            if ($padding < 2) $padding =2;
-            $p =  str_repeat(' ',$padding) ;
-            
+
+            $pad = str_repeat(' ',max(2,  (30 - strlen($t->name))));
+
             $length = empty($t->len) ? '' : '('.$t->len.')';
-            $body .="    {$var} \${$t->name};  {$p}// {$t->type}$length  {$t->flags}\n";
-            
+            $flags = strlen($t->flags) ? (' '. trim($t->flags)) : '';
+            $body .="    {$var} \${$t->name}; {$pad}// {$t->type}{$length}{$flags}\n";
+
             // can not do set as PEAR::DB table info doesnt support it.
             //if (substr($t->Type,0,3) == "set")
             //    $sets[$t->Field] = "array".substr($t->Type,3);
-            $body .= $this->derivedHookVar($t,$padding);
+            $body .= $this->derivedHookVar($t,strlen($p));
         }
 
+        $body .= $this->derivedHookPostVar($defs);
+
         // THIS IS TOTALLY BORKED old FC creation
         // IT WILL BE REMOVED!!!!! in DataObjects 1.6
         // grep -r __clone * to find all it's uses
         // and replace them with $x = clone($y);
         // due to the change in the PHP5 clone design.
-        
+        $static = 'static';
         if ( substr(phpversion(),0,1) < 5) {
             $body .= "\n";
             $body .= "    /* ZE2 compatibility trick*/\n";
             $body .= "    function __clone() { return \$this;}\n";
         }
 
-        // simple creation tools ! (static stuff!)
-        $body .= "\n";
-        $body .= "    /* Static get */\n";
-        $body .= "    function staticGet(\$k,\$v=NULL) { return DB_DataObject::staticGet('{$this->classname}',\$k,\$v); }\n";
-        
+
+        // depricated - in here for BC...
+        if (!empty($options['static_get'])) {
+
+            // simple creation tools ! (static stuff!)
+            $body .= "\n";
+            $body .= "    /* Static get */\n";
+            $body .= "    $static  function staticGet(\$k,\$v=NULL) { " .
+                    "return DB_DataObject::staticGet('{$this->classname}',\$k,\$v = null); }\n";
+        }
         // generate getter and setter methods
         $body .= $this->_generateGetters($input);
         $body .= $this->_generateSetters($input);
-        
+        $body .= $this->_generateLinkMethods($input);
         /*
         theoretically there is scope here to introduce 'list' methods
         based up 'xxxx_up' column!!! for heiracitcal trees..
@@ -962,19 +1093,19 @@ class DB_DataObject_Generator extends DB_DataObject
         //    $kk = strtoupper($k);
         //    $body .="    function getSets{$k}() { return {$v}; }\n";
         //}
-        
+
         if (!empty($options['generator_no_ini'])) {
             $def = $this->_generateDefinitionsTable();  // simplify this!?
             $body .= $this->_generateTableFunction($def['table']);
             $body .= $this->_generateKeysFunction($def['keys']);
             $body .= $this->_generateSequenceKeyFunction($def);
             $body .= $this->_generateDefaultsFunction($this->table, $def['table']);
-        }  else if (!empty($options['generator_add_defaults'])) {   
+        }  else if (!empty($options['generator_add_defaults'])) {
             // I dont really like doing it this way (adding another option)
             // but it helps on older projects.
             $def = $this->_generateDefinitionsTable();  // simplify this!?
             $body .= $this->_generateDefaultsFunction($this->table,$def['table']);
-             
+
         }
         $body .= $this->derivedHookFunctions($input);
 
@@ -983,7 +1114,7 @@ class DB_DataObject_Generator extends DB_DataObject
 
 
         // stubs..
-        
+
         if (!empty($options['generator_add_validate_stubs'])) {
             foreach($defs as $t) {
                 if (!strlen(trim($t->name))) {
@@ -1035,7 +1166,7 @@ class DB_DataObject_Generator extends DB_DataObject
         $ret =  preg_replace(
             '/(\n|\r\n)\s*###START_AUTOCODE(\n|\r\n).*(\n|\r\n)\s*###END_AUTOCODE(\n|\r\n)/s',
             $body,$input);
-        
+
         if (!strlen($ret)) {
             return PEAR::raiseError(
                 "PREG_REPLACE failed to replace body, - you probably need to set these in your php.ini\n".
@@ -1043,7 +1174,7 @@ class DB_DataObject_Generator extends DB_DataObject
                 "pcre.recursion_limit=1000000\n"
                 ,null, PEAR_ERROR_DIE);
        }
-        
+
         return $ret;
     }
 
@@ -1080,7 +1211,21 @@ class DB_DataObject_Generator extends DB_DataObject
         // It MUST NOT be changed here!!!
         return "";
     }
-
+    /**
+     * hook for after var lines (
+     * called at the end of the output of var line have generated, override to add extra var
+     * lines
+     *
+     * @param array cols containing array of objects with type,len,flags etc. from tableInfo call
+     * @access   public
+     * @return  string added to class eg. functions.
+     */
+    function derivedHookPostVar($t)
+    {
+        // This is so derived generator classes can generate variabels
+        // It MUST NOT be changed here!!!
+        return "";
+    }
     /**
      * hook to add extra page-level (in terms of phpDocumentor) DocBlock
      *
@@ -1122,73 +1267,73 @@ class DB_DataObject_Generator extends DB_DataObject
     * getProxyFull - create a class definition on the fly and instantate it..
     *
     * similar to generated files - but also evals the class definitoin code.
-    * 
-    * 
+    *
+    *
     * @param   string database name
     * @param   string  table   name of table to create proxy for.
-    * 
+    *
     *
     * @return   object    Instance of class. or PEAR Error
     * @access   public
     */
-    function getProxyFull($database,$table) 
+    function getProxyFull($database,$table)
     {
-        
+
         if ($err = $this->fillTableSchema($database,$table)) {
             return $err;
         }
-        
-        
+
+
         $options = PEAR::getStaticProperty('DB_DataObject','options');
         $class_prefix  = empty($options['class_prefix']) ? '' : $options['class_prefix'];
-        
-        if ($extends = @$options['extends']) {
-            $this->_extends = $extends;
-            $this->_extendsFile = $options['extends_location'];
-        }
+
+        $this->_extends = empty($options['extends']) ? $this->_extends : $options['extends'];
+        $this->_extendsFile = !isset($options['extends_location']) ? $this->_extendsFile : $options['extends_location'];
+
         $classname = $this->classname = $this->getClassNameFromTableName($this->table);
-        
+
         $out = $this->_generateClassTable();
-        echo $out;
+        //echo $out;
+        eval('?>'.$out);
         return new $classname;
-        
+
     }
-    
+
      /**
     * fillTableSchema - set the database schema on the fly
     *
-    * 
-    * 
+    *
+    *
     * @param   string database name
     * @param   string  table   name of table to create schema info for
     *
     * @return   none | PEAR::error()
     * @access   public
     */
-    function fillTableSchema($database,$table) 
+    function fillTableSchema($database,$table)
     {
         global $_DB_DATAOBJECT;
          // a little bit of sanity testing.
-        if ((false !== strpos($database,"'")) || (false !== strpos($database,";"))) {   
+        if ((false !== strpos($database,"'")) || (false !== strpos($database,";"))) {
             return PEAR::raiseError("Error: Database name contains a quote or semi-colon", null, PEAR_ERROR_DIE);
         }
-        
-        $this->_database  = $database; 
-        
+
+        $this->_database  = $database;
+
         $this->_connect();
         $table = trim($table);
-        
+
         // a little bit of sanity testing.
-        if ((false !== strpos($table,"'")) || (false !== strpos($table,";"))) {   
+        if ((false !== strpos($table,"'")) || (false !== strpos($table,";"))) {
             return PEAR::raiseError("Error: Table contains a quote or semi-colon", null, PEAR_ERROR_DIE);
         }
         $__DB= &$GLOBALS['_DB_DATAOBJECT']['CONNECTIONS'][$this->_database_dsn_md5];
-        
-        
+
+
         $options   = PEAR::getStaticProperty('DB_DataObject','options');
         $db_driver = empty($options['db_driver']) ? 'DB' : $options['db_driver'];
         $is_MDB2   = ($db_driver != 'DB') ? true : false;
-        
+
         if (!$is_MDB2) {
             // try getting a list of schema tables first. (postgres)
             $__DB->expectError(DB_ERROR_UNSUPPORTED);
@@ -1202,13 +1347,16 @@ class DB_DataObject_Generator extends DB_DataObject
             $__DB->loadModule('Manager');
             $__DB->loadModule('Reverse');
         }
-        $quotedTable = !empty($options['quote_identifiers_tableinfo']) ? 
+        $quotedTable = !empty($options['quote_identifiers_tableinfo']) ?
                 $__DB->quoteIdentifier($table) : $table;
-          
+
         if (!$is_MDB2) {
             $defs =  $__DB->tableInfo($quotedTable);
         } else {
             $defs =  $__DB->reverse->tableInfo($quotedTable);
+            if (PEAR::isError($defs)) {
+                return $defs;
+            }
             foreach ($defs as $k => $v) {
                 if (!isset($defs[$k]['length'])) {
                     continue;
@@ -1216,20 +1364,20 @@ class DB_DataObject_Generator extends DB_DataObject
                 $defs[$k]['len'] = $defs[$k]['length'];
             }
         }
-        
-         
-        
-        
+
         if (PEAR::isError($defs)) {
             return $defs;
         }
+
+
+
         if (@$_DB_DATAOBJECT['CONFIG']['debug'] > 2) {
             $this->debug("getting def for $database/$table",'fillTable');
             $this->debug(print_r($defs,true),'defs');
         }
         // cast all definitions to objects - as we deal with that better.
-        
-            
+
+
         foreach($defs as $def) {
             if (is_array($def)) {
                 $this->_definitions[$table][] = (object) $def;
@@ -1238,13 +1386,13 @@ class DB_DataObject_Generator extends DB_DataObject
 
         $this->table = trim($table);
         $ret = $this->_generateDefinitionsTable();
-        
+
         $_DB_DATAOBJECT['INI'][$database][$table] = $ret['table'];
         $_DB_DATAOBJECT['INI'][$database][$table.'__keys'] = $ret['keys'];
         return false;
-        
+
     }
-    
+
     /**
     * Generate getter methods for class definition
     *
@@ -1252,7 +1400,7 @@ class DB_DataObject_Generator extends DB_DataObject
     * @return   string
     * @access   public
     */
-    function _generateGetters($input) 
+    function _generateGetters($input)
     {
 
         $options = PEAR::getStaticProperty('DB_DataObject','options');
@@ -1292,11 +1440,78 @@ class DB_DataObject_Generator extends DB_DataObject
             $getters .= "        return \$this->{$t->name};\n";
             $getters .= "    }\n\n";
         }
-   
+
 
         return $getters;
     }
+    /**
+    * Generate link setter/getter methods for class definition
+    *
+    * @param    string  Existing class contents
+    * @return   string
+    * @access   public
+    */
+    function _generateLinkMethods($input)
+    {
+
+        $options = PEAR::getStaticProperty('DB_DataObject','options');
+        $setters = '';
+
+        // only generate if option is set to true
 
+        // generate_link_methods true::
+
+
+        if  (empty($options['generate_link_methods'])) {
+            //echo "skip lm? - not set";
+            return '';
+        }
+
+        if (empty($this->_fkeys)) {
+            // echo "skip lm? - fkyes empty";
+            return '';
+        }
+        if (empty($this->_fkeys[$this->table])) {
+            //echo "skip lm? - no fkeys for {$this->table}";
+            return '';
+        }
+
+        // remove auto-generated code from input to be able to check if the method exists outside of the auto-code
+        $input = preg_replace('/(\n|\r\n)\s*###START_AUTOCODE(\n|\r\n).*(\n|\r\n)\s*###END_AUTOCODE(\n|\r\n)/s', '', $input);
+
+        $setters .= "\n";
+        $defs     = $this->_fkeys[$this->table];
+
+
+        // $fk[$this->table][$tref[1]] = $tref[2] . ":" . $tref[3];
+
+        // loop through properties and create setter methods
+        foreach ($defs as $k => $info) {
+
+            // build mehtod name
+            $methodName =  is_callable($options['generate_link_methods']) ?
+                    $options['generate_link_methods']($k) : $k;
+
+            if (!strlen(trim($k)) || preg_match("/function[\s]+[&]?$methodName\(/i", $input)) {
+                continue;
+            }
+
+            $setters .= "   /**\n";
+            $setters .= "    * Getter / Setter for \${$k}\n";
+            $setters .= "    *\n";
+            $setters .= "    * @param    mixed   (optional) value to assign\n";
+            $setters .= "    * @access   public\n";
+
+            $setters .= "    */\n";
+            $setters .= (substr(phpversion(),0,1) > 4) ? '    public '
+                                                       : '    ';
+            $setters .= "function $methodName() {\n";
+            $setters .= "        return \$this->link('$k', func_get_args());\n";
+            $setters .= "    }\n\n";
+        }
+
+        return $setters;
+    }
 
    /**
     * Generate setter methods for class definition
@@ -1305,10 +1520,10 @@ class DB_DataObject_Generator extends DB_DataObject
     * @return   string
     * @access   public
     */
-    function _generateSetters($input) 
+    function _generateSetters($input)
     {
 
-        $options = &PEAR::getStaticProperty('DB_DataObject','options');
+        $options = PEAR::getStaticProperty('DB_DataObject','options');
         $setters = '';
 
         // only generate if option is set to true
@@ -1344,7 +1559,7 @@ class DB_DataObject_Generator extends DB_DataObject
             $setters .= "        \$this->{$t->name} = \$value;\n";
             $setters .= "    }\n\n";
         }
-        
+
 
         return $setters;
     }
@@ -1355,15 +1570,15 @@ class DB_DataObject_Generator extends DB_DataObject
     * @return   string
     * @access   public
     */
-    function _generateTableFunction($def) 
+    function _generateTableFunction($def)
     {
         $defines = explode(',','INT,STR,DATE,TIME,BOOL,TXT,BLOB,NOTNULL,MYSQLTIMESTAMP');
-    
+
         $ret = "\n" .
                "    function table()\n" .
                "    {\n" .
                "         return array(\n";
-        
+
         foreach($def as $k=>$v) {
             $str = '0';
             foreach($defines as $dn) {
@@ -1379,9 +1594,9 @@ class DB_DataObject_Generator extends DB_DataObject
         }
         return $ret . "         );\n" .
                       "    }\n";
-            
-    
-    
+
+
+
     }
     /**
     * Generate keys Function - used generator_no_ini is set.
@@ -1390,14 +1605,14 @@ class DB_DataObject_Generator extends DB_DataObject
     * @return   string
     * @access   public
     */
-    function _generateKeysFunction($def) 
+    function _generateKeysFunction($def)
     {
-         
+
         $ret = "\n" .
                "    function keys()\n" .
                "    {\n" .
                "         return array(";
-            
+
         foreach($def as $k=>$type) {
             // hopefully addslashes is good enough here!!!
             $ret .= '\''.addslashes($k).'\', ';
@@ -1405,9 +1620,9 @@ class DB_DataObject_Generator extends DB_DataObject
         $ret = preg_replace('#, $#', '', $ret);
         return $ret . ");\n" .
                       "    }\n";
-            
-    
-    
+
+
+
     }
     /**
     * Generate sequenceKey Function - used generator_no_ini is set.
@@ -1418,25 +1633,25 @@ class DB_DataObject_Generator extends DB_DataObject
     */
     function _generateSequenceKeyFunction($def)
     {
-    
+
         //print_r($def);
         // DB_DataObject::debugLevel(5);
         global $_DB_DATAOBJECT;
         // print_r($def);
-        
-        
+
+
         $dbtype     = $_DB_DATAOBJECT['CONNECTIONS'][$this->_database_dsn_md5]->dsn['phptype'];
         $realkeys   = $def['keys'];
         $keys       = array_keys($realkeys);
         $usekey     = isset($keys[0]) ? $keys[0] : false;
         $table      = $def['table'];
-        
-         
+
+
         $seqname = false;
-        
-        
-        
-        
+
+
+
+
         $ar = array(false,false,false);
         if ($usekey !== false) {
             if (!empty($_DB_DATAOBJECT['CONFIG']['sequence_'.$this->__table])) {
@@ -1444,10 +1659,10 @@ class DB_DataObject_Generator extends DB_DataObject
                 if (strpos($usekey,':') !== false) {
                     list($usekey,$seqname) = explode(':',$usekey);
                 }
-            }  
-        
-            if (in_array($dbtype , array( 'mysql', 'mysqli', 'mssql', 'ifx')) && 
-                ($table[$usekey] & DB_DATAOBJECT_INT) && 
+            }
+
+            if (in_array($dbtype , array( 'mysql', 'mysqli', 'mssql', 'ifx')) &&
+                ($table[$usekey] & DB_DATAOBJECT_INT) &&
                 isset($realkeys[$usekey]) && ($realkeys[$usekey] == 'N')
                 ) {
                 // use native sequence keys.
@@ -1459,10 +1674,10 @@ class DB_DataObject_Generator extends DB_DataObject
                 }
             }
         }
-    
-    
-      
-     
+
+
+
+
         $ret = "\n" .
                "    function sequenceKey() // keyname, use native, native name\n" .
                "    {\n" .
@@ -1472,25 +1687,25 @@ class DB_DataObject_Generator extends DB_DataObject
                 case 'boolean':
                     $ret .= ($v ? 'true' : 'false') . ', ';
                     break;
-                    
+
                 case 'string':
                     $ret .= "'" . $v . "', ";
                     break;
-                    
+
                 default:    // eak
                     $ret .= "null, ";
-        
+
             }
         }
         $ret = preg_replace('#, $#', '', $ret);
         return $ret . ");\n" .
                       "    }\n";
-        
+
     }
     /**
     * Generate defaults Function - used generator_add_defaults or generator_no_ini is set.
     * Only supports mysql and mysqli ... welcome ideas for more..
-    * 
+    *
     *
     * @param    array  table and key definition.
     * @return   string
@@ -1502,36 +1717,36 @@ class DB_DataObject_Generator extends DB_DataObject
         if (!in_array($__DB->phptype, array('mysql','mysqli'))) {
             return; // cant handle non-mysql introspection for defaults.
         }
-        $options = PEAR::getStaticProperty('DB_DataObject','options'); 
+        $options = PEAR::getStaticProperty('DB_DataObject','options');
         $db_driver = empty($options['db_driver']) ? 'DB' : $options['db_driver'];
-        $method = $db_driver == 'DB' ? 'getAll' : 'queryAll'; 
+        $method = $db_driver == 'DB' ? 'getAll' : 'queryAll';
         $res = $__DB->$method('DESCRIBE ' . $table,DB_FETCHMODE_ASSOC);
         $defaults = array();
         foreach($res as $ar) {
             // this is initially very dumb... -> and it may mess up..
             $type = $defs[$ar['Field']];
-            
+
             switch (true) {
-                
+
                 case (is_null( $ar['Default'])):
                     $defaults[$ar['Field']]  = 'null';
                     break;
-                
-                case ($type & DB_DATAOBJECT_DATE): 
-                case ($type & DB_DATAOBJECT_TIME): 
+
+                case ($type & DB_DATAOBJECT_DATE):
+                case ($type & DB_DATAOBJECT_TIME):
                 case ($type & DB_DATAOBJECT_MYSQLTIMESTAMP): // not supported yet..
                     break;
-                    
-                case ($type & DB_DATAOBJECT_BOOL): 
+
+                case ($type & DB_DATAOBJECT_BOOL):
                     $defaults[$ar['Field']] = (int)(boolean) $ar['Default'];
                     break;
-                    
-                
-                case ($type & DB_DATAOBJECT_STR): 
+
+
+                case ($type & DB_DATAOBJECT_STR):
                     $defaults[$ar['Field']] =  "'" . addslashes($ar['Default']) . "'";
                     break;
-                
-                 
+
+
                 default:    // hopefully eveything else...  - numbers etc.
                     if (!strlen($ar['Default'])) {
                         continue;
@@ -1540,14 +1755,14 @@ class DB_DataObject_Generator extends DB_DataObject
                         $defaults[$ar['Field']] =   $ar['Default'];
                     }
                     break;
-            
+
             }
             //var_dump(array($ar['Field'], $ar['Default'], $defaults[$ar['Field']]));
         }
         if (empty($defaults)) {
             return;
         }
-        
+
         $ret = "\n" .
                "    function defaults() // column default values \n" .
                "    {\n" .
@@ -1557,14 +1772,14 @@ class DB_DataObject_Generator extends DB_DataObject
         }
         return $ret . "         );\n" .
                       "    }\n";
-         
-     
-    
-    
+
+
+
+
     }
-    
-    
-     
-    
-    
+
+
+
+
+
 }
diff --git a/civicrm/packages/DB/DataObject/Links.php b/civicrm/packages/DB/DataObject/Links.php
new file mode 100644
index 0000000000..b4717bb322
--- /dev/null
+++ b/civicrm/packages/DB/DataObject/Links.php
@@ -0,0 +1,485 @@
+<?php
+/**
+ * Link tool for DB_DataObject
+ *
+ * PHP versions 5
+ *
+ * LICENSE: This source file is subject to version 3.01 of the PHP license
+ * that is available through the world-wide-web at the following URI:
+ * http://www.php.net/license/3_01.txt.  If you did not receive a copy of
+ * the PHP License and are unable to obtain it through the web, please
+ * send a note to license@php.net so we can mail you a copy immediately.
+ *
+ * @category   Database
+ * @package    DB_DataObject
+ * @author     Alan Knowles <alan@akbkhome.com>
+ * @copyright  1997-2006 The PHP Group
+ * @license    http://www.php.net/license/3_01.txt  PHP License 3.01
+ * @version    : FIXME
+ * @link       http://pear.php.net/package/DB_DataObject
+ */
+
+
+/**
+ *
+ * Example of how this could be used..
+ *
+ * The lind method are now in here.
+ *
+ * Currenly only supports existing methods, and new 'link()' method
+ *
+ */
+
+
+/**
+ * Links class
+ *
+ * @package DB_DataObject
+ */
+class DB_DataObject_Links
+{
+     /**
+     * @property {DB_DataObject}      do   DataObject to apply this to.
+     */
+    var $do = false;
+
+
+    /**
+     * @property {Array|String} load    What to load, 'all' or an array of properties. (default all)
+     */
+    var $load = 'all';
+    /**
+     * @property {String|Boolean}       scanf   use part of column name as resulting
+     *                                          property name. (default false)
+     */
+    var $scanf = false;
+    /**
+     * @property {String|Boolean}       printf  use column name as sprintf for resulting property name..
+     *                                     (default %s_link if apply is true, otherwise it is %s)
+     */
+    var $printf = false;
+    /**
+     * @property {Boolean}      cached  cache the result, so future queries will use cache rather
+     *                                  than running the expensive sql query.
+     */
+    var $cached = false;
+    /**
+     * @property {Boolean}      apply   apply the result to this object, (default true)
+     */
+    var $apply = true;
+
+
+    //------------------------- RETURN ------------------------------------
+    /**
+     * @property {Array}      links    key value associative array of links.
+     */
+    var $links;
+
+
+    /**
+     * Constructor
+     *   -- good ole style..
+     *  @param {DB_DataObject}           do  DataObject to apply to.
+     *  @param {Array}           cfg  Configuration (basically properties of this object)
+     */
+
+    function __construct($do,$cfg= array())
+    {
+        // check if do is set!!!?
+        $this->do = $do;
+
+        foreach($cfg as $k=>$v) {
+            $this->$k = $v;
+        }
+
+
+    }
+
+    /**
+     * return name from related object
+     *
+     * The relies on  a <dbname>.links.ini file, unless you specify the arguments.
+     *
+     * you can also use $this->getLink('thisColumnName','otherTable','otherTableColumnName')
+     *
+     *
+     * @param string $field|array    either row or row.xxxxx or links spec.
+     * @param string|DB_DataObject $table  (optional) name of table to look up value in
+     * @param string $link   (optional)  name of column in other table to match
+     * @author Tim White <tim@cyface.com>
+     * @access public
+     * @return mixed object on success false on failure or '0' when not linked
+     */
+    function getLink($field, $table= false, $link='')
+    {
+
+        static $cache = array();
+
+        // GUESS THE LINKED TABLE.. (if found - recursevly call self)
+
+        if ($table == false) {
+
+
+            $info = $this->linkInfo($field);
+
+            if ($info) {
+                return $this->getLink($field, $info[0],  $link === false ? $info[1] : $link );
+            }
+
+            // no links defined.. - use borked BC method...
+                  // use the old _ method - this shouldnt happen if called via getLinks()
+            if (!($p = strpos($field, '_'))) {
+                return false;
+            }
+            $table = substr($field, 0, $p);
+            return $this->getLink($field, $table);
+
+
+
+        }
+
+        $tn = is_string($table) ? $table : $table->tableName();
+
+
+
+        if (!isset($this->do->$field)) {
+            $this->do->raiseError("getLink: row not set $field", DB_DATAOBJECT_ERROR_NODATA);
+            return false;
+        }
+
+        // check to see if we know anything about this table..
+
+
+        if (empty($this->do->$field) || $this->do->$field < 0) {
+            return 0; // no record.
+        }
+
+        if ($this->cached && isset($cache[$tn.':'. $link .':'. $this->do->$field])) {
+            return $cache[$tn.':'. $link .':'. $this->do->$field];
+        }
+
+        $obj = is_string($table) ? $this->do->factory($tn) : $table;;
+
+        if (!is_a($obj,'DB_DataObject')) {
+            $this->do->raiseError(
+                "getLink:Could not find class for row $field, table $tn",
+                DB_DATAOBJECT_ERROR_INVALIDCONFIG);
+            return false;
+        }
+        // -1 or 0 -- no referenced record..
+
+        $ret = false;
+        if ($link) {
+
+            if ($obj->get($link, $this->do->$field)) {
+                $ret = $obj;
+            }
+
+
+        // this really only happens when no link config is set (old BC stuff)
+        } else if ($obj->get($this->do->$field)) {
+            $ret= $obj;
+
+        }
+        if ($this->cached) {
+            $cache[$tn.':'. $link .':'. $this->do->$field] = $ret;
+        }
+        return $ret;
+
+    }
+    /**
+     * get link information for a field or field specification
+     *
+     * alll link (and join methods accept the 'link' info ) in various ways
+     * string : 'field' = which field to get (uses ???.links.ini to work out what)
+     * array(2) : 'field', 'table:remote_col' << just like the links.ini def.
+     * array(3) : 'field', $dataobject, 'remote_col'  (handy for joinAdd to do nested joins.)
+     *
+     * @param string|array $field or link spec to use.
+     * @return (false|array) array of dataobject and linked field or false.
+     *
+     *
+     */
+
+    function linkInfo($field)
+    {
+
+        if (is_array($field)) {
+            if (count($field) == 3) {
+                // array with 3 args:
+                // local_col , dataobject, remote_col
+                return array(
+                    $field[1],
+                    $field[2],
+                    $field[0]
+                );
+
+            }
+            list($table,$link) = explode(':', $field[1]);
+
+            return array(
+                $this->do->factory($table),
+                $link,
+                $field[0]
+            );
+
+        }
+        // work out the link.. (classic way)
+
+        $links = $this->do->links();
+
+        if (empty($links) || !is_array($links)) {
+
+            return false;
+        }
+
+
+        if (!isset($links[$field])) {
+
+            return false;
+        }
+        list($table,$link) = explode(':', $links[$field]);
+
+
+        //??? needed???
+        if ($p = strpos($field,".")) {
+            $field = substr($field,0,$p);
+        }
+
+        return array(
+            $this->do->factory($table),
+            $link,
+            $field
+        );
+
+
+
+
+    }
+
+
+
+    /**
+     *  a generic geter/setter provider..
+     *
+     *  provides a generic getter setter for the referenced object
+     *  eg.
+     *  $link->link('company_id') returns getLink for the object
+     *  if nothing is linked (it will return an empty dataObject)
+     *  $link->link('company_id', array(1)) - just sets the
+     *
+     *  also array as the field speck supports
+     *      $link->link(array('company_id', 'company:id'))
+     *
+     *
+     *  @param  string|array   $field   the field to fetch or link spec.
+     *  @params array          $args    the arguments sent to the getter setter
+     *  @return mixed true of false on set, the object on getter.
+     *
+     */
+    function link($field, $args = array())
+    {
+        $info = $this->linkInfo($field);
+
+        if (!$info) {
+            $this->do->raiseError(
+                "getLink:Could not find link for row $field",
+                DB_DATAOBJECT_ERROR_INVALIDCONFIG);
+            return false;
+        }
+        $field = $info[2];
+
+
+        if (empty($args)) { // either an empty array or really empty....
+
+            if (!isset($this->do->$field)) {
+                return $info[0]; // empty dataobject.
+            }
+
+            $ret = $this->getLink($field);
+            // nothing linked -- return new object..
+            return ($ret === 0) ? $info[0] : $ret;
+
+        }
+        $assign = is_array($args) ? $args[0] : $args;
+
+        // otherwise it's a set call..
+        if (!is_a($assign , 'DB_DataObject')) {
+
+            if (is_numeric($assign) && is_integer($assign * 1)) {
+                if ($assign  > 0) {
+
+                    if (!$info) {
+                        return false;
+                    }
+                    // check that record exists..
+                    if (!$info[0]->get($info[1], $assign )) {
+                        return false;
+                    }
+
+                }
+
+                $this->do->$field = $assign ;
+                return true;
+            }
+
+            return false;
+        }
+
+        // otherwise we are assigning it ...
+
+        $this->do->$field = $assign->{$info[1]};
+        return true;
+
+
+    }
+    /**
+     * load related objects
+     *
+     * Generally not recommended to use this.
+     * The generator should support creating getter_setter methods which are better suited.
+     *
+     * Relies on  <dbname>.links.ini
+     *
+     * Sets properties on the calling dataobject  you can change what
+     * object vars the links are stored in by  changeing the format parameter
+     *
+     *
+     * @param  string format (default _%s) where %s is the table name.
+     * @author Tim White <tim@cyface.com>
+     * @access public
+     * @return boolean , true on success
+     */
+
+    function applyLinks($format = '_%s')
+    {
+
+        // get table will load the options.
+        if ($this->do->_link_loaded) {
+            return true;
+        }
+
+        $this->do->_link_loaded = false;
+        $cols  = $this->do->table();
+        $links = $this->do->links();
+
+        $loaded = array();
+
+        if ($links) {
+            foreach($links as $key => $match) {
+                list($table,$link) = explode(':', $match);
+                $k = sprintf($format, str_replace('.', '_', $key));
+                // makes sure that '.' is the end of the key;
+                if ($p = strpos($key,'.')) {
+                      $key = substr($key, 0, $p);
+                }
+
+                $this->do->$k = $this->getLink($key, $table, $link);
+
+                if (is_object($this->do->$k)) {
+                    $loaded[] = $k;
+                }
+            }
+            $this->do->_link_loaded = $loaded;
+            return true;
+        }
+        // this is the autonaming stuff..
+        // it sends the column name down to getLink and lets that sort it out..
+        // if there is a links file then it is not used!
+        // IT IS DEPRECATED!!!! - DO NOT USE
+        if (!is_null($links)) {
+            return false;
+        }
+
+
+        foreach (array_keys($cols) as $key) {
+            if (!($p = strpos($key, '_'))) {
+                continue;
+            }
+            // does the table exist.
+            $k =sprintf($format, $key);
+            $this->do->$k = $this->getLink($key);
+            if (is_object($this->do->$k)) {
+                $loaded[] = $k;
+            }
+        }
+        $this->do->_link_loaded = $loaded;
+        return true;
+    }
+
+    /**
+     * getLinkArray
+     * Fetch an array of related objects. This should be used in conjunction with a
+     * <dbname>.links.ini file configuration (see the introduction on linking for details on this).
+     *
+     * You may also use this with all parameters to specify, the column and related table.
+     *
+     * @access public
+     * @param string $field- either column or column.xxxxx
+     * @param string $table (optional) name of table to look up value in
+     * @param string $fkey (optional) fetchall key see DB_DataObject::fetchAll()
+     * @param string $fval (optional)fetchall val DB_DataObject::fetchAll()
+     * @param string $fval (optional) fetchall method DB_DataObject::fetchAll()
+     * @return array - array of results (empty array on failure)
+     *
+     * Example - Getting the related objects
+     *
+     * $person = new DataObjects_Person;
+     * $person->get(12);
+     * $children = $person->getLinkArray('children');
+     *
+     * echo 'There are ', count($children), ' descendant(s):<br />';
+     * foreach ($children as $child) {
+     *     echo $child->name, '<br />';
+     * }
+     *
+     */
+    function getLinkArray($field, $table = null, $fkey = false, $fval = false, $fmethod = false)
+    {
+
+        $ret = array();
+        if (!$table)  {
+
+
+            $links = $this->do->links();
+
+            if (is_array($links)) {
+                if (!isset($links[$field])) {
+                    // failed..
+                    return $ret;
+                }
+                list($table,$link) = explode(':',$links[$field]);
+                return $this->getLinkArray($field,$table);
+            }
+            if (!($p = strpos($field,'_'))) {
+                return $ret;
+            }
+            return $this->getLinkArray($field,substr($field,0,$p));
+
+
+        }
+
+        $c  = $this->do->factory($table);
+
+        if (!is_object($c) || !is_a($c,'DB_DataObject')) {
+            $this->do->raiseError(
+                "getLinkArray:Could not find class for row $field, table $table",
+                DB_DATAOBJECT_ERROR_INVALIDCONFIG
+            );
+            return $ret;
+        }
+
+        // if the user defined method list exists - use it...
+        if (method_exists($c, 'listFind')) {
+            $c->listFind($this->id);
+            while ($c->fetch()) {
+                $ret[] = clone($c);
+            }
+            return $ret;
+        }
+        return $c->fetchAll($fkey, $fval, $fmethod);
+
+
+    }
+
+}
diff --git a/civicrm/packages/DB/DataObject/createTables.php b/civicrm/packages/DB/DataObject/createTables.php
index e2a6263e31..4b5ecbfa66 100644
--- a/civicrm/packages/DB/DataObject/createTables.php
+++ b/civicrm/packages/DB/DataObject/createTables.php
@@ -19,7 +19,7 @@
 // $Id: createTables.php 277015 2009-03-12 05:51:03Z alan_k $
 //
 
-// since this version doesnt use overload, 
+// since this version doesnt use overload,
 // and I assume anyone using custom generators should add this..
 
 define('DB_DATAOBJECT_NO_OVERLOAD',1);
@@ -27,13 +27,17 @@ define('DB_DATAOBJECT_NO_OVERLOAD',1);
 //require_once 'DB/DataObject/Generator.php';
 require_once 'DB/DataObject/Generator.php';
 
+if (php_sapi_name() != 'cli') {
+    PEAR::raiseError("\nERROR: You must turn use the cli sapi to run this", null, PEAR_ERROR_DIE);
+}
+
 if (!ini_get('register_argc_argv')) {
     PEAR::raiseError("\nERROR: You must turn register_argc_argv On in you php.ini file for this to work\neg.\n\nregister_argc_argv = On\n\n", null, PEAR_ERROR_DIE);
     exit;
 }
 
 if (!@$_SERVER['argv'][1]) {
-    PEAR::raiseError("\nERROR: createTable.php usage:\n\nC:\php\pear\DB\DataObjects\createTable.php example.ini\n\n", null, PEAR_ERROR_DIE);
+    PEAR::raiseError("\nERROR: createTable.php usage:\n\n" .$_SERVER['argv'][0] . " example.ini\n\n", null, PEAR_ERROR_DIE);
     exit;
 }
 
@@ -56,4 +60,4 @@ DB_DataObject::debugLevel(isset($options['debug']) ? $options['debug'] : 1);
 
 $generator = new DB_DataObject_Generator;
 $generator->start();
- 
+
diff --git a/civicrm/packages/DB/Table.php b/civicrm/packages/DB/Table.php
deleted file mode 100644
index fb62058fb5..0000000000
--- a/civicrm/packages/DB/Table.php
+++ /dev/null
@@ -1,2334 +0,0 @@
-<?php
-
-/**
- * DB_Table is a database API and data type SQL abstraction class.
- * 
- * DB_Table provides database API abstraction, data type abstraction,
- * automated SELECT, INSERT, and UPDATE queries, automated table
- * creation, automated validation of inserted/updated column values,
- * and automated creation of QuickForm elements based on the column
- * definitions.
- * 
- * PHP versions 4 and 5
- *
- * LICENSE:
- * 
- * Copyright (c) 1997-2007, Paul M. Jones <pmjones@php.net>
- *                          David C. Morse <morse@php.net>
- *                          Mark Wiesemann <wiesemann@php.net>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *    * Redistributions of source code must retain the above copyright
- *      notice, this list of conditions and the following disclaimer.
- *    * Redistributions in binary form must reproduce the above copyright
- *      notice, this list of conditions and the following disclaimer in the 
- *      documentation and/or other materials provided with the distribution.
- *    * The names of the authors may not be used to endorse or promote products 
- *      derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * @category Database
- * @package  DB_Table
- * @author   Paul M. Jones <pmjones@php.net>
- * @author   David C. Morse <morse@php.net>
- * @author   Mark Wiesemann <wiesemann@php.net>
- * @license  http://opensource.org/licenses/bsd-license.php New BSD License
- * @version  CVS: $Id: Table.php,v 1.90 2008/12/25 19:56:35 wiesemann Exp $
- * @link     http://pear.php.net/package/DB_Table
- */
-
-/**
- * Error code at instantiation time when the first parameter to the
- * constructor is not a PEAR DB object.
- */
-define('DB_TABLE_ERR_NOT_DB_OBJECT',    -1);
-
-/**
- * Error code at instantiation time when the PEAR DB/MDB2 $phptype is not
- * supported by DB_Table.
- */
-define('DB_TABLE_ERR_PHPTYPE',          -2);
-
-/**
- * Error code when you call select() or selectResult() and the first
- * parameter is a string that does not match any of the $this->sql keys.
- */
-define('DB_TABLE_ERR_SQL_UNDEF',        -3);
-
-/**
- * Error code when you call select*() or buildSQL() and the first
- * parameter is neither an array nor a string
- */
-define('DB_TABLE_ERR_SQL_NOT_STRING',   -4);
-
-/**
- * Error code when you try to insert data to a column that is not in the
- * $this->col array.
- */
-define('DB_TABLE_ERR_INS_COL_NOMAP',    -5);
-
-/**
- * Error code when you try to insert data, and that data does not have a
- * column marked as 'require' in the $this->col array.
- */
-define('DB_TABLE_ERR_INS_COL_REQUIRED', -6);
-
-/**
- * Error code when auto-validation fails on data to be inserted.
- */
-define('DB_TABLE_ERR_INS_DATA_INVALID', -7);
-
-/**
- * Error code when you try to update data to a column that is not in the
- * $this->col array.
- */
-define('DB_TABLE_ERR_UPD_COL_NOMAP',    -8);
-
-/**
- * Error code when you try to update data, and that data does not have a
- * column marked as 'require' in the $this->col array.
- */
-define('DB_TABLE_ERR_UPD_COL_REQUIRED', -9);
-
-/**
- * Error code when auto-validation fails on update data.
- */
-define('DB_TABLE_ERR_UPD_DATA_INVALID', -10);
-
-/**
- * Error code when you use a create() flag that is not recognized (must
- * be 'safe', 'drop', 'verify' or boolean false.
- */
-define('DB_TABLE_ERR_CREATE_FLAG',      -11);
-
-/**
- * Error code at create() time when you define an index in $this->idx
- * that has no columns.
- */
-define('DB_TABLE_ERR_IDX_NO_COLS',      -12);
-
-/**
- * Error code at create() time when you define an index in $this->idx
- * that refers to a column that does not exist in the $this->col array.
- */
-define('DB_TABLE_ERR_IDX_COL_UNDEF',    -13);
-
-/**
- * Error code at create() time when you define a $this->idx index type
- * that is not recognized (must be 'normal' or 'unique').
- */
-define('DB_TABLE_ERR_IDX_TYPE',         -14);
-
-/**
- * Error code at create() time when you have an error in a 'char' or
- * 'varchar' definition in $this->col (usually because 'size' is wrong).
- */
-define('DB_TABLE_ERR_DECLARE_STRING',   -15);
-
-/**
- * Error code at create() time when you have an error in a 'decimal'
- * definition (usually becuase the 'size' or 'scope' are wrong).
- */
-define('DB_TABLE_ERR_DECLARE_DECIMAL',  -16);
-
-/**
- * Error code at create() time when you define a column in $this->col
- * with an unrecognized 'type'.
- */
-define('DB_TABLE_ERR_DECLARE_TYPE',     -17);
-
-/**
- * Error code at validation time when a column in $this->col has an
- * unrecognized 'type'.
- */
-define('DB_TABLE_ERR_VALIDATE_TYPE',    -18);
-
-/**
- * Error code at create() time when you define a column in $this->col
- * with an invalid column name (usually because it's a reserved keyword).
- */
-define('DB_TABLE_ERR_DECLARE_COLNAME',  -19);
-
-/**
- * Error code at create() time when you define an index in $this->idx
- * with an invalid index name (usually because it's a reserved keyword).
- */
-define('DB_TABLE_ERR_DECLARE_IDXNAME',  -20);
-
-/**
- * Error code at create() time when you define an index in $this->idx
- * that refers to a CLOB column.
- */
-define('DB_TABLE_ERR_IDX_COL_CLOB',     -21);
-
-/**
- * Error code at create() time when you define a column name that is
- * more than 30 chars long (an Oracle restriction).
- */
-define('DB_TABLE_ERR_DECLARE_STRLEN',   -22);
-
-/**
- * Error code at create() time when the index name ends up being more
- * than 30 chars long (an Oracle restriction).
- */
-define('DB_TABLE_ERR_IDX_STRLEN',       -23);
-
-/**
- * Error code at create() time when the table name is more than 30 chars
- * long (an Oracle restriction).
- */
-define('DB_TABLE_ERR_TABLE_STRLEN',     -24);
-
-/**
- * Error code at nextID() time when the sequence name is more than 30
- * chars long (an Oracle restriction).
- */
-define('DB_TABLE_ERR_SEQ_STRLEN',       -25);
-
-/**
- * Error code at verify() time when the table does not exist in the
- * database.
- */
-define('DB_TABLE_ERR_VER_TABLE_MISSING', -26);
-
-/**
- * Error code at verify() time when the column does not exist in the
- * database table.
- */
-define('DB_TABLE_ERR_VER_COLUMN_MISSING', -27);
-
-/**
- * Error code at verify() time when the column type does not match the
- * type specified in the column declaration.
- */
-define('DB_TABLE_ERR_VER_COLUMN_TYPE',  -28);
-
-/**
- * Error code at instantiation time when the column definition array
- * does not contain at least one column.
- */
-define('DB_TABLE_ERR_NO_COLS',          -29);
-
-/**
- * Error code at verify() time when an index cannot be found in the
- * database table.
- */
-define('DB_TABLE_ERR_VER_IDX_MISSING',   -30);
-
-/**
- * Error code at verify() time when an index does not contain all
- * columns that it should contain.
- */
-define('DB_TABLE_ERR_VER_IDX_COL_MISSING', -31);
-
-/**
- * Error code at instantiation time when a creation mode
- * is not available for a phptype.
- */
-define('DB_TABLE_ERR_CREATE_PHPTYPE', -32);
-
-/**
- * Error code at create() time when you define more than one primary key
- * in $this->idx.
- */
-define('DB_TABLE_ERR_DECLARE_PRIMARY', -33);
-
-/**
- * Error code at create() time when a primary key is defined in $this->idx
- * and SQLite is used (SQLite does not support primary keys).
- */
-define('DB_TABLE_ERR_DECLARE_PRIM_SQLITE', -34);
-
-/**
- * Error code at alter() time when altering a table field is not possible
- * (e.g. because MDB2 has no support for the change or because the DBMS
- * does not support the change).
- */
-define('DB_TABLE_ERR_ALTER_TABLE_IMPOS', -35);
-
-/**
- * Error code at alter() time when altering a(n) index/constraint is not possible
- * (e.g. because MDB2 has no support for the change or because the DBMS
- * does not support the change).
- */
-define('DB_TABLE_ERR_ALTER_INDEX_IMPOS', -36);
-
-/**
- * Error code at insert() time due to invalid the auto-increment column
- * definition. This column must be an integer type and required.
- */
-define('DB_TABLE_ERR_AUTO_INC_COL', -37);
-
-/**
- * Error code at instantiation time when both the $table parameter
- * and the $table class property are missing.
- */
-define('DB_TABLE_ERR_TABLE_NAME_MISSING', -38);
-
-/**
- * The DB_Table_Base parent class
- */
-require_once 'DB/Table/Base.php';
-
-/**
- * The PEAR class for errors
- */
-require_once 'PEAR.php';
-
-/**
- * The Date class for recasting date and time values
- */
-require_once 'DB/Table/Date.php';
-
-
-/**
- * DB_Table supports these RDBMS engines and their various native data
- * types; we need these here instead of in Manager.php because the
- * initial array key tells us what databases are supported.
- */
-$GLOBALS['_DB_TABLE']['type'] = array(
-    'fbsql' => array(
-        'boolean'   => 'DECIMAL(1,0)',
-        'char'      => 'CHAR',
-        'varchar'   => 'VARCHAR',
-        'smallint'  => 'SMALLINT',
-        'integer'   => 'INTEGER',
-        'bigint'    => 'LONGINT',
-        'decimal'   => 'DECIMAL',
-        'single'    => 'REAL',
-        'double'    => 'DOUBLE PRECISION',
-        'clob'      => 'CLOB',
-        'date'      => 'CHAR(10)',
-        'time'      => 'CHAR(8)',
-        'timestamp' => 'CHAR(19)'
-    ),
-    'ibase' => array(
-        'boolean'   => 'DECIMAL(1,0)',
-        'char'      => 'CHAR',
-        'varchar'   => 'VARCHAR',
-        'smallint'  => 'SMALLINT',
-        'integer'   => 'INTEGER',
-        'bigint'    => 'BIGINT',
-        'decimal'   => 'DECIMAL',
-        'single'    => 'FLOAT',
-        'double'    => 'DOUBLE PRECISION',
-        'clob'      => 'BLOB SUB_TYPE 1',
-        'date'      => 'DATE',
-        'time'      => 'TIME',
-        'timestamp' => 'TIMESTAMP'
-    ),
-    'mssql' => array(
-        'boolean'   => 'DECIMAL(1,0)',
-        'char'      => 'CHAR',
-        'varchar'   => 'VARCHAR',
-        'smallint'  => 'SMALLINT',
-        'integer'   => 'INTEGER',
-        'bigint'    => 'BIGINT',
-        'decimal'   => 'DECIMAL',
-        'single'    => 'REAL',
-        'double'    => 'FLOAT',
-        'clob'      => 'TEXT',
-        'date'      => 'CHAR(10)',
-        'time'      => 'CHAR(8)',
-        'timestamp' => 'CHAR(19)'
-    ),
-    'mysql' => array(
-        'boolean'   => 'DECIMAL(1,0)',
-        'char'      => 'CHAR',
-        'varchar'   => 'VARCHAR',
-        'smallint'  => 'SMALLINT',
-        'integer'   => 'INTEGER',
-        'bigint'    => 'BIGINT',
-        'decimal'   => 'DECIMAL',
-        'single'    => 'FLOAT',
-        'double'    => 'DOUBLE',
-        'clob'      => 'LONGTEXT',
-        'date'      => 'CHAR(10)',
-        'time'      => 'CHAR(8)',
-        'timestamp' => 'CHAR(19)'
-    ),
-    'mysqli' => array(
-        'boolean'   => 'DECIMAL(1,0)',
-        'char'      => 'CHAR',
-        'varchar'   => 'VARCHAR',
-        'smallint'  => 'SMALLINT',
-        'integer'   => 'INTEGER',
-        'bigint'    => 'BIGINT',
-        'decimal'   => 'DECIMAL',
-        'single'    => 'FLOAT',
-        'double'    => 'DOUBLE',
-        'clob'      => 'LONGTEXT',
-        'date'      => 'CHAR(10)',
-        'time'      => 'CHAR(8)',
-        'timestamp' => 'CHAR(19)'
-    ),
-    'oci8' => array(
-        'boolean'   => 'NUMBER(1)',
-        'char'      => 'CHAR',
-        'varchar'   => 'VARCHAR2',
-        'smallint'  => 'NUMBER(6)',
-        'integer'   => 'NUMBER(11)',
-        'bigint'    => 'NUMBER(19)',
-        'decimal'   => 'NUMBER',
-        'single'    => 'REAL',
-        'double'    => 'DOUBLE PRECISION',
-        'clob'      => 'CLOB',
-        'date'      => 'CHAR(10)',
-        'time'      => 'CHAR(8)',
-        'timestamp' => 'CHAR(19)'
-    ),
-    'pgsql' => array(
-        'boolean'   => 'DECIMAL(1,0)',
-        'char'      => 'CHAR',
-        'varchar'   => 'VARCHAR',
-        'smallint'  => 'SMALLINT',
-        'integer'   => 'INTEGER',
-        'bigint'    => 'BIGINT',
-        'decimal'   => 'DECIMAL',
-        'single'    => 'REAL',
-        'double'    => 'DOUBLE PRECISION',
-        'clob'      => 'TEXT',
-        'date'      => 'CHAR(10)',
-        'time'      => 'CHAR(8)',
-        'timestamp' => 'CHAR(19)'
-    ),
-    'sqlite' => array(
-        'boolean'   => 'BOOLEAN',
-        'char'      => 'CHAR',
-        'varchar'   => 'VARCHAR',
-        'smallint'  => 'SMALLINT',
-        'integer'   => 'INTEGER',
-        'bigint'    => 'BIGINT',
-        'decimal'   => 'NUMERIC',
-        'single'    => 'FLOAT',
-        'double'    => 'DOUBLE',
-        'clob'      => 'CLOB',
-        'date'      => 'DATE',
-        'time'      => 'TIME',
-        'timestamp' => 'TIMESTAMP'
-    )
-);
-
-
-/** 
- * US-English default error messages. If you want to internationalize, you can
- * set the translated messages via $GLOBALS['_DB_TABLE']['error']. You can also
- * use DB_Table::setErrorMessage(). Examples:
- * 
- * <code>
- * (1) $GLOBALS['_DB_TABLE]['error'] = array(DB_TABLE_ERR_PHPTYPE   => '...',
- *                                           DB_TABLE_ERR_SQL_UNDEF => '...');
- * (2) DB_Table::setErrorMessage(DB_TABLE_ERR_PHPTYPE,   '...');
- *     DB_Table::setErrorMessage(DB_TABLE_ERR_SQL_UNDEF, '...');
- * (3) DB_Table::setErrorMessage(array(DB_TABLE_ERR_PHPTYPE   => '...');
- *                                     DB_TABLE_ERR_SQL_UNDEF => '...');
- * (4) $obj = new DB_Table();
- *     $obj->setErrorMessage(DB_TABLE_ERR_PHPTYPE,   '...');
- *     $obj->setErrorMessage(DB_TABLE_ERR_SQL_UNDEF, '...');
- * (5) $obj = new DB_Table();
- *     $obj->setErrorMessage(array(DB_TABLE_ERR_PHPTYPE   => '...');
- *                                 DB_TABLE_ERR_SQL_UNDEF => '...');
- * </code>
- * 
- * For errors that can occur with-in the constructor call (i.e. e.g. creating
- * or altering the database table), only the code from examples (1) to (3)
- * will alter the default error messages early enough. For errors that can
- * occur later, examples (4) and (5) are also valid.
- */
-$GLOBALS['_DB_TABLE']['default_error'] = array(
-    DB_TABLE_ERR_NOT_DB_OBJECT       => 'First parameter must be a DB/MDB2 object',
-    DB_TABLE_ERR_PHPTYPE             => 'DB/MDB2 phptype (or dbsyntax) not supported',
-    DB_TABLE_ERR_SQL_UNDEF           => 'Select query string not in a key of $sql. Key',
-    DB_TABLE_ERR_SQL_NOT_STRING      => 'Select query is neither an array nor a string',
-    DB_TABLE_ERR_INS_COL_NOMAP       => 'Insert column not in map',
-    DB_TABLE_ERR_INS_COL_REQUIRED    => 'Insert data must be set and non-null for column',
-    DB_TABLE_ERR_INS_DATA_INVALID    => 'Insert data not valid for column',
-    DB_TABLE_ERR_UPD_COL_NOMAP       => 'Update column not in map',
-    DB_TABLE_ERR_UPD_COL_REQUIRED    => 'Update column must be set and non-null',
-    DB_TABLE_ERR_UPD_DATA_INVALID    => 'Update data not valid for column',
-    DB_TABLE_ERR_CREATE_FLAG         => 'Create flag not valid',
-    DB_TABLE_ERR_IDX_NO_COLS         => 'No columns for index',
-    DB_TABLE_ERR_IDX_COL_UNDEF       => 'Column not in map for index',
-    DB_TABLE_ERR_IDX_TYPE            => 'Type not valid for index',
-    DB_TABLE_ERR_DECLARE_STRING      => 'String column declaration not valid',
-    DB_TABLE_ERR_DECLARE_DECIMAL     => 'Decimal column declaration not valid',
-    DB_TABLE_ERR_DECLARE_TYPE        => 'Column type not valid',
-    DB_TABLE_ERR_VALIDATE_TYPE       => 'Cannot validate for unknown type on column',
-    DB_TABLE_ERR_DECLARE_COLNAME     => 'Column name not valid',
-    DB_TABLE_ERR_DECLARE_IDXNAME     => 'Index name not valid',
-    DB_TABLE_ERR_DECLARE_TYPE        => 'Column type not valid',
-    DB_TABLE_ERR_IDX_COL_CLOB        => 'CLOB column not allowed for index',
-    DB_TABLE_ERR_DECLARE_STRLEN      => 'Column name too long, 30 char max',
-    DB_TABLE_ERR_IDX_STRLEN          => 'Index name too long, 30 char max',
-    DB_TABLE_ERR_TABLE_STRLEN        => 'Table name too long, 30 char max',
-    DB_TABLE_ERR_SEQ_STRLEN          => 'Sequence name too long, 30 char max',
-    DB_TABLE_ERR_VER_TABLE_MISSING   => 'Verification failed: table does not exist',
-    DB_TABLE_ERR_VER_COLUMN_MISSING  => 'Verification failed: column does not exist',
-    DB_TABLE_ERR_VER_COLUMN_TYPE     => 'Verification failed: wrong column type',
-    DB_TABLE_ERR_NO_COLS             => 'Column definition array may not be empty',
-    DB_TABLE_ERR_VER_IDX_MISSING     => 'Verification failed: index does not exist',
-    DB_TABLE_ERR_VER_IDX_COL_MISSING => 'Verification failed: index does not contain all specified cols',
-    DB_TABLE_ERR_CREATE_PHPTYPE      => 'Creation mode is not supported for this phptype',
-    DB_TABLE_ERR_DECLARE_PRIMARY     => 'Only one primary key is allowed',
-    DB_TABLE_ERR_DECLARE_PRIM_SQLITE => 'SQLite does not support primary keys',
-    DB_TABLE_ERR_ALTER_TABLE_IMPOS   => 'Alter table failed: changing the field type not possible',
-    DB_TABLE_ERR_ALTER_INDEX_IMPOS   => 'Alter table failed: changing the index/constraint not possible',
-    DB_TABLE_ERR_AUTO_INC_COL        => 'Illegal auto-increment column definition',
-    DB_TABLE_ERR_TABLE_NAME_MISSING  => 'Table name missing in constructor and class'
-);
-
-// merge default and user-defined error messages
-if (!isset($GLOBALS['_DB_TABLE']['error'])) {
-    $GLOBALS['_DB_TABLE']['error'] = array();
-}
-foreach ($GLOBALS['_DB_TABLE']['default_error'] as $code => $message) {
-    if (!array_key_exists($code, $GLOBALS['_DB_TABLE']['error'])) {
-        $GLOBALS['_DB_TABLE']['error'][$code] = $message;
-    }
-}
-
-// set default value for length check switch
-if (!isset($GLOBALS['_DB_TABLE']['disable_length_check'])) {
-    $GLOBALS['_DB_TABLE']['disable_length_check'] = false;
-}
-
-/**
- * DB_Table is a database API and data type SQL abstraction class.
- * 
- * DB_Table provides database API abstraction, data type abstraction,
- * automated SELECT, INSERT, and UPDATE queries, automated table
- * creation, automated validation of inserted/updated column values,
- * and automated creation of QuickForm elemnts based on the column
- * definitions.
- * 
- * @category Database
- * @package  DB_Table
- * @author   Paul M. Jones <pmjones@php.net>
- * @author   David C. Morse <morse@php.net>
- * @author   Mark Wiesemann <wiesemann@php.net>
- * @version  Release: 1.5.6
- * @link     http://pear.php.net/package/DB_Table
- */
-
-class DB_Table extends DB_Table_Base 
-{
-    
-    /**
-     * The table or view in the database to which this object binds.
-     * 
-     * @access public
-     * @var string
-     */
-    var $table = null;
-    
-    /**
-     * DB_Table_Database instance that this table belongs to.
-     * 
-     * @access private
-     * @var object
-     */
-    var $_database = null;
-
-
-    /**
-     * Associative array of column definitions.
-     * 
-     * @access public
-     * @var array
-     */
-    var $col = array();
-    
-    
-    /**
-     * Associative array of index definitions.
-     * 
-     * @access public
-     * @var array
-     */
-    var $idx = array();
-    
-    /**
-     * Name of an auto-increment column, if any. Null otherwise.
-     *
-     * A table can contain at most one auto-increment column. 
-     * Auto-incrementing is implemented in the insert() method,
-     * using a sequence accessed by the nextID() method.
-     *
-     * @access public
-     * @var string
-     */
-    var $auto_inc_col = null;
-
-
-    /**
-     * Boolean flag to turn on (true) or off (false) auto-incrementing.
-     * 
-     * Auto-increment column $auto_inc_col upon insertion only if $_auto_inc is
-     * true and the value of that column is null in the data to be inserted.
-     *
-     * @var bool
-     * @access private
-     */
-    var $_auto_inc = true;
-
-
-    /**
-     * Whether or not to automatically validate data at insert-time.
-     * 
-     * @var bool
-     * @access private
-     */
-    var $_valid_insert = true;
-    
-    /**
-     * Whether or not to automatically validate data at update-time.
-     * 
-     * @var bool
-     * @access private
-     */
-    var $_valid_update = true;
-    
-
-    /**
-     * Whether or not to automatically recast data at insert- and update-time.
-     * 
-     * @var    bool
-     * @access private
-     */
-    var $_auto_recast = true;
-    
-    
-    /**
-     * Constructor.
-     *
-     * The constructor returns a DB_Table object that wraps an
-     * instance $db DB or MDB2, and that binds to a specific database
-     * table named $table. It can optionally create the database table
-     * or verify that its schema matches that declared in the $col and
-     * $idx parameters, depending on the value of the $create parameter.
-     *
-     * If there is an error on instantiation, $this->error will be 
-     * populated with the PEAR_Error.
-     * 
-     * @param object &$db A PEAR DB/MDB2 object.
-     * 
-     * @param string $table The table name to connect to in the database.
-     * 
-     * @param mixed $create The automatic table creation mode to pursue:
-     * - boolean false to not attempt creation
-     * - 'safe' to create the table only if it does not exist
-     * - 'drop' to drop any existing table with the same name and re-create it
-     * - 'verify' to check whether the table exists, whether all the columns
-     *   exist, whether the columns have the right type, and whether the indexes
-     *   exist and have the right type
-     * - 'alter' does the same as 'safe' if the table does not exist; if it
-     *   exists, a verification for columns existence, the column types, the
-     *   indexes existence, and the indexes types will be performed and the
-     *   table schema will be modified if needed
-     * 
-     * @return object DB_Table
-     * @access public
-     */
-    function __construct(&$db, $table = null, $create = false)
-    {
-        // Identify the class for error handling by parent class
-        $this->_primary_subclass = 'DB_TABLE';
-
-        // is the first argument a DB/MDB2 object?
-        $this->backend = null;
-        if (is_subclass_of($db, 'db_common')) {
-            $this->backend = 'db';
-        } elseif (is_subclass_of($db, 'mdb2_driver_common')) {
-            $this->backend = 'mdb2';
-        }
-
-        if (is_null($this->backend)) {
-            $this->error = DB_Table::throwError(DB_TABLE_ERR_NOT_DB_OBJECT);
-            return;
-        }
-        
-        // set the class properties
-        $this->db =& $db;
-        if (is_null($table)) {
-            // $table parameter not given => check $table class property
-            if (is_null($this->table)) {
-                $this->error = DB_Table::throwError(DB_TABLE_ERR_TABLE_NAME_MISSING);
-                return;
-            }
-        } else {
-            $this->table = $table;
-        }
-        
-        // is the RDBMS supported?
-        $phptype = $db->phptype;
-        $dbsyntax = $db->dbsyntax;
-        if (! DB_Table::supported($phptype, $dbsyntax)) {
-            $this->error =& DB_Table::throwError(
-                DB_TABLE_ERR_PHPTYPE,
-                "({$db->phptype})"
-            );
-            return;
-        }
-
-        // load MDB2_Extended module
-        if ($this->backend == 'mdb2') {
-            $this->db->loadModule('Extended', null, false);
-        }
-
-        // should we attempt table creation?
-        if ($create) {
-
-            if ($this->backend == 'mdb2') {
-                $this->db->loadModule('Manager');
-            }
-
-            // check whether the chosen mode is supported
-            $mode_supported = DB_Table::modeSupported($create, $phptype);
-            if (PEAR::isError($mode_supported)) {
-                $this->error =& $mode_supported;
-                return;
-            }
-            if (!$mode_supported) {
-                $this->error =& $this->throwError(
-                    DB_TABLE_ERR_CREATE_PHPTYPE,
-                    "('$create', '$phptype')"
-                );
-                return;
-            }
-
-            include_once 'DB/Table/Manager.php';
-
-            switch ($create) {
-
-                case 'alter':
-                    $result = $this->alter();
-                    break;
-
-                case 'drop':
-                case 'safe':
-                    $result = $this->create($create);
-                    break;
-
-                case 'verify':
-                    $result = $this->verify();
-                    break;
-            }
-            
-            if (PEAR::isError($result)) {
-                // problem creating/altering/verifing the table
-                $this->error =& $result;
-                return;
-            }
-        }
-    }
-    
-    
-    /**
-     * Is a particular RDBMS supported by DB_Table?
-     * 
-     * @static
-     * @param string $phptype The RDBMS type for PHP.
-     * @param string $dbsyntax The chosen database syntax.
-     * @return bool  True if supported, false if not.
-     * @access public
-     */
-    
-    function supported($phptype, $dbsyntax = '')
-    {
-        // only Firebird is supported, not its ancestor Interbase
-        if ($phptype == 'ibase' && $dbsyntax != 'firebird') {
-            return false;
-        }
-        $supported = array_keys($GLOBALS['_DB_TABLE']['type']);
-        return in_array(strtolower($phptype), $supported);
-    }
-
-
-    /**
-     * Is a creation mode supported for a RDBMS by DB_Table?
-     * 
-     * @param string $mode The chosen creation mode.
-     * @param string $phptype The RDBMS type for PHP.
-     * @return bool  True if supported, false if not (PEAR_Error on failure)
-     *
-     * @throws PEAR_Error if
-     *     Unknown creation mode is specified (DB_TABLE_ERR_CREATE_FLAG)
-     * 
-     * @access public
-     */
-    function modeSupported($mode, $phptype)
-    {
-        // check phptype for validity
-        $supported = array_keys($GLOBALS['_DB_TABLE']['type']);
-        if (!in_array(strtolower($phptype), $supported)) {
-            return false;
-        }
-
-        switch ($mode) {
-            case 'drop':
-            case 'safe':
-                // supported for all RDBMS
-                return true;
-
-            case 'alter':
-            case 'verify':
-                // not supported for fbsql and mssql (yet)
-                switch ($phptype) {
-                    case 'fbsql':
-                    case 'mssql':
-                        return false;
-                    default:
-                        return true;
-                }
-
-            default:
-                // unknown creation mode
-                return $this->throwError(
-                    DB_TABLE_ERR_CREATE_FLAG,
-                    "('$mode')"
-                );
-        }
-    }
-
-
-    /**
-     * Overwrite one or more error messages, e.g. to internationalize them.
-     * 
-     * @param mixed $code If string, the error message with code $code will
-     * be overwritten by $message. If array, the error messages with code
-     * of each array key will be overwritten by the key's value.
-     * 
-     * @param string $message Only used if $key is not an array.
-     * @return void
-     * @access public
-     */
-    function setErrorMessage($code, $message = null) {
-        if (is_array($code)) {
-            foreach ($code as $single_code => $single_message) {
-                $GLOBALS['_DB_TABLE']['error'][$single_code] = $single_message;
-            }
-        } else {
-            $GLOBALS['_DB_TABLE']['error'][$code] = $message;
-        }
-    }
-
-
-    /**
-     * 
-     * Returns all or part of the $this->col property array.
-     * 
-     * @param mixed $col If null, returns the $this->col property array
-     * as it is.  If string, returns that column name from the $this->col
-     * array. If an array, returns those columns named as the array
-     * values from the $this->col array as an array.
-     *
-     * @return mixed All or part of the $this->col property array, or
-     *               boolean false if no matching column names are found.
-     * @access public
-     */
-    function getColumns($col = null)
-    {
-        // by default, return all column definitions
-        if (is_null($col)) {
-            return $this->col;
-        }
-        
-        // if the param is a string, only return the column definition
-        // named by the that string
-        if (is_string($col)) {
-            if (isset($this->col[$col])) {
-                return $this->col[$col];
-            } else {
-                return false;
-            }
-        }
-        
-        // if the param is a sequential array of column names,
-        // return only those columns named in that array
-        if (is_array($col)) {
-            $set = array();
-            foreach ($col as $name) {
-                $set[$name] = $this->getColumns($name);
-            }
-            
-            if (count($set) == 0) {
-                return false;
-            } else {
-                return $set;
-            }
-        }
-        
-        // param was not null, string, or array
-        return false;
-    }
-    
-    
-    /**
-     * Returns all or part of the $this->idx property array.
-     * 
-     * @param mixed $idx Index name (key in $this->idx), or array of
-     *                   index name strings.
-     * 
-     * @return mixed All or part of the $this->idx property array, 
-     *               or boolean false if $idx is not null but invalid
-     * 
-     * @access public
-     */
-    function getIndexes($idx = null)
-    {
-        // by default, return all index definitions
-        if (is_null($idx)) {
-            return $this->idx;
-        }
-        
-        // if the param is a string, only return the index definition
-        // named by the that string
-        if (is_string($idx)) {
-            if (isset($this->idx[$idx])) {
-                return $this->idx[$idx];
-            } else {
-                return false;
-            }
-        }
-        
-        // if the param is a sequential array of index names,
-        // return only those indexes named in that array
-        if (is_array($idx)) {
-            $set = array();
-            foreach ($idx as $name) {
-                $set[$name] = $this->getIndexes($name);
-            }
-            
-            if (count($set) == 0) {
-                return false;
-            } else {
-                return $set;
-            }
-        }
-        
-        // param was not null, string, or array
-        return false;
-    }
-    
-    
-    /**
-     * Connect or disconnect a DB_Table_Database instance to this table
-     * instance.
-     * 
-     * Used to re-connect this DB_Table object to a parent DB_Table_Database
-     * object during unserialization. Can also disconnect if the $database 
-     * parameter is null. Use the DB_Table_Database::addTable method instead 
-     * to add a table to a new DB_Table_Database.
-     * 
-     * @param object &$database DB_Table_Database instance that this table
-     *               belongs to (or null to disconnect from instance).
-     * 
-     * @return void
-     * @access public
-     */
-    function setDatabaseInstance(&$database)
-    {
-        if (is_a($database, 'DB_Table_Database')) {
-            $this->_database =& $database;
-        } elseif (is_null($database)) {
-            $this->_database = null;
-        }
-    }
-
-    
-    /**
-     * Inserts a single table row.
-     *
-     * Inserts data from associative array $data, in which keys are column
-     * names and values are column values. All required columns (except an
-     * auto-increment column) must be included in the data array. Columns
-     * values that are not set or null are inserted as SQL NULL values. 
-     *
-     * If an auto-increment column is declared (by setting $this->auto_inc_col),
-     * and the value of that column in $data is not set or null, then a new
-     * sequence value will be generated and inserted.
-     *
-     * If auto-recasting is enabled (if $this->_auto_recast), the method will
-     * try, if necessary to recast $data to proper column types, with recast().
-     *
-     * If auto-validation is enabled (if $this->_valid_insert), the method
-     * will validates column types with validInsert() before insertion.
-     *
-     * @access public
-     * 
-     * @param array $data An associative array of key-value pairs where
-     * the key is the column name and the value is the column value. 
-     * This is the data that will be inserted into the table.  
-     * 
-     * @return mixed Void on success (PEAR_Error on failure)
-     *
-     * @throws PEAR_Error if:
-     *     - Error in auto_inc_col declaration (DB_TABLE_ERR_AUTO_INC_COL)
-     *     - Error returned by DB/MDB2::autoExecute() (Error bubbled up)
-     *
-     * @see validInsert()
-     * @see DB::autoExecute()
-     * @see MDB2::autoExecute()
-     */
-    function insert($data)
-    {
-        // Auto-increment if enabled and input value is null or not set
-        if ($this->_auto_inc 
-            && !is_null($this->auto_inc_col) 
-            && !isset($data[$this->auto_inc_col]) 
-           ) {
-            $column = $this->auto_inc_col;
-            // check that the auto-increment column exists
-            if (!array_key_exists($column, $this->col)) {
-                return $this->throwError(
-                        DB_TABLE_ERR_AUTO_INC_COL,
-                        ": $column does not exist");
-            }
-            // check that the column is integer 
-            if (!in_array($this->col[$column]['type'],
-                           array('integer','smallint','bigint'))) {
-                return $this->throwError(
-                        DB_TABLE_ERR_AUTO_INC_COL,
-                        ": $column is not an integer");
-            }
-            // check that the column is required
-            // Note: The insert method will replace a null input value 
-            // of $data[$column] with a sequence value. This makes 
-            // the column effectively 'not null'. This column must be
-            // 'required' for consistency, to make this explicit.
-            if (!$this->isRequired($column)) {
-                return $this->throwError(
-                        DB_TABLE_ERR_AUTO_INC_COL,
-                        ": $column is not required");
-            }
-            // set the value
-            $id = $this->nextID();
-            if (PEAR::isError($id)) {
-                return $id;
-            }
-            $data[$column] = $id;
-        }
-
-        // forcibly recast the data elements to their proper types?
-        if ($this->_auto_recast) {
-            $this->recast($data);
-        }
-
-        // validate the data if auto-validation is turned on
-        if ($this->_valid_insert) {
-            $result = $this->validInsert($data);
-            if (PEAR::isError($result)) {
-                return $result;
-            }
-        }
-
-        // Does a parent DB_Table_Database object exist?
-        if ($this->_database) {
-
-            $_database = $this->_database;
-  
-            // Validate foreign key values (if enabled)
-            if ($_database->_check_fkey) {
-               $result = $_database->validForeignKeys($this->table, $data);
-               if (PEAR::isError($result)) {
-                   return $result;
-               }
-            }
-    
-        }
-       
-        // Do insertion
-        if ($this->backend == 'mdb2') {
-            $result = $this->db->extended->autoExecute($this->table, $data,
-                MDB2_AUTOQUERY_INSERT);
-        } else {
-            $result = $this->db->autoExecute($this->table, $data,
-                DB_AUTOQUERY_INSERT);
-        }
-        return $result;
-    }
-    
-    
-    /**
-     * Turns on or off auto-incrementing of $auto_inc_col column (if any)
-     * 
-     * For auto-incrementing to work, an $auto_inc_col column must be declared,
-     * auto-incrementing must be enabled (by this method), and the value of
-     * the $auto_inc_col column must be not set or null in the $data passed to
-     * the insert method. 
-     * 
-     * @param  bool $flag True to turn on auto-increment, false to turn off.
-     * @return void
-     * @access public
-     */
-    function setAutoInc($flag = true)
-    {
-        if ($flag) {
-            $this->_auto_inc = true;
-        } else {
-            $this->_auto_inc = false;
-        }
-    }
-    
-    
-    /**
-     * Turns on (or off) automatic validation of inserted data.
-     * 
-     * Enables (if $flag is true) or disables (if $flag is false) automatic 
-     * validation of data types prior to actual insertion into the database 
-     * by the DB_Table::insert() method.
-     *
-     * @param  bool $flag True to turn on auto-validation, false to turn off.
-     * @return void
-     * @access public
-     */
-    function autoValidInsert($flag = true)
-    {
-        if ($flag) {
-            $this->_valid_insert = true;
-        } else {
-            $this->_valid_insert = false;
-        }
-    }
-    
-    
-    /**
-     * Validates an array for insertion into the table.
-     * 
-     * @param array $data An associative array of key-value pairs where
-     * the key is the column name and the value is the column value.  This
-     * is the data that will be inserted into the table.  Data is checked
-     * against the column data type for validity.
-     * 
-     * @return boolean true on success (PEAR_Error on failure)
-     *
-     * @throws PEAR_Error if:
-     *     - Invalid column name key in $data (DB_TABLE_ERR_INS_COL_NOMAP)
-     *     - Missing required column value    (DB_TABLE_ERR_INS_COL_NOMAP)
-     *     - Column value doesn't match type  (DB_TABLE_ERR_INS_DATA_INVALID)
-     *
-     * @access public
-     * 
-     * @see insert()
-     */
-    function validInsert(&$data)
-    {
-        // loop through the data, and disallow insertion of unmapped
-        // columns
-        foreach ($data as $col => $val) {
-            if (! isset($this->col[$col])) {
-                return $this->throwError(
-                    DB_TABLE_ERR_INS_COL_NOMAP,
-                    "('$col')"
-                );
-            }
-        }
-        
-        // loop through each column mapping, and check the data to be
-        // inserted into it against the column data type. we loop through
-        // column mappings instead of the insert data to make sure that
-        // all necessary columns are being inserted.
-        foreach ($this->col as $col => $val) {
-            
-            // is the value allowed to be null?
-            if (isset($val['require']) &&
-                $val['require'] == true &&
-                (! isset($data[$col]) || is_null($data[$col]))) {
-                return $this->throwError(
-                    DB_TABLE_ERR_INS_COL_REQUIRED,
-                    "'$col'"
-                );
-            }
-            
-            // does the value to be inserted match the column data type?
-            if (isset($data[$col]) &&
-                ! $this->isValid($data[$col], $col)) {
-                return $this->throwError(
-                    DB_TABLE_ERR_INS_DATA_INVALID,
-                    "'$col' ('$data[$col]')"
-                );
-            }
-        }
-        
-        return true;
-    }
-    
-    
-    /**
-     * Update table row or rows that match a custom WHERE clause
-     *
-     * Constructs and submits an SQL UPDATE command to update columns whose
-     * names are keys in the $data array parameter, in all rows that match
-     * the logical condition given by the $where string parameter.
-     * 
-     * If auto-recasting is enabled (if $this->_auto_recast), update() will
-     * try, if necessary, to recast $data to proper column types, with recast().
-     *
-     * If auto-validation is enabled (if $this->_valid_insert), update() 
-     * validates column types with validUpdate() before insertion.
-     *
-     * @param array $data An associative array of key-value pairs where the
-     * key is the column name and the value is the column value. These are
-     * the columns that will be updated with new values.
-     * 
-     * @param string $where An SQL WHERE clause limiting which records are
-     * are to be updated.
-     * 
-     * @return mixed Void on success, a PEAR_Error object on failure.
-     *
-     * @throws PEAR_Error if:
-     *     - Data fails type validation (bubbles error returned by validUpdate)
-     *     - Error thrown by DB/MDB2::autoexecute()
-     *
-     * @access public
-     * 
-     * @see validUpdate()
-     * @see DB::autoExecute()
-     * @see MDB2::autoExecute()
-     */
-    function update($data, $where)
-    {
-        // forcibly recast the data elements to their proper types?
-        if ($this->_auto_recast) {
-            $this->recast($data);
-        }
-        
-        // validate the data if auto-validation is turned on
-        if ($this->_valid_update) {
-            $result = $this->validUpdate($data);
-            if (PEAR::isError($result)) {
-                return $result;
-            }
-        }
-
-        // Does a parent DB_Table_Database object exist?
-        if ($this->_database) {
-  
-            $_database =& $this->_database;
-
-            // Validate foreign key values (if enabled)
-            if ($_database->_check_fkey) {
-               $result = $_database->validForeignKeys($this->table, $data);
-               if (PEAR::isError($result)) {
-                   return $result;
-               } 
-            }
-    
-            // Implement any relevant ON UPDATE actions
-            $result = $_database->onUpdateAction($this, $data, $where);
-            if (PEAR::isError($result)) {
-                return $result;
-            }
-
-        }
-       
-        // Submit update command 
-        if ($this->backend == 'mdb2') {
-            $result = $this->db->extended->autoExecute($this->table, $data,
-                MDB2_AUTOQUERY_UPDATE, $where);
-        } else {
-            $result = $this->db->autoExecute($this->table, $data,
-                DB_AUTOQUERY_UPDATE, $where);
-        }
-        return $result;
-
-    }
-    
-    
-    /**
-     * Turns on (or off) automatic validation of updated data.
-     * 
-     * Enables (if $flag is true) or disables (if $flag is false) automatic 
-     * validation of data types prior to updating rows in the database by
-     * the {@link update()} method.
-     *
-     * @param  bool $flag True to turn on auto-validation, false to turn off.
-     * @return void
-     * @access public
-     */
-    function autoValidUpdate($flag = true)
-    {
-        if ($flag) {
-            $this->_valid_update = true;
-        } else {
-            $this->_valid_update = false;
-        }
-    }
-    
-    
-    /**
-     * Validates an array for updating the table.
-     * 
-     * @param array $data An associative array of key-value pairs where
-     * the key is the column name and the value is the column value.  This
-     * is the data that will be inserted into the table.  Data is checked
-     * against the column data type for validity.
-     * 
-     * @return mixed Boolean true on success (PEAR_Error object on failure)
-     *
-     * @throws PEAR_Error if
-     *     - Invalid column name key in $data (DB_TABLE_ERR_UPD_COL_NOMAP)
-     *     - Missing required column value    (DB_TABLE_ERR_UPD_COL_NOMAP)
-     *     - Column value doesn't match type  (DB_TABLE_ERR_UPD_DATA_INVALID)
-     *
-     * @access public
-     * 
-     * @see update()
-     */
-    function validUpdate(&$data)
-    {
-        // loop through each data element, and check the
-        // data to be updated against the column data type.
-        foreach ($data as $col => $val) {
-            
-            // does the column exist?
-            if (! isset($this->col[$col])) {
-                return $this->throwError(
-                    DB_TABLE_ERR_UPD_COL_NOMAP,
-                    "('$col')"
-                );
-            }
-            
-            // the column definition
-            $defn = $this->col[$col];
-            
-            // is it allowed to be null?
-            if (isset($defn['require']) &&
-                $defn['require'] == true &&
-                isset($data[$col]) &&
-                is_null($data[$col])) {
-                return $this->throwError(
-                    DB_TABLE_ERR_UPD_COL_REQUIRED,
-                    $col
-                );
-            }
-            
-            // does the value to be inserted match the column data type?
-            if (! $this->isValid($data[$col], $col)) {
-                return $this->throwError(
-                    DB_TABLE_ERR_UPD_DATA_INVALID,
-                    "$col ('$data[$col]')"
-                );
-            }
-        }
-        
-        return true;
-    }
-    
-    
-    /**
-     * Deletes table rows matching a custom WHERE clause.
-     * 
-     * Constructs and submits and SQL DELETE command with the specified WHERE 
-     * clause. Command is submitted by DB::query() or MDB2::exec().
-     *
-     * If a reference to a DB_Table_Database instance exists, carry out any
-     * ON DELETE actions declared in that instance before actual insertion, 
-     * if emulation of ON DELETE actions is enabled in that instance.
-     *
-     * @param string $where Logical condition in the WHERE clause of the 
-     *                      delete command.
-     *
-     * @return mixed void on success (PEAR_Error on failure)
-     *
-     * @throws PEAR_Error if
-     *     DB::query() or MDB2::exec() returns error (bubbles up)
-     *
-     * @access public
-     * 
-     * @see DB::query()
-     * @see MDB2::exec()
-     */
-    function delete($where)
-    {
-        // Does a parent DB_Table_Database object exist?
-        if ($this->_database) {
-  
-            $_database =& $this->_database;
-
-            // Implement any relevant ON DELETE actions
-            $result = $_database->onDeleteAction($this, $where);
-            if (PEAR::isError($result)) {
-                return $result;
-            }
-
-        }
-       
-        if ($this->backend == 'mdb2') {
-            $result = $this->db->exec("DELETE FROM $this->table WHERE $where");
-        } else {
-            $result = $this->db->query("DELETE FROM $this->table WHERE $where");
-        }
-        return $result;
-    }
-    
-    
-    /**
-     *
-     * Generates and returns a sequence value.
-     *
-     * Generates a sequence value by calling the DB or MDB2::nextID() method. The
-     * sequence name defaults to the table name, or may be specified explicitly.
-     * 
-     * @param  string  $seq_name The sequence name; defaults to table_id.
-     * 
-     * @return integer The next value in the sequence (PEAR_Error on failure)
-     *
-     * @throws PEAR_Error if
-     *     Sequence name too long (>26 char + _seq) (DB_TABLE_ERR_SEQ_STRLEN)
-     *
-     * @access public
-     * 
-     * @see DB::nextID()
-     * @see MDB2::nextID()
-     */
-    function nextID($seq_name = null)
-    {
-        if (is_null($seq_name)) {
-            $seq_name = "{$this->table}";
-        } else {
-            $seq_name = "{$this->table}_{$seq_name}";
-        }
-        
-        // the maximum length is 30, but PEAR DB/MDB2 will add "_seq" to the
-        // name, so the max length here is less 4 chars. we have to
-        // check here because the sequence will be created automatically
-        // by PEAR DB/MDB2, which will not check for length on its own.
-        if (   $GLOBALS['_DB_TABLE']['disable_length_check'] === false
-            && strlen($seq_name) > 26
-           ) {
-            return DB_Table::throwError(
-                DB_TABLE_ERR_SEQ_STRLEN,
-                " ('$seq_name')"
-            );
-            
-        }
-        return $this->db->nextId($seq_name);
-    }
-    
-    
-    /**
-     * Escapes and enquotes a value for use in an SQL query.
-     * 
-     * Simple wrapper for DB_Common::quoteSmart() or MDB2::quote(), which 
-     * returns the value of one of these functions. Helps makes user input 
-     * safe against SQL injection attack.
-     * 
-     * @param mixed $val The value to be quoted
-     *
-     * @return string The value with quotes escaped, inside single quotes if 
-     *                non-numeric.
-     *
-     * @throws PEAR_Error if
-     *     DB_Common::quoteSmart() or MDB2::quote() returns Error (bubbled up)
-     * 
-     * @access public
-     * 
-     * @see DB_Common::quoteSmart()
-     * @see MDB2::quote()
-     */
-    function quote($val)
-    {
-        if ($this->backend == 'mdb2') {
-            $val = $this->db->quote($val);
-        } else {
-            $val = $this->db->quoteSmart($val);
-        }
-        return $val;
-    }
-    
-    
-    /**
-     * Returns a blank row array based on the column map.
-     * 
-     * The array keys are the column names, and all values are set to null.
-     * 
-     * @return array An associative array where keys are column names and
-     *               all values are null.
-     * @access public
-     */
-    function getBlankRow()
-    {
-        $row = array();
-        
-        foreach ($this->col as $key => $val) {
-            $row[$key] = null;
-        }
-        
-        $this->recast($row);
-        
-        return $row;
-    }
-    
-    
-    /**
-     * Turns on (or off) automatic recasting of insert and update data.
-     * 
-     * Turns on (if $flag is true) or off (if $flag is false) automatic forcible 
-     * recasting of data to the declared data type, if required, prior to inserting 
-     * or updating.  The recasting is done by calling the DB_Table::recast() 
-     * method from within the DB_Table::insert() and DB_Table::update().
-     * 
-     * @param bool $flag True to automatically recast insert and update data,
-     *                   false to not do so.
-     * @return void
-     * @access public
-     */
-    function autoRecast($flag = true)
-    {
-        if ($flag) {
-            $this->_auto_recast = true;
-        } else {
-            $this->_auto_recast = false;
-        }
-    }
-    
-    
-    /**
-     * Forces array elements to the proper types for their columns.
-     * 
-     * This will not valiate the data, and will forcibly change the data
-     * to match the recast-type.
-     * 
-     * The date, time, and timestamp recasting has special logic for
-     * arrays coming from an HTML_QuickForm object so that the arrays
-     * are converted into properly-formatted strings.
-     * 
-     * @todo If a column key holds an array of values (say from a multiple
-     * select) then this method will not work properly; it will recast the
-     * value to the string 'Array'.  Is this bad?
-     * 
-     * @param array   &$data The data array to re-cast.
-     * 
-     * @return void
-     * 
-     * @access public
-     */
-    function recast(&$data)
-    {
-        $keys = array_keys($data);
-        
-        $null_if_blank = array('date', 'time', 'timestamp', 'smallint',
-            'integer', 'bigint', 'decimal', 'single', 'double');
-        
-        foreach ($keys as $key) {
-        
-            if (! isset($this->col[$key])) {
-                continue;
-            }
-            
-            unset($val);
-            $val =& $data[$key];
-            
-            // convert blanks to null for non-character field types
-            $convert = in_array($this->col[$key]['type'], $null_if_blank);
-            if (is_array($val)) {  // if one of the given array values is
-                                   // empty, null will be the new value if
-                                   // the field is not required
-                $tmp_val = implode('', $val);
-                foreach ($val as $array_val) {
-                    if (trim((string) $array_val) == '') {
-                        $tmp_val = '';
-                        break;
-                    }
-                }
-            } else {
-                $tmp_val = $val;
-            }
-            if ($convert && trim((string) $tmp_val) == '' && (
-                !isset($this->col[$key]['require']) ||
-                $this->col[$key]['require'] === false
-              )
-            ) {
-                $val = null;
-            }
-            
-            // skip explicit NULL values
-            if (is_null($val)) {
-                continue;
-            }
-            
-            // otherwise, recast to the column type
-            switch ($this->col[$key]['type']) {
-            
-            case 'boolean':
-                $val = ($val) ? 1 : 0;
-                break;
-                
-            case 'char':
-            case 'varchar':
-            case 'clob':
-                settype($val, 'string');
-                break;
-                
-            case 'date':
-
-                // smart handling of non-standard (i.e. Y-m-d) date formats,
-                // this allows to use two-digit years (y) and short (M) or
-                // long (F) names of months without having to recast the
-                // date value yourself
-                if (is_array($val)) {
-                    if (isset($val['y'])) {
-                        $val['Y'] = $val['y'];
-                    }
-                    if (isset($val['F'])) {
-                        $val['m'] = $val['F'];
-                    }
-                    if (isset($val['M'])) {
-                        $val['m'] = $val['M'];
-                    }
-                }
-
-                if (is_array($val) &&
-                    isset($val['Y']) &&
-                    isset($val['m']) &&
-                    isset($val['d'])) {
-                    
-                    // the date is in HTML_QuickForm format,
-                    // convert into a string
-                    $y = (strlen($val['Y']) < 4)
-                        ? str_pad($val['Y'], 4, '0', STR_PAD_LEFT)
-                        : $val['Y'];
-                    
-                    $m = (strlen($val['m']) < 2)
-                        ? '0'.$val['m'] : $val['m'];
-                        
-                    $d = (strlen($val['d']) < 2)
-                        ? '0'.$val['d'] : $val['d'];
-                        
-                    $val = "$y-$m-$d";
-                    
-                } else {
-                
-                    // convert using the Date class
-                    $tmp = new DB_Table_Date($val);
-                    $val = $tmp->format('%Y-%m-%d');
-                    
-                }
-                
-                break;
-            
-            case 'time':
-            
-                if (is_array($val) &&
-                    isset($val['H']) &&
-                    isset($val['i']) &&
-                    isset($val['s'])) {
-                    
-                    // the time is in HTML_QuickForm format,
-                    // convert into a string
-                    $h = (strlen($val['H']) < 2)
-                        ? '0' . $val['H'] : $val['H'];
-                    
-                    $i = (strlen($val['i']) < 2)
-                        ? '0' . $val['i'] : $val['i'];
-                        
-                    $s = (strlen($val['s']) < 2)
-                        ? '0' . $val['s'] : $val['s'];
-                        
-                        
-                    $val = "$h:$i:$s";
-                    
-                } else {
-                    // date does not matter in this case, so
-                    // pre 1970 and post 2040 are not an issue.
-                    $tmp = strtotime(date('Y-m-d') . " $val");
-                    $val = date('H:i:s', $tmp);
-                }
-                
-                break;
-                
-            case 'timestamp':
-
-                // smart handling of non-standard (i.e. Y-m-d) date formats,
-                // this allows to use two-digit years (y) and short (M) or
-                // long (F) names of months without having to recast the
-                // date value yourself
-                if (is_array($val)) {
-                    if (isset($val['y'])) {
-                        $val['Y'] = $val['y'];
-                    }
-                    if (isset($val['F'])) {
-                        $val['m'] = $val['F'];
-                    }
-                    if (isset($val['M'])) {
-                        $val['m'] = $val['M'];
-                    }
-                }
-
-                if (is_array($val) &&
-                    isset($val['Y']) &&
-                    isset($val['m']) &&
-                    isset($val['d']) &&
-                    isset($val['H']) &&
-                    isset($val['i']) &&
-                    isset($val['s'])) {
-                    
-                    // timestamp is in HTML_QuickForm format,
-                    // convert each element to a string. pad
-                    // with zeroes as needed.
-                
-                    $y = (strlen($val['Y']) < 4)
-                        ? str_pad($val['Y'], 4, '0', STR_PAD_LEFT)
-                        : $val['Y'];
-                    
-                    $m = (strlen($val['m']) < 2)
-                        ? '0'.$val['m'] : $val['m'];
-                        
-                    $d = (strlen($val['d']) < 2)
-                        ? '0'.$val['d'] : $val['d'];
-                        
-                    $h = (strlen($val['H']) < 2)
-                        ? '0' . $val['H'] : $val['H'];
-                    
-                    $i = (strlen($val['i']) < 2)
-                        ? '0' . $val['i'] : $val['i'];
-                        
-                    $s = (strlen($val['s']) < 2)
-                        ? '0' . $val['s'] : $val['s'];
-                        
-                    $val = "$y-$m-$d $h:$i:$s";
-                    
-                } else {
-                    // convert using the Date class
-                    $tmp = new DB_Table_Date($val);
-                    $val = $tmp->format('%Y-%m-%d %H:%M:%S');
-                }
-                
-                break;
-            
-            case 'smallint':
-            case 'integer':
-            case 'bigint':
-                settype($val, 'integer');
-                break;
-            
-            case 'decimal':
-            case 'single':
-            case 'double':
-                settype($val, 'float');
-                break;
-
-            }
-        }
-    }
-    
-    
-    /**
-     * Creates the table based on $this->col and $this->idx.
-     * 
-     * @param string $flag The automatic table creation mode to pursue:
-     * - 'safe' to create the table only if it does not exist
-     * - 'drop' to drop any existing table with the same name and re-create it
-     * 
-     * @return mixed Boolean true if the table was successfully created,
-     *               false if there was no need to create the table, or
-     *               a PEAR_Error if the attempted creation failed.
-     *
-     * @throws PEAR_Error if
-     *     - DB_Table_Manager::tableExists() returns Error (bubbles up)
-     *     - DB_Table_Manager::create() returns Error (bubbles up)
-     * 
-     * @access public
-     * 
-     * @see DB_Table_Manager::tableExists()
-     * @see DB_Table_Manager::create()
-     */
-    function create($flag)
-    {
-        include_once 'DB/Table/Manager.php';
-
-        // are we OK to create the table?
-        $ok = false;
-        
-        // check the create-flag
-        switch ($flag) {
-
-            case 'drop':
-                // drop only if table exists
-                $table_exists = DB_Table_Manager::tableExists($this->db,
-                                                              $this->table);
-                if (PEAR::isError($table_exists)) {
-                    return $table_exists;
-                }
-                if ($table_exists) {
-                    // forcibly drop an existing table
-                    if ($this->backend == 'mdb2') {
-                        $this->db->manager->dropTable($this->table);
-                    } else {
-                        $this->db->query("DROP TABLE {$this->table}");
-                    }
-                }
-                $ok = true;
-                break;
-
-            case 'safe':
-                // create only if table does not exist
-                $table_exists = DB_Table_Manager::tableExists($this->db,
-                                                              $this->table);
-                if (PEAR::isError($table_exists)) {
-                    return $table_exists;
-                }
-                // ok to create only if table does not exist
-                $ok = !$table_exists;
-                break;
-
-        }
-
-        // are we going to create the table?
-        if (! $ok) {
-            return false;
-        }
-
-        return DB_Table_Manager::create(
-            $this->db, $this->table, $this->col, $this->idx
-        );
-    }
-    
-    
-    /**
-     * Alters the table to match schema declared in $this->col and $this->idx.
-     *
-     * If the table does not exist, create it instead.
-     * 
-     * @return boolean true if altering is successful (PEAR_Error on failure)
-     *
-     * @throws PEAR_Error if
-     *     - DB_Table_Manager::tableExists() returns Error (bubbles up)
-     *     - DB_Table_Manager::create() returns Error (bubbles up)
-     *     - DB_Table_Manager::alter() returns Error (bubbles up)
-     *
-     * @access public
-     *
-     * @see DB_Table_Manager::tableExists()
-     * @see DB_Table_Manager::create()
-     * @see DB_Table_Manager::alter()
-     */
-    function alter()
-    {
-        $create = false;
-        
-        // alter the table columns and indexes if the table exists
-        $table_exists = DB_Table_Manager::tableExists($this->db,
-                                                      $this->table);
-        if (PEAR::isError($table_exists)) {
-            return $table_exists;
-        }
-        if (!$table_exists) {
-            // table does not exist => just create the table, there is
-            // nothing that could be altered
-            $create = true;
-        }
-
-        if ($create) {
-            return DB_Table_Manager::create(
-                $this->db, $this->table, $this->col, $this->idx
-            );
-        }
-
-        return DB_Table_Manager::alter(
-            $this->db, $this->table, $this->col, $this->idx
-        );
-    }
-    
-    
-    /**
-     * Verifies the table based on $this->col and $this->idx.
-     * 
-     * @return boolean true if verification succees (PEAR_Error on failure).
-     *
-     * @throws PEAR_Error if
-     *     DB_Table_Manager::verify() returns Error (bubbles up)
-     *
-     * @access public
-     * 
-     * @see DB_Table_Manager::verify()
-     */
-    function verify()
-    {
-        return DB_Table_Manager::verify(
-            $this->db, $this->table, $this->col, $this->idx
-        );
-    }
-    
-    
-    /**
-     * Checks if a value validates against the DB_Table data type for a
-     * given column. This only checks that it matches the data type; it
-     * does not do extended validation.
-     * 
-     * @param array $val A value to check against the column's DB_Table
-     * data type.
-     * 
-     * @param array $col A column name from $this->col.
-     * 
-     * @return boolean True if $val validates against data type, false if not
-     *
-     * @throws PEAR_Error if
-     *     Invalid column type in $this->col (DB_TABLE_ERR_VALIDATE_TYPE)
-     *
-     * @access public
-     * 
-     * @see DB_Table_Valid
-     */
-    function isValid($val, $col)
-    {
-        // is the value null?
-        if (is_null($val)) {
-            // is the column required?
-            if ($this->isRequired($col)) {
-                // yes, so not valid
-                return false;
-            } else {
-                // not required, so it's valid
-                return true;
-            }
-        }
-        
-        // make sure we have the validation class
-        include_once 'DB/Table/Valid.php';
-        
-        // validate values per the column type.  we use sqlite
-        // as the single authentic list of allowed column types,
-        // regardless of the actual rdbms being used.
-        $map = array_keys($GLOBALS['_DB_TABLE']['type']['sqlite']);
-        
-        // is the column type on the map?
-        if (! in_array($this->col[$col]['type'], $map)) {
-            return $this->throwError(
-                DB_TABLE_ERR_VALIDATE_TYPE,
-                "'$col' ('{$this->col[$col]['type']}')"
-            );
-        }
-        
-        // validate for the type
-        switch ($this->col[$col]['type']) {
-        
-        case 'char':
-        case 'varchar':
-            $result = DB_Table_Valid::isChar(
-                $val,
-                $this->col[$col]['size']
-            );
-            break;
-        
-        case 'decimal':
-            $result = DB_Table_Valid::isDecimal(
-                $val,
-                $this->col[$col]['size'],
-                $this->col[$col]['scope']
-            );
-            break;
-            
-        default:
-            $result = call_user_func(
-                array(
-                    'DB_Table_Valid',
-                    'is' . ucwords($this->col[$col]['type'])
-                ),
-                $val
-            );
-            break;
-
-        }
-        
-        // have we passed the check so far, and should we
-        // also check for allowed values?
-        if ($result && isset($this->col[$col]['qf_vals'])) {
-            $keys = array_keys($this->col[$col]['qf_vals']);
-            
-            $result = in_array(
-                $val,
-                array_keys($this->col[$col]['qf_vals'])
-            );
-        }
-        
-        return $result;
-    }
-    
-    
-    /**
-     * Is a specific column required to be set and non-null?
-     * 
-     * @param mixed $column The column to check against.
-     * @return boolean      True if required, false if not.
-     * @access public
-     */
-    function isRequired($column)
-    {
-        if (isset($this->col[$column]['require']) &&
-            $this->col[$column]['require'] == true) {
-            return true;
-        } else {
-            return false;
-        }
-    }
-    
-    
-    /**
-     * 
-     * Creates and returns a QuickForm object based on table columns.
-     *
-     * @param array $columns A sequential array of column names to use in
-     * the form; if null, uses all columns.
-     *
-     * @param string $array_name By default, the form will use the names
-     * of the columns as the names of the form elements.  If you pass
-     * $array_name, the column names will become keys in an array named
-     * for this parameter.
-     * 
-     * @param array $args An associative array of optional arguments to
-     * pass to the QuickForm object.  The keys are...
-     *
-     * 'formName' : String, name of the form; defaults to the name of this
-     * table.
-     * 
-     * 'method' : String, form method; defaults to 'post'.
-     * 
-     * 'action' : String, form action; defaults to
-     * $_SERVER['REQUEST_URI'].
-     * 
-     * 'target' : String, form target target; defaults to '_self'
-     * 
-     * 'attributes' : Associative array, extra attributes for <form>
-     * tag; the key is the attribute name and the value is attribute
-     * value.
-     * 
-     * 'trackSubmit' : Boolean, whether to track if the form was
-     * submitted by adding a special hidden field
-     * 
-     * @param string $clientValidate By default, validation will match
-     * the 'qf_client' value from the column definition.  However, if
-     * you set $clientValidate to true or false, this will override the
-     * value from the column definition.
-     *
-     * @param array $formFilters An array with filter function names or
-     * callbacks that will be applied to all form elements.
-     *
-     * @return object HTML_QuickForm
-     * 
-     * @access public
-     *
-     * @see HTML_QuickForm
-     * @see DB_Table_QuickForm
-     */
-    function &getForm($columns = null, $array_name = null, $args = array(),
-        $clientValidate = null, $formFilters = null)
-    {
-        include_once 'DB/Table/QuickForm.php';
-        $coldefs = $this->_getFormColDefs($columns);
-        $form =& DB_Table_QuickForm::getForm($coldefs, $array_name, $args,
-            $clientValidate, $formFilters);
-        return $form;
-    }
-    
-    
-    /**
-     * Adds elements and rules to a pre-existing HTML_QuickForm object.
-     * 
-     * By default, the form will use the names of the columns as the names 
-     * of the form elements.  If you pass $array_name, the column names 
-     * will become keys in an array named for this parameter.
-     *
-     * @param object &$form      An HTML_QuickForm object.
-     * 
-     * @param array $columns     A sequential array of column names to use in
-     *                           the form; if null, uses all columns.
-     *
-     * @param string $array_name Name of array of column names
-     *
-     * @param clientValidate
-     * 
-     * @return void
-     * 
-     * @access public
-     * 
-     * @see HTML_QuickForm
-     * 
-     * @see DB_Table_QuickForm
-     */
-    function addFormElements(&$form, $columns = null, $array_name = null,
-        $clientValidate = null)
-    {
-        include_once 'DB/Table/QuickForm.php';
-        $coldefs = $this->_getFormColDefs($columns);
-        DB_Table_QuickForm::addElements($form, $coldefs, $array_name);
-        DB_Table_QuickForm::addRules($form, $coldefs, $array_name, 
-           $clientValidate);
-    }
-
-
-    /**
-     * Adds static form elements like 'header', 'static', 'submit' or 'reset' 
-     * to a pre-existing HTML_QuickForm object. The form elements needs to be
-     * defined in a property called $frm.
-     * 
-     * @param object &$form An HTML_QuickForm object.
-     * @return void
-     * @access public
-     * 
-     * @see HTML_QuickForm
-     * @see DB_Table_QuickForm
-     */
-    function addStaticFormElements(&$form)
-    {
-        include_once 'DB/Table/QuickForm.php';
-        DB_Table_QuickForm::addStaticElements($form, $this->frm);
-    }
-
-
-    /**
-     * 
-     * Creates and returns an array of QuickForm elements based on an
-     * array of DB_Table column names.
-     * 
-     * @param array $columns A sequential array of column names to use in
-     * the form; if null, uses all columns.
-     * 
-     * @param string $array_name By default, the form will use the names
-     * of the columns as the names of the form elements.  If you pass
-     * $array_name, the column names will become keys in an array named
-     * for this parameter.
-     * 
-     * @return array An array of HTML_QuickForm_Element objects.
-     * 
-     * @access public
-     * 
-     * @see HTML_QuickForm
-     * @see DB_Table_QuickForm
-     */
-    function &getFormGroup($columns = null, $array_name = null)
-    {
-        include_once 'DB/Table/QuickForm.php';
-        $coldefs = $this->_getFormColDefs($columns);
-        $group = DB_Table_QuickForm::getGroup($coldefs, $array_name);
-        return $group;
-    }
-    
-    
-    /**
-     * Creates and returns a single QuickForm element based on a DB_Table
-     * column name.
-     * 
-     * @param string $column   A DB_Table column name.
-     * @param string $elemname The name to use for the generated QuickForm
-     *                         element.
-     * 
-     * @return object HTML_QuickForm_Element
-     * 
-     * @access public
-     * 
-     * @see HTML_QuickForm
-     * @see DB_Table_QuickForm
-     */
-    
-    function &getFormElement($column, $elemname)
-    {
-        include_once 'DB/Table/QuickForm.php';
-        $coldef = $this->_getFormColDefs($column);
-        DB_Table_QuickForm::fixColDef($coldef[$column], $elemname);
-        $element =& DB_Table_QuickForm::getElement($coldef[$column],
-            $elemname);
-        return $element;
-    }
-
-    /**
-     * Creates and returns an array of QuickForm elements based on a DB_Table
-     * column name.
-     * 
-     * @author Ian Eure <ieure@php.net>
-     * 
-     * @param array $cols        Array of DB_Table column names
-     * @param string $array_name The name to use for the generated QuickForm
-     *                           elements.
-     * @return object HTML_QuickForm_Element
-     * 
-     * @access public
-     * 
-     * @see HTML_QuickForm
-     * @see DB_Table_QuickForm
-     */
-    function &getFormElements($cols, $array_name = null)
-    {
-        include_once 'DB/Table/QuickForm.php';
-        $elements = DB_Table_QuickForm::getElements($cols, $array_name);
-        return $elements;
-    }
-    
-    
-    /**
-     * Creates a column definition array suitable for DB_Table_QuickForm.
-     * 
-     * @param string|array $column_set A string column name, a sequential
-     * array of columns names, or an associative array where the key is a
-     * column name and the value is the default value for the generated
-     * form element.  If null, uses all columns for this class.
-     * 
-     * @return array An array of column defintions suitable for passing
-     *               to DB_Table_QuickForm.
-     *
-     * @access public
-     * 
-     */
-    function _getFormColDefs($column_set = null)
-    {
-        if (is_null($column_set)) {
-            // no columns or columns+values; just return the $this->col
-            // array.
-            return $this->getColumns($column_set);
-        }
-        
-        // check to see if the keys are sequential integers.  if so,
-        // the $column_set is just a list of columns.
-        settype($column_set, 'array');
-        $keys = array_keys($column_set);
-        $all_integer = true;
-        foreach ($keys as $val) {
-            if (! is_integer($val)) {
-                $all_integer = false;
-                break;
-            }
-        }
-        
-        if ($all_integer) {
-        
-            // the column_set is just a list of columns; get back the $this->col
-            // array elements matching this list.
-            $coldefs = $this->getColumns($column_set);
-            
-        } else {
-            
-            // the columns_set is an associative array where the key is a
-            // column name and the value is the form element value.
-            $coldefs = $this->getColumns($keys);
-            foreach ($coldefs as $key => $val) {
-                $coldefs[$key]['qf_setvalue'] = $column_set[$key];
-            }
-            
-        }
-        
-        return $coldefs;
-    }
-
-    /**
-     * Returns XML string representation of the table
-     *
-     * @param  string $indent string of whitespace
-     * @return string XML string
-     * @access public
-     */
-    function toXML($indent = '') {
-        require_once 'DB/Table/XML.php';
-        $s = array();
-        $s[] = DB_Table_XML::openTag('table', $indent);
-        $s[] = DB_Table_XML::lineElement('name', $this->table, $indent);
-        $s[] = DB_Table_XML::openTag('declaration', $indent);
-        // Column declarations
-        foreach ($this->col as $name => $col) {
-            $type     = (isset($col['type'])) ? $col['type'] : null;
-            $size     = (isset($col['size'])) ? $col['size'] : null;
-            $scope    = (isset($col['scope'])) ? $col['scope'] : null;
-            $require  = (isset($col['require'])) ? $col['require'] : null;
-            $default  = (isset($col['set default'])) ? $col['set default'] : null;
-            $line = '   ' . $name . '  ' . $type;
-            $s[] = DB_Table_XML::openTag('field', $indent);
-            $s[] = DB_Table_XML::lineElement('name', $name, $indent);
-            $s[] = DB_Table_XML::lineElement('type', $type, $indent);
-            if ($size) {
-                $s[] = DB_Table_XML::lineElement('length', $size, $indent);
-            }
-            if ($require) {
-                $require = (int) $require;
-                $s[] = DB_Table_XML::lineElement('notnull', $require, $indent);
-            }
-            if (!($default === null)) {
-               $s[] = DB_Table_XML::lineElement('set default', $default, $indent);
-            }
-            if ($this->auto_inc_col == $name) {
-               $s[] = DB_Table_XML::lineElement('autoincrement', '1', $indent);
-            }
-            $s[] = DB_Table_XML::closeTag('field', $indent);
-        }
-        // Index declarations
-        foreach ($this->idx as $name => $idx) {
-            $s[] = DB_Table_XML::openTag('index', $indent);
-            $cols = $idx['cols'];
-            $type = $idx['type'];
-            if (is_string($name)) {
-                $s[] = DB_Table_XML::lineElement('name', $name, $indent);
-            }
-            if ($type == 'primary') {
-                $s[] = DB_Table_XML::lineElement('primary', '1', $indent);
-            } elseif ($type == 'unique') {
-                $s[] = DB_Table_XML::lineElement('unique', '1', $indent);
-            }
-            if (is_string($cols)) {
-                $cols = array($cols);
-            }
-            foreach ($cols as $col) {
-                $s[] = DB_Table_XML::lineElement('field', $col, $indent);
-            }
-            $s[] = DB_Table_XML::closeTag('index', $indent);
-        }
-        // Foreign key references (if $this->_database is not null)
-        if ($this->_database) {
-            if (isset($this->_database->_ref[$this->table])) {
-                $refs = $this->_database->_ref[$this->table];
-                foreach ($refs as $rtable => $def) {
-                    $fkey = $def['fkey']; // foreign key of referencing table
-                    $rkey = $def['rkey']; // referenced/primary key
-                    if (is_string($fkey)) {
-                        $fkey = array($fkey);
-                    }
-                    if (is_string($rkey)) {
-                        $rkey = array($rkey);
-                    }
-                    $on_delete = $def['on_delete']; // on-delete action
-                    $on_update = $def['on_update']; // on-update action
-                    $s[] = DB_Table_XML::openTag('foreign', $indent);
-                    foreach ($fkey as $fcol) {
-                        $s[] = DB_Table_XML::lineElement('field', $fcol, $indent);
-                    }
-                    $s[] = DB_Table_XML::openTag('references', $indent);
-                    $s[] = DB_Table_XML::lineElement('table', $rtable, $indent);
-                    if ($rkey) {
-                        foreach ($rkey as $rcol) {
-                            $s[] = DB_Table_XML::lineElement('field', $rcol,
-                                                             $indent);
-                        }
-                    }
-                    $s[] = DB_Table_XML::closeTag('references', $indent);
-                    if ($on_delete) {
-                        $s[] = DB_Table_XML::lineElement('ondelete', $on_delete,
-                                                         $indent);
-                    }
-                    if ($on_update) {
-                        $s[] = DB_Table_XML::lineElement('onupdate', $on_update,
-                                                         $indent);
-                    }
-                    $s[] = DB_Table_XML::closeTag('foreign', $indent);
-                }
-            }
-        }
-        $s[] = DB_Table_XML::closeTag('declaration', $indent);
-        $s[] = DB_Table_XML::closeTag('table', $indent);
-        return implode("\n", $s);
-    }
-
-}
-?>
diff --git a/civicrm/packages/DB/Table/Base.php b/civicrm/packages/DB/Table/Base.php
deleted file mode 100644
index 6837505b86..0000000000
--- a/civicrm/packages/DB/Table/Base.php
+++ /dev/null
@@ -1,755 +0,0 @@
-<?php
-
-/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
-
-/**
- * DB_Table_Base Base class for DB_Table and DB_Table_Database
- *
- * This utility class contains properties and methods that are common
- * to DB_Table and DB_Table database. These are all related to one of:
- *   - DB/MDB2 connection object [ $db and $backend properties ]
- *   - Error handling [ throwError() method, $error and $_primary_subclass ]
- *   - SELECT queries [ select*() methods, $sql & $fetchmode* properties]
- *   - buildSQL() and quote() SQL utilities
- *   - _swapModes() method 
- * 
- * PHP versions 4 and 5
- *
- * LICENSE:
- * 
- * Copyright (c) 1997-2007, Paul M. Jones <pmjones@php.net>
- *                          David C. Morse <morse@php.net>
- *                          Mark Wiesemann <wiesemann@php.net>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *    * Redistributions of source code must retain the above copyright
- *      notice, this list of conditions and the following disclaimer.
- *    * Redistributions in binary form must reproduce the above copyright
- *      notice, this list of conditions and the following disclaimer in the 
- *      documentation and/or other materials provided with the distribution.
- *    * The names of the authors may not be used to endorse or promote products 
- *      derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * @category Database
- * @package  DB_Table
- * @author   Paul M. Jones <pmjones@php.net>
- * @author   David C. Morse <morse@php.net>
- * @author   Mark Wiesemann <wiesemann@php.net>
- * @license  http://opensource.org/licenses/bsd-license.php New BSD License
- * @version  CVS: $Id: Base.php,v 1.4 2007/12/13 16:52:14 wiesemann Exp $
- * @link     http://pear.php.net/package/DB_Table
- */
-
-require_once 'PEAR.php';
-
-// {{{ DB_Table_Base
-
-/**
- * Base class for DB_Table and DB_Table_Database
- *
- * @category Database
- * @package  DB_Table
- * @author   Paul M. Jones <pmjones@php.net>
- * @author   David C. Morse <morse@php.net>
- * @author   Mark Wiesemann <wiesemann@php.net>
- * @version  Release: 1.5.6
- * @link     http://pear.php.net/package/DB_Table
- */
-class DB_Table_Base
-{
-
-    // {{{ properties
-
-    /**
-     * The PEAR DB/MDB2 object that connects to the database.
-     *
-     * @var    object
-     * @access public
-     */
-    var $db = null;
-
-    /**
-     * The backend type, which must be 'db' or 'mdb2'
-     *
-     * @var    string
-     * @access public
-     */
-    var $backend = null;
-
-    /**
-    * If there is an error on instantiation, this captures that error.
-    *
-    * This property is used only for errors encountered in the constructor
-    * at instantiation time.  To check if there was an instantiation error...
-    *
-    * <code>
-    * $obj = new DB_Table_*();
-    * if ($obj->error) {
-    *     // ... error handling code here ...
-    * }
-    * </code>
-    *
-    * @var    object PEAR_Error
-    * @access public
-    */
-    var $error = null;
-
-    /**
-     * Baseline SELECT maps for buildSQL() and select*() methods.
-     *
-     * @var    array
-     * @access public
-     */
-    var $sql = array();
-
-    /**
-     * Format of rows in sets returned by the select() method 
-     *
-     * This should be one of the DB/MDB2_FETCHMODE_* constant values, such as
-     * MDB2_FETCHMODE_ASSOC, MDB2_FETCHMODE_ORDERED, or MDB2_FETCHMODE_OBJECT.
-     * It determines whether select() returns represents individual rows as
-     * associative arrays with column name keys, ordered/sequential arrays, 
-     * or objects with column names mapped to properties. Use corresponding
-     * DB_FETCHMODE_* constants for use with the DB backend. It has no effect
-     * upon the return value of selectResult().
-     *
-     * If a 'fetchmode' element is set for a specific query array, the query 
-     * fetchmode will override this DB_Table or DB_Table_Database property.
-     * If no value is set for the query or the DB_Table_Base object, the value
-     * or default set in the underlying DB/MDB2 object will be used.
-     *
-     * @var    int
-     * @access public
-     */
-    var $fetchmode = null;
-
-    /**
-     * Class of objects to use for rows returned as objects by select()
-     *
-     * When fetchmode is DB/MDB2_FETCHMODE_OBJECT, use this class for each
-     * returned row in rsults of select(). May be overridden by value of 
-     * 'fetchmode_object_class'. If no class name is set in the query or 
-     * the DB_Table_Base, defaults to that set in the DB/MDB2 object, or
-     * to default of StdObject.
-     *
-     * @var    string
-     * @access public
-     */
-    var $fetchmode_object_class = null;
-
-    /**
-     * Upper case name of primary subclass, 'DB_TABLE' or 'DB_TABLE_DATABASE'
-     *
-     * This should be set in the constructor of the child class, and is 
-     * used in the DB_Table_Base::throwError() method to determine the
-     * location of the relevant error codes and messages. Error codes and
-     * error code messages are defined in class $this->_primary_subclass.
-     * Messages are stored in $GLOBALS['_' . $this->_primary_subclass]['error']
-     *
-     * @var    string
-     * @access private
-     */
-     var $_primary_subclass = null;
-
-    // }}}
-    // {{{ Methods
-
-    /**
-     * Specialized version of throwError() modeled on PEAR_Error.
-     * 
-     * Throws a PEAR_Error with an error message based on an error code 
-     * and corresponding error message defined in $this->_primary_subclass
-     * 
-     * @param string $code  An error code constant 
-     * @param string $extra Extra text for the error (in addition to the 
-     *                      regular error message).
-     * @return object PEAR_Error
-     * @access public
-     * @static
-     */
-    function &throwError($code, $extra = null)
-    {
-        // get the error message text based on the error code
-        $index = '_' . $this->_primary_subclass;
-        $text = $this->_primary_subclass . " Error - \n" 
-              . $GLOBALS[$index]['error'][$code];
-        
-        // add any additional error text
-        if ($extra) {
-            $text .= ' ' . $extra;
-        }
-        
-        // done!
-        $error = PEAR::throwError($text, $code);
-        return $error;
-    }
-   
-    /**
-     * Overwrites one or more error messages, e.g., to internationalize them.
-     * 
-     * May be used to change messages stored in global array $GLOBALS[$class_key]
-     * @param mixed $code If string, the error message with code $code will be
-     *                    overwritten by $message. If array, each key is a code
-     *                    and each value is a new message. 
-     * 
-     * @param string $message Only used if $key is not an array.
-     * @return void
-     * @access public
-     */
-    function setErrorMessage($code, $message = null) {
-        $index = '_' . $this->_primary_subclass;
-        if (is_array($code)) {
-            foreach ($code as $single_code => $single_message) {
-                $GLOBALS[$index]['error'][$single_code] = $single_message;
-            }
-        } else {
-            $GLOBALS[$index]['error'][$code] = $message;
-        }
-    }
-
-
-    /**
-     * Returns SQL SELECT string constructed from sql query array
-     *
-     * @param mixed  $query  SELECT query array, or key string of $this->sql
-     * @param string $filter SQL snippet to AND with default WHERE clause
-     * @param string $order  SQL snippet to override default ORDER BY clause
-     * @param int    $start  The row number from which to start result set
-     * @param int    $count  The number of rows to list in the result set.
-     *
-     * @return string SQL SELECT command string (or PEAR_Error on failure)
-     *
-     * @access public
-     */
-    function buildSQL($query, $filter = null, $order = null, 
-                              $start = null, $count = null)
-    {
-
-        // Is $query a query array or a key of $this->sql ?
-        if (!is_array($query)) {
-            if (is_string($query)) {
-                if (isset($this->sql[$query])) {
-                    $query = $this->sql[$query];
-                } else {
-                    return $this->throwError(
-                           constant($this->_primary_subclass . '_ERR_SQL_UNDEF'),
-                           $query);
-                }
-            } else {
-                return $this->throwError(
-                       constant($this->_primary_subclass . '_ERR_SQL_NOT_STRING'));
-            }
-        }
-       
-        // Construct SQL command from parts
-        $s = array();
-        if (isset($query['select'])) {
-            $s[] = 'SELECT ' . $query['select'];
-        } else {
-            $s[] = 'SELECT *';
-        }
-        if (isset($query['from'])) {
-            $s[] = 'FROM ' . $query['from'];
-        } elseif ($this->_primary_subclass == 'DB_TABLE') {
-            $s[] = 'FROM ' . $this->table;
-        }
-        if (isset($query['join'])) {
-            $s[] = $query['join'];
-        }
-        if (isset($query['where'])) {
-            if ($filter) {
-                $s[] = 'WHERE ( ' . $query['where'] . ' )';
-                $s[] = '  AND ( '. $filter . ' )';
-            } else {
-                $s[] = 'WHERE ' . $query['where'];
-            }
-        } elseif ($filter) {
-            $s[] = 'WHERE ' . $filter;
-        }
-        if (isset($query['group'])) {
-            $s[] = 'GROUP BY ' . $query['group'];
-        }
-        if (isset($query['having'])) {
-            $s[] = 'HAVING '. $query['having'];
-        }
-        // If $order parameter is set, override 'order' element
-        if (!is_null($order)) {
-            $s[] = 'ORDER BY '. $order;
-        } elseif (isset($query['order'])) {
-            $s[] = 'ORDER BY ' . $query['order'];
-        }
-        $cmd = implode("\n", $s);
-        
-        // add LIMIT if requested
-        if (!is_null($start) && !is_null($count)) {
-            $db =& $this->db;
-            if ($this->backend == 'mdb2') {
-                $db->setLimit($count, $start);
-            } else {
-                $cmd = $db->modifyLimitQuery(
-                            $cmd, $start, $count);
-            }
-        }
-
-        // Return command string
-        return $cmd;
-    }
-
-  
-    /**
-     * Selects rows using one of the DB/MDB2 get*() methods.
-     *
-     * @param string $query SQL SELECT query array, or a key of the
-     *                          $this->sql property array.
-     * @param string $filter    SQL snippet to AND with default WHERE clause
-     * @param string $order     SQL snippet to override default ORDER BY clause
-     * @param int    $start     The row number from which to start result set
-     * @param int    $count     The number of rows to list in the result set.
-     * @param array  $params    Parameters for placeholder substitutions, if any
-     * @return mixed  An array of records from the table if anything but 
-     *                ('getOne'), a single value (if 'getOne'), or a PEAR_Error
-     * @see DB::getAll()
-     * @see MDB2::getAll()
-     * @see DB::getAssoc()
-     * @see MDB2::getAssoc()
-     * @see DB::getCol()
-     * @see MDB2::getCol()
-     * @see DB::getOne()
-     * @see MDB2::getOne()
-     * @see DB::getRow()
-     * @see MDB2::getRow()
-     * @see DB_Table_Base::_swapModes()
-     * @access public
-     */
-    function select($query, $filter = null, $order = null,
-                            $start = null, $count = null, $params = array())
-    {
-
-        // Is $query a query array or a key of $this->sql ?
-        // On output from this block, $query is an array
-        if (!is_array($query)) {
-            if (is_string($query)) {
-                if (isset($this->sql[$query])) {
-                    $query = $this->sql[$query];
-                } else {
-                    return $this->throwError(
-                          constant($this->_primary_subclass . '_ERR_SQL_UNDEF'),
-                          $query);
-                }
-            } else {
-                return $this->throwError(
-                    constant($this->_primary_subclass . '_ERR_SQL_NOT_STRING'));
-            }
-        }
-
-        // build the base command
-        $sql = $this->buildSQL($query, $filter, $order, $start, $count);
-        if (PEAR::isError($sql)) {
-            return $sql;
-        }
-
-        // set the get*() method name
-        if (isset($query['get'])) {
-            $method = ucwords(strtolower(trim($query['get'])));
-            $method = "get$method";
-        } else {
-            $method = 'getAll';
-        }
-
-        // DB_Table assumes you are using a shared PEAR DB/MDB2 object.
-        // Record fetchmode settings, to be restored before returning.
-        $db =& $this->db;
-        $restore_mode = $db->fetchmode;
-        if ($this->backend == 'mdb2') {
-            $restore_class = $db->getOption('fetch_class');
-        } else {
-            $restore_class = $db->fetchmode_object_class;
-        }
-
-        // swap modes
-        $fetchmode = $this->fetchmode;
-        $fetchmode_object_class = $this->fetchmode_object_class;
-        if (isset($query['fetchmode'])) {
-            $fetchmode = $query['fetchmode'];
-        }
-        if (isset($query['fetchmode_object_class'])) {
-            $fetchmode_object_class = $query['fetchmode_object_class'];
-        }
-        $this->_swapModes($fetchmode, $fetchmode_object_class);
-
-        // make sure params is an array
-        if (!is_null($params)) {
-            $params = (array) $params;
-        }
-
-        // get the result
-        if ($this->backend == 'mdb2') {
-            $result = $db->extended->$method($sql, null, $params);
-        } else {
-            switch ($method) {
-
-                case 'getCol':
-                    $result = $db->$method($sql, 0, $params);
-                    break;
-
-                case 'getAssoc':
-                    $result = $db->$method($sql, false, $params);
-                    break;
-
-                default:
-                    $result = $db->$method($sql, $params);
-                    break;
-
-            }
-        }
-
-        // restore old fetch_mode and fetch_object_class back
-        $this->_swapModes($restore_mode, $restore_class);
-
-        return $result;
-    }
-
-
-    /**
-     * Selects rows as a DB_Result/MDB2_Result_* object.
-     *
-     * @param string $query  The name of the SQL SELECT to use from the
-     *                       $this->sql property array.
-     * @param string $filter SQL snippet to AND to the default WHERE clause
-     * @param string $order  SQL snippet to override default ORDER BY clause
-     * @param int    $start  The record number from which to start result set
-     * @param int    $count  The number of records to list in result set.
-     * @param array $params  Parameters for placeholder substitutions, if any.
-     * @return object DB_Result/MDB2_Result_* object on success
-     *                (PEAR_Error on failure)
-     * @see DB_Table::_swapModes()
-     * @access public
-     */
-    function selectResult($query, $filter = null, $order = null,
-                   $start = null, $count = null, $params = array())
-    {
-        // Is $query a query array or a key of $this->sql ?
-        // On output from this block, $query is an array
-        if (!is_array($query)) {
-            if (is_string($query)) {
-                if (isset($this->sql[$query])) {
-                    $query = $this->sql[$query];
-                } else {
-                    return $this->throwError(
-                           constant($this->_primary_subclass . '_ERR_SQL_UNDEF'),
-                           $query);
-                }
-            } else {
-                return $this->throwError(
-                       constant($this->_primary_subclass . '_ERR_SQL_NOT_STRING'));
-            }
-        }
-       
-        // build the base command
-        $sql = $this->buildSQL($query, $filter, $order, $start, $count);
-        if (PEAR::isError($sql)) {
-            return $sql;
-        }
-
-        // DB_Table assumes you are using a shared PEAR DB/MDB2 object.
-        // Record fetchmode settings, to be restored afterwards.
-        $db =& $this->db;
-        $restore_mode = $db->fetchmode;
-        if ($this->backend == 'mdb2') {
-            $restore_class = $db->getOption('fetch_class');
-        } else {
-            $restore_class = $db->fetchmode_object_class;
-        }
-
-        // swap modes
-        $fetchmode = $this->fetchmode;
-        $fetchmode_object_class = $this->fetchmode_object_class;
-        if (isset($query['fetchmode'])) {
-            $fetchmode = $query['fetchmode'];
-        }
-        if (isset($query['fetchmode_object_class'])) {
-            $fetchmode_object_class = $query['fetchmode_object_class'];
-        }
-        $this->_swapModes($fetchmode, $fetchmode_object_class);
-
-        // make sure params is an array
-        if (!is_null($params)) {
-            $params = (array) $params;
-        }
-
-        // get the result
-        if ($this->backend == 'mdb2') {
-            $stmt =& $db->prepare($sql);
-            if (PEAR::isError($stmt)) {
-                return $stmt;
-            }
-            $result =& $stmt->execute($params);
-        } else {
-            $result =& $db->query($sql, $params);
-        }
-
-        // swap modes back
-        $this->_swapModes($restore_mode, $restore_class);
-
-        // return the result
-        return $result;
-    }
-
-
-    /**
-     * Counts the number of rows which will be returned by a query.
-     *
-     * This function works identically to {@link select()}, but it
-     * returns the number of rows returned by a query instead of the
-     * query results themselves.
-     *
-     * @author Ian Eure <ian@php.net>
-     * @param string $query  The name of the SQL SELECT to use from the
-     *                       $this->sql property array.
-     * @param string $filter Ad-hoc SQL snippet to AND with the default
-     *                       SELECT WHERE clause.
-     * @param string $order  Ad-hoc SQL snippet to override the default
-     *                       SELECT ORDER BY clause.
-     * @param int    $start  Row number from which to start listing in result
-     * @param int    $count  Number of rows to list in result set
-     * @param array  $params Parameters to use in placeholder substitutions
-     *                       (if any).
-     * @return int   Number of records from the table (or PEAR_Error on failure)
-     *
-     * @see DB_Table::select()
-     * @access public
-     */
-    function selectCount($query, $filter = null, $order = null,
-                       $start = null, $count = null, $params = array())
-    {
-
-        // Is $query a query array or a key of $this->sql ?
-        if (is_array($query)) {
-            $sql_key = null;
-            $count_query = $query;
-        } else {
-            if (is_string($query)) {
-                if (isset($this->sql[$query])) {
-                    $sql_key = $query;
-                    $count_query = $this->sql[$query];
-                } else {
-                    return $this->throwError(
-                           constant($this->_primary_subclass . '_ERR_SQL_UNDEF'), 
-                           $query);
-                }
-            } else {
-                return $this->throwError(
-                       constant($this->_primary_subclass . '_ERR_SQL_NOT_STRING'));
-            }
-        }
-
-        // Use Table name as default 'from' if child class is DB_TABLE
-        if ($this->_primary_subclass == 'DB_TABLE') {
-            if (!isset($query['from'])) {
-                $count_query['from'] = $this->table;
-            }
-        }
-
-        // If the query is a stored query in $this->sql, then create a corresponding
-        // key for the count query, or check if the count-query already exists
-        $ready = false;
-        if ($sql_key) {
-            // Create an sql key name for this count-query
-            $count_key = '__count_' . $sql_key;
-            // Check if a this count query alread exists in $this->sql
-            if (isset($this->sql[$count_key])) {
-                $ready = true;
-            }
-        }
-
-        // If a count-query does not already exist, create $count_query array
-        if ($ready) {
-
-            $count_query = $this->sql[$count_key];
-
-        } else {
-
-            // Is a count-field set for the query?
-            if (!isset($count_query['count']) || 
-                trim($count_query['count']) == '') {
-                $count_query['count'] = '*';
-            }
-
-            // Replace the SELECT fields with a COUNT() command
-            $count_query['select'] = "COUNT({$count_query['count']})";
-
-            // Replace the 'get' key so we only get one result item
-            $count_query['get'] = 'one';
-
-            // Create a new count-query in $this->sql
-            if ($sql_key) {
-                $this->sql[$count_key] = $count_query;
-            }
-
-        }
-
-        // Retrieve the count results
-        return $this->select($count_query, $filter, $order,
-                             $start, $count, $params);
-
-    }
-
-    /**
-     * Changes the $this->db PEAR DB/MDB2 object fetchmode and
-     * fetchmode_object_class.
-     *
-     * @param string $new_mode A DB/MDB2_FETCHMODE_* constant.  If null,
-     * defaults to whatever the DB/MDB2 object is currently using.
-     *
-     * @param string $new_class The object class to use for results when
-     * the $db object is in DB/MDB2_FETCHMODE_OBJECT fetch mode.  If null,
-     * defaults to whatever the the DB/MDB2 object is currently using.
-     *
-     * @return void
-     * @access private
-     */
-    function _swapModes($new_mode, $new_class)
-    {
-        // get the old (current) mode and class
-        $db =& $this->db;
-        $old_mode = $db->fetchmode;
-        if ($this->backend == 'mdb2') {
-            $old_class = $db->getOption('fetch_class');
-        } else {
-            $old_class = $db->fetchmode_object_class;
-        }
-
-        // don't need to swap anything if the new modes are both
-        // null or if the old and new modes already match.
-        if ((is_null($new_mode) && is_null($new_class)) ||
-            ($old_mode == $new_mode && $old_class == $new_class)) {
-            return;
-        }
-
-        // set the default new mode
-        if (is_null($new_mode)) {
-            $new_mode = $old_mode;
-        }
-
-        // set the default new class
-        if (is_null($new_class)) {
-            $new_class = $old_class;
-        }
-
-        // swap modes
-        $db->setFetchMode($new_mode, $new_class);
-    }
-
-
-    /**
-     * Returns SQL condition equating columns to literal values.
-     *
-     * The parameter $data is an associative array in which keys are
-     * column names and values are corresponding values. The method
-     * returns an SQL string that is true if the value of every 
-     * specified database columns is equal to the corresponding 
-     * value in $data. 
-     * 
-     * For example, if:
-     * <code>
-     *     $data = array( 'c1' => 'thing', 'c2' => 23, 'c3' => 0.32 )
-     * </code>
-     * then buildFilter($data) returns a string 
-     * <code>
-     *     c1 => 'thing' AND c2 => 23 AND c3 = 0.32
-     * </code>
-     * in which string values are replaced by SQL literal values, 
-     * quoted and escaped as necessary.
-     * 
-     * Values are quoted and escaped as appropriate for each data 
-     * type and the backend RDBMS, using the MDB2::quote() or
-     * DB::smartQuote() method. The behavior depends on the PHP type
-     * of the value: string values are quoted and escaped, while 
-     * integer and float numerical values are not. Boolean values
-     * in $data are represented as 0 or 1, consistent with the way 
-     * booleans are stored by DB_Table. 
-     *
-     * Null values: The treatment of null values in $data depends upon 
-     * the value of the $match parameter . If $match == 'simple', an 
-     * empty string is returned if any $value of $data with a key in 
-     * $data_key is null. If $match == 'partial', the returned SQL 
-     * expression equates only the relevant non-null values of $data 
-     * to the values of corresponding database columns. If 
-     * $match == 'full', the function returns an empty string if all 
-     * of the relevant values of data are null, and returns a 
-     * PEAR_Error if some of the selected values are null and others 
-     * are not null.
-     *
-     * @param array $data associative array, keys are column names
-     * @return string SQL expression equating values in $data to 
-     *                values of columns named by keys.
-     * @access public
-     */
-    function buildFilter($data, $match = 'simple')
-    {
-        // Check $match type value
-        if (!in_array($match, array('simple', 'partial', 'full'))) {
-            return $this->throwError(
-                            DB_TABLE_DATABASE_ERR_MATCH_TYPE);
-        }
-
-        if (count($data) == 0) {
-            return '';
-        }
-        $filter = array();
-        foreach ($data as $key => $value) {
-            if (!is_null($value)) {
-                if ($match == 'full' && isset($found_null)) {
-                    return $this->throwError(
-                              DB_TABLE_DATABASE_ERR_FULL_KEY);
-                }
-                if (is_bool($value)) {
-                   $value = $value ? '1' : '0';
-                } else {
-                    if ($this->backend == 'mdb2') {
-                        $value = $this->db->quote($value);
-                    } else {
-                        $value = $this->db->quoteSmart($value);
-                    }
-                }
-                $filter[] = "$key = $value";
-            } else {
-                if ($match == 'simple') {
-                    return ''; // if any value in $data is null
-                } elseif ($match == 'full') {
-                    $found_null = true;
-                }
-            }
-        }
-        return implode(' AND ', $filter);
-    }
-
-    // }}}
-}
-
-// }}}
-
-/* Local variables:
- * tab-width: 4
- * c-basic-offset: 4
- * c-hanging-comment-ender-p: nil
- * End:
- */
-
-?>
diff --git a/civicrm/packages/DB/Table/Database.php b/civicrm/packages/DB/Table/Database.php
deleted file mode 100644
index 31150b77d3..0000000000
--- a/civicrm/packages/DB/Table/Database.php
+++ /dev/null
@@ -1,3495 +0,0 @@
-<?php
-
-// vim: set et ts=4 sw=4 fdm=marker:
-
-/**
- * DB_Table_Database relational database abstraction class
- * 
- * PHP versions 4 and 5
- *
- * LICENSE:
- * 
- * Copyright (c) 1997-2007, Paul M. Jones <pmjones@php.net>
- *                          David C. Morse <morse@php.net>
- *                          Mark Wiesemann <wiesemann@php.net>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *    * Redistributions of source code must retain the above copyright
- *      notice, this list of conditions and the following disclaimer.
- *    * Redistributions in binary form must reproduce the above copyright
- *      notice, this list of conditions and the following disclaimer in the 
- *      documentation and/or other materials provided with the distribution.
- *    * The names of the authors may not be used to endorse or promote products 
- *      derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * @category Database
- * @package  DB_Table
- * @author   David C. Morse <morse@php.net>
- * @license  http://opensource.org/licenses/bsd-license.php New BSD License
- * @version  CVS: $Id: Database.php,v 1.15 2007/12/13 16:52:14 wiesemann Exp $
- * @link     http://pear.php.net/package/DB_Table
- */
-
-// {{{ Error code constants
-
-/**
- * Parameter is not a DB/MDB2 object
- */
-define('DB_TABLE_DATABASE_ERR_DB_OBJECT', -201);
-
-/**
- * Error in addTable, parameter $table_obj is not a DB_Table object
- */
-define('DB_TABLE_DATABASE_ERR_DBTABLE_OBJECT', -202);
-
-/**
- * Error for table name that does not exist in the database
- */
-define('DB_TABLE_DATABASE_ERR_NO_TBL', -203);
-
-/**
- * Error for table name parameter that is not a string
- */
-define('DB_TABLE_DATABASE_ERR_TBL_NOT_STRING', -204);
-
-/**
- * Error in getCol for a non-existent column name
- */
-define('DB_TABLE_DATABASE_ERR_NO_COL', -205);
-
-/**
- * Error in getForeignCol for a non-existent foreign key column
- */
-define('DB_TABLE_DATABASE_ERR_NO_FOREIGN_COL', -206);
-
-/**
- * Error for column name that is not a string
- */
-define('DB_TABLE_DATABASE_ERR_COL_NOT_STRING', -207);
-
-/**
- * Error in addTable for multiple primary keys
- */
-define('DB_TABLE_DATABASE_ERR_MULT_PKEY', -208);
-
-/**
- * Error in addRef for a non-existent foreign key table
- */
-define('DB_TABLE_DATABASE_ERR_NO_FTABLE', -209);
-
-/**
- * Error in addRef for non-existence referenced table
- */
-define('DB_TABLE_DATABASE_ERR_NO_RTABLE', -210);
-
-/**
- * Error in addRef for null referenced key in a table with no primary key
- */
-define('DB_TABLE_DATABASE_ERR_NO_PKEY', -211);
-
-/**
- * Error in addRef for an invalid foreign key, neither string nor array
- */
-define('DB_TABLE_DATABASE_ERR_FKEY', -212);
-
-/**
- * Error in addRef for referenced key that is not a string, string foreign key
- */
-define('DB_TABLE_DATABASE_ERR_RKEY_NOT_STRING', -213);
-
-/**
- * Error in addRef for referenced key that is not an array, array foreign key
- */
-define('DB_TABLE_DATABASE_ERR_RKEY_NOT_ARRAY', -214);
-
-/**
- * Error in addRef for wrong number of columns in referenced key
- */
-define('DB_TABLE_DATABASE_ERR_RKEY_COL_NUMBER', -215);
-
-/**
- * Error in addRef for non-existence foreign key (referencing) column
- */
-define('DB_TABLE_DATABASE_ERR_NO_FCOL', -216);
-
-/**
- * Error in addRef for non-existence referenced column
- */
-define('DB_TABLE_DATABASE_ERR_NO_RCOL', -217);
-
-/**
- * Error in addRef for referencing and referenced columns of different types
- */
-define('DB_TABLE_DATABASE_ERR_REF_TYPE', -218);
-
-/**
- * Error in addRef for multiple references from one table to another
- */
-define('DB_TABLE_DATABASE_ERR_MULT_REF', -219);
-
-/**
- * Error due to invalid ON DELETE action name
- */
-define('DB_TABLE_DATABASE_ERR_ON_DELETE_ACTION', -220);
-
-/**
- * Error due to invalid ON UPDATE action name
- */
-define('DB_TABLE_DATABASE_ERR_ON_UPDATE_ACTION', -221);
-
-/**
- * Error in addLink due to missing required reference
- */
-define('DB_TABLE_DATABASE_ERR_NO_REF_LINK', -222);
-
-/**
- * Error in validCol for a column name that does not exist in the datase
- */
-define('DB_TABLE_DATABASE_ERR_NO_COL_DB', -223);
-
-/**
- * Error in validCol for column name that does not exist in the specified table
- */
-define('DB_TABLE_DATABASE_ERR_NO_COL_TBL', -224);
-
-/**
- * Error in a buildSQL or select* method for an undefined key of $this->sql
- */
-define('DB_TABLE_DATABASE_ERR_SQL_UNDEF', -225);
-
-/**
- * Error in a buildSQL or select* method for a key of $this->sql that is 
- * not a string
- */
-define('DB_TABLE_DATABASE_ERR_SQL_NOT_STRING', -226);
-
-/**
- * Error in buildFilter due to invalid match type 
- */
-define('DB_TABLE_DATABASE_ERR_MATCH_TYPE', -227);
-
-/**
- * Error in buildFilter due to invalid key for full match
- */
-define('DB_TABLE_DATABASE_ERR_DATA_KEY', -228);
-
-/**
- * Error in buildFilter due to invalid key for full match
- */
-define('DB_TABLE_DATABASE_ERR_FILT_KEY', -229);
-
-/**
- * Error in buildFilter due to invalid key for full match
- */
-define('DB_TABLE_DATABASE_ERR_FULL_KEY', -230);
-
-/**
- * Error in insert for a failed foreign key constraint
- */
-define('DB_TABLE_DATABASE_ERR_FKEY_CONSTRAINT', -231);
-
-/**
- * Error in delete due to a referentially triggered 'restrict' action
- */
-define('DB_TABLE_DATABASE_ERR_RESTRICT_DELETE', -232);
-
-/**
- * Error in update due to a referentially triggered 'restrict' action
- */
-define('DB_TABLE_DATABASE_ERR_RESTRICT_UPDATE', -233);
-
-/**
- * Error in fromXML for table with multiple auto_increment columns
- */
-define('DB_TABLE_DATABASE_ERR_XML_MULT_AUTO_INC', -234);
-
-/**
- * Error in autoJoin, column and tables parameter both null
- */
-define('DB_TABLE_DATABASE_ERR_NO_COL_NO_TBL', -235);
-
-/**
- * Error in autoJoin for ambiguous column name
- */
-define('DB_TABLE_DATABASE_ERR_COL_NOT_UNIQUE', -236);
-
-/**
- * Error in autoJoin for non-unique set of join conditions
- */
-define('DB_TABLE_DATABASE_ERR_AMBIG_JOIN', -237);
-
-/**
- * Error in autoJoin for failed construction of join 
- */
-define('DB_TABLE_DATABASE_ERR_FAIL_JOIN', -238);
-
-/**
- * Error in fromXML for PHP 4 (this function requires PHP 5)
- */
-define('DB_TABLE_DATABASE_ERR_PHP_VERSION', -239);
-
-/**
- * Error parsing XML string in fromXML
- */
-define('DB_TABLE_DATABASE_ERR_XML_PARSE', -240);
-
-// }}}
-// {{{ Includes
-
-/**
- * DB_Table_Base base class
- */
-require_once 'DB/Table/Base.php';
-
-/**
- * DB_Table table abstraction class
- */
-require_once 'DB/Table.php';
-
-/**
- * The PEAR class for errors
- */
-require_once 'PEAR.php';
-
-// }}}
-// {{{ Error messages
-
-/** 
- * US-English default error messages. If you want to internationalize, you can
- * set the translated messages via $GLOBALS['_DB_TABLE_DATABASE']['error']. 
- * You can also use DB_Table_Database::setErrorMessage(). Examples:
- * 
- * <code>
- * (1) $GLOBALS['_DB_TABLE_DATABASE']['error'] = array(
- *                                           DB_TABLE_DATABASE_ERR_.. => '...',
- *                                           DB_TABLE_DATABASE_ERR_.. => '...');
- * (2) DB_Table_Database::setErrorMessage(DB_TABLE_DATABASE_ERR_.., '...');
- *     DB_Table_Database::setErrorMessage(DB_TABLE_DATABASE_ERR_.., '...');
- * (3) DB_Table_Database::setErrorMessage(array(
- *                                        DB_TABLE_DATABASE_ERR_.. => '...');
- *                                        DB_TABLE_DATABASE_ERR_.. => '...');
- * (4) $obj =& new DB_Table();
- *     $obj->setErrorMessage(DB_TABLE_DATABASE_ERR_.., '...');
- *     $obj->setErrorMessage(DB_TABLE_DATABASE_ERR_.., '...');
- * (5) $obj =& new DB_Table();
- *     $obj->setErrorMessage(array(DB_TABLE_DATABASE_ERR_.. => '...');
- *                                 DB_TABLE_DATABASE_ERR_.. => '...');
- * </code>
- * 
- * For errors that can occur with-in the constructor call (i.e. e.g. creating
- * or altering the database table), only the code from examples (1) to (3)
- * will alter the default error messages early enough. For errors that can
- * occur later, examples (4) and (5) are also valid.
- */
-$GLOBALS['_DB_TABLE_DATABASE']['default_error'] = array(
-        DB_TABLE_DATABASE_ERR_DB_OBJECT =>
-        'Invalid DB/MDB2 object parameter. Function',
-        DB_TABLE_DATABASE_ERR_NO_TBL =>
-        'Table does not exist in database. Method, Table =',
-        DB_TABLE_DATABASE_ERR_TBL_NOT_STRING =>
-        'Table name parameter is not a string in method',
-        DB_TABLE_DATABASE_ERR_NO_COL =>
-        'In getCol, non-existent column name parameter',
-        DB_TABLE_DATABASE_ERR_NO_FOREIGN_COL =>
-        'In getForeignCol, non-existent column name parameter',
-        DB_TABLE_DATABASE_ERR_COL_NOT_STRING =>
-        'Column name parameter is not a string in method',
-        DB_TABLE_DATABASE_ERR_DBTABLE_OBJECT =>
-        'Parameter of addTable is not a DB_Table object',
-        DB_TABLE_DATABASE_ERR_MULT_PKEY =>
-        'Multiple primary keys in one table detected in addTable. Table',
-        DB_TABLE_DATABASE_ERR_NO_FTABLE =>
-        'Foreign key reference from non-existent table in addRef. Reference',
-        DB_TABLE_DATABASE_ERR_NO_RTABLE =>
-        'Reference to a non-existent referenced table in addRef. Reference',
-        DB_TABLE_DATABASE_ERR_NO_PKEY =>
-        'Missing primary key of referenced table in addRef. Reference',
-        DB_TABLE_DATABASE_ERR_FKEY =>
-        'Foreign / referencing key is not a string or array in addRef',
-        DB_TABLE_DATABASE_ERR_RKEY_NOT_STRING =>
-        'Foreign key is a string, referenced key is not a string in addRef',
-        DB_TABLE_DATABASE_ERR_RKEY_NOT_ARRAY =>
-        'Foreign key is an array, referenced key is not an array in addRef',
-        DB_TABLE_DATABASE_ERR_RKEY_COL_NUMBER =>
-        'Wrong number of columns in referencing key in addRef',
-        DB_TABLE_DATABASE_ERR_NO_FCOL =>
-        'Nonexistent foreign / referencing key column in addRef. Reference',
-        DB_TABLE_DATABASE_ERR_NO_RCOL =>
-        'Nonexistent referenced key column in addRef. Reference',
-        DB_TABLE_DATABASE_ERR_REF_TYPE =>
-        'Different referencing and referenced column types in addRef. Reference',
-        DB_TABLE_DATABASE_ERR_MULT_REF =>
-        'Multiple references between two tables in addRef. Reference',
-        DB_TABLE_DATABASE_ERR_ON_DELETE_ACTION =>
-        'Invalid ON DELETE action. Reference',
-        DB_TABLE_DATABASE_ERR_ON_UPDATE_ACTION =>
-        'Invalid ON UPDATE action. Reference',
-        DB_TABLE_DATABASE_ERR_NO_REF_LINK =>
-        'Error in addLink due to missing required reference(s)',
-        DB_TABLE_DATABASE_ERR_NO_COL_DB =>
-        'In validCol, column name does not exist in database. Column',
-        DB_TABLE_DATABASE_ERR_NO_COL_TBL =>
-        'In validCol, column does not exist in specified table. Column',
-        DB_TABLE_DATABASE_ERR_SQL_UNDEF =>
-        'Query string is not a key of $sql property array. Key is',
-        DB_TABLE_DATABASE_ERR_SQL_NOT_STRING =>
-        'Query is neither an array nor a string',
-        DB_TABLE_DATABASE_ERR_MATCH_TYPE =>
-        'Invalid match parameter of buildFilter',
-        DB_TABLE_DATABASE_ERR_DATA_KEY =>
-        'Invalid data_key in buildFilter, neither string nor array',
-        DB_TABLE_DATABASE_ERR_FILT_KEY =>
-        'Incompatible data_key and filter_key in buildFilter',
-        DB_TABLE_DATABASE_ERR_FULL_KEY =>
-        'Invalid key value in buildFilter: Mixed null and not null',
-        DB_TABLE_DATABASE_ERR_FKEY_CONSTRAINT =>
-        'Foreign key constraint failure: Key does not reference any rows',
-        DB_TABLE_DATABASE_ERR_RESTRICT_DELETE =>
-        'Referentially trigger restrict of delete from table',
-        DB_TABLE_DATABASE_ERR_RESTRICT_UPDATE =>
-        'Referentially trigger restrict of update of table',
-        DB_TABLE_DATABASE_ERR_NO_COL_NO_TBL =>
-        'No columns or tables provided as parameters to autoJoin',
-        DB_TABLE_DATABASE_ERR_COL_NOT_UNIQUE =>
-        'Ambiguous column name in autoJoin. Column',
-        DB_TABLE_DATABASE_ERR_AMBIG_JOIN =>
-        'Ambiguous join in autoJoin, during join of table',
-        DB_TABLE_DATABASE_ERR_FAIL_JOIN =>
-        'Failed join in autoJoin, failed to join table',
-        DB_TABLE_DATABASE_ERR_PHP_VERSION =>
-        'PHP 5 is required for fromXML method. Interpreter version is',
-        DB_TABLE_DATABASE_ERR_XML_PARSE =>
-        'Error parsing XML in fromXML method'
-    );
-
-// merge default and user-defined error messages
-if (!isset($GLOBALS['_DB_TABLE_DATABASE']['error'])) {
-    $GLOBALS['_DB_TABLE_DATABASE']['error'] = array();
-}
-foreach ($GLOBALS['_DB_TABLE_DATABASE']['default_error'] as $code => $message) {
-    if (!array_key_exists($code, $GLOBALS['_DB_TABLE_DATABASE']['error'])) {
-        $GLOBALS['_DB_TABLE_DATABASE']['error'][$code] = $message;
-    }
-}
-
-// }}}
-// {{{ DB_Table_Database
-
-/**
- * Relational database abstraction class
- *
- * DB_Table_Database is an abstraction class for a relational database.
- * It is a layer built on top of DB_Table, in which each table in a
- * database is represented as an instance of DB_Table. It provides: 
- *
- *   - an object-oriented representation of the database schema
- *   - automated construction of SQL commands for simple joins
- *   - an API for insert, update, and select commands very similar
- *     to that of DB_Table, with optional emulation of standard SQL
- *     foreign key integrity checks and referential triggered actions
- *     such as cascading deletes.
- *   - Serialization and unserialization of the database schema via 
- *     either php serialization or XML, using the MDB2 XML schema. 
- *
- * @category Database
- * @package  DB_Table
- * @author   David C. Morse <morse@php.net>
- * @version  Release: 1.5.6
- * @link     http://pear.php.net/package/DB_Table
- */
-class DB_Table_Database extends DB_Table_Base
-{
-
-    // {{{ properties
-
-    /**
-     * Name of the database
-     *
-     * @var    string
-     * @access public
-     */
-    var $name   = null;
-
-    /**
-     * Associative array of DB_Table object references. Keys are table names.
-     *
-     * Associative array in which keys are table names, values are references to
-     * DB_Table objects.  Each referenced DB_Table object represents one table in
-     * the database.
-     *
-     * @var    array
-     * @access private
-     */
-    var $_table = array();
-
-    /**
-     * Array in which keys are table names, values are DB_Table subclass names.
-     *
-     * See the getTableSubclass() method docblock for further details. 
-     * 
-     * @var    array
-     * @access private
-     */
-    var $_table_subclass = array();
-
-    /**
-     * Path to directory containing DB_Table subclass declaration files
-     *
-     * See the setTableSubclassPath() method docblock for further details. 
-     * 
-     * @var    string
-     * @access private
-     */
-    var $_table_subclass_path = '';
-
-    /**
-     * Array in which keys are table names, values are primary keys.
-     *
-     * Each primary key value may be a column name string, a sequential array of
-     * column name strings, or null. 
-     *
-     * See the getPrimaryKey() method docblock for details. 
-     *
-     * @var    array
-     * @access private
-     */
-    var $_primary_key = array();
-
-    /**
-     * Associative array that maps column names keys to table names.
-     *
-     * Each key is the name string of a column in the database. Each value
-     * is a numerical array containing the names of all tables that contain 
-     * a column with that name. 
-     *
-     * See the getCol() method docblock for details.
-     *
-     * @var    array
-     * @access private
-     */
-    var $_col = array();
-
-    /**
-     * Associative array that maps names of foreign key columns to table names
-     *
-     * Each key is the name string of a foreign key column. Each value is a
-     * sequential array containing the names of all tables that contain a 
-     * foreign key column with that name. 
-     *
-     * See the getForeignCol() method docblock for further details. 
-     *
-     * @var    array
-     * @access private
-     */
-    var $_foreign_col = array();
-
-    /**
-     * Two-dimensional associative array of foreign key references. 
-     *
-     * Keys are pairs of table names (referencing table first, referenced
-     * table second). Each value is an array containing information about 
-     * the referencing and referenced keys, and about any referentially 
-     * triggered actions (e.g., cascading delete). 
-     *
-     * See the getRef() docblock for further details. 
-     *
-     * @var    array
-     * @access private
-     */
-    var $_ref = array();
-
-    /**
-     * Array in which each key is the names of a referenced tables, each value 
-     * an sequential array containing names of referencing tables.
-     *
-     * See the docblock for the getRefTo() method for further discussion. 
-     * 
-     * @var    array
-     * @access private
-     */
-    var $_ref_to = array();
-
-    /**
-     * Two-dimensional associative array of linking tables. 
-     *
-     * Two-dimensional associative array in which pairs of keys are names
-     * of pairs of tables that are linked by one or more linking/association 
-     * table. Each value is an array containing the names of all table that
-     * link the tables specified by the pair of keys. A linking table is a 
-     * table that creates a many-to-many relationship between two linked
-     * tables, via foreign key references from the linking table to the two
-     * linked tables. The $_link property is used by the autoJoin() method 
-     * to join tables that are related only through such a linking table. 
-     * 
-     * See the getLink() method docblock for further details. 
-     *
-     * @var    array
-     * @access private
-     */
-    var $_link = array();
-
-    /**
-     * Take on_update actions if $_act_on_update is true
-     *
-     * By default, on_update actions are enabled ($_act_on_update = true)
-     *
-     * @var    boolean
-     * @access private
-     */
-    var $_act_on_update = true;
-
-    /**
-     * Take on_delete actions if $_act_on_delete is true
-     *
-     * By default, on_delete actions are enabled ($_act_on_delete = true)
-     *
-     * @var    boolean
-     * @access private
-     */
-    var $_act_on_delete = true;
-
-    /**
-     * Validate foreign keys before insert or update if $_check_fkey is true
-     *
-     * By default, validation is disabled ($_check_fkey = false)
-     *
-     * @var    boolean
-     * @access private
-     */
-    var $_check_fkey = false;
-
-    /**
-     * If the column keys in associative array return sets are fixed case
-     * (all upper or lower case) this property should be set true. 
-     *
-     * The column keys in rows of associative array return sets may either 
-     * preserve capitalization of the column names or they may be fixed case,
-     * depending on the options set in the backend (DB/MDB2) and on phptype.
-     * If these column names are returned with a fixed case (either upper 
-     * or lower), $_fix_case must be set true in order for php emulation of
-     * ON DELETE and ON UPDATE actions to work correctly. Otherwise, the
-     * $_fix_case property should be false (the default).
-     *
-     * The choice between mixed or fixed case column keys may be made by using
-     * using the setFixCase() method, which resets both the behavior of the
-     * backend and the $_fix_case property. It may also be changed by using the 
-     * setOption() method of the DB or MDB2 backend object to directly set the 
-     * DB_PORTABILITY_LOWERCASE or MDB2_PORTABILITY_FIX_CASE bits of the 
-     * DB/MDB2 'portability' option.
-     *
-     * By default, DB returns mixed case and MDB2 returns lower case. 
-     * 
-     * @see DB_Table_Database::setFixCase()
-     * @see DB::setOption()
-     * @see MDB2::setOption()
-     *
-     * @var    boolean
-     * @access private
-     */
-    var $_fix_case = false;
-
-    // }}}
-    // {{{ Methods
-
-    // {{{ function DB_Table_Database(&$db, $name)
-
-    /**
-     * Constructor
-     *
-     * If an error is encountered during instantiation, the error
-     * message is stored in the $this->error property of the resulting
-     * object. See $error property docblock for a discussion of error
-     * handling. 
-     * 
-     * @param  object &$db   DB/MDB2 database connection object
-     * @param  string $name the database name
-     * @return object DB_Table_Database
-     * @access public
-     */
-    function __construct(&$db, $name)
-    {
-        // Is $db an DB/MDB2 object or null?
-        if (is_a($db, 'db_common')) {
-            $this->backend = 'db';
-            $this->fetchmode = DB_FETCHMODE_ORDERED;
-        } elseif (is_a($db, 'mdb2_driver_common')) {
-            $this->backend = 'mdb2';
-            $this->fetchmode = MDB2_FETCHMODE_ORDERED;
-        } else {
-            $code = DB_TABLE_DATABASE_ERR_DB_OBJECT ;
-            $text = $GLOBALS['_DB_TABLE_DATABASE']['error'][$code]
-                  . ' DB_Table_Database';
-            $this->error = PEAR::throwError($text, $code);
-            return;
-        }
-        $this->db  =& $db;
-        $this->name = $name;
-
-        $this->_primary_subclass = 'DB_TABLE_DATABASE';
-        $this->setFixCase(false);
-    }
-
-    // }}}
-    // {{{ function setDBconnection(&$db)
-
-    /**
-     * Set DB/MDB2 connection instance for database and all tables
-     *
-     * Assign a reference to the DB/MDB2 object $db to $this->db, set
-     * $this->backend to 'db' or 'mdb2', and set the same pair of 
-     * values for the $db and $backend properties of every DB_Table
-     * object in the database.  
-     *
-     * @param  object  &$db DB/MDB2 connection object
-     * @return boolean True on success (PEAR_Error on failure)
-     *
-     * @throws PEAR_Error if 
-     *     $db is not a DB or MDB2 object(DB_TABLE_DATABASE_ERR_DB_OBJECT)
-     *
-     * @access public
-     */
-    function setDBconnection(&$db)
-    {
-        // Is the first argument a DB/MDB2 object ?
-        if (is_subclass_of($db, 'DB_Common')) {
-            $backend = 'db';
-        } elseif (is_subclass_of($db, 'MDB2_Driver_Common')) {
-            $backend = 'mdb2';
-        } else {
-            return $this->throwError(
-                      DB_TABLE_DATABASE_ERR_DB_OBJECT,
-                      "setDBconnection");
-        }
-
-        // Set db and backend for database and all of its tables
-        $this->db =& $db;
-        $this->backend = $backend;
-        foreach ($this->_table as $name => $table) {
-            $table->db =& $db;
-            $table->backend = $backend;
-        }
-        return true;
-    }
-
-    // }}}
-    // {{{ function setActOnDelete($flag = true)
-
-    /**
-     * Turns on (or off) automatic php emulation of SQL ON DELETE actions
-     *
-     * @param  bool $flag True to enable action, false to disable
-     * @return void
-     * @access public
-     */
-    function setActOnDelete($flag = true)
-    {
-        if ($flag) {
-            $this->_act_on_delete = true;
-        } else {
-            $this->_act_on_delete = false;
-        }
-    }
-    
-    // }}}
-    // {{{ function setActOnUpdate($flag = true)
-
-    /**
-     * Turns on (or off) automatic php emulation of ON UPDATE actions
-     *
-     * @param  bool $flag True to enable action, false to disable
-     * @return void
-     * @access public
-     */
-    function setActOnUpdate($flag = true)
-    {
-        if ($flag) {
-            $this->_act_on_update = true;
-        } else {
-            $this->_act_on_update = false;
-        }
-    }
-    
-    // }}}
-    // {{{ function setCheckFKey($flag = true)
-
-    /**
-     * Turns on (or off) validation of foreign key values on insert and update
-     *
-     * @param  bool $flag True to enable foreign key validation, false to disable
-     * @return void
-     * @access public
-     */
-    function setCheckFKey($flag = true)
-    {
-        if ($flag) {
-            $this->_check_fkey = true;
-        } else {
-            $this->_check_fkey = false;
-        }
-    }
-
-    // }}}
-    // {{{ function setFixCase($flag = false) 
-
-    /**
-     * Sets backend option such that column keys in associative array return
-     * sets are converted to fixed case, if true, or mixed case, if false.
-     * 
-     * Sets the DB/MDB2 'portability' option, and sets $this->_fix_case = $flag.
-     * Because it sets an option in the underlying DB/MDB2 connection object, 
-     * this effects the behavior of all objects that share the connection.
-     * 
-     * @param  bool $flag True for fixed lower case, false for mixed
-     * @return void
-     * @access public
-     */
-    function setFixCase($flag = false) 
-    {
-        $flag = (bool) $flag;
-        $option = $this->db->getOption('portability');
-        if ($this->backend == 'db') {
-            $option = $option | DB_PORTABILITY_LOWERCASE;
-            if (!$flag) {
-                $option = $option ^ DB_PORTABILITY_LOWERCASE;
-            }
-        } else {
-            $option = $option | MDB2_PORTABILITY_FIX_CASE;
-            if (!$flag) {
-                $option = $option ^ MDB2_PORTABILITY_FIX_CASE;
-            }
-        } 
-        $this->db->setOption('portability', $option);
-        $this->_fix_case = $flag;
-    }
-    
-    // }}}
-    // {{{ function &getDBInstance() 
-
-    /**
-     * Return reference to $this->db DB/MDB2 object wrapped by $this
-     *
-     * @return object Reference to DB/MDB2 object
-     * @access public
-     */
-    function &getDBInstance() 
-    {
-        return $this->db;
-    }
-
-    // }}}
-    // {{{ function getTable($name = null) 
-
-    /**
-     * Returns all or part of $_table property array
-     *
-     * If $name is absent or null, return entire $_table property array.
-     * If $name is a table name, return $this->_table[$name] DB_Table object
-     * reference
-     *
-     * The $_table property is an associative array in which keys are table
-     * name strings and values are references to DB_Table objects. Each of 
-     * the referenced objects represents one table in the database.
-     *
-     * @param  string $name Name of table
-     * @return mixed  $_table property, or one element of $_table 
-     *                (PEAR_Error on failure)
-     *
-     * @throws PEAR_Error if:
-     *    - $name is not a string ( DB_TABLE_DATABASE_ERR_TBL_NOT_STRING )
-     *    - $name is not valid table name ( DB_TABLE_DATABASE_ERR_NO_TBL )
-     * 
-     * @access public
-     */
-    function getTable($name = null) 
-    {
-        if (is_null($name)) {
-            return $this->_table;
-        } elseif (is_string($name)) {
-            if (isset($this->_table[$name])) {
-                return $this->_table[$name];
-            } else {
-                return $this->throwError(
-                          DB_TABLE_DATABASE_ERR_NO_TBL,
-                          "getTable, $name");
-            }
-        } else {
-            return $this->throwError(
-                      DB_TABLE_DATABASE_ERR_TBL_NOT_STRING,
-                      "getTable");
-        }
-    }
-
-    // }}}
-    // {{{ function getPrimaryKey($name = null) 
-
-    /**
-     * Returns all or part of the $_primary_key property array
-     *
-     * If $name is null, return the $this->_primary_key property array
-     * If $name is a table name, return $this->_primary_key[$name]
-     *
-     * The $_primary_key property is an associative array in which each key
-     * a table name, and each value is the primary key of that table. Each
-     * primary key value may be a column name string, a sequential array of 
-     * column name strings (for a multi-column key), or null (if no primary
-     * key has been declared).
-     *
-     * @param  string $name Name of table
-     * @return mixed  $this->primary_key array or $this->_primary_key[$name]
-     *                (PEAR_Error on failure)
-     *
-     * @throws PEAR_Error if:
-     *    - $name is not a string ( DB_TABLE_DATABASE_ERR_TBL_NOT_STRING )
-     *    - $name is not valid table name ( DB_TABLE_DATABASE_ERR_NO_TBL )
-     * 
-     * @access public
-     */
-    function getPrimaryKey($name = null) 
-    {
-        if (is_null($name)) {
-            return $this->_primary_key;
-        } elseif (is_string($name)) {
-            if (isset($this->_primary_key[$name])) {
-                return $this->_primary_key[$name];
-            } else {
-                return $this->throwError(
-                          DB_TABLE_DATABASE_ERR_NO_TBL,
-                          "getPrimaryKey, $name");
-            }
-        } else {
-            return $this->throwError(
-                      DB_TABLE_DATABASE_ERR_TBL_NOT_STRING,
-                      "getPrimaryKey");
-        }
-    }
-
-    // }}}
-    // {{{ function getTableSubclass($name = null) 
-
-    /**
-     * Returns all or part of the $_table_subclass property array
-     *
-     * If $name is null, return the $this->_table_subclass property array
-     * If $name is a table name, return $this->_table_subclass[$name]
-     *
-     * The $_table_subclass property is an associative array in which each key
-     * is a table name string, and each value is the name of the corresponding 
-     * subclass of DB_Table. The value is null if the table is an instance of 
-     * DB_Table itself. 
-     *
-     * Subclass names are set within the addTable method by applying the 
-     * built in get_class() function to a DB_Table object. The class names 
-     * returned by get_class() are stored unmodified. In PHP 4, get_class
-     * converts all class names to lower case. In PHP 5, it preserves the 
-     * capitalization of the name used in the class definition. 
-     *
-     * For autoloading of class definitions to work properly in the 
-     * __wakeup() method, the base name of each subclass definition
-     * file (excluding the .php extension) should thus be a identical
-     * to the class name in PHP 5, and a lower case version of the 
-     * class name in PHP 4 or 
-     * 
-     * @param  string $name Name of table
-     * @return mixed  $_table_subclass array or $this->_table_subclass[$name]
-     *                (PEAR_Error on failure)
-     *
-     * @throws PEAR_Error if:
-     *    - $name is not a string ( DB_TABLE_DATABASE_TBL_NOT_STRING )
-     *    - $name is not valid table name ( DB_TABLE_DATABASE_NO_TBL )
-     *
-     * @access public
-     * 
-     @ @see DB_Table_Database::__wakeup()
-     */
-    function getTableSubclass($name = null) 
-    {
-        if (is_null($name)) {
-            return $this->_table_subclass;
-        } elseif (is_string($name)) {
-            if (isset($this->_table_subclass[$name])) {
-                return $this->_table_subclass[$name];
-            } else {
-                return $this->throwError(
-                          DB_TABLE_DATABASE_ERR_NO_TBL,
-                          "getTableSubclass, $name");
-            }
-        } else {
-            return $this->throwError(
-                      DB_TABLE_DATABASE_ERR_TBL_NOT_STRING,
-                      "getTableSubclass");
-        }
-    }
-
-    // }}}
-    // {{{ function getCol($column_name = null) 
-
-    /**
-     * Returns all or part of the $_col property array
-     *
-     * If $column_name is null, return $_col property array
-     * If $column_name is valid, return $_col[$column_name] subarray
-     *
-     * The $_col property is an associative array in which each key is the
-     * name of a column in the database, and each value is a numerical array 
-     * containing the names of all tables that contain a column with that 
-     * name.
-     *
-     * @param string $column_name a column name string
-     * @return mixed $this->_col property array or $this->_col[$column_name]
-     *               (PEAR_Error on failure)
-     *
-     * @throws PEAR_Error if:
-     *    - $column_name is not a string (DB_TABLE_DATABASE_ERR_COL_NOT_STRING)
-     *    - $column_name is not valid column name (DB_TABLE_DATABASE_NO_COL)
-     *
-     * @access public
-     */
-    function getCol($column_name = null) 
-    {
-        if (is_null($column_name)) {
-            return $this->_col;
-        } elseif (is_string($column_name)) {
-            if (isset($this->_col[$column_name])) {
-                return $this->_col[$column_name];
-            } else {
-                return $this->throwError(
-                          DB_TABLE_DATABASE_ERR_NO_COL,
-                          "'$column_name'");
-            }
-        } else {
-            return $this->throwError(
-                       DB_TABLE_DATABASE_ERR_COL_NOT_STRING,
-                       'getCol');
-        }
-    }
-
-    // }}}
-    // {{{ function getForeignCol($column_name = null) 
-
-    /**
-     * Returns all or part of the $_foreign_col property array
-     *
-     * If $column_name is null, return $this->_foreign_col property array
-     * If $column_name is valid, return $this->_foreign_col[$column_name] 
-     *
-     * The $_foreign_col property is an associative array in which each 
-     * key is the name string of a foreign key column, and each value is a
-     * sequential array containing the names of all tables that contain a 
-     * foreign key column with that name. 
-     *
-     * If a column $column in a referencing table $ftable is part of the 
-     * foreign key for references to two or more different referenced tables
-     * tables, the name $ftable will also appear multiple times in the array 
-     * $this->_foreign_col[$column].
-     *
-     * Returns a PEAR_Error with the following DB_TABLE_DATABASE_* error
-     * codes if:
-     *    - $column_name is not a string ( _COL_NOT_STRING )
-     *    - $column_name is not valid foreign column name ( _NO_FOREIGN_COL )
-     *
-     * @param  string column name string for foreign key column
-     * @return array  $_foreign_col property array
-     * @access public
-     */
-    function getForeignCol($column_name = null) 
-    {
-        if (is_null($column_name)) {
-            return $this->_foreign_col;
-        } elseif (is_string($column_name)) {
-            if (isset($this->_foreign_col[$column_name])) {
-                return $this->_foreign_col[$column_name];
-            } else {
-                return $this->throwError(
-                          DB_TABLE_DATABASE_ERR_NO_FOREIGN_COL,
-                          $column_name);
-            }
-        } else {
-            return $this->throwError(
-                      DB_TABLE_DATABASE_ERR_COL_NOT_STRING,
-                      'getForeignCol');
-        }
-    }
-
-    // }}}
-    // {{{ function getRef($table1 = null, $table2 = null) 
-
-    /**
-     * Returns all or part of the $_ref two-dimensional property array
-     *
-     * Returns $this->_ref 2D property array if $table1 and $table2 are null.
-     * Returns $this->_ref[$table1] subarray if only $table2 is null.
-     * Returns $this->_ref[$table1][$table2] if both parameters are present.
-     *
-     * Returns null if $table1 is a table that references no others, or 
-     * if $table1 and $table2 are both valid table names, but there is no 
-     * reference from $table1 to $table2.
-     * 
-     * The $_ref property is a two-dimensional associative array in which
-     * the keys are pairs of table names, each value is an array containing 
-     * information about referenced and referencing keys, and referentially
-     * triggered actions (if any).  An element of the $_ref array is of the 
-     * form $ref[$ftable][$rtable] = $reference, where $ftable is the name 
-     * of a referencing (or foreign key) table and $rtable is the name of 
-     * a corresponding referenced table. The value $reference is an array 
-     * $reference = array($fkey, $rkey, $on_delete, $on_update) in which
-     * $fkey and $rkey are the foreign (or referencing) and referenced 
-     * keys, respectively: Foreign key $fkey of table $ftable references
-     * key $rkey of table $rtable. The values of $fkey and $rkey must either 
-     * both be valid column name strings for columns of the same type, or 
-     * they may both be sequential arrays of column name names, with equal 
-     * numbers of columns of corresponding types, for multi-column keys. The 
-     * $on_delete and $on_update values may be either null or string values 
-     * that indicate actions to be taken upon deletion or updating of a 
-     * referenced row (e.g., cascading deletes). A null value of $on_delete
-     * or $on_update indicates that no referentially triggered action will 
-     * be taken. See addRef() for further details about allowed values of
-     * these action strings. 
-     *
-     * @param  string $table1 name of referencing table
-     * @param  string $table2 name of referenced table
-     * @return mixed $ref property array, sub-array, or value
-     * 
-     * @throws a PEAR_Error if:
-     *    - $table1 or $table2 is not a string (.._DATABASE_ERR_TBL_NOT_STRING)
-     *    - $table1 or $table2 is not a table name (.._DATABASE_ERR_NO_TBL)
-     *
-     * @access public
-     */
-    function getRef($table1 = null, $table2 = null) 
-    {
-        if (is_null($table1)) {
-            return $this->_ref;
-        } elseif (is_string($table1)) {
-            if (isset($this->_ref[$table1])) {
-                if (is_null($table2)) {
-                    return $this->_ref[$table1];
-                } elseif (is_string($table2)) {
-                    if (isset($this->_ref[$table1][$table2])) {
-                        return $this->_ref[$table1][$table2];
-                    } else {
-                        if (isset($this->_table[$table2])) {
-                            // Valid table names but no references to
-                            return null;
-                        } else {
-                            // Invalid table name
-                            return $this->throwError(
-                                      DB_TABLE_DATABASE_ERR_NO_TBL,
-                                      "getRef, $table2");
-                        }
-                    }
-                } else {
-                    return $this->throwError(
-                              DB_TABLE_DATABASE_ERR_TBL_NOT_STRING,
-                              "getRef");
-                }
-            } else {
-                if (isset($this->_table[$table1])) {
-                    // Valid table name, but no references from
-                    return null;
-                } else {
-                    // Invalid table name
-                    return $this->throwError(
-                              DB_TABLE_DATABASE_ERR_NO_TBL,
-                              "getRef, $table1");
-                }
-            }
-        } else {
-            return $this->throwError(
-                       DB_TABLE_DATABASE_ERR_TBL_NOT_STRING,
-                       "getRef");
-        }
-
-    }
-
-    // }}}
-    // {{{ function getRefTo($table_name = null)
-
-    /**
-     * Returns all or part of the $_ref_to property array
-     *
-     * Returns $this->_ref_to property array if $table_name is null.
-     * Returns $this->_ref_to[$table_name] if $table_name is not null.
-     *
-     * The $_ref_to property is an associative array in which each key
-     * is the name of a referenced table, and each value is a sequential
-     * array containing the names of all tables that contain foreign keys
-     * that reference that table. Each element is thus of the form
-     * $_ref_to[$rtable] = array($ftable1, $ftable2,...), where
-     * $ftable1, $ftable2, ... are the names of tables that reference 
-     * the table named $rtable.
-     *
-     * @param string $table_name name of table
-     * @return mixed $_ref_to property array or subarray 
-     *               (PEAR_Error on failure)
-     * 
-     * @throws PEAR_Error if:
-     *    - $table_name is not a string ( .._DATABASE_ERR_TBL_NOT_STRING )
-     *    - $table_name is not a table name ( .._DATABASE_ERR_NO_TBL )
-     *
-     * @access public
-     */
-    function getRefTo($table_name = null)
-    {
-        if (is_null($table_name)) {
-            return $this->_ref_to;
-        } elseif (is_string($table_name)) {
-            if (isset($this->_ref_to[$table_name])) {
-                return $this->_ref_to[$table_name];
-            } else {
-                if (isset($this->_table[$table_name])) {
-                    // Valid table name, but no references to
-                    return null;
-                } else {
-                    // Invalid table name
-                    return $this->throwError(
-                              DB_TABLE_DATABASE_ERR_NO_TBL,
-                              "getRefTo, $table_name");
-                }
-            }
-        } else {
-            return $this->throwError(
-                      DB_TABLE_DATABASE_ERR_TBL_NOT_STRING,
-                      "getRefTo");
-        }
-    }
-
-    // }}}
-    // {{{ function getLink($table1 = null, $table2 = null) 
-
-    /**
-     * Returns all or part of the $link two-dimensional property array
-     *
-     * Returns $this->_link 2D property array if $table1 and $table2 are null.
-     * Returns $this->_link[$table1] subarray if only $table2 is null.
-     * Returns $this->_link[$table1][$table2] if both parameters are present.
-     *
-     * Returns null if $table1 is a valid table with links to no others, or 
-     * if $table1 and $table2 are both valid table names but there is no 
-     * link between them.
-     * 
-     * The $_link property is a two-dimensional associative array with 
-     * elements of the form $this->_link[$table1][$table2] = array($link1, ...), 
-     * in which the value is an array containing the names of all tables 
-     * that `link' tables named $table1 and $table2, and thereby create a
-     * many-to-many relationship between these two tables. 
-     *
-     * The $_link property is used in the autoJoin method to join tables
-     * that are related by a many-to-many relationship via a linking table,
-     * rather than via a direct foreign key reference. A table that is
-     * declared to be linking table for tables $table1 and $table2 must 
-     * contain foreign keys that reference both of these tables. 
-     *
-     * Each binary link in a database is listed twice in $_link, in
-     * $_link[$table1][$table2] and in $_link[$table2][$table1]. If a
-     * linking table contains foreign key references to N tables, with
-     * N > 2, each of the resulting binary links is listed separately.
-     * For example, a table with references to 3 tables A, B, and C can 
-     * create three binary links (AB, AC, and BC) and six entries in the 
-     * link property array (i.e., in $_link[A][B], $_link[B][A], ... ).
-     *
-     * Linking tables may be added to the $_link property by using the 
-     * addLink method or deleted using the delLink method. Alternatively, 
-     * all possible linking tables can be identified and added to the 
-     * $_link array at once by the addAllLinks() method.
-     *
-     * @param string $table1 name of linked table
-     * @param string $table2 name of linked table
-     * @return mixed $_link property array, sub-array, or value
-     *
-     * @throws PEAR_Error:
-     *    - $table1 or $table2 is not a string (..DATABASE_ERR_TBL_NOT_STRING)
-     *    - $table1 or $table2 is not a table name (..DATABASE_ERR_NO_TBL)
-     *
-     * @access public
-     */
-    function getLink($table1 = null, $table2 = null) 
-    {
-        if (is_null($table1)) {
-            return $this->_link;
-        } elseif (is_string($table1)) {
-            if (isset($this->_link[$table1])) {
-                if (is_null($table2)) {
-                    return $this->_link[$table1];
-                } elseif (is_string($table2)) {
-                    if (isset($this->_link[$table1][$table2])) {
-                        return $this->_link[$table1][$table2];
-                    } else {
-                        if (isset($this->_table[$table2])) {
-                            // Valid table names, but no links
-                            return null;
-                        } else {
-                            // Invalid 2nd table name string
-                            return $this->throwError(
-                                      DB_TABLE_DATABASE_ERR_NO_TBL,
-                                      "getLink, $table2");
-                        }
-                    }
-                } else {
-                    return $this->throwError(
-                              DB_TABLE_DATABASE_ERR_TBL_NOT_STRING,
-                              "getLink");
-                }
-            } else {
-                if (isset($this->_table[$table1])) {
-                    // Valid first table name, but no links
-                    return null;
-                } else {
-                    // Invalid 1st table name string
-                    return $this->throwError(
-                              DB_TABLE_DATABASE_ERR_NO_TBL,
-                              "getLink, $table1");
-                }
-            }
-        } else {
-            return $this->throwError(
-                      DB_TABLE_DATABASE_ERR_TBL_NOT_STRING,
-                      "getLink");
-        }
-    }
-
-    // }}}
-    // {{{ function setTableSubclassPath($path) 
-
-    /**
-     * Sets path to a directory containing DB_Table subclass definitions.
-     *
-     * This method sets the $_table_subclass_path string property. The value of
-     * this property is the path to the directory containing DB_Table subclass 
-     * definitions, without a trailing directory separator. 
-     *  
-     * This path may be used by the __wakeup(), if necessary, in an attempt to 
-     * autoload class definitions when unserializing a DB_Table_Database object 
-     * and its child DB_Table objects. If a DB_Table subclass $subclass_name
-     * has not been defined when it is needed in DB_Table_Database::__wakeup(), 
-     * to unserialize an instance of this class, the __wakeup() method attempts
-     * to include a class definition file from this directory, as follows:
-     * <code>
-     *     $dir = $this->_table_subclass_path;
-     *     require_once $dir . '/' . $subclass . '.php';
-     * </code>
-     * See the getTableSubclass() docblock for a discusion of capitalization
-     * conventions in PHP 4 and 5 for subclass file names. 
-     * 
-     * @param string $path path to directory containing class definitions
-     * @return void
-     * @access public
-     *
-     * @see DB_Table_Database::getTableSubclass()
-     */
-    function setTableSubclassPath($path) 
-    {
-        $this->_table_subclass_path = $path; 
-    }
-
-    // }}}
-    // {{{ function addTable(&$table_obj)
-
-    /**
-     * Adds a table to the database.
-     *
-     * Creates references between $this DB_Table_Database object and
-     * the child DB_Table object, by adding a reference to $table_obj
-     * to the $this->_table array, and setting $table_obj->database =
-     * $this. 
-     *
-     * Adds the primary key to $this->_primary_key array. The relevant
-     * element of $this->_primary_key is set to null if no primary key 
-     * index is declared. Returns an error if more than one primary key
-     * is declared.
-     *
-     * Returns true on success, and PEAR error on failure. Returns the
-     * following DB_TABLE_DATABASE_ERR_* error codes if:
-     *    - $table_obj is not a DB_Table ( _DBTABLE_OBJECT )
-     *    - more than one primary key is defined  ( _ERR_MULT_PKEY )
-     *
-     * @param  object &$table_obj the DB_Table object (reference)
-     * @return boolean true on success (PEAR_Error on failure)
-     * @access public
-     */
-    function addTable(&$table_obj)
-    {
-        // Check that $table_obj is a DB_Table object 
-        // Identify subclass name, if any
-        if (is_subclass_of($table_obj, 'DB_Table')) {
-            $subclass = get_class($table_obj);
-        } elseif (is_a($table_obj, 'DB_Table')) {
-            $subclass = null;
-        } else {
-            return $this->throwError(
-                      DB_TABLE_DATABASE_ERR_DBTABLE_OBJECT);
-        }
-
-        // Identify table name and table object (sub)class name
-        $table = $table_obj->table;
-        
-        // Set $this->_primary_key[$table] 
-        $this->_primary_key[$table] = null;
-        foreach ($table_obj->idx as $idx_name => $idx_def) {
-            if ($idx_def['type'] == 'primary') {
-                if (is_null($this->_primary_key[$table])) {
-                    $this->_primary_key[$table] = $idx_def['cols'];
-                } else {
-                    // More than one primary key defined in the table
-                    unset($this->_primary_key[$table]);
-                    return $this->throwError(
-                              DB_TABLE_DATABASE_ERR_MULT_PKEY, $table);
-                }
-            }
-        }
-
-        // Add references between $this parent and child table object
-        $this->_table[$table] =& $table_obj;
-        $table_obj->setDatabaseInstance($this); 
-
-        // Add subclass name (if any) to $this->_table_subclass
-        $this->_table_subclass[$table] = $subclass;
-
-        // Set shared properties
-        $table_obj->db =& $this->db;
-        $table_obj->backend   = $this->backend;
-        $table_obj->fetchmode = $this->fetchmode;
-
-        // Add all columns to $_col property
-        foreach ($table_obj->col as $key => $def) {
-            if (!isset($this->_col[$key])) {
-                $this->_col[$key] = array();
-            }
-            $this->_col[$key][] = $table;
-        }
-
-        return true;
-    }
-
-    // }}}
-    // {{{ function deleteTable($table) 
-
-    /**
-     * Deletes a table from $this database object.
-     *
-     * Removes all dependencies on $table from the database model. The table 
-     * is removed from $_table and $_primary_key properties. Its columns are
-     * removed from the $_col and $_foreign_col properties. References to
-     * and from the table are removed from the $_ref, $_ref_to, and $_link
-     * properties. Referencing columns are removed from $_foreign_col.
-     * 
-     * @param  string $table name of table to be deleted
-     * @return void
-     * @access public
-     */
-    function deleteTable($table) 
-    {
-        if (isset($this->_table[$table])) {
-            $table_obj =& $this->_table[$table];
-        } else {
-            return;
-        }
-
-        // Remove reference to database from table object
-        $null_instance = null;
-        $table_obj->setDatabaseInstance($null_instance);
-
-        // Remove columns from $_col and $_foreign_col property arrays
-        foreach ($table_obj->col as $column => $def) {
-            $key = array_search($table, $this->_col[$column]);
-            if (is_integer($key)) {
-                unset($this->_col[$column][$key]);
-                if (count($this->_col[$column]) == 0) {
-                    unset($this->_col[$column]);
-                } else {
-                    $new = array_values($this->_col[$column]);
-                    $this->_col[$column] = $new;
-                }
-            }
-            if (isset($this->_foreign_col[$column])) {
-                $key = array_search($table, $this->_foreign_col[$column]);
-                if (is_integer($key)) {
-                    unset($this->_foreign_col[$column][$key]);
-                    if (count($this->_foreign_col[$column]) == 0) {
-                        unset($this->_foreign_col[$column]);
-                    } else {
-                        $new = array_values($this->_foreign_col[$column]);
-                        $this->_foreign_col[$column] = $new;
-                    }
-                }
-            }
-        }
-
-        // Remove all references involving the deleted table.
-        // Corresponding links are removed from $this->_link by deleteRef 
-        // Referencing columns are removed from $this->_foreign_col by deleteRef
-        foreach ($this->_ref as $ftable => $referenced) {
-            foreach ($referenced as $rtable => $ref) {
-                if ($ftable == $table || $rtable == $table) {
-                    $this->deleteRef($ftable, $rtable);
-                } 
-            } 
-        }
-
-        // Remove table from $this->_table and $this->_primary_key 
-        unset($this->_table[$table]);
-        unset($this->_primary_key[$table]);
-    }
-
-    // }}}
-    // {{{ function addRef($ftable, $fkey, $rtable, [$rkey], [$on_delete], [$on_update])
-
-    /**
-     * Adds a foreign key reference to the database.
-     *
-     * Adds a reference from foreign key $fkey of table $ftable to
-     * referenced key $rkey of table named $rtable to the $this->_ref
-     * property. The values of $fkey and $rkey (if not null) may either 
-     * both be column name strings (for single column keys) or they 
-     * may both be numerically indexed arrays of corresponding column 
-     * names (for multi-column keys). If $rkey is null (the default), 
-     * the referenced key taken to be the primary key of $rtable, if 
-     * any.
-     *
-     * The $on_delete and $on_update parameters may be either be null, 
-     * or may have string values 'restrict', 'cascade', 'set null', or 
-     * 'set default' that indicate referentially triggered actions to be 
-     * taken deletion or updating of referenced row in $rtable. Each of 
-     * these actions corresponds to a standard SQL action (e.g., cascading 
-     * delete) that may be taken upon referencing rows of table $ftable 
-     * when a referenced row of $rtable is deleted or updated.  A PHP 
-     * null value for either parameter (the default) signifies that no
-     * such action will be taken upon deletion or updating. 
-     *
-     * There may no more than one reference from a table to another, though
-     * reference may contain multiple columns. 
-     *
-     * Returns true on success, and PEAR error on failure. Returns the
-     * following DB_TABLE_DATABASE_ERR_* error codes if:
-     *   - $ftable does not exist ( _NO_FTABLE )
-     *   - $rtable does not exist ( _NO_RTABLE )
-     *   - $rkey is null and $rtable has no primary key ( _NO_PKEY )
-     *   - $fkey is neither a string nor an array ( _FKEY )
-     *   - $rkey is not a string, $fkey is a string ( _RKEY_NOT_STRING )
-     *   - $rkey is not an array, $fkey is an array ( _RKEY_NOT_ARRAY )
-     *   - A column of $fkey does not exist ( _NO_FCOL )
-     *   - A column of $rkey does not exist ( _NO_RCOL )
-     *   - A column of $fkey and $rkey have different types ( _REF_TYPE )
-     *   - A reference from $ftable to $rtable already exists ( _MULT_REF )
-     * 
-     * @param  string  $ftable    name of foreign/referencing table
-     * @param  mixed   $fkey      foreign key in referencing table 
-     * @param  string  $rtable    name of referenced table
-     * @param  mixed   $rkey      referenced key in referenced table
-     * @param  string  $on_delete action upon delete of a referenced row.
-     * @param  string  $on_update action upon update of a referenced row.
-     * @return boolean true on success (PEAR_Error on failure)
-     * @access public
-     */
-    function addRef($ftable, $fkey, $rtable, $rkey = null,
-                             $on_delete = null, $on_update = null)
-    {
-        // Check existence of $ftable is a key in $this->_table.
-        if (isset($this->_table[$ftable])) {
-            $ftable_obj =& $this->_table[$ftable];
-        } else {
-            return $this->throwError(
-                      DB_TABLE_DATABASE_ERR_NO_FTABLE,
-                      "$ftable => $rtable");
-        }
-
-        // Check existence of referenced table
-        if (isset($this->_table[$rtable])) {
-            $rtable_obj =& $this->_table[$rtable];
-        } else {
-            return $this->throwError(
-                      DB_TABLE_DATABASE_ERR_NO_RTABLE,
-                      "$ftable => $rtable");
-        }
-
-        // If referenced key is null, set it to the primary key
-        if (!$rkey) {
-            if (isset($this->_primary_key[$rtable])) {
-                $rkey = $this->_primary_key[$rtable];
-            } else {
-                // Error: null referenced key and no primary key
-                return $this->throwError(
-                          DB_TABLE_DATABASE_ERR_NO_PKEY,
-                          "$ftable => $rtable");
-            }
-        }
-
-        // Check $fkey and $rkey types and compatibility
-        if (is_string($fkey)) {
-            if (!is_string($rkey)) {
-                return $this->throwError(
-                          DB_TABLE_DATABASE_ERR_RKEY_NOT_STRING,
-                          "$ftable => $rtable");
-            }
-            if (!isset($ftable_obj->col[$fkey])) {
-                return $this->throwError(
-                          DB_TABLE_DATABASE_ERR_NO_FCOL,
-                          "$ftable.$fkey => $rtable.$rkey");
-            }
-            if (!isset($rtable_obj->col[$rkey])) {
-                return $this->throwError(
-                          DB_TABLE_DATABASE_ERR_NO_RCOL,
-                          "$ftable.$fkey => $rtable.$rkey");
-            }
-            $ftype = $ftable_obj->col[$fkey]['type'];
-            $rtype = $rtable_obj->col[$rkey]['type'];
-            if (!($rtype == $ftype)) {
-                return $this->throwError(
-                          DB_TABLE_DATABASE_ERR_REF_TYPE,
-                          "$ftable.$fkey => $rtable.$rkey");
-            }
-        } elseif (is_array($fkey)) {
-            if (!is_array($rkey)) {
-                return $this->throwError(
-                          DB_TABLE_DATABASE_ERR_RKEY_NOT_ARRAY,
-                          "$ftable => $rtable");
-            }
-            if (!(count($fkey) == count($rkey))) {
-                return $this->throwError(
-                          DB_TABLE_DATABASE_ERR_RKEY_COL_NUMBER,
-                          "$ftable => $rtable");
-            }
-            for ($i=0 ; $i < count($rkey) ; $i++) {
-                $fcol = $fkey[$i];
-                $rcol = $rkey[$i];
-                if (!isset($ftable_obj->col[$fcol])) {
-                    return $this->throwError(
-                              DB_TABLE_DATABASE_ERR_NO_FCOL,
-                              "$ftable.$fcol => $rtable.$rcol");
-                }
-                if (!isset($rtable_obj->col[$rcol])) {
-                    return $this->throwError(
-                              DB_TABLE_DATABASE_ERR_NO_RCOL,
-                              "$ftable.$fcol => $rtable.$rcol");
-                }
-                $ftype = $ftable_obj->col[$fcol]['type'];
-                $rtype = $rtable_obj->col[$rcol]['type'];
-                if (!($rtype == $ftype)) {
-                    return $this->throwError(
-                              DB_TABLE_DATABASE_ERR_REF_TYPE,
-                              "$ftable.$fcol => $rtable.$rcol");
-                }
-            }
-        } else {
-            return $this->throwError(
-                      DB_TABLE_DATABASE_ERR_FKEY,
-                      "$ftable => $rtable");
-        }
-
-        // Check validity of on_delete and on_update actions
-        $valid_actions = 
-               array(null, 'cascade', 'set null', 'set default', 'restrict');
-        if (!in_array($on_delete, $valid_actions)) {
-            return $this->throwError(
-                   DB_TABLE_DATABASE_ERR_ON_DELETE_ACTION,
-                   "$ftable => $rtable");
-        }
-        if (!in_array($on_update, $valid_actions)) {
-            return $this->throwError(
-                   DB_TABLE_DATABASE_ERR_ON_UPDATE_ACTION,
-                   "$ftable => $rtable");
-        }
-
-        // Add reference to $this->_ref;
-        $ref = array(
-               'fkey' => $fkey, 
-               'rkey' => $rkey,
-               'on_delete' => $on_delete, 
-               'on_update' => $on_update);
-        if (!isset($this->_ref[$ftable])) {
-            $this->_ref[$ftable] = array();
-        } else {
-             if (isset($this->_ref[$ftable][$rtable])) {
-                 // Multiple references from $ftable to $rtable
-                 return $this->throwError(
-                           DB_TABLE_DATABASE_ERR_MULT_REF,
-                           "$ftable => $rtable");
-             }
-        }
-        $this->_ref[$ftable][$rtable] = $ref;
-
-        // Add referencing table $ftable to $ref_to property
-        if (!isset($this->_ref_to[$rtable])) {
-            $this->_ref_to[$rtable] = array();
-        }
-        $this->_ref_to[$rtable][] = $ftable;
-
-        // Add foreign key columns to $this->_foreign_col
-        if (is_string($fkey)) {
-            if (!isset($this->_foreign_col[$fkey])) {
-                $this->_foreign_col[$fkey] = array();
-            }
-            $this->_foreign_col[$fkey][] = $ftable;
-        } elseif (is_array($fkey)) {
-            foreach ($fkey as $fcol) {
-                if (!isset($this->_foreign_col[$fcol])) {
-                    $this->_foreign_col[$fcol] = array();
-                }
-                $this->_foreign_col[$fcol][] = $ftable;
-            }
-        }
-
-        // Normal completion
-        return true;
-    }
-
-    // }}}
-    // {{{ function deleteRef($ftable, $rtable) 
- 
-    /**
-     * Deletes one reference from database model
-     *
-     * Removes reference from referencing (foreign key) table named
-     * $ftable to referenced table named $rtable. Unsets relevant elements
-     * of the $ref, $_ref_to, and $_link property arrays, and removes the
-     * foreign key columns of $ftable from the $_foreign_col property. 
-     *
-     * Does nothing, silently, if no such reference exists, i.e., if 
-     * $this->_ref[$ftable][$rtable] is not set.
-     *
-     * @param $ftable name of referencing (foreign key) table
-     * @param $rtable name of referenced table
-     * @return void
-     * @access public
-     */ 
-    function deleteRef($ftable, $rtable) 
-    {
-        // Delete from $_ref property
-        if (isset($this->_ref[$ftable])) {
-            if (isset($this->_ref[$ftable][$rtable])) {
-                $fkey = $this->_ref[$ftable][$rtable]['fkey'];
-                unset($this->_ref[$ftable][$rtable]);
-            } else {
-                // No such reference, abort silently
-                return;
-            }
-        }
-
-        // Remove foreign key columns from $foreign_col property
-        if (isset($fkey)) {
-            if (is_string($fkey)) {
-                $fkey = array($fkey);
-            }
-            foreach ($fkey as $column) {
-                if (isset($this->_foreign_col[$column])) {
-                    $key = array_search($ftable, 
-                                        $this->_foreign_col[$column]);
-                    if (is_integer($key)) {
-                        unset($this->_foreign_col[$column][$key]);
-                        if (count($this->_foreign_col[$column]) == 0) {
-                            unset($this->_foreign_col[$column]);
-                        } else {
-                            $new = array_values($this->_foreign_col[$column]);
-                            $this->_foreign_col[$column] = $new;
-                        }
-                    }
-                }
-            }
-        }
-
-        // Delete from $_ref_to property
-        if (isset($this->_ref_to[$rtable])) {
-            $key = array_search($ftable, $this->_ref_to[$rtable]);
-            // Unset element 
-            unset($this->_ref_to[$rtable][$key]);
-            if (count($this->_ref_to[$rtable]) == 0) {
-                unset($this->_ref_to[$rtable]);
-            } else {
-                // Redefine numerical keys of remaining elements
-                $ref_to = array_values($this->_ref_to[$rtable]);
-                $this->_ref_to[$rtable] = $ref_to;
-            }
-        }
-
-        // Delete all relevant links from $_link property
-        if (isset($this->_link[$rtable])) {
-            foreach ($this->_link[$rtable] as $table2 => $links) {
-                if (in_array($ftable, $links)) {
-                    $this->deleteLink($rtable, $table2, $ftable);
-                }
-            }
-        }
-    }
-
-    // }}}
-    // {{{ function setOnDelete($ftable, $rtable, $action)
- 
-    /**
-     * Modifies the on delete action for one foreign key reference.
-     *
-     * Modifies the value of the on_delete action associated with a reference
-     * from $ftable to $rtable. The parameter action may be one of the action
-     * strings 'cascade', 'restrict', 'set null', or 'set default', or it may
-     * be php null. A null value of $action indicates that no action should be
-     * taken upon deletion of a referenced row. 
-     *
-     * Returns true on success, and PEAR error on failure. Returns the error
-     * code DB_TABLE_DATABASE_ERR_REF_TRIG_ACTION if $action is a neither a 
-     * valid action string nor null. Returns true, and does nothing, if 
-     * $this->_ref[$ftable][$rtable] is not set. 
-     *
-     * @param  string $ftable  name of referencing (foreign key) table
-     * @param  string $rtable  name of referenced table
-     * @param  string $action  on delete action (action string or null)
-     * @return boolean true on normal completion (PEAR_Error on failure)
-     * @access public
-     */ 
-    function setOnDelete($ftable, $rtable, $action)
-    {
-        $valid_actions = 
-             array(null, 'cascade', 'set null', 'set default', 'restrict');
-
-        if (isset($this->_ref[$ftable])) {
-            if (isset($this->_ref[$ftable][$rtable])) {
-                if (!in_array($action, $valid_actions)) {
-                    return $this->throwError(
-                           DB_TABLE_DATABASE_ERR_REF_ON_DELETE_ACTION,
-                           "$ftable => $rtable");
-                }
-                $this->_ref[$ftable][$rtable]['on_delete'] = $action;
-            }
-        }
-        return true;
-    }
-
-    // }}}
-    // {{{ function setOnUpdate($ftable, $rtable, $action)
- 
-    /**
-     * Modifies on update action for one foreign key reference.
-     *
-     * Similar to setOnDelete. See setOnDelete for further details.
-     *
-     * @param string $ftable  name of referencing (foreign key) table
-     * @param string $rtable  name of referenced table
-     * @param array  $action  on update action (action string or null)
-     * @return boolean true on normal completion (PEAR_Error on failure)
-     * @access public
-     */ 
-    function setOnUpdate($ftable, $rtable, $action)
-    {
-        $valid_actions = 
-             array(null, 'cascade', 'set null', 'set default', 'restrict');
-
-        if (isset($this->_ref[$ftable])) {
-            if (isset($this->_ref[$ftable][$rtable])) {
-                if (!in_array($action, $valid_actions)) {
-                    return $this->throwError(
-                           DB_TABLE_DATABASE_ERR_REF_ON_UPDATE_ACTION,
-                           "$ftable => $rtable");
-                }
-                $this->_ref[$ftable][$rtable]['on_update'] = $action;
-            }
-        }
-        return true;
-    }
-
-    // }}}
-    // {{{ function addLink($table1, $table2, $link)
- 
-    /**
-     * Identifies a linking/association table that links two others
-     *
-     * Adds table name $link to $this->_link[$table1][$table2] and 
-     * to $this->_link[$table2][$table1].
-     *
-     * Returns true on success, and PEAR error on failure. Returns the
-     * following DB_TABLE_DATABASE_ERR_* error codes if:
-     *   - $ftable does not exist ( _NO_FTABLE )
-     *   - $rtable does not exist ( _NO_RTABLE )
-     *
-     * @param  string $table1 name of 1st linked table
-     * @param  string $table2 name of 2nd linked table
-     * @param  string $link   name of linking/association table.
-     * @return boolean true on success (PEAR_Error on failure)
-     * @access public
-     */
-    function addLink($table1, $table2, $link)
-    {
-
-        // Check for existence of all three tables
-        if (is_string($table1)) {
-            if (!isset($this->_table[$table1])) {
-                return $this->throwError(
-                          DB_TABLE_DATABASE_ERR_NO_TBL,
-                          "addLink, $table1");
-            }
-        } else {
-            return $this->throwError(
-                      DB_TABLE_DATABASE_ERR_NO_TBL,
-                      "addLink, $table1");
-        }
-        if (!isset($this->_table[$table2])) {
-            return $this->throwError(
-                      DB_TABLE_DATABASE_ERR_NO_TBL,
-                      "addLink, $table2");
-        }
-        if (!isset($this->_table[$link])) {
-            return $this->throwError(
-                      DB_TABLE_DATABASE_ERR_NO_TBL,
-                      "addLink, $link");
-        }
-        if (!isset($this->_ref[$link])) {
-            return $this->throwError(
-                      DB_TABLE_DATABASE_ERR_NO_REF_LINK,
-                      "$link => $table1, $table2");
-        } else {
-            if (!isset($this->_ref[$link][$table1])) {
-                return $this->throwError(
-                          DB_TABLE_DATABASE_ERR_NO_REF_LINK,
-                          "$link => $table1");
-            }
-            if (!isset($this->_ref[$link][$table2])) {
-                return $this->throwError(
-                          DB_TABLE_DATABASE_ERR_NO_REF_LINK,
-                          "$link => $table2");
-            }
-        }
-
-        // Add $this_link[$table1][$table2]
-        if (!key_exists($table1, $this->_link)) {
-            $this->_link[$table1] = array();
-        }
-        if (!key_exists($table2, $this->_link[$table1])) {
-            $this->_link[$table1][$table2] = array();
-        }
-        $this->_link[$table1][$table2][] = $link;
-
-        // Add $this_link[$table2][$table1]
-        if (!key_exists($table2, $this->_link)) {
-            $this->_link[$table2] = array();
-        }
-        if (!key_exists($table1, $this->_link[$table2])) {
-            $this->_link[$table2][$table1] = array();
-        } 
-        $this->_link[$table2][$table1][] = $link;
-    }
-
-    // }}}
-    // {{{ function addAllLink()
- 
-    /**
-     * Adds all possible linking tables to the $_link property array
-     *
-     * Identifies all potential linking tables in the datbase, and adds
-     * them all to the $_link property.  Table $link is taken to be a 
-     * link between tables $table1 and $table2 if it contains foreign 
-     * key references to both $table1 and $table2. 
-     *
-     * @return void
-     * @access public
-     */
-    function addAllLinks()
-    {
-        foreach ($this->_table as $link => $link_obj) {
-            if (isset($this->_ref[$link])) {
-                $ref  = $this->_ref[$link];
-                $n     = count($ref);
-                $names = array_keys($ref);
-                if ($n > 1) {
-                    $is_link = true;
-                } else {
-                    $is_link = false;
-                }
-                if ($is_link) {
-                    if ($n == 2) {
-                        $table1 = $names[0];
-                        $table2 = $names[1];
-                        $this->addLink($table1, $table2, $link);
-                    } elseif ($n > 2) {
-                        for ($i=1 ; $i < $n; $i++) {
-                            for ($j=0 ; $j < $i; $j++) {
-                                $table1 = $names[$j];
-                                $table2 = $names[$i];
-                                $this->addLink($table1, $table2, $link);
-                            }
-                        }
-                    }
-                }
-            }
-        }
-    }
-
-    // }}}
-    // {{{ function deleteLink($table1, $table2, $link = null)
- 
-    /**
-     * Removes a link between two tables from the $_link property
-     *
-     * If $link is not null, remove table $link from the list of links
-     * between $table1 and $table2, if present. If $link is null, delete
-     * all links between $table1 and $table2. 
-     *
-     * @param  string $table1 name of 1st linked table
-     * @param  string $table2 name of 2nd linked table
-     * @param  string $link   name of linking table
-     * @return void
-     * @access public
-     */
-    function deleteLink($table1, $table2, $link = null)
-    {
-        if (isset($this->_link[$table1])) {
-            if (isset($this->_link[$table1][$table2])) {
-                if ($link) {
-                    // Find numerical key of $link in _link[$table1][$table2]
-                    $key = array_search($link, $this->_link[$table1][$table2]);
-                    if (is_integer($key)) {
-                        unset($this->_link[$table1][$table2][$key]);
-                        if (count($this->_link[$table1][$table2]) == 0) {
-                            unset($this->_link[$table1][$table2]);
-                            unset($this->_link[$table2][$table1]);
-                            if (count($this->_link[$table1]) == 0) {
-                                unset($this->_link[$table1]);
-                            }
-                            if (count($this->_link[$table2]) == 0) {
-                                unset($this->_link[$table2]);
-                            }
-                        } else { 
-                            // Reset remaining indices sequentially from zero
-                            $new = array_values($this->_link[$table1][$table2]);
-                            $this->_link[$table1][$table2] = $new;
-                            $this->_link[$table2][$table1] = $new;
-                        }
-                    }
-                } else {
-                    unset($this->_link[$table1][$table2]);
-                    unset($this->_link[$table2][$table1]);
-                    if (count($this->_link[$table1]) == 0) {
-                        unset($this->_link[$table1]);
-                    }
-                    if (count($this->_link[$table2]) == 0) {
-                        unset($this->_link[$table2]);
-                    }
-                }
-            }
-        }
-    }
-
-    // }}}
-    // {{{ function validCol($col, $from = null)
- 
-    /**
-     * Validates and (if necessary) disambiguates a column name.
-     *
-     * The parameter $col is a string may be either a column name or
-     * a column name qualified by a table name, using the SQL syntax
-     * "$table.$column". If $col contains a table name, and is valid,
-     * an array($table, $column) is returned.  If $col is not qualified 
-     * by a column name, an array array($table, $column) is returned,
-     * in which $table is either the name of one table, or an array
-     * containing the names of two or more tables containing a column 
-     * named $col. 
-     *
-     * The $from parameter, if present, is a numerical array of
-     * names of tables with which $col should be associated, if no
-     * explicit table name is provided, and if possible. If one 
-     * or more of the tables in $from contains a column $col, the 
-     * returned table or set of tables is restricted to those in 
-     * array $from.
-     *
-     * If the table name remains ambiguous after testing for tables in
-     * the $from set, and $col is not a foreign key in one or more of 
-     * the remaining tables, the returned table or set of tables is 
-     * restricted to those in which $col is not a foreign key. 
-     *
-     * Returns a PEAR_Error with the following DB_TABLE_DATABASE_ERR_* error
-     * codes if:
-     *    - column $col does not exist in the database ( _NO_COL_DB )
-     *    - column $col does not exist in the specified table ( _NO_COL_TBL )
-     * 
-     * @param  string $col  column name, optionally qualified by a table name
-     * @param  array  $from array of tables from which $col should be chosen,
-     *                      if possible.
-     * @return array  array($table, $column), or PEAR_Error on failure
-     *                $column is a string, $table is a string or array
-     * @access public
-     */
-    function validCol($col, $from = null)
-    {
-        $col = explode('.',trim($col));
-        if (count($col) == 1) { 
-            // Parameter $col is a column name with no table name
-            $column = $col[0];
-            // Does $column exist in database ?
-            if (!isset($this->_col[$column])) {
-                return $this->throwError(
-                          DB_TABLE_DATABASE_ERR_NO_COL_DB, 
-                          "$column");
-            }
-            $table = $this->_col[$column];
-            // If $table is not unique, try restricting to arrays in $from
-            if (count($table) > 1 && $from) {
-                $ptable = array_intersect($table, $from);
-                if (count($ptable) > 0) {
-                    $table = array_values($ptable);
-                }
-            }
-            // If count($table)>1, try excluding foreign key columns
-            if (count($table) > 1 && isset($this->_foreign_col[$column])) {
-                $ptable = array_diff($table, $this->_foreign_col[$column]);
-                if (count($ptable) > 0) {
-                    $table = array_values($ptable);
-                }
-            }
-            // If only one table remains, set $table = table name string
-            if (count($table) == 1) {
-                $table = $table[0];
-            }
-        } elseif (count($col) == 2) { 
-            // parameter $col is qualified by a table name
-            $table  = $col[0];
-            $column = $col[1];
-            if (isset($this->_table[$table])) {
-                 $table_obj =& $this->_table[$table];
-                 $col_array = $table_obj->col;
-                 if (!isset($col_array[$column])) {
-                     return $this->throwError(
-                               DB_TABLE_DATABASE_ERR_NO_COL_TBL,
-                               "$table.$column");
-                 }
-            } else {
-                return $this->throwError(
-                          DB_TABLE_DATABASE_ERR_NO_TBL, "validCol, $table");
-            }
-        }
-        return array($table, $column);
-    }
- 
-    // }}}
-    // {{{ function createTables($flag = 'safe')
-
-    /**
-     * Creates all the tables in a database in a RDBMS
-     *
-     * Note: this method creates all the tables in a database, but does
-     * NOT create the parent database or set it to the current or default
-     * database -- the database must exist before the method is called.
-     *
-     * If creation of any table fails, the method immediately returns the
-     * PEAR error returned by DB_Table::create($flag).
-     *
-     * @param mixed $flag The automatic database creation mode, which is
-     *                    applied to each table in the database. It can have
-     *                    values:
-     *                    - 'safe' to create a table only if it does not exist
-     *                    - 'drop' to drop and recreate any existing table 
-                             with the same name
-     *
-     * @return boolean true on sucess (PEAR_Error on failure of any table)
-     * @access public
-     *
-     * @see DB_Table::create()
-     */
-    function createTables($flag = 'safe')
-    {
-        foreach ($this->_table as $name => $table) {
-            $result = $table->create($flag);
-            if (PEAR::isError($result)) {
-                return $result;
-            }
-        }
-        return true;
-    }
-
-    // }}}
-    // {{{ function validForeignKeys($table_name, $data)
-
-    /**
-     * Check validity of any foreign key values in associative array $data
-     * containing values to be inserted or updated in table $table_name.
-     *
-     * Returns true if each foreign key in $data matches a row in the
-     * referenced table, or if there are no foreign key columns in $data.  
-     * Returns a PEAR_Error if any foreign key column in associative array 
-     * $data (which may contain a full or partial row of $table_name), does 
-     * not match the the value of the referenced column in any row of the 
-     * referenced table.
-     *
-     * @param $table_name name of the referencing table containing $data
-     * @param @data       associative array containing all or part of a row
-     *                    of data of $table_name, with column name keys.
-     * @return bool true if all foreign keys are valid, returns PEAR_Error
-     *              if foreign keys are invalid or if an error is thrown 
-     *              by a required query
-     * 
-     * @throws PEAR error if:
-     *    - Error thrown by _buildFKeyFilter method (bubbles up)
-     *    - Error thrown by select method for required query (bubbles up)
-     *
-     * @access public
-     */
-    function validForeignKeys($table_name, $data)
-    {
-        if (isset($this->_ref[$table_name])) {
-            foreach ($this->_ref[$table_name] as $rtable_name => $ref) {
-                $fkey = $ref['fkey'];
-                $rkey = $ref['rkey'];
-                $rtable_obj =& $this->_table[$rtable_name];
-
-                // Construct select where clause for referenced rows,
-                // $filter = '' if $data contains no foreign key columns,
-                $filter = $this->_buildFKeyFilter($data, $fkey, $rkey);
-                if (PEAR::isError($filter)) {
-                    return $filter;
-                }
-
-                // If inserted data contain FK columns referenced by rtable,
-                // select referenced row of rtable, return error if none is
-                // found
-                if ($filter) {
-                    $sql = array('select'=> '*',
-                                 'from'  => $rtable_name,
-                                 'where' => $filter);
-                    $referenced_rows = $this->select($sql);
-                    // Check for failed query
-                    if (PEAR::isError($referenced_rows)) {
-                        return $referenced_rows;
-                    }
-                    // Check for failed foreign key constraint
-                    if (count($referenced_rows) == 0) {
-                        return $this->throwError( 
-                               DB_TABLE_DATABASE_ERR_FKEY_CONSTRAINT);
-                    }
-                }
-            }
-        }
-        return true;
-    }
-
-    // }}}
-    // {{{ function insert($table_name, $data)
-
-    /**
-     * Inserts a single table row 
-     *
-     * Wrapper for insert method of the corresponding DB_Table object.
-     *
-     * Data will be validated before insertion using validForeignKey(),
-     * if foreign key validation in enabled.
-     *
-     * @param string $table_name Name of table into which to insert data
-     * @param array $data Associative array, in which each key is a column
-     *                     name and each value is that column's value.
-     *                     This is the data that will be inserted into
-     *                     the table. Data is checked against the column
-     *                     names and data types for validity.
-     * @return boolean true on success (PEAR_Error on failure)
-     * @access public
-     */
-    function insert($table_name, $data)
-    {
-        // Dereference table object
-        if (isset($this->_table[$table_name])) {
-            $table_obj =& $this->_table[$table_name];
-        } else {
-            return $this->throwError(
-                       DB_TABLE_DATABASE_ERR_NO_TBL,
-                       "insert, $table_name");
-        }
-
-        // Insert into $table_obj
-        $result = $table_obj->insert($data);
-
-        // Return value: true or PEAR_Error
-        if (PEAR::isError($result)) {
-            return $result;
-        } else {
-            return true;
-        }
-
-    }
-
-    // }}}
-    // {{{ function autoValidInsert($flag = true)
-
-    /**
-     * Turns on or off automatic validation of inserted data for all tables
-     *
-     * @param bool $flag true to turn on auto-validation, false to turn off.
-     * @return void
-     * @access public
-     */
-    function autoValidInsert($flag = true)
-    {
-        foreach ($this->_table as $table_obj) {
-           $table_obj->autoValidInsert($flag);
-        }
-    }
-
-    // }}}
-    // {{{ function update($table_name, $data, $where)
-
-    /**
-     * Updates all row(s) of table that match a custom where clause.
-     *
-     * Wrapper for insert method of the corresponding DB_Table object.
-     * 
-     * Data will be validated before insertion using validForeignKey(),
-     * if foreign key validation in enabled.
-     *
-     * Implements any required ON UPDATE actions on tables that 
-     * reference updated columns, if on update actions are enabled.
-     *
-     * @param string $table_name name of table to update
-     * @param array  $data  associative array in which keys are names of
-     *                       columns to be updated values are new values.
-     * @param string $where SQL WHERE clause that limits the set of
-     *                       records to update.
-     * @return boolean true on success (PEAR_Error on failure)
-     * @access public
-     */
-    function update($table_name, $data, $where)
-    {
-        // Dereference table object
-        if (isset($this->_table[$table_name])) {
-            $table_obj =& $this->_table[$table_name];
-        } else {
-            return $this->throwError(
-                       DB_TABLE_DATABASE_ERR_NO_TBL,
-                       "update, $table_name");
-        }
-
-        // Apply update
-        $result = $table_obj->update($data, $where);
-
-        // Return value: true or PEAR_Error
-        if (PEAR::isError($result)) {
-            return $result;
-        } else {
-            return true;
-        }
-
-    }
-
-    // }}}
-    // {{{ function autoValidUpdate($flag = true)
-
-    /**
-     * Turns on (or off) automatic validation of updated data for all tables.
-     *
-     * @param  bool $flag true to turn on auto-validation, false to turn off
-     * @return void
-     * @access public
-     */
-    function autoValidUpdate($flag = true)
-    {
-        foreach ($this->_table as $table_obj) {
-            $table_obj->autoValidUpdate($flag);
-        }
-    }
-
-    // }}}
-    // {{{ function onUpdateAction(&$table_obj, $data, $where)
-
-    /**
-     * Implements any ON UPDATE actions triggered by updating of rows of
-     * $table_obj that match logical condition $where.
-     *
-     * This method is called by the DB_Table::update() method if the table
-     * has a parent DB_Table_Database object, and if ON UPDATE actions are
-     * enabled in the database object. It is called indirectly by the
-     * DB_Table_Database::delete() method, which is simply a wrapper for
-     * the DB_Table method. 
-     *
-     * @param  object &$table_obj Reference to a DB_Table object
-     * @param  array  $data  Data to updated, column name keys, data values
-     * @param  string $where SQL logical condition for updated rows
-     * @return boolean true on success (PEAR_Error on failure)
-     * @access public
-     */
-    function onUpdateAction(&$table_obj, $data, $where)
-    {
-        $table_name = $table_obj->table;
-        if ($this->_act_on_update and isset($this->_ref_to[$table_name])) {
-            $update_rows = null;
-            foreach ($this->_ref_to[$table_name] as $ftable_name) {
-                $ref    = $this->_ref[$ftable_name][$table_name];
-                $action = isset($ref['on_update']) ? $ref['on_update'] : null;
-                if (is_null($action)) {
-                   continue;
-                }
-                $rtable_obj =& $this->_table[$table_name];
-                $ftable_obj =& $this->_table[$ftable_name];
-                $fkey = $ref['fkey'];
-                $rkey = $ref['rkey'];
-
-                // Check if any column(s) of referenced $rkey are updated
-                $rkey_updated = false;
-                foreach ($data as $key => $value) {
-                    if (is_string($rkey)){
-                        if ($key == $rkey) {
-                            $rkey_updated = true;
-                            break;
-                        }
-                    } else {
-                        if (in_array($key, $rkey)) {
-                            $rkey_updated = true;
-                            break;
-                        }
-                    }
-                }
-
-                // If $rkey is not updated, continue to next referencing table
-                if (!$rkey_updated) {
-                    continue;
-                }
-
-                // Select rows to be updated, if not done previously
-                if ($update_rows === null) {
-                    if ($this->backend == 'mdb2') {
-                        $fetchmode_assoc = MDB2_FETCHMODE_ASSOC;
-                    } else {
-                        $fetchmode_assoc = DB_FETCHMODE_ASSOC;
-                    }
-                    $sql = array('select' => '*',
-                                 'from'   => $table_name,
-                                 'where'  => $where,
-                                 'fetchmode' => $fetchmode_assoc);
-                    $update_rows = $this->select($sql);
-                    if (PEAR::isError($update_rows)) {
-                        return $update_rows;
-                    }
-                }
-
-                // Construct $fdata array if cascade, set null, or set default
-                $fdata = null;
-                if ($action == 'cascade') {
-                    if (is_string($rkey)) {
-                        if (array_key_exists($rkey, $data)) {
-                            $fdata = array($fkey => $data[$rkey]);
-                        }
-                    } else {
-                        $fdata = array();
-                        for ($i=0; $i < count($rkey); $i++) {
-                            $rcol = $rkey[$i];
-                            $fcol = $fkey[$i];
-                            if (array_key_exists($rcol, $data)) {
-                                $fdata[$fcol] = $data[$rcol];
-                            }
-                        }
-                        if (count($fdata) == 0) {
-                           $fdata = null;
-                        }
-                    }
-                } elseif ($action == 'set null' or $action == 'set default') {
-                    if (is_string($fkey)) {
-                        if ($action == 'set default') {
-                            $value = isset($ftable_obj->col[$fkey]['default'])
-                                   ? $ftable_obj->col[$fkey]['default'] : null;
-                        } else {
-                            $value = null;
-                        }
-                        $fdata = array($fkey => $value);
-                    } else {
-                        $fdata = array();
-                        foreach ($fkey as $fcol) {
-                            if ($action == 'set default') {
-                                $value = isset($ftable_obj->col[$fcol]['default'])
-                                      ? $ftable_obj->col[$fcol]['default'] : null;
-                            } else {
-                                $value = null;
-                            }
-                            $fdata[$fcol] = $value;
-                        }
-                        if (count($fdata) == 0) {
-                           $fdata = null;
-                        }
-                    }
-                } elseif ($action == 'restrict') {
-                    $fdata = true;
-                } elseif ($action == null) {
-                    $fdata = null;
-                } else {
-                    return $this->throwError(
-                        DB_TABLE_DATABASE_ERR_ON_UPDATE_ACTION,
-                        "$ftable_name => $table_name");
-                }
-
-                if (!is_null($fdata)) {
-
-                    // Loop over rows to be updated from $table
-                    foreach ($update_rows as $update_row) {
-
-                        // If necessary, restore case of column names
-                        if ($this->_fix_case) {
-                            $cols = array_keys($table_obj->col);
-                            $update_row = $this->_replaceKeys($update_row, $cols);
-                        }
-
-                        // Construct filter for rows that reference $update_row
-                        $filter = $this->_buildFKeyFilter($update_row, 
-                                                          $rkey, $fkey);
-    
-                        // Apply action to foreign/referencing rows
-                        if ($action == 'restrict') {
-                            $sql = array('select'=>'*',
-                                         'from'  => $ftable_name,
-                                         'where' => $filter);
-                            $frows = $this->select($sql);
-                            if (PEAR::isError($frows)) {
-                                return $frows;
-                            }
-                            if (count($frows) > 0) {
-                                 return $this->throwError(
-                                        DB_TABLE_DATABASE_ERR_RESTRICT_UPDATE,
-                                        $table_name);
-                            }
-                        } else {
-                            // If 'cascade', 'set null', or 'set default',
-                            // then update the referencing foreign key.
-                            // Note: Turn off foreign key validity check
-                            // during update, then restore original value
-                            $check_fkey = $this->_check_fkey;
-                            $this->_check_fkey = false;
-                            $result = $this->update($ftable_name, $fdata, 
-                                                    $filter);
-                            $this->_check_fkey = $check_fkey;
-                            if (PEAR::isError($result)) {
-                                return $result;
-                            }
-                        }
-                    } // foreach ($update_row)
-                } // if (!is_null($fdata))
-
-            } // foreach loop over referencing tables
-        } // end if
-
-        // Normal completion
-        return true;
-
-    }
-
-    // }}}
-    // {{{ function autoRecast($flag = true)
-
-    /**
-     * Turns on (or off) automatic recasting of insert and update data
-     * for all tables
-     *
-     * @param bool $flag True to automatically recast insert and update
-     *                   data, in all tables, false to not do so.
-     * @return void
-     * @access public
-     */
-    function autoRecast($flag = true)
-    {
-        foreach ($this->_table as $table_obj) {
-            $table_obj->autoRecast($flag);
-        }
-    }
-
-    // }}}
-    // {{{ function autoInc($flag = true)
-
-    /**
-     * Turns on (or off) php implementation of auto-incrementing on insertion
-     * for all tables
-     *
-     * @param bool $flag True to turn on auto-incrementing, false to turn off
-     * @return void
-     * @access public
-     */
-    function autoInc($flag = true)
-    {
-        foreach ($this->_table as $table_obj) {
-            $table_obj->auto_inc = $flag;
-        }
-    }
-
-    // }}}
-    // {{{ function delete($table_name, $where)
-
-    /**
-     * Deletes all row(s) of table that match a custom where clause.
-     *
-     * Wrapper for insert method of the corresponding DB_Table object.
-     *
-     * Implements any required ON DELETE action on tables that reference
-     * deleted rows, if on delete actions are enabled.
-     *
-     * @param string $table_name name of table from which to delete
-     * @param string $where      SQL WHERE clause that limits the set
-     *                           of records to delete
-     * @return boolean true on success (PEAR_Error on failure)
-     * @access public
-     */
-    function delete($table_name, $where)
-    {
-        // Dereference table object
-        if (isset($this->_table[$table_name])) {
-            $table_obj =& $this->_table[$table_name];
-        } else {
-            return $this->throwError(
-                       DB_TABLE_DATABASE_ERR_NO_TBL,
-                       "delete, $table_name");
-        }
-
-        // Delete from $table_obj
-        $result = $table_obj->delete($where);
-
-        // Return value: true or PEAR_Error
-        if (PEAR::isError($result)) {
-            return $result;
-        } else {
-            return true;
-        }
-
-    }
-
-    // }}}
-    // {{{ function onDeleteAction(&$table_obj, $where)
-
-    /**
-     * Implements ON DELETE actions triggered by deletion of rows of
-     * $table_obj that match logical condition $where.
-     *
-     * This method is called by the DB_Table::delete() method if the table
-     * has a parent DB_Table_Database object, and if ON DELETE actions are
-     * enabled in the database object. It is called indirectly by the
-     * DB_Table_Database::delete() method, which is simply a wrapper for
-     * the DB_Table method. 
-     *
-     * @param  object &$table_obj Reference to a DB_Table object
-     * @param  string $where SQL logical condition for deleted rows
-     * @return boolean true on success (PEAR_Error on failure)
-     * @access public
-     */
-    function onDeleteAction(&$table_obj, $where)
-    {
-        $table_name = $table_obj->table;
-        if ($this->_act_on_delete and isset($this->_ref_to[$table_name])) {
-            $delete_rows = null;
-            foreach ($this->_ref_to[$table_name] as $ftable_name) {
-                $ref    = $this->_ref[$ftable_name][$table_name];
-                $action = $ref['on_delete'];
-                if (is_null($action)) {
-                   continue;
-                } 
-                $ftable_obj =& $this->_table[$ftable_name];
-                $rtable_obj =& $this->_table[$table_name];
-                $fkey = $ref['fkey'];
-                $rkey = $ref['rkey'];
-
-                // Select rows to be deleted, if not done previously
-                if ($delete_rows === null) {
-                    if ($this->backend == 'mdb2') {
-                        $fetchmode_assoc = MDB2_FETCHMODE_ASSOC;
-                    } else {
-                        $fetchmode_assoc = DB_FETCHMODE_ASSOC;
-                    }
-                    $sql = array('select' => '*',
-                                 'from'   => $table_name,
-                                 'where'  => $where,
-                                 'fetchmode' => $fetchmode_assoc);
-                    $delete_rows = $this->select($sql);
-                    if (PEAR::isError($delete_rows)) {
-                        return $delete_rows;
-                    }
-                }
-
-                // If set null or set default, construct update $fdata
-                // $fdata contains data for updating referencing rows
-                if ($action == 'set null' or $action == 'set default') {
-                    if (is_string($fkey)) {
-                        if ($action == 'set default') {
-                            $value = isset($ftable_obj->col[$fkey]['default'])
-                                   ? $ftable_obj->col[$fkey]['default'] : null;
-                        } else {
-                            $value = null;
-                        }
-                        $fdata = array($fkey => $value);
-                    } else {
-                        $fdata = array();
-                        foreach ($fkey as $fcol) {
-                            if ($action == 'set default') {
-                                $value = isset($ftable_obj->col[$fcol]['default'])
-                                      ? $ftable_obj->col[$fcol]['default'] : null;
-                            } else {
-                                $value = null;
-                            }
-                            $fdata[$fcol] = $value;
-                        }
-                    }
-                }
-
-                // Loop over rows to be deleted from $table_name
-                foreach ($delete_rows as $delete_row) {
-
-                    // If necessary, restore case of $delete_row column names
-                    if ($this->_fix_case) {
-                        $cols = array_keys($table_obj->col);
-                        $delete_row = $this->_replaceKeys($delete_row, $cols);
-                    }
-
-                    // Construct filter for referencing rows in $ftable_name
-                    $filter = $this->_buildFKeyFilter($delete_row, 
-                                                      $rkey, $fkey);
-
-                    // Apply action for one deleted row
-                    if ($action == 'restrict') {
-                        // Select for referencing rows throw error if found
-                        $sql = array('select'=>'*',
-                                     'from'  => $ftable_name,
-                                     'where' => $filter);
-                        $frows = $this->select($sql);
-                        if (PEAR::isError($frows)) {
-                            return $frows;
-                        }
-                        if (count($frows) > 0) {
-                             return $this->throwError(
-                                       DB_TABLE_DATABASE_ERR_RESTRICT_DELETE,
-                                       $table_name);
-                        }
-                    } elseif ($action == 'cascade') {
-                        // Delete referencing rows
-                        // Note: Recursion on delete
-                        $result = $this->delete($ftable_name, $filter);
-                        if (PEAR::isError($result)) {
-                            return $result;
-                        }
-                    } elseif ($action == 'set null' OR $action == 'set default') {
-                        // Update referencing rows, using $fdata
-                        // Note: Turn off foreign key validity check during
-                        // update of referencing key to null or default, then
-                        // restore $this->_check_fkey to original value
-                        $check_fkey = $this->_check_fkey;
-                        $this->_check_fkey = false;
-                        $result = $this->update($ftable_name, $fdata, $filter);
-                        $this->_check_fkey = $check_fkey;
-                        #$result = $ftable_obj->update($fdata, $filter);
-                        if (PEAR::isError($result)) {
-                            return $result;
-                        }
-                    } else {
-                        // Invalid $action name, throw Error
-                        return $this->throwError(
-                           DB_TABLE_DATABASE_ERR_ON_DELETE_ACTION,
-                           "$ftable_name => $table_name");
-                    }
-                } // end foreach ($delete_rows)
-
-            } // end foreach ($this->_ref_to[...] as $ftable_name)
-        } // end if 
-
-        // Normal completion
-        return true; 
-
-    }
-
-    // }}}
-    // {{{ function _replaceKeys($data, $keys) 
-
-    /**
-     * Returns array in which keys of associative array $data are replaced 
-     * by values of sequential array $keys.
-     *
-     * This function is used by the onDeleteAction() and onUpdateAction() 
-     * methods to restore the case of column names in associative arrays 
-     * that are returned from an automatically generated query "SELECT * 
-     * FROM $table WHERE ...", when these column name keys are returned 
-     * with a fixed case. In this usage, $keys is a sequential array of 
-     * the names of all columns in $table. 
-     *
-     * @param  array $data associative array
-     * @param  array $key  numerical array of replacement key names
-     * @return array associative array in which keys of $data have been 
-     *               replaced by the values of array $keys.
-     * @access private
-     */
-    function _replaceKeys($data, $keys) 
-    {
-        $new_data = array();
-        $i = 0;
-        foreach ($data as $old_key => $value) {
-            $new_key = $keys[$i];
-            $new_data[$new_key] = $value;
-            $i = $i + 1;
-        }
-        return $new_data;
-    }
-
-    // }}}
-    // {{{ function autoJoin($cols = null, $tables = null, $filter = null)
-
-    /**
-     * Builds a select command involving joined tables from 
-     * a list of column names and/or a list of table names.
-     *
-     * Returns an query array of the form used in $this->buildSQL,
-     * constructed on the basis of a sequential array $cols of
-     * column names and/or a sequential array $tables of table
-     * names.  The 'FROM' clause in the resulting SQL contains 
-     * all the table listed in the $tables parameter and all 
-     * those containing the columns listed in the $cols array,
-     * as well as any linking tables required to establish 
-     * many to many relationships between these tables. The
-     * 'WHERE' clause is constructed so as to create an inner
-     * join of these tables.
-     *
-     * The $cols parameter is a sequential array in which the
-     * values are column names. Column names may be qualified
-     * by a table name, using the SQL table.column syntax, but
-     * need not be qualified if they are unambiguous. The 
-     * values in $cols can only be column names, and may not 
-     * be functions or more complicated SQL expressions. If
-     * cols is null, the resulting SQL command will start with 
-     * 'SELECT * FROM ...' .
-     *
-     * The $tables parameter is a sequential array in which the
-     * values are table names. If $tables is null, the FROM
-     * clause is constructed from the tables containing the
-     * columns in the $cols. 
-     * 
-     * The $params array is an associative array can have
-     * 'filter', and 'order' keys, which are both optional.
-     * A value $params['filter'] is an condition string to
-     * add (i.e., AND) to the automatically constructed set
-     * of join conditions. A value $params['order'] is an
-     * SQL 'ORDER BY' clause, with no 'ORDER BY' prefix.
-     *
-     * The function returns an associative array with keys
-     * ('select', 'from', 'where', ['order']), for which the
-     * associated values are strings containing the SELECT,
-     * FROM, WHERE and (optionally) ORDER BY clauses of the
-     * select statement. The entire SELECT command string
-     * can be obtained by passing the resulting array to
-     * the buildSQL method.
-     *
-     * @param  array $cols   sequential array of column names
-     * @param  array $tables sequential array of table names
-     * @param  array $filter SQL logical expression to be added 
-     *                       (ANDed) to the where clause
-     * @return array sql query array for select statement
-     * @access public
-     */
-    function autoJoin($cols = null, $tables = null, $filter = null)
-    {
-        // initialize array containing clauses of select statement
-        $query = array();
-
-        if (is_null($tables)) {
-            if (is_null($cols)) {
-                return $this->throwError(
-                          DB_TABLE_DATABASE_ERR_NO_COL_NO_TBL);
-            }
-            $tables = array();
-        }
-
-        if (!$cols) {
-            // If no columns specified, SELECT * FROM ...
-            $query['select'] = '*';
-        } else {
-
-            // Qualify unqualified columns with table names
-            $all_tables = $tables;
-            foreach ($cols as $key => $col) {
-                $col_array  = $this->validCol($col, $tables);
-                if (PEAR::isError($col_array)) {
-                     return $col_array;
-                }
-                $table  = $col_array[0];
-                $column = $col_array[1];
-                if (is_array($table)) {
-                    return $this->throwError(
-                           DB_TABLE_DATABASE_ERR_COL_NOT_UNIQUE, $col);
-                }
-                $cols[$key] = "$table.$column";
-                if (!in_array($table, $all_tables)) {
-                    $all_tables[] = $table;
-                }
-            }
-            $tables = $all_tables;
-
-            // Construct select clause
-            $query['select'] = implode(', ', $cols);
-
-        }
-
-        // Construct array $joins of join conditions
-        $n_tables = count($tables);
-        if ($n_tables == 1) {
-            $query['from'] = $tables[0];
-        } else {
-            $join_tables = array($tables[0]); // list of joined tables
-            $link_tables = array();           // list of required linking tables
-            $joins       = array();           // list of join conditions
-            // Initialize linked list of unjoined tables
-            $next  = array();                  
-            for ( $i=1 ; $i < $n_tables-1 ; $i++) {
-                $next[$tables[$i]]   = $tables[$i+1];
-                $prev[$tables[$i+1]] = $tables[$i];
-            }
-            $next[$tables[$n_tables-1]] = $tables[1];
-            $prev[$tables[1]] = $tables[$n_tables-1];
-            $n_remain = $n_tables - 1;
-            $head     = $tables[1];
-            $table1   = $tables[1];
-            $joined   = false;
-            $direct   = true;
-            while ($n_remain > 0) {
-
-                if ($direct) {
-
-                    // Search for references from table1 to joined tables
-                    if (isset($this->_ref[$table1])) {
-                        $list = $this->_ref[$table1];
-                        foreach ($list as $table2 => $def) {
-                            if (in_array($table2, $join_tables)) {
-                                if ($joined) {
-                                    return $this->throwError(
-                                           DB_TABLE_DATABASE_ERR_AMBIG_JOIN,
-                                           $table1);
-                                }
-                                $fkey = $def['fkey'];
-                                $rkey = $def['rkey'];
-                                if (is_string($fkey)) {
-                                    $joins[] = "$table1.$fkey = $table2.$rkey";
-                                } else {
-                                    for ($i=0; $i < count($fkey); $i++ ) {
-                                        $fcol = $fkey[$i];
-                                        $rcol = $rkey[$i];
-                                        $joins[] = 
-                                               "$table1.$fcol = $table2.$rcol";
-                                    }
-                                }
-                                $joined  = true;
-                            }
-                        }
-                    }
-
-                    // Search for references to table1 from joined tables
-                    if (isset($this->_ref_to[$table1])) {
-                        $list = $this->_ref_to[$table1];
-                        foreach ($list as $table2) {
-                            if (in_array($table2, $join_tables)) {
-                                if ($joined) {
-                                    return $this->throwError(
-                                              DB_TABLE_DATABASE_ERR_AMBIG_JOIN,
-                                              $table1);
-                                }
-                                $def  = $this->_ref[$table2][$table1];
-                                $fkey = $def['fkey'];
-                                $rkey = $def['rkey'];
-                                if (is_string($fkey)) {
-                                    $joins[] = "$table2.$fkey = $table1.$rkey";
-                                } else {
-                                    for ($i=0; $i < count($fkey); $i++ ) {
-                                        $fcol = $fkey[$i];
-                                        $rcol = $rkey[$i];
-                                        $joins[] = 
-                                               "$table2.$fcol = $table1.$rcol";
-                                    }
-                                }
-                                $joined  = true;
-                            }
-                        }
-                    }
-
-                } else {
-
-                    // Search for indirect linking table to table1
-                    if (isset($this->_link[$table1])) {
-                        foreach ($this->_link[$table1] as $table2 => $links) {
-                            if (in_array($table2, $join_tables)) {
-                                $n_link = count($links);
-                                if ($n_link > 1) {
-                                    return $this->throwError(
-                                      DB_TABLE_DATABASE_ERR_AMBIG_JOIN,
-                                      $table1);
-                                }
-                                if ($joined and $n_link > 0) {
-                                    return $this->throwError(
-                                      DB_TABLE_DATABASE_ERR_AMBIG_JOIN,
-                                      $table1);
-                                }
-                                $link  = $links[0];
-                                $def1  = $this->_ref[$link][$table1];
-                                $fkey1 = $def1['fkey'];
-                                $rkey1 = $def1['rkey'];
-                                if (is_string($fkey1)) {
-                                    $joins[] = "$link.$fkey1 = $table1.$rkey1";
-                                } else {
-                                    for ($i=0; $i < count($fkey1); $i++ ) {
-                                        $fcol1 = $fkey1[$i];
-                                        $rcol1 = $rkey1[$i];
-                                        $joins[] = 
-                                               "$link.$fcol1 = $table1.$rcol1";
-                                    }
-                                }
-                                $def2  = $this->_ref[$link][$table2];
-                                $fkey2 = $def2['fkey'];
-                                $rkey2 = $def2['rkey'];
-                                if (is_string($fkey2)) {
-                                    $joins[] = "$link.$fkey2 = $table2.$rkey2";
-                                } else {
-                                    for ($i=0; $i < count($fkey2); $i++ ) {
-                                        $fcol2 = $fkey2[$i];
-                                        $rcol2 = $rkey2[$i];
-                                        $joins[] = 
-                                              "$link.$fcol2 = $table2.$rcol2";
-                                    }
-                                }
-                                $link_tables[] = $link;
-                                $joined = true;
-                            }
-                        }
-                    }
-
-                }
-
-                if ($joined) {
-                    $join_tables[] = $table1;
-                    $n_remain = $n_remain - 1;
-                    if ($n_remain > 0) {
-                        $head   = $next[$table1];
-                        $tail   = $prev[$table1];
-                        $prev[$head] = $tail;
-                        $next[$tail] = $head;
-                        $table1 = $head;
-                        $joined = false;
-                        $direct = true;
-                    }
-                } else {
-                    $table1 = $next[$table1];
-                    if ($table1 == $head) {
-                        if ($direct) {
-                            $direct = false;
-                        } else {
-                            return $this->throwError(
-                                   DB_TABLE_DATABASE_ERR_FAIL_JOIN,$table1);
-                        }
-                    }
-                }
-
-            }
-
-            // Add any required linking tables to $tables array 
-            if ($link_tables) {
-                foreach ($link_tables as $link) {
-                    if (!in_array($link, $tables)) {
-                        $tables[] = $link;
-                    }
-                }
-            }
-
-            // Construct from clause from $tables array
-            $query['from'] = implode(', ', $tables);
-
-            // Construct where clause from $joins array
-            $query['where'] = implode("\n  AND ", $joins);
-
-        }
-
-        // Add $filter condition, if present
-        if ($filter) {
-           if (isset($query['where'])) {
-               $query['where'] = '( ' . $query['where'] . " )\n" .
-                           '  AND ( ' . $filter . ')';
-           } else {
-               $query['where'] = $filter;
-           }
-        }
-
-        return $query;
-    }
-
-    // }}}
-    // {{{ function _buildFKeyFilter($data, $data_key = null, $filt_key = null, $match = 'simple')
-
-    /**
-     * Returns WHERE clause equating values of $data array to database column 
-     * values
-     *
-     * Usage: The function is designed to return an SQL logical 
-     * expression that equates the values of a set of foreign key columns in
-     * associative array $data, which is a row to be inserted or updated in
-     * one table, to the values of the corresponding columns of a referenced 
-     * table. In this usage, $data_key is the foreign key (a column name or
-     * numerical array of column names), and $filt_key is the corresponding
-     * referenced key. 
-     * 
-     * Parameters: Parameter $data is an associative array containing data to 
-     * be inserted into or used to update one row of a database table, in which
-     * array keys are column names. When present, $data_key contains either
-     * the name of a single array key of interest, or a numerical array of such
-     * keys. These are usually the names of the columns of a foreign key in 
-     * that table. When, $data_key is null or absent, it is taken to be equal 
-     * to an array containing all of the keys of $data. When present, $filt_key
-     * contains either a string or a numerical array of strings that are 
-     * aliases for the keys in $data_key.  These are usually the names of the
-     * corresponding columns in the referenced table. When $filt_key is null 
-     * or absent, it is equated with $data_key internally.  The function 
-     * returns an SQL logical expression that equates the values in $data 
-     * whose keys are specified by $data_key, to the values of database 
-     * columns whose names are specified in $filt_key. 
-     *
-     * General case: _buildFKeyFilter returns a SQL logical expression that 
-     * equates the values of $data whose keys are given in $data_key with the 
-     * values of database columns with names given in $filt_key. For example,
-     * if
-     * <code>
-     *    $data = array( 'k1' => $v1, 'k2' => $v2, ... , 'k10' => $v10 );
-     *    $data_key = array('k2', 'k5', 'k7');
-     *    $filt_key = array('c2', 'c5', 'c7');
-     * </code>
-     * then buildFilter($data, $data_key, $filt_key) returns a string
-     * <code>
-     *    "c2 = $v2 AND c5 = $v5 AND c7 = $v7" 
-     * </code>
-     * in which the values $v2, $v5, $v7 are replaced by properly quoted 
-     * SQL literal values. If, in the above example, $data_key = 'k5' 
-     * and $filt_key = 'c5', then the function will return
-     * <code>
-     *    "c5 = $v5" 
-     * </code>
-     * where (again) $v5 is replaced by an SQL literal. 
-     *
-     * Simple case: If parameters $data_key and $filt_key are null, the 
-     * behavior is the same as that of the DB_Table_Base::buildFilter() method. 
-     * For example, if
-     * <code>
-     *     $data = array( 'c1' => $v1, 'c2' => $v2, 'c3' => $v3)
-     * </code>
-     * then _buildFKeyFilter($data) returns a string 
-     * <code>
-     *     "c1 => $val1 AND c2 => $val2 AND c3 = $v3"
-     * </code>
-     * in which the values $v1, $v2, $v3 are replaced by SQL literal values,
-     * quoted and escaped as appropriate for each data type and the backend.
-     *
-     * Quoting is done by the DB_Table_Database::quote() method, based on
-     * the php type of the values in $array.  The treatment of null values 
-     * in $data depends upon the value of the $match parameter.
-     *
-     * Null values: The treatment to null values in $data depends upon 
-     * the value of the $match parameter . If $match == 'simple', an empty
-     * string is returned if any $value of $data with a key in $data_key
-     * is null. If $match == 'partial', the returned SQL expression 
-     * equates only the relevant non-null values of $data to the values of
-     * corresponding database columns. If $match == 'full', the function
-     * returns an empty string if all of the relevant values of data are
-     * null, and returns a PEAR_Error if some of the selected values are
-     * null and others are not null.
-     *
-     * @param array $data     associative array, keys are column names
-     * @param mixed $data_key string or numerical array of strings, in which
-     *                        values are a set of keys of interest in $data
-     * @param mixed $data_key string or numerical array of strings, in which
-     *                        values are names of a corresponding set of
-     *                        database column names.
-     * @return string SQL expression equating values in $data, for which keys
-     *                also appear in $data_key, to values of corresponding 
-     *                database columns named in $filt_key.
-     * @access private
-     */
-    function _buildFKeyFilter($data, $data_key = null, $filt_key = null, 
-                              $match = 'simple')
-    {
-        // Check $match type value
-        if (!in_array($match, array('simple', 'partial', 'full'))) {
-            return $this->throwError(
-                            DB_TABLE_DATABASE_ERR_MATCH_TYPE);
-        }
-
-        // Simple case: Build filter from $data array alone
-        if (is_null($data_key) && is_null($filt_key)) {
-            return $this->buildFilter($data, $match);
-        }
-
-        // Defaults for $data_key and $filt_key:
-        if (is_null($data_key)) {
-            $data_key = array_keys($data);
-        }
-        if (is_null($filt_key)) {
-            $filt_key = $data_key;
-        }
-
-        // General case: $data_key and/or $filt_key not null
-        if (is_string($data_key)) {
-            if (!is_string($filt_key)) {
-                 return $this->throwError(
-                            DB_TABLE_DATABASE_ERR_FILT_KEY);
-            }
-            if (array_key_exists($data_key, $data)) {
-                $value = $data[$data_key];
-                if (!is_null($value)) {
-                    $value = (string) $this->quote($data[$data_key]);
-                    return "$filt_key = $value";
-                } else {
-                    return '';
-                }
-            } else {
-                return '';
-            }
-        } elseif (is_array($data_key)) {
-            if (!is_array($filt_key)) {
-                return $this->throwError(
-                          DB_TABLE_DATABASE_ERR_FILT_KEY);
-            }
-            $filter = array();
-            for ($i=0; $i < count($data_key); $i++) {
-                $data_col = $data_key[$i];
-                $filt_col = $filt_key[$i];
-                if (array_key_exists($data_col, $data)) {
-                    $value = $data[$data_col];
-                    if (!is_null($value)) {
-                        if ($match == 'full' && isset($found_null)) {
-                            return $this->throwError(
-                                      DB_TABLE_DATABASE_ERR_FULL_KEY);
-                        }
-                        $value = $this->quote($value);
-                        $filter[] = "$filt_col = $value";
-                    } else {
-                        $found_null = true;
-                    }
-                }
-            }
-            if ($match == 'simple' && isset($found_null)) {
-                return '';
-            }
-            if (count($filter) == 0) {
-                return '';
-            }
-            return implode(' AND ', $filter);
-        } else {
-            // Invalid data key
-            return $this->throwError(
-                      DB_TABLE_DATABASE_ERR_DATA_KEY);
-        }
-    }
-
-    // }}}
-    // {{{ function quote($value)
-
-    /**
-     * Returns SQL literal string representation of a php value
-     *
-     * Calls MDB2::quote() or DB_Common::quoteSmart() to enquote and
-     * escape string values. If $value is: 
-     *    - a string, return the string enquoted and escaped
-     *    - a number, return cast of number to string, without quotes
-     *    - a boolean, return '1' for true and '0' for false
-     *    - null, return the string 'NULL'
-     * 
-     * @param  mixed  $value 
-     * @return string Representation of value as an SQL literal
-     * 
-     * @access public
-     *
-     * @see DB_Common::quoteSmart()
-     * @see MDB2::quote()
-     */
-    function quote($value)
-    {
-        if (is_bool($value)) {
-           return $value ? '1' : '0';
-        } 
-        if ($this->backend == 'mdb2') {
-            $value = $this->db->quote($value);
-        } else {
-            $value = $this->db->quoteSmart($value);
-        }
-        return (string) $value;
-    }
-    
-    // }}}
-    // {{{ function __sleep()
-
-    /**
-     * Serializes all table references and sets $db = null, $backend = null
-     *
-     * @return array names of all properties
-     * @access public
-     */
-    function __sleep()
-    {
-        $this->db      = null;
-        $this->backend = null;
-        // needed in setDatabaseInstance, where null is passed by reference
-        $null_variable  = null;
-        foreach ($this->_table as $name => $table_obj) {
-            $table_obj->db = null;
-            $table_obj->setDatabaseInstance($null_variable);
-            $this->_table[$name] = serialize($table_obj);
-        }
-        return array_keys(get_object_vars($this));
-    }
-
-    // }}}
-    // {{{ function __wakeup()
-
-    /**
-     * Unserializes DB_Table_Database object and all child DB_Table objects
-     *
-     * Immediately after unserialization, a DB_Table_Database object 
-     * has null $db and $backend properties, as do all of its child 
-     * DB_Table objects. The DB_Table_Database::setDB method should 
-     * be called immediately after unserialization to re-establish 
-     * the database connection, like so:
-     * <code>
-     *    $db_object = unserialize($serialized_db);
-     *    $db_object->setDB($conn);
-     * </code>
-     * where $conn is a DB/MDB2 object.  This establishes a DB/MDB2
-     * connection for both the parent database and all child tables.
-     *
-     * This method unserializes all of the child DB_Table objects of
-     * a DB_Table_Database object. It must thus have access to the 
-     * definitions of the associated DB_Table subclasses. These are
-     * listed in the $_table_subclass property. If a required subclass 
-     * named $subclass is not defined, the __wakeup() method attempts 
-     * to autoload a file "$subclass.php" in the directory specified
-     * by $this->table_subclass_path. 
-     *
-     * @return void
-     * @access public
-     */
-    function __wakeup()
-    {
-        foreach ($this->_table as $name => $table_string) {
-
-            // Check for subclass definition, and autoload if necessary.
-            $subclass = $this->_table_subclass[$name];
-            if (!is_null($subclass)) {
-                if (!class_exists($subclass)) {
-                    $dir = $this->_table_subclass_path;
-                    require_once $dir . '/' . $subclass . '.php';
-                }
-            }
-            // Unserialize table
-            $table_obj = unserialize($table_string);
-            // Reset references between database and table objects
-            $table_obj->setDatabaseInstance($this);
-            $this->_table[$name] = $table_obj;
-        }
-    }
-
-    // }}}
-    // {{{ function toXML()
-
-    /**
-     * Returns XML string representation of database declaration
-     *
-     * @param  string $indent string of whitespace, prefix to each line
-     * @return string XML string representation
-     * @access public
-     */
-    function toXML($indent = '') {
-        require_once 'DB/Table/XML.php';
-        $s = array();
-        $s[] = DB_Table_XML::openTag('database', $indent);
-        foreach ($this->_table as $name => $table_obj) {
-            $s[] = $table_obj->toXML($indent);
-        }
-        $s[] = DB_Table_XML::closeTag('database', $indent);
-        return implode("\n", $s);
-    }
-
-    // }}}
-    // {{{ function fromXML($xml_string, $conn)
-
-    /**
-     * Returns a DB_Table_Database object constructed from an XML string
-     *
-     * Uses the MDB2 XML schema for a database element, including a new
-     * syntax for foreign key indices. 
-     *
-     * NOTE: This function requires PHP 5. It throws an error if used
-     * with PHP 4. 
-     *
-     * @param  string XML string representation
-     * @return object DB_Table_Database object on success (PEAR_Error on failure)
-     *
-     * @throws PEAR_Error if:
-     *    - PHP version is not >= 5.0.0 (...DATABASE_ERR_PHP_VERSION )
-     *    - Parsing by simpleXML fails (...DATABASE_ERR_XML_PARSE )
-     *
-     * @access public
-     */
-    function fromXML($xml_string, $conn)
-    {
-        // Check PHP version. Throw error if not >= PHP 5.0.0
-        $version = phpversion();
-        if (version_compare($version, '5.0.0', "<")) {
-            return $this->throwError(
-                   DB_TABLE_DATABASE_ERR_PHP_VERSION,
-                   $version);
-        }
-
-        $xml = simplexml_load_string($xml_string);
-        if ($xml == false) {
-            return $this->throwError(
-                   DB_TABLE_DATABASE_ERR_XML_PARSE);
-        }
-    
-        // Instantiate database object
-        $database_name = (string) $xml->name;
-        $database_obj  = new DB_Table_Database($conn, $database_name);
-   
-        // Create array of foreign key references
-        $ref = array();
-   
-        // Loop over tables
-        foreach ($xml->table as $table) {
-            $table_name = (string) $table->name;
-    
-            // Instantiate table object
-            $table_obj = new DB_Table($conn, $table_name);
-        
-            // Add columns to table object
-            $declaration = $table->declaration;
-            foreach ($declaration->field as $field) {
-                $col_name = (string) $field->name;
-                $type     = (string) $field->type;
-                $def = array('type' => $type);
-                if (isset($field->length)) {
-                    $def['size'] = (integer) $field->length;
-                }
-                if (isset($field->notnull)) {
-                    if ($field->notnull) {
-                        $def['require'] = true;
-                    } else {
-                        $def['require'] = false;
-                    }
-                }
-                if (isset($field->default)) {
-                    $def['default'] = $field->default;
-                }
-                if (isset($field->autoincrement)) {
-                    if (is_null($table_obj->auto_inc_col)) {
-                        $table_obj->auto_inc_col = $col_name;
-                    } else {
-                        return $this->throwError(
-                                  DB_TABLE_DATABASE_ERR_XML_MULT_AUTO_INC);
-                    }
-                }
-                $table_obj->col[$col_name] = $def;
-            }
-        
-            // Add indices 
-            foreach ($declaration->index as $index) {
-                if (isset($index->name)) {
-                    $name = (string) $index->name;
-                } else {
-                    $name = null;
-                }
-                $def = array();
-                if (isset($index->primary)) {
-                    $def['type'] = 'primary';
-                } elseif (isset($index->unique)) {
-                    $def['type'] = 'unique';
-                } else {
-                    $def['type'] = 'normal';
-                }
-                foreach ($index->field as $field) {
-                    $def['cols'][] = (string) $field;
-                }
-                if ($name) {
-                    $table_obj->idx[$name] = $def;
-                } else {
-                    $table_obj->idx[] = $def;
-                }
-            }
-
-            // Add table object to database object
-            $database_obj->addTable($table_obj);
-
-            // Foreign key references
-            foreach ($declaration->foreign as $foreign) {
-                if (isset($foreign->name)) {
-                    $name = (string) $foreign->name;
-                } else {
-                    $name = null;
-                }
-                $fkey = array();
-                foreach ($foreign->field as $field) {
-                    $fkey[] = (string) $field;
-                }
-                if (count($fkey) == 1) {
-                    $fkey = $fkey[0];
-                }
-                $rtable = (string) $foreign->references->table;
-                if (isset($foreign->references->field)) {
-                    $rkey = array();
-                    foreach ($foreign->references->field as $field) {
-                        $rkey[] = (string) $field;
-                    }
-                    if (count($rkey)==1) {
-                        $rkey = $rkey[0];
-                    }
-                } else {
-                    $rkey = null;
-                }
-                if (isset($foreign->ondelete)) {
-                    $on_delete = (string) $foreign->ondelete;
-                } else {
-                    $on_delete = null;
-                }
-                if (isset($foreign->onupdate)) {
-                    $on_update = (string) $foreign->onupdate;
-                } else {
-                    $on_update = null;
-                }
-
-                // Add reference definition to $ref array
-                $def = array();
-                $def['fkey'] = $fkey;
-                $def['rkey'] = $rkey;
-                $def['on_delete'] = $on_delete;
-                $def['on_update'] = $on_update;
-                if (!isset($ref[$table_name])) {
-                    $ref[$table_name] = array();
-                }
-                $ref[$table_name][$rtable] = $def;
-
-            }
-
-            // Release variable $table_obj to refer to another table
-            unset($table_obj);
-        }
-
-        // Add all references to database object
-        foreach ($ref as $ftable => $list) {
-            foreach ($list as $rtable => $def) {
-                $fkey = $def['fkey'];
-                $rkey = $def['rkey'];
-                $on_delete = $def['on_delete'];
-                $on_update = $def['on_update'];
-                $database_obj->addRef($ftable, $fkey, $rtable, $rkey,
-                                      $on_delete, $on_update);
-            }
-        }
-
-        return $database_obj;
-    }
-
-    // }}}
-
-    // }}}
-}
-
-// }}}
-
-/* Local variables:
- * tab-width: 4
- * c-basic-offset: 4
- * c-hanging-comment-ender-p: nil
- * End:
- */
-
-?>
diff --git a/civicrm/packages/DB/Table/Date.php b/civicrm/packages/DB/Table/Date.php
deleted file mode 100644
index ae01dfba81..0000000000
--- a/civicrm/packages/DB/Table/Date.php
+++ /dev/null
@@ -1,195 +0,0 @@
-<?php
-
-/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
-
-/**
- * Generic date handling class for DB_Table.
- * 
- * Stripped down to two essential methods specially for DB_Table from the
- * PEAR Date package by Paul M. Jones <pmjones@php.net>.
- *
- * PHP versions 4 and 5
- *
- * LICENSE:
- * 
- * Copyright (c) 1997-2007, Paul M. Jones <pmjones@php.net>
- *                          David C. Morse <morse@php.net>
- *                          Mark Wiesemann <wiesemann@php.net>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *    * Redistributions of source code must retain the above copyright
- *      notice, this list of conditions and the following disclaimer.
- *    * Redistributions in binary form must reproduce the above copyright
- *      notice, this list of conditions and the following disclaimer in the 
- *      documentation and/or other materials provided with the distribution.
- *    * The names of the authors may not be used to endorse or promote products 
- *      derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * @category Database
- * @package  DB_Table
- * @author   Baba Buehler <baba@babaz.com>
- * @author   Pierre-Alain Joye <pajoye@php.net>
- * @license  http://opensource.org/licenses/bsd-license.php New BSD License
- * @version  CVS: $Id: Date.php,v 1.3 2007/12/13 16:52:14 wiesemann Exp $
- * @link     http://pear.php.net/package/DB_Table
- */
-
-/**
- * Generic date handling class for DB_Table.
- *
- * @category Database
- * @package  DB_Table
- * @author   Baba Buehler <baba@babaz.com>
- * @author   Pierre-Alain Joye <pajoye@php.net>
- * @version  Release: 1.5.6
- * @link     http://pear.php.net/package/DB_Table
- */
-class DB_Table_Date {
-	
-    /**
-     * the year
-     * @var int
-     */
-    var $year;
-    /**
-     * the month
-     * @var int
-     */
-    var $month;
-    /**
-     * the day
-     * @var int
-     */
-    var $day;
-    /**
-     * the hour
-     * @var int
-     */
-    var $hour;
-    /**
-     * the minute
-     * @var int
-     */
-    var $minute;
-    /**
-     * the second
-     * @var int
-     */
-    var $second;
-    /**
-     * the parts of a second
-     * @var float
-     */
-    var $partsecond;
-    
-    /**
-     * Constructor
-     *
-     * Creates a new DB_Table_Date Object. The date should be near to
-     * ISO 8601 format.
-     *
-     * @access public
-     * @param string $date A date in ISO 8601 format.
-     */
-    function __construct($date)
-    {
-		// This regex is very loose and accepts almost any butchered
-		// format you could throw at it.  e.g. 2003-10-07 19:45:15 and
-		// 2003-10071945:15 are the same thing in the eyes of this
-		// regex, even though the latter is not a valid ISO 8601 date.
-		preg_match('/^(\d{4})-?(\d{2})-?(\d{2})([T\s]?(\d{2}):?(\d{2}):?(\d{2})(\.\d+)?(Z|[\+\-]\d{2}:?\d{2})?)?$/i', $date, $regs);
-		$this->year       = $regs[1];
-		$this->month      = $regs[2];
-		$this->day        = $regs[3];
-		$this->hour       = isset($regs[5])?$regs[5]:0;
-		$this->minute     = isset($regs[6])?$regs[6]:0;
-		$this->second     = isset($regs[7])?$regs[7]:0;
-		$this->partsecond = isset($regs[8])?(float)$regs[8]:(float)0;
-
-		// if an offset is defined, convert time to UTC
-		// Date currently can't set a timezone only by offset,
-		// so it has to store it as UTC
-		if (isset($regs[9])) {
-			$this->toUTCbyOffset($regs[9]);
-		}
-    }
-    
-    
-    /**
-     *  Date pretty printing, similar to strftime()
-     *
-     *  Formats the date in the given format, much like
-     *  strftime().  Most strftime() options are supported.<br><br>
-     *
-     *  formatting options:<br><br>
-     *
-     *  <code>%Y  </code>  year as decimal including century (range 0000 to 9999) <br>
-     *  <code>%m  </code>  month as decimal number (range 01 to 12) <br>
-     *  <code>%d  </code>  day of month (range 00 to 31) <br>
-     *  <code>%H  </code>  hour as decimal number (00 to 23) <br>
-     *  <code>%M  </code>  minute as a decimal number (00 to 59) <br>
-     *  <code>%S  </code>  seconds as a decimal number (00 to 59) <br>
-     *  <code>%%  </code>  literal '%' <br>
-     * <br>
-     *
-     * @access public
-     * @param string format the format string for returned date/time
-     * @return string date/time in given format
-     */
-    function format($format)
-    {
-        $output = "";
-
-        for($strpos = 0; $strpos < strlen($format); $strpos++) {
-            $char = substr($format,$strpos,1);
-            if ($char == "%") {
-                $nextchar = substr($format,$strpos + 1,1);
-                switch ($nextchar) {
-                case "Y":
-                    $output .= $this->year;
-                    break;
-                case "m":
-                    $output .= sprintf("%02d",$this->month);
-                    break;
-                case "d":
-                    $output .= sprintf("%02d",$this->day);
-                    break;
-                case "H":
-                    $output .= sprintf("%02d", $this->hour);
-                    break;
-                case "M":
-                    $output .= sprintf("%02d",$this->minute);
-                    break;
-                case "S":
-                    $output .= sprintf("%02d", $this->second);
-                    break;
-                default:
-                    $output .= $char.$nextchar;
-                }
-                $strpos++;
-            } else {
-                $output .= $char;
-            }
-        }
-        return $output;
-
-    }
-}
-
-?>
diff --git a/civicrm/packages/DB/Table/Generator.php b/civicrm/packages/DB/Table/Generator.php
deleted file mode 100644
index 80de2b5d27..0000000000
--- a/civicrm/packages/DB/Table/Generator.php
+++ /dev/null
@@ -1,1332 +0,0 @@
-<?php
-
-/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
-
-/**
- * DB_Table_Generator - Generates DB_Table subclass skeleton code
- * 
- * Parts of this class were adopted from the DB_DataObject PEAR package.
- * 
- * PHP versions 4 and 5
- *
- * LICENSE:
- * 
- * Copyright (c) 1997-2007, Paul M. Jones <pmjones@php.net>
- *                          Alan Knowles <alan@akbkhome.com>
- *                          David C. Morse <morse@php.net>
- *                          Mark Wiesemann <wiesemann@php.net>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *    * Redistributions of source code must retain the above copyright
- *      notice, this list of conditions and the following disclaimer.
- *    * Redistributions in binary form must reproduce the above copyright
- *      notice, this list of conditions and the following disclaimer in the 
- *      documentation and/or other materials provided with the distribution.
- *    * The names of the authors may not be used to endorse or promote products 
- *      derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * @category Database
- * @package  DB_Table
- * @author   Alan Knowles <alan@akbkhome.com> 
- * @author   David C. Morse <morse@php.net>
- * @license  http://opensource.org/licenses/bsd-license.php New BSD License
- * @version  CVS: $Id: Generator.php,v 1.17 2008/05/14 18:36:27 wiesemann Exp $
- * @link     http://pear.php.net/package/DB_Table
- */
-
-// {{{ Includes
-
-/**#@+
- * Include basic classes
- */
-/**
- * The PEAR class (used for errors)
- */
-require_once 'PEAR.php';
-
-/**
- * DB_Table table abstraction class
- */
-require_once 'DB/Table.php';
-
-/**
- * DB_Table_Manager class (used to reverse engineer indices)
- */
-require_once 'DB/Table/Manager.php';
-/**#@-*/
-
-// }}}
-// {{{ Error code constants
-
-/**#@+
- * Error codes
- */
-/**
- * Parameter is not a DB/MDB2 object
- */
-define('DB_TABLE_GENERATOR_ERR_DB_OBJECT', -301);
-
-/**
- * Parameter is not a DB/MDB2 object
- */
-define('DB_TABLE_GENERATOR_ERR_INDEX_COL', -302);
-
-/**
- * Error while creating file/directory
- */
-define('DB_TABLE_GENERATOR_ERR_FILE', -303);
-/**#@-*/
-
-// }}}
-// {{{ Error messages
-/**
- * US-English default error messages.
- */
-$GLOBALS['_DB_TABLE_GENERATOR']['default_error'] = array(
-        DB_TABLE_GENERATOR_ERR_DB_OBJECT =>
-            'Invalid DB/MDB2 object parameter. Function',
-        DB_TABLE_GENERATOR_ERR_INDEX_COL =>
-            'Index column is not a valid column name. Index column',
-        DB_TABLE_GENERATOR_ERR_FILE =>
-            'Can\'t create file/directory:'
-);
-
-// merge default and user-defined error messages
-if (!isset($GLOBALS['_DB_TABLE_GENERATOR']['error'])) {
-    $GLOBALS['_DB_TABLE_GENERATOR']['error'] = array();
-}
-foreach ($GLOBALS['_DB_TABLE_GENERATOR']['default_error'] as $code => $message) {
-    if (!array_key_exists($code, $GLOBALS['_DB_TABLE_GENERATOR']['error'])) {
-        $GLOBALS['_DB_TABLE_GENERATOR']['error'][$code] = $message;
-    }
-}
-
-// }}}
-// {{{ class DB_Table_Generator
-
-/**
- * class DB_Table_Generator - Generates DB_Table subclass skeleton code
- *
- * This class generates the php code necessary to use the DB_Table
- * package to interact with an existing database. This requires the
- * generation of a skeleton subclass definition be generated for each
- * table in the database, in which the $col, $idx, and $auto_inc_col
- * properties are constructed using a table schema that is obtained
- * by querying the database.
- *
- * The class can also generate a file, named 'Database.php' by default,
- * that includes (require_once) each of the table subclass definitions,
- * instantiates one object of each DB_Table subclass (i.e., one object
- * for each table), instantiates a parent DB_Table_Database object,
- * adds all the tables to that parent, attempts to guess foreign key
- * relationships between tables based on the column names, and adds
- * the inferred references to the parent object.
- *
- * All of the code is written to a directory whose path is given by
- * the property $class_write_path. By default, this is the current
- * directory.  By default, the name of the class constructed for a
- * table named 'thing' is "Thing_Table". That is, the class name is
- * the table name, with the first letter upper case, with a suffix
- * '_Table'.  This suffix can be changed by setting the $class_suffix
- * property. The file containing a subclass definition is the
- * subclass name with a php extension, e.g., 'Thing_Table.php'. The
- * object instantiated from that subclass is the same as the table
- * name, with no suffix, e.g., 'thing'.
- *
- * To generate the code for all of the tables in a database named
- * $database, instantiate a MDB2 or DB object named $db that connects
- * to the database of interest, and execute the following code:
- * <code>
- *     $generator = new DB_Table_Generator($db, $database);
- *     $generator->class_write_path = $class_write_path;
- *     $generator->generateTableClassFiles();
- *     $generator->generateDatabaseFile();
- * </code>
- * Here $class_write_path should be the path (without a trailing
- * separator) to a directory in which all of the code should be
- * written. If this directory does not exist, it will be created.
- * If the directory does already exist, exising files will not
- * be overwritten. If $class_write_path is not set (i.e., if this
- * line is omitted) all the code will be written to the current
- * directory.  If ->generateDatabaseFile() is called, it must be
- * called after ->generateTableClassFiles().
- *
- * By default, ->generateTableClassFiles() and ->generateDatabaseFiles()
- * generate code for all of the tables in the current database. To
- * generate code for a specified list of tables, set the value of the
- * public $tables property to a sequential list of table names before
- * calling either of these methods. Code can be generated for three
- * tables named 'table1', 'table2', and 'table3' as follows:
- * <code>
- *     $generator = new DB_Table_Generator($db, $database);
- *     $generator->class_write_path = $class_write_path;
- *     $generator->tables = array('table1', 'table2', 'table3');
- *     $generator->generateTableClassFiles();
- *     $generator->generateDatabaseFile();
- * </code>
- * If the $tables property is not set to a non-null value prior
- * to calling ->generateTableClassFiles() then, by default, the
- * database is queried for a list of all table names, by calling the
- * ->getTableNames() method from within ->generateTableClassFiles().
- *
- * PHP version 4 and 5
- *
- * @category Database
- * @package  DB_Table
- * @author   Alan Knowles <alan@akbkhome.com> 
- * @author   David C. Morse <morse@php.net>
- * @license  http://www.gnu.org/copyleft/lesser.html LGPL
- * @version  Release: 1.5.6
- * @link     http://pear.php.net/package/DB_Table
- */
-class DB_Table_Generator
-{
-
-    // {{{ Properties
-
-    /**
-     * Name of the database
-     *
-     * @var string
-     * @access public
-     */
-    var $name = null;
-
-    /**
-     * The PEAR DB/MDB2 object that connects to the database.
-     *
-     * @var object
-     * @access private
-     */
-    var $db = null;
-
-    /**
-     * The backend type. May have values 'db' or 'mdb2'
-     *
-     * @var string
-     * @access private
-     */
-    var $backend = null;
-
-    /**
-    * If there is an error on instantiation, this captures that error.
-    *
-    * This property is used only for errors encountered in the constructor
-    * at instantiation time.  To check if there was an instantiation error...
-    *
-    * <code>
-    *     $obj =& new DB_Table_Generator();
-    *     if ($obj->error) {
-    *         // ... error handling code here ...
-    *     }
-    * </code>
-    *
-    * @var object PEAR_Error
-    * @access public
-    */
-    var $error = null;
-
-    /**
-     * Numerical array of table name strings
-     *
-     * @var array
-     * @access public
-     */
-    var $tables = array();
-
-    /**
-     * Class being extended (DB_Table or generic subclass)
-     *
-     * @var string
-     * @access public
-     */
-    var $extends = 'DB_Table';
-
-    /**
-     * Path to definition of the class $this->extends
-     *
-     * @var string
-     * @access public
-     */
-    var $extends_file = 'DB/Table.php';
-
-    /**
-     * Suffix to add to table names to obtain corresponding class names
-     *
-     * @var string
-     * @access public
-     */
-    var $class_suffix = "_Table";
-
-    /**
-     * Path to directory in which subclass definitions should be written
-     *
-     * Value should not include a trailing "/".
-     *
-     * @var string
-     * @access public
-     */
-    var $class_write_path = '';
-
-    /**
-     * Include path to subclass definition files from database file
-     *
-     * Used to create require_once statements in the Database.php file,
-     * which is in the same directory as the class definition files. Leave
-     * as empty string if your PHP include_path contains ".". The value
-     * should not include a trailing "/", which is added automatically
-     * to values other than the empty string.
-     *
-     * @var string
-     * @access public
-     */
-    var $class_include_path = '';
-
-    /**
-     * Array of column definitions
-     *
-     * Array $this->col[table_name][column_name] = column definition.
-     * Column definition is an array with the same format as the $col
-     * property of a DB_Table object
-     *
-     * @var array
-     * @access public
-     */
-    var $col = array();
-
-    /**
-     * Array of index/constraint definitions.
-     *
-     * Array $this->idx[table_table][index_name] = Index definition.
-     * The index definition is an array with the same format as the
-     * DB_Table $idx property property array.
-     *
-     * @var array
-     * @access public
-     */
-     var $idx = array();
-
-    /**
-     * Array of auto_increment column names
-     *
-     * Array $this->auto_inc_col[table_name] = auto-increment column
-     *
-     * @var array
-     * @access public
-     */
-     var $auto_inc_col = array();
-
-    /**
-     * Array of primary keys
-     *
-     * @var array
-     * @access public
-     */
-     var $primary_key = array();
-
-    /**
-     * MDB2 'idxname_format' option, format of index names
-     *
-     * For use in printf() formatting. Use '%s' to use index names as
-     * returned by getTableConstraints/Indexes, and '%s_idx' to add an
-     * '_idx' suffix. For MySQL, use the default value '%'.
-     *
-     * @var string
-     * @access public
-     */
-    var $idxname_format = '%s';
-
-    // }}}
-    // {{{ function DB_Table_Generator(&$db, $name)
-
-    /**
-     * Constructor
-     *
-     * If an error is encountered during instantiation, the error
-     * message is stored in the $this->error property of the resulting
-     * object. See $error property docblock for a discussion of error
-     * handling.
-     *
-     * @param object &$db  DB/MDB2 database connection object
-     * @param string $name database name string
-     *
-     * @return object DB_Table_Generator
-     * @access public
-     */
-    function __construct(&$db, $name)
-    {
-        // Is $db an DB/MDB2 object or null?
-        if (is_a($db, 'db_common')) {
-            $this->backend = 'db';
-        } elseif (is_a($db, 'mdb2_driver_common')) {
-            $this->backend = 'mdb2';
-        } else {
-            $this->error =&
-                DB_Table_Generator::throwError(DB_TABLE_GENERATOR_ERR_DB_OBJECT,
-                'DB_Table_Generator');
-            return;
-        }
-        $this->db   =& $db;
-        $this->name =  $name;
-
-    }
-
-    // }}}
-    // {{{ function &throwError($code, $extra = null)
-
-    /**
-     * Specialized version of throwError() modeled on PEAR_Error.
-     *
-     * Throws a PEAR_Error with a DB_Table_Generator error message based
-     * on a DB_Table_Generator constant error code.
-     *
-     * @param string $code  A DB_Table_Generator error code constant.
-     * @param string $extra Extra text for the error (in addition to the
-     *                       regular error message).
-     *
-     * @return object PEAR_Error
-     * @access public
-     * @static
-     */
-    function &throwError($code, $extra = null)
-    {
-        // get the error message text based on the error code
-        $text = 'DB_TABLE_GENERATOR ERROR - ' . "\n"
-              . $GLOBALS['_DB_TABLE_GENERATOR']['error'][$code];
-
-        // add any additional error text
-        if ($extra) {
-            $text .= ' ' . $extra;
-        }
-
-        // done!
-        $error = PEAR::throwError($text, $code);
-        return $error;
-    }
-
-    // }}}
-    // {{{ function setErrorMessage($code, $message = null)
-
-    /**
-     * Overwrites one or more error messages, e.g., to internationalize them.
-     *
-     * @param mixed  $code    If string, the error message with code $code will be
-     *                        overwritten by $message. If array, each key is a
-     *                        code and each value is a new message.
-     * @param string $message Only used if $key is not an array.
-     *
-     * @return void
-     * @access public
-     */
-    function setErrorMessage($code, $message = null)
-    {
-        if (is_array($code)) {
-            foreach ($code as $single_code => $single_message) {
-                $GLOBALS['_DB_TABLE_GENERATOR']['error'][$single_code]
-                    = $single_message;
-            }
-        } else {
-            $GLOBALS['_DB_TABLE_GENERATOR']['error'][$code] = $message;
-        }
-    }
-
-    // }}}
-    // {{{ function getTableNames()
-
-    /**
-     * Gets a list of tables from the database
-     *
-     * Upon successful completion, names are stored in the $this->tables
-     * array. If an error is encountered, a PEAR Error is returned, and
-     * $this->tables is reset to null.
-     *
-     * @return mixed true on success, PEAR Error on failure
-     * @access public
-     */
-    function getTableNames()
-    {
-
-        if ($this->backend == 'db') {
-            // try getting a list of schema tables first. (postgres)
-            $this->db->expectError(DB_ERROR_UNSUPPORTED);
-            $this->tables = $this->db->getListOf('schema.tables');
-            $this->db->popExpect();
-            if (PEAR::isError($this->tables)) {
-                // try a list of tables, not qualified by 'schema'
-                $this->db->expectError(DB_ERROR_UNSUPPORTED);
-                $this->tables = $this->db->getListOf('tables');
-                $this->db->popExpect();
-            }
-        } else {
-            // Temporarily change 'portability' MDB2 option
-            $portability = $this->db->getOption('portability');
-            $this->db->setOption('portability',
-                MDB2_PORTABILITY_ALL ^ MDB2_PORTABILITY_FIX_CASE);
-
-            $this->db->loadModule('Manager');
-            $this->db->loadModule('Reverse');
-
-            // Get list of tables
-            $this->tables = $this->db->manager->listTables();
-
-            // Restore original MDB2 'portability'
-            $this->db->setOption('portability', $portability);
-        }
-        if (PEAR::isError($this->tables)) {
-            $error        = $this->tables;
-            $this->tables = null;
-            return $error;
-        } else {
-            $this->tables = array_map(array($this, 'tableName'),
-                                      $this->tables);
-            return true;
-        }
-    }
-
-    // }}}
-    // {{{ function getTableDefinition($table)
-
-    /**
-     * Gets column and index definitions by querying database
-     *
-     * Upon return, column definitions are stored in $this->col[$table],
-     * and index definitions in $this->idx[$table].
-     *
-     * Calls DB/MDB2::tableInfo() for column definitions, and uses
-     * the DB_Table_Manager class to obtain index definitions.
-     *
-     * @param string $table name of table
-     *
-     * @return mixed true on success, PEAR Error on failure
-     * @access public
-     */
-    function getTableDefinition($table)
-    {
-        /*
-        // postgres strip the schema bit from the
-        if (!empty($options['generator_strip_schema'])) {
-            $bits = explode('.', $table,2);
-            $table = $bits[0];
-            if (count($bits) > 1) {
-                $table = $bits[1];
-            }
-        }
-        */
-
-        if ($this->backend == 'db') {
-
-            $defs = $this->db->tableInfo($table);
-            if (PEAR::isError($defs)) {
-                return $defs;
-            }
-            $this->columns[$table] = $defs;
-
-        } else {
-
-            // Temporarily change 'portability' MDB2 option
-            $portability = $this->db->getOption('portability');
-            $this->db->setOption('portability',
-                MDB2_PORTABILITY_ALL ^ MDB2_PORTABILITY_FIX_CASE);
-
-            $this->db->loadModule('Manager');
-            $this->db->loadModule('Reverse');
-
-            // Columns
-            $defs = $this->db->reverse->tableInfo($table);
-            if (PEAR::isError($defs)) {
-                return $defs;
-            }
-
-            // rename the 'length' key, so it matches db's return.
-            foreach ($defs as $k => $v) {
-                if (isset($defs[$k]['length'])) {
-                    $defs[$k]['len'] = $defs[$k]['length'];
-                }
-            }
-
-            $this->columns[$table] = $defs;
-
-            // Temporarily set 'idxname_format' MDB2 option to $this->idx_format
-            $idxname_format = $this->db->getOption('idxname_format');
-            $this->db->setOption('idxname_format', $this->idxname_format);
-        }
-
-        // Default - no auto increment column
-        $this->auto_inc_col[$table] = null;
-
-        // Loop over columns to create $this->col[$table]
-        $this->col[$table] = array();
-        foreach ($defs as $t) {
-
-            $name = $t['name'];
-            $col  = array();
-
-            switch (strtoupper($t['type'])) {
-            case 'INT2':     // postgres
-            case 'TINYINT':
-            case 'TINY':     //mysql
-            case 'SMALLINT':
-                $col['type'] = 'smallint';
-                break;
-            case 'INT4':      // postgres
-            case 'SERIAL4':   // postgres
-            case 'INT':
-            case 'SHORT':     // mysql
-            case 'INTEGER':
-            case 'MEDIUMINT':
-            case 'YEAR':
-                $col['type'] = 'integer';
-                break;
-            case 'BIGINT':
-            case 'LONG':    // mysql
-            case 'INT8':    // postgres
-            case 'SERIAL8': // postgres
-                $col['type'] = 'bigint';
-                break;
-            case 'REAL':
-            case 'NUMERIC':
-            case 'NUMBER': // oci8
-            case 'FLOAT':  // mysql
-            case 'FLOAT4': // real (postgres)
-                $col['type'] = 'single';
-                break;
-            case 'DOUBLE':
-            case 'DOUBLE PRECISION': // double precision (firebird)
-            case 'FLOAT8':           // double precision (postgres)
-                $col['type'] = 'double';
-                break;
-            case 'DECIMAL':
-            case 'MONEY':   // mssql and maybe others
-                $col['type'] = 'decimal';
-                break;
-            case 'BIT':
-            case 'BOOL':
-            case 'BOOLEAN':
-                $col['type'] = 'boolean';
-                break;
-            case 'STRING':
-            case 'CHAR':
-                $col['type'] = 'char';
-                break;
-            case 'VARCHAR':
-            case 'VARCHAR2':
-            case 'TINYTEXT':
-                $col['type'] = 'varchar';
-                break;
-            case 'TEXT':
-            case 'MEDIUMTEXT':
-            case 'LONGTEXT':
-                $col['type'] = 'clob';
-                break;
-            case 'DATE':
-                $col['type'] = 'date';
-                break;
-            case 'TIME':
-                $col['type'] = 'time';
-                break;
-            case 'DATETIME':  // mysql
-            case 'TIMESTAMP':
-                $col['type'] = 'timestamp';
-                break;
-            case 'ENUM':
-            case 'SET':         // not really but oh well
-            case 'TIMESTAMPTZ': // postgres
-            case 'BPCHAR':      // postgres
-            case 'INTERVAL':    // postgres (eg. '12 days')
-            case 'CIDR':        // postgres IP net spec
-            case 'INET':        // postgres IP
-            case 'MACADDR':     // postgress network Mac address.
-            case 'INTEGER[]':   // postgres type
-            case 'BOOLEAN[]':   // postgres type
-                $col['type'] = 'varchar';
-                break;
-            default:
-                $col['type'] = $t['type'] . ' (Unknown type)';
-                break;
-            }
-
-            // Set length and scope if required
-            if (in_array($col['type'], array('char','varchar','decimal'))) {
-                if (isset($t['len'])) {
-                    $col['size'] = (int) $t['len'];
-                } elseif ($col['type'] == 'varchar') {
-                    $col['size'] = 255; // default length
-                } elseif ($col['type'] == 'char') {
-                    $col['size'] = 128; // default length
-                } elseif ($col['type'] == 'decimal') {
-                    $col['size'] = 15; // default length
-                }
-                if ($col['type'] == 'decimal') {
-                    $col['scope'] = 2;
-                }
-            }
-            if (isset($t['notnull'])) {
-                if ($t['notnull']) {
-                    $col['require'] = true;
-                }
-            }
-            if (isset($t['autoincrement'])) {
-                $this->auto_inc_col[$table] = $name;
-            }
-            if (isset($t['flags'])) {
-                $flags = $t['flags'];
-                if (preg_match('/not[ _]null/i', $flags)) {
-                    $col['require'] = true;
-                }
-                if (preg_match("/(auto_increment|nextval\()/i", $flags)) {
-                    $this->auto_inc_col[$table] = $name;
-                }
-            }
-            $require = isset($col['require']) ? $col['require'] : false;
-            if ($require) {
-                if (isset($t['default'])) {
-                    $default = $t['default'];
-                    $type    = $col['type'];
-                    if (in_array($type,
-                                 array('smallint', 'integer', 'bigint'))) {
-                        $default = (int) $default;
-                    } elseif (in_array($type, array('single', 'double'))) {
-                        $default = (float) $default;
-                    } elseif ($type == 'boolean') {
-                        $default = (int) $default ? 1 : 0;
-                    }
-                    $col['default'] = $default;
-                }
-            }
-            $this->col[$table][$name] = $col;
-
-        }
-
-        // Make array with lower case column array names as keys
-        $col_lc = array();
-        foreach ($this->col[$table] as $name => $def) {
-            $name_lc          = strtolower($name);
-            $col_lc[$name_lc] = $name;
-        }
-
-        // Constraints/Indexes
-        $DB_indexes = DB_Table_Manager::getIndexes($this->db, $table);
-        if (PEAR::isError($DB_indexes)) {
-            return $DB_indexes;
-        }
-
-        // Check that index columns correspond to valid column names.
-        // Try to correct problems with capitalization, if necessary.
-        foreach ($DB_indexes as $type => $indexes) {
-            foreach ($indexes as $name => $fields) {
-                foreach ($fields as $key => $field) {
-
-                    // If index column is not a valid column name
-                    if (!array_key_exists($field, $this->col[$table])) {
-
-                        // Try a case-insensitive match
-                        $field_lc = strtolower($field);
-                        if (isset($col_lc[$field_lc])) {
-                            $correct = $col_lc[$field_lc];
-                            $DB_indexes[$type][$name][$key]
-                                 = $correct;
-                        } else {
-                            $code   =  DB_TABLE_GENERATOR_ERR_INDEX_COL;
-                            $return =&
-                                DB_Table_Generator::throwError($code, $field);
-                        }
-
-                    }
-                }
-            }
-        }
-
-        // Generate index definitions, if any, as php code
-        $n_idx = 0;
-        $u     = array();
-
-        $this->idx[$table]         = array();
-        $this->primary_key[$table] = null;
-        foreach ($DB_indexes as $type => $indexes) {
-            if (count($indexes) > 0) {
-                foreach ($indexes as $name => $fields) {
-                    $this->idx[$table][$name]         = array();
-                    $this->idx[$table][$name]['type'] = $type;
-                    if (count($fields) == 1) {
-                        $key = $fields[0];
-                    } else {
-                        $key = array();
-                        foreach ($fields as $value) {
-                            $key[] = $value;
-                        }
-                    }
-                    $this->idx[$table][$name]['cols'] = $key;
-                    if ($type == 'primary') {
-                        $this->primary_key[$table] = $key;
-                    }
-                }
-            }
-        }
-
-        if ($this->backend == 'mdb2') {
-            // Restore original MDB2 'idxname_format' and 'portability'
-            $this->db->setOption('idxname_format', $idxname_format);
-            $this->db->setOption('portability', $portability);
-        }
-
-        return true;
-    }
-
-    // }}}
-    // {{{ function buildTableClass($table, $indent = '')
-
-    /**
-     * Returns one skeleton DB_Table subclass definition, as php code
-     *
-     * The returned subclass definition string contains values for the
-     * $col (column), $idx (index) and $auto_inc_col properties, with
-     * no method definitions.
-     *
-     * @param string $table  name of table
-     * @param string $indent string of whitespace for base indentation
-     *
-     * @return string skeleton DB_Table subclass definition
-     * @access public
-     */
-    function buildTableClass($table, $indent = '')
-    {
-        $s   = array();
-        $idx = array();
-        $u   = array();
-        $v   = array();
-        $l   = 0;
-
-        $s[]     = $indent . '/*';
-        $s[]     = $indent . ' * Create the table object';
-        $s[]     = $indent . ' */';
-        $s[]     = $indent . 'class ' . $this->className($table)
-                 . " extends {$this->extends} {\n";
-        $indent .= '    ';
-
-        $s[]     = $indent . '/*';
-        $s[]     = $indent . ' * Column definitions';
-        $s[]     = $indent . ' */';
-        $s[]     = $indent . 'var $col = array(' . "\n";
-        $indent .= '    ';
-
-        // Begin loop over columns
-        foreach ($this->col[$table] as $name => $col) {
-
-            // Generate DB_Table column definitions as php code
-            $t  = array();
-            $t1 = array();
-            $l1 = 0;
-
-            $name     = $indent . "'{$name}'";
-            $l        = max($l, strlen($name));
-            $v[$name] = "array(\n";
-            $indent  .= '    ';
-            foreach ($col as $key => $value) {
-                if (is_string($value)) {
-                    $value = "'{$value}'";
-                } elseif (is_bool($value)) {
-                    $value = $value ? 'true' : 'false';
-                } else {
-                    $value = (string) $value;
-                }
-                $l1   = max($l1, strlen($key) + 2);
-                $t1[] = array("'{$key}'", $value) ;
-            }
-            foreach ($t1 as $value) {
-                $t[] = $indent . str_pad($value[0], $l1, ' ', STR_PAD_RIGHT)
-                     . ' => ' . $value[1];
-            }
-            $v[$name] .= implode(",\n", $t) . "\n";
-            $indent    = substr($indent, 0, -4);
-            $v[$name] .= $indent . ')';
-        } //end loop over columns
-
-        foreach ($v as $key => $value) {
-            $u[] = str_pad($key, $l, ' ', STR_PAD_RIGHT)
-                 . ' => ' . $value;
-        }
-        $s[]    = implode(",\n\n", $u) . "\n";
-        $indent = substr($indent, 0, -4);
-        $s[]    = $indent . ");\n";
-
-        // Generate index definitions, if any, as php code
-        if (count($this->idx[$table]) > 0) {
-            $u = array();
-            $v = array();
-            $l = 0;
-
-            $s[]     = $indent . '/*';
-            $s[]     = $indent . ' * Index definitions';
-            $s[]     = $indent . ' */';
-            $s[]     = $indent . 'var $idx = array(' . "\n";
-            $indent .= '    ';
-            foreach ($this->idx[$table] as $name => $def) {
-                $type      = $def['type'];
-                $cols      = $def['cols'];
-                $name      = $indent . "'{$name}'";
-                $l         = max($l, strlen($name));
-                $v[$name]  = "array(\n";
-                $indent   .= '    ';
-                $v[$name] .= $indent . "'type' => '{$type}',\n";
-                if (is_array($cols)) {
-                    $v[$name] .= $indent . "'cols' => array(\n";
-                    $indent   .= '    ';
-                    $t         = array();
-                    foreach ($cols as $value) {
-                        $t[] = $indent . "'{$value}'";
-                    }
-                    $v[$name] .= implode(",\n", $t) . "\n";
-                    $indent    = substr($indent, 0, -4);
-                    $v[$name] .= $indent . ")\n";
-                } else {
-                    $v[$name] = $v[$name] . $indent . "'cols' => '{$cols}'\n";
-                }
-                $indent    = substr($indent, 0, -4);
-                $v[$name] .= $indent . ")";
-            }
-
-            foreach ($v as $key => $value) {
-                $u[] = str_pad($key, $l, ' ', STR_PAD_RIGHT)
-                     . ' => ' . $value;
-            }
-            $s[]    = implode(",\n\n", $u) . "\n";
-            $indent = substr($indent, 0, -4);
-            $s[]    = $indent . ");\n";
-        } // end index generation
-
-        // Write auto_inc_col
-        if (isset($this->auto_inc_col[$table])) {
-            $s[] = $indent . '/*';
-            $s[] = $indent . ' * Auto-increment declaration';
-            $s[] = $indent . ' */';
-            $s[] = $indent . 'var $auto_inc_col = '
-                           . "'{$this->auto_inc_col[$table]}';\n";
-        }
-        $indent = substr($indent, 0, -4);
-        $s[]    = $indent . '}';
-
-        // Implode and return lines of class definition
-        return implode("\n", $s) . "\n";
-
-    }
-
-    // }}}
-    // {{{ function buildTableClasses()
-
-    /**
-     * Returns a string containing all table class definitions in one file
-     *
-     * The returned string contains the contents of a single php file with
-     * definitions of DB_Table subclasses associated with all of the tables
-     * in $this->tables. If $this->tables is initially null, method
-     * $this->getTableNames() is called internally to generate a list of
-     * table names.
-     *
-     * The returned string includes the opening and closing <?php and ?>
-     * script elements, and the require_once line needed to include the
-     * $this->extend_class (i.e., DB_Table or a subclass) that is being
-     * extended. To use, write this string to a new php file.
-     *
-     * Usage:
-     * <code>
-     *     $generator = new DB_Table_Generator($db, $database);
-     *     echo $generator->buildTablesClasses();
-     * </code>
-     *
-     * @return mixed a string with all table class definitions,
-     *                PEAR Error on failure
-     * @access public
-     */
-    function buildTableClasses()
-    {
-        // If $this->tables is null, call getTableNames()
-        if (!$this->tables) {
-            $return = $this->getTableNames();
-            if (PEAR::isError($return)) {
-                return $return;
-            }
-        }
-
-        $s   = array();
-        $s[] = '<?php';
-        $s[] = '/*';
-        $s[] = ' * Include basic class';
-        $s[] = ' */';
-        $s[] = "require_once '{$this->extends_file}';\n";
-        foreach ($this->tables as $table) {
-            $return = $this->getTableDefinition($table);
-            if (PEAR::isError($return)) {
-                return $return;
-            }
-            $s[] = $this->buildTableClass($table) . "\n";
-        }
-        $s[] = '?>';
-        return implode("\n", $s);
-    }
-
-    // }}}
-    // {{{ function generateTableClassFiles()
-
-    /**
-     * Writes all table class definitions to separate files
-     *
-     * Usage:
-     * <code>
-     *     $generator = new DB_Table_Generator($db, $database);
-     *     $generator->generateTableClassFiles();
-     * </code>
-     *
-     * @return mixed true on success, PEAR Error on failure
-     * @access public
-     */
-    function generateTableClassFiles()
-    {
-        // If $this->tables is null, call getTableNames()
-        if (!$this->tables) {
-            $return = $this->getTableNames();
-            if (PEAR::isError($return)) {
-                return $return;
-            }
-        }
-
-        // Write all table class definitions to separate files
-        foreach ($this->tables as $table) {
-            $classname = $this->className($table);
-            $filename  = $this->classFileName($classname);
-            $base      = $this->class_write_path;
-            if ($base) {
-                if (!file_exists($base)) {
-                    include_once 'System.php';
-                    if (!@System::mkdir(array('-p', $base))) {
-                        return $this->throwError(DB_TABLE_GENERATOR_ERR_FILE,
-                            $base);
-                    }
-
-                }
-                $filename = "{$base}/{$filename}";
-            }
-            if (!file_exists($filename)) {
-                $s      = array();
-                $s[]    = '<?php';
-                $s[]    = '/*';
-                $s[]    = ' * Include basic class';
-                $s[]    = ' */';
-                $s[]    = "require_once '{$this->extends_file}';\n";
-                $return = $this->getTableDefinition($table);
-                if (PEAR::isError($return)) {
-                    return $return;
-                }
-                $s[] = $this->buildTableClass($table);
-                $s[] = '?>';
-                $s[] = '';
-                $out = implode("\n", $s);
-                if (!$file = @fopen($filename, 'wb')) {
-                    return $this->throwError(DB_TABLE_GENERATOR_ERR_FILE,
-                            $filename);
-                }
-                fputs($file, $out);
-                fclose($file);
-            }
-        }
-
-        return true;
-    }
-
-    // }}}
-    // {{{ function generateDatabaseFile($object_name = null)
-
-    /**
-     * Writes a file to instantiate Table and Database objects
-     *
-     * After successful completion, a file named 'Database.php' will be
-     * have been created in the $this->class_write_path directory. This
-     * file should normally be included in application php scripts. It
-     * can be renamed by the user.
-     *
-     * Usage:
-     * <code>
-     *     $generator = new DB_Table_Generator($db, $database);
-     *     $generator->generateTableClassFiles();
-     *     $generator->generateDatabaseFile();
-     * </code>
-     *
-     * @param string $object_name variable name for DB_Table_Database object
-     *
-     * @return mixed true on success, PEAR Error on failure
-     * @access public
-     */
-    function generateDatabaseFile($object_name = null)
-    {
-        // Set name for DB_Table_Database object
-        if ($object_name) {
-            $object_name = "\${$object_name}";
-        } else {
-            $object_name = '$db'; //default
-        }
-        $backend = strtoupper($this->backend); // 'DB' or 'MDB2'
-
-        if ('DB' == $backend) {
-            $dsn = $this->db->dsn;
-        } else {
-            $dsn = $this->db->getDSN('array');
-        }
-
-        // Create array d[] containing lines of database php file
-        $d   = array();
-        $d[] = '<?php';
-        $d[] = '/*';
-        $d[] = ' * Include basic classes';
-        $d[] = ' */';
-        $d[] = "require_once '{$backend}.php';";
-        $d[] = "require_once 'DB/Table/Database.php';";
-
-        // Require_once statements for subclass definitions
-        foreach ($this->tables as $table) {
-            $classname      = $this->className($table);
-            $class_filename = $this->classFileName($classname);
-            if ($this->class_include_path) {
-                $d[] = 'require_once '
-                     . "'{$this->class_include_path}/{$class_filename}';";
-            } else {
-                $d[] = "require_once '{$class_filename}';";
-            }
-        }
-        $d[] = '';
-
-        $d[] = '/*';
-        $d[] = ' * NOTE: User must uncomment & edit code to create $dsn';
-        $d[] = ' */';
-        $d[] = "//\$phptype  = '{$dsn['phptype']}';";
-        $d[] = "//\$username = '{$dsn['username']}';";
-        $d[] = "//\$password = ''; // put your password here";
-        $d[] = "//\$hostname = '{$dsn['hostspec']}';";
-        $d[] = "//\$database = '{$dsn['database']}';";
-        $d[] = "//\$create   = false; // 'drop', 'safe', 'verify', 'alter'";
-        $d[] = '//$dsn      = "{$phptype}://{$username}:{$password}@{$hostname}'
-             . '/{$database}";';
-        $d[] = '';
-
-        $d[] = '/*';
-        $d[] = " * Instantiate {$backend} connection object \$conn";
-        $d[] = ' */';
-        $d[] = "\$conn =& {$backend}::connect(\$dsn);";
-        $d[] = 'if (PEAR::isError($conn)) {';
-        $d[] = '    echo "Error connecting to database server\n";';
-        $d[] = '    echo $conn->getMessage();';
-        $d[] = '    die;';
-        $d[] = '}';
-        $d[] = '';
-
-        $d[] = '/*';
-        $d[] = ' * Create one instance of each DB_Table subclass';
-        $d[] = ' */';
-        foreach ($this->tables as $table) {
-            $classname = $this->className($table);
-
-            $d[] = "\${$table} = new {$classname}("
-                 . '$conn, ' . "'{$table}'" . ', $create);';
-            $d[] = "if (PEAR::isError(\${$table}->error)) {";
-            $d[] = '    echo "Can\'t create table object.\n";';
-            $d[] = "    echo \${$table}->error->getMessage();";
-            $d[] = '    die;';
-            $d[] = '}';
-
-        }
-        $d[] = '';
-
-        $d[] = '/*';
-        $d[] = ' * Instantiate a parent DB_Table_Database object';
-        $d[] = ' */';
-        $d[] = "{$object_name} = new DB_Table_Database(\$conn, \$database);";
-        $d[] = "if (PEAR::isError({$object_name}->error)) {";
-        $d[] = '    echo "Can\'t create database object.\n";';
-        $d[] = "    echo {$object_name}->error->getMessage();";
-        $d[] = '    die;';
-        $d[] = '}';
-        $d[] = '';
-
-        $d[] = '/*';
-        $d[] = ' * Add DB_Table objects to parent DB_Table_Database object';
-        $d[] = ' */';
-        foreach ($this->tables as $table) {
-            $classname = $this->className($table);
-
-            $d[] = "\$result = {$object_name}->addTable(\${$table});";
-            $d[] = 'if (PEAR::isError($result)) {';
-            $d[] = '    echo "Can\'t add table object to database object.\n";';
-            $d[] = '    echo $result->getMessage();';
-            $d[] = '    die;';
-            $d[] = '}';
-        }
-        $d[] = '';
-
-        // Add foreign key references: If the name of an integer column
-        // matches "/id$/i" (i.e., the names ends with id, ID, or Id), the
-        // remainder of the name matches the name $rtable of another table,
-        // and $rtable has an integer primary key, then the column is
-        // assumed to be a foreign key that references $rtable.
-
-        $d[] = '/*';
-        $d[] = ' * Add auto-guessed foreign references';
-        $d[] = ' */';
-        foreach ($this->col as $table => $col) {
-            foreach ($col as $col_name => $def) {
-
-                // Only consider integer columns
-                $ftype = $def['type'];
-                if (!in_array($ftype, array('integer','smallint','bigint'))) {
-                    continue;
-                }
-                if (preg_match("/id$/i", $col_name)) {
-                    $column_base = preg_replace('/_?id$/i', '', $col_name);
-                    foreach ($this->tables as $rtable) {
-                        if (!preg_match("/^{$rtable}$/i", $column_base)) {
-                            continue;
-                        }
-                        if (preg_match("/^{$table}$/i", $column_base)) {
-                            continue;
-                        }
-                        if (!isset($this->primary_key[$rtable])) {
-                            continue;
-                        }
-                        $rkey = $this->primary_key[$rtable];
-                        if (is_array($rkey)) {
-                            continue;
-                        }
-                        $rtype = $this->col[$rtable][$rkey]['type'];
-                        if (!in_array($rtype,
-                            array('integer','smallint','bigint'))) {
-                            continue;
-                        }
-                        $d[] = "\$result = {$object_name}->addRef('{$table}', "
-                             . "'{$col_name}', '{$rtable}');";
-                        $d[] = 'if (PEAR::isError($result)) {';
-                        $d[] = '    echo "Can\'t add foreign key reference.\n";';
-                        $d[] = '    echo $result->getMessage();';
-                        $d[] = '    die;';
-                        $d[] = '}';
-                    }
-                }
-            }
-        }
-        $d[] = '';
-        $d[] = '/*';
-        $d[] = ' * Add any additional foreign key references here';
-        $d[] = ' *';
-        $d[] = ' * Add any linking table declarations here';
-        $d[] = ' * Uncomment next line to add all possible linking tables;';
-        $d[] = ' */';
-        $d[] = "//\$result = {$object_name}->addAllLinks();";
-        $d[] = '//if (PEAR::isError($result)) {';
-        $d[] = '//    echo "Can\'t add linking tables.\n";';
-        $d[] = '//    echo $result->getMessage();';
-        $d[] = '//    die;';
-        $d[] = '//}';
-        $d[] = '';
-
-        // Closing script element
-        $d[] = '?>';
-        $d[] = '';
-
-        // Open and write file
-        $base = $this->class_write_path;
-        if ($base) {
-            if (!file_exists($base)) {
-                include_once 'System.php';
-                if (!@System::mkdir(array('-p', $base))) {
-                    return $this->throwError(DB_TABLE_GENERATOR_ERR_FILE, $base);
-                }
-            }
-            $filename = $base . '/Database.php';
-        } else {
-            $filename = 'Database.php';
-        }
-        if (!$file = @fopen($filename, 'wb')) {
-            return $this->throwError(DB_TABLE_GENERATOR_ERR_FILE, $filename);
-        }
-        $out = implode("\n", $d);
-        fputs($file, $out);
-        fclose($file);
-
-        return true;
-    }
-
-    // }}}
-    // {{{ function className($table)
-
-    /**
-     * Convert a table name into a class name
-     *
-     * Converts all non-alphanumeric characters to '_', capitalizes
-     * first letter, and adds $this->class_suffix to end. Override
-     * this if you want something else.
-     *
-     * @param string $table name of table
-     *
-     * @return string class name;
-     * @access public
-     */
-    function className($table)
-    {
-        $name = preg_replace('/[^A-Z0-9]/i', '_', ucfirst(trim($table)));
-        return  $name . $this->class_suffix;
-    }
-
-    // }}}
-    // {{{ function tableName($table)
-
-    /**
-     * Returns a valid variable name from a table name
-     *
-     * Converts all non-alphanumeric characters to '_'. Override
-     * this if you want something else.
-     *
-     * @param string $table name of table
-     *
-     * @return string variable name;
-     * @access public
-     */
-    function tableName($table)
-    {
-        return preg_replace('/[^A-Z0-9]/i', '_', trim($table));
-    }
-
-    // }}}
-    // {{{ function classFileName($class_name)
-
-    /**
-     * Returns the path to a file containing a class definition
-     *
-     * Appends '.php' to class name.
-     *
-     * @param string $class_name name of class
-     *
-     * @return string file name
-     * @access public
-     */
-    function classFileName($class_name)
-    {
-        $filename = $class_name . '.php';
-        return $filename;
-    }
-
-    // }}}
-
-}
-// }}}
diff --git a/civicrm/packages/DB/Table/Manager.php b/civicrm/packages/DB/Table/Manager.php
deleted file mode 100644
index aac0961dae..0000000000
--- a/civicrm/packages/DB/Table/Manager.php
+++ /dev/null
@@ -1,2349 +0,0 @@
-<?php
-
-/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
-
-/**
- * Creates, checks or alters tables from DB_Table definitions.
- * 
- * DB_Table_Manager provides database automated table creation
- * facilities.
- * 
- * PHP versions 4 and 5
- *
- * LICENSE:
- * 
- * Copyright (c) 1997-2007, Paul M. Jones <pmjones@php.net>
- *                          David C. Morse <morse@php.net>
- *                          Mark Wiesemann <wiesemann@php.net>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *    * Redistributions of source code must retain the above copyright
- *      notice, this list of conditions and the following disclaimer.
- *    * Redistributions in binary form must reproduce the above copyright
- *      notice, this list of conditions and the following disclaimer in the 
- *      documentation and/or other materials provided with the distribution.
- *    * The names of the authors may not be used to endorse or promote products 
- *      derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * @category Database
- * @package  DB_Table
- * @author   Paul M. Jones <pmjones@php.net>
- * @author   David C. Morse <morse@php.net>
- * @author   Mark Wiesemann <wiesemann@php.net>
- * @license  http://opensource.org/licenses/bsd-license.php New BSD License
- * @version  CVS: $Id: Manager.php,v 1.40 2008/12/25 19:56:35 wiesemann Exp $
- * @link     http://pear.php.net/package/DB_Table
- */
-
-require_once 'DB/Table.php';
-
-
-/**
-* Valid types for the different data types in the different DBMS.
-*/
-$GLOBALS['_DB_TABLE']['valid_type'] = array(
-    'fbsql' => array(  // currently not supported
-        'boolean'   => '',
-        'char'      => '',
-        'varchar'   => '',
-        'smallint'  => '',
-        'integer'   => '',
-        'bigint'    => '',
-        'decimal'   => '',
-        'single'    => '',
-        'double'    => '',
-        'clob'      => '',
-        'date'      => '',
-        'time'      => '',
-        'timestamp' => ''
-    ),
-    'ibase' => array(
-        'boolean'   => array('char', 'integer', 'real', 'smallint'),
-        'char'      => array('char', 'varchar'),
-        'varchar'   => 'varchar',
-        'smallint'  => array('integer', 'smallint'),
-        'integer'   => 'integer',
-        'bigint'    => array('bigint', 'integer'),
-        'decimal'   => 'numeric',
-        'single'    => array('double precision', 'float'),
-        'double'    => 'double precision',
-        'clob'      => 'blob',
-        'date'      => 'date',
-        'time'      => 'time',
-        'timestamp' => 'timestamp'
-    ),
-    'mssql' => array(  // currently not supported
-        'boolean'   => '',
-        'char'      => '',
-        'varchar'   => '',
-        'smallint'  => '',
-        'integer'   => '',
-        'bigint'    => '',
-        'decimal'   => '',
-        'single'    => '',
-        'double'    => '',
-        'clob'      => '',
-        'date'      => '',
-        'time'      => '',
-        'timestamp' => ''
-    ),
-    'mysql' => array(
-        'boolean'   => array('char', 'decimal', 'int', 'real', 'tinyint'),
-        'char'      => array('char', 'string', 'varchar'),
-        'varchar'   => array('char', 'string', 'varchar'),
-        'smallint'  => array('smallint', 'int'),
-        'integer'   => 'int',
-        'bigint'    => array('int', 'bigint'),
-        'decimal'   => array('decimal', 'real'),
-        'single'    => array('double', 'real'),
-        'double'    => array('double', 'real'),
-        'clob'      => array('blob', 'longtext', 'tinytext', 'text', 'mediumtext'),
-        'date'      => array('char', 'date', 'string'),
-        'time'      => array('char', 'string', 'time'),
-        'timestamp' => array('char', 'datetime', 'string')
-    ),
-    'mysqli' => array(
-        'boolean'   => array('char', 'decimal', 'tinyint'),
-        'char'      => array('char', 'varchar'),
-        'varchar'   => array('char', 'varchar'),
-        'smallint'  => array('smallint', 'int'),
-        'integer'   => 'int',
-        'bigint'    => array('int', 'bigint'),
-        'decimal'   => 'decimal',
-        'single'    => array('double', 'float'),
-        'double'    => 'double',
-        'clob'      => array('blob', 'longtext', 'tinytext', 'text', 'mediumtext'),
-        'date'      => array('char', 'date', 'varchar'),
-        'time'      => array('char', 'time', 'varchar'),
-        'timestamp' => array('char', 'datetime', 'varchar')
-    ),
-    'oci8' => array(
-        'boolean'   => 'number',
-        'char'      => array('char', 'varchar2'),
-        'varchar'   => 'varchar2',
-        'smallint'  => 'number',
-        'integer'   => 'number',
-        'bigint'    => 'number',
-        'decimal'   => 'number',
-        'single'    => array('float', 'number'),
-        'double'    => array('float', 'number'),
-        'clob'      => 'clob',
-        'date'      => array('char', 'date'),
-        'time'      => array('char', 'date'),
-        'timestamp' => array('char', 'date')
-    ),
-    'pgsql' => array(
-        'boolean'   => array('bool', 'numeric'),
-        'char'      => array('bpchar', 'varchar'),
-        'varchar'   => 'varchar',
-        'smallint'  => array('int2', 'int4'),
-        'integer'   => 'int4',
-        'bigint'    => array('int4', 'int8'),
-        'decimal'   => 'numeric',
-        'single'    => array('float4', 'float8'),
-        'double'    => 'float8',
-        'clob'      => array('oid', 'text'),
-        'date'      => array('bpchar', 'date'),
-        'time'      => array('bpchar', 'time'),
-        'timestamp' => array('bpchar', 'timestamp')
-    ),
-    'sqlite' => array(
-        'boolean'   => 'boolean',
-        'char'      => 'char',
-        'varchar'   => array('char', 'varchar'),
-        'smallint'  => array('int', 'smallint'),
-        'integer'   => array('int', 'integer'),
-        'bigint'    => array('int', 'bigint'),
-        'decimal'   => array('decimal', 'numeric'),
-        'single'    => array('double', 'float'),
-        'double'    => 'double',
-        'clob'      => array('clob', 'longtext'),
-        'date'      => 'date',
-        'time'      => 'time',
-        'timestamp' => array('datetime', 'timestamp')
-    ),
-);
-
-/**
-* Mapping between DB_Table and MDB2 data types.
-*/
-$GLOBALS['_DB_TABLE']['mdb2_type'] = array(
-    'boolean'   => 'boolean',
-    'char'      => 'text',
-    'varchar'   => 'text',
-    'smallint'  => 'integer',
-    'integer'   => 'integer',
-    'bigint'    => 'integer',
-    'decimal'   => 'decimal',
-    'single'    => 'float',
-    'double'    => 'float',
-    'clob'      => 'clob',
-    'date'      => 'date',
-    'time'      => 'time',
-    'timestamp' => 'timestamp'
-);
-
-/**
- * Creates, checks or alters tables from DB_Table definitions.
- * 
- * DB_Table_Manager provides database automated table creation
- * facilities.
- * 
- * @category Database
- * @package  DB_Table
- * @author   Paul M. Jones <pmjones@php.net>
- * @author   David C. Morse <morse@php.net>
- * @author   Mark Wiesemann <wiesemann@php.net>
- * @version  Release: 1.5.6
- * @link     http://pear.php.net/package/DB_Table
- */
-class DB_Table_Manager {
-
-
-   /**
-    * 
-    * Create the table based on DB_Table column and index arrays.
-    * 
-    * @static
-    * 
-    * @access public
-    * 
-    * @param object &$db A PEAR DB/MDB2 object.
-    * 
-    * @param string $table The table name to connect to in the database.
-    * 
-    * @param mixed $column_set A DB_Table $this->col array.
-    * 
-    * @param mixed $index_set A DB_Table $this->idx array.
-    * 
-    * @return mixed Boolean false if there was no attempt to create the
-    * table, boolean true if the attempt succeeded, and a PEAR_Error if
-    * the attempt failed.
-    * 
-    */
-
-    function create(&$db, $table, $column_set, $index_set)
-    {
-        if (is_subclass_of($db, 'db_common')) {
-            $backend = 'db';
-        } elseif (is_subclass_of($db, 'mdb2_driver_common')) {
-            $backend = 'mdb2';
-            $db->loadModule('Manager');
-        }
-        $phptype = $db->phptype;
-
-        // columns to be created
-        $column = array();
-
-        // max. value for scope (only used with MDB2 as backend)
-        $max_scope = 0;
-        
-        // indexes to be created
-        $indexes = array();
-        
-        // check the table name
-        $name_check = DB_Table_Manager::_validateTableName($table);
-        if (PEAR::isError($name_check)) {
-            return $name_check;
-        }
-        
-        
-        // -------------------------------------------------------------
-        // 
-        // validate each column mapping and build the individual
-        // definitions, and note column indexes as we go.
-        //
-        
-        if (is_null($column_set)) {
-            $column_set = array();
-        }
-        
-        foreach ($column_set as $colname => $val) {
-            
-            $colname = trim($colname);
-            
-            // check the column name
-            $name_check = DB_Table_Manager::_validateColumnName($colname);
-            if (PEAR::isError($name_check)) {
-                return $name_check;
-            }
-            
-            
-            // prepare variables
-            $type    = (isset($val['type']))    ? $val['type']    : null;
-            $size    = (isset($val['size']))    ? $val['size']    : null;
-            $scope   = (isset($val['scope']))   ? $val['scope']   : null;
-            $require = (isset($val['require'])) ? $val['require'] : null;
-            $default = (isset($val['default'])) ? $val['default'] : null;
-
-            if ($backend == 'mdb2') {
-
-                // get the declaration string
-                $result = DB_Table_Manager::getDeclareMDB2($type,
-                    $size, $scope, $require, $default, $max_scope);
-
-                // did it work?
-                if (PEAR::isError($result)) {
-                    $result->userinfo .= " ('$colname')";
-                    return $result;
-                }
-
-                // add the declaration to the array of all columns
-                $column[$colname] = $result;
-
-            } else {
-
-                // get the declaration string
-                $result = DB_Table_Manager::getDeclare($phptype, $type,
-                    $size, $scope, $require, $default);
-
-                // did it work?
-                if (PEAR::isError($result)) {
-                    $result->userinfo .= " ('$colname')";
-                    return $result;
-                }
-
-                // add the declaration to the array of all columns
-                $column[] = "$colname $result";
-
-            }
-
-        }
-        
-        
-        // -------------------------------------------------------------
-        // 
-        // validate the indexes.
-        //
-        
-        if (is_null($index_set)) {
-            $index_set = array();
-        }
-
-        $count_primary_keys = 0;
-
-        foreach ($index_set as $idxname => $val) {
-            
-            list($type, $cols) = DB_Table_Manager::_getIndexTypeAndColumns($val, $idxname);
-
-            $newIdxName = '';
-
-            // check the index definition
-            $index_check = DB_Table_Manager::_validateIndexName($idxname,
-                $table, $phptype, $type, $cols, $column_set, $newIdxName);
-            if (PEAR::isError($index_check)) {
-                return $index_check;
-            }
-
-            // check number of primary keys (only one is allowed)
-            if ($type == 'primary') {
-                // SQLite does not support primary keys
-                if ($phptype == 'sqlite') {
-                    return DB_Table::throwError(DB_TABLE_ERR_DECLARE_PRIM_SQLITE);
-                }
-                $count_primary_keys++;
-            }
-            if ($count_primary_keys > 1) {
-                return DB_Table::throwError(DB_TABLE_ERR_DECLARE_PRIMARY);
-            }
-
-            // create index entry
-            if ($backend == 'mdb2') {
-
-                // array with column names as keys
-                $idx_cols = array();
-                foreach ($cols as $col) {
-                    $idx_cols[$col] = array();
-                }
-
-                switch ($type) {
-                    case 'primary':
-                        $indexes['primary'][$newIdxName] =
-                            array('fields'  => $idx_cols,
-                                  'primary' => true);
-                        break;
-                    case 'unique':
-                        $indexes['unique'][$newIdxName] =
-                            array('fields' => $idx_cols,
-                                  'unique' => true);
-                        break;
-                    case 'normal':
-                        $indexes['normal'][$newIdxName] =
-                            array('fields' => $idx_cols);
-                        break;
-                }
-                
-            } else {
-
-                $indexes[] = DB_Table_Manager::getDeclareForIndex($phptype,
-                    $type, $newIdxName, $table, $cols);
-
-            }
-            
-        }
-        
-        
-        // -------------------------------------------------------------
-        // 
-        // now for the real action: create the table and indexes!
-        //
-        if ($backend == 'mdb2') {
-
-            // save user defined 'decimal_places' option
-            $decimal_places = $db->getOption('decimal_places');
-            $db->setOption('decimal_places', $max_scope);
-
-            // attempt to create the table
-            $result = $db->manager->createTable($table, $column);
-            // restore user defined 'decimal_places' option
-            $db->setOption('decimal_places', $decimal_places);
-            if (PEAR::isError($result)) {
-                return $result;
-            }
-
-        } else {
-
-            // build the CREATE TABLE command
-            $cmd = "CREATE TABLE $table (\n\t";
-            $cmd .= implode(",\n\t", $column);
-            $cmd .= "\n)";
-
-            // attempt to create the table
-            $result = $db->query($cmd);
-            if (PEAR::isError($result)) {
-                return $result;
-            }
-
-        }
-
-        $result = DB_Table_Manager::_createIndexesAndContraints($db, $backend,
-                                                                $table, $indexes);
-        if (PEAR::isError($result)) {
-            return $result;
-        }
-
-        // we're done!
-        return true;
-    }
-
-
-   /**
-    * 
-    * Verify whether the table and columns exist, whether the columns
-    * have the right type and whether the indexes exist.
-    * 
-    * @static
-    * 
-    * @access public
-    * 
-    * @param object &$db A PEAR DB/MDB2 object.
-    * 
-    * @param string $table The table name to connect to in the database.
-    * 
-    * @param mixed $column_set A DB_Table $this->col array.
-    * 
-    * @param mixed $index_set A DB_Table $this->idx array.
-    * 
-    * @return mixed Boolean true if the verification was successful, and a
-    * PEAR_Error if verification failed.
-    * 
-    */
-
-    function verify(&$db, $table, $column_set, $index_set)
-    {
-        if (is_subclass_of($db, 'db_common')) {
-            $backend = 'db';
-            $reverse =& $db;
-            $table_info_mode = DB_TABLEINFO_FULL;
-            $table_info_error = DB_ERROR_NEED_MORE_DATA;
-        } elseif (is_subclass_of($db, 'mdb2_driver_common')) {
-            $backend = 'mdb2';
-            $reverse =& $this->db->loadModule('Reverse');
-            $table_info_mode = MDB2_TABLEINFO_FULL;
-            $table_info_error = MDB2_ERROR_NEED_MORE_DATA;
-        }
-        $phptype = $db->phptype;
-
-        // check #1: does the table exist?
-
-        // check the table name
-        $name_check = DB_Table_Manager::_validateTableName($table);
-        if (PEAR::isError($name_check)) {
-            return $name_check;
-        }
-
-        // get table info
-        $tableInfo = $reverse->tableInfo($table, $table_info_mode);
-        if (PEAR::isError($tableInfo)) {
-            if ($tableInfo->getCode() == $table_info_error) {
-                return DB_Table::throwError(
-                    DB_TABLE_ERR_VER_TABLE_MISSING,
-                    "(table='$table')"
-                );
-            }
-            return $tableInfo;
-        }
-        $tableInfoOrder = array_change_key_case($tableInfo['order'], CASE_LOWER);
-
-        if (is_null($column_set)) {
-            $column_set = array();
-        }
-
-        foreach ($column_set as $colname => $val) {
-            $colname = strtolower(trim($colname));
-            
-            // check the column name
-            $name_check = DB_Table_Manager::_validateColumnName($colname);
-            if (PEAR::isError($name_check)) {
-                return $name_check;
-            }
-
-            // check #2: do all columns exist?
-            $column_exists = DB_Table_Manager::_columnExists($colname,
-                $tableInfoOrder, 'verify');
-            if (PEAR::isError($column_exists)) {
-                return $column_exists;
-            }
-
-            // check #3: do all columns have the right type?
-
-            // check whether the column type is a known type
-            $type_check = DB_Table_Manager::_validateColumnType($phptype, $val['type']);
-            if (PEAR::isError($type_check)) {
-                return $type_check;
-            }
-
-            // check whether the column has the right type
-            $type_check = DB_Table_Manager::_checkColumnType($phptype,
-                $colname, $val['type'], $tableInfoOrder, $tableInfo, 'verify');
-            if (PEAR::isError($type_check)) {
-                return $type_check;
-            }
-
-        }
-
-        // check #4: do all indexes exist?
-        $table_indexes = DB_Table_Manager::getIndexes($db, $table);
-        if (PEAR::isError($table_indexes)) {
-            return $table_indexes;
-        }
-
-        if (is_null($index_set)) {
-            $index_set = array();
-        }
-        
-        foreach ($index_set as $idxname => $val) {
-          
-            list($type, $cols) = DB_Table_Manager::_getIndexTypeAndColumns($val, $idxname);
-
-            $newIdxName = '';
-
-            // check the index definition
-            $index_check = DB_Table_Manager::_validateIndexName($idxname,
-                $table, $phptype, $type, $cols, $column_set, $newIdxName);
-            if (PEAR::isError($index_check)) {
-                return $index_check;
-            }
-
-            // check whether the index has the right type and has all
-            // specified columns
-            $index_check = DB_Table_Manager::_checkIndex($idxname, $newIdxName,
-                $type, $cols, $table_indexes, 'verify');
-            if (PEAR::isError($index_check)) {
-                return $index_check;
-            }
-
-        }
-
-        return true;
-    }
-
-
-   /**
-    * 
-    * Alter columns and indexes of a table based on DB_Table column and index
-    * arrays.
-    * 
-    * @static
-    * 
-    * @access public
-    * 
-    * @param object &$db A PEAR DB/MDB2 object.
-    * 
-    * @param string $table The table name to connect to in the database.
-    * 
-    * @param mixed $column_set A DB_Table $this->col array.
-    * 
-    * @param mixed $index_set A DB_Table $this->idx array.
-    * 
-    * @return bool|object True if altering was successful or a PEAR_Error on
-    * failure.
-    * 
-    */
-
-    function alter(&$db, $table, $column_set, $index_set)
-    {
-        $phptype = $db->phptype;
-
-        if (is_subclass_of($db, 'db_common')) {
-            $backend = 'db';
-            $reverse =& $db;
-            // workaround for missing index and constraint information methods
-            // in PEAR::DB ==> use adopted code from MDB2's driver classes
-            require_once 'DB/Table/Manager/' . $phptype . '.php';
-            $classname = 'DB_Table_Manager_' . $phptype;
-            $dbtm = new $classname();
-            $dbtm->_db =& $db;  // pass database instance to the 'workaround' class
-            $manager =& $dbtm;
-            $table_info_mode = DB_TABLEINFO_FULL;
-            $ok_const = DB_OK;
-        } elseif (is_subclass_of($db, 'mdb2_driver_common')) {
-            $backend = 'mdb2';
-            $db->loadModule('Reverse');
-            $manager =& $db->manager;
-            $reverse =& $db->reverse;
-            $table_info_mode = MDB2_TABLEINFO_FULL;
-            $ok_const = MDB2_OK;
-        }
-
-        // get table info
-        $tableInfo = $reverse->tableInfo($table, $table_info_mode);
-        if (PEAR::isError($tableInfo)) {
-            return $tableInfo;
-        }
-        $tableInfoOrder = array_change_key_case($tableInfo['order'], CASE_LOWER);
-
-        // emulate MDB2 Reverse extension for PEAR::DB as backend
-        if (is_subclass_of($db, 'db_common')) {
-            $reverse =& $dbtm;
-        }
-
-        // check (and alter) columns
-        if (is_null($column_set)) {
-            $column_set = array();
-        }
-
-        foreach ($column_set as $colname => $val) {
-            $colname = strtolower(trim($colname));
-            
-            // check the column name
-            $name_check = DB_Table_Manager::_validateColumnName($colname);
-            if (PEAR::isError($name_check)) {
-                return $name_check;
-            }
-
-            // check the column's existence
-            $column_exists = DB_Table_Manager::_columnExists($colname,
-                $tableInfoOrder, 'alter');
-            if (PEAR::isError($column_exists)) {
-                return $column_exists;
-            }
-            if ($column_exists === false) {  // add the column
-                $definition = DB_Table_Manager::_getColumnDefinition($backend,
-                    $phptype, $val);
-                if (PEAR::isError($definition)) {
-                    return $definition;
-                }
-                $changes = array('add' => array($colname => $definition));
-                if (array_key_exists('debug', $GLOBALS['_DB_TABLE'])) {
-                    echo "(alter) New table field will be added ($colname):\n";
-                    var_dump($changes);
-                    echo "\n";
-                }
-                $result = $manager->alterTable($table, $changes, false);
-                if (PEAR::isError($result)) {
-                    return $result;
-                }
-                continue;
-            }
-
-            // check whether the column type is a known type
-            $type_check = DB_Table_Manager::_validateColumnType($phptype, $val['type']);
-            if (PEAR::isError($type_check)) {
-                return $type_check;
-            }
-
-            // check whether the column has the right type
-            $type_check = DB_Table_Manager::_checkColumnType($phptype,
-                $colname, $val['type'], $tableInfoOrder, $tableInfo, 'alter');
-            if (PEAR::isError($type_check)) {
-                return $type_check;
-            }
-            if ($type_check === false) {  // change the column type
-                $definition = DB_Table_Manager::_getColumnDefinition($backend,
-                    $phptype, $val);
-                if (PEAR::isError($definition)) {
-                    return $definition;
-                }
-                $changes = array('change' =>
-                    array($colname => array('type' => null,
-                                            'definition' => $definition)));
-                if (array_key_exists('debug', $GLOBALS['_DB_TABLE'])) {
-                    echo "(alter) Table field's type will be changed ($colname):\n";
-                    var_dump($changes);
-                    echo "\n";
-                }
-                $result = $manager->alterTable($table, $changes, false);
-                if (PEAR::isError($result)) {
-                    return $result;
-                }
-                continue;
-            }
-
-        }
-
-        // get information about indexes / constraints
-        $table_indexes = DB_Table_Manager::getIndexes($db, $table);
-        if (PEAR::isError($table_indexes)) {
-            return $table_indexes;
-        }
-
-        // check (and alter) indexes / constraints
-        if (is_null($index_set)) {
-            $index_set = array();
-        }
-        
-        foreach ($index_set as $idxname => $val) {
-          
-            list($type, $cols) = DB_Table_Manager::_getIndexTypeAndColumns($val, $idxname);
-
-            $newIdxName = '';
-
-            // check the index definition
-            $index_check = DB_Table_Manager::_validateIndexName($idxname,
-                $table, $phptype, $type, $cols, $column_set, $newIdxName);
-            if (PEAR::isError($index_check)) {
-                return $index_check;
-            }
-
-            // check whether the index has the right type and has all
-            // specified columns
-            $index_check = DB_Table_Manager::_checkIndex($idxname, $newIdxName,
-                $type, $cols, $table_indexes, 'alter');
-            if (PEAR::isError($index_check)) {
-                return $index_check;
-            }
-            if ($index_check === false) {  // (1) drop wrong index/constraint
-                                           // (2) add right index/constraint
-                if ($backend == 'mdb2') {
-                    // save user defined 'idxname_format' option
-                    $idxname_format = $db->getOption('idxname_format');
-                    $db->setOption('idxname_format', '%s');
-                }
-                // drop index/constraint only if it exists
-                foreach (array('normal', 'unique', 'primary') as $idx_type) {
-                    if (array_key_exists(strtolower($newIdxName),
-                                         $table_indexes[$idx_type])) {
-                        if (array_key_exists('debug', $GLOBALS['_DB_TABLE'])) {
-                            echo "(alter) Index/constraint will be deleted (name: '$newIdxName', type: '$idx_type').\n";
-                        }
-                        if ($idx_type == 'normal') {
-                            $result = $manager->dropIndex($table, $newIdxName);
-                        } else {
-                            $result = $manager->dropConstraint($table, $newIdxName);
-                        }
-                        if (PEAR::isError($result)) {
-                            if ($backend == 'mdb2') {
-                                // restore user defined 'idxname_format' option
-                                $db->setOption('idxname_format', $idxname_format);
-                            }
-                            return $result;
-                        }
-                        break;
-                    }
-                }
-
-                // prepare index/constraint definition
-                $indexes = array();
-                if ($backend == 'mdb2') {
-
-                    // array with column names as keys
-                    $idx_cols = array();
-                    foreach ($cols as $col) {
-                        $idx_cols[$col] = array();
-                    }
-
-                    switch ($type) {
-                        case 'primary':
-                            $indexes['primary'][$newIdxName] =
-                                array('fields'  => $idx_cols,
-                                      'primary' => true);
-                            break;
-                        case 'unique':
-                            $indexes['unique'][$newIdxName] =
-                                array('fields' => $idx_cols,
-                                      'unique' => true);
-                            break;
-                        case 'normal':
-                            $indexes['normal'][$newIdxName] =
-                                array('fields' => $idx_cols);
-                            break;
-                    }
-
-                } else {
-
-                    $indexes[] = DB_Table_Manager::getDeclareForIndex($phptype,
-                        $type, $newIdxName, $table, $cols);
-
-                }
-
-                // create index/constraint
-                if (array_key_exists('debug', $GLOBALS['_DB_TABLE'])) {
-                    echo "(alter) New index/constraint will be created (name: '$newIdxName', type: '$type'):\n";
-                    var_dump($indexes);
-                    echo "\n";
-                }
-                $result = DB_Table_Manager::_createIndexesAndContraints(
-                    $db, $backend, $table, $indexes);
-                if ($backend == 'mdb2') {
-                    // restore user defined 'idxname_format' option
-                    $db->setOption('idxname_format', $idxname_format);
-                }
-                if (PEAR::isError($result)) {
-                    return $result;
-                }
-
-                continue;
-            }
-
-        }
-
-        return true;
-    }
-
-
-   /**
-    * 
-    * Check whether a table exists.
-    * 
-    * @static
-    * 
-    * @access public
-    * 
-    * @param object &$db A PEAR DB/MDB2 object.
-    * 
-    * @param string $table The table name that should be checked.
-    * 
-    * @return bool|object True if the table exists, false if not, or a
-    * PEAR_Error on failure.
-    * 
-    */
-
-    function tableExists(&$db, $table)
-    {
-        if (is_subclass_of($db, 'db_common')) {
-            $list = $db->getListOf('tables');
-        } elseif (is_subclass_of($db, 'mdb2_driver_common')) {
-            $db->loadModule('Manager');
-            $list = $db->manager->listTables();
-        }
-        if (PEAR::isError($list)) {
-            return $list;
-        }
-        array_walk($list, create_function('&$value,$key',
-                                          '$value = trim(strtolower($value));'));
-        return in_array(strtolower($table), $list);
-    }
-
-
-   /**
-    * 
-    * Get the column declaration string for a DB_Table column.
-    * 
-    * @static
-    * 
-    * @access public
-    * 
-    * @param string $phptype The DB/MDB2 phptype key.
-    * 
-    * @param string $coltype The DB_Table column type.
-    * 
-    * @param int $size The size for the column (needed for string and
-    * decimal).
-    * 
-    * @param int $scope The scope for the column (needed for decimal).
-    * 
-    * @param bool $require True if the column should be NOT NULL, false
-    * allowed to be NULL.
-    * 
-    * @param string $default The SQL calculation for a default value.
-    * 
-    * @return string|object A declaration string on success, or a
-    * PEAR_Error on failure.
-    * 
-    */
-
-    function getDeclare($phptype, $coltype, $size = null, $scope = null,
-        $require = null, $default = null)
-    {
-        // validate char/varchar/decimal type declaration
-        $validation = DB_Table_Manager::_validateTypeDeclaration($coltype, $size,
-                                                                 $scope);
-        if (PEAR::isError($validation)) {
-            return $validation;
-        }
-        
-        // map of column types and declarations for this RDBMS
-        $map = $GLOBALS['_DB_TABLE']['type'][$phptype];
-        
-        // is it a recognized column type?
-        $types = array_keys($map);
-        if (! in_array($coltype, $types)) {
-            return DB_Table::throwError(
-                DB_TABLE_ERR_DECLARE_TYPE,
-                "('$coltype')"
-            );
-        }
-        
-        // basic declaration
-        switch ($coltype) {
-    
-        case 'char':
-        case 'varchar':
-            $declare = $map[$coltype] . "($size)";
-            break;
-        
-        case 'decimal':
-            $declare = $map[$coltype] . "($size,$scope)";
-            break;
-        
-        default:
-            $declare = $map[$coltype];
-            break;
-        
-        }
-        
-        // set the "NULL"/"NOT NULL" portion
-        $null = ' NULL';
-        if ($phptype == 'ibase') {  // Firebird does not like 'NULL'
-            $null = '';             // in CREATE TABLE
-        }
-        if ($phptype == 'pgsql') {  // PostgreSQL does not like 'NULL'
-            $null = '';             // in ALTER TABLE
-        }
-        $declare .= ($require) ? ' NOT NULL' : $null;
-        
-        // set the "DEFAULT" portion
-        if ($default) {
-            switch ($coltype) {        
-                case 'char':
-                case 'varchar':
-                case 'clob':
-                    $declare .= " DEFAULT '$default'";
-                    break;
-
-                default:
-                    $declare .= " DEFAULT $default";
-                    break;
-            }
-        }
-        
-        // done
-        return $declare;
-    }
-
-
-   /**
-    * 
-    * Get the column declaration string for a DB_Table column.
-    * 
-    * @static
-    * 
-    * @access public
-    * 
-    * @param string $coltype The DB_Table column type.
-    * 
-    * @param int $size The size for the column (needed for string and
-    * decimal).
-    * 
-    * @param int $scope The scope for the column (needed for decimal).
-    * 
-    * @param bool $require True if the column should be NOT NULL, false
-    * allowed to be NULL.
-    * 
-    * @param string $default The SQL calculation for a default value.
-    * 
-    * @param int $max_scope The maximal scope for all table column
-    * (pass-by-reference).
-    * 
-    * @return string|object A MDB2 column definition array on success, or a
-    * PEAR_Error on failure.
-    * 
-    */
-
-    function getDeclareMDB2($coltype, $size = null, $scope = null,
-        $require = null, $default = null, &$max_scope)
-    {
-        // validate char/varchar/decimal type declaration
-        $validation = DB_Table_Manager::_validateTypeDeclaration($coltype, $size,
-                                                                 $scope);
-        if (PEAR::isError($validation)) {
-            return $validation;
-        }
-
-        // map of MDB2 column types
-        $map = $GLOBALS['_DB_TABLE']['mdb2_type'];
-        
-        // is it a recognized column type?
-        $types = array_keys($map);
-        if (! in_array($coltype, $types)) {
-            return DB_Table::throwError(
-                DB_TABLE_ERR_DECLARE_TYPE,
-                "('$coltype')"
-            );
-        }
-
-        // build declaration array
-        $new_column = array(
-            'type'    => $map[$coltype],
-            'notnull' => $require
-        );
-
-        if ($size) {
-            $new_column['length'] = $size;
-        }
-
-        // determine integer length to be used in MDB2
-        if (in_array($coltype, array('smallint', 'integer', 'bigint'))) {
-            switch ($coltype) {
-                case 'smallint':
-                    $new_column['length'] = 2;
-                    break;
-                case 'integer':
-                    $new_column['length'] = 4;
-                    break;
-                case 'bigint':
-                    $new_column['length'] = 5;
-                    break;
-            }
-        }
-
-        if ($scope) {
-            $max_scope = max($max_scope, $scope);
-        }
-
-        if ($default) {
-            $new_column['default'] = $default;
-        }
-
-        return $new_column;
-    }
-
-
-   /**
-    * 
-    * Get the index declaration string for a DB_Table index.
-    * 
-    * @static
-    * 
-    * @access public
-    * 
-    * @param string $phptype The DB phptype key.
-    * 
-    * @param string $type The index type.
-    * 
-    * @param string $idxname The index name.
-    * 
-    * @param string $table The table name.
-    * 
-    * @param mixed $cols Array with the column names for the index.
-    * 
-    * @return string A declaration string.
-    * 
-    */
-
-    function getDeclareForIndex($phptype, $type, $idxname, $table, $cols)
-    {
-        // string of column names
-        $colstring = implode(', ', $cols);
-
-        switch ($type) {
-
-            case 'primary':
-                switch ($phptype) {
-                    case 'ibase':
-                    case 'oci8':
-                    case 'pgsql':
-                        $declare  = "ALTER TABLE $table ADD";
-                        $declare .= " CONSTRAINT $idxname";
-                        $declare .= " PRIMARY KEY ($colstring)";
-                        break;
-                    case 'mysql':
-                    case 'mysqli':
-                        $declare  = "ALTER TABLE $table ADD PRIMARY KEY";
-                        $declare .= " ($colstring)";
-                        break;
-                    case 'sqlite':
-                        // currently not possible
-                        break;
-                }
-                break;
-
-            case 'unique':
-                $declare = "CREATE UNIQUE INDEX $idxname ON $table ($colstring)";
-                break;
-
-            case 'normal':
-                $declare = "CREATE INDEX $idxname ON $table ($colstring)";
-                break;
-
-        }
-        
-        return $declare;
-    }
-
-
-   /**
-    * 
-    * Return the definition array for a column.
-    * 
-    * @access private
-    * 
-    * @param string $backend The name of the backend ('db' or 'mdb2').
-    * 
-    * @param string $phptype The DB/MDB2 phptype key.
-    * 
-    * @param mixed $column A single DB_Table column definition array.
-    * 
-    * @return mixed|object Declaration string (DB), declaration array (MDB2) or a
-    * PEAR_Error with a description about the invalidity, otherwise.
-    * 
-    */
-
-    function _getColumnDefinition($backend, $phptype, $column)
-    {
-        static $max_scope;
-
-        // prepare variables
-        $type    = (isset($column['type']))    ? $column['type']    : null;
-        $size    = (isset($column['size']))    ? $column['size']    : null;
-        $scope   = (isset($column['scope']))   ? $column['scope']   : null;
-        $require = (isset($column['require'])) ? $column['require'] : null;
-        $default = (isset($column['default'])) ? $column['default'] : null;
-
-        if ($backend == 'db') {
-            return DB_Table_Manager::getDeclare($phptype, $type,
-                    $size, $scope, $require, $default);
-        } else {
-            return DB_Table_Manager::getDeclareMDB2($type,
-                    $size, $scope, $require, $default, $max_scope);
-        }
-    }
-
-
-   /**
-    * 
-    * Check char/varchar/decimal type declarations for validity.
-    * 
-    * @access private
-    * 
-    * @param string $coltype The DB_Table column type.
-    * 
-    * @param int $size The size for the column (needed for string and
-    * decimal).
-    * 
-    * @param int $scope The scope for the column (needed for decimal).
-    * 
-    * @return bool|object Boolean true if the type declaration is valid or a
-    * PEAR_Error with a description about the invalidity, otherwise.
-    * 
-    */
-
-    function _validateTypeDeclaration($coltype, $size, $scope)
-    {
-        // validate char and varchar: does it have a size?
-        if (($coltype == 'char' || $coltype == 'varchar') &&
-            ($size < 1 || $size > 255) ) {
-            return DB_Table::throwError(
-                DB_TABLE_ERR_DECLARE_STRING,
-                "(size='$size')"
-            );
-        }
-        
-        // validate decimal: does it have a size and scope?
-        if ($coltype == 'decimal' &&
-            ($size < 1 || $size > 255 || $scope < 0 || $scope > $size)) {
-            return DB_Table::throwError(
-                DB_TABLE_ERR_DECLARE_DECIMAL,
-                "(size='$size' scope='$scope')"
-            );
-        }
-
-        return true;
-    }
-
-
-   /**
-    * 
-    * Check a table name for validity.
-    * 
-    * @access private
-    * 
-    * @param string $tablename The table name.
-    * 
-    * @return bool|object Boolean true if the table name is valid or a
-    * PEAR_Error with a description about the invalidity, otherwise.
-    * 
-    */
-
-    function _validateTableName($tablename)
-    {
-        // is the table name too long?
-        if (   $GLOBALS['_DB_TABLE']['disable_length_check'] === false
-            && strlen($tablename) > 30
-           ) {
-            return DB_Table::throwError(
-                DB_TABLE_ERR_TABLE_STRLEN,
-                " ('$tablename')"
-            );
-        }
-
-        return true;
-    }
-
-
-   /**
-    * 
-    * Check a column name for validity.
-    * 
-    * @access private
-    * 
-    * @param string $colname The column name.
-    * 
-    * @return bool|object Boolean true if the column name is valid or a
-    * PEAR_Error with a description about the invalidity, otherwise.
-    * 
-    */
-
-    function _validateColumnName($colname)
-    {
-        // column name cannot be a reserved keyword
-        $reserved = in_array(
-            strtoupper($colname),
-            $GLOBALS['_DB_TABLE']['reserved']
-        );
-
-        if ($reserved) {
-            return DB_Table::throwError(
-                DB_TABLE_ERR_DECLARE_COLNAME,
-                " ('$colname')"
-            );
-        }
- 
-        // column name must be no longer than 30 chars
-        if (   $GLOBALS['_DB_TABLE']['disable_length_check'] === false
-            && strlen($colname) > 30
-           ) {
-            return DB_Table::throwError(
-                DB_TABLE_ERR_DECLARE_STRLEN,
-                "('$colname')"
-            );
-        }
-
-        return true;
-    }
-
-
-   /**
-    * 
-    * Check whether a column exists.
-    * 
-    * @access private
-    * 
-    * @param string $colname The column name.
-    * 
-    * @param mixed $tableInfoOrder Array with columns in the table (result
-    * from tableInfo(), shortened to key 'order').
-    * 
-    * @param string $mode The name of the calling function, this can be either
-    * 'verify' or 'alter'.
-    * 
-    * @return bool|object Boolean true if the column exists.
-    * Otherwise, either boolean false (case 'alter') or a PEAR_Error
-    * (case 'verify').
-    * 
-    */
-
-    function _columnExists($colname, $tableInfoOrder, $mode)
-    {
-        if (array_key_exists($colname, $tableInfoOrder)) {
-            return true;
-        }
-
-        switch ($mode) {
-
-            case 'alter':
-                return false;
-
-            case 'verify':
-                return DB_Table::throwError(
-                    DB_TABLE_ERR_VER_COLUMN_MISSING,
-                    "(column='$colname')"
-                );
-
-        }
-    }
-
-
-   /**
-    * 
-    * Check whether a column type is a known type.
-    * 
-    * @access private
-    * 
-    * @param string $phptype The DB/MDB2 phptype key.
-    * 
-    * @param string $type The column type.
-    * 
-    * @return bool|object Boolean true if the column type is a known type
-    * or a PEAR_Error, otherwise.
-    * 
-    */
-
-    function _validateColumnType($phptype, $type)
-    {
-        // map of valid types for the current RDBMS
-        $map = $GLOBALS['_DB_TABLE']['valid_type'][$phptype];
-
-        // is it a recognized column type?
-        $types = array_keys($map);
-        if (!in_array($type, $types)) {
-            return DB_Table::throwError(
-                DB_TABLE_ERR_DECLARE_TYPE,
-                "('" . $type . "')"
-            );
-        }
-
-        return true;
-    }
-
-
-   /**
-    * 
-    * Check whether a column has the right type.
-    * 
-    * @access private
-    * 
-    * @param string $phptype The DB/MDB2 phptype key.
-    *
-    * @param string $colname The column name.
-    * 
-    * @param string $coltype The column type.
-    * 
-    * @param mixed $tableInfoOrder Array with columns in the table (result
-    * from tableInfo(), shortened to key 'order').
-    * 
-    * @param mixed $tableInfo Array with information about the table (result
-    * from tableInfo()).
-    * 
-    * @param string $mode The name of the calling function, this can be either
-    * 'verify' or 'alter'.
-    * 
-    * @return bool|object Boolean true if the column has the right type.
-    * Otherwise, either boolean false (case 'alter') or a PEAR_Error
-    * (case 'verify').
-    * 
-    */
-
-    function _checkColumnType($phptype, $colname, $coltype, $tableInfoOrder,
-        $tableInfo, $mode)
-    {
-        // map of valid types for the current RDBMS
-        $map = $GLOBALS['_DB_TABLE']['valid_type'][$phptype];
-
-        // get the column type from tableInfo()
-        $colindex = $tableInfoOrder[$colname];
-        $type = strtolower($tableInfo[$colindex]['type']);
-
-        // workaround for possibly wrong detected column type (taken from MDB2)
-        if ($type == 'unknown' && ($phptype == 'mysql' || $phptype == 'mysqli')) {
-            $type = 'decimal';
-        }
-
-        // strip size information (e.g. NUMERIC(9,2) => NUMERIC) if given
-        if (($pos = strpos($type, '(')) !== false) {
-            $type = substr($type, 0, $pos);
-        }
-
-        // is the type valid for the given DB_Table column type?
-        if (in_array($type, (array)$map[$coltype])) {
-            return true;
-        }
-
-        switch ($mode) {
-
-            case 'alter':
-                return false;
-
-            case 'verify':
-                return DB_Table::throwError(
-                    DB_TABLE_ERR_VER_COLUMN_TYPE,
-                    "(column='$colname', type='$type')"
-                );
-
-        }
-    }
-
-
-   /**
-    * 
-    * Return the index type and the columns belonging to this index.
-    * 
-    * @access private
-    * 
-    * @param mixed $idx_def The index definition.
-    * 
-    * @return mixed Array with the index type and the columns belonging to
-    * this index.
-    * 
-    */
-
-    function _getIndexTypeAndColumns($idx_def, $idxname)
-    {
-        $type = '';
-        $cols = '';
-        if (is_string($idx_def)) {
-            // shorthand for index names: colname => index_type
-            $type = trim($idx_def);
-            $cols = trim($idxname);
-        } elseif (is_array($idx_def)) {
-            // normal: index_name => array('type' => ..., 'cols' => ...)
-            $type = (isset($idx_def['type'])) ? $idx_def['type'] : 'normal';
-            $cols = (isset($idx_def['cols'])) ? $idx_def['cols'] : null;
-        }
-
-        return array($type, $cols);
-    }
-
-
-   /**
-    * 
-    * Check an index name for validity.
-    * 
-    * @access private
-    * 
-    * @param string $idxname The index name.
-    * 
-    * @param string $table The table name.
-    * 
-    * @param string $phptype The DB/MDB2 phptype key.
-    * 
-    * @param string $type The index type.
-    * 
-    * @param mixed $cols The column names for the index. Will become an array
-    * if it is not an array.
-    * 
-    * @param mixed $column_set A DB_Table $this->col array.
-    * 
-    * @param string $newIdxName The new index name (prefixed with the table
-    * name, suffixed with '_idx').
-    * 
-    * @return bool|object Boolean true if the index name is valid or a
-    * PEAR_Error with a description about the invalidity, otherwise.
-    * 
-    */
-
-    function _validateIndexName($idxname, $table, $phptype, $type, &$cols,
-                                $column_set, &$newIdxName)
-    {
-        // index name cannot be a reserved keyword
-        $reserved = in_array(
-            strtoupper($idxname),
-            $GLOBALS['_DB_TABLE']['reserved']
-        );
-
-        if ($reserved && !($type == 'primary' && $idxname == 'PRIMARY')) {
-            return DB_Table::throwError(
-                DB_TABLE_ERR_DECLARE_IDXNAME,
-                "('$idxname')"
-            );
-        }
-
-        // are there any columns for the index?
-        if (! $cols) {
-            return DB_Table::throwError(
-                DB_TABLE_ERR_IDX_NO_COLS,
-                "('$idxname')"
-            );
-        }
-
-        // are there any CLOB columns, or any columns that are not
-        // in the schema?
-        settype($cols, 'array');
-        $valid_cols = array_keys($column_set);
-        foreach ($cols as $colname) {
-
-            if (! in_array($colname, $valid_cols)) {
-                return DB_Table::throwError(
-                    DB_TABLE_ERR_IDX_COL_UNDEF,
-                    "'$idxname' ('$colname')"
-                );
-            }
-
-            if ($column_set[$colname]['type'] == 'clob') {
-                return DB_Table::throwError(
-                    DB_TABLE_ERR_IDX_COL_CLOB,
-                    "'$idxname' ('$colname')"
-                );
-            }
-
-        }
-
-        // we prefix all index names with the table name,
-        // and suffix all index names with '_idx'.  this
-        // is to soothe PostgreSQL, which demands that index
-        // names not collide, even when they indexes are on
-        // different tables.
-        $newIdxName = $table . '_' . $idxname . '_idx';
-
-        // MySQL requires the primary key to be named 'primary', therefore let's
-        // ignore the user defined name
-        if (($phptype == 'mysql' || $phptype == 'mysqli') && $type == 'primary') {
-            $newIdxName = 'primary';
-        }
-            
-        // now check the length; must be under 30 chars to
-        // soothe Oracle.
-        if (   $GLOBALS['_DB_TABLE']['disable_length_check'] === false
-            && strlen($newIdxName) > 30
-           ) {
-            return DB_Table::throwError(
-                DB_TABLE_ERR_IDX_STRLEN,
-                "'$idxname' ('$newIdxName')"
-            );
-        }
-
-        // check index type
-        if ($type != 'primary' && $type != 'unique' && $type != 'normal') {
-            return DB_Table::throwError(
-                DB_TABLE_ERR_IDX_TYPE,
-                "'$idxname' ('$type')"
-            );
-        }
-
-        return true;
-    }
-
-
-   /**
-    * 
-    * Return all indexes for a table.
-    * 
-    * @access public
-    * 
-    * @param object &$db A PEAR DB/MDB2 object.
-    * 
-    * @param string $table The table name.
-    * 
-    * @return mixed Array with all indexes or a PEAR_Error when an error
-    * occured.
-    * 
-    */
-
-    function getIndexes(&$db, $table)
-    {
-        if (is_subclass_of($db, 'db_common')) {
-            $backend = 'db';
-            // workaround for missing index and constraint information methods
-            // in PEAR::DB ==> use adopted code from MDB2's driver classes
-            require_once 'DB/Table/Manager/' . $db->phptype . '.php';
-            $classname = 'DB_Table_Manager_' . $db->phptype;
-            $dbtm = new $classname();
-            $dbtm->_db =& $db;  // pass database instance to the 'workaround' class
-            $manager =& $dbtm;
-            $reverse =& $dbtm;
-        } elseif (is_subclass_of($db, 'mdb2_driver_common')) {
-            $backend = 'mdb2';
-            $manager =& $db->manager;
-            $reverse =& $db->reverse;
-        }
-
-        $indexes = array('normal'  => array(),
-                         'primary' => array(),
-                         'unique'  => array()
-                        );
-
-        // save user defined 'idxname_format' option (MDB2 only)
-        if ($backend == 'mdb2') {
-            $idxname_format = $db->getOption('idxname_format');
-            $db->setOption('idxname_format', '%s');
-        }
-
-        // get table constraints
-        $table_indexes_tmp = $manager->listTableConstraints($table);
-        if (PEAR::isError($table_indexes_tmp)) {
-            // restore user defined 'idxname_format' option (MDB2 only)
-            if ($backend == 'mdb2') {
-               $db->setOption('idxname_format', $idxname_format);
-            }
-            return $table_indexes_tmp;
-        }
-
-        // get fields of table constraints
-        foreach ($table_indexes_tmp as $table_idx_tmp) {
-            $index_fields = $reverse->getTableConstraintDefinition($table,
-                                                              $table_idx_tmp);
-            if (PEAR::isError($index_fields)) {
-                // restore user defined 'idxname_format' option (MDB2 only)
-                if ($backend == 'mdb2') {
-                    $db->setOption('idxname_format', $idxname_format);
-                }
-                return $index_fields;
-            }
-            // get the first key of $index_fields that has boolean true value
-            foreach ($index_fields as $index_type => $value) {
-                if ($value === true) {
-                    break;
-                }
-            }
-            $indexes[$index_type][$table_idx_tmp] = array_keys($index_fields['fields']);
-        }
-
-        // get table indexes
-        $table_indexes_tmp = $manager->listTableIndexes($table);
-        if (PEAR::isError($table_indexes_tmp)) {
-            // restore user defined 'idxname_format' option (MDB2 only)
-            if ($backend == 'mdb2') {
-                $db->setOption('idxname_format', $idxname_format);
-            }
-            return $table_indexes_tmp;
-        }
-
-        // get fields of table indexes
-        foreach ($table_indexes_tmp as $table_idx_tmp) {
-            $index_fields = $reverse->getTableIndexDefinition($table,
-                                                         $table_idx_tmp);
-            if (PEAR::isError($index_fields)) {
-                // restore user defined 'idxname_format' option (MDB2 only)
-                if ($backend == 'mdb2') {
-                    $db->setOption('idxname_format', $idxname_format);
-                }
-                return $index_fields;
-            }
-            $indexes['normal'][$table_idx_tmp] = array_keys($index_fields['fields']);
-        }
-
-        // restore user defined 'idxname_format' option (MDB2 only)
-        if ($backend == 'mdb2') {
-            $db->setOption('idxname_format', $idxname_format);
-        }
-
-        return $indexes;
-    }
-
-
-   /**
-    * 
-    * Check whether an index has the right type and has all specified columns.
-    * 
-    * @access private
-    * 
-    * @param string $idxname The index name.
-    * 
-    * @param string $newIdxName The prefixed and suffixed index name.
-    * 
-    * @param string $type The index type.
-    * 
-    * @param mixed $cols The column names for the index.
-    * 
-    * @param mixed $table_indexes Array with all indexes of the table.
-    * 
-    * @param string $mode The name of the calling function, this can be either
-    * 'verify' or 'alter'.
-    * 
-    * @return bool|object Boolean true if the index has the right type and all
-    * specified columns. Otherwise, either boolean false (case 'alter') or a
-    * PEAR_Error (case 'verify').
-    * 
-    */
-
-    function _checkIndex($idxname, $newIdxName, $type, $cols, &$table_indexes, $mode)
-    {
-        $index_found = false;
-
-        foreach ($table_indexes[$type] as $index_name => $index_fields) {
-            if (strtolower($index_name) == strtolower($newIdxName)) {
-                $index_found = true;
-                array_walk($cols, create_function('&$value,$key',
-                                  '$value = trim(strtolower($value));'));
-                array_walk($index_fields, create_function('&$value,$key',
-                                  '$value = trim(strtolower($value));'));
-                foreach ($index_fields as $index_field) {
-                    if (($key = array_search($index_field, $cols)) !== false) {
-                        unset($cols[$key]);
-                    }
-                }
-                break;
-            }
-        }
-
-        if (!$index_found) {
-            return ($mode == 'alter') ? false : DB_Table::throwError(
-                DB_TABLE_ERR_VER_IDX_MISSING,
-                "'$idxname' ('$newIdxName')"
-            );
-        }
-
-        if (count($cols) > 0) {
-            // string of column names
-            $colstring = implode(', ', $cols);
-            return ($mode == 'alter') ? false : DB_Table::throwError(
-                DB_TABLE_ERR_VER_IDX_COL_MISSING,
-                "'$idxname' ($colstring)"
-            );
-        }
-
-        return true;
-    }
-
-
-   /**
-    * 
-    * Create indexes and contraints.
-    * 
-    * @access private
-    * 
-    * @param object &$db A PEAR DB/MDB2 object.
-    * 
-    * @param string $backend The name of the backend ('db' or 'mdb2').
-    * 
-    * @param string $table The table name.
-    * 
-    * @param mixed $indexes An array with index and constraint definitions.
-    * 
-    * @return bool|object Boolean true on success or a PEAR_Error with a
-    * description about the invalidity, otherwise.
-    * 
-    */
-
-    function _createIndexesAndContraints($db, $backend, $table, $indexes)
-    {
-        if ($backend == 'mdb2') {
-
-            // save user defined 'idxname_format' option
-            $idxname_format = $db->getOption('idxname_format');
-            $db->setOption('idxname_format', '%s');
-
-            // attempt to create the primary key
-            if (!array_key_exists('primary', $indexes)) {
-                $indexes['primary'] = array();
-            }
-            foreach ($indexes['primary'] as $name => $definition) {
-                $result = $db->manager->createConstraint($table, $name, $definition);
-                if (PEAR::isError($result)) {
-                    // restore user defined 'idxname_format' option
-                    $db->setOption('idxname_format', $idxname_format);
-                    return $result;
-                }
-            }
-
-            // attempt to create the unique indexes / constraints
-            if (!array_key_exists('unique', $indexes)) {
-                $indexes['unique'] = array();
-            }
-            foreach ($indexes['unique'] as $name => $definition) {
-                $result = $db->manager->createConstraint($table, $name, $definition);
-                if (PEAR::isError($result)) {
-                    // restore user defined 'idxname_format' option
-                    $db->setOption('idxname_format', $idxname_format);
-                    return $result;
-                }
-            }
-
-            // attempt to create the normal indexes
-            if (!array_key_exists('normal', $indexes)) {
-                $indexes['normal'] = array();
-            }
-            foreach ($indexes['normal'] as $name => $definition) {
-                $result = $db->manager->createIndex($table, $name, $definition);
-                if (PEAR::isError($result)) {
-                    // restore user defined 'idxname_format' option
-                    $db->setOption('idxname_format', $idxname_format);
-                    return $result;
-                }
-            }
-
-            // restore user defined 'idxname_format' option
-            $db->setOption('idxname_format', $idxname_format);
-
-        } else {
-
-            // attempt to create the indexes
-            foreach ($indexes as $cmd) {
-                $result = $db->query($cmd);
-                if (PEAR::isError($result)) {
-                    return $result;
-                }
-            }
-
-        }
-
-        return true;
-
-    }
-
-}
-
-
-/**
-* List of all reserved words for all supported databases. Yes, this is a
-* monster of a list.
-*/
-if (! isset($GLOBALS['_DB_TABLE']['reserved'])) {
-    $GLOBALS['_DB_TABLE']['reserved'] = array(
-        '_ROWID_',
-        'ABSOLUTE',
-        'ACCESS',
-        'ACTION',
-        'ADD',
-        'ADMIN',
-        'AFTER',
-        'AGGREGATE',
-        'ALIAS',
-        'ALL',
-        'ALLOCATE',
-        'ALTER',
-        'ANALYSE',
-        'ANALYZE',
-        'AND',
-        'ANY',
-        'ARE',
-        'ARRAY',
-        'AS',
-        'ASC',
-        'ASENSITIVE',
-        'ASSERTION',
-        'AT',
-        'AUDIT',
-        'AUTHORIZATION',
-        'AUTO_INCREMENT',
-        'AVG',
-        'BACKUP',
-        'BDB',
-        'BEFORE',
-        'BEGIN',
-        'BERKELEYDB',
-        'BETWEEN',
-        'BIGINT',
-        'BINARY',
-        'BIT',
-        'BIT_LENGTH',
-        'BLOB',
-        'BOOLEAN',
-        'BOTH',
-        'BREADTH',
-        'BREAK',
-        'BROWSE',
-        'BULK',
-        'BY',
-        'CALL',
-        'CASCADE',
-        'CASCADED',
-        'CASE',
-        'CAST',
-        'CATALOG',
-        'CHANGE',
-        'CHAR',
-        'CHAR_LENGTH',
-        'CHARACTER',
-        'CHARACTER_LENGTH',
-        'CHECK',
-        'CHECKPOINT',
-        'CLASS',
-        'CLOB',
-        'CLOSE',
-        'CLUSTER',
-        'CLUSTERED',
-        'COALESCE',
-        'COLLATE',
-        'COLLATION',
-        'COLUMN',
-        'COLUMNS',
-        'COMMENT',
-        'COMMIT',
-        'COMPLETION',
-        'COMPRESS',
-        'COMPUTE',
-        'CONDITION',
-        'CONNECT',
-        'CONNECTION',
-        'CONSTRAINT',
-        'CONSTRAINTS',
-        'CONSTRUCTOR',
-        'CONTAINS',
-        'CONTAINSTABLE',
-        'CONTINUE',
-        'CONVERT',
-        'CORRESPONDING',
-        'COUNT',
-        'CREATE',
-        'CROSS',
-        'CUBE',
-        'CURRENT',
-        'CURRENT_DATE',
-        'CURRENT_PATH',
-        'CURRENT_ROLE',
-        'CURRENT_TIME',
-        'CURRENT_TIMESTAMP',
-        'CURRENT_USER',
-        'CURSOR',
-        'CYCLE',
-        'DATA',
-        'DATABASE',
-        'DATABASES',
-        'DATE',
-        'DAY',
-        'DAY_HOUR',
-        'DAY_MICROSECOND',
-        'DAY_MINUTE',
-        'DAY_SECOND',
-        'DBCC',
-        'DEALLOCATE',
-        'DEC',
-        'DECIMAL',
-        'DECLARE',
-        'DEFAULT',
-        'DEFERRABLE',
-        'DEFERRED',
-        'DELAYED',
-        'DELETE',
-        'DENY',
-        'DEPTH',
-        'DEREF',
-        'DESC',
-        'DESCRIBE',
-        'DESCRIPTOR',
-        'DESTROY',
-        'DESTRUCTOR',
-        'DETERMINISTIC',
-        'DIAGNOSTICS',
-        'DICTIONARY',
-        'DISCONNECT',
-        'DISK',
-        'DISTINCT',
-        'DISTINCTROW',
-        'DISTRIBUTED',
-        'DIV',
-        'DO',
-        'DOMAIN',
-        'DOUBLE',
-        'DROP',
-        'DUMMY',
-        'DUMP',
-        'DYNAMIC',
-        'EACH',
-        'ELSE',
-        'ELSEIF',
-        'ENCLOSED',
-        'END',
-        'END-EXEC',
-        'EQUALS',
-        'ERRLVL',
-        'ESCAPE',
-        'ESCAPED',
-        'EVERY',
-        'EXCEPT',
-        'EXCEPTION',
-        'EXCLUSIVE',
-        'EXEC',
-        'EXECUTE',
-        'EXISTS',
-        'EXIT',
-        'EXPLAIN',
-        'EXTERNAL',
-        'EXTRACT',
-        'FALSE',
-        'FETCH',
-        'FIELDS',
-        'FILE',
-        'FILLFACTOR',
-        'FIRST',
-        'FLOAT',
-        'FOR',
-        'FORCE',
-        'FOREIGN',
-        'FOUND',
-        'FRAC_SECOND',
-        'FREE',
-        'FREETEXT',
-        'FREETEXTTABLE',
-        'FREEZE',
-        'FROM',
-        'FULL',
-        'FULLTEXT',
-        'FUNCTION',
-        'GENERAL',
-        'GET',
-        'GLOB',
-        'GLOBAL',
-        'GO',
-        'GOTO',
-        'GRANT',
-        'GROUP',
-        'GROUPING',
-        'HAVING',
-        'HIGH_PRIORITY',
-        'HOLDLOCK',
-        'HOST',
-        'HOUR',
-        'HOUR_MICROSECOND',
-        'HOUR_MINUTE',
-        'HOUR_SECOND',
-        'IDENTIFIED',
-        'IDENTITY',
-        'IDENTITY_INSERT',
-        'IDENTITYCOL',
-        'IF',
-        'IGNORE',
-        'ILIKE',
-        'IMMEDIATE',
-        'IN',
-        'INCREMENT',
-        'INDEX',
-        'INDICATOR',
-        'INFILE',
-        'INITIAL',
-        'INITIALIZE',
-        'INITIALLY',
-        'INNER',
-        'INNODB',
-        'INOUT',
-        'INPUT',
-        'INSENSITIVE',
-        'INSERT',
-        'INT',
-        'INTEGER',
-        'INTERSECT',
-        'INTERVAL',
-        'INTO',
-        'IO_THREAD',
-        'IS',
-        'ISNULL',
-        'ISOLATION',
-        'ITERATE',
-        'JOIN',
-        'KEY',
-        'KEYS',
-        'KILL',
-        'LANGUAGE',
-        'LARGE',
-        'LAST',
-        'LATERAL',
-        'LEADING',
-        'LEAVE',
-        'LEFT',
-        'LESS',
-        'LEVEL',
-        'LIKE',
-        'LIMIT',
-        'LINENO',
-        'LINES',
-        'LOAD',
-        'LOCAL',
-        'LOCALTIME',
-        'LOCALTIMESTAMP',
-        'LOCATOR',
-        'LOCK',
-        'LONG',
-        'LONGBLOB',
-        'LONGTEXT',
-        'LOOP',
-        'LOW_PRIORITY',
-        'LOWER',
-        'MAIN',
-        'MAP',
-        'MASTER_SERVER_ID',
-        'MATCH',
-        'MAX',
-        'MAXEXTENTS',
-        'MEDIUMBLOB',
-        'MEDIUMINT',
-        'MEDIUMTEXT',
-        'MIDDLEINT',
-        'MIN',
-        'MINUS',
-        'MINUTE',
-        'MINUTE_MICROSECOND',
-        'MINUTE_SECOND',
-        'MLSLABEL',
-        'MOD',
-        'MODE',
-        'MODIFIES',
-        'MODIFY',
-        'MODULE',
-        'MONTH',
-        'NAMES',
-        'NATIONAL',
-        'NATURAL',
-        'NCHAR',
-        'NCLOB',
-        'NEW',
-        'NEXT',
-        'NO',
-        'NO_WRITE_TO_BINLOG',
-        'NOAUDIT',
-        'NOCHECK',
-        'NOCOMPRESS',
-        'NONCLUSTERED',
-        'NONE',
-        'NOT',
-        'NOTNULL',
-        'NOWAIT',
-        'NULL',
-        'NULLIF',
-        'NUMBER',
-        'NUMERIC',
-        'OBJECT',
-        'OCTET_LENGTH',
-        'OF',
-        'OFF',
-        'OFFLINE',
-        'OFFSET',
-        'OFFSETS',
-        'OID',
-        'OLD',
-        'ON',
-        'ONLINE',
-        'ONLY',
-        'OPEN',
-        'OPENDATASOURCE',
-        'OPENQUERY',
-        'OPENROWSET',
-        'OPENXML',
-        'OPERATION',
-        'OPTIMIZE',
-        'OPTION',
-        'OPTIONALLY',
-        'OR',
-        'ORDER',
-        'ORDINALITY',
-        'OUT',
-        'OUTER',
-        'OUTFILE',
-        'OUTPUT',
-        'OVER',
-        'OVERLAPS',
-        'PAD',
-        'PARAMETER',
-        'PARAMETERS',
-        'PARTIAL',
-        'PATH',
-        'PCTFREE',
-        'PERCENT',
-        'PLACING',
-        'PLAN',
-        'POSITION',
-        'POSTFIX',
-        'PRECISION',
-        'PREFIX',
-        'PREORDER',
-        'PREPARE',
-        'PRESERVE',
-        'PRIMARY',
-        'PRINT',
-        'PRIOR',
-        'PRIVILEGES',
-        'PROC',
-        'PROCEDURE',
-        'PUBLIC',
-        'PURGE',
-        'RAISERROR',
-        'RAW',
-        'READ',
-        'READS',
-        'READTEXT',
-        'REAL',
-        'RECONFIGURE',
-        'RECURSIVE',
-        'REF',
-        'REFERENCES',
-        'REFERENCING',
-        'REGEXP',
-        'RELATIVE',
-        'RENAME',
-        'REPEAT',
-        'REPLACE',
-        'REPLICATION',
-        'REQUIRE',
-        'RESOURCE',
-        'RESTORE',
-        'RESTRICT',
-        'RESULT',
-        'RETURN',
-        'RETURNS',
-        'REVOKE',
-        'RIGHT',
-        'RLIKE',
-        'ROLE',
-        'ROLLBACK',
-        'ROLLUP',
-        'ROUTINE',
-        'ROW',
-        'ROWCOUNT',
-        'ROWGUIDCOL',
-        'ROWID',
-        'ROWNUM',
-        'ROWS',
-        'RULE',
-        'SAVE',
-        'SAVEPOINT',
-        'SCHEMA',
-        'SCOPE',
-        'SCROLL',
-        'SEARCH',
-        'SECOND',
-        'SECOND_MICROSECOND',
-        'SECTION',
-        'SELECT',
-        'SENSITIVE',
-        'SEPARATOR',
-        'SEQUENCE',
-        'SESSION',
-        'SESSION_USER',
-        'SET',
-        'SETS',
-        'SETUSER',
-        'SHARE',
-        'SHOW',
-        'SHUTDOWN',
-        'SIMILAR',
-        'SIZE',
-        'SMALLINT',
-        'SOME',
-        'SONAME',
-        'SPACE',
-        'SPATIAL',
-        'SPECIFIC',
-        'SPECIFICTYPE',
-        'SQL',
-        'SQL_BIG_RESULT',
-        'SQL_CALC_FOUND_ROWS',
-        'SQL_SMALL_RESULT',
-        'SQL_TSI_DAY',
-        'SQL_TSI_FRAC_SECOND',
-        'SQL_TSI_HOUR',
-        'SQL_TSI_MINUTE',
-        'SQL_TSI_MONTH',
-        'SQL_TSI_QUARTER',
-        'SQL_TSI_SECOND',
-        'SQL_TSI_WEEK',
-        'SQL_TSI_YEAR',
-        'SQLCODE',
-        'SQLERROR',
-        'SQLEXCEPTION',
-        'SQLITE_MASTER',
-        'SQLITE_TEMP_MASTER',
-        'SQLSTATE',
-        'SQLWARNING',
-        'SSL',
-        'START',
-        'STARTING',
-        'STATE',
-        'STATEMENT',
-        'STATIC',
-        'STATISTICS',
-        'STRAIGHT_JOIN',
-        'STRIPED',
-        'STRUCTURE',
-        'SUBSTRING',
-        'SUCCESSFUL',
-        'SUM',
-        'SYNONYM',
-        'SYSDATE',
-        'SYSTEM_USER',
-        'TABLE',
-        'TABLES',
-        'TEMPORARY',
-        'TERMINATE',
-        'TERMINATED',
-        'TEXTSIZE',
-        'THAN',
-        'THEN',
-        'TIME',
-        'TIMESTAMP',
-        'TIMESTAMPADD',
-        'TIMESTAMPDIFF',
-        'TIMEZONE_HOUR',
-        'TIMEZONE_MINUTE',
-        'TINYBLOB',
-        'TINYINT',
-        'TINYTEXT',
-        'TO',
-        'TOP',
-        'TRAILING',
-        'TRAN',
-        'TRANSACTION',
-        'TRANSLATE',
-        'TRANSLATION',
-        'TREAT',
-        'TRIGGER',
-        'TRIM',
-        'TRUE',
-        'TRUNCATE',
-        'TSEQUAL',
-        'UID',
-        'UNDER',
-        'UNDO',
-        'UNION',
-        'UNIQUE',
-        'UNKNOWN',
-        'UNLOCK',
-        'UNNEST',
-        'UNSIGNED',
-        'UPDATE',
-        'UPDATETEXT',
-        'UPPER',
-        'USAGE',
-        'USE',
-        'USER',
-        'USER_RESOURCES',
-        'USING',
-        'UTC_DATE',
-        'UTC_TIME',
-        'UTC_TIMESTAMP',
-        'VALIDATE',
-        'VALUE',
-        'VALUES',
-        'VARBINARY',
-        'VARCHAR',
-        'VARCHAR2',
-        'VARCHARACTER',
-        'VARIABLE',
-        'VARYING',
-        'VERBOSE',
-        'VIEW',
-        'WAITFOR',
-        'WHEN',
-        'WHENEVER',
-        'WHERE',
-        'WHILE',
-        'WITH',
-        'WITHOUT',
-        'WORK',
-        'WRITE',
-        'WRITETEXT',
-        'XOR',
-        'YEAR',
-        'YEAR_MONTH',
-        'ZEROFILL',
-        'ZONE',
-    );
-}
-        
-?>
diff --git a/civicrm/packages/DB/Table/Manager/mysql.php b/civicrm/packages/DB/Table/Manager/mysql.php
deleted file mode 100644
index 8aa36a1a37..0000000000
--- a/civicrm/packages/DB/Table/Manager/mysql.php
+++ /dev/null
@@ -1,443 +0,0 @@
-<?php
-
-/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
-
-/**
- * Index, constraint and alter methods for DB_Table usage with
- * PEAR::DB as backend.
- * 
- * The code in this class was adopted from the MDB2 PEAR package.
- * 
- * PHP versions 4 and 5
- *
- * LICENSE:
- * 
- * Copyright (c) 1997-2007, Lukas Smith <smith@pooteeweet.org>
- *                          Paul M. Jones <pmjones@php.net>
- *                          David C. Morse <morse@php.net>
- *                          Mark Wiesemann <wiesemann@php.net>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *    * Redistributions of source code must retain the above copyright
- *      notice, this list of conditions and the following disclaimer.
- *    * Redistributions in binary form must reproduce the above copyright
- *      notice, this list of conditions and the following disclaimer in the 
- *      documentation and/or other materials provided with the distribution.
- *    * The names of the authors may not be used to endorse or promote products 
- *      derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * @category Database
- * @package  DB_Table
- * @author   Lukas Smith <smith@pooteeweet.org>
- * @author   Mark Wiesemann <wiesemann@php.net>
- * @license  http://opensource.org/licenses/bsd-license.php New BSD License
- * @version  CVS: $Id: mysql.php,v 1.5 2007/12/13 16:52:15 wiesemann Exp $
- * @link     http://pear.php.net/package/DB_Table
- */
-
-/**
- * require DB_Table class
- */
-require_once 'DB/Table.php';
-
-/**
- * Index, constraint and alter methods for DB_Table usage with
- * PEAR::DB as backend.
- * 
- * The code in this class was adopted from the MDB2 PEAR package.
- * 
- * @category Database
- * @package  DB_Table
- * @author   Lukas Smith <smith@pooteeweet.org>
- * @author   Mark Wiesemann <wiesemann@php.net>
- * @version  Release: 1.5.6
- * @link     http://pear.php.net/package/DB_Table
- */
-
-class DB_Table_Manager_mysql {
-
-    /**
-    * 
-    * The PEAR DB object that connects to the database.
-    * 
-    * @access private
-    * 
-    * @var object
-    * 
-    */
-    
-    var $_db = null;
-
-
-    /**
-     * list all indexes in a table
-     *
-     * @param string    $table      name of table that should be used in method
-     * @return mixed data array on success, a PEAR error on failure
-     * @access public
-     */
-    function listTableIndexes($table)
-    {
-        $key_name = 'Key_name';
-        $non_unique = 'Non_unique';
-
-        $query = "SHOW INDEX FROM $table";
-        $indexes = $this->_db->getAll($query, null, DB_FETCHMODE_ASSOC);
-        if (PEAR::isError($indexes)) {
-            return $indexes;
-        }
-
-        $result = array();
-        foreach ($indexes as $index_data) {
-            if ($index_data[$non_unique]) {
-                $result[$index_data[$key_name]] = true;
-            }
-        }
-        $result = array_change_key_case($result, CASE_LOWER);
-
-        return array_keys($result);
-    }
-
-
-    /**
-     * list all constraints in a table
-     *
-     * @param string    $table      name of table that should be used in method
-     * @return mixed data array on success, a PEAR error on failure
-     * @access public
-     */
-    function listTableConstraints($table)
-    {
-        $key_name = 'Key_name';
-        $non_unique = 'Non_unique';
-
-        $query = "SHOW INDEX FROM $table";
-        $indexes = $this->_db->getAll($query, null, DB_FETCHMODE_ASSOC);
-        if (PEAR::isError($indexes)) {
-            return $indexes;
-        }
-
-        $result = array();
-        foreach ($indexes as $index_data) {
-            if (!$index_data[$non_unique]) {
-                if ($index_data[$key_name] !== 'PRIMARY') {
-                    $index = $index_data[$key_name];
-                } else {
-                    $index = 'PRIMARY';
-                }
-                $result[$index] = true;
-            }
-        }
-        $result = array_change_key_case($result, CASE_LOWER);
-
-        return array_keys($result);
-    }
-
-
-    /**
-     * get the structure of an index into an array
-     *
-     * @param string    $table      name of table that should be used in method
-     * @param string    $index_name name of index that should be used in method
-     * @return mixed data array on success, a PEAR error on failure
-     * @access public
-     */
-    function getTableIndexDefinition($table, $index_name)
-    {
-        $result = $this->_db->query("SHOW INDEX FROM $table");
-        if (PEAR::isError($result)) {
-            return $result;
-        }
-
-        $definition = array();
-        while (is_array($row = $result->fetchRow(DB_FETCHMODE_ASSOC))) {
-            $row = array_change_key_case($row, CASE_LOWER);
-            $key_name = $row['key_name'];
-            $key_name = strtolower($key_name);
-
-            if ($index_name == $key_name) {
-                $column_name = $row['column_name'];
-                $column_name = strtolower($column_name);
-                $definition['fields'][$column_name] = array();
-                if (array_key_exists('collation', $row)) {
-                    $definition['fields'][$column_name]['sorting'] = ($row['collation'] == 'A'
-                        ? 'ascending' : 'descending');
-                }
-            }
-        }
-
-        $result->free();
-
-        return $definition;
-    }
-
-
-    /**
-     * get the structure of a constraint into an array
-     *
-     * @param string    $table      name of table that should be used in method
-     * @param string    $index_name name of index that should be used in method
-     * @return mixed data array on success, a PEAR error on failure
-     * @access public
-     */
-    function getTableConstraintDefinition($table, $index_name)
-    {
-        $result = $this->_db->query("SHOW INDEX FROM $table");
-        if (PEAR::isError($result)) {
-            return $result;
-        }
-
-        $definition = array();
-        while (is_array($row = $result->fetchRow(DB_FETCHMODE_ASSOC))) {
-            $row = array_change_key_case($row, CASE_LOWER);
-            $key_name = $row['key_name'];
-            $key_name = strtolower($key_name);
-
-            if ($index_name == $key_name) {
-                if ($row['key_name'] == 'PRIMARY') {
-                    $definition['primary'] = true;
-                } else {
-                    $definition['unique'] = true;
-                }
-                $column_name = $row['column_name'];
-                $column_name = strtolower($column_name);
-                $definition['fields'][$column_name] = array();
-                if (array_key_exists('collation', $row)) {
-                    $definition['fields'][$column_name]['sorting'] = ($row['collation'] == 'A'
-                        ? 'ascending' : 'descending');
-                }
-            }
-        }
-
-        $result->free();
-
-        return $definition;
-    }
-
-    
-    /**
-     * drop existing index
-     *
-     * @param string    $table         name of table that should be used in method
-     * @param string    $name         name of the index to be dropped
-     * @return mixed DB_OK on success, a PEAR error on failure
-     * @access public
-     */
-    function dropIndex($table, $name)
-    {
-        $table = $this->_db->quoteIdentifier($table);
-        $name = $this->_db->quoteIdentifier($name);
-        return $this->_db->query("DROP INDEX $name ON $table");
-    }
-
-
-    /**
-     * drop existing constraint
-     *
-     * @param string    $table         name of table that should be used in method
-     * @param string    $name         name of the constraint to be dropped
-     * @return mixed DB_OK on success, a PEAR error on failure
-     * @access public
-     */
-    function dropConstraint($table, $name)
-    {
-        $table = $this->_db->quoteIdentifier($table);
-        if (strtolower($name) == 'primary') {
-            $query = "ALTER TABLE $table DROP PRIMARY KEY";
-        } else {
-            $name = $this->_db->quoteIdentifier($name);
-            $query = "ALTER TABLE $table DROP INDEX $name";
-        }
-        return $this->_db->query($query);
-    }
-
-
-    /**
-     * alter an existing table
-     *
-     * @param string $name         name of the table that is intended to be changed.
-     * @param array $changes     associative array that contains the details of each type
-     *                             of change that is intended to be performed. The types of
-     *                             changes that are currently supported are defined as follows:
-     *
-     *                             name
-     *
-     *                                New name for the table.
-     *
-     *                            add
-     *
-     *                                Associative array with the names of fields to be added as
-     *                                 indexes of the array. The value of each entry of the array
-     *                                 should be set to another associative array with the properties
-     *                                 of the fields to be added. The properties of the fields should
-     *                                 be the same as defined by the Metabase parser.
-     *
-     *
-     *                            remove
-     *
-     *                                Associative array with the names of fields to be removed as indexes
-     *                                 of the array. Currently the values assigned to each entry are ignored.
-     *                                 An empty array should be used for future compatibility.
-     *
-     *                            rename
-     *
-     *                                Associative array with the names of fields to be renamed as indexes
-     *                                 of the array. The value of each entry of the array should be set to
-     *                                 another associative array with the entry named name with the new
-     *                                 field name and the entry named Declaration that is expected to contain
-     *                                 the portion of the field declaration already in DBMS specific SQL code
-     *                                 as it is used in the CREATE TABLE statement.
-     *
-     *                            change
-     *
-     *                                Associative array with the names of the fields to be changed as indexes
-     *                                 of the array. Keep in mind that if it is intended to change either the
-     *                                 name of a field and any other properties, the change array entries
-     *                                 should have the new names of the fields as array indexes.
-     *
-     *                                The value of each entry of the array should be set to another associative
-     *                                 array with the properties of the fields to that are meant to be changed as
-     *                                 array entries. These entries should be assigned to the new values of the
-     *                                 respective properties. The properties of the fields should be the same
-     *                                 as defined by the Metabase parser.
-     *
-     *                            Example
-     *                                array(
-     *                                    'name' => 'userlist',
-     *                                    'add' => array(
-     *                                        'quota' => array(
-     *                                            'type' => 'integer',
-     *                                            'unsigned' => 1
-     *                                        )
-     *                                    ),
-     *                                    'remove' => array(
-     *                                        'file_limit' => array(),
-     *                                        'time_limit' => array()
-     *                                    ),
-     *                                    'change' => array(
-     *                                        'name' => array(
-     *                                            'length' => '20',
-     *                                            'definition' => array(
-     *                                                'type' => 'text',
-     *                                                'length' => 20,
-     *                                            ),
-     *                                        )
-     *                                    ),
-     *                                    'rename' => array(
-     *                                        'sex' => array(
-     *                                            'name' => 'gender',
-     *                                            'definition' => array(
-     *                                                'type' => 'text',
-     *                                                'length' => 1,
-     *                                                'default' => 'M',
-     *                                            ),
-     *                                        )
-     *                                    )
-     *                                )
-     *
-     * @param boolean $check     (ignored in DB_Table)
-     * @access public
-     *
-     * @return mixed DB_OK on success, a PEAR error on failure
-     */
-    function alterTable($name, $changes, $check)
-    {
-        foreach ($changes as $change_name => $change) {
-            switch ($change_name) {
-            case 'add':
-            case 'remove':
-            case 'change':
-            case 'rename':
-            case 'name':
-                break;
-            default:
-                return DB_Table::throwError(DB_TABLE_ERR_ALTER_TABLE_IMPOS);
-            }
-        }
-
-        $query = '';
-        if (array_key_exists('name', $changes)) {
-            $change_name = $this->_db->quoteIdentifier($changes['name']);
-            $query .= 'RENAME TO ' . $change_name;
-        }
-
-        if (array_key_exists('add', $changes)) {
-            foreach ($changes['add'] as $field_name => $field) {
-                if ($query) {
-                    $query.= ', ';
-                }
-                $query.= 'ADD ' . $field_name . ' ' . $field;
-            }
-        }
-
-        if (array_key_exists('remove', $changes)) {
-            foreach ($changes['remove'] as $field_name => $field) {
-                if ($query) {
-                    $query.= ', ';
-                }
-                $field_name = $this->_db->quoteIdentifier($field_name);
-                $query.= 'DROP ' . $field_name;
-            }
-        }
-
-        $rename = array();
-        if (array_key_exists('rename', $changes)) {
-            foreach ($changes['rename'] as $field_name => $field) {
-                $rename[$field['name']] = $field_name;
-            }
-        }
-
-        if (array_key_exists('change', $changes)) {
-            foreach ($changes['change'] as $field_name => $field) {
-                if ($query) {
-                    $query.= ', ';
-                }
-                if (isset($rename[$field_name])) {
-                    $old_field_name = $rename[$field_name];
-                    unset($rename[$field_name]);
-                } else {
-                    $old_field_name = $field_name;
-                }
-                $old_field_name = $this->_db->quoteIdentifier($old_field_name);
-                $query.= "CHANGE $old_field_name " . $field_name . ' ' . $field['definition'];
-            }
-        }
-
-        if (!empty($rename)) {
-            foreach ($rename as $rename_name => $renamed_field) {
-                if ($query) {
-                    $query.= ', ';
-                }
-                $field = $changes['rename'][$renamed_field];
-                $renamed_field = $this->_db->quoteIdentifier($renamed_field);
-                $query.= 'CHANGE ' . $renamed_field . ' ' . $field['name'] . ' ' . $renamed_field['definition'];
-            }
-        }
-
-        if (!$query) {
-            return DB_OK;
-        }
-
-        $name = $this->_db->quoteIdentifier($name);
-        return $this->_db->query("ALTER TABLE $name $query");
-    }
-
-}
-
-?>
diff --git a/civicrm/packages/DB/Table/Manager/mysqli.php b/civicrm/packages/DB/Table/Manager/mysqli.php
deleted file mode 100644
index 9c817e2212..0000000000
--- a/civicrm/packages/DB/Table/Manager/mysqli.php
+++ /dev/null
@@ -1,440 +0,0 @@
-<?php
-
-/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
-
-/**
- * Index, constraint and alter methods for DB_Table usage with
- * PEAR::DB as backend.
- * 
- * The code in this class was adopted from the MDB2 PEAR package.
- * 
- * PHP versions 4 and 5
- *
- * LICENSE:
- * 
- * Copyright (c) 1997-2007, Lukas Smith <smith@pooteeweet.org>
- *                          Paul M. Jones <pmjones@php.net>
- *                          David C. Morse <morse@php.net>
- *                          Mark Wiesemann <wiesemann@php.net>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *    * Redistributions of source code must retain the above copyright
- *      notice, this list of conditions and the following disclaimer.
- *    * Redistributions in binary form must reproduce the above copyright
- *      notice, this list of conditions and the following disclaimer in the 
- *      documentation and/or other materials provided with the distribution.
- *    * The names of the authors may not be used to endorse or promote products 
- *      derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * @category Database
- * @package  DB_Table
- * @author   Lukas Smith <smith@pooteeweet.org>
- * @author   Mark Wiesemann <wiesemann@php.net>
- * @license  http://opensource.org/licenses/bsd-license.php New BSD License
- * @version  CVS: $Id: mysqli.php,v 1.6 2007/12/13 16:52:15 wiesemann Exp $
- * @link     http://pear.php.net/package/DB_Table
- */
-
-/**
- * require DB_Table class
- */
-require_once 'DB/Table.php';
-
-/**
- * Index, constraint and alter methods for DB_Table usage with
- * PEAR::DB as backend.
- * 
- * The code in this class was adopted from the MDB2 PEAR package.
- * 
- * @category Database
- * @package  DB_Table
- * @author   Lukas Smith <smith@pooteeweet.org>
- * @author   Mark Wiesemann <wiesemann@php.net>
- * @version  Release: 1.5.6
- * @link     http://pear.php.net/package/DB_Table
- */
-class DB_Table_Manager_mysqli {
-
-    /**
-    * 
-    * The PEAR DB object that connects to the database.
-    * 
-    * @access private
-    * 
-    * @var object
-    * 
-    */
-    
-    var $_db = null;
-
-
-    /**
-     * list all indexes in a table
-     *
-     * @param string    $table      name of table that should be used in method
-     * @return mixed data array on success, a PEAR error on failure
-     * @access public
-     */
-    function listTableIndexes($table)
-    {
-        $key_name = 'Key_name';
-        $non_unique = 'Non_unique';
-
-        $query = "SHOW INDEX FROM $table";
-        $indexes = $this->_db->getAll($query, null, DB_FETCHMODE_ASSOC);
-        if (PEAR::isError($indexes)) {
-            return $indexes;
-        }
-
-        $result = array();
-        foreach ($indexes as $index_data) {
-            if ($index_data[$non_unique]) {
-                $result[$index_data[$key_name]] = true;
-            }
-        }
-        $result = array_change_key_case($result, CASE_LOWER);
-
-        return array_keys($result);
-    }
-
-
-    /**
-     * list all constraints in a table
-     *
-     * @param string    $table      name of table that should be used in method
-     * @return mixed data array on success, a PEAR error on failure
-     * @access public
-     */
-    function listTableConstraints($table)
-    {
-        $key_name = 'Key_name';
-        $non_unique = 'Non_unique';
-
-        $query = "SHOW INDEX FROM $table";
-        $indexes = $this->_db->getAll($query, null, DB_FETCHMODE_ASSOC);
-        if (PEAR::isError($indexes)) {
-            return $indexes;
-        }
-
-        $result = array();
-        foreach ($indexes as $index_data) {
-            if (!$index_data[$non_unique]) {
-                if ($index_data[$key_name] !== 'PRIMARY') {
-                    $index = $index_data[$key_name];
-                } else {
-                    $index = 'PRIMARY';
-                }
-                $result[$index] = true;
-            }
-        }
-        $result = array_change_key_case($result, CASE_LOWER);
-
-        return array_keys($result);
-    }
-
-
-    /**
-     * get the structure of an index into an array
-     *
-     * @param string    $table      name of table that should be used in method
-     * @param string    $index_name name of index that should be used in method
-     * @return mixed data array on success, a PEAR error on failure
-     * @access public
-     */
-    function getTableIndexDefinition($table, $index_name)
-    {
-        $result = $this->_db->query("SHOW INDEX FROM $table");
-        if (PEAR::isError($result)) {
-            return $result;
-        }
-
-        $definition = array();
-        while (is_array($row = $result->fetchRow(DB_FETCHMODE_ASSOC))) {
-            $row = array_change_key_case($row, CASE_LOWER);
-            $key_name = $row['key_name'];
-            $key_name = strtolower($key_name);
-            if ($index_name == $key_name) {
-                $column_name = $row['column_name'];
-                $column_name = strtolower($column_name);
-                $definition['fields'][$column_name] = array();
-                if (array_key_exists('collation', $row)) {
-                    $definition['fields'][$column_name]['sorting'] = ($row['collation'] == 'A'
-                        ? 'ascending' : 'descending');
-                }
-            }
-        }
-
-        $result->free();
-
-        return $definition;
-    }
-
-
-    /**
-     * get the structure of a constraint into an array
-     *
-     * @param string    $table      name of table that should be used in method
-     * @param string    $index_name name of index that should be used in method
-     * @return mixed data array on success, a PEAR error on failure
-     * @access public
-     */
-    function getTableConstraintDefinition($table, $index_name)
-    {
-        $result = $this->_db->query("SHOW INDEX FROM $table");
-        if (PEAR::isError($result)) {
-            return $result;
-        }
-
-        $definition = array();
-        while (is_array($row = $result->fetchRow(DB_FETCHMODE_ASSOC))) {
-            $row = array_change_key_case($row, CASE_LOWER);
-            $key_name = $row['key_name'];
-            $key_name = strtolower($key_name);
-            if ($index_name == $key_name) {
-                if ($row['key_name'] == 'PRIMARY') {
-                    $definition['primary'] = true;
-                } else {
-                    $definition['unique'] = true;
-                }
-                $column_name = $row['column_name'];
-                $column_name = strtolower($column_name);
-                $definition['fields'][$column_name] = array();
-                if (array_key_exists('collation', $row)) {
-                    $definition['fields'][$column_name]['sorting'] = ($row['collation'] == 'A'
-                        ? 'ascending' : 'descending');
-                }
-            }
-        }
-
-        $result->free();
-
-        return $definition;
-    }
-
-    
-    /**
-     * drop existing index
-     *
-     * @param string    $table         name of table that should be used in method
-     * @param string    $name         name of the index to be dropped
-     * @return mixed DB_OK on success, a PEAR error on failure
-     * @access public
-     */
-    function dropIndex($table, $name)
-    {
-        $table = $this->_db->quoteIdentifier($table);
-        $name = $this->_db->quoteIdentifier($name);
-        return $this->_db->query("DROP INDEX $name ON $table");
-    }
-
-
-    /**
-     * drop existing constraint
-     *
-     * @param string    $table         name of table that should be used in method
-     * @param string    $name         name of the constraint to be dropped
-     * @return mixed DB_OK on success, a PEAR error on failure
-     * @access public
-     */
-    function dropConstraint($table, $name)
-    {
-        $table = $this->_db->quoteIdentifier($table);
-        if (strtolower($name) == 'primary') {
-            $query = "ALTER TABLE $table DROP PRIMARY KEY";
-        } else {
-            $name = $this->_db->quoteIdentifier($name);
-            $query = "ALTER TABLE $table DROP INDEX $name";
-        }
-        return $this->_db->query($query);
-    }
-
-
-    /**
-     * alter an existing table
-     *
-     * @param string $name         name of the table that is intended to be changed.
-     * @param array $changes     associative array that contains the details of each type
-     *                             of change that is intended to be performed. The types of
-     *                             changes that are currently supported are defined as follows:
-     *
-     *                             name
-     *
-     *                                New name for the table.
-     *
-     *                            add
-     *
-     *                                Associative array with the names of fields to be added as
-     *                                 indexes of the array. The value of each entry of the array
-     *                                 should be set to another associative array with the properties
-     *                                 of the fields to be added. The properties of the fields should
-     *                                 be the same as defined by the Metabase parser.
-     *
-     *
-     *                            remove
-     *
-     *                                Associative array with the names of fields to be removed as indexes
-     *                                 of the array. Currently the values assigned to each entry are ignored.
-     *                                 An empty array should be used for future compatibility.
-     *
-     *                            rename
-     *
-     *                                Associative array with the names of fields to be renamed as indexes
-     *                                 of the array. The value of each entry of the array should be set to
-     *                                 another associative array with the entry named name with the new
-     *                                 field name and the entry named Declaration that is expected to contain
-     *                                 the portion of the field declaration already in DBMS specific SQL code
-     *                                 as it is used in the CREATE TABLE statement.
-     *
-     *                            change
-     *
-     *                                Associative array with the names of the fields to be changed as indexes
-     *                                 of the array. Keep in mind that if it is intended to change either the
-     *                                 name of a field and any other properties, the change array entries
-     *                                 should have the new names of the fields as array indexes.
-     *
-     *                                The value of each entry of the array should be set to another associative
-     *                                 array with the properties of the fields to that are meant to be changed as
-     *                                 array entries. These entries should be assigned to the new values of the
-     *                                 respective properties. The properties of the fields should be the same
-     *                                 as defined by the Metabase parser.
-     *
-     *                            Example
-     *                                array(
-     *                                    'name' => 'userlist',
-     *                                    'add' => array(
-     *                                        'quota' => array(
-     *                                            'type' => 'integer',
-     *                                            'unsigned' => 1
-     *                                        )
-     *                                    ),
-     *                                    'remove' => array(
-     *                                        'file_limit' => array(),
-     *                                        'time_limit' => array()
-     *                                    ),
-     *                                    'change' => array(
-     *                                        'name' => array(
-     *                                            'length' => '20',
-     *                                            'definition' => array(
-     *                                                'type' => 'text',
-     *                                                'length' => 20,
-     *                                            ),
-     *                                        )
-     *                                    ),
-     *                                    'rename' => array(
-     *                                        'sex' => array(
-     *                                            'name' => 'gender',
-     *                                            'definition' => array(
-     *                                                'type' => 'text',
-     *                                                'length' => 1,
-     *                                                'default' => 'M',
-     *                                            ),
-     *                                        )
-     *                                    )
-     *                                )
-     *
-     * @param boolean $check     (ignored in DB_Table)
-     * @access public
-     *
-     * @return mixed DB_OK on success, a PEAR error on failure
-     */
-    function alterTable($name, $changes, $check)
-    {
-        foreach ($changes as $change_name => $change) {
-            switch ($change_name) {
-            case 'add':
-            case 'remove':
-            case 'change':
-            case 'rename':
-            case 'name':
-                break;
-            default:
-                return DB_Table::throwError(DB_TABLE_ERR_ALTER_TABLE_IMPOS);
-            }
-        }
-
-        $query = '';
-        if (array_key_exists('name', $changes)) {
-            $change_name = $this->_db->quoteIdentifier($changes['name']);
-            $query .= 'RENAME TO ' . $change_name;
-        }
-
-        if (array_key_exists('add', $changes)) {
-            foreach ($changes['add'] as $field_name => $field) {
-                if ($query) {
-                    $query.= ', ';
-                }
-                $query.= 'ADD ' . $field_name . ' ' . $field;
-            }
-        }
-
-        if (array_key_exists('remove', $changes)) {
-            foreach ($changes['remove'] as $field_name => $field) {
-                if ($query) {
-                    $query.= ', ';
-                }
-                $field_name = $db->quoteIdentifier($field_name);
-                $query.= 'DROP ' . $field_name;
-            }
-        }
-
-        $rename = array();
-        if (array_key_exists('rename', $changes)) {
-            foreach ($changes['rename'] as $field_name => $field) {
-                $rename[$field['name']] = $field_name;
-            }
-        }
-
-        if (array_key_exists('change', $changes)) {
-            foreach ($changes['change'] as $field_name => $field) {
-                if ($query) {
-                    $query.= ', ';
-                }
-                if (isset($rename[$field_name])) {
-                    $old_field_name = $rename[$field_name];
-                    unset($rename[$field_name]);
-                } else {
-                    $old_field_name = $field_name;
-                }
-                $old_field_name = $this->_db->quoteIdentifier($old_field_name);
-                $query.= "CHANGE $old_field_name " . $field_name . ' ' . $field['definition'];
-            }
-        }
-
-        if (!empty($rename)) {
-            foreach ($rename as $rename_name => $renamed_field) {
-                if ($query) {
-                    $query.= ', ';
-                }
-                $field = $changes['rename'][$renamed_field];
-                $renamed_field = $this->_db->quoteIdentifier($renamed_field);
-                $query.= 'CHANGE ' . $renamed_field . ' ' . $field['name'] . ' ' . $renamed_field['definition'];
-            }
-        }
-
-        if (!$query) {
-            return DB_OK;
-        }
-
-        $name = $this->_db->quoteIdentifier($name);
-        return $this->_db->query("ALTER TABLE $name $query");
-    }
-
-}
-
-?>
diff --git a/civicrm/packages/DB/Table/Manager/pgsql.php b/civicrm/packages/DB/Table/Manager/pgsql.php
deleted file mode 100644
index 9aa213e300..0000000000
--- a/civicrm/packages/DB/Table/Manager/pgsql.php
+++ /dev/null
@@ -1,440 +0,0 @@
-<?php
-
-/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
-
-/**
- * Index, constraint and alter methods for DB_Table usage with
- * PEAR::DB as backend.
- * 
- * The code in this class was adopted from the MDB2 PEAR package.
- * 
- * PHP versions 4 and 5
- *
- * LICENSE:
- * 
- * Copyright (c) 1997-2007, Paul Cooper <pgc@ucecom.com>
- *                          Paul M. Jones <pmjones@php.net>
- *                          David C. Morse <morse@php.net>
- *                          Mark Wiesemann <wiesemann@php.net>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *    * Redistributions of source code must retain the above copyright
- *      notice, this list of conditions and the following disclaimer.
- *    * Redistributions in binary form must reproduce the above copyright
- *      notice, this list of conditions and the following disclaimer in the 
- *      documentation and/or other materials provided with the distribution.
- *    * The names of the authors may not be used to endorse or promote products 
- *      derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * @category Database
- * @package  DB_Table
- * @author   Paul Cooper <pgc@ucecom.com>
- * @author   Mark Wiesemann <wiesemann@php.net>
- * @license  http://opensource.org/licenses/bsd-license.php New BSD License
- * @version  CVS: $Id: pgsql.php,v 1.5 2007/12/13 16:52:15 wiesemann Exp $
- * @link     http://pear.php.net/package/DB_Table
- */
-
-/**
- * require DB_Table class
- */
-require_once 'DB/Table.php';
-
-/**
- * Index, constraint and alter methods for DB_Table usage with
- * PEAR::DB as backend.
- * 
- * The code in this class was adopted from the MDB2 PEAR package.
- * 
- * @category Database
- * @package  DB_Table
- * @author   Paul Cooper <pgc@ucecom.com>
- * @author   Mark Wiesemann <wiesemann@php.net>
- * @version  Release: 1.5.6
- * @link     http://pear.php.net/package/DB_Table
- */
-class DB_Table_Manager_pgsql {
-
-    /**
-    * 
-    * The PEAR DB object that connects to the database.
-    * 
-    * @access private
-    * 
-    * @var object
-    * 
-    */
-    
-    var $_db = null;
-
-
-    /**
-     * list all indexes in a table
-     *
-     * @param string    $table      name of table that should be used in method
-     * @return mixed data array on success, a PEAR error on failure
-     * @access public
-     */
-    function listTableIndexes($table)
-    {
-        $subquery = "SELECT indexrelid FROM pg_index, pg_class";
-        $subquery.= " WHERE pg_class.relname='$table' AND pg_class.oid=pg_index.indrelid AND indisunique != 't' AND indisprimary != 't'";
-        $query = "SELECT relname FROM pg_class WHERE oid IN ($subquery)";
-        $indexes = $this->_db->getCol($query);
-        if (PEAR::isError($indexes)) {
-            return $indexes;
-        }
-
-        $result = array();
-        foreach ($indexes as $index) {
-            $result[$index] = true;
-        }
-        $result = array_change_key_case($result, CASE_LOWER);
-
-        return array_keys($result);
-    }
-
-
-    /**
-     * list all constraints in a table
-     *
-     * @param string    $table      name of table that should be used in method
-     * @return mixed data array on success, a PEAR error on failure
-     * @access public
-     */
-    function listTableConstraints($table)
-    {
-        $subquery = "SELECT indexrelid FROM pg_index, pg_class";
-        $subquery.= " WHERE pg_class.relname='$table' AND pg_class.oid=pg_index.indrelid AND (indisunique = 't' OR indisprimary = 't')";
-        $query = "SELECT relname FROM pg_class WHERE oid IN ($subquery)";
-        $constraints = $this->_db->getCol($query);
-        if (PEAR::isError($constraints)) {
-            return $constraints;
-        }
-
-        $result = array();
-        foreach ($constraints as $constraint) {
-            $result[$constraint] = true;
-        }
-        $result = array_change_key_case($result, CASE_LOWER);
-
-        return array_keys($result);
-    }
-
-
-    /**
-     * get the structure of an index into an array
-     *
-     * @param string    $table      name of table that should be used in method
-     * @param string    $index_name name of index that should be used in method
-     * @return mixed data array on success, a PEAR error on failure
-     * @access public
-     */
-    function getTableIndexDefinition($table, $index_name)
-    {
-        $query = "SELECT relname, indkey FROM pg_index, pg_class
-            WHERE pg_class.relname = ".$this->_db->quoteSmart($index_name)." AND pg_class.oid = pg_index.indexrelid
-               AND indisunique != 't' AND indisprimary != 't'";
-        $row = $this->_db->getRow($query, null, DB_FETCHMODE_ASSOC);
-        if (PEAR::isError($row)) {
-            return $row;
-        }
-
-        $columns = $this->_listTableFields($table);
-
-        $definition = array();
-
-        $index_column_numbers = explode(' ', $row['indkey']);
-
-        foreach ($index_column_numbers as $number) {
-            $definition['fields'][$columns[($number - 1)]] = array('sorting' => 'ascending');
-        }
-        return $definition;
-    }
-
-
-    /**
-     * get the structure of a constraint into an array
-     *
-     * @param string    $table      name of table that should be used in method
-     * @param string    $index_name name of index that should be used in method
-     * @return mixed data array on success, a PEAR error on failure
-     * @access public
-     */
-    function getTableConstraintDefinition($table, $index_name)
-    {
-        $query = "SELECT relname, indisunique, indisprimary, indkey FROM pg_index, pg_class
-            WHERE pg_class.relname = ".$this->_db->quoteSmart($index_name)." AND pg_class.oid = pg_index.indexrelid
-              AND (indisunique = 't' OR indisprimary = 't')";
-        $row = $this->_db->getRow($query, null, DB_FETCHMODE_ASSOC);
-        if (PEAR::isError($row)) {
-            return $row;
-        }
-
-        $columns = $this->_listTableFields($table);
-
-        $definition = array();
-        if ($row['indisprimary'] == 't') {
-            $definition['primary'] = true;
-        } elseif ($row['indisunique'] == 't') {
-            $definition['unique'] = true;
-        }
-
-        $index_column_numbers = explode(' ', $row['indkey']);
-
-        foreach ($index_column_numbers as $number) {
-            $definition['fields'][$columns[($number - 1)]] = array('sorting' => 'ascending');
-        }
-        return $definition;
-    }
-
-    /**
-     * list all fields in a tables in the current database
-     *
-     * @param string $table name of table that should be used in method
-     * @return mixed data array on success, a PEAR error on failure
-     * @access private
-     */
-    function _listTableFields($table)
-    {
-        $table = $this->_db->quoteIdentifier($table);
-        $result2 = $this->_db->query("SELECT * FROM $table");
-        if (PEAR::isError($result2)) {
-            return $result2;
-        }
-        $columns = array();
-        $numcols = $result2->numCols();
-        for ($column = 0; $column < $numcols; $column++) {
-            $column_name = @pg_field_name($result2->result, $column);
-            $columns[$column_name] = $column;
-        }
-        $result2->free();
-        return array_flip($columns);
-    }
-
-    
-    /**
-     * drop existing index
-     *
-     * @param string    $table         name of table that should be used in method
-     * @param string    $name         name of the index to be dropped
-     * @return mixed DB_OK on success, a PEAR error on failure
-     * @access public
-     */
-    function dropIndex($table, $name)
-    {
-        $name = $this->_db->quoteIdentifier($name);
-        return $this->_db->query("DROP INDEX $name");
-    }
-
-
-    /**
-     * drop existing constraint
-     *
-     * @param string    $table         name of table that should be used in method
-     * @param string    $name         name of the constraint to be dropped
-     * @return mixed DB_OK on success, a PEAR error on failure
-     * @access public
-     */
-    function dropConstraint($table, $name)
-    {
-        $table = $this->_db->quoteIdentifier($table);
-        $name = $this->_db->quoteIdentifier($name);
-        return $this->_db->query("ALTER TABLE $table DROP CONSTRAINT $name");
-    }
-
-
-    /**
-     * alter an existing table
-     *
-     * @param string $name         name of the table that is intended to be changed.
-     * @param array $changes     associative array that contains the details of each type
-     *                             of change that is intended to be performed. The types of
-     *                             changes that are currently supported are defined as follows:
-     *
-     *                             name
-     *
-     *                                New name for the table.
-     *
-     *                            add
-     *
-     *                                Associative array with the names of fields to be added as
-     *                                 indexes of the array. The value of each entry of the array
-     *                                 should be set to another associative array with the properties
-     *                                 of the fields to be added. The properties of the fields should
-     *                                 be the same as defined by the Metabase parser.
-     *
-     *
-     *                            remove
-     *
-     *                                Associative array with the names of fields to be removed as indexes
-     *                                 of the array. Currently the values assigned to each entry are ignored.
-     *                                 An empty array should be used for future compatibility.
-     *
-     *                            rename
-     *
-     *                                Associative array with the names of fields to be renamed as indexes
-     *                                 of the array. The value of each entry of the array should be set to
-     *                                 another associative array with the entry named name with the new
-     *                                 field name and the entry named Declaration that is expected to contain
-     *                                 the portion of the field declaration already in DBMS specific SQL code
-     *                                 as it is used in the CREATE TABLE statement.
-     *
-     *                            change
-     *
-     *                                Associative array with the names of the fields to be changed as indexes
-     *                                 of the array. Keep in mind that if it is intended to change either the
-     *                                 name of a field and any other properties, the change array entries
-     *                                 should have the new names of the fields as array indexes.
-     *
-     *                                The value of each entry of the array should be set to another associative
-     *                                 array with the properties of the fields to that are meant to be changed as
-     *                                 array entries. These entries should be assigned to the new values of the
-     *                                 respective properties. The properties of the fields should be the same
-     *                                 as defined by the Metabase parser.
-     *
-     *                            Example
-     *                                array(
-     *                                    'name' => 'userlist',
-     *                                    'add' => array(
-     *                                        'quota' => array(
-     *                                            'type' => 'integer',
-     *                                            'unsigned' => 1
-     *                                        )
-     *                                    ),
-     *                                    'remove' => array(
-     *                                        'file_limit' => array(),
-     *                                        'time_limit' => array()
-     *                                    ),
-     *                                    'change' => array(
-     *                                        'name' => array(
-     *                                            'length' => '20',
-     *                                            'definition' => array(
-     *                                                'type' => 'text',
-     *                                                'length' => 20,
-     *                                            ),
-     *                                        )
-     *                                    ),
-     *                                    'rename' => array(
-     *                                        'sex' => array(
-     *                                            'name' => 'gender',
-     *                                            'definition' => array(
-     *                                                'type' => 'text',
-     *                                                'length' => 1,
-     *                                                'default' => 'M',
-     *                                            ),
-     *                                        )
-     *                                    )
-     *                                )
-     *
-     * @param boolean $check     (ignored in DB_Table)
-     * @access public
-     *
-     * @return mixed DB_OK on success, a PEAR error on failure
-     */
-    function alterTable($name, $changes, $check)
-    {
-        foreach ($changes as $change_name => $change) {
-            switch ($change_name) {
-            case 'add':
-            case 'remove':
-            case 'change':
-            case 'name':
-            case 'rename':
-                break;
-            default:
-                return DB_Table::throwError(DB_TABLE_ERR_ALTER_TABLE_IMPOS);
-            }
-        }
-
-        if (array_key_exists('add', $changes)) {
-            foreach ($changes['add'] as $field_name => $field) {
-                $query = 'ADD ' . $field_name . ' ' . $field;
-                $result = $this->_db->query("ALTER TABLE $name $query");
-                if (PEAR::isError($result)) {
-                    return $result;
-                }
-            }
-        }
-
-        if (array_key_exists('remove', $changes)) {
-            foreach ($changes['remove'] as $field_name => $field) {
-                $field_name = $this->_db->quoteIdentifier($field_name);
-                $query = 'DROP ' . $field_name;
-                $result = $this->_db->query("ALTER TABLE $name $query");
-                if (PEAR::isError($result)) {
-                    return $result;
-                }
-            }
-        }
-
-        if (array_key_exists('change', $changes)) {
-            foreach ($changes['change'] as $field_name => $field) {
-                $field_name = $this->_db->quoteIdentifier($field_name);
-                if (array_key_exists('type', $field)) {
-                    $query = "ALTER $field_name TYPE " . $field['definition'];
-                    $result = $this->_db->query("ALTER TABLE $name $query");
-                    if (PEAR::isError($result)) {
-                        return $result;
-                    }
-                }
-/* default / notnull changes not (yet) supported in DB_Table                
-                if (array_key_exists('default', $field)) {
-                    $query = "ALTER $field_name SET DEFAULT ".$db->quote($field['definition']['default'], $field['definition']['type']);
-                    $result = $db->exec("ALTER TABLE $name $query");
-                    if (PEAR::isError($result)) {
-                        return $result;
-                    }
-                }
-                if (array_key_exists('notnull', $field)) {
-                    $query.= "ALTER $field_name ".($field['definition']['notnull'] ? "SET" : "DROP").' NOT NULL';
-                    $result = $db->exec("ALTER TABLE $name $query");
-                    if (PEAR::isError($result)) {
-                        return $result;
-                    }
-                }
-*/
-            }
-        }
-
-        if (array_key_exists('rename', $changes)) {
-            foreach ($changes['rename'] as $field_name => $field) {
-                $field_name = $this->_db->quoteIdentifier($field_name);
-                $result = $this->_db->query("ALTER TABLE $name RENAME COLUMN $field_name TO ".$this->_db->quoteIdentifier($field['name']));
-                if (PEAR::isError($result)) {
-                    return $result;
-                }
-            }
-        }
-
-        $name = $this->_db->quoteIdentifier($name);
-        if (array_key_exists('name', $changes)) {
-            $change_name = $this->_db->quoteIdentifier($changes['name']);
-            $result = $this->_db->query("ALTER TABLE $name RENAME TO ".$change_name);
-            if (PEAR::isError($result)) {
-                return $result;
-            }
-        }
-
-        return DB_OK;
-    }
-
-}
-
-?>
diff --git a/civicrm/packages/DB/Table/QuickForm.php b/civicrm/packages/DB/Table/QuickForm.php
deleted file mode 100644
index 2d751dc790..0000000000
--- a/civicrm/packages/DB/Table/QuickForm.php
+++ /dev/null
@@ -1,1173 +0,0 @@
-<?php
-
-/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
-
-/**
- * DB_Table_QuickForm creates HTML_QuickForm objects from DB_Table properties.
- * 
- * PHP versions 4 and 5
- *
- * LICENSE:
- * 
- * Copyright (c) 1997-2007, Paul M. Jones <pmjones@php.net>
- *                          David C. Morse <morse@php.net>
- *                          Mark Wiesemann <wiesemann@php.net>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *    * Redistributions of source code must retain the above copyright
- *      notice, this list of conditions and the following disclaimer.
- *    * Redistributions in binary form must reproduce the above copyright
- *      notice, this list of conditions and the following disclaimer in the 
- *      documentation and/or other materials provided with the distribution.
- *    * The names of the authors may not be used to endorse or promote products 
- *      derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * @category Database
- * @package  DB_Table
- * @author   Paul M. Jones <pmjones@php.net>
- * @author   David C. Morse <morse@php.net>
- * @author   Mark Wiesemann <wiesemann@php.net>
- * @license  http://opensource.org/licenses/bsd-license.php New BSD License
- * @version  CVS: $Id: QuickForm.php,v 1.45 2008/03/28 20:00:38 wiesemann Exp $
- * @link     http://pear.php.net/package/DB_Table
- */
-
-/**
-* Needed to build forms.
-*/
-require_once 'HTML/QuickForm.php';
-
-/**
-* US-English messages for some QuickForm rules.  Moritz Heidkamp
-* suggested this approach for easier i18n.
-*/
-if (! isset($GLOBALS['_DB_TABLE']['qf_rules'])) {
-    $GLOBALS['_DB_TABLE']['qf_rules'] = array(
-      'required'  => 'The item %s is required.',
-      'numeric'   => 'The item %s must be numbers only.',
-      'maxlength' => 'The item %s can have no more than %d characters.'
-    );
-}
-
-/**
-* If you want to use an extended HTML_QuickForm object, you can specify the
-* class name in $_DB_TABLE['qf_class_name'].
-* ATTENTION: You have to include the class file yourself, DB_Table does
-* not take care of this!
-*/
-if (!isset($GLOBALS['_DB_TABLE']['qf_class_name'])) {
-    $GLOBALS['_DB_TABLE']['qf_class_name'] = 'HTML_QuickForm';
-}
-
-/**
- * DB_Table_QuickForm creates HTML_QuickForm objects from DB_Table properties.
- * 
- * DB_Table_QuickForm provides HTML form creation facilities based on
- * DB_Table column definitions transformed into HTML_QuickForm elements.
- * 
- * @category Database
- * @package  DB_Table
- * @author   Paul M. Jones <pmjones@php.net>
- * @author   David C. Morse <morse@php.net>
- * @author   Mark Wiesemann <wiesemann@php.net>
- * @version  Release: 1.5.6
- * @link     http://pear.php.net/package/DB_Table
- */
-
-class DB_Table_QuickForm {
-    
-    
-    /**
-    * 
-    * Build a form based on DB_Table column definitions.
-    * 
-    * @static
-    * 
-    * @access public
-    * 
-    * @param array $cols A sequential array of DB_Table column definitions
-    * from which to create form elements.
-    * 
-    * @param string $arrayName By default, the form will use the names
-    * of the columns as the names of the form elements.  If you pass
-    * $arrayName, the column names will become keys in an array named
-    * for this parameter.
-    * 
-    * @param array $args An associative array of optional arguments to
-    * pass to the QuickForm object.  The keys are...
-    *
-    * 'formName' : String, name of the form; defaults to the name of the
-    * table.
-    * 
-    * 'method' : String, form method; defaults to 'post'.
-    * 
-    * 'action' : String, form action; defaults to
-    * $_SERVER['REQUEST_URI'].
-    * 
-    * 'target' : String, form target target; defaults to '_self'
-    * 
-    * 'attributes' : Associative array, extra attributes for <form>
-    * tag; the key is the attribute name and the value is attribute
-    * value.
-    * 
-    * 'trackSubmit' : Boolean, whether to track if the form was
-    * submitted by adding a special hidden field
-    * 
-    * @param string $clientValidate By default, validation will match
-    * the 'qf_client' value from the column definition.  However,
-    * if you set $clientValidate to true or false, this will
-    * override the value from the column definition.
-    *
-    * @param array $formFilters An array with filter function names or
-    * callbacks that will be applied to all form elements.
-    * 
-    * @return object HTML_QuickForm
-    * 
-    * @see HTML_QuickForm
-    *
-    * @see DB_Table_QuickForm::createForm()
-    * 
-    */
-    
-    function &getForm($cols, $arrayName = null, $args = array(),
-        $clientValidate = null, $formFilters = null)
-    {
-        $form = DB_Table_QuickForm::createForm($args);
-        DB_Table_QuickForm::addElements($form, $cols, $arrayName);
-        DB_Table_QuickForm::addRules($form, $cols, $arrayName, $clientValidate);
-        DB_Table_QuickForm::addFilters($form, $cols, $arrayName, $formFilters);
-        
-        return $form;
-    }
-    
-    
-    /**
-    * 
-    * Creates an empty form object.
-    *
-    * In case you want more control over your form, you can call this function
-    * to create it, then add whatever elements you want.
-    *
-    * @static
-    * 
-    * @access public
-    * 
-    * @author Ian Eure <ieure@php.net>
-    * 
-    * @param array $args An associative array of optional arguments to
-    * pass to the QuickForm object.  The keys are...
-    *
-    * 'formName' : String, name of the form; defaults to the name of the
-    * table.
-    * 
-    * 'method' : String, form method; defaults to 'post'.
-    * 
-    * 'action' : String, form action; defaults to
-    * $_SERVER['REQUEST_URI'].
-    * 
-    * 'target' : String, form target target; defaults to '_self'
-    * 
-    * 'attributes' : Associative array, extra attributes for <form>
-    * tag; the key is the attribute name and the value is attribute
-    * value.
-    * 
-    * 'trackSubmit' : Boolean, whether to track if the form was
-    * submitted by adding a special hidden field
-    * 
-    * @return object HTML_QuickForm
-    * 
-    */
-    
-    function &createForm($args = array())
-    {
-        if (isset($args['formName'])) {
-            $formName = $args['formName'];
-        } elseif (isset($this)) {
-            $formName = $this->table;
-        } else {
-            $formName = '_db_table_form_';
-        }
-            
-        $method = isset($args['method'])
-            ? $args['method'] : 'post';
-        
-        $action = isset($args['action'])
-            ? $args['action'] : $_SERVER['REQUEST_URI'];
-        
-        $target = isset($args['target'])
-            ? $args['target'] : '_self';
-        
-        $attributes = isset($args['attributes'])
-            ? $args['attributes'] : null;
-        
-        $trackSubmit = isset($args['trackSubmit'])
-            ? $args['trackSubmit'] : false;
-        
-        $form = new $GLOBALS['_DB_TABLE']['qf_class_name']($formName, $method,
-            $action, $target, $attributes, $trackSubmit);
-
-        return $form;
-    }
-    
-    
-    /**
-    * 
-    * Adds DB_Table columns to a pre-existing HTML_QuickForm object.
-    * 
-    * @author Ian Eure <ieure@php.net>
-    * 
-    * @static
-    * 
-    * @access public
-    * 
-    * @param object &$form An HTML_QuickForm object.
-    * 
-    * @param array $cols A sequential array of DB_Table column definitions
-    * from which to create form elements.
-    * 
-    * @param string $arrayName By default, the form will use the names
-    * of the columns as the names of the form elements.  If you pass
-    * $arrayName, the column names will become keys in an array named
-    * for this parameter.
-    * 
-    * @return void
-    * 
-    */
-    
-    function addElements(&$form, $cols, $arrayName = null)
-    {
-        $elements = DB_Table_QuickForm::getElements($cols, $arrayName);
-        $cols_keys = array_keys($cols);
-        foreach (array_keys($elements) as $k) {
-        
-            $element =& $elements[$k];
-            
-            // are we adding a group?
-            if (is_array($element)) {
-                
-                // get the label for the group.  have to do it this way
-                // because the group of elements does not itself have a
-                // label, there are only the labels for the individual
-                // elements.
-                $tmp = $cols[$cols_keys[$k]];
-                if (! isset($tmp['qf_label'])) {
-                    $label = $cols_keys[$k];
-                    if ($arrayName) {
-                        $label = $arrayName . "[$label]";
-                    }
-                } else {
-                    $label = $tmp['qf_label'];
-                }
-                   
-                // set the element name
-                if ($arrayName) {
-                    $name = $arrayName . '[' . $cols_keys[$k] . ']';
-                } else {
-                	$name = $cols_keys[$k];
-                }
-
-                // fix the column definition temporarily to get the separator
-                // for the group
-                $col = $cols[$cols_keys[$k]];
-                DB_Table_QuickForm::fixColDef($col, $name);
-
-                // done
-                $group =& $form->addGroup($element, $name, $label,
-                                          $col['qf_groupsep']);
-
-                // set default value (if given) for radio elements
-                // (reason: QF "resets" the checked state, when adding a group)
-                if ($tmp['qf_type'] == 'radio' && isset($tmp['qf_setvalue'])) {
-                    $form->setDefaults(array($name => $tmp['qf_setvalue']));
-                }
-
-            } elseif (is_object($element)) {
-                $form->addElement($element);
-            }
-        }
-    }
-
-    /**
-    * 
-    * Gets controls for a list of columns
-    * 
-    * @author Ian Eure <ieure@php.net>
-    * 
-    * @static
-    * 
-    * @access public
-    * 
-    * @param object &$form An HTML_QuickForm object.
-    * 
-    * @param array $cols A sequential array of DB_Table column definitions
-    * from which to create form elements.
-    * 
-    * @param string $arrayName By default, the form will use the names
-    * of the columns as the names of the form elements.  If you pass
-    * $arrayName, the column names will become keys in an array named
-    * for this parameter.
-    * 
-    * @return array Form elements
-    * 
-    */
-    
-    function &getElements($cols, $arrayName = null)
-    {
-        $elements = array();
-        
-        foreach ($cols as $name => $col) {
-            
-            if ($arrayName) {
-                $elemname = $arrayName . "[$name]";
-            } else {
-                $elemname = $name;
-            }
-            
-            DB_Table_QuickForm::fixColDef($col, $elemname);
-
-            $elements[] = DB_Table_QuickForm::getElement($col, $elemname);
-        }
-        
-        return $elements;
-    }
-    
-    
-    /**
-    * 
-    * Build a single QuickForm element based on a DB_Table column.
-    * 
-    * @static
-    * 
-    * @access public
-    * 
-    * @param array $col A DB_Table column definition.
-    * 
-    * @param string $elemname The name to use for the generated QuickForm
-    * element.
-    * 
-    * @return object HTML_QuickForm_Element
-    * 
-    */
-    
-    function &getElement($col, $elemname)
-    {
-        if (isset($col['qf_setvalue'])) {
-            $setval = $col['qf_setvalue'];
-        }
-        
-        switch ($col['qf_type']) {
-        
-        case 'advcheckbox':
-        case 'checkbox':
-            
-            $element =& HTML_QuickForm::createElement(
-                'advcheckbox',
-                $elemname,
-                $col['qf_label'],
-                isset($col['qf_label_append']) ?
-                    $col['qf_label_append'] : null,
-                $col['qf_attrs'],
-                $col['qf_vals']
-            );
-            
-            // WARNING: advcheckbox elements in HTML_QuickForm v3.2.2
-            // and earlier do not honor setChecked(); they will always
-            // be un-checked, unless a POST value sets them.  Upgrade
-            // to QF 3.2.3 or later.
-            if (isset($setval) && $setval == true) {
-                $element->setChecked(true);
-            } else {
-                $element->setChecked(false);
-            }
-            
-            break;
-            
-        case 'autocomplete':
-        
-            $element =& HTML_QuickForm::createElement(
-                $col['qf_type'],
-                $elemname,
-                $col['qf_label'],
-                $col['qf_vals'],
-                $col['qf_attrs']
-            );
-            
-            if (isset($setval)) {
-                $element->setValue($setval);
-            }
-            
-            break;
-            
-        case 'date':
-        
-            if (! isset($col['qf_opts']['format'])) {
-                $col['qf_opts']['format'] = 'Y-m-d';
-            }
-            
-            $element =& HTML_QuickForm::createElement(
-                'date',
-                $elemname,
-                $col['qf_label'],
-                $col['qf_opts'],
-                $col['qf_attrs']
-            );
-            
-            if (isset($setval)) {
-                $element->setValue($setval);
-            }
-            
-            break;
-            
-        case 'time':
-        
-            if (! isset($col['qf_opts']['format'])) {
-                $col['qf_opts']['format'] = 'H:i:s';
-            }
-            
-            $element =& HTML_QuickForm::createElement(
-                'date',
-                $elemname,
-                $col['qf_label'],
-                $col['qf_opts'],
-                $col['qf_attrs']
-            );
-            
-            if (isset($setval)) {
-                $element->setValue($setval);
-            }
-            
-            break;
-
-        case 'timestamp':
-        
-            if (! isset($col['qf_opts']['format'])) {
-                $col['qf_opts']['format'] = 'Y-m-d H:i:s';
-            }
-            
-            $element =& HTML_QuickForm::createElement(
-                'date',
-                $elemname,
-                $col['qf_label'],
-                $col['qf_opts'],
-                $col['qf_attrs']
-            );
-            
-            if (isset($setval)) {
-                $element->setValue($setval);
-            }
-            
-            break;
-        
-        case 'hidden':
-        
-            $element =& HTML_QuickForm::createElement(
-                $col['qf_type'],
-                $elemname,
-                null,
-                $col['qf_attrs']
-            );
-            
-            if (isset($setval)) {
-                $element->setValue($setval);
-            }
-            
-            break;
-            
-            
-        case 'radio':
-        
-            $element = array();
-            
-            foreach ((array) $col['qf_vals'] as $btnvalue => $btnlabel) {
-                
-                $element[] =& HTML_QuickForm::createElement(
-                    $col['qf_type'],
-                    null, // elemname not added because this is a group
-                    null,
-                    $btnlabel,
-                    $btnvalue,
-                    $col['qf_attrs']
-                );
-                
-            }
-            
-            break;
-            
-        case 'select':
-            
-            $element =& HTML_QuickForm::createElement(
-                $col['qf_type'],
-                $elemname,
-                $col['qf_label'],
-                $col['qf_vals'],
-                $col['qf_attrs']
-            );
-            
-            if (isset($setval)) {
-                $element->setSelected($setval);
-            }
-            
-            break;
-            
-        case 'password':
-        case 'text':
-        case 'textarea':
-        
-            if (! isset($col['qf_attrs']['maxlength']) &&
-                isset($col['size'])) {
-                $col['qf_attrs']['maxlength'] = $col['size'];
-            }
-            
-            $element =& HTML_QuickForm::createElement(
-                $col['qf_type'],
-                $elemname,
-                $col['qf_label'],
-                $col['qf_attrs']
-            );
-            
-            if (isset($setval)) {
-                $element->setValue($setval);
-            }
-            
-            break;
-        
-        case 'static':
-            $element =& HTML_QuickForm::createElement(
-                $col['qf_type'],
-                $elemname,
-                $col['qf_label'],
-                (isset($setval) ? $setval : '')
-            );
-            break;
-
-        case 'hierselect':
-
-            $element =& HTML_QuickForm::createElement(
-                $col['qf_type'],
-                $elemname,
-                $col['qf_label'],
-                $col['qf_attrs'],
-                $col['qf_groupsep']
-            );
-
-            if (isset($setval)) {
-                $element->setValue($setval);
-            }
-
-            break;
-
-        case 'jscalendar':
-
-            $element =& HTML_QuickForm::createElement(
-                $col['qf_type'],
-                $elemname,
-                $col['qf_label'],
-                $col['qf_opts'],
-                $col['qf_attrs']
-            );
-
-            if (isset($setval)) {
-                $element->setValue($setval);
-            }
-
-            break;
-
-        case 'header':
-
-            $element =& HTML_QuickForm::createElement(
-                $col['qf_type'],
-                $elemname
-            );
-
-            if (isset($setval)) {
-                $element->setValue($setval);
-            }
-
-            break;
-
-        case 'static':
-
-            $element =& HTML_QuickForm::createElement(
-                $col['qf_type'],
-                $elemname,
-                $col['qf_label']
-            );
-
-            if (isset($setval)) {
-                $element->setValue($setval);
-            }
-
-            break;
-
-        case 'link':
-
-            $element =& HTML_QuickForm::createElement(
-                $col['qf_type'],
-                $elemname,
-                $col['qf_label'],
-                $col['qf_href'], // link href
-                $setval,  // link text
-                $col['qf_attrs']
-            );
-
-            break;
-
-        case 'reset':
-        case 'submit':
-
-            $element =& HTML_QuickForm::createElement(
-                $col['qf_type'],
-                $elemname,
-                null,
-                $col['qf_attrs']
-            );
-
-            if (isset($setval)) {
-                $element->setValue($setval);
-            }
-
-            break;
-
-        case 'callback':  // custom QF elements that need more than
-                          // the standard parameters
-                          // code from Arne Bippes <arne.bippes@brandao.de>
-
-            if (is_callable(array($col['qf_callback'], 'createElement'))) {
-                // Does an object with name from $col['qf_callback'] and
-                // a method with name 'createElement' exist?
-                $ret_value = call_user_func_array(
-                    array($col['qf_callback'], 'createElement'),
-                    array(&$element, &$col, &$elemname, &$setval));
-            }
-            elseif (is_callable($col['qf_callback'])) {
-                // Does a method with name from $col['qf_callback'] exist?
-                $ret_value = call_user_func_array(
-                    $col['qf_callback'],
-                    array(&$element, &$col, &$elemname, &$setval));
-            }
-            if ($ret_value) {
-                break;
-            }
-            // fall into default block of switch statement:
-            // - if $col['qf_callback'] is ...
-            //   - not a valid object
-            //   - a valid object, but a method 'createElement' doesn't exist
-            //   - not a valid method name
-            // - if an error occured in 'createElement' or in the method
-            
-        default:
-            
-            /**
-            * @author Moritz Heidkamp <moritz.heidkamp@invision-team.de>
-            */
-            
-            // not a recognized type.  is it registered with QuickForm?
-            if (HTML_QuickForm::isTypeRegistered($col['qf_type'])) {
-                
-                // yes, create it with some minimalist parameters
-                $element =& HTML_QuickForm::createElement(
-                    $col['qf_type'],
-                    $elemname,
-                    $col['qf_label'],
-                    $col['qf_attrs']
-                );
-                
-                // set its default value, if there is one
-                if (isset($setval)) {
-                    $element->setValue($setval);
-                }
-                
-            } else {
-                // element type is not registered with QuickForm.
-                $element = null;
-            }
-            
-            break;
-
-        }
-        
-        // done
-        return $element;
-    }
-    
-    
-    /**
-    * 
-    * Build an array of form elements based from DB_Table columns.
-    * 
-    * @static
-    * 
-    * @access public
-    * 
-    * @param array $cols A sequential array of DB_Table column
-    * definitions from which to create form elements.
-    * 
-    * @param string $arrayName By default, the form will use the names
-    * of the columns as the names of the form elements.  If you pass
-    * $arrayName, the column names will become keys in an array named
-    * for this parameter.
-    * 
-    * @return array An array of HTML_QuickForm_Element objects.
-    * 
-    */
-    
-    function &getGroup($cols, $arrayName = null)
-    {
-        $group = array();
-        
-        foreach ($cols as $name => $col) {
-            
-            if ($arrayName) {
-                $elemname = $arrayName . "[$name]";
-            } else {
-                $elemname = $name;
-            }
-            
-            DB_Table_QuickForm::fixColDef($col, $elemname);
-            
-            $group[] = DB_Table_QuickForm::getElement($col, $elemname);
-        }
-        
-        return $group;
-    }
-    
-    
-    /**
-    * 
-    * Adds static form elements like 'header', 'static', 'submit' or 'reset' to
-    * a pre-existing HTML_QuickForm object.
-    * 
-    * @static
-    * 
-    * @access public
-    * 
-    * @param object &$form An HTML_QuickForm object.
-    * 
-    * @param array $elements A sequential array of form element definitions.
-    * 
-    * @return void
-    * 
-    */
-    
-    function addStaticElements(&$form, $elements)
-    {
-        foreach ($elements as $name => $elemDef) {
-
-            DB_Table_QuickForm::fixColDef($elemDef, $name);
-
-            $element = DB_Table_QuickForm::getElement($elemDef, $name);
-
-            if (!is_object($element)) {
-                continue;
-            }
-
-            if (isset($elemDef['before']) && !empty($elemDef['before'])) {
-                $form->insertElementBefore($element, $elemDef['before']);
-            } else {
-                $form->addElement($element);
-            }
-        }
-    }
-    
-    
-    /**
-    *
-    * Adds DB_Table filters to a pre-existing HTML_QuickForm object.
-    *
-    * @static
-    *
-    * @access public
-    *
-    * @param object &$form An HTML_QuickForm object.
-    *
-    * @param array $cols A sequential array of DB_Table column definitions
-    * from which to create form elements.
-    *
-    * @param string $arrayName By default, the form will use the names
-    * of the columns as the names of the form elements.  If you pass
-    * $arrayName, the column names will become keys in an array named
-    * for this parameter.
-    *
-    * @param array $formFilters An array with filter function names or
-    * callbacks that will be applied to all form elements.
-    *
-    * @return void
-    *
-    */
-    function addFilters(&$form, $cols, $arrayName = null,
-        $formFilters = null)
-    {
-        foreach ($cols as $name => $col) {
-            if ($arrayName) {
-                $elemname = $arrayName . "[$name]";
-            } else {
-                $elemname = $name;
-            }
-
-            DB_Table_QuickForm::fixColDef($col, $elemname);
-
-            foreach (array_keys($col['qf_filters']) as $fk) {
-                $form->applyFilter($elemname, $col['qf_filters'][$fk]);
-            }
-        }
-
-        if (is_array($formFilters)) {
-            foreach (array_keys($formFilters) as $fk) {
-                $form->applyFilter('__ALL__', $formFilters[$fk]);
-            }
-        }
-    }
-
-
-    /**
-    * 
-    * Adds element rules to a pre-existing HTML_QuickForm object.
-    * 
-    * @static
-    * 
-    * @access public
-    * 
-    * @param object &$form An HTML_QuickForm object.
-    * 
-    * @param array $cols A sequential array of DB_Table column definitions
-    * from which to create form elements.
-    * 
-    * @param string $arrayName By default, the form will use the names
-    * of the columns as the names of the form elements.  If you pass
-    * $arrayName, the column names will become keys in an array named
-    * for this parameter.
-    * 
-    * @param string $clientValidate By default, validation will match
-    * the 'qf_client' value from the column definition.  However,
-    * if you set $clientValidate to true or false, this will
-    * override the value from the column definition.
-    * 
-    * @return void
-    * 
-    */
-    
-    function addRules(&$form, $cols, $arrayName = null,
-        $clientValidate = null)
-    {
-        foreach ($cols as $name => $col) {
-            
-            if ($arrayName) {
-                $elemname = $arrayName . "[$name]";
-            } else {
-                $elemname = $name;
-            }
-            
-            // make sure all necessary elements are in place
-            DB_Table_QuickForm::fixColDef($col, $elemname);
-            
-            // if clientValidate is specified, override the column
-            // definition.  otherwise use the col def as it is.
-            if (! is_null($clientValidate)) {
-                // override
-                if ($clientValidate) {
-                    $validate = 'client';
-                } else {
-                    $validate = 'server';
-                }
-            } else {
-                // use as-is
-                if ($col['qf_client']) {
-                    $validate = 'client';
-                } else {
-                    $validate = 'server';
-                }
-            }
-            
-            // **always** override these rules to make them 
-            // server-side only.  suggested by Mark Wiesemann,
-            // debugged by Hero Wanders.
-            $onlyServer = array('filename', 'maxfilesize', 'mimetype',
-                'uploadedfile');
-            
-            // loop through the rules and add them
-            foreach ($col['qf_rules'] as $type => $opts) {
-                
-                // some rules (e.g. rules for file elements) can only be
-                // checked on the server; therefore, don't use client-side
-                // validation for these rules
-                $ruleValidate = $validate;
-                if (in_array($type, $onlyServer)) {
-                    $ruleValidate = 'server';
-                }
-                
-                switch ($type) {
-                    
-                case 'alphanumeric':
-                case 'email':
-                case 'lettersonly':
-                case 'nonzero':
-                case 'nopunctuation':
-                case 'numeric':
-                case 'required':
-                case 'uploadedfile':
-                    // $opts is the error message
-                    $message = $opts;
-                    $format = null;
-                    break;
-                
-                case 'filename':
-                case 'maxfilesize':
-                case 'maxlength':
-                case 'mimetype':
-                case 'minlength':
-                case 'regex':
-                    // $opts[0] is the message
-                    // $opts[1] is the size, mimetype, or regex
-                    $message = $opts[0];
-                    $format = $opts[1];
-                    break;
-                
-                default:
-                    // by Alex Hoebart: this should allow any registered rule.
-                    if (!in_array($type, $form->getRegisteredRules())) {
-                        // rule is not registered ==> do not add a rule
-                        continue;
-                    }
-                    if (is_array($opts)) {
-                        // $opts[0] is the message
-                        // $opts[1] is the size or regex
-                        $message = $opts[0];
-                        $format = $opts[1];
-                    } else {
-                        // $opts is the error message
-                        $message = $opts;
-                        $format = null;
-                    }
-                    break;
-                }
-                
-                switch ($col['qf_type']) {
-
-                case 'date':
-                case 'time':
-                case 'timestamp':
-                    // date "elements" are groups ==> use addGroupRule()
-                    $form->addGroupRule($elemname, $message, $type, $format,
-                        null, $ruleValidate);
-                    break;
-
-                default:  // use addRule() for all other elements
-                    $form->addRule($elemname, $message, $type, $format,
-                        $ruleValidate);
-                    break;
-
-                }
-
-            }
-        }
-    }
-    
-    
-    /**
-    * 
-    * "Fixes" a DB_Table column definition for QuickForm.
-    * 
-    * Makes it so that all the 'qf_*' key constants are populated
-    * with appropriate default values; also checks the 'require'
-    * value (if not set, defaults to false).
-    * 
-    * @static
-    * 
-    * @access public
-    * 
-    * @param array &$col A DB_Table column definition.
-    * 
-    * @param string $elemname The name for the target form element.
-    * 
-    * @return void
-    * 
-    */
-    
-    function fixColDef(&$col, $elemname)
-    {    
-        // always have a "require" value, false if not set
-        if (! isset($col['require'])) {
-            $col['require'] = false;
-        }
-        
-        // array of acceptable values, typically for
-        // 'select' or 'radio'
-        if (! isset($col['qf_vals'])) {
-            $col['qf_vals'] = null;
-        }
-        
-        // are we doing client validation in addition to 
-        // server validation?  by default, no.
-        if (! isset($col['qf_client'])) {
-            $col['qf_client'] = false;
-        }
-
-        if (! isset($col['qf_filters'])) {
-            $col['qf_filters'] = array();
-        }
-        
-        // the element type; if not set,
-        // assigns an element type based on the column type.
-        // by default, the type is 'text' (unless there are
-        // values, in which case the type is 'select')
-        if (! isset($col['qf_type'])) {
-        
-            // if $col['type'] is not set, set it to null
-            // ==> in the switch statement below, the
-            //     default case will be used
-            if (!isset($col['type'])) {
-                $col['type'] = null;
-            }
-
-            switch ($col['type']) {
-            
-            case 'boolean':
-                $col['qf_type'] = 'checkbox';
-                $col['qf_vals'] = array(0,1);
-                break;
-            
-            case 'date':
-                $col['qf_type'] = 'date';
-                break;
-                
-            case 'time':
-                $col['qf_type'] = 'time';
-                break;
-                
-            case 'timestamp':
-                $col['qf_type'] = 'timestamp';
-                break;
-                
-            case 'clob':
-                $col['qf_type'] = 'textarea';
-                break;
-                
-            default:
-                if (isset($col['qf_vals'])) {
-                    $col['qf_type'] = 'select';
-                } else {
-                    $col['qf_type'] = 'text';
-                }
-                break;
-
-            }
-        }
-        
-        // label for the element; defaults to the element
-        // name.  adds both quickform label and table-header
-        // label if qf_label is not set.
-        if (! isset($col['qf_label'])) {
-            if (isset($col['label'])) {
-                $col['qf_label'] = $col['label'];
-            }
-            else {
-                $col['qf_label'] = $elemname . ':';
-            }
-        }
-        
-        // special options for the element, typically used
-        // for 'date' element types
-        if (! isset($col['qf_opts'])) {
-            $col['qf_opts'] = array();
-        }
-        
-        // array of additional HTML attributes for the element
-        if (! isset($col['qf_attrs'])) {
-            // setting to array() generates an error in HTML_Common
-            $col['qf_attrs'] = null;
-        }
-        
-        // array of QuickForm validation rules to apply
-        if (! isset($col['qf_rules'])) {
-            $col['qf_rules'] = array();
-        }
-        
-        // if the element is hidden, then we're done
-        // (adding rules to hidden elements is mostly useless)
-        if ($col['qf_type'] == 'hidden') {
-            return;
-        }
-        
-        // code to keep BC for the separator for grouped QF elements
-        if (isset($col['qf_radiosep'])) {
-            $col['qf_groupsep'] = $col['qf_radiosep'];
-        }
-
-        // add a separator for grouped elements
-        if (!isset($col['qf_groupsep'])) {
-            $col['qf_groupsep'] = '<br />';
-        }
-        
-        // $col['qf_set_default_rules'] === false allows to turn off
-        // the automatic creation of QF rules for this "column"
-        // (suggested by Arne Bippes)
-        if (isset($col['qf_set_default_rules']) &&
-                  $col['qf_set_default_rules'] === false) {
-            return;
-        }        
-
-        // the element is required
-        // ==> set 'uploadedfile' (for file elements) or 'required' (for all
-        // other elements) rule if it is was not already set
-        $req_rule_name = ($col['qf_type'] == 'file') ? 'uploadedfile' : 'required';
-        if (!isset($col['qf_rules'][$req_rule_name]) && $col['require']) {
-
-            $col['qf_rules'][$req_rule_name] = sprintf(
-                $GLOBALS['_DB_TABLE']['qf_rules']['required'],
-                $col['qf_label']
-            );
-
-        }
-
-        // for file elements the 'numeric' and 'maxlength' rules must not be set
-        if ($col['qf_type'] == 'file') {
-            return;
-        }
-
-        $numeric = array('smallint', 'integer', 'bigint', 'decimal', 
-            'single', 'double');
-
-        // the element is numeric
-        if (!isset($col['qf_rules']['numeric']) && isset($col['type']) &&
-            in_array($col['type'], $numeric)) {
-
-            $col['qf_rules']['numeric'] = sprintf(
-                $GLOBALS['_DB_TABLE']['qf_rules']['numeric'],
-                $col['qf_label']
-            );
-
-        }
-
-        // the element has a maximum length
-        if (!isset($col['qf_rules']['maxlength']) && isset($col['size'])) {
-
-            $max = $col['size'];
-
-            $msg = sprintf(
-                $GLOBALS['_DB_TABLE']['qf_rules']['maxlength'],
-                $col['qf_label'],
-                $max
-            );
-
-            $col['qf_rules']['maxlength'] = array($msg, $max);
-        }
-    }
-}
-
-?>
diff --git a/civicrm/packages/DB/Table/Valid.php b/civicrm/packages/DB/Table/Valid.php
deleted file mode 100644
index 3f450b2385..0000000000
--- a/civicrm/packages/DB/Table/Valid.php
+++ /dev/null
@@ -1,454 +0,0 @@
-<?php
-
-/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
-
-/**
- * DB_Table_Valid validates values against DB_Table column types.
- * 
- * PHP versions 4 and 5
- *
- * LICENSE:
- * 
- * Copyright (c) 1997-2007, Paul M. Jones <pmjones@php.net>
- *                          David C. Morse <morse@php.net>
- *                          Mark Wiesemann <wiesemann@php.net>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *    * Redistributions of source code must retain the above copyright
- *      notice, this list of conditions and the following disclaimer.
- *    * Redistributions in binary form must reproduce the above copyright
- *      notice, this list of conditions and the following disclaimer in the 
- *      documentation and/or other materials provided with the distribution.
- *    * The names of the authors may not be used to endorse or promote products 
- *      derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * @category Database
- * @package  DB_Table
- * @author   Paul M. Jones <pmjones@php.net>
- * @author   David C. Morse <morse@php.net>
- * @author   Mark Wiesemann <wiesemann@php.net>
- * @license  http://opensource.org/licenses/bsd-license.php New BSD License
- * @version  CVS: $Id: Valid.php,v 1.10 2007/12/13 16:52:15 wiesemann Exp $
- * @link     http://pear.php.net/package/DB_Table
- */
-
-/**
-* DB_Table class for constants and other globals.
-*/
-require_once 'DB/Table.php';
-
-
-/**
-* validation ranges for integers
-*/
-if (! isset($GLOBALS['_DB_TABLE']['valid'])) {
-    $GLOBALS['_DB_TABLE']['valid'] = array(
-        'smallint' => array(pow(-2, 15), pow(+2, 15) - 1),
-        'integer' => array(pow(-2, 31), pow(+2, 31) - 1),
-        'bigint' => array(pow(-2, 63), pow(+2, 63) - 1)
-    );
-}
-
-
-/**
- * DB_Table_Valid validates values against DB_Table column types.
- * 
- * @category Database
- * @package  DB_Table
- * @author   Paul M. Jones <pmjones@php.net>
- * @author   David C. Morse <morse@php.net>
- * @author   Mark Wiesemann <wiesemann@php.net>
- * @version  Release: 1.5.6
- * @link     http://pear.php.net/package/DB_Table
- */
-
-class DB_Table_Valid {
-    
-    /**
-    * 
-    * Check if a value validates against the 'boolean' data type.
-    * 
-    * @static
-    * 
-    * @access public
-    * 
-    * @param mixed $value The value to validate.
-    * 
-    * @return boolean True if the value is valid for the data type, false
-    * if not.
-    * 
-    */
-    
-    function isBoolean($value)
-    {
-        if ($value === true || $value === false) {
-            return true;
-        } elseif (is_numeric($value) && ($value == 0 || $value == 1)) {
-            return true;
-        } else {
-            return false;
-        }
-    }
-    
-    
-    /**
-    * 
-    * Check if a value validates against the 'char' and 'varchar' data type.
-    * 
-    * We allow most anything here, only checking that the length is in range.
-    * 
-    * @static
-    * 
-    * @access public
-    * 
-    * @param mixed $value The value to validate.
-    * 
-    * @return boolean True if the value is valid for the data type, false
-    * if not.
-    * 
-    */
-    
-    function isChar($value, $colsize)
-    {
-    	$is_scalar = (! is_array($value) && ! is_object($value));
-        $in_range = (strlen($value) <= $colsize);
-        return $is_scalar && $in_range;
-    }
-    
-    
-    /**
-    * 
-    * Check if a value validates against the 'smallint' data type.
-    * 
-    * @static
-    * 
-    * @access public
-    * 
-    * @param mixed $value The value to validate.
-    * 
-    * @return boolean True if the value is valid for the data type, false
-    * if not.
-    * 
-    */
-    
-    function isSmallint($value)
-    {
-        return is_integer($value) &&
-            ($value >= $GLOBALS['_DB_TABLE']['valid']['smallint'][0]) &&
-            ($value <= $GLOBALS['_DB_TABLE']['valid']['smallint'][1]);
-    }
-    
-    
-    /**
-    * 
-    * Check if a value validates against the 'integer' data type.
-    * 
-    * @static
-    * 
-    * @access public
-    * 
-    * @param mixed $value The value to validate.
-    * 
-    * @return boolean True if the value is valid for the data type, false
-    * if not.
-    * 
-    */
-    
-    function isInteger($value)
-    {
-        return is_integer($value) &&
-            ($value >= $GLOBALS['_DB_TABLE']['valid']['integer'][0]) &&
-            ($value <= $GLOBALS['_DB_TABLE']['valid']['integer'][1]);
-    }
-    
-    
-    /**
-    * 
-    * Check if a value validates against the 'bigint' data type.
-    * 
-    * @static
-    * 
-    * @access public
-    * 
-    * @param mixed $value The value to validate.
-    * 
-    * @return boolean True if the value is valid for the data type, false
-    * if not.
-    * 
-    */
-    
-    function isBigint($value)
-    {
-        return is_integer($value) &&
-            ($value >= $GLOBALS['_DB_TABLE']['valid']['bigint'][0]) &&
-            ($value <= $GLOBALS['_DB_TABLE']['valid']['bigint'][1]);
-    }
-    
-    
-    /**
-    * 
-    * Check if a value validates against the 'decimal' data type.
-    * 
-    * For the column defined "DECIMAL(5,2)" standard SQL requires that
-    * the column be able to store any value with 5 digits and 2
-    * decimals. In this case, therefore, the range of values that can be
-    * stored in the column is from -999.99 to 999.99.  DB_Table attempts
-    * to enforce this behavior regardless of the RDBMS backend behavior.
-    * 
-    * @static
-    * 
-    * @access public
-    * 
-    * @param mixed $value The value to validate.
-    * 
-    * @param string $colsize The 'size' to use for validation (to make
-    * sure of min/max and decimal places).
-    * 
-    * @param string $colscope The 'scope' to use for validation (to make
-    * sure of min/max and decimal places).
-    * 
-    * @return boolean True if the value is valid for the data type, false
-    * if not.
-    * 
-    */
-    
-    function isDecimal($value, $colsize, $colscope)
-    {
-        if (! is_numeric($value)) {
-            return false;
-        }
-        
-        // maximum number of digits allowed to the left
-        // and right of the decimal point.
-        $right_max = $colscope;
-        $left_max = $colsize - $colscope;
-        
-        // ignore negative signs in all validation
-        $value = str_replace('-', '', $value);
-        
-        // find the decimal point, then get the left
-        // and right portions.
-        $pos = strpos($value, '.');
-        if ($pos === false) {
-            $left = $value;
-            $right = '';
-        } else {
-            $left = substr($value, 0, $pos);
-            $right = substr($value, $pos+1);
-        }
-        
-        // how long are the left and right portions?
-        $left_len = strlen($left);
-        $right_len = strlen($right);
-        
-        // do the portions exceed their maxes?
-        if ($left_len > $left_max ||
-            $right_len > $right_max) {
-            // one or the other exceeds the max lengths
-            return false;
-        } else {
-            // both are within parameters
-            return true;
-        }
-    }
-    
-    
-    /**
-    * 
-    * Check if a value validates against the 'single' data type.
-    * 
-    * @static
-    * 
-    * @access public
-    * 
-    * @param mixed $value The value to validate.
-    * 
-    * @return boolean True if the value is valid for the data type, false
-    * if not.
-    * 
-    */
-    
-    function isSingle($value)
-    {
-        return is_float($value);
-    }
-    
-    
-    /**
-    * 
-    * Check if a value validates against the 'double' data type.
-    * 
-    * @static
-    * 
-    * @access public
-    * 
-    * @param mixed $value The value to validate.
-    * 
-    * @return boolean True if the value is valid for the data type, false
-    * if not.
-    * 
-    */
-    
-    function isDouble($value)
-    {
-        return is_float($value);
-    }
-    
-    
-    /**
-    * 
-    * Check if a value validates against the 'time' data type.
-    * 
-    * @static
-    * 
-    * @access public
-    * 
-    * @param mixed $value The value to validate.
-    * 
-    * @return boolean True if the value is valid for the data type, false
-    * if not.
-    * 
-    */
-    
-    function isTime($value)
-    {
-        // hh:ii:ss
-        // 01234567
-        $h  = substr($value, 0, 2);
-        $s1 = substr($value, 2, 1);
-        $i  = substr($value, 3, 2);
-        $s2 = substr($value, 5, 1);
-        $s  = substr($value, 6, 2);
-        
-        // time check
-        if (strlen($value) != 8 ||
-            ! is_numeric($h) || $h < 0 || $h > 23  ||
-            $s1 != ':' ||
-            ! is_numeric($i) || $i < 0 || $i > 59 ||
-            $s2 != ':' ||
-            ! is_numeric($s) || $s < 0 || $s > 59) {
-            
-            return false;
-            
-        } else {
-        
-            return true;
-            
-        }
-    }
-    
-    
-    /**
-    * 
-    * Check if a value validates against the 'date' data type.
-    * 
-    * @static
-    * 
-    * @access public
-    * 
-    * @param mixed $value The value to validate.
-    * 
-    * @return boolean True if the value is valid for the data type, false
-    * if not.
-    * 
-    */
-    
-    function isDate($value)
-    {
-        // yyyy-mm-dd
-        // 0123456789
-        $y  = substr($value, 0, 4);
-        $s1 = substr($value, 4, 1);
-        $m  = substr($value, 5, 2);
-        $s2 = substr($value, 7, 1);
-        $d  = substr($value, 8, 2);
-        
-        // date check
-        if (strlen($value) != 10 || $s1 != '-' || $s2 != '-' ||
-            ! checkdate($m, $d, $y)) {
-            
-            return false;
-            
-        } else {
-        
-            return true;
-            
-        }
-    }
-    
-    
-    /**
-    * 
-    * Check if a value validates against the 'timestamp' data type.
-    * 
-    * @static
-    * 
-    * @access public
-    * 
-    * @param mixed $value The value to validate.
-    * 
-    * @return boolean True if the value is valid for the data type, false
-    * if not.
-    * 
-    */
-    
-    function isTimestamp($value)
-    {
-        // yyyy-mm-dd hh:ii:ss
-        // 0123456789012345678
-        $date = substr($value, 0, 10);
-        $sep = substr($value, 10, 1);
-        $time = substr($value, 11, 8);
-        
-        if (strlen($value) != 19 || $sep != ' ' ||
-            ! DB_Table_Valid::isDate($date) ||
-            ! DB_Table_Valid::isTime($time)) {
-            
-            return false;
-            
-        } else {
-        
-            return true;
-            
-        }
-    }
-    
-    
-    /**
-    * 
-    * Check if a value validates against the 'clob' data type.
-    * 
-    * @static
-    * 
-    * @access public
-    * 
-    * @param mixed $value The value to validate.
-    * 
-    * @return boolean True if the value is valid for the data type, false
-    * if not.
-    * 
-    */
-    
-    function isClob($value)
-    {
-        return is_string($value);
-    }
-}
-
-?>
diff --git a/civicrm/packages/DB/Table/XML.php b/civicrm/packages/DB/Table/XML.php
deleted file mode 100644
index eee87137a0..0000000000
--- a/civicrm/packages/DB/Table/XML.php
+++ /dev/null
@@ -1,111 +0,0 @@
-<?php
-
-/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
-
-/**
- * A few simple static methods for writing XML
- * 
- * PHP versions 4 and 5
- *
- * LICENSE:
- * 
- * Copyright (c) 1997-2007, Paul M. Jones <pmjones@php.net>
- *                          David C. Morse <morse@php.net>
- *                          Mark Wiesemann <wiesemann@php.net>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *    * Redistributions of source code must retain the above copyright
- *      notice, this list of conditions and the following disclaimer.
- *    * Redistributions in binary form must reproduce the above copyright
- *      notice, this list of conditions and the following disclaimer in the 
- *      documentation and/or other materials provided with the distribution.
- *    * The names of the authors may not be used to endorse or promote products 
- *      derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * @category Database
- * @package  DB_Table
- * @author   David C. Morse <morse@php.net>
- * @license  http://opensource.org/licenses/bsd-license.php New BSD License
- * @version  CVS: $Id: XML.php,v 1.2 2007/12/13 16:52:15 wiesemann Exp $
- * @link     http://pear.php.net/package/DB_Table
- */
-
-/**
- * Class DB_Table_XML contains a few simple static methods for writing XML
- * 
- * @category Database
- * @package  DB_Table
- * @author   David C. Morse <morse@php.net>
- * @version  Release: 1.5.6
- * @link     http://pear.php.net/package/DB_Table
- */
-
-class DB_Table_XML
-{
-    
-    /**
-     * Returns XML closing tag <tag>, increases $indent by 3 spaces
-     *
-     * @static
-     * @param string $tag    XML element tag name
-     * @param string $indent current indentation, string of spaces
-     * @return string XML opening tag
-     * @access public
-     */
-    function openTag($tag, &$indent)
-    {
-        $old_indent = $indent;
-        $indent = $indent . '   ';
-        return $old_indent . "<$tag>";
-    }
-
-
-    /**
-     * Returns XML closing tag </tag>, decreases $indent by 3 spaces
-     *
-     * @static
-     * @param string $tag    XML element tag name
-     * @param string $indent current indentation, string of spaces
-     * @return string XML closing tag
-     * @access public
-     */
-    function closeTag($tag, &$indent)
-    {
-        $indent = substr($indent, 0, -3);
-        return $indent . "</$tag>";
-    }
-
-
-    /**
-     * Returns string single line XML element <tag>text</tag>
-     *
-     * @static
-     * @param string $tag    XML element tag name
-     * @param string $text   element contents
-     * @param string $indent current indentation, string of spaces
-     * @return string single-line XML element
-     * @access public
-     */
-    function lineElement($tag, $text, $indent)
-    {
-        return $indent . "<$tag>$text</$tag>";
-    }
-
-}
-?>
diff --git a/civicrm/packages/DB/common.php b/civicrm/packages/DB/common.php
index e7f81588be..92a8143b20 100644
--- a/civicrm/packages/DB/common.php
+++ b/civicrm/packages/DB/common.php
@@ -5,7 +5,7 @@
 /**
  * Contains the DB_common base class
  *
- * PHP versions 4 and 5
+ * PHP version 5
  *
  * LICENSE: This source file is subject to version 3.0 of the PHP license
  * that is available through the world-wide-web at the following URI:
@@ -20,7 +20,7 @@
  * @author     Daniel Convissor <danielc@php.net>
  * @copyright  1997-2007 The PHP Group
  * @license    http://www.php.net/license/3_0.txt  PHP License 3.0
- * @version    CVS: $Id: common.php,v 1.143 2007/09/21 13:40:41 aharvey Exp $
+ * @version    CVS: $Id$
  * @link       http://pear.php.net/package/DB
  */
 
@@ -42,7 +42,7 @@ require_once 'PEAR.php';
  * @author     Daniel Convissor <danielc@php.net>
  * @copyright  1997-2007 The PHP Group
  * @license    http://www.php.net/license/3_0.txt  PHP License 3.0
- * @version    Release: 1.7.13
+ * @version    Release: 1.9.3
  * @link       http://pear.php.net/package/DB
  */
 class DB_common extends PEAR
@@ -204,7 +204,7 @@ class DB_common extends PEAR
     function __wakeup()
     {
         if ($this->was_connected) {
-            $this->connect($this->dsn, $this->options);
+            $this->connect($this->dsn, $this->options['persistent']);
         }
     }
 
@@ -261,7 +261,7 @@ class DB_common extends PEAR
      */
     function quoteString($string)
     {
-        $string = $this->quote($string);
+        $string = $this->quoteSmart($string);
         if ($string{0} == "'") {
             return substr($string, 1, -1);
         }
@@ -284,8 +284,7 @@ class DB_common extends PEAR
      */
     function quote($string = null)
     {
-        return ($string === null) ? 'NULL'
-                                  : "'" . str_replace("'", "''", $string) . "'";
+        return $this->quoteSmart($string);
     }
 
     // }}}
@@ -1148,6 +1147,7 @@ class DB_common extends PEAR
      */
     function modifyQuery($query)
     {
+        // CRM-20445 Add query dispatcher to allow query modification.
         // This section of code may run hundreds or thousands of times in a given request.
         // Consequently, it is micro-optimized to use single lookup in typical case.
         if (!isset(Civi::$statics['db_common_dispatcher'])) {
@@ -1161,6 +1161,7 @@ class DB_common extends PEAR
 
         $e = new \Civi\Core\Event\QueryEvent($query);
         Civi::$statics['db_common_dispatcher']->dispatch('civi.db.query', $e);
+        // CRM-20445 ends.
         return $e->query;
     }
 
@@ -1216,7 +1217,8 @@ class DB_common extends PEAR
      */
     function &query($query, $params = array())
     {
-        if (sizeof($params) > 0) {
+        $params = (array)$params;
+        if (count($params)) {
             $sth = $this->prepare($query);
             if (DB::isError($sth)) {
                 return $sth;
@@ -1262,7 +1264,7 @@ class DB_common extends PEAR
             return $query;
         }
         $result = $this->query($query, $params);
-        if (is_a($result, 'DB_result')) {
+        if (is_object($result) && is_a($result, 'DB_result')) {
             $result->setOption('limit_from', $from);
             $result->setOption('limit_count', $count);
         }
@@ -1355,8 +1357,8 @@ class DB_common extends PEAR
             }
         }
         // modifyLimitQuery() would be nice here, but it causes BC issues
-        $params = (array) $params;
-        if (count($params) > 0) {
+        $params = (array)$params;
+        if (count($params)) {
             $sth = $this->prepare($query);
             if (DB::isError($sth)) {
                 return $sth;
@@ -1664,8 +1666,8 @@ class DB_common extends PEAR
             }
         }
 
-        $params = (array) $params;
-        if (count($params) > 0) {
+        $params = (array)$params;
+        if (count($params)) {
             $sth = $this->prepare($query);
 
             if (DB::isError($sth)) {
@@ -1883,21 +1885,24 @@ class DB_common extends PEAR
      *                 query and native error code.
      * @param mixed   native error code, integer or string depending the
      *                 backend
+     * @param mixed   dummy parameter for E_STRICT compatibility with
+     *                 PEAR::raiseError
+     * @param mixed   dummy parameter for E_STRICT compatibility with
+     *                 PEAR::raiseError
      *
      * @return object  the PEAR_Error object
      *
      * @see PEAR_Error
      */
     function raiseError($code = DB_ERROR, $mode = null, $options = null,
-        $userinfo = null, $nativecode = null,
-        $argToMatchParentSignature1 = null,
-        $argToMatchParentSignature2 = null)
+                         $userinfo = null, $nativecode = null, $dummy1 = null,
+                         $dummy2 = null)
     {
         // The error is yet a DB error object
         if (is_object($code)) {
             // because we the static PEAR::raiseError, our global
             // handler should be used if it is set
-            if ($mode === null && isset($this) && !empty($this->_default_error_mode)) {
+            if ($mode === null && !empty($this->_default_error_mode)) {
                 $mode    = $this->_default_error_mode;
                 $options = $this->_default_error_options;
             }
@@ -1906,7 +1911,7 @@ class DB_common extends PEAR
             return $tmp;
         }
 
-        if ($userinfo === null && isset($this)) {
+        if ($userinfo === null) {
             $userinfo = $this->last_query;
         }
 
@@ -2261,10 +2266,21 @@ class DB_common extends PEAR
         }
     }
 
-    function lastInsertId() {
+    // }}}
+    // {{{ lastInsertId()
+
+   /**
+    * Get the most recently inserted Id
+    *
+    * @throws RuntimeException
+    */
+    function lastInsertId()
+    {
         throw new \RuntimeException("Not implemented: " . get_class($this) . '::lastInsertId');
     }
+
     // }}}
+
 }
 
 /*
diff --git a/civicrm/packages/DB/dbase.php b/civicrm/packages/DB/dbase.php
index 3a0917455c..8324c86b7a 100644
--- a/civicrm/packages/DB/dbase.php
+++ b/civicrm/packages/DB/dbase.php
@@ -6,7 +6,7 @@
  * The PEAR DB driver for PHP's dbase extension
  * for interacting with dBase databases
  *
- * PHP versions 4 and 5
+ * PHP version 5
  *
  * LICENSE: This source file is subject to version 3.0 of the PHP license
  * that is available through the world-wide-web at the following URI:
@@ -20,7 +20,7 @@
  * @author     Daniel Convissor <danielc@php.net>
  * @copyright  1997-2007 The PHP Group
  * @license    http://www.php.net/license/3_0.txt  PHP License 3.0
- * @version    CVS: $Id: dbase.php,v 1.45 2007/09/21 13:40:41 aharvey Exp $
+ * @version    CVS: $Id$
  * @link       http://pear.php.net/package/DB
  */
 
@@ -41,7 +41,7 @@ require_once 'DB/common.php';
  * @author     Daniel Convissor <danielc@php.net>
  * @copyright  1997-2007 The PHP Group
  * @license    http://www.php.net/license/3_0.txt  PHP License 3.0
- * @version    Release: 1.7.13
+ * @version    Release: 1.9.3
  * @link       http://pear.php.net/package/DB
  */
 class DB_dbase extends DB_common
@@ -140,7 +140,7 @@ class DB_dbase extends DB_common
     // {{{ constructor
 
     /**
-     * This constructor calls <kbd>$this->DB_common()</kbd>
+     * This constructor calls <kbd>parent::__construct()</kbd>
      *
      * @return void
      */
@@ -402,7 +402,7 @@ class DB_dbase extends DB_common
     function quoteBoolean($boolean) {
         return $boolean ? 'T' : 'F';
     }
-     
+
     // }}}
     // {{{ tableInfo()
 
diff --git a/civicrm/packages/DB/mssql.php b/civicrm/packages/DB/mssql.php
index c97ca93eba..31798a5f43 100644
--- a/civicrm/packages/DB/mssql.php
+++ b/civicrm/packages/DB/mssql.php
@@ -6,7 +6,7 @@
  * The PEAR DB driver for PHP's mssql extension
  * for interacting with Microsoft SQL Server databases
  *
- * PHP versions 4 and 5
+ * PHP version 5
  *
  * LICENSE: This source file is subject to version 3.0 of the PHP license
  * that is available through the world-wide-web at the following URI:
@@ -20,7 +20,7 @@
  * @author     Daniel Convissor <danielc@php.net>
  * @copyright  1997-2007 The PHP Group
  * @license    http://www.php.net/license/3_0.txt  PHP License 3.0
- * @version    CVS: $Id: mssql.php,v 1.92 2007/09/21 13:40:41 aharvey Exp $
+ * @version    CVS: $Id$
  * @link       http://pear.php.net/package/DB
  */
 
@@ -49,7 +49,7 @@ require_once 'DB/common.php';
  * @author     Daniel Convissor <danielc@php.net>
  * @copyright  1997-2007 The PHP Group
  * @license    http://www.php.net/license/3_0.txt  PHP License 3.0
- * @version    Release: 1.7.13
+ * @version    Release: 1.9.3
  * @link       http://pear.php.net/package/DB
  */
 class DB_mssql extends DB_common
@@ -179,7 +179,7 @@ class DB_mssql extends DB_common
     // {{{ constructor
 
     /**
-     * This constructor calls <kbd>$this->DB_common()</kbd>
+     * This constructor calls <kbd>parent::__construct()</kbd>
      *
      * @return void
      */
@@ -623,6 +623,27 @@ class DB_mssql extends DB_common
         return $this->query('DROP TABLE ' . $this->getSequenceName($seq_name));
     }
 
+    // }}}
+    // {{{ escapeSimple()
+
+    /**
+     * Escapes a string in a manner suitable for SQL Server.
+     *
+     * @param string $str  the string to be escaped
+     * @return string  the escaped string
+     *
+     * @see DB_common::quoteSmart()
+     * @since Method available since Release 1.6.0
+     */
+    function escapeSimple($str)
+    {
+        return str_replace(
+            array("'", "\\\r\n", "\\\n"),
+            array("''", "\\\\\r\n\r\n", "\\\\\n\n"),
+            $str
+        );
+    }
+
     // }}}
     // {{{ quoteIdentifier()
 
diff --git a/civicrm/packages/DB/mysql.php b/civicrm/packages/DB/mysql.php
index 9ab82dbba2..0ff72a4854 100644
--- a/civicrm/packages/DB/mysql.php
+++ b/civicrm/packages/DB/mysql.php
@@ -6,7 +6,7 @@
  * The PEAR DB driver for PHP's mysql extension
  * for interacting with MySQL databases
  *
- * PHP versions 4 and 5
+ * PHP version 5
  *
  * LICENSE: This source file is subject to version 3.0 of the PHP license
  * that is available through the world-wide-web at the following URI:
@@ -20,7 +20,7 @@
  * @author     Daniel Convissor <danielc@php.net>
  * @copyright  1997-2007 The PHP Group
  * @license    http://www.php.net/license/3_0.txt  PHP License 3.0
- * @version    CVS: $Id: mysql.php,v 1.126 2007/09/21 13:32:52 aharvey Exp $
+ * @version    CVS: $Id$
  * @link       http://pear.php.net/package/DB
  */
 
@@ -41,7 +41,7 @@ require_once 'DB/common.php';
  * @author     Daniel Convissor <danielc@php.net>
  * @copyright  1997-2007 The PHP Group
  * @license    http://www.php.net/license/3_0.txt  PHP License 3.0
- * @version    Release: 1.7.13
+ * @version    Release: 1.9.3
  * @link       http://pear.php.net/package/DB
  */
 class DB_mysql extends DB_common
@@ -165,7 +165,7 @@ class DB_mysql extends DB_common
     // {{{ constructor
 
     /**
-     * This constructor calls <kbd>$this->DB_common()</kbd>
+     * This constructor calls <kbd>parent::__construct()</kbd>
      *
      * @return void
      */
@@ -775,17 +775,6 @@ class DB_mysql extends DB_common
         return '`' . str_replace('`', '``', $str) . '`';
     }
 
-    // }}}
-    // {{{ quote()
-
-    /**
-     * @deprecated  Deprecated in release 1.6.0
-     */
-    function quote($str = null)
-    {
-        return $this->quoteSmart($str);
-    }
-
     // }}}
     // {{{ escapeSimple()
 
@@ -801,7 +790,11 @@ class DB_mysql extends DB_common
      */
     function escapeSimple($str)
     {
-        return @mysql_real_escape_string($str, $this->connection);
+        if (function_exists('mysql_real_escape_string')) {
+            return @mysql_real_escape_string($str, $this->connection);
+        } else {
+            return @mysql_escape_string($str);
+        }
     }
 
     // }}}
@@ -1031,11 +1024,15 @@ class DB_mysql extends DB_common
     }
 
     // }}}
+    // {{{ lastInsertId()
 
-    function lastInsertId() {
+    function lastInsertId()
+    {
         return mysql_insert_id($this->connection);
     }
 
+    // }}}
+
 }
 
 /*
diff --git a/civicrm/packages/DB/mysqli.php b/civicrm/packages/DB/mysqli.php
index 0b383eeb12..0d8f414218 100644
--- a/civicrm/packages/DB/mysqli.php
+++ b/civicrm/packages/DB/mysqli.php
@@ -6,7 +6,7 @@
  * The PEAR DB driver for PHP's mysqli extension
  * for interacting with MySQL databases
  *
- * PHP versions 4 and 5
+ * PHP version 5
  *
  * LICENSE: This source file is subject to version 3.0 of the PHP license
  * that is available through the world-wide-web at the following URI:
@@ -19,7 +19,7 @@
  * @author     Daniel Convissor <danielc@php.net>
  * @copyright  1997-2007 The PHP Group
  * @license    http://www.php.net/license/3_0.txt  PHP License 3.0
- * @version    CVS: $Id: mysqli.php,v 1.82 2007/09/21 13:40:41 aharvey Exp $
+ * @version    CVS: $Id$
  * @link       http://pear.php.net/package/DB
  */
 
@@ -43,7 +43,7 @@ require_once 'DB/common.php';
  * @author     Daniel Convissor <danielc@php.net>
  * @copyright  1997-2007 The PHP Group
  * @license    http://www.php.net/license/3_0.txt  PHP License 3.0
- * @version    Release: 1.7.13
+ * @version    Release: 1.9.3
  * @link       http://pear.php.net/package/DB
  * @since      Class functional since Release 1.6.3
  */
@@ -227,7 +227,7 @@ class DB_mysqli extends DB_common
     // {{{ constructor
 
     /**
-     * This constructor calls <kbd>$this->DB_common()</kbd>
+     * This constructor calls <kbd>parent::__construct()</kbd>
      *
      * @return void
      */
@@ -256,7 +256,7 @@ class DB_mysqli extends DB_common
      * Example of how to connect using SSL:
      * <code>
      * require_once 'DB.php';
-     * 
+     *
      * $dsn = array(
      *     'phptype'  => 'mysqli',
      *     'username' => 'someuser',
@@ -269,11 +269,11 @@ class DB_mysqli extends DB_common
      *     'capath'   => '/path/to/ca/dir',
      *     'cipher'   => 'AES',
      * );
-     * 
+     *
      * $options = array(
      *     'ssl' => true,
      * );
-     * 
+     *
      * $db = DB::connect($dsn, $options);
      * if (PEAR::isError($db)) {
      *     die($db->getMessage());
@@ -500,7 +500,7 @@ class DB_mysqli extends DB_common
      */
     function freeResult($result)
     {
-       if (!$result instanceof mysqli_result) {
+        if (! $result instanceof mysqli_result) {
             return false;
         }
         mysqli_free_result($result);
@@ -1000,7 +1000,7 @@ class DB_mysqli extends DB_common
             $got_string = false;
         }
 
-        if (!is_a($id, 'mysqli_result')) {
+        if (!is_object($id) || !is_a($id, 'mysqli_result')) {
             return $this->mysqliRaiseError(DB_ERROR_NEED_MORE_DATA);
         }
 
@@ -1038,6 +1038,10 @@ class DB_mysqli extends DB_common
                                     ? $this->mysqli_types[$tmp->type]
                                     : 'unknown',
                 // http://bugs.php.net/?id=36579
+                //  Doc Bug #36579: mysqli_fetch_field length handling
+                // https://bugs.php.net/bug.php?id=62426
+                //  Bug #62426: mysqli_fetch_field_direct returns incorrect
+                //  length on UTF8 fields
                 'len'   => $tmp->length,
                 'flags' => $flags,
             );
@@ -1086,11 +1090,15 @@ class DB_mysqli extends DB_common
     }
 
     // }}}
+    // {{{ lastInsertId()
 
-    function lastInsertId() {
+    function lastInsertId()
+    {
         return mysqli_insert_id($this->connection);
     }
 
+    // }}}
+
 }
 
 /*
diff --git a/civicrm/packages/DB/odbc.php b/civicrm/packages/DB/odbc.php
index 04b3871f11..f410a12715 100644
--- a/civicrm/packages/DB/odbc.php
+++ b/civicrm/packages/DB/odbc.php
@@ -6,7 +6,7 @@
  * The PEAR DB driver for PHP's odbc extension
  * for interacting with databases via ODBC connections
  *
- * PHP versions 4 and 5
+ * PHP version 5
  *
  * LICENSE: This source file is subject to version 3.0 of the PHP license
  * that is available through the world-wide-web at the following URI:
@@ -20,7 +20,7 @@
  * @author     Daniel Convissor <danielc@php.net>
  * @copyright  1997-2007 The PHP Group
  * @license    http://www.php.net/license/3_0.txt  PHP License 3.0
- * @version    CVS: $Id: odbc.php,v 1.81 2007/07/06 05:19:21 aharvey Exp $
+ * @version    CVS: $Id$
  * @link       http://pear.php.net/package/DB
  */
 
@@ -44,7 +44,7 @@ require_once 'DB/common.php';
  * @author     Daniel Convissor <danielc@php.net>
  * @copyright  1997-2007 The PHP Group
  * @license    http://www.php.net/license/3_0.txt  PHP License 3.0
- * @version    Release: 1.7.13
+ * @version    Release: 1.9.3
  * @link       http://pear.php.net/package/DB
  */
 class DB_odbc extends DB_common
@@ -153,7 +153,7 @@ class DB_odbc extends DB_common
     // {{{ constructor
 
     /**
-     * This constructor calls <kbd>$this->DB_common()</kbd>
+     * This constructor calls <kbd>parent::__construct()</kbd>
      *
      * @return void
      */
@@ -480,18 +480,6 @@ class DB_odbc extends DB_common
         }
     }
 
-    // }}}
-    // {{{ quote()
-
-    /**
-     * @deprecated  Deprecated in release 1.6.0
-     * @internal
-     */
-    function quote($str)
-    {
-        return $this->quoteSmart($str);
-    }
-
     // }}}
     // {{{ nextId()
 
diff --git a/civicrm/packages/DB/pgsql.php b/civicrm/packages/DB/pgsql.php
index 25db7440c4..5d045dfdab 100644
--- a/civicrm/packages/DB/pgsql.php
+++ b/civicrm/packages/DB/pgsql.php
@@ -6,7 +6,7 @@
  * The PEAR DB driver for PHP's pgsql extension
  * for interacting with PostgreSQL databases
  *
- * PHP versions 4 and 5
+ * PHP version 5
  *
  * LICENSE: This source file is subject to version 3.0 of the PHP license
  * that is available through the world-wide-web at the following URI:
@@ -21,7 +21,7 @@
  * @author     Daniel Convissor <danielc@php.net>
  * @copyright  1997-2007 The PHP Group
  * @license    http://www.php.net/license/3_0.txt  PHP License 3.0
- * @version    CVS: $Id: pgsql.php,v 1.138 2007/09/21 13:40:41 aharvey Exp $
+ * @version    CVS: $Id$
  * @link       http://pear.php.net/package/DB
  */
 
@@ -43,7 +43,7 @@ require_once 'DB/common.php';
  * @author     Daniel Convissor <danielc@php.net>
  * @copyright  1997-2007 The PHP Group
  * @license    http://www.php.net/license/3_0.txt  PHP License 3.0
- * @version    Release: 1.7.13
+ * @version    Release: 1.9.3
  * @link       http://pear.php.net/package/DB
  */
 class DB_pgsql extends DB_common
@@ -148,7 +148,7 @@ class DB_pgsql extends DB_common
     // {{{ constructor
 
     /**
-     * This constructor calls <kbd>$this->DB_common()</kbd>
+     * This constructor calls <kbd>parent::__construct()</kbd>
      *
      * @return void
      */
@@ -187,12 +187,12 @@ class DB_pgsql extends DB_common
      * Example of connecting to a new link via a socket:
      * <code>
      * require_once 'DB.php';
-     * 
+     *
      * $dsn = 'pgsql://user:pass@unix(/tmp)/dbname?new_link=true';
      * $options = array(
      *     'portability' => DB_PORTABILITY_ALL,
      * );
-     * 
+     *
      * $db = DB::connect($dsn, $options);
      * if (PEAR::isError($db)) {
      *     die($db->getMessage());
@@ -325,14 +325,14 @@ class DB_pgsql extends DB_common
         $query = $this->modifyQuery($query);
         if (!$this->autocommit && $ismanip) {
             if ($this->transaction_opcount == 0) {
-                $result = @pg_exec($this->connection, 'begin;');
+                $result = @pg_query($this->connection, 'begin;');
                 if (!$result) {
                     return $this->pgsqlRaiseError();
                 }
             }
             $this->transaction_opcount++;
         }
-        $result = @pg_exec($this->connection, $query);
+        $result = @pg_query($this->connection, $query);
         if (!$result) {
             return $this->pgsqlRaiseError();
         }
@@ -348,12 +348,12 @@ class DB_pgsql extends DB_common
          * CREATE, DECLARE, DELETE, DROP TABLE, EXPLAIN, FETCH,
          * GRANT, INSERT, LISTEN, LOAD, LOCK, MOVE, NOTIFY, RESET,
          * REVOKE, ROLLBACK, SELECT, SELECT INTO, SET, SHOW,
-         * UNLISTEN, UPDATE, VACUUM
+         * UNLISTEN, UPDATE, VACUUM, WITH
          */
         if ($ismanip) {
             $this->affected = @pg_affected_rows($result);
             return DB_OK;
-        } elseif (preg_match('/^\s*\(*\s*(SELECT|EXPLAIN|FETCH|SHOW)\s/si',
+        } elseif (preg_match('/^\s*\(*\s*(SELECT|EXPLAIN|FETCH|SHOW|WITH)\s/si',
                              $query))
         {
             $this->row[(int)$result] = 0; // reset the row counter.
@@ -465,18 +465,6 @@ class DB_pgsql extends DB_common
         return false;
     }
 
-    // }}}
-    // {{{ quote()
-
-    /**
-     * @deprecated  Deprecated in release 1.6.0
-     * @internal
-     */
-    function quote($str)
-    {
-        return $this->quoteSmart($str);
-    }
-
     // }}}
     // {{{ quoteBoolean()
 
@@ -492,7 +480,7 @@ class DB_pgsql extends DB_common
     function quoteBoolean($boolean) {
         return $boolean ? 'TRUE' : 'FALSE';
     }
-     
+
     // }}}
     // {{{ escapeSimple()
 
@@ -610,7 +598,7 @@ class DB_pgsql extends DB_common
         if ($this->transaction_opcount > 0) {
             // (disabled) hack to shut up error messages from libpq.a
             //@fclose(@fopen("php://stderr", "w"));
-            $result = @pg_exec($this->connection, 'end;');
+            $result = @pg_query($this->connection, 'end;');
             $this->transaction_opcount = 0;
             if (!$result) {
                 return $this->pgsqlRaiseError();
@@ -630,7 +618,7 @@ class DB_pgsql extends DB_common
     function rollback()
     {
         if ($this->transaction_opcount > 0) {
-            $result = @pg_exec($this->connection, 'abort;');
+            $result = @pg_query($this->connection, 'abort;');
             $this->transaction_opcount = 0;
             if (!$result) {
                 return $this->pgsqlRaiseError();
@@ -796,7 +784,7 @@ class DB_pgsql extends DB_common
     /**
      * Gets the DBMS' native error message produced by the last query
      *
-     * {@internal Error messages are used instead of error codes 
+     * {@internal Error messages are used instead of error codes
      * in order to support older versions of PostgreSQL.}}
      *
      * @return string  the DBMS' error message
@@ -899,7 +887,7 @@ class DB_pgsql extends DB_common
              * Probably received a table name.
              * Create a result resource identifier.
              */
-            $id = @pg_exec($this->connection, "SELECT * FROM $result LIMIT 0");
+            $id = @pg_query($this->connection, "SELECT * FROM $result LIMIT 0");
             $got_string = true;
         } elseif (isset($result->result)) {
             /*
@@ -992,7 +980,7 @@ class DB_pgsql extends DB_common
             $tableWhere = "tab.relname = '$table_name'";
         }
 
-        $result = @pg_exec($this->connection, "SELECT f.attnotnull, f.atthasdef
+        $result = @pg_query($this->connection, "SELECT f.attnotnull, f.atthasdef
                                 FROM $from
                                 WHERE tab.relname = typ.typname
                                 AND typ.typrelid = f.attrelid
@@ -1003,7 +991,7 @@ class DB_pgsql extends DB_common
             $flags  = ($row[0] == 't') ? 'not_null ' : '';
 
             if ($row[1] == 't') {
-                $result = @pg_exec($this->connection, "SELECT a.adsrc
+                $result = @pg_query($this->connection, "SELECT a.adsrc
                                     FROM $from, pg_attrdef a
                                     WHERE tab.relname = typ.typname AND typ.typrelid = f.attrelid
                                     AND f.attrelid = a.adrelid AND f.attname = '$field_name'
@@ -1015,7 +1003,7 @@ class DB_pgsql extends DB_common
         } else {
             $flags = '';
         }
-        $result = @pg_exec($this->connection, "SELECT i.indisunique, i.indisprimary, i.indkey
+        $result = @pg_query($this->connection, "SELECT i.indisunique, i.indisprimary, i.indkey
                                 FROM $from, pg_index i
                                 WHERE tab.relname = typ.typname
                                 AND typ.typrelid = f.attrelid
@@ -1103,6 +1091,25 @@ class DB_pgsql extends DB_common
     }
 
     // }}}
+    // {{{ _checkManip()
+
+    /**
+     * Checks if the given query is a manipulation query. This also takes into
+     * account the _next_query_manip flag and sets the _last_query_manip flag
+     * (and resets _next_query_manip) according to the result.
+     *
+     * @param string The query to check.
+     *
+     * @return boolean true if the query is a manipulation query, false
+     * otherwise
+     *
+     * @access protected
+     */
+    function _checkManip($query)
+    {
+        return (preg_match('/^\s*(SAVEPOINT|RELEASE)\s+/i', $query)
+                || parent::_checkManip($query));
+    }
 
 }
 
diff --git a/civicrm/packages/DB/storage.php b/civicrm/packages/DB/storage.php
index 01a0386749..081100486b 100644
--- a/civicrm/packages/DB/storage.php
+++ b/civicrm/packages/DB/storage.php
@@ -5,7 +5,7 @@
 /**
  * Provides an object interface to a table row
  *
- * PHP versions 4 and 5
+ * PHP version 5
  *
  * LICENSE: This source file is subject to version 3.0 of the PHP license
  * that is available through the world-wide-web at the following URI:
@@ -18,7 +18,7 @@
  * @author     Stig Bakken <stig@php.net>
  * @copyright  1997-2007 The PHP Group
  * @license    http://www.php.net/license/3_0.txt  PHP License 3.0
- * @version    CVS: $Id: storage.php,v 1.24 2007/08/12 05:27:25 aharvey Exp $
+ * @version    CVS: $Id$
  * @link       http://pear.php.net/package/DB
  */
 
@@ -38,7 +38,7 @@ require_once 'DB.php';
  * @author     Stig Bakken <stig@php.net>
  * @copyright  1997-2007 The PHP Group
  * @license    http://www.php.net/license/3_0.txt  PHP License 3.0
- * @version    Release: 1.7.13
+ * @version    Release: 1.9.3
  * @link       http://pear.php.net/package/DB
  */
 class DB_storage extends PEAR
diff --git a/civicrm/packages/PHPgettext/Makefile b/civicrm/packages/PHPgettext/Makefile
index a6cce12302..b56394ba78 100644
--- a/civicrm/packages/PHPgettext/Makefile
+++ b/civicrm/packages/PHPgettext/Makefile
@@ -1,5 +1,5 @@
 PACKAGE = php-gettext-$(VERSION)
-VERSION = 1.0.10
+VERSION = 1.0.12
 
 DIST_FILES = \
 	gettext.php \
@@ -34,5 +34,8 @@ dist: check
 	    rm -rf $(PACKAGE); \
 	fi;
 
+sign: dist
+	gpg --armor --sign --detach-sig $(PACKAGE).tar.gz
+
 clean:
-	rm -f $(PACKAGE).tar.gz
+	rm -f $(PACKAGE).tar.gz $(PACKAGE).tar.gz.asc
diff --git a/civicrm/packages/PHPgettext/gettext.inc b/civicrm/packages/PHPgettext/gettext.inc
index 399a0f24b4..c9f7dc0168 100644
--- a/civicrm/packages/PHPgettext/gettext.inc
+++ b/civicrm/packages/PHPgettext/gettext.inc
@@ -32,7 +32,6 @@ LC_MESSAGES     5
 LC_ALL          6
 */
 
-
 // LC_MESSAGES is not available if php-gettext is not loaded
 // while the other constants are already available from session extension.
 if (!defined('LC_MESSAGES')) {
@@ -175,14 +174,13 @@ function _get_codeset($domain=null) {
  * Convert the given string to the encoding set by bind_textdomain_codeset.
  */
 function _encode($text) {
+  $target_encoding = _get_codeset();
+  if (function_exists("mb_detect_encoding")) {
     $source_encoding = mb_detect_encoding($text);
-    $target_encoding = _get_codeset();
-    if ($source_encoding != $target_encoding) {
-        return mb_convert_encoding($text, $target_encoding, $source_encoding);
-    }
-    else {
-        return $text;
-    }
+    if ($source_encoding != $target_encoding)
+      $text = mb_convert_encoding($text, $target_encoding, $source_encoding);
+  }
+  return $text;
 }
 
 
@@ -229,7 +227,9 @@ function _setlocale($category, $locale) {
         }
         // Allow locale to be changed on the go for one translation domain.
         global $text_domains, $default_domain;
-        unset($text_domains[$default_domain]->l10n);
+        if (array_key_exists($default_domain, $text_domains)) {
+            unset($text_domains[$default_domain]->l10n);
+        }
         return $CURRENTLOCALE;
     }
 }
@@ -288,9 +288,9 @@ function __($msgid) {
 /**
  * Plural version of gettext.
  */
-function _ngettext($single, $plural, $number) {
+function _ngettext($singular, $plural, $number) {
     $l10n = _get_reader();
-    return _encode($l10n->ngettext($single, $plural, $number));
+    return _encode($l10n->ngettext($singular, $plural, $number));
 }
 
 /**
@@ -304,9 +304,9 @@ function _dgettext($domain, $msgid) {
 /**
  * Plural version of dgettext.
  */
-function _dngettext($domain, $single, $plural, $number) {
+function _dngettext($domain, $singular, $plural, $number) {
     $l10n = _get_reader($domain);
-    return _encode($l10n->ngettext($single, $plural, $number));
+    return _encode($l10n->ngettext($singular, $plural, $number));
 }
 
 /**
@@ -319,9 +319,9 @@ function _dcgettext($domain, $msgid, $category) {
 /**
  * Plural version of dcgettext.
  */
-function _dcngettext($domain, $single, $plural, $number, $category) {
+function _dcngettext($domain, $singular, $plural, $number, $category) {
     $l10n = _get_reader($domain, $category);
-    return _encode($l10n->ngettext($single, $plural, $number));
+    return _encode($l10n->ngettext($singular, $plural, $number));
 }
 
 /**
@@ -405,29 +405,29 @@ function T_($msgid) {
     if (_check_locale_and_function()) return _($msgid);
     return __($msgid);
 }
-function T_ngettext($single, $plural, $number) {
+function T_ngettext($singular, $plural, $number) {
     if (_check_locale_and_function())
-        return ngettext($single, $plural, $number);
-    else return _ngettext($single, $plural, $number);
+        return ngettext($singular, $plural, $number);
+    else return _ngettext($singular, $plural, $number);
 }
 function T_dgettext($domain, $msgid) {
     if (_check_locale_and_function()) return dgettext($domain, $msgid);
     else return _dgettext($domain, $msgid);
 }
-function T_dngettext($domain, $single, $plural, $number) {
+function T_dngettext($domain, $singular, $plural, $number) {
     if (_check_locale_and_function())
-        return dngettext($domain, $single, $plural, $number);
-    else return _dngettext($domain, $single, $plural, $number);
+        return dngettext($domain, $singular, $plural, $number);
+    else return _dngettext($domain, $singular, $plural, $number);
 }
 function T_dcgettext($domain, $msgid, $category) {
     if (_check_locale_and_function())
         return dcgettext($domain, $msgid, $category);
     else return _dcgettext($domain, $msgid, $category);
 }
-function T_dcngettext($domain, $single, $plural, $number, $category) {
+function T_dcngettext($domain, $singular, $plural, $number, $category) {
     if (_check_locale_and_function())
-      return dcngettext($domain, $single, $plural, $number, $category);
-    else return _dcngettext($domain, $single, $plural, $number, $category);
+      return dcngettext($domain, $singular, $plural, $number, $category);
+    else return _dcngettext($domain, $singular, $plural, $number, $category);
 }
 
 function T_pgettext($context, $msgid) {
@@ -451,26 +451,27 @@ function T_dcpgettext($domain, $context, $msgid, $category) {
       return _dcpgettext($domain, $context, $msgid, $category);
 }
 
-function T_npgettext($context, $singular, $plural) {
+function T_npgettext($context, $singular, $plural, $number) {
     if (_check_locale_and_function('npgettext'))
-        return npgettext($context, $single, $plural, $number);
+        return npgettext($context, $singular, $plural, $number);
     else
-        return _npgettext($context, $single, $plural, $number);
+        return _npgettext($context, $singular, $plural, $number);
 }
 
-function T_dnpgettext($domain, $context, $singular, $plural) {
+function T_dnpgettext($domain, $context, $singular, $plural, $number) {
   if (_check_locale_and_function('dnpgettext'))
-      return dnpgettext($domain, $context, $single, $plural, $number);
+      return dnpgettext($domain, $context, $singular, $plural, $number);
   else
-      return _dnpgettext($domain, $context, $single, $plural, $number);
+      return _dnpgettext($domain, $context, $singular, $plural, $number);
 }
 
-function T_dcnpgettext($domain, $context, $singular, $plural, $category) {
+function T_dcnpgettext($domain, $context, $singular, $plural,
+                       $number, $category) {
     if (_check_locale_and_function('dcnpgettext'))
-        return dcnpgettext($domain, $context, $single,
+        return dcnpgettext($domain, $context, $singular,
                            $plural, $number, $category);
     else
-        return _dcnpgettext($domain, $context, $single,
+        return _dcnpgettext($domain, $context, $singular,
                             $plural, $number, $category);
 }
 
@@ -494,39 +495,39 @@ if (!function_exists('gettext')) {
     function _($msgid) {
         return __($msgid);
     }
-    function ngettext($single, $plural, $number) {
-        return _ngettext($single, $plural, $number);
+    function ngettext($singular, $plural, $number) {
+        return _ngettext($singular, $plural, $number);
     }
     function dgettext($domain, $msgid) {
         return _dgettext($domain, $msgid);
     }
-    function dngettext($domain, $single, $plural, $number) {
-        return _dngettext($domain, $single, $plural, $number);
+    function dngettext($domain, $singular, $plural, $number) {
+        return _dngettext($domain, $singular, $plural, $number);
     }
     function dcgettext($domain, $msgid, $category) {
         return _dcgettext($domain, $msgid, $category);
     }
-    function dcngettext($domain, $single, $plural, $number, $category) {
-        return _dcngettext($domain, $single, $plural, $number, $category);
+    function dcngettext($domain, $singular, $plural, $number, $category) {
+        return _dcngettext($domain, $singular, $plural, $number, $category);
     }
     function pgettext($context, $msgid) {
         return _pgettext($context, $msgid);
     }
-    function npgettext($context, $single, $plural, $number) {
-        return _npgettext($context, $single, $plural, $number);
+    function npgettext($context, $singular, $plural, $number) {
+        return _npgettext($context, $singular, $plural, $number);
     }
     function dpgettext($domain, $context, $msgid) {
         return _dpgettext($domain, $context, $msgid);
     }
-    function dnpgettext($domain, $context, $single, $plural, $number) {
-        return _dnpgettext($domain, $context, $single, $plural, $number);
+    function dnpgettext($domain, $context, $singular, $plural, $number) {
+        return _dnpgettext($domain, $context, $singular, $plural, $number);
     }
     function dcpgettext($domain, $context, $msgid, $category) {
         return _dcpgettext($domain, $context, $msgid, $category);
     }
-    function dcnpgettext($domain, $context, $single, $plural,
+    function dcnpgettext($domain, $context, $singular, $plural,
                          $number, $category) {
-      return _dcnpgettext($domain, $context, $single, $plural,
+      return _dcnpgettext($domain, $context, $singular, $plural,
                           $number, $category);
     }
 }
diff --git a/civicrm/packages/PHPgettext/gettext.php b/civicrm/packages/PHPgettext/gettext.php
index 397142b039..edbd933047 100644
--- a/civicrm/packages/PHPgettext/gettext.php
+++ b/civicrm/packages/PHPgettext/gettext.php
@@ -350,6 +350,10 @@ class gettext_reader {
    * @return int array index of the right plural form
    */
   function select_string($n) {
+    if (!is_int($n)) {
+      throw new InvalidArgumentException(
+        "Select_string only accepts integers: " . $n);
+    }
     $string = $this->get_plural_forms();
     $string = str_replace('nplurals',"\$total",$string);
     $string = str_replace("n",$n,$string);
@@ -418,8 +422,14 @@ class gettext_reader {
   }
 
   function npgettext($context, $singular, $plural, $number) {
-    $singular = $context . chr(4) . $singular;
-    return $this->ngettext($singular, $plural, $number);
+    $key = $context . chr(4) . $singular;
+    $ret = $this->ngettext($key, $plural, $number);
+    if (strpos($ret, "\004") !== FALSE) {
+      return $singular;
+    } else {
+      return $ret;
+    }
+
   }
 }
 
diff --git a/civicrm/packages/PHPgettext/tests/LocalesTest.php b/civicrm/packages/PHPgettext/tests/LocalesTest.php
index 3000286efa..75ab2e82d2 100644
--- a/civicrm/packages/PHPgettext/tests/LocalesTest.php
+++ b/civicrm/packages/PHPgettext/tests/LocalesTest.php
@@ -1,20 +1,28 @@
 <?php
-require_once('PHPUnit/Framework.php');
 require_once('gettext.inc');
 
 class LocaleTest extends PHPUnit_Framework_TestCase
 {
   public function test_setlocale()
   {
+    putenv("LC_ALL=");
     // _setlocale defaults to a locale name from environment variable LANG.
     putenv("LANG=sr_RS");
     $this->assertEquals('sr_RS', _setlocale(LC_MESSAGES, 0));
+  }
 
+  public function test_setlocale_system()
+  {
+    putenv("LC_ALL=");
     // For an existing locale, it never needs emulation.
     putenv("LANG=C");
     _setlocale(LC_MESSAGES, "");
     $this->assertEquals(0, locale_emulation());
+  }
 
+  public function test_setlocale_emulation()
+  {
+    putenv("LC_ALL=");
     // If we set it to a non-existent locale, it still works, but uses
     // emulation.
     _setlocale(LC_MESSAGES, "xxx_XXX");
diff --git a/civicrm/packages/PHPgettext/tests/ParsingTest.php b/civicrm/packages/PHPgettext/tests/ParsingTest.php
index 9b350b2958..99bef84539 100644
--- a/civicrm/packages/PHPgettext/tests/ParsingTest.php
+++ b/civicrm/packages/PHPgettext/tests/ParsingTest.php
@@ -1,6 +1,4 @@
 <?php
-require_once('PHPUnit/Framework.php');
-//require_once('gettext.php');
 
 class ParsingTest extends PHPUnit_Framework_TestCase
 {
@@ -36,7 +34,55 @@ class ParsingTest extends PHPUnit_Framework_TestCase
         ."Plural-Forms: nplurals=1; plural=0;\n"
         ."Last-Translator: nobody\n"
       ));
+  }
+
+  /**
+   * @expectedException InvalidArgumentException
+   */
+  public function test_select_string_disallows_nonint_numbers()
+  {
+    $pofile_data = ''
+      ."msgid \"\"\n"
+      ."msgstr \"\"\n"
+      ."\"Content-Type: text/plain; charset=utf-8\\n\"\n"
+      ."\"Plural-Forms: nplurals=2; plural= n == 1 ? 0 : 1;\\n\"\n";
+    $mofile = tempnam(sys_get_temp_dir(), "pg");
+    $msgfmt = popen("msgfmt -o $mofile -", "w");
+    fwrite($msgfmt, $pofile_data);
+    pclose($msgfmt);
 
+    $modata = new CachedFileReader($mofile);
+    unlink($mofile);
+    $parser = new gettext_reader($modata);
+    // It defaults to a "Western-style" plural header.
+    $this->assertEquals(
+      'nplurals=2; plural=n == 1 ? 0 : 1;',
+      $parser->extract_plural_forms_header_from_po_header(""));
+
+    $new_tempfile = tempnam(sys_get_temp_dir(), "pg");
+    $parser->select_string(
+      "(file_put_contents('$new_tempfile', 'boom'))");
+
+    $this->assertEquals("", file_get_contents($new_tempfile));
+    unlink($new_tempfile);
+  }
+
+  /**
+   * @dataProvider data_provider_test_npgettext
+   */
+  public function test_npgettext($number, $expected) {
+    $parser = new gettext_reader(NULL);
+    $result = $parser->npgettext("context",
+                                 "%d pig went to the market\n",
+                                 "%d pigs went to the market\n",
+                                 $number);
+    $this->assertSame($expected, $result);
+  }
+  public static function data_provider_test_npgettext() {
+    return array(
+                 array(1, "%d pig went to the market\n"),
+                 array(2, "%d pigs went to the market\n"),
+                 );
   }
 
 }
diff --git a/civicrm/packages/System/Command.php b/civicrm/packages/System/Command.php
deleted file mode 100644
index 0eb7c8e1c0..0000000000
--- a/civicrm/packages/System/Command.php
+++ /dev/null
@@ -1,587 +0,0 @@
-<?php
-// {{{ license
-
-// +----------------------------------------------------------------------+
-// | PHP Version 4.0                                                      |
-// +----------------------------------------------------------------------+
-// | Copyright (c) 1997-2003 The PHP Group                                |
-// +----------------------------------------------------------------------+
-// | This source file is subject to version 2.02 of the PHP license,      |
-// | that is bundled with this package in the file LICENSE, and is        |
-// | available at through the world-wide-web at                           |
-// | http://www.php.net/license/2_02.txt.                                 |
-// | If you did not receive a copy of the PHP license and are unable to   |
-// | obtain it through the world-wide-web, please send a note to          |
-// | license@php.net so we can mail you a copy immediately.               |
-// +----------------------------------------------------------------------+
-// | Author: Anders Johannsen <anders@johannsen.com>                      |
-// | Author: Dan Allen <dan@mojavelinux.com>
-// +----------------------------------------------------------------------+
-
-// $Id: Command.php,v 1.9 2007/04/20 21:08:48 cconstantine Exp $
-
-// }}}
-// {{{ includes
-
-require_once 'PEAR.php';
-require_once 'System.php';
-
-// }}}
-// {{{ constants
-
-define('SYSTEM_COMMAND_OK',                 1);
-define('SYSTEM_COMMAND_ERROR',             -1);
-define('SYSTEM_COMMAND_NO_SHELL',          -2);
-define('SYSTEM_COMMAND_INVALID_SHELL',     -3);
-define('SYSTEM_COMMAND_TMPDIR_ERROR',      -4);
-define('SYSTEM_COMMAND_INVALID_OPERATOR',  -5);
-define('SYSTEM_COMMAND_INVALID_COMMAND',   -6);
-define('SYSTEM_COMMAND_OPERATOR_PLACEMENT',-7);
-define('SYSTEM_COMMAND_COMMAND_PLACEMENT', -8);
-define('SYSTEM_COMMAND_NOHUP_MISSING',     -9);
-define('SYSTEM_COMMAND_NO_OUTPUT',        -10);
-define('SYSTEM_COMMAND_STDERR',           -11);
-define('SYSTEM_COMMAND_NONZERO_EXIT',     -12);
-
-// }}}
-
-// {{{ class System_Command
-
-/**
- * The System_Command:: class implements an abstraction for various ways 
- * of executing commands (directly using the backtick operator,
- * as a background task after the script has terminated using
- * register_shutdown_function() or as a detached process using nohup).
- *
- * @author  Anders Johannsen <anders@johannsen.com>
- * @author  Dan Allen <dan@mojavelinux.com>
- * @version $Revision: 1.9 $
- */
-
-// }}}
-class System_Command {
-    // {{{ properties
-
-    /**
-     * Array of settings used when creating the shell command
-     *
-     * @var array
-     * @access private
-     */
-    var $options = array();
-
-    /**
-     * Array of available shells to use to execute the command
-     *
-     * @var array
-     * @access private
-     */
-    var $shells = array();
-
-    /**
-     * Array of available control operators used between commands
-     *
-     * @var array
-     * @access private
-     */
-    var $controlOperators = array();
-
-    /**
-     * The system command to be executed
-     *
-     * @var string
-     * @access private
-     */
-    var $systemCommand = null;
-
-    /**
-     * Previously added part to the command string
-     *
-     * @var string
-     * @access private
-     */
-    var $previousElement = null;
-
-    /**
-     * Directory for writing stderr output
-     *
-     * @var string
-     * @access private
-     */
-    var $tmpDir = null;
-
-    /**
-     * To allow the pear error object to accumulate when building
-     * the command, we use the command status to keep track when
-     * a pear error is raised
-     *
-     * @var int
-     * @access private
-     */
-    var $commandStatus = 0;
-    
-    /**
-     * Hold initialization PEAR_Error
-     *
-     * @var object
-     * @access private
-     **/
-    var $_initError = null;
-        
-    // }}}
-    // {{{ constructor
-
-    /**
-     * Class constructor
-     * 
-     * Defines all necessary constants and sets defaults
-     * 
-     * @access public
-     */
-    function __construct($in_shell = null)
-    {
-        // Defining constants
-        $this->options = array(
-            'SEQUENCE'   => true,
-            'SHUTDOWN'   => false,
-            'SHELL'      => $this->which($in_shell),
-            'OUTPUT'     => true,
-            'NOHUP'      => false,
-            'BACKGROUND' => false,
-            'STDERR'     => false
-        );
-
-        // prepare the available control operators
-        $this->controlOperators = array(
-            'PIPE'  => '|',
-            'AND'   => '&&',
-            'OR'    => '||',
-            'GROUP' => ';',
-            'LFIFO' => '<',
-            'RFIFO' => '>',
-        );
-                
-        // List of allowed/available shells
-        $this->shells = array(
-            'sh',
-            'bash',
-            'zsh',
-            'tcsh',
-            'csh',
-            'ash',
-            'sash',
-            'esh',
-            'ksh'
-        );
-                                   
-        // Find the first available shell
-        if (empty($this->options['SHELL'])) {
-            foreach ($this->shells as $shell) {
-                if ($this->options['SHELL'] = $this->which($shell)) {
-                    break;
-                }
-            }
-
-            // see if we still have no shell
-            if (empty($this->options['SHELL'])) {
-            	$this->_initError = PEAR::raiseError(null, SYSTEM_COMMAND_NO_SHELL, null, E_USER_WARNING, null, 'System_Command_Error', true);
-                return;
-            }
-        }
-
-        // Caputre a temporary directory for capturing stderr from commands
-        $this->tmpDir = System::tmpdir();
-        if (!System::mkDir("-p {$this->tmpDir}")) {
-            $this->_initError = PEAR::raiseError(null, SYSTEM_COMMAND_TMPDIR_ERROR, null, E_USER_WARNING, null, 'System_Command_Error', true);
-            return;
-        }
-    }
-        
-    // }}}
-    // {{{ setOption()
-
-    /**
-     * Sets the value for an option. Each option should be set to true
-     * or false; except the 'SHELL' option which should be a string
-     * naming a shell. The options are:
-     * 
-     * 'SEQUENCE'   Allow a sequence command or not (right now this is always on);
-     *
-     * 'SHUTDOWN'   Execute commands via a shutdown function;
-     *
-     * 'SHELL'      Path to shell;
-     *
-     * 'OUTPUT'     Output stdout from process;
-     *
-     * 'NOHUP'      Use nohup to detach process;
-     *
-     * 'BACKGROUND' Run as a background process with &;
-     *
-     * 'STDERR'     Output on stderr will raise an error, even if
-     *              the command's exit value is zero. The output from
-     *              stderr can be retrieved using the getDebugInfo()
-     *              method of the Pear_ERROR object returned by
-     *              execute().;
-     *
-     * @param string $in_option is a case-sensitive string,
-     *                          corresponding to the option
-     *                          that should be changed
-     * @param mixed $in_setting is the new value for the option
-     * @access public
-     * @return bool true if succes, else false
-     */
-    function setOption($in_option, $in_setting)
-    {
-    	if ($this->_initError) {
-            return $this->_initError;
-        }
-
-        $option = strtoupper($in_option);
-
-        if (!isset($this->options[$option])) {
-            PEAR::raiseError(null, SYSTEM_COMMAND_ERROR, null, E_USER_NOTICE, null, 'System_Command_Error', true);
-            return false;
-        }
-                
-        switch ($option) {
-            case 'OUTPUT':
-            case 'SHUTDOWN':
-            case 'SEQUENCE':
-            case 'BACKGROUND':
-            case 'STDERR':
-                $this->options[$option] = !empty($in_setting);
-                return true;
-            break;
-                
-            case 'SHELL':
-                if (($shell = $this->which($in_setting)) !== false) {
-                    $this->options[$option] = $shell;
-                    return true;
-                } 
-                else {
-                    PEAR::raiseError(null, SYSTEM_COMMAND_NO_SHELL, null, E_USER_NOTICE, $in_setting, 'System_Command_Error', true);
-                    return false;
-                }
-            break;
-                        
-            case 'NOHUP':
-                if (empty($in_setting)) {
-                    $this->options[$option] = false;
-                } 
-                else if ($location = $this->which('nohup')) {
-                    $this->options[$option] = $location;
-                } 
-                else {
-                    PEAR::raiseError(null, SYSTEM_COMMAND_NOHUP_MISSING, null, E_USER_NOTICE, null, 'System_Command_Error', true);
-                    return false;
-                }
-            break;
-        }
-    }
-    
-    // }}}
-    // {{{ pushCommand()
-
-    /**
-     * Used to push a command onto the running command to be executed
-     *
-     * @param  string $in_command binary to be run
-     * @param  string $in_argument either an option or argument value, to be handled appropriately
-     * @param  string $in_argument
-     * @param  ...
-     *
-     * @access public
-     * @return boolean true on success {or System_Command_Error Exception}
-     */
-    function pushCommand($in_command)
-    {
-    	if ($this->_initError) {
-            return $this->_initError;
-        }
-        
-        if (!is_null($this->previousElement) && !in_array($this->previousElement, $this->controlOperators)) {
-            $this->commandStatus = -1;
-            $error = PEAR::raiseError(null, SYSTEM_COMMAND_COMMAND_PLACEMENT, null, E_USER_WARNING, null, 'System_Command_Error', true);
-        }
-
-        // check for error here
-        $command = escapeshellcmd($this->which($in_command));
-        if ($command === false) {
-            $error = PEAR::raiseError(null, SYSTEM_COMMAND_INVALID_COMMAND, null, E_USER_WARNING, null, 'System_Command_Error', true);
-        }
-
-        $argv = func_get_args();
-        array_shift($argv);
-        foreach($argv as $arg) {
-            if (strpos($arg, '-') === 0) {
-                $command .= ' ' . $arg; 
-            }
-            elseif ($arg != '') {
-                $command .= ' ' . escapeshellarg($arg);
-            }
-        }
-
-        $this->previousElement = $command;
-        $this->systemCommand .= $command;
-
-        return isset($error) ? $error : true;
-    }
-
-    // }}}
-    // {{{ pushOperator()
-
-    /**
-     * Used to push an operator onto the running command to be executed
-     *
-     * @param  string $in_operator Either string reprentation of operator or system character
-     *
-     * @access public
-     * @return boolean true on success {or System_Command_Error Exception}
-     */
-    function pushOperator($in_operator)
-    {
-    	if ($this->_initError) {
-            return $this->_initError;
-        }
-
-        $operator = isset($this->controlOperators[$in_operator]) ? $this->controlOperators[$in_operator] : $in_operator;
-
-        if (is_null($this->previousElement) || in_array($this->previousElement, $this->controlOperators)) {
-            $this->commandStatus = -1;
-            $error = PEAR::raiseError(null, SYSTEM_COMMAND_OPERATOR_PLACEMENT, null, E_USER_WARNING, null, 'System_Command_Error', true);
-        }
-        elseif (!in_array($operator, $this->controlOperators)) {
-            $this->commandStatus = -1;
-            $error = PEAR::raiseError(null, SYSTEM_COMMAND_INVALID_OPERATOR, null, E_USER_WARNING, $operator, 'System_Command_Error', true);
-        }
-
-        $this->previousElement = $operator;
-        $this->systemCommand .= ' ' . $operator . ' ';
-        return isset($error) ? $error : true;
-    }
-
-    // }}}
-    // {{{ execute()
-
-    /**
-     * Executes the code according to given options
-     *
-     * @return bool true if success {or System_Command_Exception}
-     *
-     * @access public
-     */
-    function execute() 
-    {
-    	if ($this->_initError) {
-            return $this->_initError;
-        }
-
-        // if the command is empty or if the last element was a control operator, we can't continue
-        if (is_null($this->previousElement) || $this->commandStatus == -1 || in_array($this->previousElement, $this->controlOperators)) {
-            return PEAR::raiseError(null, SYSTEM_COMMAND_INVALID_COMMAND, null, E_USER_WARNING, $this->systemCommand, 'System_Command_Error', true);
-        }
-
-        // Warning about impossible mix of options
-        if (!empty($this->options['OUTPUT'])) {
-            if (!empty($this->options['SHUTDOWN']) || !empty($this->options['NOHUP'])) {
-                return PEAR::raiseError(null, SYSTEM_COMMAND_NO_OUTPUT, null, E_USER_WARNING, null, 'System_Command_Error', true);
-            }
-        }
-                
-        // if this is not going to stdout, then redirect to /dev/null
-        if (empty($this->options['OUTPUT'])) {
-            $this->systemCommand .= ' >/dev/null';
-        }
-                
-        $suffix = '';
-        // run a command immune to hangups, with output to a non-tty
-        if (!empty($this->options['NOHUP'])) {
-            $this->systemCommand = $this->options['NOHUP'] . $this->systemCommand;
-        }
-        // run a background process (only if not nohup)
-        elseif (!empty($this->options['BACKGROUND'])) {
-            $suffix = ' &';
-        }
-                
-        // Register to be run on shutdown
-        if (!empty($this->options['SHUTDOWN'])) {
-            $line = "system(\"{$this->systemCommand}$suffix\");";
-            $function = create_function('', $line);
-            register_shutdown_function($function);
-            return true;
-        } 
-        else {
-            // send stderr to a file so that we can reap the error message
-            $tmpFile = tempnam($this->tmpDir, 'System_Command-');
-            $this->systemCommand .= ' 2>' . $tmpFile . $suffix;
-            $shellPipe = $this->which('echo') . ' ' . escapeshellarg($this->systemCommand) . ' | ' . $this->options['SHELL'];
-            exec($shellPipe, $result, $returnVal);
-
-            if ($returnVal !== 0) {
-                // command returned nonzero; that's always an error
-                $return = PEAR::raiseError(null, SYSTEM_COMMAND_NONZERO_EXIT, null, E_USER_WARNING, null, 'System_Command_Error', true);
-            }
-            else if (!$this->options['STDERR']) {
-                // caller does not care about stderr; return success
-                $return = implode("\n", $result);
-            }
-            else {
-                // our caller cares about stderr; check stderr output
-                clearstatcache();
-                if (filesize($tmpFile) > 0) {
-                    // the command actually wrote to stderr
-                    $stderr_output = file_get_contents($tmpFile);
-                    $return = PEAR::raiseError(null, SYSTEM_COMMAND_STDERR, null, E_USER_WARNING, $stderr_output, 'System_Command_Error', true);
-                } else {
-                    // total success; return stdout gathered by exec()
-                    $return = implode("\n", $result);
-                }
-            }
-
-            unlink($tmpFile);
-            return $return;
-        }
-    }
-
-    // }}}
-    // {{{ which()
-
-    /**
-     * Functionality similiar to unix 'which'. Searches the path
-     * for the specified program. 
-     *
-     * @param $cmd name of the executable to search for 
-     *
-     * @access private
-     * @return string returns the full path if found, false if not
-     */
-    function which($in_cmd)
-    {
-        // only pass non-empty strings to System::which()
-        if (!is_string($in_cmd) || '' === $in_cmd) {
-            return(false);
-        }
-
-        // explicitly pass false as fallback value
-        return System::which($in_cmd, false);
-    }   
-
-    // }}}
-    // {{{ reset()
-
-    /**
-     * Prepare for a new command to be built
-     *
-     * @access public
-     * @return void
-     */
-    function reset()
-    {
-        $this->previousElement = null;
-        $this->systemCommand = null;
-        $this->commandStatus = 0;
-    }
-
-    // }}}
-    // {{{ errorMessage()
-
-    /**
-     * Return a textual error message for a System_Command error code
-     *
-     * @param integer error code
-     *
-     * @return string error message, or false if the error code was
-     * not recognized
-     */
-    function errorMessage($in_value)
-    {
-        static $errorMessages;
-        if (!isset($errorMessages)) {
-            $errorMessages = array(
-                SYSTEM_COMMAND_OK                     => 'no error',
-                SYSTEM_COMMAND_ERROR                  => 'unknown error',
-                SYSTEM_COMMAND_NO_SHELL               => 'no shell found',
-                SYSTEM_COMMAND_INVALID_SHELL          => 'invalid shell',
-                SYSTEM_COMMAND_TMPDIR_ERROR           => 'could not create temporary directory',
-                SYSTEM_COMMAND_INVALID_OPERATOR       => 'control operator invalid',
-                SYSTEM_COMMAND_INVALID_COMMAND        => 'invalid system command',
-                SYSTEM_COMMAND_OPERATOR_PLACEMENT     => 'invalid placement of control operator',
-                SYSTEM_COMMAND_COMMAND_PLACEMENT      => 'invalid placement of command',
-                SYSTEM_COMMAND_NOHUP_MISSING          => 'nohup not found on system',
-                SYSTEM_COMMAND_NO_OUTPUT              => 'output not allowed',
-                SYSTEM_COMMAND_STDERR                 => 'command wrote to stderr',
-                SYSTEM_COMMAND_NONZERO_EXIT           => 'non-zero exit value from command',
-            );
-        }
-
-        if (System_Command::isError($in_value)) {
-            $in_value = $in_value->getCode();
-        }
-
-        return isset($errorMessages[$in_value]) ? $errorMessages[$in_value] : $errorMessages[SYSTEM_COMMAND_ERROR];
-    }
-
-    // }}}
-    // {{{ isError()
-
-    /**
-     * Tell whether a result code from a System_Command method is an error
-     *
-     * @param int result code
-     *
-     * @return bool whether $in_value is an error
-     *
-     * @access public
-     */
-    function isError($in_value)
-    {
-        return (is_object($in_value) &&
-                (strtolower(get_class($in_value)) == 'system_command_error' ||
-                 is_subclass_of($in_value, 'system_command_error')));
-    }
-    
-    // }}}
-}
-
-// {{{ class System_Command_Error
-
-/**
- * System_Command_Error constructor.
- *
- * @param mixed      System_Command error code, or string with error message.
- * @param integer    what "error mode" to operate in
- * @param integer    what error level to use for $mode & PEAR_ERROR_TRIGGER
- * @param mixed      additional debug info, such as the last query
- *
- * @access public
- *
- * @see PEAR_Error
- */
-
-// }}}
-class System_Command_Error extends PEAR_Error
-{
-    // {{{ properties
-
-    /**
-     * Message in front of the error message
-     * @var string $error_message_prefix
-     */
-    var $error_message_prefix = 'System_Command Error: ';
-
-    // }}}
-    // {{{ constructor
-
-    function __construct($code = SYSTEM_COMMAND_ERROR, $mode = PEAR_ERROR_RETURN,
-              $level = E_USER_NOTICE, $debuginfo = null)
-    {
-        if (is_int($code)) {
-            parent::__construct(System_Command::errorMessage($code), $code, $mode, $level, $debuginfo);
-        } else {
-            parent::__construct("Invalid error code: $code", SYSTEM_COMMAND_ERROR, $mode, $level, $debuginfo);
-        }
-    }
-    
-    // }}}
-}
-?>
diff --git a/civicrm/packages/VERSIONS.php b/civicrm/packages/VERSIONS.php
index 0b97f38fef..dfe70e54f2 100644
--- a/civicrm/packages/VERSIONS.php
+++ b/civicrm/packages/VERSIONS.php
@@ -107,9 +107,8 @@
  * Contact_Vcard_Build           1.1.2      PHP 3          local changes
  * Contact_Vcard_Parse           1.32.0     PHP 3.0
  * Date                          1.4.7      BSD 3-cl.
- * DB                            1.7.13     PHP 3.0
- * DB_DataObject                 1.8.12     PHP 3          local changes
- * DB_Table                      1.5.6      BSD 3-cl.
+ * DB                            1.9.3      PHP 3.0
+ * DB_DataObject                 1.11.3     PHP 3          local changes
  * HTML_Common                   1.2.5      PHP 3
  * HTML_QuickForm                3.2.16     PHP 3          local changes, hierselect.php from a very old version (PHP 2)
  * HTML_QuickForm_advmultiselect 1.5.1      BSD 3-cl.      local changes
@@ -127,7 +126,6 @@
  * PEAR                          1.9.0      PHP 3.0
  * PHP_Beautifier                0.1.14     PHP 3.0
  * Services_Twilio               3.10.0     MIT
- * System_Command                1.0.6      PHP 2
  * Validate                      0.8.2      BSD 3-cl.
  * Validate_Finance              0.5.4      BSD 3-cl.
  * XML_RPC                       1.5.3      PHP 3
diff --git a/civicrm/release-notes.md b/civicrm/release-notes.md
index 62f34b75e3..a77e40506a 100644
--- a/civicrm/release-notes.md
+++ b/civicrm/release-notes.md
@@ -15,6 +15,17 @@ Other resources for identifying changes are:
     * https://github.com/civicrm/civicrm-joomla
     * https://github.com/civicrm/civicrm-wordpress
 
+## CiviCRM 5.23.0
+
+Released March 4, 2020
+
+- **[Synopsis](release-notes/5.23.0.md#synopsis)**
+- **[Features](release-notes/5.23.0.md#features)**
+- **[Bugs resolved](release-notes/5.23.0.md#bugs)**
+- **[Miscellany](release-notes/5.23.0.md#misc)**
+- **[Credits](release-notes/5.23.0.md#credits)**
+- **[Feedback](release-notes/5.23.0.md#feedback)**
+
 ## CiviCRM 5.22.1
 
 Released February 18, 2020
diff --git a/civicrm/release-notes/5.22.1.md b/civicrm/release-notes/5.22.1.md
index fa08dfda3c..fdf2cb096e 100644
--- a/civicrm/release-notes/5.22.1.md
+++ b/civicrm/release-notes/5.22.1.md
@@ -15,7 +15,7 @@ Released February 18, 2020.
 | Change the database schema?                                     |   no    |
 | Alter the API?                                                  |   no    |
 | Require attention to configuration options?                     |   no    |
-| Fix problems installing or upgrading to a previous version?     | **yes** |
+| Fix problems installing or upgrading to a previous version?     |   no    |
 | Introduce features?                                             |   no    |
 | **Fix bugs?**                                                   | **yes** |
 
diff --git a/civicrm/release-notes/5.23.0.md b/civicrm/release-notes/5.23.0.md
new file mode 100644
index 0000000000..b3a8cb36cf
--- /dev/null
+++ b/civicrm/release-notes/5.23.0.md
@@ -0,0 +1,1100 @@
+# CiviCRM 5.23.0
+
+Released March 4, 2020
+
+- **[Synopsis](#synopsis)**
+- **[Features](#features)**
+- **[Bugs resolved](#bugs)**
+- **[Miscellany](#misc)**
+- **[Credits](#credits)**
+- **[Feedback](#feedback)**
+
+## <a name="synopsis"></a>Synopsis
+
+| *Does this version...?*                                         |         |
+|:--------------------------------------------------------------- |:-------:|
+| Fix security vulnerabilities?                                   |   no    |
+| **Change the database schema?**                                 | **yes** |
+| **Alter the API?**                                              | **yes** |
+| Require attention to configuration options?                     |   no    |
+| **Fix problems installing or upgrading to a previous version?** | **yes** |
+| **Introduce features?**                                         | **yes** |
+| **Fix bugs?**                                                   | **yes** |
+
+## <a name="features"></a>Features
+
+### Core CiviCRM
+
+- **Add PDF letter functionality for Activities using new token processor
+  ([14662](https://github.com/civicrm/civicrm-core/pull/14662))**
+
+  Adds the ability to create PDF letters that include activity tokens from the
+  activity search.
+
+- **Add utf8 to utfmb8 conversion api command
+  ([15969](https://github.com/civicrm/civicrm-core/pull/15969))**
+
+  Adds an API to convert the database from utf8 to utf8mb4. This is intended to
+  help early adopters using the utf8mb4 standard (which includes support for
+  emojis) with CiviCRM.
+
+- **Move exportui extension into core
+  ([16335](https://github.com/civicrm/civicrm-core/pull/16335))**
+
+  Updates the 'Select Fields' screen on step 3 of the Export wizard.
+
+- **Allow setting a custom L10n/I18n resource directory
+  ([dev/translation#30](https://lab.civicrm.org/dev/translation/issues/30):
+  [15408](https://github.com/civicrm/civicrm-core/pull/15408) and
+  [16583](https://github.com/civicrm/civicrm-core/pull/16583))**
+
+  Adds a new setting for the "L10n/I18n resource directory" which allows site
+  administrators to specify the location of the l10n directory (and allows the
+  directory to be outside of the main code base).
+
+- **Proposal to add a new hook_civicrm_alterExternUrl
+  ([dev/core#1100](https://lab.civicrm.org/dev/core/issues/1100):
+  [15475](https://github.com/civicrm/civicrm-core/pull/15475))**
+
+  Adds a new hook `hook_civicrm_alterExternUrl` which can be used by extension
+  developers to alter Extern scripts.
+
+- **Support MySQL 8.0 now that it is GA
+  (Work Towards [dev/core#392](https://lab.civicrm.org/dev/core/issues/392):
+  [16204](https://github.com/civicrm/civicrm-core/pull/16204),
+  [16202](https://github.com/civicrm/civicrm-core/pull/16202) and
+  [16207](https://github.com/civicrm/civicrm-core/pull/16207))**
+
+  Works toward supporting MySQL 8.0 by:
+    + Ensuring that the log_date column on logging tables is NOT NULL in MySQL 8.
+    + Ensuring that `CRM_Utils_QueryFormatterTest` passes on MySQL 8.
+    + Fixing the handling of dates in `getMembershipStarts` function to ensure
+    date is passed to query as yyyy-mm-dd to fix test failure on MySQL 8.
+
+- **Field Names now Reserved Words in MySQL8
+  ([dev/core#1143](https://lab.civicrm.org/dev/core/issues/1143):
+  [16206](https://github.com/civicrm/civicrm-core/pull/16206),
+  [16203](https://github.com/civicrm/civicrm-core/pull/16203),
+  [16201](https://github.com/civicrm/civicrm-core/pull/16201),
+  [16193](https://github.com/civicrm/civicrm-core/pull/16193) and
+  [16214](https://github.com/civicrm/civicrm-core/pull/16214))**
+
+  MySQL8 reserves the words "description" and "grouping" which CiviCRM uses as
+  field names. These changes work to ensure that these fields play nicely when
+  using MySQL8.
+
+- **CQ: Migrate simple Preferences & Settings forms to using a Generic class.
+  (Work Towards [dev/core#495](https://lab.civicrm.org/dev/core/issues/495):
+  [16224](https://github.com/civicrm/civicrm-core/pull/16224),
+  [16234](https://github.com/civicrm/civicrm-core/pull/16234),
+  [16235](https://github.com/civicrm/civicrm-core/pull/16235),
+  [16236](https://github.com/civicrm/civicrm-core/pull/16236),
+  [16237](https://github.com/civicrm/civicrm-core/pull/16237),
+  [16233](https://github.com/civicrm/civicrm-core/pull/16233),
+  [16232](https://github.com/civicrm/civicrm-core/pull/16232),
+  [16228](https://github.com/civicrm/civicrm-core/pull/16228),
+  [16229](https://github.com/civicrm/civicrm-core/pull/16229) and
+  [16227](https://github.com/civicrm/civicrm-core/pull/16227))**
+
+  Makes admin settings field labels translatable.
+
+- **composer.json - Update civicrm-setup
+  ([16423](https://github.com/civicrm/civicrm-core/pull/16423))**
+
+  Improves civicrm-setup for scripted installations of Druapl8 with `cv` and GUI
+  based installations on WordPress.
+
+- **Replace all instances of CRM_Core_Fatal with throw new CRM_Core_Exception
+  (Work Towards [dev/core#560](https://lab.civicrm.org/dev/core/issues/560):
+  [16433](https://github.com/civicrm/civicrm-core/pull/16433))**
+
+  Work towards throwing exceptions instead of fatal errors.
+
+- **Google+ references should be removed as it phases out (Work Towards
+  [dev/core#711](https://lab.civicrm.org/dev/core/issues/711):
+  [16099](https://github.com/civicrm/civicrm-core/pull/16099) and
+  [16185](https://github.com/civicrm/civicrm-core/pull/16185))**
+
+  Google is phasing out Google+ this begins work to remove all visible
+  references to Google+ from CiviCRM.
+
+- **"config_backend" should be thoroughly removed (Work Towards
+  [dev/core#1387](https://lab.civicrm.org/dev/core/issues/1387):
+  [15842](https://github.com/civicrm/civicrm-core/pull/15842))**
+
+  Ensures that the column `civicrm_domain.config_backend` is not created on new
+  sites and drops the column `civicrm_domain.config_backend` for sites that
+  started on 4.7-5.20. Additionally, this deprecates some functions related to
+  the setting `civicrm_domain.config_backend`.
+
+- **Address ID field should be exportable
+  ([dev/core#1512](https://lab.civicrm.org/dev/core/issues/1512):
+  [16240](https://github.com/civicrm/civicrm-core/pull/16240))**
+
+  Makes Address ID an exportable field.
+
+- **APIv3 - Only scan files for deprecation checks in Entity.get
+  ([16460](https://github.com/civicrm/civicrm-core/pull/16460))**
+
+  Improves performance of APIv3 by stopping scanning nonexistent files.
+
+- **Add debug info to api4 output
+  ([16351](https://github.com/civicrm/civicrm-core/pull/16351))**
+
+  Improves API4 by adding debug info and displaying the query.
+
+- **APIv4 - don't throw exception when updating/deleting 0 items
+  ([16374](https://github.com/civicrm/civicrm-core/pull/16374))**
+
+  Improves APIv4's update and delete actions when operating on 0 items so that
+  they do not throw exceptions, instead they return 0 results.
+
+- **APIv4 - Variable substitution in docblocks
+  ([16449](https://github.com/civicrm/civicrm-core/pull/16449))**
+
+  Makes the help text more meaningful in the APIv4 Explorer by always referring to
+  the correct entity & action names.
+
+- **APIv4 Explorer css tweaks
+  ([16431](https://github.com/civicrm/civicrm-core/pull/16431))**
+
+  Makes the checkboxes in the APIv4 explorer line up better and makes them bold
+  when checked.
+
+- **APIv4 docs improvements
+  ([16411](https://github.com/civicrm/civicrm-core/pull/16411))**
+
+  Improves APIv4 docs and their display in the explorer.
+
+- **APIv4 Explorer - Better UI for defaults param
+  ([16454](https://github.com/civicrm/civicrm-core/pull/16454))**
+
+  Improves APIv4 so that it handles defaults param with select2 instead of a
+  text box. Also shows the new way of using the variadic addSelect function.
+
+- **Api4 - improve docblocks & display links in explorer
+  ([16373](https://github.com/civicrm/civicrm-core/pull/16373))**
+
+  Improves documentation for most APIv4 entities by adding clickable links
+  to documentation displayed in the APIv4 explorer.
+
+- **Implement PaymentProcessor and PaymentProcessorType APIv4 Entities
+  ([15624](https://github.com/civicrm/civicrm-core/pull/15624))**
+
+  Adds `PaymentProcesor` and `PaymentProcessorType` entities to APIv4.
+
+- **Update function to repair indexes to take table as a parameter
+  ([16146](https://github.com/civicrm/civicrm-core/pull/16146))**
+
+  Makes it so the `System.getmissingindices` and `System.updateindexes` APIs
+  accept 'tables' as a parameter (array or string) and limits the results to the
+  specified tables if supplied.
+
+- **Api4 - Support wildcard * in select clause
+  ([16302](https://github.com/civicrm/civicrm-core/pull/16302))**
+
+  Adds support for the * wildcard in the SELECT clause of APIv4 Get actions.
+
+- **Api4 - Filter returned fields by contact type
+  ([16300](https://github.com/civicrm/civicrm-core/pull/16300))**
+
+  Ensures that civicrm_api4('Contact', 'get' ...) filters the fields returned
+  based on contact type.
+
+- **Api4 - Convert field values to correct data type
+  ([16274](https://github.com/civicrm/civicrm-core/pull/16274))**
+
+  Ensures that Api4 returns field values as the correct data type (instead of
+  always as a raw string).
+
+- **Api4 - format output consistently across get/create/update.
+  ([16305](https://github.com/civicrm/civicrm-core/pull/16305))**
+
+  Improves consistency of output in Api4.
+
+- **Add more functionality to the api4 $index param
+  ([16257](https://github.com/civicrm/civicrm-core/pull/16257))**
+
+  Improves APIv4 by making the `$index` param support 4 modes: Integer, String,
+  Non-associative array and Associative array and documenting them more clearly.
+
+- **Use markdown in php docblocks & display in APIv4 Explorer
+  ([16425](https://github.com/civicrm/civicrm-core/pull/16425))**
+
+  Reformats some docblocks to use markdown, and uses the marked.js library to
+  display the docblocks clearly in the APIv4 Explorer.
+
+- **Civi\Test - Allow `headless()->apply()` (etc) to execute without setup.sh
+  ([16405](https://github.com/civicrm/civicrm-core/pull/16405))**
+
+  Makes it possible to run the headless test suites without running setup.sh.
+
+- **Allow most values of $civicrm_paths['XXX']['url'] to be relative
+  ([16403](https://github.com/civicrm/civicrm-core/pull/16403))**
+
+  Allows system administrators to override various path and URL computations
+  using a relative URL.
+
+- **composer.json - Explicitly set target PHP platform
+  ([16421](https://github.com/civicrm/civicrm-core/pull/16421))**
+
+  Refines the way in which composer resolves dependencies - so as to prefer
+  packages that are compatible with CiviCRM's declared minimum requirement.
+
+- **Add function to set entitySubType for entity forms
+  ([16017](https://github.com/civicrm/civicrm-core/pull/16017))**
+
+  Makes it so entity subtype can be set in a standard way and is used if set.
+
+- **Add metadata to is_primary fields
+  ([16113](https://github.com/civicrm/civicrm-core/pull/16113))**
+
+  Improves field information for `is_primary` for the sake of Form Builder.
+
+- **Check field to carry over custom data by default when the other contact has
+  none ([16246](https://github.com/civicrm/civicrm-core/pull/16246))**
+
+  Improves the contact merge screen by defaulting to checking the box to
+  carryover any custom data fields where the contact being merged into has no
+  data.
+
+ - **Add resolved to return array for get_conflicts
+   ([15829](https://github.com/civicrm/civicrm-core/pull/15829))**
+
+   Enhances the `Contact.get_merge_conflicts` API call to also include an array
+   of resolved conflicts.
+
+### CiviCase
+
+- **Add case tokens to email activities
+  ([dev/core#522](https://lab.civicrm.org/dev/core/issues/522):
+  [16105](https://github.com/civicrm/civicrm-core/pull/16105))**
+
+  Adds the ability to use case tokens in PDF Letters and single emails.
+
+- **Restrict case roles by group
+  ([15570](https://github.com/civicrm/civicrm-core/pull/15570))**
+
+  Adds a setting to restrict contacts available to be selected for a case role
+  by group.
+
+### CiviContribute
+
+- **Add columns to Contribution Detail report: Employer, Location Type,
+  Preferred Communication Method
+  ([dev/core#1573](https://lab.civicrm.org/dev/core/issues/1573):
+  [16458](https://github.com/civicrm/civicrm-core/pull/16458))**
+
+  Improves the Contribution Detail report by making the fields 'Employer',
+  'Location Type', 'Preferred Communication Method' available as columns.
+
+- **Add "Contributor Name" to Offline Contribution Receipts
+  ([16286](https://github.com/civicrm/civicrm-core/pull/16286))**
+
+  Adds the display name of the contributor to Offline Contribution Receipts.
+
+- **Add pre/post hooks on ContributionSoft entity
+  ([16264](https://github.com/civicrm/civicrm-core/pull/16264))**
+
+  Add Pre and post hooks for the `ContributionSoft` entity.
+
+- **Deprecate creating partially paid contributions, other than by partially
+  paying a contribution.
+  ([15855](https://github.com/civicrm/civicrm-core/pull/15855))**
+
+  Adds deprecation noise when an attempt is made to set a contribution to
+  partially paid other than by adding a payment (using Payment.create). This is
+  necessary not only because we have a preferred workflow but also because
+  setting to "Partially Paid" doesn't actually create the  `financial_trxn` that
+  is required if done via `Contribution.create` flow.
+
+### CiviEvent
+
+- **Expose "is_show_location" to control display of event locations
+  ([dev/core#1511](https://lab.civicrm.org/dev/core/issues/1511):
+  [16230](https://github.com/civicrm/civicrm-core/pull/16230))**
+
+  Exposes an option to show event location on the event configuration tab.
+
+### CiviMail
+
+- **Make Deja Vu Sans the default font for mailing labels
+  ([dev/core#1502](https://lab.civicrm.org/dev/core/issues/1502):
+  [16216](https://github.com/civicrm/civicrm-core/pull/16216))**
+
+  Updates the default font for mailing labels to be "Deja Vu Sans" which is a
+  font that supports unicode characters.
+
+- **Pass through mailing id to alterMailContent hook
+  ([dev/core#1253](https://lab.civicrm.org/dev/core/issues/1253):
+  [15306](https://github.com/civicrm/civicrm-core/pull/15306))**
+
+  Improves the `hook_civicrm_alterMailContent` hook by passing the mailing ID to
+  it so that developers can access data about the mailing that the content is
+  part of.
+
+- **Eventually google will require OAUTH for bounce processing and may require
+  it for outbound SMTP through gmail servers
+  (Work Towards [dev/mail#59](https://lab.civicrm.org/dev/mail/issues/59):
+  [16231](https://github.com/civicrm/civicrm-core/pull/16231),
+  [16518](https://github.com/civicrm/civicrm-core/pull/16518),
+  [16307](https://github.com/civicrm/civicrm-core/pull/16307) and
+  [16306](https://github.com/civicrm/civicrm-core/pull/16306))**
+
+  Adds the ability to connect to IMAP server using XOAUTH2 protocol. Updates the
+  version of zetacomponents/mail package to a version that will support XAUTH2.
+
+- **Allow personalised 'view in browser' links for mass emails
+  ([dev/core#1064](https://lab.civicrm.org/dev/core/issues/1064):
+  [14591](https://github.com/civicrm/civicrm-core/pull/14591))**
+
+  Improves the CiviMail "view in browser" experience by allowing personalized
+  links.
+
+### CiviMember
+
+- **When viewing a membership show if the status is overridden
+  ([16341](https://github.com/civicrm/civicrm-core/pull/16341))**
+
+  Adds the text "(Overridden)" next to the membership status when viewing a
+  membership for which the status has been overridden.
+
+- **Auto renew text appears at top of membership edit form
+  ([dev/core#1519](https://lab.civicrm.org/dev/core/issues/1519):
+  [16269](https://github.com/civicrm/civicrm-core/pull/16269))**
+
+  Improves the placement of the Auto Renew help text on the Membership edit
+  form.
+
+- **Improve accessibility of membership edit form
+  ([dev/core#1520](https://lab.civicrm.org/dev/core/issues/1520):
+  [16272](https://github.com/civicrm/civicrm-core/pull/16272))**
+
+  Updates the help text link text on the membership edit form to be meaningful
+  to improve accessibility.
+
+- **Permit modified_id as a parameter for membership create api
+  ([16166](https://github.com/civicrm/civicrm-core/pull/16166))**
+
+  Adds `modified_id` as a parameter for APIv3 `membership.create`.
+
+### Wordpress Integration
+
+- **WordPress Version Update
+  ([dev/wordpress#2](https://lab.civicrm.org/dev/wordpress/issues/2):
+  [16211](https://github.com/civicrm/civicrm-core/pull/16211))**
+
+  Ensures the WordPress plugin version is updated by distmaker.
+
+- **Pass language code to CiviCRM for Wordpress
+  ([16446](https://github.com/civicrm/civicrm-core/pull/16446))**
+
+  Ensures CiviCRM will always pick up the language that WordPress is configured
+  to use instead of having to configure the language in both CiviCRM and
+  WordPress.
+
+- **Update civicrm.settings.php.template to default to CLEANURL for WP
+  ([16284](https://github.com/civicrm/civicrm-core/pull/16284))**
+
+  Makes it so that new WordPress/CiviCRM sites default to having CleanUrls.
+
+## <a name="bugs"></a>Bugs resolved
+
+### Core CiviCRM
+
+- **No Household Member Relationship Created when an Individual shares a
+  relationship with a household
+  ([dev/core#1319](https://lab.civicrm.org/dev/core/issues/1319):
+  [16447](https://github.com/civicrm/civicrm-core/pull/16447))**
+
+  Fixes a regression in core where sharing an address with a household stopped
+  creating a household member relationship so that there is a checkbox (that
+  defaults to checked) to create a household member relationship when sharing
+  an address with a household.
+
+- **Add mechanism for avoiding conflicts when deduping
+  ([dev/core#1355](https://lab.civicrm.org/dev/core/issues/1355):
+  [15670](https://github.com/civicrm/civicrm-core/pull/15670))**
+
+  Improves dedupe functionality so that it aborts early if two (or more)
+  dedupe jobs are running at the same time and attempt to act on the same
+  contact.
+
+- **Clear asset builder cache when clearing cache
+  ([dev/core#1395](https://lab.civicrm.org/dev/core/issues/1395):
+  [15857](https://github.com/civicrm/civicrm-core/pull/15857))**
+
+  Ensures the "dyn" folder gets cleared when clearing CiviCRM caches.
+
+- **Smart groups with deleted/disabled custom fields throw fatal error on its
+  usage. (Work Towards [dev/core#1471](https://lab.civicrm.org/dev/core/issues/1471):
+  [16267](https://github.com/civicrm/civicrm-core/pull/16267))**
+
+  Adds an alert on the system status page when deleted custom fields are used in
+  a smart group.
+
+- **Invalid links to extension directory
+  ([dev/core#1550](https://lab.civicrm.org/dev/core/issues/1550):
+  [16394](https://github.com/civicrm/civicrm-core/pull/16394))**
+
+  Fixes an invalid link to the extension directory in help text.
+
+- **CQ: Eliminate 'contribution_invoice_settings' 'Setting' in favour of
+  following our standard (Work Towards
+  [dev/core#1558](https://lab.civicrm.org/dev/core/issues/1558):
+  [16397](https://github.com/civicrm/civicrm-core/pull/16397),
+  [16398](https://github.com/civicrm/civicrm-core/pull/16398),
+  [16412](https://github.com/civicrm/civicrm-core/pull/16412) and
+  [16424](https://github.com/civicrm/civicrm-core/pull/16424))**
+
+  Works towards eliminating the 'contribution_invoice_settings' 'Setting' in
+  favor of following the CiviCRM standard by ensuring the `credit_notes_prefix`
+  is retrieved the standard way, refactoring some old code and adding some data
+  conversion code for the non-standard setting.
+
+- **Errors in link ReCaptcha and Extension Directory
+  ([dev/translation#33](https://lab.civicrm.org/dev/translation/issues/33):
+  [16387](https://github.com/civicrm/civicrm-core/pull/16387))**
+
+  Fixes a link with incorrect quoting leading to malformed html and a link with
+  an incorrect anchor.
+
+- **Incorrect Contact Reference option for Postal Code in civicrm_data.sql
+  ([dev/translation#34](https://lab.civicrm.org/dev/translation/issues/34):
+  [16352](https://github.com/civicrm/civicrm-core/pull/16352))**
+
+  Fixes a bug where custom fields of the type "contact reference" would
+  display the country instead of the postal code so that they show the country
+  as expected.
+
+- **Getting Started dashlet does not cache per language
+  ([dev/translation#35](https://lab.civicrm.org/dev/translation/issues/35):
+  [16354](https://github.com/civicrm/civicrm-core/pull/16354))**
+
+  Ensures the CiviCRM Resources dashlet displays in the user's language.
+
+- **Call hook_civicrm_copy for RecurringEntity
+  ([16466](https://github.com/civicrm/civicrm-core/pull/16466))**
+
+  Ensures that `hook_civicrm_copy` is called when entities are copied via
+  RecurringEntity.
+
+- **CRM_Utils_XML::parseFile() - Fix obscure segfault
+  ([16463](https://github.com/civicrm/civicrm-core/pull/16463))**
+
+  Fixes a Segfault error for users with a very specific config (Macs running php
+  7.4.1 or 7.3.9 MAMP 5.6).
+
+- **Add require_once to api3TestTrait
+  ([16461](https://github.com/civicrm/civicrm-core/pull/16461))**
+
+  Ensures the `api3TestTrait` includes the file for the
+  `_civicrm_api3_get_options_from_params` function instead of relying on it
+  being loaded tangentially.
+
+- **Cleanup API_Exception usage
+  ([16432](https://github.com/civicrm/civicrm-core/pull/16432))**
+
+  Fixes mis-capitalized exception class name, and moves a APIv3-only check to the
+  right place.
+
+- **IconPicker widget improvements
+  ([15760](https://github.com/civicrm/civicrm-core/pull/15760))**
+
+  Fixes some style issues with the icon picker widget and adds some controls to
+  the dialog.
+
+- **CRM_Core_Menu - Fix warnings during local test run
+  ([16406](https://github.com/civicrm/civicrm-core/pull/16406))**
+
+  Fixes the warning `Warning: simplexml_load_file(): I/O warning : failed to
+  load external entity` when running the test suite on Drupal 8 sites on OSX.
+
+- **Add user friendly error message on merge error
+  ([dev/core#1540](https://lab.civicrm.org/dev/core/issues/1540):
+  [16340](https://github.com/civicrm/civicrm-core/pull/16340))**
+
+  Adds a user friendly error when attempting to merge two contacts from the
+  Advanced Search Screen when no Supervised rule is present on the site, before
+  this change a fatal error was thrown.
+
+- **Enotice fix ([16293](https://github.com/civicrm/civicrm-core/pull/16293))**
+
+  Fixes an "Warning: Invalid argument supplied foreach()" e-notice on the edit
+  smart group screen.
+
+- **Force reCaptcha is not working when pay later enabled
+  ([16282](https://github.com/civicrm/civicrm-core/pull/16282))**
+
+  Ensures that ReCaptcha is always on even if only pay later is enabled as a
+  payment method.
+
+- **Dedupe rules don't work with custom fields/Variable type error during import
+  process ([dev/core#1597](https://lab.civicrm.org/dev/core/issues/1597) and
+  [dev/core#1595](https://lab.civicrm.org/dev/core/issues/1595):
+  [16558](https://github.com/civicrm/civicrm-core/pull/16558))**
+
+  Fixes a regression where dedupe rules were failing when attempting to use a
+  custom field as the match field.
+
+- **Select_string only accepts integers: 1
+  ([dev/translation#36](https://lab.civicrm.org/dev/translation/issues/36):
+  [16599](https://github.com/civicrm/civicrm-core/pull/16599))**
+
+  Fixes an error for translated sites when trying to perform a contact search.
+
+- **Advanced Search: "active period" filter regression
+  ([dev/core#1592](https://lab.civicrm.org/dev/core/issues/1592):
+  [16535](https://github.com/civicrm/civicrm-core/pull/16535))**
+
+  Fixes a bug in Advanced Search where the filter "active period" (for
+  relationships) is not respected.
+
+- **Advanced search links on mailing reports page give "DB Error: syntax error"
+  ([dev/core#1551](https://lab.civicrm.org/dev/core/issues/1551):
+  [16534](https://github.com/civicrm/civicrm-core/pull/16534))**
+
+  Fixes a regression where this url
+  "civicrm/contact/search/advanced?force=1&mailing_id=1" throws a fatal error.
+
+- **Upgrade fails when civicrm_managed table contains a row including
+  entity_type='PaymentProcessorType';
+  ([dev/core#1498](https://lab.civicrm.org/dev/core/issues/1498):
+  [16521](https://github.com/civicrm/civicrm-core/pull/16521))**
+
+- **Fix loading with alternate packages path (system-level)
+  ([16407](https://github.com/civicrm/civicrm-core/pull/16407))**
+
+- **Fix loading with alternate packages path (UI-level)
+  ([16409](https://github.com/civicrm/civicrm-core/pull/16409))**
+
+- **setup.sh - Fixes for running in basic composer file-structure
+  ([16408](https://github.com/civicrm/civicrm-core/pull/16408))**
+
+- **Make $civicrm_paths less sensitive to trailing slashes. Add tests.
+  ([16404](https://github.com/civicrm/civicrm-core/pull/16404))**
+
+- **Prevent PropertBag from being so noisy about deprecation warnings
+  ([16390](https://github.com/civicrm/civicrm-core/pull/16390))**
+
+- **Wrong parameter passed to executeQuery function
+  ([16353](https://github.com/civicrm/civicrm-core/pull/16353))**
+
+- **Update temp table handler to support utf8mb4 if that is the db collation
+  ([15992](https://github.com/civicrm/civicrm-core/pull/15992))**
+
+- **Enforce isSkipLineItem for membership payment entity in Order.create
+  ([15891](https://github.com/civicrm/civicrm-core/pull/15891))**
+
+- **Fetch Only Active Custom Group Extend Values
+  ([15759](https://github.com/civicrm/civicrm-core/pull/15759))**
+
+- **Ensure that we always return a raw urlencoded url for extenal urls to fix
+  Flexmailer tests
+  ([16265](https://github.com/civicrm/civicrm-core/pull/16265))**
+
+- **Country/State PseudoConstant not sorted according to the locale
+  ([16258](https://github.com/civicrm/civicrm-core/pull/16258))**
+
+- **Change check.gif to an actual gif (was a PNG)
+  ([16220](https://github.com/civicrm/civicrm-core/pull/16220))**
+
+- **Fix Error handling following DB Package upgrade
+  ([16213](https://github.com/civicrm/civicrm-core/pull/16213))**
+
+- **Do not escape html in report header and footers on API create
+  ([dev/core#1286](https://lab.civicrm.org/dev/core/issues/1286):
+  [15383](https://github.com/civicrm/civicrm-core/pull/15383))**
+
+- **Editing a group description inline causes the recent items list to display
+  blank instead of the group title
+  ([dev/core#1506](https://lab.civicrm.org/dev/core/issues/1506):
+  [16197](https://github.com/civicrm/civicrm-core/pull/16197))**
+
+- **Recent items list has blank entry and E_NOTICE's when viewing an Email
+  activity from activities tab
+  ([dev/core#1507](https://lab.civicrm.org/dev/core/issues/1507):
+  [16195](https://github.com/civicrm/civicrm-core/pull/16195))**
+
+- **'Merge All Contacts with the Same Address' doesn't consider Household
+  replace individuals that share same address. ([CRM-21858
+  ](https://issues.civicrm.org/jira/browse/CRM-21858) and
+  [dev/core#1364](https://lab.civicrm.org/dev/core/issues/1364):
+  [16369](https://github.com/civicrm/civicrm-core/pull/16369))**
+
+- **Scheduled reminder emails sent to contacts with do_not_email set or with
+  email on hold ([dev/core#1378](https://lab.civicrm.org/dev/core/issues/1378):
+  [15778](https://github.com/civicrm/civicrm-core/pull/15778))**
+
+- **Update BAO_Acl internal functions to protected & unused to deprecated
+  ([16189](https://github.com/civicrm/civicrm-core/pull/16189))**
+
+- **Deactivating CiviContribute causes SQL error
+  ([dev/core#547](https://lab.civicrm.org/dev/core/issues/547):
+  [16365](https://github.com/civicrm/civicrm-core/pull/16365))**
+
+### CiviCase
+
+- **Changing a civicase activity's label breaks the max_instances check
+  ([dev/core#1116](https://lab.civicrm.org/dev/core/issues/1116):
+  [16347](https://github.com/civicrm/civicrm-core/pull/16347))**
+
+- **Case Resource shows contact names that are not accessible to logged in user
+  ([dev/core#1499](https://lab.civicrm.org/dev/core/issues/1499):
+  [16150](https://github.com/civicrm/civicrm-core/pull/16150))**
+
+- **Fix activity.case_id token to always display the first case ID
+  ([16208](https://github.com/civicrm/civicrm-core/pull/16208))**
+
+### CiviContribute
+
+- **Positive integer expected for recurring interval even when user is not
+  making a recurring contribution
+  ([dev/core#1588](https://lab.civicrm.org/dev/core/issues/1588):
+  [16532](https://github.com/civicrm/civicrm-core/pull/16532))**
+
+  Fixes a Fatal error when the recurring option "Support recurring intervals" is
+  enabled on a contribution page.
+
+- **Make getTotalPayments return 0 instead of NULL
+  ([16129](https://github.com/civicrm/civicrm-core/pull/16129))**
+
+- **Email address token on the confirmation message not working for a pay later
+  contribution. ([dev/core#1255](https://lab.civicrm.org/dev/core/issues/1255):
+  [15314](https://github.com/civicrm/civicrm-core/pull/15314))**
+
+- **Paypal IPN fails when contact is merged
+  ([dev/core#1249](https://lab.civicrm.org/dev/core/issues/1249):
+  [15307](https://github.com/civicrm/civicrm-core/pull/15307))**
+
+- **`,` as decimal separator, and [space] as thousand separators leads to api
+  errors ([dev/core#1522](https://lab.civicrm.org/dev/core/issues/1522):
+  [16392](https://github.com/civicrm/civicrm-core/pull/16392))**
+
+- **Fix retrieving contribution_status_id for manual payment processor
+  ([16018](https://github.com/civicrm/civicrm-core/pull/16018))**
+
+- **Set contribution status to refunded when it has been refunded
+  ([16148](https://github.com/civicrm/civicrm-core/pull/16148))**
+
+### CiviEvent
+
+- **"Confirm Event Invitation" message template has a bad variable
+  ([dev/event#32](https://lab.civicrm.org/dev/event/issues/32):
+  [16367](https://github.com/civicrm/civicrm-core/pull/16367))**
+
+  Fixes the URL for self-service updates links in the "Confirm Event Invitation"
+  message template to include the participant ID so that they link correctly.
+
+- **Respect form value for register_date on participant form
+  ([16439](https://github.com/civicrm/civicrm-core/pull/16439))**
+
+  Fixes a bug where the participant registration date is exposed on the
+  backoffice event form, but when a credit card payment is being submitted it is
+  ignored.
+
+- **Scheduled reminders are incorrectly sent from event templates when
+  "additional group" is selected
+  ([dev/event#28](https://lab.civicrm.org/dev/event/issues/28):
+  [16311](https://github.com/civicrm/civicrm-core/pull/16311))**
+
+- **"Confirm from waitlist" doesn't consider whether participant roles are
+  counted. ([dev/event#23](https://lab.civicrm.org/dev/event/issues/23):
+  [16098](https://github.com/civicrm/civicrm-core/pull/16098))**
+
+- **Event registration form doesn't prevent multiple signups for waitlisted
+  participants. ([dev/event#30](https://lab.civicrm.org/dev/event/issues/30):
+  [16358](https://github.com/civicrm/civicrm-core/pull/16358))**
+
+- **Permission error on event info page for anonymous users
+  ([dev/core#1517](https://lab.civicrm.org/dev/core/issues/1517):
+  [16266](https://github.com/civicrm/civicrm-core/pull/16266))**
+
+### CiviMember
+
+- **Changing the membership type causes multiple copies of related membership
+  text on edit membership page
+  ([dev/core#1537](https://lab.civicrm.org/dev/core/issues/1537):
+  [16326](https://github.com/civicrm/civicrm-core/pull/16326))**
+
+- **search builder: member since field ignored
+  ([dev/core#1602](https://lab.civicrm.org/dev/core/issues/1602):
+  [16578](https://github.com/civicrm/civicrm-core/pull/16578))**
+
+  Ensures that "Search Builder" respects the "Member Since" field.
+
+### Drupal Integration
+
+- **composer.json - Relax psr/log constraint. Improve D8 compatibility.
+  ([16471](https://github.com/civicrm/civicrm-core/pull/16471))**
+
+  Fixes a composer conflict when installing CiviCRM on Drupal 8.7.
+
+- **Drupal8: Enabling language breaks a fresh CiviCRM install
+  ([dev/drupal#85](https://lab.civicrm.org/dev/drupal/issues/85):
+  [15912](https://github.com/civicrm/civicrm-core/pull/15912))**
+
+- **Drupal8 - Contact Report does not load any values in the ACL Group/Role
+  field ([dev/drupal#89](https://lab.civicrm.org/dev/drupal/issues/89):
+  [16273](https://github.com/civicrm/civicrm-core/pull/16273) and
+  [15318](https://github.com/civicrm/civicrm-core/pull/15318))**
+
+- **CiviCRM session instance not working when Masquerading in Drupal 7
+  ([dev/drupal#98](https://lab.civicrm.org/dev/drupal/issues/98):
+  [16177](https://github.com/civicrm/civicrm-core/pull/16177))**
+
+- **Wiki link in OG Sync module description gives a 404
+  ([dev/drupal#102](https://lab.civicrm.org/dev/drupal/issues/102):
+  [595](https://github.com/civicrm/civicrm-drupal/pull/595))**
+
+## <a name="misc"></a>Miscellany
+
+- **Duplicate code (for real)
+  ([16363](https://github.com/civicrm/civicrm-core/pull/16363) and
+  [16567](https://github.com/civicrm/civicrm-core/pull/16567))**
+
+- **Mailing Subscribe Form: remove nbsp from descriptions
+  ([16186](https://github.com/civicrm/civicrm-core/pull/16186))**
+
+- **Remove SymfonyComponents/YAML package
+  ([285](https://github.com/civicrm/civicrm-packages/pull/285))**
+
+- **Update DB_Object
+  ([280](https://github.com/civicrm/civicrm-packages/pull/280))**
+
+- **Update gettext to latest tagged release
+  ([227](https://github.com/civicrm/civicrm-packages/pull/227))**
+
+- **Upgrade DB package to be version 1.9.3
+  ([276](https://github.com/civicrm/civicrm-packages/pull/276))**
+
+- **Update copyright headers following merge of #14662
+  ([16199](https://github.com/civicrm/civicrm-core/pull/16199))**
+
+- **Add tax rates to metadata
+  ([16253](https://github.com/civicrm/civicrm-core/pull/16253))**
+
+- **Add helper for getting participantValues
+  ([16355](https://github.com/civicrm/civicrm-core/pull/16355))**
+
+- **Update docs link for edit scheduled job parameters
+  ([16299](https://github.com/civicrm/civicrm-core/pull/16299))**
+
+- **Start to use function rather than multiple queries for event details add
+  test ([16329](https://github.com/civicrm/civicrm-core/pull/16329))**
+
+- **Simplify event title retrieval, use cache, add test
+  ([16345](https://github.com/civicrm/civicrm-core/pull/16345))**
+
+- **Change function buildEventFeeForm to non-static
+  ([16337](https://github.com/civicrm/civicrm-core/pull/16337))**
+
+- **Finish removal of deferred_revenue_enabled from non-standard setting
+  ([16395](https://github.com/civicrm/civicrm-core/pull/16395))**
+
+- **Api4 - Improve Entity::get
+  ([16346](https://github.com/civicrm/civicrm-core/pull/16346))**
+
+- **Api4 - Make abstract function abstract
+  ([16343](https://github.com/civicrm/civicrm-core/pull/16343))**
+
+- **Api4 - Use explicit adder functions rather than magicMethod
+  ([16372](https://github.com/civicrm/civicrm-core/pull/16372))**
+
+- **Update contributor-key.yml
+  ([16268](https://github.com/civicrm/civicrm-core/pull/16268))**
+
+- **Update my contributor details
+  ([16184](https://github.com/civicrm/civicrm-core/pull/16184))**
+
+- **APIv4 documentation & code cleanup
+  ([16457](https://github.com/civicrm/civicrm-core/pull/16457))**
+
+- **Fix minor typo in help text.
+  ([16303](https://github.com/civicrm/civicrm-core/pull/16303))**
+
+- **Extract code for isPaymentOnExistingContribution.
+  ([16327](https://github.com/civicrm/civicrm-core/pull/16327))**
+
+- **Remove function that exactly matches parent class.
+  ([16316](https://github.com/civicrm/civicrm-core/pull/16316))**
+
+- **Remove unsupported and unused package DB_Table
+  ([277](https://github.com/civicrm/civicrm-packages/pull/277))**
+
+- **Remove  $ids as parameter for Membership::add
+  ([16192](https://github.com/civicrm/civicrm-core/pull/16192))**
+
+- **Remove unused code in Case/Form/Activity postProcess
+  ([16304](https://github.com/civicrm/civicrm-core/pull/16304))**
+
+- **Remove never passed-in parameter from addPayments
+  ([16262](https://github.com/civicrm/civicrm-core/pull/16262))**
+
+- **Remove duplicate line of code
+  ([16317](https://github.com/civicrm/civicrm-core/pull/16317))**
+
+- **Remove unreachable code lines.
+  ([16349](https://github.com/civicrm/civicrm-core/pull/16349))**
+
+- **Remove unused code
+  ([16371](https://github.com/civicrm/civicrm-core/pull/16371))**
+
+- **Remove irrelevant code.
+  ([16348](https://github.com/civicrm/civicrm-core/pull/16348))**
+
+- **Remove unindexed join from getACLRoles query
+  ([16183](https://github.com/civicrm/civicrm-core/pull/16183))**
+
+- **Remove unmaintained unsupported System_Command package
+  ([283](https://github.com/civicrm/civicrm-packages/pull/283))**
+
+- **fix typo's in the text
+  ([16361](https://github.com/civicrm/civicrm-core/pull/16361))**
+
+- **fix more typo's in the text
+  ([16368](https://github.com/civicrm/civicrm-core/pull/16368))**
+
+- **Fix unit tests after gettext merge
+  ([282](https://github.com/civicrm/civicrm-packages/pull/282))**
+
+- **Update recently-added PathUrlTest to be more representative
+  ([16607](https://github.com/civicrm/civicrm-core/pull/16607))**
+
+- **Fix tests to use buildFeeFn
+  ([16389](https://github.com/civicrm/civicrm-core/pull/16389))**
+
+- **Add unit test to back office form when a payment is made against a partially
+  paid contribution
+  ([16437](https://github.com/civicrm/civicrm-core/pull/16437))**
+
+- **Revised version of test from #15725
+  ([15948](https://github.com/civicrm/civicrm-core/pull/15948))**
+
+- **Update failing test to match intervening changes elsewhere
+  ([16270](https://github.com/civicrm/civicrm-core/pull/16270))**
+
+- **Fix unit test so price set params are valid
+  ([16344](https://github.com/civicrm/civicrm-core/pull/16344))**
+
+- **Update Export unit test to pass on MySQL 8
+  ([16375](https://github.com/civicrm/civicrm-core/pull/16375))**
+
+- **Basic extraction of paid event processing
+  ([16281](https://github.com/civicrm/civicrm-core/pull/16281))**
+
+- **Refactor CRM_Contact_BAO_Contact::importableFields() to use metadata
+  ([16222](https://github.com/civicrm/civicrm-core/pull/16222))**
+
+- **[REF] Remove setting of unused function.
+  ([16315](https://github.com/civicrm/civicrm-core/pull/16315))**
+
+- **[REF] Remove apparent copy & paste code.
+  ([16308](https://github.com/civicrm/civicrm-core/pull/16308))**
+
+- **[REF] Move the bounce to the start of the form submit
+  ([16333](https://github.com/civicrm/civicrm-core/pull/16333))**
+
+- **[REF] Eliminate silly parameter from function signature.
+  ([16330](https://github.com/civicrm/civicrm-core/pull/16330))**
+
+- **[REF] Extract code that assigns event variables to the tpl
+  ([16325](https://github.com/civicrm/civicrm-core/pull/16325))**
+
+- **[REF] Fix return value on deleting financial type
+  ([16280](https://github.com/civicrm/civicrm-core/pull/16280))**
+
+- **[REF] Move handling of default payment instrument for a payment proc…
+  ([16279](https://github.com/civicrm/civicrm-core/pull/16279))**
+
+- **[REF] Move use of priceSetID & amount_override to where they are used
+  ([16252](https://github.com/civicrm/civicrm-core/pull/16252))**
+
+- **[REF] Cleanup CRM_Member_BAO_Membership::buildMembershipTypeValues
+  ([16059](https://github.com/civicrm/civicrm-core/pull/16059))**
+
+- **[REF] Remove enclosed & escaped variables
+  ([16249](https://github.com/civicrm/civicrm-core/pull/16249))**
+
+- **[REF] Minor code simplification in dedupe.
+  ([16245](https://github.com/civicrm/civicrm-core/pull/16245))**
+
+- **[REF] move sessionStart functionality to System subclass
+  ([16241](https://github.com/civicrm/civicrm-core/pull/16241))**
+
+- **[REF] Update fetchAll function signature to match parent function
+  ([16198](https://github.com/civicrm/civicrm-core/pull/16198))**
+
+- **REF Simplify if statement on case activity form
+  ([16210](https://github.com/civicrm/civicrm-core/pull/16210))**
+
+- **[REF] Eliminate ['userID'] as an input for BAO_Membership::create
+  ([16196](https://github.com/civicrm/civicrm-core/pull/16196))**
+
+- **[REF] Move the storing of custom data into the add function rather th…
+  ([16191](https://github.com/civicrm/civicrm-core/pull/16191))**
+
+- **[REF] Remove never-passed param from getLineItems
+  ([16251](https://github.com/civicrm/civicrm-core/pull/16251))**
+
+- **[REF] Extract location wrangling code.
+  ([16247](https://github.com/civicrm/civicrm-core/pull/16247))**
+
+- **[REF] rename lineItem & lineItems variable
+  ([16254](https://github.com/civicrm/civicrm-core/pull/16254))**
+
+- **[REF] Activate fetchAll function in DataObject file
+  ([281](https://github.com/civicrm/civicrm-packages/pull/281))**
+
+- **[REF] Reduce places where we pass ids into Mailing::create
+  ([16263](https://github.com/civicrm/civicrm-core/pull/16263))**
+
+- **[REF] Remove ids and fully deprecate passing it to Contribution::create
+  ([16256](https://github.com/civicrm/civicrm-core/pull/16256))**
+
+- **[REF] Pass params into function rather than this weird check for whether
+  params exists. ([16438](https://github.com/civicrm/civicrm-core/pull/16438))**
+
+- **[REF] Move assignment of BalanceAmount
+  ([16334](https://github.com/civicrm/civicrm-core/pull/16334))**
+
+- **[REF] Fix CRM_Core_BAO_UFGroup::createUFJoin to not receive by reference.
+  ([16260](https://github.com/civicrm/civicrm-core/pull/16260))**
+
+- **[REF] Interim code cleanup - make the usage of addPayments clearer
+  ([16441](https://github.com/civicrm/civicrm-core/pull/16441))**
+
+- **[REF] Remove unused variable
+  ([16434](https://github.com/civicrm/civicrm-core/pull/16434))**
+
+- **[REF] Add test for line item, extract fn
+  ([16402](https://github.com/civicrm/civicrm-core/pull/16402))**
+
+- **[REF] Ensure that the from is correctly modified in both the main que…
+  ([16422](https://github.com/civicrm/civicrm-core/pull/16422))**
+
+- **[REF] Remove some unused variables
+  ([16414](https://github.com/civicrm/civicrm-core/pull/16414))**
+
+- **REF Extract code to build pcp_supporter_text and enable translation
+  ([16271](https://github.com/civicrm/civicrm-core/pull/16271))**
+
+- **[REF] Remove unused variables
+  ([16396](https://github.com/civicrm/civicrm-core/pull/16396))**
+
+- **[REF] Extract function to export header row
+  ([16364](https://github.com/civicrm/civicrm-core/pull/16364))**
+
+- **[REF] Extract & share code to determine revenue recognition date.
+  ([16388](https://github.com/civicrm/civicrm-core/pull/16388))**
+
+- **[NFC] code cleanup
+  ([16310](https://github.com/civicrm/civicrm-core/pull/16310))**
+
+- **[NFC] Code cleanup
+  ([16309](https://github.com/civicrm/civicrm-core/pull/16309))**
+
+- **[NFC] code cleanup
+  ([16301](https://github.com/civicrm/civicrm-core/pull/16301))**
+
+- **[NFC] Minor code cleanup
+  ([16290](https://github.com/civicrm/civicrm-core/pull/16290))**
+
+- **[NFC] Extend unit test to cover for recent refactor by eileen to ensure sup…
+  ([16332](https://github.com/civicrm/civicrm-core/pull/16332))**
+
+- **[NFC] Code formatting
+  ([16331](https://github.com/civicrm/civicrm-core/pull/16331))**
+
+- **[NFC] Code cleanup
+  ([16314](https://github.com/civicrm/civicrm-core/pull/16314))**
+
+- **NFC Convert Manage PCP page to short array syntax
+  ([16320](https://github.com/civicrm/civicrm-core/pull/16320))**
+
+- **[NFC] Add in more assertions around the content of line items and tot…
+  ([16218](https://github.com/civicrm/civicrm-core/pull/16218))**
+
+- **[NFC] Doc Block fix should be bool no boolean as per coding standards
+  ([596](https://github.com/civicrm/civicrm-drupal/pull/596))**
+
+- **[NFC] Code comments
+  ([16248](https://github.com/civicrm/civicrm-core/pull/16248))**
+
+- **[NFC] Minor cleanup in test class
+  ([16250](https://github.com/civicrm/civicrm-core/pull/16250))**
+
+- **[NFC] Skip utf8mb4 test on MySQL versions lower than 5.7
+  ([16483](https://github.com/civicrm/civicrm-core/pull/16483))**
+
+- **[NFC] Test update following PR #16150, assertEquals first param is th…
+  ([16219](https://github.com/civicrm/civicrm-core/pull/16219))**
+
+- **[NFC] Explicitly specify that it is the Payment processor Type Name n…
+  ([16275](https://github.com/civicrm/civicrm-core/pull/16275))**
+
+- **NFC Fix TokenRow docblock
+  ([16452](https://github.com/civicrm/civicrm-core/pull/16452))**
+
+- **[NFC] Minor test cleanup.
+  ([16450](https://github.com/civicrm/civicrm-core/pull/16450))**
+
+- **[NFC] Remove unused local variables from
+  CRM_Contribute_Form_AdditionalPayment::processCreditCard
+  ([16342](https://github.com/civicrm/civicrm-core/pull/16342))**
+
+- **[NFC] throw exceptions, single quotes, declare exceptions, remove unused
+  param ([16415](https://github.com/civicrm/civicrm-core/pull/16415))**
+
+- **(NFC) Update Var declaration to be standard in CRM folder
+  ([16382](https://github.com/civicrm/civicrm-core/pull/16382))**
+
+- **(NFC) Civi/*.php - Update for
+  Drupal.Commenting.VariableComment.IncorrectVarType
+  ([16379](https://github.com/civicrm/civicrm-core/pull/16379))**
+
+- **NFC Add parameter definition to membershipstatus.calc
+  ([16370](https://github.com/civicrm/civicrm-core/pull/16370))**
+
+- **[NFC] Ensure that annon permissions are correctly assigned when enabling
+  civicrm webtest module in backdrop
+  ([16547](https://github.com/civicrm/civicrm-core/pull/16547))**
+
+- **[NFC] Fix style error
+  ([16549](https://github.com/civicrm/civicrm-core/pull/16549))**
+
+## <a name="credits"></a>Credits
+
+This release was developed by the following code authors:
+
+a-n The Artists Information Company - William Mortada; AGH Strategies - Andrew
+Hunt; Agileware - Pengyi Zhang; Andrei Mondoc; British Humanist Association -
+Andrew West; Caltha - Tomasz Pietrzkowski; Chris Burgess; Circle Interactive -
+Pradeep Nayak; CiviCoop - Jaap Jansma; CiviCRM - Coleman Watts, Tim Otten;
+CiviDesk - Yashodha Chaku; CompuCorp - Vinu Varshith Sekar; Coop SymbioTIC -
+Mathieu Lutfy, Samuel Vanhove; Dave D; Electronic Frontier Foundation - Mark
+Burdett; Fuzion - Jitendra Purohit; GMCVO Databases - Jade Gaunt; JMA Consulting - 
+Seamus Lee; John Kingsnorth; Joinery - Allen Shaw; Joris Vercammen; Megaphone
+Technology Consulting - Jon Goldberg; MJCO - Mikey O'Toole; MJW Consulting -
+Matthew Wire; myDropWizard - David Snopek; Progressive Technology Project -
+Jamie McClelland; Squiffle Consulting - Aidan Saunders; Tadpole Collective -
+Kevin Cristiano; Third Sector Design - Michael McAndrew; Timbsoft Technologies -
+Tunbola Ogunwande; Web Access - Kurund Jalmi; Wikimedia Foundation - Eileen
+McNaughton, Elliott Eggleston
+
+Most authors also reviewed code for this release; in addition, the following
+reviewers contributed their comments:
+
+AGH Strategies - Alice Frumin; Agileware - Justin Freeman; Andrew
+Cormick-Dockery; Artful Robot - Rich Lott; Christian Wach; CiviDesk - Nicolas
+Ganivet; CompuCorp - Shitij Gugnani; Francesc Bassas i Bullich; Fuzion - Luke
+Stewart, Peter Davis; Greenpeace Central and Eastern Europe - Patrick Figel; JMA
+Consulting - Joe Murray, Monish Deb; Korlon - Stuart Gaston; Lighthouse Design
+and Consulting - Brian Shaughnessy; mikantchap; Richard van Oosterhout; SYSTOPIA
+Organisationsberatung - Björn Endres; tapashdatta;
+
+## <a name="feedback"></a>Feedback
+
+These release notes are edited by Alice Frumin and Andrew Hunt.  If you'd like
+to provide feedback on them, please log in to https://chat.civicrm.org/civicrm
+and contact `@agh1`.
diff --git a/civicrm/settings/Address.setting.php b/civicrm/settings/Address.setting.php
index 71fc5dca4b..36264f540a 100644
--- a/civicrm/settings/Address.setting.php
+++ b/civicrm/settings/Address.setting.php
@@ -31,7 +31,6 @@ return [
     'pseudoconstant' => ['callback' => 'CRM_Core_SelectValues::addressProvider'],
     'is_domain' => 1,
     'is_contact' => 0,
-    'description' => NULL,
     'help_text' => 'CiviCRM includes an optional plugin for interfacing with the United States Postal Services (USPS) Address Standardization web service. You must register to use the USPS service at https://www.usps.com/business/web-tools-apis/address-information.htm. If you are approved, they will provide you with a User ID and the URL for the service. Plugins for other address standardization services may be available from 3rd party developers. If installed, they will be included in the drop-down below. ',
   ],
   'address_standardization_userid' => [
@@ -45,7 +44,6 @@ return [
     'title' => ts('Provider service user ID'),
     'is_domain' => 1,
     'is_contact' => 0,
-    'description' => NULL,
     'help_text' => NULL,
   ],
   'address_standardization_url' => [
@@ -59,7 +57,6 @@ return [
     'title' => ts('Provider Service URL'),
     'is_domain' => 1,
     'is_contact' => 0,
-    'description' => NULL,
     'help_text' => 'Web Service URL',
     'validate_callback' => 'CRM_Utils_Rule::url',
   ],
@@ -74,7 +71,7 @@ return [
     'title' => ts('Hide Country in Mailing Labels when same as domain country'),
     'is_domain' => 1,
     'is_contact' => 0,
-    'description' => 'Do not display the country field in mailing labels when the country is the same as that of the domain',
+    'description' => ts('Do not display the country field in mailing labels when the country is the same as that of the domain'),
     'help_text' => NULL,
   ],
 ];
diff --git a/civicrm/settings/Case.setting.php b/civicrm/settings/Case.setting.php
index 83ab7ae13c..23c793bdd3 100644
--- a/civicrm/settings/Case.setting.php
+++ b/civicrm/settings/Case.setting.php
@@ -33,13 +33,13 @@ return [
     ],
     'default' => 'default',
     'add' => '4.7',
-    'title' => 'Redact Activity Email',
+    'title' => ts('Redact Activity Email'),
     'is_domain' => 1,
     'is_contact' => 0,
     'pseudoconstant' => [
       'callback' => 'CRM_Case_Info::getRedactOptions',
     ],
-    'description' => 'Should activity emails be redacted? (Set "Default" to load setting from the legacy "Settings.xml" file.)',
+    'description' => ts('Should activity emails be redacted? (Set "Default" to load setting from the legacy "Settings.xml" file.)'),
     'help_text' => '',
   ],
   'civicaseAllowMultipleClients' => [
@@ -54,13 +54,13 @@ return [
     ],
     'default' => 'default',
     'add' => '4.7',
-    'title' => 'Allow Multiple Case Clients',
+    'title' => ts('Allow Multiple Case Clients'),
     'is_domain' => 1,
     'is_contact' => 0,
     'pseudoconstant' => [
       'callback' => 'CRM_Case_Info::getMultiClientOptions',
     ],
-    'description' => 'How many clients may be associated with a given case? (Set "Default" to load setting from the legacy "Settings.xml" file.)',
+    'description' => ts('How many clients may be associated with a given case? (Set "Default" to load setting from the legacy "Settings.xml" file.)'),
     'help_text' => '',
   ],
   'civicaseNaturalActivityTypeSort' => [
@@ -75,13 +75,13 @@ return [
     ],
     'default' => 'default',
     'add' => '4.7',
-    'title' => 'Activity Type Sorting',
+    'title' => ts('Activity Type Sorting'),
     'is_domain' => 1,
     'is_contact' => 0,
     'pseudoconstant' => [
       'callback' => 'CRM_Case_Info::getSortOptions',
     ],
-    'description' => 'How to sort activity-types on the "Manage Case" screen? (Set "Default" to load setting from the legacy "Settings.xml" file.)',
+    'description' => ts('How to sort activity-types on the "Manage Case" screen? (Set "Default" to load setting from the legacy "Settings.xml" file.)'),
     'help_text' => '',
   ],
   'civicaseActivityRevisions' => [
@@ -93,10 +93,10 @@ return [
     'default' => FALSE,
     'html_type' => 'radio',
     'add' => '4.7',
-    'title' => 'Enable Embedded Activity Revisions',
+    'title' => ts('Enable Embedded Activity Revisions'),
     'is_domain' => 1,
     'is_contact' => 0,
-    'description' => 'Enable tracking of activity revisions embedded within the "civicrm_activity" table. Alternatively, see "Administer => System Settings => Misc => Logging".',
+    'description' => ts('Enable tracking of activity revisions embedded within the "civicrm_activity" table. Alternatively, see "Administer => System Settings => Misc => Logging".'),
     'help_text' => '',
   ],
 ];
diff --git a/civicrm/settings/Contribute.setting.php b/civicrm/settings/Contribute.setting.php
index a44f05758e..fb2170cc6f 100644
--- a/civicrm/settings/Contribute.setting.php
+++ b/civicrm/settings/Contribute.setting.php
@@ -27,10 +27,10 @@ return [
     'quick_form_type' => 'YesNo',
     'default' => '1',
     'add' => '4.1',
-    'title' => 'CVV required for backoffice?',
+    'title' => ts('CVV required for backoffice?'),
     'is_domain' => 1,
     'is_contact' => 0,
-    'description' => 'Is the CVV code required for back office credit card transactions',
+    'description' => ts('Is the CVV code required for back office credit card transactions'),
     'help_text' => 'If set it back-office credit card transactions will required a cvv code. Leave as required unless you have a very strong reason to change',
   ],
   'contribution_invoice_settings' => [
@@ -50,10 +50,9 @@ return [
       'tax_display_settings' => 'Inclusive',
     ],
     'add' => '4.7',
-    'title' => 'Contribution Invoice Settings',
+    'title' => ts('Deprecated setting'),
     'is_domain' => 1,
     'is_contact' => 0,
-    'description' => NULL,
     'help_text' => NULL,
   ],
   'invoicing' => [
@@ -65,13 +64,104 @@ return [
     'quick_form_type' => 'Element',
     'default' => 0,
     'add' => '4.7',
-    'title' => 'Enable Tax and Invoicing',
+    'title' => ts('Enable Tax and Invoicing'),
     'is_domain' => 1,
     'is_contact' => 0,
     'on_change' => [
       'CRM_Invoicing_Utils::onToggle',
     ],
   ],
+  'credit_notes_prefix' => [
+    'group_name' => 'Contribute Preferences',
+    'group' => 'contribute',
+    'name' => 'credit_notes_prefix',
+    'html_type' => 'text',
+    'quick_form_type' => 'Element',
+    'add' => '5.23',
+    'type' => CRM_Utils_Type::T_STRING,
+    'title' => ts('Credit Notes Prefix'),
+    'is_domain' => 1,
+    'is_contact' => 0,
+    'description' => ts('Prefix to be prepended to credit note ids'),
+    'default' => 'CN_',
+    'help_text' => ts('The credit note ID is generated when a contribution is set to Refunded, Cancelled or Chargeback. It is visible on invoices, if invoices are enabled'),
+  ],
+  'invoice_prefix' => [
+    'html_type' => 'text',
+    'name' => 'invoice_prefix',
+    'add' => '5.23',
+    'type' => CRM_Utils_Type::T_STRING,
+    'title' => ts('Invoice Prefix'),
+    'description' => ts('Enter prefix to be be preprended when creating an invoice number'),
+    'is_domain' => 1,
+    'is_contact' => 0,
+  ],
+  'invoice_due_date' => [
+    'name' => 'invoice_due_date',
+    'html_type' => 'text',
+    'title' => ts('Due Date'),
+    'add' => '5.23',
+    'type' => CRM_Utils_Type::T_INT,
+    'is_domain' => 1,
+    'is_contact' => 0,
+  ],
+  'invoice_due_date_period' => [
+    'html_type' => 'select',
+    'name' => 'invoice_due_date_period',
+    'title' => ts('For transmission'),
+    'weight' => 4,
+    'add' => '5.23',
+    'type' => CRM_Utils_Type::T_STRING,
+    'is_domain' => 1,
+    'is_contact' => 0,
+    'description' => ts('Select the interval for due date.'),
+    'options' => [
+      'select' => ts('- select -'),
+      'days' => ts('Days'),
+      'months' => ts('Months'),
+      'years' => ts('Years'),
+    ],
+  ],
+  'invoice_notes' => [
+    'name' => 'invoice_notes',
+    'html_type' => 'wysiwyg',
+    'title' => ts('Notes or Standard Terms'),
+    'type' => CRM_Utils_Type::T_STRING,
+    'add' => '5.23',
+    'is_domain' => 1,
+    'is_contact' => 0,
+    'description' => ts('Enter note or message to be displayed on PDF invoice or credit notes '),
+    'attributes' => ['rows' => 2, 'cols' => 40],
+  ],
+  'invoice_is_email_pdf' => [
+    'name' => 'invoice_is_email_pdf',
+    'html_type' => 'checkbox',
+    'add' => '5.23',
+    'type' => CRM_Utils_Type::T_BOOLEAN,
+    'is_domain' => 1,
+    'is_contact' => 0,
+    'title' => ts('Automatically email invoice when user purchases online'),
+    'description' => ts('Should a pdf invoice be emailed automatically?'),
+  ],
+  'tax_term' => [
+    'name' => 'tax_term',
+    'html_type' => 'text',
+    'add' => '5.23',
+    'title' => ts('Tax Term'),
+    'type' => CRM_Utils_Type::T_STRING,
+    'is_domain' => 1,
+    'is_contact' => 0,
+  ],
+  'tax_display_settings' => [
+    'html_type' => 'select',
+    'name' => 'tax_display_settings',
+    'type' => CRM_Utils_Type::T_STRING,
+    'add' => '5.23',
+    'title' => ts('Tax Display Settings'),
+    'is_domain' => 1,
+    'is_contact' => 0,
+    'pseudoconstant' => ['callback' => 'CRM_Core_SelectValues::taxDisplayOptions'],
+  ],
   'acl_financial_type' => [
     'group_name' => 'Contribute Preferences',
     'group' => 'contribute',
@@ -81,10 +171,9 @@ return [
     'quick_form_type' => 'Element',
     'default' => 0,
     'add' => '4.7',
-    'title' => 'Enable Access Control by Financial Type',
+    'title' => ts('Enable Access Control by Financial Type'),
     'is_domain' => 1,
     'is_contact' => 0,
-    'description' => NULL,
     'help_text' => NULL,
     'help' => ['id' => 'acl_financial_type'],
   ],
@@ -97,10 +186,9 @@ return [
     'quick_form_type' => 'Element',
     'default' => 0,
     'add' => '4.7',
-    'title' => 'Enable Deferred Revenue',
+    'title' => ts('Enable Deferred Revenue'),
     'is_domain' => 1,
     'is_contact' => 0,
-    'description' => NULL,
     'help_text' => NULL,
   ],
   'default_invoice_page' => [
@@ -116,10 +204,9 @@ return [
     ],
     'html_type' => 'select',
     'add' => '4.7',
-    'title' => 'Default invoice payment page',
+    'title' => ts('Default invoice payment page'),
     'is_domain' => 1,
     'is_contact' => 0,
-    'description' => NULL,
     'help_text' => NULL,
   ],
   'always_post_to_accounts_receivable' => [
@@ -131,10 +218,9 @@ return [
     'quick_form_type' => 'Element',
     'default' => 0,
     'add' => '4.7',
-    'title' => 'Always post to Accounts Receivable?',
+    'title' => ts('Always post to Accounts Receivable?'),
     'is_domain' => 1,
     'is_contact' => 0,
-    'description' => NULL,
     'help_text' => NULL,
   ],
   'update_contribution_on_membership_type_change' => [
@@ -146,10 +232,10 @@ return [
     'quick_form_type' => 'Element',
     'default' => 0,
     'add' => '4.7',
-    'title' => 'Automatically update related contributions when Membership Type is changed',
+    'title' => ts('Automatically update related contributions when Membership Type is changed'),
     'is_domain' => 1,
     'is_contact' => 0,
-    'description' => 'Enabling this setting will update related contribution of membership(s) except if the membership is paid for with a recurring contribution.',
+    'description' => ts('Enabling this setting will update related contribution of membership(s) except if the membership is paid for with a recurring contribution.'),
     'help_text' => NULL,
   ],
 ];
diff --git a/civicrm/settings/Core.setting.php b/civicrm/settings/Core.setting.php
index 2b44ca6aae..fea724abd9 100644
--- a/civicrm/settings/Core.setting.php
+++ b/civicrm/settings/Core.setting.php
@@ -171,7 +171,7 @@ return [
     'default' => FALSE,
     'html_type' => 'radio',
     'add' => '4.7',
-    'title' => 'Accept profile submissions from external sites',
+    'title' => ts('Accept profile submissions from external sites'),
     'is_domain' => 1,
     'is_contact' => 0,
     'description' => ts('If enabled, CiviCRM will permit submissions from external sites to profiles. This is disabled by default to limit abuse.'),
@@ -186,7 +186,7 @@ return [
     'default' => TRUE,
     'html_type' => 'radio',
     'add' => '4.7',
-    'title' => 'Allow alerts to auto-dismiss?',
+    'title' => ts('Allow alerts to auto-dismiss?'),
     'is_domain' => 1,
     'is_contact' => 0,
     'description' => ts('If disabled, CiviCRM will not automatically dismiss any alerts after 10 seconds.'),
diff --git a/civicrm/settings/Developer.setting.php b/civicrm/settings/Developer.setting.php
index 55e8573ad0..6c18173403 100644
--- a/civicrm/settings/Developer.setting.php
+++ b/civicrm/settings/Developer.setting.php
@@ -33,10 +33,10 @@ return [
     ],
     'default' => 'auto',
     'add' => '4.7',
-    'title' => 'Asset Caching',
+    'title' => ts('Asset Caching'),
     'is_domain' => 1,
     'is_contact' => 0,
-    'description' => 'Store computed JS/CSS content in cache files? (Note: In "Auto" mode, the "Debug" setting will determine whether to activate the cache.)',
+    'description' => ts('Store computed JS/CSS content in cache files? (Note: In "Auto" mode, the "Debug" setting will determine whether to activate the cache.)'),
     'help_text' => NULL,
     'pseudoconstant' => [
       'callback' => '\Civi\Core\AssetBuilder::getCacheModes',
@@ -50,10 +50,10 @@ return [
     'quick_form_type' => 'YesNo',
     'default' => '0',
     'add' => '4.3',
-    'title' => 'Enable Drupal Watchdog Logging',
+    'title' => ts('Enable Drupal Watchdog Logging'),
     'is_domain' => 1,
     'is_contact' => 0,
-    'description' => "Set this value to Yes if you want CiviCRM error/debugging messages to appear in the Drupal error logs",
+    'description' => ts('Set this value to Yes if you want CiviCRM error/debugging messages to appear in the Drupal error logs.'),
     'help_text' => "Set this value to Yes if you want CiviCRM error/debugging messages the appear in your CMS' error log. In the case of Drupal, this will cause all CiviCRM error messages to appear in the watchdog (assuming you have Drupal's watchdog enabled)",
   ],
   'debug_enabled' => [
@@ -66,10 +66,10 @@ return [
     'quick_form_type' => 'YesNo',
     'default' => '0',
     'add' => '4.3',
-    'title' => 'Enable Debugging',
+    'title' => ts('Enable Debugging'),
     'is_domain' => 1,
     'is_contact' => 0,
-    'description' => "Set this value to Yes if you want to use one of CiviCRM's debugging tools. This feature should NOT be enabled for production sites",
+    'description' => ts("Set this value to Yes if you want to use one of CiviCRM's debugging tools. This feature should NOT be enabled for production sites."),
     'help_text' => 'Do not turn this on on production sites',
   ],
   'backtrace' => [
@@ -80,10 +80,10 @@ return [
     'quick_form_type' => 'YesNo',
     'default' => '0',
     'add' => '4.3',
-    'title' => 'Display Backtrace',
+    'title' => ts('Display Backtrace'),
     'is_domain' => 1,
     'is_contact' => 0,
-    'description' => "Set this value to Yes if you want to display a backtrace listing when a fatal error is encountered. This feature should NOT be enabled for production sites",
+    'description' => ts('Set this value to Yes if you want to display a backtrace listing when a fatal error is encountered. This feature should NOT be enabled for production sites.'),
   ],
   'environment' => [
     'group_name' => 'Developer Preferences',
@@ -97,10 +97,10 @@ return [
       'optionGroupName' => 'environment',
     ],
     'add' => '4.7',
-    'title' => 'Environment',
+    'title' => ts('Environment'),
     'is_domain' => 1,
     'is_contact' => 0,
-    'description' => "Setting to define the environment in which this CiviCRM instance is running.",
+    'description' => ts('Setting to define the environment in which this CiviCRM instance is running.'),
     'on_change' => [
       'CRM_Core_BAO_Setting::onChangeEnvironmentSetting',
     ],
@@ -114,9 +114,9 @@ return [
     'html_type' => 'text',
     'default' => NULL,
     'add' => '4.3',
-    'title' => 'Fatal Error Handler',
+    'title' => ts('Fatal Error Handler'),
     'is_domain' => 1,
     'is_contact' => 0,
-    'description' => "Enter the path and class for a custom PHP error-handling function if you want to override built-in CiviCRM error handling for your site.",
+    'description' => ts('Enter the path and class for a custom PHP error-handling function if you want to override built-in CiviCRM error handling for your site.'),
   ],
 ];
diff --git a/civicrm/settings/Directory.setting.php b/civicrm/settings/Directory.setting.php
index ca3dac34fe..0fb6485db9 100644
--- a/civicrm/settings/Directory.setting.php
+++ b/civicrm/settings/Directory.setting.php
@@ -31,10 +31,9 @@ return [
     'quick_form_type' => 'Element',
     'default' => NULL,
     'add' => '4.1',
-    'title' => 'Temporary Files Directory',
+    'title' => ts('Temporary Files Directory'),
     'is_domain' => 1,
     'is_contact' => 0,
-    'description' => NULL,
     'help_text' => 'File system path where temporary CiviCRM files - such as import data files - are uploaded.',
   ],
   'imageUploadDir' => [
@@ -47,10 +46,10 @@ return [
     'quick_form_type' => 'Element',
     'default' => NULL,
     'add' => '4.1',
-    'title' => 'Image Directory',
+    'title' => ts('Image Directory'),
     'is_domain' => 1,
     'is_contact' => 0,
-    'description' => 'File system path where image files are uploaded. Currently, this path is used for images associated with premiums (CiviContribute thank-you gifts).',
+    'description' => ts('File system path where image files are uploaded. Currently, this path is used for images associated with premiums (CiviContribute thank-you gifts).'),
     'help_text' => NULL,
   ],
   'customFileUploadDir' => [
@@ -63,10 +62,10 @@ return [
     'quick_form_type' => 'Element',
     'default' => NULL,
     'add' => '4.1',
-    'title' => 'Custom Files Directory',
+    'title' => ts('Custom Files Directory'),
     'is_domain' => 1,
     'is_contact' => 0,
-    'description' => 'Path where documents and images which are attachments to contact records are stored (e.g. contact photos, resumes, contracts, etc.). These attachments are defined using \'file\' type custom fields.',
+    'description' => ts('Path where documents and images which are attachments to contact records are stored (e.g. contact photos, resumes, contracts, etc.). These attachments are defined using \'file\' type custom fields.'),
     'help_text' => NULL,
   ],
   'customTemplateDir' => [
@@ -79,10 +78,10 @@ return [
     'quick_form_type' => 'Element',
     'default' => NULL,
     'add' => '4.1',
-    'title' => 'Custom Template Directory',
+    'title' => ts('Custom Template Directory'),
     'is_domain' => 1,
     'is_contact' => 0,
-    'description' => 'Path where site specific templates are stored if any. This directory is searched first if set. Custom JavaScript code can be added to templates by creating files named templateFile.extra.tpl. (learn more...)',
+    'description' => ts('Path where site specific templates are stored if any. This directory is searched first if set. Custom JavaScript code can be added to templates by creating files named templateFile.extra.tpl. (learn more...)'),
     'help_text' => NULL,
   ],
   'customPHPPathDir' => [
@@ -95,10 +94,10 @@ return [
     'quick_form_type' => 'Element',
     'default' => NULL,
     'add' => '4.1',
-    'title' => 'Custom PHP Directory',
+    'title' => ts('Custom PHP Directory'),
     'is_domain' => 1,
     'is_contact' => 0,
-    'description' => 'Path where site specific PHP code files are stored if any. This directory is searched first if set.',
+    'description' => ts('Path where site specific PHP code files are stored if any. This directory is searched first if set.'),
     'help_text' => NULL,
   ],
   'extensionsDir' => [
@@ -111,10 +110,10 @@ return [
     'quick_form_type' => 'Element',
     'default' => NULL,
     'add' => '4.1',
-    'title' => 'Extensions Directory',
+    'title' => ts('Extensions Directory'),
     'is_domain' => 1,
     'is_contact' => 0,
-    'description' => 'Path where CiviCRM extensions are stored.',
+    'description' => ts('Path where CiviCRM extensions are stored.'),
     'help_text' => NULL,
   ],
 
diff --git a/civicrm/settings/Extension.setting.php b/civicrm/settings/Extension.setting.php
index 6daed0adab..195de44bd0 100644
--- a/civicrm/settings/Extension.setting.php
+++ b/civicrm/settings/Extension.setting.php
@@ -33,10 +33,9 @@ return [
     'html_type' => 'text',
     'default' => 'https://civicrm.org/extdir/ver={ver}|cms={uf}',
     'add' => '4.3',
-    'title' => 'Extension Repo URL',
+    'title' => ts('Extension Repo URL'),
     'is_domain' => 1,
     'is_contact' => 0,
-    'description' => '',
     'help_text' => '',
   ],
 ];
diff --git a/civicrm/settings/Localization.setting.php b/civicrm/settings/Localization.setting.php
index ed2504173d..d2bb11944a 100644
--- a/civicrm/settings/Localization.setting.php
+++ b/civicrm/settings/Localization.setting.php
@@ -37,8 +37,7 @@ return [
       'maxlength' => '100',
     ],
     'default' => NULL,
-    'title' => 'Custom Translate Function',
-    'description' => '',
+    'title' => ts('Custom Translate Function'),
   ],
   'monetaryThousandSeparator' => [
     'group_name' => 'Localization Preferences',
@@ -52,10 +51,9 @@ return [
     ],
     'default' => ',',
     'add' => '4.3',
-    'title' => 'Thousands Separator',
+    'title' => ts('Thousands Separator'),
     'is_domain' => 1,
     'is_contact' => 0,
-    'description' => NULL,
     'help_text' => NULL,
   ],
   'monetaryDecimalPoint' => [
@@ -70,10 +68,9 @@ return [
     ],
     'default' => '.',
     'add' => '4.3',
-    'title' => 'Decimal Delimiter',
+    'title' => ts('Decimal Delimiter'),
     'is_domain' => 1,
     'is_contact' => 0,
-    'description' => NULL,
     'help_text' => NULL,
   ],
   'moneyformat' => [
@@ -85,10 +82,9 @@ return [
     'html_type' => 'text',
     'default' => '%c %a',
     'add' => '4.3',
-    'title' => 'Monetary Amount Display',
+    'title' => ts('Monetary Amount Display'),
     'is_domain' => 1,
     'is_contact' => 0,
-    'description' => NULL,
     'help_text' => NULL,
   ],
   'moneyvalueformat' => [
@@ -100,10 +96,9 @@ return [
     'html_type' => 'text',
     'default' => '%!i',
     'add' => '4.3',
-    'title' => 'Monetary Value Display',
+    'title' => ts('Monetary Value Display'),
     'is_domain' => 1,
     'is_contact' => 0,
-    'description' => NULL,
     'help_text' => NULL,
   ],
   'defaultCurrency' => [
@@ -118,10 +113,10 @@ return [
     ],
     'default' => 'USD',
     'add' => '4.3',
-    'title' => 'Default Currency',
+    'title' => ts('Default Currency'),
     'is_domain' => 1,
     'is_contact' => 0,
-    'description' => 'Default currency assigned to contributions and other monetary transactions.',
+    'description' => ts('Default currency assigned to contributions and other monetary transactions.'),
     'help_text' => NULL,
     'pseudoconstant' => [
       'callback' => 'CRM_Admin_Form_Setting_Localization::getCurrencySymbols',
@@ -141,11 +136,11 @@ return [
       //'class' => 'crm-select2',
     ],
     'add' => '4.4',
-    'title' => 'Default Country',
+    'title' => ts('Default Country'),
     'is_domain' => 1,
     'is_contact' => 0,
     'is_required' => FALSE,
-    'description' => 'This value is selected by default when adding a new contact address.',
+    'description' => ts('This value is selected by default when adding a new contact address.'),
     'help_text' => NULL,
     'pseudoconstant' => [
       'callback' => 'CRM_Admin_Form_Setting_Localization::getAvailableCountries',
@@ -167,8 +162,8 @@ return [
     //),
     //'html_attributes',
     'default' => NULL,
-    'title' => 'Default State/Province',
-    'description' => 'This value is selected by default when adding a new contact address.',
+    'title' => ts('Default State/Province'),
+    'description' => ts('This value is selected by default when adding a new contact address.'),
   ],
   'countryLimit' => [
     'group_name' => 'Localization Preferences',
@@ -184,10 +179,9 @@ return [
     ],
     'default' => [],
     'add' => '4.3',
-    'title' => 'Available Countries',
+    'title' => ts('Available Countries'),
     'is_domain' => 1,
     'is_contact' => 0,
-    'description' => '',
     'help_text' => NULL,
     'pseudoconstant' => [
       'callback' => 'CRM_Admin_Form_Setting_Localization::getAvailableCountries',
@@ -207,10 +201,9 @@ return [
     ],
     'default' => [],
     'add' => '4.3',
-    'title' => 'Available States and Provinces (by Country)',
+    'title' => ts('Available States and Provinces (by Country)'),
     'is_domain' => 1,
     'is_contact' => 0,
-    'description' => '',
     'help_text' => NULL,
     'pseudoconstant' => [
       'callback' => 'CRM_Admin_Form_Setting_Localization::getAvailableCountries',
@@ -224,10 +217,9 @@ return [
     'quick_form_type' => 'YesNo',
     'default' => '0',
     'add' => '4.3',
-    'title' => 'Inherit CMS Language',
+    'title' => ts('Inherit CMS Language'),
     'is_domain' => 1,
     'is_contact' => 0,
-    'description' => '',
     'help_text' => NULL,
   ],
   'dateformatDatetime' => [
@@ -239,10 +231,9 @@ return [
     'html_type' => 'text',
     'default' => '%B %E%f, %Y %l:%M %P',
     'add' => '4.3',
-    'title' => 'Date Format: Complete Date and Time',
+    'title' => ts('Date Format: Complete Date and Time'),
     'is_domain' => 1,
     'is_contact' => 0,
-    'description' => '',
     'help_text' => NULL,
   ],
   'dateformatFull' => [
@@ -254,10 +245,9 @@ return [
     'html_type' => 'text',
     'default' => '%B %E%f, %Y',
     'add' => '4.3',
-    'title' => 'Date Format: Complete Date',
+    'title' => ts('Date Format: Complete Date'),
     'is_domain' => 1,
     'is_contact' => 0,
-    'description' => '',
     'help_text' => NULL,
   ],
   'dateformatPartial' => [
@@ -269,10 +259,9 @@ return [
     'html_type' => 'text',
     'default' => '%B %Y',
     'add' => '4.3',
-    'title' => 'Date Format: Month and Year',
+    'title' => ts('Date Format: Month and Year'),
     'is_domain' => 1,
     'is_contact' => 0,
-    'description' => '',
     'help_text' => NULL,
   ],
   'dateformatTime' => [
@@ -291,8 +280,7 @@ return [
       'maxlength' => '60',
     ],
     'default' => '%l:%M %P',
-    'title' => 'Date Format: Time Only',
-    'description' => '',
+    'title' => ts('Date Format: Time Only'),
   ],
   'dateformatYear' => [
     'add' => '4.7',
@@ -310,8 +298,7 @@ return [
       'maxlength' => '60',
     ],
     'default' => '%Y',
-    'title' => 'Date Format: Year Only',
-    'description' => '',
+    'title' => ts('Date Format: Year Only'),
   ],
   'dateformatFinancialBatch' => [
     'add' => '4.7',
@@ -329,8 +316,7 @@ return [
       'maxlength' => '60',
     ],
     'default' => '%m/%d/%Y',
-    'title' => 'Date Format: Financial Batch',
-    'description' => '',
+    'title' => ts('Date Format: Financial Batch'),
   ],
   'dateformatshortdate' => [
     'add' => '4.7',
@@ -348,8 +334,7 @@ return [
       'maxlength' => '60',
     ],
     'default' => '%m/%d/%Y',
-    'title' => 'Date Format: Short date Month Day Year',
-    'description' => '',
+    'title' => ts('Date Format: Short date Month Day Year'),
   ],
   'dateInputFormat' => [
     'add' => '4.7',
@@ -366,8 +351,7 @@ return [
       'callback' => 'CRM_Core_SelectValues::getDatePluginInputFormats',
     ],
     'default' => 'mm/dd/yy',
-    'title' => 'Date Input Format',
-    'description' => '',
+    'title' => ts('Date Input Format'),
   ],
   'fieldSeparator' => [
     'add' => '4.7',
@@ -385,8 +369,8 @@ return [
       'maxlength' => '8',
     ],
     'default' => ',',
-    'title' => 'Import / Export Field Separator',
-    'description' => 'Global CSV separator character. Modify this setting to enable import and export of different kinds of CSV files (for example: \',\' \';\' \':\' \'|\' ).',
+    'title' => ts('Import / Export Field Separator'),
+    'description' => ts('Global CSV separator character. Modify this setting to enable import and export of different kinds of CSV files (for example: \',\' \';\' \':\' \'|\' ).'),
   ],
   'fiscalYearStart' => [
     'add' => '4.7',
@@ -400,8 +384,7 @@ return [
     'quick_form_type' => 'MonthDay',
     'html_type' => 'MonthDay',
     'default' => ['M' => 1, 'd' => 1],
-    'title' => 'Fiscal Year Start',
-    'description' => '',
+    'title' => ts('Fiscal Year Start'),
   ],
   'languageLimit' => [
     'group_name' => 'Localization Preferences',
@@ -416,10 +399,9 @@ return [
     ],
     'default' => NULL,
     'add' => '4.3',
-    'title' => 'Available Languages (Multi-lingual)',
+    'title' => ts('Available Languages (Multi-lingual)'),
     'is_domain' => 1,
     'is_contact' => 0,
-    'description' => '',
     'help_text' => NULL,
     'pseudoconstant' => [
       'callback' => 'CRM_Core_I18n::languages',
@@ -438,10 +420,9 @@ return [
     ],
     'default' => NULL,
     'add' => '5.9',
-    'title' => 'Available Languages',
+    'title' => ts('Available Languages'),
     'is_domain' => 1,
     'is_contact' => 0,
-    'description' => '',
     'help_text' => ts('User Interface languages available to users'),
     'pseudoconstant' => [
       'callback' => 'CRM_Core_I18n::languages',
@@ -459,10 +440,9 @@ return [
     ],
     'default' => 'en_US',
     'add' => '4.3',
-    'title' => 'Default Language',
+    'title' => ts('Default Language'),
     'is_domain' => 1,
     'is_contact' => 0,
-    'description' => '',
     'help_text' => NULL,
     'pseudoconstant' => [
       'callback' => 'CRM_Admin_Form_Setting_Localization::getDefaultLocaleOptions',
@@ -487,8 +467,8 @@ return [
       'maxlength' => '30',
     ],
     'default' => 'Windows-1252',
-    'title' => 'Legacy Encoding',
-    'description' => 'If import files are NOT encoded as UTF-8, specify an alternate character encoding for these files. The default of Windows-1252 will work for Excel-created .CSV files on many computers.',
+    'title' => ts('Legacy Encoding'),
+    'description' => ts('If import files are NOT encoded as UTF-8, specify an alternate character encoding for these files. The default of Windows-1252 will work for Excel-created .CSV files on many computers.'),
   ],
   'timeInputFormat' => [
     'add' => '4.7',
@@ -505,8 +485,7 @@ return [
       'callback' => 'CRM_Core_SelectValues::getTimeFormats',
     ],
     'default' => '1',
-    'title' => 'Time Input Format',
-    'description' => '',
+    'title' => ts('Time Input Format'),
     'on_change' => [
       'CRM_Core_BAO_PreferencesDate::onChangeSetting',
     ],
@@ -523,10 +502,9 @@ return [
     ],
     'default' => '0',
     'add' => '4.7',
-    'title' => 'Week begins on',
+    'title' => ts('Week begins on'),
     'is_domain' => 1,
     'is_contact' => 0,
-    'description' => "",
     'help_text' => NULL,
   ],
   'contact_default_language' => [
@@ -544,10 +522,10 @@ return [
     ],
     'default' => '*default*',
     'add' => '4.7',
-    'title' => 'Default Language for contacts',
+    'title' => ts('Default Language for contacts'),
     'is_domain' => 1,
     'is_contact' => 0,
-    'description' => 'Default language (if any) for contact records',
+    'description' => ts('Default language (if any) for contact records'),
     'help_text' => 'If a contact is created with no language this setting will determine the language data (if any) to save.'
     . 'You may or may not wish to make an assumption here about whether it matches the site language',
   ],
diff --git a/civicrm/settings/Mailing.setting.php b/civicrm/settings/Mailing.setting.php
index c055ebca17..a2a5bc06c8 100644
--- a/civicrm/settings/Mailing.setting.php
+++ b/civicrm/settings/Mailing.setting.php
@@ -46,7 +46,7 @@ return [
     'title' => ts('Track replies using VERP in Reply-To header'),
     'is_domain' => 1,
     'is_contact' => 0,
-    'description' => ts('If checked, mailings will default to tracking replies using VERP-ed Reply-To. '),
+    'description' => ts('If checked, mailings will default to tracking replies using VERP-ed Reply-To.'),
     'help_text' => NULL,
     'validate_callback' => 'CRM_Core_BAO_Setting::validateBoolSetting',
   ],
@@ -75,7 +75,6 @@ return [
     'title' => ts('Enable global server wide lock for CiviMail'),
     'is_domain' => 1,
     'is_contact' => 0,
-    'description' => NULL,
     'help_text' => NULL,
   ],
   'replyTo' => [
@@ -86,10 +85,10 @@ return [
     'quick_form_type' => 'YesNo',
     'default' => 0,
     'add' => '4.6',
-    'title' => 'Enable Custom Reply-To',
+    'title' => ts('Enable Custom Reply-To'),
     'is_domain' => 1,
     'is_contact' => 0,
-    'description' => 'Allow CiviMail users to send mailings with a custom Reply-To header',
+    'description' => ts('Allow CiviMail users to send mailings with a custom Reply-To header.'),
     'help_text' => NULL,
   ],
   'mailing_backend' => [
@@ -100,10 +99,9 @@ return [
     'html_type' => 'checkbox',
     'default' => ['outBound_option' => '3'],
     'add' => '4.1',
-    'title' => 'Mailing Backend',
+    'title' => ts('Mailing Backend'),
     'is_domain' => 1,
     'is_contact' => 0,
-    'description' => NULL,
     'help_text' => NULL,
   ],
   'profile_add_to_group_double_optin' => [
@@ -159,7 +157,7 @@ return [
     'title' => ts('Hashed Mailing URL\'s'),
     'is_domain' => 1,
     'is_contact' => 0,
-    'description' => ts('If enabled, a randomized hash key will be used to reference the mailing URL in the mailing.viewUrl token, instead of the mailing ID'),
+    'description' => ts('If enabled, a randomized hash key will be used to reference the mailing URL in the mailing.viewUrl token, instead of the mailing ID.'),
     'help_text' => NULL,
   ],
   'civimail_multiple_bulk_emails' => [
@@ -187,7 +185,6 @@ return [
     'title' => ts('Enable CiviMail to generate Message-ID header'),
     'is_domain' => 1,
     'is_contact' => 0,
-    'description' => '',
     'help_text' => NULL,
   ],
   'mailerBatchLimit' => [
@@ -203,10 +200,10 @@ return [
     ],
     'default' => 0,
     'add' => '4.7',
-    'title' => 'Mailer Batch Limit',
+    'title' => ts('Mailer Batch Limit'),
     'is_domain' => 1,
     'is_contact' => 0,
-    'description' => 'Throttle email delivery by setting the maximum number of emails sent during each CiviMail run (0 = unlimited).',
+    'description' => ts('Throttle email delivery by setting the maximum number of emails sent during each CiviMail run (0 = unlimited).'),
     'help_text' => NULL,
   ],
   'mailerJobSize' => [
@@ -222,10 +219,10 @@ return [
     ],
     'default' => 0,
     'add' => '4.7',
-    'title' => 'Mailer Job Size',
+    'title' => ts('Mailer Job Size'),
     'is_domain' => 1,
     'is_contact' => 0,
-    'description' => 'If you want to utilize multi-threading enter the size you want your sub jobs to be split into. Recommended values are between 1,000 and 10,000. Use a lower value if your server has multiple cron jobs running simultaneously, but do not use values smaller than 1,000. Enter "0" to disable multi-threading and process mail as one single job - batch limits still apply.',
+    'description' => ts('If you want to utilize multi-threading enter the size you want your sub jobs to be split into. Recommended values are between 1,000 and 10,000. Use a lower value if your server has multiple cron jobs running simultaneously, but do not use values smaller than 1,000. Enter "0" to disable multi-threading and process mail as one single job - batch limits still apply.'),
     'help_text' => NULL,
   ],
   'mailerJobsMax' => [
@@ -241,10 +238,10 @@ return [
     ],
     'default' => 0,
     'add' => '4.7',
-    'title' => 'Mailer Cron Job Limit',
+    'title' => ts('Mailer Cron Job Limit'),
     'is_domain' => 1,
     'is_contact' => 0,
-    'description' => 'The maximum number of mailer delivery jobs executing simultaneously (0 = allow as many processes to execute as started by cron)',
+    'description' => ts('The maximum number of mailer delivery jobs executing simultaneously (0 = allow as many processes to execute as started by cron).'),
     'help_text' => NULL,
   ],
   'mailThrottleTime' => [
@@ -260,10 +257,10 @@ return [
     ],
     'default' => 0,
     'add' => '4.7',
-    'title' => 'Mailer Throttle Time',
+    'title' => ts('Mailer Throttle Time'),
     'is_domain' => 1,
     'is_contact' => 0,
-    'description' => 'The time to sleep in between each e-mail in micro seconds. Setting this above 0 allows you to control the rate at which e-mail messages are sent to the mail server, avoiding filling up the mail queue very quickly. Set to 0 to disable.',
+    'description' => ts('The time to sleep in between each e-mail in micro seconds. Setting this above 0 allows you to control the rate at which e-mail messages are sent to the mail server, avoiding filling up the mail queue very quickly. Set to 0 to disable.'),
     'help_text' => NULL,
   ],
   'verpSeparator' => [
@@ -279,10 +276,10 @@ return [
     ],
     'default' => '.',
     'add' => '4.7',
-    'title' => 'VERP Separator',
+    'title' => ts('VERP Separator'),
     'is_domain' => 1,
     'is_contact' => 0,
-    'description' => 'Separator character used when CiviMail generates VERP (variable envelope return path) Mail-From addresses.',
+    'description' => ts('Separator character used when CiviMail generates VERP (variable envelope return path) Mail-From addresses.'),
     'help_text' => NULL,
   ],
   'write_activity_record' => [
@@ -297,7 +294,6 @@ return [
     'title' => ts('Enable CiviMail to create activities on delivery'),
     'is_domain' => 1,
     'is_contact' => 0,
-    'description' => NULL,
     'help_text' => NULL,
   ],
   'simple_mail_limit' => [
@@ -312,10 +308,10 @@ return [
       'maxlength' => 8,
     ],
     'default' => 50,
-    'title' => 'Simple mail limit',
+    'title' => ts('Simple mail limit'),
     'is_domain' => 1,
     'is_contact' => 0,
-    'description' => 'The number of emails sendable via simple mail. Make sure you understand the implications for your spam reputation and legal requirements for bulk emails before editing. As there is some risk both to your spam reputation and the products if this is misused it is a hidden setting',
+    'description' => ts('The number of emails sendable via simple mail. Make sure you understand the implications for your spam reputation and legal requirements for bulk emails before editing. As there is some risk both to your spam reputation and the products if this is misused it is a hidden setting.'),
     'help_text' => 'CiviCRM forces users sending more than this number of mails to use CiviMails. CiviMails have additional precautions: not sending to contacts who do not want bulk mail, adding domain name and opt out links. You should familiarise yourself with the law relevant to you on bulk mailings if changing this setting. For the US https://en.wikipedia.org/wiki/CAN-SPAM_Act_of_2003 is a good place to start.',
   ],
   'auto_recipient_rebuild' => [
@@ -339,10 +335,10 @@ return [
     'type' => 'Boolean',
     'quick_form_type' => 'YesNo',
     'default' => 1,
-    'title' => 'Allow mail from logged in contact',
+    'title' => ts('Allow mail from logged in contact'),
     'is_domain' => 1,
     'is_contact' => 0,
-    'description' => 'Allow sending email from the logged in contact\'s email address',
+    'description' => ts('Allow sending email from the logged in contact\'s email address.'),
     'help_text' => 'CiviCRM allows you to send email from the domain from email addresses and the logged in contact id addresses by default. Disable this if you only want to allow the domain from addresses to be used.',
   ],
 ];
diff --git a/civicrm/settings/Map.setting.php b/civicrm/settings/Map.setting.php
index 6796c19702..dd474c53cd 100644
--- a/civicrm/settings/Map.setting.php
+++ b/civicrm/settings/Map.setting.php
@@ -34,8 +34,8 @@ return [
       'maxlength' => '64',
     ],
     'default' => NULL,
-    'title' => 'Geo Provider Key',
-    'description' => 'Enter the API key or Application ID associated with your geocoding provider.',
+    'title' => ts('Geo Provider Key'),
+    'description' => ts('Enter the API key or Application ID associated with your geocoding provider.'),
   ],
   'geoProvider' => [
     'add' => '4.7',
@@ -55,8 +55,8 @@ return [
       'callback' => 'CRM_Core_SelectValues::geoProvider',
     ],
     'default' => NULL,
-    'title' => 'Geocoding Provider',
-    'description' => 'This can be the same or different from the mapping provider selected.',
+    'title' => ts('Geocoding Provider'),
+    'description' => ts('This can be the same or different from the mapping provider selected.'),
   ],
   'mapAPIKey' => [
     'add' => '4.7',
@@ -74,8 +74,8 @@ return [
       'maxlength' => '64',
     ],
     'default' => NULL,
-    'title' => 'Map Provider Key',
-    'description' => 'Enter your API Key or Application ID. An API Key is required for the Google Maps API. Refer to developers.google.com for the latest information.',
+    'title' => ts('Map Provider Key'),
+    'description' => ts('Enter your API Key or Application ID. An API Key is required for the Google Maps API. Refer to developers.google.com for the latest information.'),
   ],
   'mapProvider' => [
     'add' => '4.7',
@@ -95,7 +95,7 @@ return [
       'callback' => 'CRM_Core_SelectValues::mapProvider',
     ],
     'default' => NULL,
-    'title' => 'Mapping Provider',
-    'description' => 'Choose the mapping provider that has the best coverage for the majority of your contact addresses.',
+    'title' => ts('Mapping Provider'),
+    'description' => ts('Choose the mapping provider that has the best coverage for the majority of your contact addresses.'),
   ],
 ];
diff --git a/civicrm/settings/Member.setting.php b/civicrm/settings/Member.setting.php
index 2909b28954..c45fd19664 100644
--- a/civicrm/settings/Member.setting.php
+++ b/civicrm/settings/Member.setting.php
@@ -33,7 +33,7 @@ return [
       'callback' => 'CRM_Contribute_PseudoConstant::contributionPage',
     ],
     'add' => '4.1',
-    'title' => 'Default online membership renewal page',
+    'title' => ts('Default online membership renewal page'),
     'is_domain' => 1,
     'is_contact' => 0,
     'description' => ts('If you select a default online contribution page for self-service membership renewals, a "renew" link pointing to that page will be displayed on the Contact Dashboard for memberships which were entered offline. You will need to ensure that the membership block for the selected online contribution page includes any currently available memberships.'),
diff --git a/civicrm/settings/Multisite.setting.php b/civicrm/settings/Multisite.setting.php
index 614393b697..64e06b9ad8 100644
--- a/civicrm/settings/Multisite.setting.php
+++ b/civicrm/settings/Multisite.setting.php
@@ -56,13 +56,12 @@ return [
     'group_name' => 'Multi Site Preferences',
     'group' => 'multisite',
     'name' => 'event_price_set_domain_id',
-    'title' => 'Domain Event Price Set',
+    'title' => ts('Domain Event Price Set'),
     'type' => 'Integer',
     'default' => '0',
     'add' => '4.1',
     'is_domain' => 1,
     'is_contact' => 0,
-    'description' => '',
     'help_text' => NULL,
   ],
   'uniq_email_per_site' => [
@@ -70,12 +69,11 @@ return [
     'group' => 'multisite',
     'name' => 'uniq_email_per_site',
     'type' => 'Integer',
-    'title' => 'Unique Email per Domain?',
+    'title' => ts('Unique Email per Domain?'),
     'default' => '0',
     'add' => '4.1',
     'is_domain' => 1,
     'is_contact' => 0,
-    'description' => '',
     'help_text' => NULL,
   ],
 ];
diff --git a/civicrm/settings/Search.setting.php b/civicrm/settings/Search.setting.php
index bddac38074..427bc8a6c6 100644
--- a/civicrm/settings/Search.setting.php
+++ b/civicrm/settings/Search.setting.php
@@ -29,10 +29,10 @@ return [
     'html_type' => 'number',
     'default' => 10,
     'add' => '4.3',
-    'title' => 'Autocomplete Results',
+    'title' => ts('Autocomplete Results'),
     'is_domain' => 1,
     'is_contact' => 0,
-    'description' => 'The maximum number of contacts to show at a time when typing in an autocomplete field.',
+    'description' => ts('The maximum number of contacts to show at a time when typing in an autocomplete field.'),
     'help_text' => NULL,
   ],
   'enable_innodb_fts' => [
@@ -43,10 +43,10 @@ return [
     'quick_form_type' => 'YesNo',
     'default' => 0,
     'add' => '4.4',
-    'title' => 'InnoDB Full Text Search',
+    'title' => ts('InnoDB Full Text Search'),
     'is_domain' => 1,
     'is_contact' => 0,
-    'description' => "Enable InnoDB full-text search optimizations. (Requires MySQL 5.6+)",
+    'description' => ts('Enable InnoDB full-text search optimizations. (Requires MySQL 5.6+)'),
     'help_text' => NULL,
     'on_change' => [
       ['CRM_Core_InnoDBIndexer', 'onToggleFts'],
@@ -65,10 +65,9 @@ return [
     'html_type' => 'text',
     'default' => 'simple',
     'add' => '4.5',
-    'title' => 'How to handle full-tet queries',
+    'title' => ts('How to handle full-tet queries'),
     'is_domain' => 1,
     'is_contact' => 0,
-    'description' => NULL,
     'help_text' => NULL,
   ],
   'includeOrderByClause' => [
@@ -79,10 +78,10 @@ return [
     'quick_form_type' => 'YesNo',
     'default' => 1,
     'add' => '4.6',
-    'title' => 'Include Order By Clause',
+    'title' => ts('Include Order By Clause'),
     'is_domain' => 1,
     'is_contact' => 0,
-    'description' => 'If disabled, the search results will not be ordered. This may improve response time on search results on large datasets',
+    'description' => ts('If disabled, the search results will not be ordered. This may improve response time on search results on large datasets.'),
     'help_text' => NULL,
   ],
   'includeWildCardInName' => [
@@ -93,10 +92,10 @@ return [
     'quick_form_type' => 'YesNo',
     'default' => 1,
     'add' => '4.6',
-    'title' => 'Automatic Wildcard',
+    'title' => ts('Automatic Wildcard'),
     'is_domain' => 1,
     'is_contact' => 0,
-    'description' => "If enabled, wildcards are automatically added to the beginning AND end of the search term when users search for contacts by Name. EXAMPLE: Searching for 'ada' will return any contact whose name includes those letters - e.g. 'Adams, Janet', 'Nadal, Jorge', etc. If disabled, a wildcard is added to the end of the search term only. EXAMPLE: Searching for 'ada' will return any contact whose last name begins with those letters - e.g. 'Adams, Janet' but NOT 'Nadal, Jorge'. Disabling this feature will speed up search significantly for larger databases, but users must manually enter wildcards ('%' or '_') to the beginning of the search term if they want to find all records which contain those letters. EXAMPLE: '%ada' will return 'Nadal, Jorge'.",
+    'description' => ts("If enabled, wildcards are automatically added to the beginning AND end of the search term when users search for contacts by Name. EXAMPLE: Searching for 'ada' will return any contact whose name includes those letters - e.g. 'Adams, Janet', 'Nadal, Jorge', etc. If disabled, a wildcard is added to the end of the search term only. EXAMPLE: Searching for 'ada' will return any contact whose last name begins with those letters - e.g. 'Adams, Janet' but NOT 'Nadal, Jorge'. Disabling this feature will speed up search significantly for larger databases, but users must manually enter wildcards ('%' or '_') to the beginning of the search term if they want to find all records which contain those letters. EXAMPLE: '%ada' will return 'Nadal, Jorge'."),
     'help_text' => NULL,
   ],
   'includeEmailInName' => [
@@ -107,10 +106,10 @@ return [
     'quick_form_type' => 'YesNo',
     'default' => 1,
     'add' => '4.6',
-    'title' => 'Include Email',
+    'title' => ts('Include Email'),
     'is_domain' => 1,
     'is_contact' => 0,
-    'description' => 'If enabled, email addresses are automatically included when users search by Name. Disabling this feature will speed up search significantly for larger databases, but users will need to use the Email search fields (from Advanced Search, Search Builder, or Profiles) to find contacts by email address.',
+    'description' => ts('If enabled, email addresses are automatically included when users search by Name. Disabling this feature will speed up search significantly for larger databases, but users will need to use the Email search fields (from Advanced Search, Search Builder, or Profiles) to find contacts by email address.'),
     'help_text' => NULL,
   ],
   'includeNickNameInName' => [
@@ -121,10 +120,10 @@ return [
     'quick_form_type' => 'YesNo',
     'default' => 0,
     'add' => '4.6',
-    'title' => 'Include Nickname',
+    'title' => ts('Include Nickname'),
     'is_domain' => 1,
     'is_contact' => 0,
-    'description' => 'If enabled, nicknames are automatically included when users search by Name.',
+    'description' => ts('If enabled, nicknames are automatically included when users search by Name.'),
     'help_text' => NULL,
   ],
   'includeAlphabeticalPager' => [
@@ -135,10 +134,10 @@ return [
     'quick_form_type' => 'YesNo',
     'default' => 1,
     'add' => '4.6',
-    'title' => 'Include Alphabetical Pager',
+    'title' => ts('Include Alphabetical Pager'),
     'is_domain' => 1,
     'is_contact' => 0,
-    'description' => 'If disabled, the alphabetical pager will not be displayed on the search screens. This will improve response time on search results on large datasets.',
+    'description' => ts('If disabled, the alphabetical pager will not be displayed on the search screens. This will improve response time on search results on large datasets.'),
     'help_text' => NULL,
   ],
   'smartGroupCacheTimeout' => [
@@ -150,10 +149,10 @@ return [
     'html_type' => 'number',
     'default' => 5,
     'add' => '4.6',
-    'title' => 'Smart group cache timeout',
+    'title' => ts('Smart group cache timeout'),
     'is_domain' => 1,
     'is_contact' => 0,
-    'description' => 'The number of minutes to cache smart group contacts. We strongly recommend that this value be greater than zero, since a value of zero means no caching at all. If your contact data changes frequently, you should set this value to at least 5 minutes.',
+    'description' => ts('The number of minutes to cache smart group contacts. We strongly recommend that this value be greater than zero, since a value of zero means no caching at all. If your contact data changes frequently, you should set this value to at least 5 minutes.'),
     'help_text' => NULL,
   ],
   'defaultSearchProfileID' => [
@@ -171,10 +170,10 @@ return [
     ],
     'default' => NULL,
     'add' => '4.6',
-    'title' => 'Default Contact Search Profile',
+    'title' => ts('Default Contact Search Profile'),
     'is_domain' => 1,
     'is_contact' => 0,
-    'description' => 'If set, this will be the default profile used for contact search.',
+    'description' => ts('If set, this will be the default profile used for contact search.'),
     'help_text' => NULL,
   ],
   'prevNextBackend' => [
@@ -189,13 +188,13 @@ return [
     ],
     'default' => 'default',
     'add' => '5.9',
-    'title' => 'PrevNext Cache',
+    'title' => ts('PrevNext Cache'),
     'is_domain' => 1,
     'is_contact' => 0,
     'pseudoconstant' => [
       'callback' => 'CRM_Core_BAO_PrevNextCache::getPrevNextBackends',
     ],
-    'description' => 'When performing a search, how should the search-results be cached?',
+    'description' => ts('When performing a search, how should the search-results be cached?'),
     'help_text' => '',
   ],
   'searchPrimaryDetailsOnly' => [
@@ -206,10 +205,10 @@ return [
     'quick_form_type' => 'YesNo',
     'default' => 1,
     'add' => '4.7',
-    'title' => 'Search Primary Details Only',
+    'title' => ts('Search Primary Details Only'),
     'is_domain' => 1,
     'is_contact' => 0,
-    'description' => 'If enabled, only primary details (eg contact\'s primary email, phone, etc) will be included in Basic and Advanced Search results. Disabling this feature will allow users to match contacts using any email, phone etc detail.',
+    'description' => ts('If enabled, only primary details (eg contact\'s primary email, phone, etc) will be included in Basic and Advanced Search results. Disabling this feature will allow users to match contacts using any email, phone etc detail.'),
     'help_text' => NULL,
   ],
   'quicksearch_options' => [
diff --git a/civicrm/settings/Url.setting.php b/civicrm/settings/Url.setting.php
index d1fc4bc731..f41f8363ae 100644
--- a/civicrm/settings/Url.setting.php
+++ b/civicrm/settings/Url.setting.php
@@ -25,7 +25,7 @@ return [
     'group' => 'url',
     'group_name' => 'URL Preferences',
     'name' => 'userFrameworkResourceURL',
-    'title' => 'CiviCRM Resource URL',
+    'title' => ts('CiviCRM Resource URL'),
     'type' => 'String',
     'html_type' => 'text',
     'quick_form_type' => 'Element',
@@ -33,7 +33,7 @@ return [
     'add' => '4.1',
     'is_domain' => 1,
     'is_contact' => 0,
-    'description' => 'Absolute URL of the location where the civicrm module or component has been installed.',
+    'description' => ts('Absolute URL of the location where the civicrm module or component has been installed.'),
     'help_text' => NULL,
     'validate_callback' => 'CRM_Utils_Rule::urlish',
   ],
@@ -41,7 +41,7 @@ return [
     'bootstrap_comment' => 'This is a boot setting which may be loaded during bootstrap. Defaults are loaded via SettingsBag::getSystemDefaults().',
     'group' => 'url',
     'group_name' => 'URL Preferences',
-    'title' => 'Image Upload URL',
+    'title' => ts('Image Upload URL'),
     'name' => 'imageUploadURL',
     'type' => 'String',
     'html_type' => 'text',
@@ -50,7 +50,7 @@ return [
     'add' => '4.1',
     'is_domain' => 1,
     'is_contact' => 0,
-    'description' => 'URL of the location for uploaded image files.',
+    'description' => ts('URL of the location for uploaded image files.'),
     'help_text' => NULL,
     'validate_callback' => 'CRM_Utils_Rule::urlish',
   ],
@@ -59,7 +59,7 @@ return [
     'group' => 'url',
     'group_name' => 'URL Preferences',
     'name' => 'customCSSURL',
-    'title' => 'Custom CSS URL',
+    'title' => ts('Custom CSS URL'),
     'type' => 'String',
     'html_type' => 'text',
     'quick_form_type' => 'Element',
@@ -67,7 +67,7 @@ return [
     'add' => '4.1',
     'is_domain' => 1,
     'is_contact' => 0,
-    'description' => 'You can modify the look and feel of CiviCRM by adding your own stylesheet. For small to medium sized modifications, use your css file to override some of the styles in civicrm.css. Or if you need to make drastic changes, you can choose to disable civicrm.css completely.',
+    'description' => ts('You can modify the look and feel of CiviCRM by adding your own stylesheet. For small to medium sized modifications, use your css file to override some of the styles in civicrm.css. Or if you need to make drastic changes, you can choose to disable civicrm.css completely.'),
     'help_text' => NULL,
     'validate_callback' => 'CRM_Utils_Rule::urlish',
   ],
@@ -75,7 +75,7 @@ return [
     'bootstrap_comment' => 'This is a boot setting which may be loaded during bootstrap. Defaults are loaded via SettingsBag::getSystemDefaults().',
     'group' => 'url',
     'group_name' => 'URL Preferences',
-    'title' => 'Extension Resource URL',
+    'title' => ts('Extension Resource URL'),
     'name' => 'extensionsURL',
     'type' => 'String',
     'html_type' => 'text',
@@ -84,7 +84,7 @@ return [
     'add' => '4.1',
     'is_domain' => 1,
     'is_contact' => 0,
-    'description' => 'Base URL for extension resources (images, stylesheets, etc). This should match extensionsDir.',
+    'description' => ts('Base URL for extension resources (images, stylesheets, etc). This should match extensionsDir.'),
     'help_text' => NULL,
     'validate_callback' => 'CRM_Utils_Rule::urlish',
   ],
diff --git a/civicrm/sql/civicrm.mysql b/civicrm/sql/civicrm.mysql
index b29d90718f..f62634d09b 100644
--- a/civicrm/sql/civicrm.mysql
+++ b/civicrm/sql/civicrm.mysql
@@ -1086,7 +1086,7 @@ CREATE TABLE `civicrm_payment_processor_type` (
 
 
      `id` int unsigned NOT NULL AUTO_INCREMENT  COMMENT 'Payment Processor Type ID',
-     `name` varchar(64) NOT NULL   COMMENT 'Payment Processor Name.',
+     `name` varchar(64) NOT NULL   COMMENT 'Payment Processor Type Name.',
      `title` varchar(127) NOT NULL   COMMENT 'Payment Processor Type Title.',
      `description` varchar(255)    COMMENT 'Payment Processor Description.',
      `is_active` tinyint   DEFAULT 1 COMMENT 'Is this processor active?',
@@ -1845,7 +1845,6 @@ CREATE TABLE `civicrm_domain` (
      `id` int unsigned NOT NULL AUTO_INCREMENT  COMMENT 'Domain ID',
      `name` varchar(64)    COMMENT 'Name of Domain / Organization',
      `description` varchar(255)    COMMENT 'Description of Domain.',
-     `config_backend` text    COMMENT 'Backend configuration.',
      `version` varchar(32)    COMMENT 'The civicrm version this instance is running',
      `contact_id` int unsigned    COMMENT 'FK to Contact ID. This is specifically not an FK to avoid circular constraints',
      `locales` text    COMMENT 'list of locales supported by the current db state (NULL for single-lang install)',
@@ -1874,7 +1873,7 @@ CREATE TABLE `civicrm_email` (
      `contact_id` int unsigned    COMMENT 'FK to Contact ID',
      `location_type_id` int unsigned    COMMENT 'Which Location does this email belong to.',
      `email` varchar(254)    COMMENT 'Email address',
-     `is_primary` tinyint   DEFAULT 0 COMMENT 'Is this the primary?',
+     `is_primary` tinyint   DEFAULT 0 COMMENT 'Is this the primary email address',
      `is_billing` tinyint   DEFAULT 0 COMMENT 'Is this the billing?',
      `on_hold` int unsigned NOT NULL  DEFAULT 0 COMMENT 'Implicit FK to civicrm_option_value where option_group = email_on_hold.',
      `is_bulkmail` tinyint NOT NULL  DEFAULT 0 COMMENT 'Is this address for bulk mail ?',
diff --git a/civicrm/sql/civicrm_data.mysql b/civicrm/sql/civicrm_data.mysql
index 8bd9bbeba0..05dbe5192b 100644
--- a/civicrm/sql/civicrm_data.mysql
+++ b/civicrm/sql/civicrm_data.mysql
@@ -5111,7 +5111,7 @@ VALUES
   (@option_group_id_acConRef, 'City'            , 5, 'city'          , NULL, 0, NULL, 5, NULL, 0, 0, 1, NULL, NULL, NULL),
   (@option_group_id_acConRef, 'State/Province'  , 6, 'state_province', NULL, 0, NULL, 6, NULL, 0, 0, 1, NULL, NULL, NULL),
   (@option_group_id_acConRef, 'Country'         , 7, 'country'       , NULL, 0, NULL, 7, NULL, 0, 0, 1, NULL, NULL, NULL),
-  (@option_group_id_acConRef, 'Postal Code'     , 8, 'country'       , NULL, 0, NULL, 8, NULL, 0, 0, 1, NULL, NULL, NULL),
+  (@option_group_id_acConRef, 'Postal Code'     , 8, 'postal_code'   , NULL, 0, NULL, 8, NULL, 0, 0, 1, NULL, NULL, NULL),
 
   (@option_group_id_adOpt, 'Street Address'    ,  1, 'street_address', NULL, 0, NULL,  1, NULL, 0, 0, 1, NULL, NULL, NULL),
   (@option_group_id_adOpt, 'Supplemental Address 1'  ,  2, 'supplemental_address_1', NULL, 0, NULL,  2, NULL, 0, 0, 1, NULL, NULL, NULL),
@@ -5283,6 +5283,7 @@ VALUES
   (@option_group_id_mp, 'Maildir', 2, 'Maildir', NULL, 0, NULL, 2, NULL, 0, 0, 1, NULL, NULL , NULL),
   (@option_group_id_mp, 'POP3',    3, 'POP3',    NULL, 0, NULL, 3, NULL, 0, 0, 1, NULL, NULL , NULL),
   (@option_group_id_mp, 'Localdir', 4, 'Localdir', NULL, 0, NULL, 4, NULL, 0, 0, 1, NULL, NULL , NULL),
+  (@option_group_id_mp, 'IMAP XOAUTH2', 5, 'IMAP_XOAUTH2', NULL, 0, NULL, 5, NULL, 0, 0, 0, NULL, NULL , NULL),
 
 -- priority
   (@option_group_id_priority, 'Urgent', 1, 'Urgent', NULL, 0, NULL, 1, NULL, 0, 0, 1, NULL, NULL, NULL),
@@ -5316,7 +5317,6 @@ VALUES
    (@option_group_id_website, 'Work',     1, 'Work',     NULL, 0, 1, 1, NULL, 0, 0, 1, NULL, NULL, NULL),
    (@option_group_id_website, 'Main',     2, 'Main',     NULL, 0, NULL, 2, NULL, 0, 0, 1, NULL, NULL, NULL),
    (@option_group_id_website, 'Facebook', 3, 'Facebook', NULL, 0, NULL, 3, NULL, 0, 0, 1, NULL, NULL, NULL),
-   (@option_group_id_website, 'Google+',  4, 'Google_',  NULL, 0, NULL, 4, NULL, 0, 0, 1, NULL, NULL, NULL),
    (@option_group_id_website, 'Instagram',  5, 'Instagram',  NULL, 0, NULL, 5, NULL, 0, 0, 1, NULL, NULL, NULL),
    (@option_group_id_website, 'LinkedIn',  6, 'LinkedIn',  NULL, 0, NULL, 6, NULL, 0, 0, 1, NULL, NULL, NULL),
    (@option_group_id_website, 'MySpace',  7, 'MySpace',  NULL, 0, NULL, 7, NULL, 0, 0, 1, NULL, NULL, NULL),
@@ -5501,17 +5501,17 @@ VALUES
    (@option_group_id_name_badge, 'Hanging Badge 3-3/4\" x 4-3\"/4', '{"paper-size":"a4","orientation":"portrait","font-name":"times","font-size":6,"font-style":"","NX":2,"NY":2,"metric":"mm","lMargin":10,"tMargin":28,"SpaceX":0,"SpaceY":0,"width":96,"height":121,"lPadding":5,"tPadding":5}', 'Hanging Badge 3-3/4" x 4-3"/4', NULL, 0, NULL, 4, NULL, 0, 0, 1, NULL, NULL, NULL),
 
 -- Mailing Label Formats
-  (@option_group_id_label, 'Avery 3475', '{"paper-size":"a4","orientation":"portrait","font-name":"helvetica","font-size":10,"font-style":"","metric":"mm","lMargin":0,"tMargin":5,"NX":3,"NY":8,"SpaceX":0,"SpaceY":0,"width":70,"height":36,"lPadding":5.08,"tPadding":5.08}',                   '3475',  'Avery', NULL, 0, 1,  NULL, 0, 1, 1, NULL, NULL, NULL),
-  (@option_group_id_label, 'Avery 5160', '{"paper-size":"letter","orientation":"portrait","font-name":"helvetica","font-size":8,"font-style":"","metric":"in","lMargin":0.21975,"tMargin":0.5,"NX":3,"NY":10,"SpaceX":0.14,"SpaceY":0,"width":2.5935,"height":1,"lPadding":0.20,"tPadding":0.20}', '5160',  'Avery', NULL, 0, 2,  NULL, 0, 1, 1, NULL, NULL, NULL),
-  (@option_group_id_label, 'Avery 5161', '{"paper-size":"letter","orientation":"portrait","font-name":"helvetica","font-size":8,"font-style":"","metric":"in","lMargin":0.175,"tMargin":0.5,"NX":2,"NY":10,"SpaceX":0.15625,"SpaceY":0,"width":4,"height":1,"lPadding":0.20,"tPadding":0.20}',     '5161',  'Avery', NULL, 0, 3,  NULL, 0, 1, 1, NULL, NULL, NULL),
-  (@option_group_id_label, 'Avery 5162', '{"paper-size":"letter","orientation":"portrait","font-name":"helvetica","font-size":8,"font-style":"","metric":"in","lMargin":0.1525,"tMargin":0.88,"NX":2,"NY":7,"SpaceX":0.195,"SpaceY":0,"width":4,"height":1.33,"lPadding":0.20,"tPadding":0.20}',   '5162',  'Avery', NULL, 0, 4,  NULL, 0, 1, 1, NULL, NULL, NULL),
-  (@option_group_id_label, 'Avery 5163', '{"paper-size":"letter","orientation":"portrait","font-name":"helvetica","font-size":8,"font-style":"","metric":"in","lMargin":0.18,"tMargin":0.5,"NX":2,"NY":5,"SpaceX":0.14,"SpaceY":0,"width":4,"height":2,"lPadding":0.20,"tPadding":0.20}',          '5163',  'Avery', NULL, 0, 5,  NULL, 0, 1, 1, NULL, NULL, NULL),
-  (@option_group_id_label, 'Avery 5164', '{"paper-size":"letter","orientation":"portrait","font-name":"helvetica","font-size":12,"font-style":"","metric":"in","lMargin":0.156,"tMargin":0.5,"NX":2,"NY":3,"SpaceX":0.1875,"SpaceY":0,"width":4,"height":3.33,"lPadding":0.20,"tPadding":0.20}',   '5164',  'Avery', NULL, 0, 6,  NULL, 0, 1, 1, NULL, NULL, NULL),
-  (@option_group_id_label, 'Avery 8600', '{"paper-size":"letter","orientation":"portrait","font-name":"helvetica","font-size":8,"font-style":"","metric":"mm","lMargin":7.1,"tMargin":19,"NX":3,"NY":10,"SpaceX":9.5,"SpaceY":3.1,"width":66.6,"height":25.4,"lPadding":5.08,"tPadding":5.08}',    '8600',  'Avery', NULL, 0, 7,  NULL, 0, 1, 1, NULL, NULL, NULL),
-  (@option_group_id_label, 'Avery L7160', '{"paper-size":"a4","orientation":"portrait","font-name":"helvetica","font-size":9,"font-style":"","metric":"in","lMargin":0.28,"tMargin":0.6,"NX":3,"NY":7,"SpaceX":0.1,"SpaceY":0,"width":2.5,"height":1.5,"lPadding":0.20,"tPadding":0.20}',          'L7160', 'Avery', NULL, 0, 8,  NULL, 0, 1, 1, NULL, NULL, NULL),
-  (@option_group_id_label, 'Avery L7161', '{"paper-size":"a4","orientation":"portrait","font-name":"helvetica","font-size":9,"font-style":"","metric":"in","lMargin":0.28,"tMargin":0.35,"NX":3,"NY":6,"SpaceX":0.1,"SpaceY":0,"width":2.5,"height":1.83,"lPadding":0.20,"tPadding":0.20}',        'L7161', 'Avery', NULL, 0, 9,  NULL, 0, 1, 1, NULL, NULL, NULL),
-  (@option_group_id_label, 'Avery L7162', '{"paper-size":"a4","orientation":"portrait","font-name":"helvetica","font-size":9,"font-style":"","metric":"in","lMargin":0.18,"tMargin":0.51,"NX":2,"NY":8,"SpaceX":0.1,"SpaceY":0,"width":3.9,"height":1.33,"lPadding":0.20,"tPadding":0.20}',        'L7162', 'Avery', NULL, 0, 10, NULL, 0, 1, 1, NULL, NULL, NULL),
-  (@option_group_id_label, 'Avery L7163', '{"paper-size":"a4","orientation":"portrait","font-name":"helvetica","font-size":9,"font-style":"","metric":"in","lMargin":0.18,"tMargin":0.6,"NX":2,"NY":7,"SpaceX":0.1,"SpaceY":0,"width":3.9,"height":1.5,"lPadding":0.20,"tPadding":0.20}',          'L7163', 'Avery', NULL, 0, 11, NULL, 0, 1, 1, NULL, NULL, NULL),
+  (@option_group_id_label, 'Avery 3475', '{"paper-size":"a4","orientation":"portrait","font-name":"dejavusans","font-size":10,"font-style":"","metric":"mm","lMargin":0,"tMargin":5,"NX":3,"NY":8,"SpaceX":0,"SpaceY":0,"width":70,"height":36,"lPadding":5.08,"tPadding":5.08}',                   '3475',  'Avery', NULL, 0, 1,  NULL, 0, 1, 1, NULL, NULL, NULL),
+  (@option_group_id_label, 'Avery 5160', '{"paper-size":"letter","orientation":"portrait","font-name":"dejavusans","font-size":8,"font-style":"","metric":"in","lMargin":0.21975,"tMargin":0.5,"NX":3,"NY":10,"SpaceX":0.14,"SpaceY":0,"width":2.5935,"height":1,"lPadding":0.20,"tPadding":0.20}', '5160',  'Avery', NULL, 0, 2,  NULL, 0, 1, 1, NULL, NULL, NULL),
+  (@option_group_id_label, 'Avery 5161', '{"paper-size":"letter","orientation":"portrait","font-name":"dejavusans","font-size":8,"font-style":"","metric":"in","lMargin":0.175,"tMargin":0.5,"NX":2,"NY":10,"SpaceX":0.15625,"SpaceY":0,"width":4,"height":1,"lPadding":0.20,"tPadding":0.20}',     '5161',  'Avery', NULL, 0, 3,  NULL, 0, 1, 1, NULL, NULL, NULL),
+  (@option_group_id_label, 'Avery 5162', '{"paper-size":"letter","orientation":"portrait","font-name":"dejavusans","font-size":8,"font-style":"","metric":"in","lMargin":0.1525,"tMargin":0.88,"NX":2,"NY":7,"SpaceX":0.195,"SpaceY":0,"width":4,"height":1.33,"lPadding":0.20,"tPadding":0.20}',   '5162',  'Avery', NULL, 0, 4,  NULL, 0, 1, 1, NULL, NULL, NULL),
+  (@option_group_id_label, 'Avery 5163', '{"paper-size":"letter","orientation":"portrait","font-name":"dejavusans","font-size":8,"font-style":"","metric":"in","lMargin":0.18,"tMargin":0.5,"NX":2,"NY":5,"SpaceX":0.14,"SpaceY":0,"width":4,"height":2,"lPadding":0.20,"tPadding":0.20}',          '5163',  'Avery', NULL, 0, 5,  NULL, 0, 1, 1, NULL, NULL, NULL),
+  (@option_group_id_label, 'Avery 5164', '{"paper-size":"letter","orientation":"portrait","font-name":"dejavusans","font-size":12,"font-style":"","metric":"in","lMargin":0.156,"tMargin":0.5,"NX":2,"NY":3,"SpaceX":0.1875,"SpaceY":0,"width":4,"height":3.33,"lPadding":0.20,"tPadding":0.20}',   '5164',  'Avery', NULL, 0, 6,  NULL, 0, 1, 1, NULL, NULL, NULL),
+  (@option_group_id_label, 'Avery 8600', '{"paper-size":"letter","orientation":"portrait","font-name":"dejavusans","font-size":8,"font-style":"","metric":"mm","lMargin":7.1,"tMargin":19,"NX":3,"NY":10,"SpaceX":9.5,"SpaceY":3.1,"width":66.6,"height":25.4,"lPadding":5.08,"tPadding":5.08}',    '8600',  'Avery', NULL, 0, 7,  NULL, 0, 1, 1, NULL, NULL, NULL),
+  (@option_group_id_label, 'Avery L7160', '{"paper-size":"a4","orientation":"portrait","font-name":"dejavusans","font-size":9,"font-style":"","metric":"in","lMargin":0.28,"tMargin":0.6,"NX":3,"NY":7,"SpaceX":0.1,"SpaceY":0,"width":2.5,"height":1.5,"lPadding":0.20,"tPadding":0.20}',          'L7160', 'Avery', NULL, 0, 8,  NULL, 0, 1, 1, NULL, NULL, NULL),
+  (@option_group_id_label, 'Avery L7161', '{"paper-size":"a4","orientation":"portrait","font-name":"dejavusans","font-size":9,"font-style":"","metric":"in","lMargin":0.28,"tMargin":0.35,"NX":3,"NY":6,"SpaceX":0.1,"SpaceY":0,"width":2.5,"height":1.83,"lPadding":0.20,"tPadding":0.20}',        'L7161', 'Avery', NULL, 0, 9,  NULL, 0, 1, 1, NULL, NULL, NULL),
+  (@option_group_id_label, 'Avery L7162', '{"paper-size":"a4","orientation":"portrait","font-name":"dejavusans","font-size":9,"font-style":"","metric":"in","lMargin":0.18,"tMargin":0.51,"NX":2,"NY":8,"SpaceX":0.1,"SpaceY":0,"width":3.9,"height":1.33,"lPadding":0.20,"tPadding":0.20}',        'L7162', 'Avery', NULL, 0, 10, NULL, 0, 1, 1, NULL, NULL, NULL),
+  (@option_group_id_label, 'Avery L7163', '{"paper-size":"a4","orientation":"portrait","font-name":"dejavusans","font-size":9,"font-style":"","metric":"in","lMargin":0.18,"tMargin":0.6,"NX":2,"NY":7,"SpaceX":0.1,"SpaceY":0,"width":3.9,"height":1.5,"lPadding":0.20,"tPadding":0.20}',          'L7163', 'Avery', NULL, 0, 11, NULL, 0, 1, 1, NULL, NULL, NULL),
 
 -- Communication Styles
   (@option_group_id_communication_style, 'Formal'  , 1, 'formal'  , NULL, 0, 1, 1, NULL, 0, 0, 1, NULL, NULL, NULL),
@@ -7011,6 +7011,7 @@ INSERT INTO civicrm_msg_template
 {ts}Contribution Information{/ts}
 
 ===========================================================
+{ts}Contributor{/ts}: {contact.display_name}
 {ts}Financial Type{/ts}: {$formValues.contributionType_name}
 {if $lineItem}
 {foreach from=$lineItem item=value key=priceset}
@@ -7157,6 +7158,14 @@ INSERT INTO civicrm_msg_template
        {ts}Contribution Information{/ts}
       </th>
      </tr>
+     <tr>
+      <td {$labelStyle}>
+       {ts}Contributor Name{/ts}
+      </td>
+      <td {$valueStyle}>
+       {contact.display_name}
+      </td>
+     </tr>
      <tr>
       <td {$labelStyle}>
        {ts}Financial Type{/ts}
@@ -7446,6 +7455,7 @@ INSERT INTO civicrm_msg_template
 {ts}Contribution Information{/ts}
 
 ===========================================================
+{ts}Contributor{/ts}: {contact.display_name}
 {ts}Financial Type{/ts}: {$formValues.contributionType_name}
 {if $lineItem}
 {foreach from=$lineItem item=value key=priceset}
@@ -7592,6 +7602,14 @@ INSERT INTO civicrm_msg_template
        {ts}Contribution Information{/ts}
       </th>
      </tr>
+     <tr>
+      <td {$labelStyle}>
+       {ts}Contributor Name{/ts}
+      </td>
+      <td {$valueStyle}>
+       {contact.display_name}
+      </td>
+     </tr>
      <tr>
       <td {$labelStyle}>
        {ts}Financial Type{/ts}
@@ -16756,7 +16774,7 @@ Click this link to go to a web page where you can confirm your registration onli
   {/if}
   {if $event.allow_selfcancelxfer }
   {ts}This event allows for{/ts}
-  {capture assign=selfService}{crmURL p=\'civicrm/event/selfsvcupdate\' q="reset=1&pid=`$participantID`&{contact.checksum}" h=0 a=1 fe=1}{/capture}
+  {capture assign=selfService}{crmURL p=\'civicrm/event/selfsvcupdate\' q="reset=1&pid=`$participant.id`&{contact.checksum}" h=0 a=1 fe=1}{/capture}
        <a href="{$selfService}"> {ts}self service cancel or transfer{/ts}</a>
   {/if}
 
@@ -17026,7 +17044,7 @@ Click this link to go to a web page where you can confirm your registration onli
   {/if}
   {if $event.allow_selfcancelxfer }
   {ts}This event allows for{/ts}
-  {capture assign=selfService}{crmURL p=\'civicrm/event/selfsvcupdate\' q="reset=1&pid=`$participantID`&{contact.checksum}" h=0 a=1 fe=1}{/capture}
+  {capture assign=selfService}{crmURL p=\'civicrm/event/selfsvcupdate\' q="reset=1&pid=`$participant.id`&{contact.checksum}" h=0 a=1 fe=1}{/capture}
        <a href="{$selfService}"> {ts}self service cancel or transfer{/ts}</a>
   {/if}
 
@@ -23927,4 +23945,4 @@ INSERT INTO `civicrm_report_instance`
     ( `domain_id`, `title`, `report_id`, `description`, `permission`, `form_values`)
 VALUES
     (  @domainID, 'Survey Details', 'survey/detail', 'Detailed report for canvassing, phone-banking, walk lists or other surveys.', 'access CiviReport', 'a:39:{s:6:"fields";a:2:{s:9:"sort_name";s:1:"1";s:6:"result";s:1:"1";}s:22:"assignee_contact_id_op";s:2:"eq";s:25:"assignee_contact_id_value";s:0:"";s:12:"sort_name_op";s:3:"has";s:15:"sort_name_value";s:0:"";s:17:"street_number_min";s:0:"";s:17:"street_number_max";s:0:"";s:16:"street_number_op";s:3:"lte";s:19:"street_number_value";s:0:"";s:14:"street_name_op";s:3:"has";s:17:"street_name_value";s:0:"";s:15:"postal_code_min";s:0:"";s:15:"postal_code_max";s:0:"";s:14:"postal_code_op";s:3:"lte";s:17:"postal_code_value";s:0:"";s:7:"city_op";s:3:"has";s:10:"city_value";s:0:"";s:20:"state_province_id_op";s:2:"in";s:23:"state_province_id_value";a:0:{}s:13:"country_id_op";s:2:"in";s:16:"country_id_value";a:0:{}s:12:"survey_id_op";s:2:"in";s:15:"survey_id_value";a:0:{}s:12:"status_id_op";s:2:"eq";s:15:"status_id_value";s:1:"1";s:11:"custom_1_op";s:2:"in";s:14:"custom_1_value";a:0:{}s:11:"custom_2_op";s:2:"in";s:14:"custom_2_value";a:0:{}s:17:"custom_3_relative";s:1:"0";s:13:"custom_3_from";s:0:"";s:11:"custom_3_to";s:0:"";s:11:"description";s:75:"Detailed report for canvassing, phone-banking, walk lists or other surveys.";s:13:"email_subject";s:0:"";s:8:"email_to";s:0:"";s:8:"email_cc";s:0:"";s:10:"permission";s:17:"access CiviReport";s:6:"groups";s:0:"";s:9:"domain_id";i:1;}');
-UPDATE civicrm_domain SET version = '5.22.1';
+UPDATE civicrm_domain SET version = '5.23.0';
diff --git a/civicrm/sql/civicrm_generated.mysql b/civicrm/sql/civicrm_generated.mysql
index 101117d41e..bf066eb35f 100644
--- a/civicrm/sql/civicrm_generated.mysql
+++ b/civicrm/sql/civicrm_generated.mysql
@@ -1,8 +1,8 @@
--- MySQL dump 10.13  Distrib 5.7.26, for osx10.9 (x86_64)
+-- MySQL dump 10.13  Distrib 5.7.28, for Linux (x86_64)
 --
--- Host: 127.0.0.1    Database: dmasterciv_tdjht
+-- Host: 127.0.0.1    Database: 47testcivi_peq9o
 -- ------------------------------------------------------
--- Server version	5.7.26
+-- Server version	5.7.28-0ubuntu0.18.04.4
 
 /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
 /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
@@ -87,7 +87,7 @@ UNLOCK TABLES;
 
 LOCK TABLES `civicrm_activity` WRITE;
 /*!40000 ALTER TABLE `civicrm_activity` DISABLE KEYS */;
-INSERT INTO `civicrm_activity` (`id`, `source_record_id`, `activity_type_id`, `subject`, `activity_date_time`, `duration`, `location`, `phone_id`, `phone_number`, `details`, `status_id`, `priority_id`, `parent_id`, `is_test`, `medium_id`, `is_auto`, `relationship_id`, `is_current_revision`, `original_id`, `result`, `is_deleted`, `campaign_id`, `engagement_level`, `weight`, `is_star`, `created_date`, `modified_date`) VALUES (1,NULL,9,'Subject for Tell a Friend','2019-03-18 08:24:15',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(2,NULL,10,'Subject for Pledge Acknowledgment','2019-06-24 04:58:51',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(3,NULL,9,'Subject for Tell a Friend','2019-03-19 02:11:24',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(4,NULL,9,'Subject for Tell a Friend','2018-12-13 04:07:39',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(5,NULL,9,'Subject for Tell a Friend','2019-04-22 16:20:49',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(6,NULL,10,'Subject for Pledge Acknowledgment','2019-11-07 13:00:07',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(7,NULL,9,'Subject for Tell a Friend','2018-12-03 05:26:10',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(8,NULL,9,'Subject for Tell a Friend','2019-04-06 15:39:33',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(9,NULL,10,'Subject for Pledge Acknowledgment','2019-10-24 17:47:44',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(10,NULL,9,'Subject for Tell a Friend','2019-11-24 06:14:32',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(11,NULL,10,'Subject for Pledge Acknowledgment','2019-08-25 05:43:24',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(12,NULL,10,'Subject for Pledge Acknowledgment','2019-08-06 02:28:20',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(13,NULL,10,'Subject for Pledge Acknowledgment','2019-09-21 18:18:13',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(14,NULL,10,'Subject for Pledge Acknowledgment','2019-08-16 20:39:24',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(15,NULL,10,'Subject for Pledge Acknowledgment','2019-06-11 22:36:41',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(16,NULL,10,'Subject for Pledge Acknowledgment','2019-02-19 08:13:09',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(17,NULL,10,'Subject for Pledge Acknowledgment','2019-01-23 22:47:39',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(18,NULL,9,'Subject for Tell a Friend','2019-07-11 23:52:21',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(19,NULL,10,'Subject for Pledge Acknowledgment','2019-05-27 05:32:29',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(20,NULL,10,'Subject for Pledge Acknowledgment','2019-05-21 16:28:03',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(21,NULL,10,'Subject for Pledge Acknowledgment','2019-06-21 00:47:27',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(22,NULL,9,'Subject for Tell a Friend','2019-02-01 16:22:54',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(23,NULL,9,'Subject for Tell a Friend','2019-01-27 01:45:21',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(24,NULL,9,'Subject for Tell a Friend','2018-12-25 01:37:43',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(25,NULL,10,'Subject for Pledge Acknowledgment','2018-12-15 15:33:32',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(26,NULL,9,'Subject for Tell a Friend','2019-05-26 14:16:40',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(27,NULL,10,'Subject for Pledge Acknowledgment','2019-03-06 06:33:30',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(28,NULL,10,'Subject for Pledge Acknowledgment','2019-07-26 10:36:22',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(29,NULL,9,'Subject for Tell a Friend','2018-12-16 16:26:22',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(30,NULL,9,'Subject for Tell a Friend','2018-12-08 01:10:26',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(31,NULL,9,'Subject for Tell a Friend','2019-07-30 22:36:52',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(32,NULL,9,'Subject for Tell a Friend','2019-05-13 13:08:37',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(33,NULL,10,'Subject for Pledge Acknowledgment','2019-10-31 00:29:29',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(34,NULL,10,'Subject for Pledge Acknowledgment','2019-05-19 07:47:50',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(35,NULL,10,'Subject for Pledge Acknowledgment','2019-11-10 11:56:29',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(36,NULL,10,'Subject for Pledge Acknowledgment','2019-10-05 09:49:16',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(37,NULL,9,'Subject for Tell a Friend','2019-11-12 22:36:46',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(38,NULL,9,'Subject for Tell a Friend','2019-05-09 08:31:57',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(39,NULL,9,'Subject for Tell a Friend','2018-12-25 08:28:56',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(40,NULL,10,'Subject for Pledge Acknowledgment','2019-06-20 18:33:01',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(41,NULL,9,'Subject for Tell a Friend','2019-06-12 19:36:24',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(42,NULL,9,'Subject for Tell a Friend','2019-05-21 22:42:06',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(43,NULL,10,'Subject for Pledge Acknowledgment','2019-03-20 20:48:59',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(44,NULL,10,'Subject for Pledge Acknowledgment','2019-02-24 22:44:09',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(45,NULL,9,'Subject for Tell a Friend','2018-12-28 14:24:38',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(46,NULL,9,'Subject for Tell a Friend','2019-05-08 02:52:28',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(47,NULL,9,'Subject for Tell a Friend','2019-06-04 10:15:58',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(48,NULL,9,'Subject for Tell a Friend','2019-04-04 03:05:50',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(49,NULL,9,'Subject for Tell a Friend','2019-09-04 11:11:39',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(50,NULL,10,'Subject for Pledge Acknowledgment','2019-02-12 20:11:50',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(51,NULL,9,'Subject for Tell a Friend','2019-10-11 02:56:25',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(52,NULL,9,'Subject for Tell a Friend','2019-10-16 13:57:10',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(53,NULL,9,'Subject for Tell a Friend','2019-01-30 19:02:14',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(54,NULL,10,'Subject for Pledge Acknowledgment','2019-07-27 13:14:46',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(55,NULL,9,'Subject for Tell a Friend','2019-08-23 15:09:43',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(56,NULL,9,'Subject for Tell a Friend','2019-08-27 06:08:54',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(57,NULL,10,'Subject for Pledge Acknowledgment','2019-04-20 11:31:40',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(58,NULL,9,'Subject for Tell a Friend','2019-09-14 15:47:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(59,NULL,10,'Subject for Pledge Acknowledgment','2019-07-01 15:15:42',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(60,NULL,9,'Subject for Tell a Friend','2019-05-28 17:17:51',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(61,NULL,9,'Subject for Tell a Friend','2019-09-09 05:50:23',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(62,NULL,9,'Subject for Tell a Friend','2019-03-07 00:14:07',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(63,NULL,9,'Subject for Tell a Friend','2019-03-04 07:18:38',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(64,NULL,9,'Subject for Tell a Friend','2019-06-12 08:25:43',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(65,NULL,10,'Subject for Pledge Acknowledgment','2019-09-20 03:26:08',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(66,NULL,10,'Subject for Pledge Acknowledgment','2019-10-13 10:03:12',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(67,NULL,9,'Subject for Tell a Friend','2019-10-11 14:08:45',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(68,NULL,9,'Subject for Tell a Friend','2019-11-04 05:23:08',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(69,NULL,10,'Subject for Pledge Acknowledgment','2019-11-17 18:08:58',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(70,NULL,9,'Subject for Tell a Friend','2019-06-14 03:19:26',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(71,NULL,10,'Subject for Pledge Acknowledgment','2019-07-14 06:41:13',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(72,NULL,10,'Subject for Pledge Acknowledgment','2018-12-04 03:56:40',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(73,NULL,9,'Subject for Tell a Friend','2019-07-21 16:40:44',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(74,NULL,9,'Subject for Tell a Friend','2019-11-10 00:10:30',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(75,NULL,9,'Subject for Tell a Friend','2019-06-18 21:19:02',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(76,NULL,10,'Subject for Pledge Acknowledgment','2019-02-02 08:36:51',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(77,NULL,9,'Subject for Tell a Friend','2019-03-21 23:55:01',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(78,NULL,9,'Subject for Tell a Friend','2019-09-05 09:48:07',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(79,NULL,9,'Subject for Tell a Friend','2019-01-25 03:52:11',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(80,NULL,9,'Subject for Tell a Friend','2019-05-23 03:52:10',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(81,NULL,9,'Subject for Tell a Friend','2019-04-25 05:42:36',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(82,NULL,10,'Subject for Pledge Acknowledgment','2019-07-16 15:52:17',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(83,NULL,10,'Subject for Pledge Acknowledgment','2019-09-28 06:30:27',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(84,NULL,9,'Subject for Tell a Friend','2019-07-08 19:59:55',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(85,NULL,10,'Subject for Pledge Acknowledgment','2019-10-24 02:59:26',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(86,NULL,9,'Subject for Tell a Friend','2019-02-28 15:37:49',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(87,NULL,10,'Subject for Pledge Acknowledgment','2019-01-23 00:28:20',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(88,NULL,10,'Subject for Pledge Acknowledgment','2018-12-10 07:10:04',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(89,NULL,9,'Subject for Tell a Friend','2019-02-06 00:18:57',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(90,NULL,10,'Subject for Pledge Acknowledgment','2019-07-23 20:39:57',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(91,NULL,10,'Subject for Pledge Acknowledgment','2019-04-17 11:21:15',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(92,NULL,10,'Subject for Pledge Acknowledgment','2019-01-20 21:00:27',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(93,NULL,9,'Subject for Tell a Friend','2019-11-16 16:08:59',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(94,NULL,10,'Subject for Pledge Acknowledgment','2019-01-21 01:49:08',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(95,NULL,9,'Subject for Tell a Friend','2019-04-25 15:46:56',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(96,NULL,9,'Subject for Tell a Friend','2019-08-17 10:19:58',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(97,NULL,10,'Subject for Pledge Acknowledgment','2018-12-06 19:51:35',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(98,NULL,10,'Subject for Pledge Acknowledgment','2019-01-30 02:45:10',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(99,NULL,10,'Subject for Pledge Acknowledgment','2019-06-19 22:18:07',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(100,NULL,9,'Subject for Tell a Friend','2019-09-12 11:24:07',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(101,NULL,9,'Subject for Tell a Friend','2018-12-25 06:06:08',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(102,NULL,10,'Subject for Pledge Acknowledgment','2019-01-12 00:18:04',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(103,NULL,10,'Subject for Pledge Acknowledgment','2019-08-19 07:58:57',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(104,NULL,9,'Subject for Tell a Friend','2019-10-10 01:08:40',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(105,NULL,9,'Subject for Tell a Friend','2019-08-05 14:45:05',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(106,NULL,10,'Subject for Pledge Acknowledgment','2019-07-01 02:55:14',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(107,NULL,9,'Subject for Tell a Friend','2018-12-09 17:42:12',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(108,NULL,9,'Subject for Tell a Friend','2019-07-08 00:55:48',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(109,NULL,9,'Subject for Tell a Friend','2019-10-07 17:11:50',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(110,NULL,9,'Subject for Tell a Friend','2019-05-28 17:31:09',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(111,NULL,9,'Subject for Tell a Friend','2019-06-01 16:41:33',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(112,NULL,10,'Subject for Pledge Acknowledgment','2019-09-07 02:56:13',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(113,NULL,9,'Subject for Tell a Friend','2019-09-19 01:40:06',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(114,NULL,9,'Subject for Tell a Friend','2019-08-22 08:50:02',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(115,NULL,9,'Subject for Tell a Friend','2019-07-03 23:04:19',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(116,NULL,9,'Subject for Tell a Friend','2019-07-28 04:09:55',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(117,NULL,9,'Subject for Tell a Friend','2019-05-23 03:18:22',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(118,NULL,9,'Subject for Tell a Friend','2019-08-14 12:46:34',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(119,NULL,10,'Subject for Pledge Acknowledgment','2019-11-03 04:27:38',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(120,NULL,10,'Subject for Pledge Acknowledgment','2018-12-09 12:11:37',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(121,NULL,9,'Subject for Tell a Friend','2019-01-25 05:05:09',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(122,NULL,9,'Subject for Tell a Friend','2019-03-17 11:40:03',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(123,NULL,9,'Subject for Tell a Friend','2019-03-22 03:41:48',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(124,NULL,9,'Subject for Tell a Friend','2018-12-09 12:28:32',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(125,NULL,10,'Subject for Pledge Acknowledgment','2019-01-01 01:27:18',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(126,NULL,10,'Subject for Pledge Acknowledgment','2019-04-11 12:12:17',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(127,NULL,9,'Subject for Tell a Friend','2019-09-28 01:28:12',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(128,NULL,9,'Subject for Tell a Friend','2019-01-16 14:47:17',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(129,NULL,9,'Subject for Tell a Friend','2019-06-22 15:21:25',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(130,NULL,10,'Subject for Pledge Acknowledgment','2019-11-22 08:19:07',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(131,NULL,9,'Subject for Tell a Friend','2019-01-12 22:31:25',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(132,NULL,9,'Subject for Tell a Friend','2019-05-16 19:52:35',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(133,NULL,10,'Subject for Pledge Acknowledgment','2019-08-20 17:29:28',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(134,NULL,9,'Subject for Tell a Friend','2019-03-26 14:26:03',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(135,NULL,10,'Subject for Pledge Acknowledgment','2019-03-05 09:40:33',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(136,NULL,10,'Subject for Pledge Acknowledgment','2019-10-05 03:14:22',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(137,NULL,9,'Subject for Tell a Friend','2019-02-21 13:39:44',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(138,NULL,10,'Subject for Pledge Acknowledgment','2019-11-02 03:59:57',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(139,NULL,10,'Subject for Pledge Acknowledgment','2019-02-16 04:14:02',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(140,NULL,9,'Subject for Tell a Friend','2019-04-14 12:33:18',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(141,NULL,10,'Subject for Pledge Acknowledgment','2019-08-06 13:29:15',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(142,NULL,10,'Subject for Pledge Acknowledgment','2019-05-05 08:23:50',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(143,NULL,9,'Subject for Tell a Friend','2019-06-22 22:15:03',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(144,NULL,9,'Subject for Tell a Friend','2019-05-01 01:44:21',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(145,NULL,9,'Subject for Tell a Friend','2019-05-12 18:53:13',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(146,NULL,9,'Subject for Tell a Friend','2018-12-13 01:20:36',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(147,NULL,9,'Subject for Tell a Friend','2019-08-21 06:53:01',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(148,NULL,10,'Subject for Pledge Acknowledgment','2019-11-05 12:18:15',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(149,NULL,9,'Subject for Tell a Friend','2019-09-06 01:58:02',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(150,NULL,10,'Subject for Pledge Acknowledgment','2019-07-22 13:32:04',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(151,NULL,10,'Subject for Pledge Acknowledgment','2019-04-08 02:23:13',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(152,NULL,10,'Subject for Pledge Acknowledgment','2019-11-10 12:55:01',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(153,NULL,10,'Subject for Pledge Acknowledgment','2019-09-20 14:03:44',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(154,NULL,10,'Subject for Pledge Acknowledgment','2019-01-21 07:56:40',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(155,NULL,9,'Subject for Tell a Friend','2019-11-27 02:32:30',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(156,NULL,10,'Subject for Pledge Acknowledgment','2019-11-24 09:52:16',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(157,NULL,9,'Subject for Tell a Friend','2019-04-04 00:04:57',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(158,NULL,10,'Subject for Pledge Acknowledgment','2019-01-20 02:27:27',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(159,NULL,10,'Subject for Pledge Acknowledgment','2019-08-14 11:11:11',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(160,NULL,10,'Subject for Pledge Acknowledgment','2019-11-16 04:49:32',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(161,NULL,9,'Subject for Tell a Friend','2019-09-03 20:00:11',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(162,NULL,10,'Subject for Pledge Acknowledgment','2019-05-10 15:24:25',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(163,NULL,9,'Subject for Tell a Friend','2019-06-30 05:43:12',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(164,NULL,9,'Subject for Tell a Friend','2019-06-03 09:17:42',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(165,NULL,10,'Subject for Pledge Acknowledgment','2019-01-23 19:27:09',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(166,NULL,9,'Subject for Tell a Friend','2019-05-21 13:32:18',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(167,NULL,9,'Subject for Tell a Friend','2019-09-29 15:54:20',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(168,NULL,10,'Subject for Pledge Acknowledgment','2019-08-10 02:11:55',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(169,NULL,9,'Subject for Tell a Friend','2019-03-29 13:55:06',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(170,NULL,10,'Subject for Pledge Acknowledgment','2019-10-27 11:59:23',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(171,NULL,9,'Subject for Tell a Friend','2019-06-12 05:56:58',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(172,NULL,9,'Subject for Tell a Friend','2018-12-15 07:02:26',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(173,NULL,10,'Subject for Pledge Acknowledgment','2018-11-29 10:25:08',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(174,NULL,9,'Subject for Tell a Friend','2019-08-03 15:35:35',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(175,NULL,9,'Subject for Tell a Friend','2018-12-05 22:28:45',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(176,NULL,10,'Subject for Pledge Acknowledgment','2019-11-06 19:50:12',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(177,NULL,10,'Subject for Pledge Acknowledgment','2019-05-17 07:10:53',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(178,NULL,9,'Subject for Tell a Friend','2019-10-07 15:25:43',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(179,NULL,10,'Subject for Pledge Acknowledgment','2019-02-11 20:10:22',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(180,NULL,10,'Subject for Pledge Acknowledgment','2019-09-09 20:32:24',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(181,NULL,9,'Subject for Tell a Friend','2018-12-08 02:18:17',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(182,NULL,9,'Subject for Tell a Friend','2019-11-12 15:10:54',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(183,NULL,9,'Subject for Tell a Friend','2019-06-25 15:07:34',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(184,NULL,9,'Subject for Tell a Friend','2019-07-29 21:16:30',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(185,NULL,9,'Subject for Tell a Friend','2019-09-13 19:01:09',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(186,NULL,10,'Subject for Pledge Acknowledgment','2018-12-23 04:14:17',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(187,NULL,10,'Subject for Pledge Acknowledgment','2018-12-25 21:24:13',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(188,NULL,9,'Subject for Tell a Friend','2019-06-27 21:49:30',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(189,NULL,10,'Subject for Pledge Acknowledgment','2019-05-14 09:14:30',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(190,NULL,9,'Subject for Tell a Friend','2018-12-29 09:20:53',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(191,NULL,9,'Subject for Tell a Friend','2019-01-14 23:37:35',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(192,NULL,10,'Subject for Pledge Acknowledgment','2019-10-23 03:29:56',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(193,NULL,10,'Subject for Pledge Acknowledgment','2019-01-01 03:56:33',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(194,NULL,10,'Subject for Pledge Acknowledgment','2019-05-13 20:22:17',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(195,NULL,9,'Subject for Tell a Friend','2018-12-26 02:28:08',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(196,NULL,9,'Subject for Tell a Friend','2019-04-21 10:11:32',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(197,NULL,9,'Subject for Tell a Friend','2019-03-13 03:53:51',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(198,NULL,10,'Subject for Pledge Acknowledgment','2019-03-05 01:25:32',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(199,NULL,10,'Subject for Pledge Acknowledgment','2019-09-24 01:41:30',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(200,NULL,10,'Subject for Pledge Acknowledgment','2019-10-28 08:26:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(201,NULL,9,'Subject for Tell a Friend','2019-01-07 16:49:15',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(202,NULL,9,'Subject for Tell a Friend','2019-07-02 15:57:48',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(203,NULL,10,'Subject for Pledge Acknowledgment','2019-11-09 11:57:31',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(204,NULL,10,'Subject for Pledge Acknowledgment','2019-06-09 08:26:31',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(205,NULL,9,'Subject for Tell a Friend','2019-09-22 12:57:30',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(206,NULL,10,'Subject for Pledge Acknowledgment','2019-03-02 05:13:59',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(207,NULL,10,'Subject for Pledge Acknowledgment','2019-09-03 15:26:50',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(208,NULL,9,'Subject for Tell a Friend','2019-02-24 18:57:02',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(209,NULL,10,'Subject for Pledge Acknowledgment','2019-09-19 22:52:17',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(210,NULL,9,'Subject for Tell a Friend','2019-08-01 05:19:29',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(211,NULL,10,'Subject for Pledge Acknowledgment','2019-08-31 21:38:25',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(212,NULL,10,'Subject for Pledge Acknowledgment','2019-02-26 08:30:41',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(213,NULL,10,'Subject for Pledge Acknowledgment','2019-06-30 17:52:43',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(214,NULL,10,'Subject for Pledge Acknowledgment','2019-09-11 10:13:55',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(215,NULL,9,'Subject for Tell a Friend','2019-02-05 09:38:30',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(216,NULL,10,'Subject for Pledge Acknowledgment','2019-11-11 00:55:31',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(217,NULL,10,'Subject for Pledge Acknowledgment','2019-08-11 07:38:54',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(218,NULL,10,'Subject for Pledge Acknowledgment','2019-01-27 01:18:21',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(219,NULL,9,'Subject for Tell a Friend','2019-09-04 01:40:48',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(220,NULL,10,'Subject for Pledge Acknowledgment','2019-10-15 07:16:05',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(221,NULL,9,'Subject for Tell a Friend','2019-01-20 20:48:46',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(222,NULL,9,'Subject for Tell a Friend','2018-12-02 18:37:10',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(223,NULL,10,'Subject for Pledge Acknowledgment','2019-04-12 03:02:36',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(224,NULL,10,'Subject for Pledge Acknowledgment','2018-12-30 02:29:58',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(225,NULL,10,'Subject for Pledge Acknowledgment','2019-05-26 22:29:05',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(226,NULL,10,'Subject for Pledge Acknowledgment','2019-10-14 01:02:38',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(227,NULL,9,'Subject for Tell a Friend','2019-04-27 23:06:16',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(228,NULL,10,'Subject for Pledge Acknowledgment','2018-12-16 21:16:35',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(229,NULL,10,'Subject for Pledge Acknowledgment','2019-04-26 10:24:51',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(230,NULL,9,'Subject for Tell a Friend','2019-01-22 12:09:55',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(231,NULL,9,'Subject for Tell a Friend','2019-08-11 17:53:04',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(232,NULL,9,'Subject for Tell a Friend','2019-11-28 14:31:40',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(233,NULL,9,'Subject for Tell a Friend','2019-04-29 07:35:32',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(234,NULL,9,'Subject for Tell a Friend','2019-04-26 02:25:40',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(235,NULL,9,'Subject for Tell a Friend','2019-07-31 20:27:01',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(236,NULL,10,'Subject for Pledge Acknowledgment','2019-11-05 07:08:03',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(237,NULL,9,'Subject for Tell a Friend','2019-08-26 18:53:33',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(238,NULL,10,'Subject for Pledge Acknowledgment','2019-07-30 21:59:39',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(239,NULL,9,'Subject for Tell a Friend','2019-04-19 17:41:29',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(240,NULL,10,'Subject for Pledge Acknowledgment','2018-12-30 06:22:13',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(241,NULL,9,'Subject for Tell a Friend','2018-12-25 21:24:16',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(242,NULL,9,'Subject for Tell a Friend','2019-07-21 04:43:17',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(243,NULL,9,'Subject for Tell a Friend','2019-05-10 04:24:13',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(244,NULL,9,'Subject for Tell a Friend','2019-04-22 07:45:54',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(245,NULL,10,'Subject for Pledge Acknowledgment','2019-11-15 01:53:53',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(246,NULL,10,'Subject for Pledge Acknowledgment','2019-05-09 23:47:04',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(247,NULL,10,'Subject for Pledge Acknowledgment','2018-12-10 11:16:44',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(248,NULL,10,'Subject for Pledge Acknowledgment','2019-04-05 19:59:19',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(249,NULL,10,'Subject for Pledge Acknowledgment','2019-11-17 03:10:16',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(250,NULL,9,'Subject for Tell a Friend','2019-03-28 03:16:54',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(251,NULL,10,'Subject for Pledge Acknowledgment','2019-11-12 23:24:36',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(252,NULL,10,'Subject for Pledge Acknowledgment','2019-10-25 04:03:39',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(253,NULL,9,'Subject for Tell a Friend','2019-05-29 03:48:21',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(254,NULL,9,'Subject for Tell a Friend','2019-05-22 20:35:22',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(255,NULL,10,'Subject for Pledge Acknowledgment','2019-01-04 12:38:53',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(256,NULL,9,'Subject for Tell a Friend','2019-08-22 12:14:29',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(257,NULL,10,'Subject for Pledge Acknowledgment','2019-09-24 04:04:40',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(258,NULL,9,'Subject for Tell a Friend','2019-11-05 13:54:32',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(259,NULL,9,'Subject for Tell a Friend','2019-02-03 17:59:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(260,NULL,9,'Subject for Tell a Friend','2019-05-01 01:46:01',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(261,NULL,10,'Subject for Pledge Acknowledgment','2019-09-04 07:56:48',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(262,NULL,9,'Subject for Tell a Friend','2019-02-06 17:05:55',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(263,NULL,10,'Subject for Pledge Acknowledgment','2019-04-18 14:02:06',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(264,NULL,9,'Subject for Tell a Friend','2019-06-17 19:16:46',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(265,NULL,10,'Subject for Pledge Acknowledgment','2018-12-19 16:29:07',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(266,NULL,10,'Subject for Pledge Acknowledgment','2019-02-11 22:47:41',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(267,NULL,9,'Subject for Tell a Friend','2019-07-28 16:55:05',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(268,NULL,10,'Subject for Pledge Acknowledgment','2019-08-30 10:11:30',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(269,NULL,10,'Subject for Pledge Acknowledgment','2019-09-02 20:13:32',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(270,NULL,10,'Subject for Pledge Acknowledgment','2019-05-11 15:13:48',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(271,NULL,9,'Subject for Tell a Friend','2018-11-30 04:36:18',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(272,NULL,9,'Subject for Tell a Friend','2019-03-19 14:51:06',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(273,NULL,9,'Subject for Tell a Friend','2019-11-14 11:57:53',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(274,NULL,9,'Subject for Tell a Friend','2019-02-21 18:00:05',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(275,NULL,9,'Subject for Tell a Friend','2018-12-06 06:24:30',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(276,NULL,9,'Subject for Tell a Friend','2019-10-10 14:36:16',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(277,NULL,9,'Subject for Tell a Friend','2019-02-10 18:50:36',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(278,NULL,10,'Subject for Pledge Acknowledgment','2019-09-24 23:29:23',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(279,NULL,9,'Subject for Tell a Friend','2019-01-10 09:44:15',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(280,NULL,9,'Subject for Tell a Friend','2019-09-14 14:08:40',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(281,NULL,9,'Subject for Tell a Friend','2019-05-15 07:59:37',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(282,NULL,9,'Subject for Tell a Friend','2019-04-10 23:13:58',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(283,NULL,10,'Subject for Pledge Acknowledgment','2019-10-07 10:49:43',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(284,NULL,9,'Subject for Tell a Friend','2019-11-02 19:22:29',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(285,NULL,10,'Subject for Pledge Acknowledgment','2019-08-30 21:33:32',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(286,NULL,10,'Subject for Pledge Acknowledgment','2019-06-17 18:11:02',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(287,NULL,10,'Subject for Pledge Acknowledgment','2019-11-18 06:04:41',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(288,NULL,10,'Subject for Pledge Acknowledgment','2019-03-07 04:50:56',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(289,NULL,10,'Subject for Pledge Acknowledgment','2019-06-21 06:28:46',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(290,NULL,9,'Subject for Tell a Friend','2019-04-30 07:30:25',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(291,NULL,10,'Subject for Pledge Acknowledgment','2019-01-14 17:24:46',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(292,NULL,9,'Subject for Tell a Friend','2019-05-24 18:42:42',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(293,NULL,10,'Subject for Pledge Acknowledgment','2019-11-10 15:11:21',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(294,NULL,10,'Subject for Pledge Acknowledgment','2019-06-20 12:26:34',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(295,NULL,9,'Subject for Tell a Friend','2018-12-21 06:38:05',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(296,NULL,9,'Subject for Tell a Friend','2018-12-22 12:35:26',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(297,NULL,10,'Subject for Pledge Acknowledgment','2019-02-04 03:02:06',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(298,NULL,10,'Subject for Pledge Acknowledgment','2018-12-12 05:11:31',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(299,NULL,10,'Subject for Pledge Acknowledgment','2018-12-18 13:59:29',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(300,NULL,10,'Subject for Pledge Acknowledgment','2018-12-14 00:47:48',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(301,NULL,10,'Subject for Pledge Acknowledgment','2019-10-06 22:06:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(302,NULL,9,'Subject for Tell a Friend','2019-11-08 11:20:36',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(303,NULL,9,'Subject for Tell a Friend','2019-11-27 21:39:30',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(304,NULL,9,'Subject for Tell a Friend','2019-09-29 12:31:40',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(305,NULL,9,'Subject for Tell a Friend','2019-02-24 15:36:13',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(306,NULL,9,'Subject for Tell a Friend','2019-03-03 15:52:12',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(307,NULL,9,'Subject for Tell a Friend','2019-10-22 15:56:34',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(308,NULL,9,'Subject for Tell a Friend','2019-10-29 16:09:56',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(309,NULL,10,'Subject for Pledge Acknowledgment','2019-02-13 04:09:59',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(310,NULL,10,'Subject for Pledge Acknowledgment','2018-12-19 07:37:33',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(311,NULL,10,'Subject for Pledge Acknowledgment','2018-12-04 14:14:46',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(312,NULL,9,'Subject for Tell a Friend','2019-04-14 07:12:44',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(313,NULL,10,'Subject for Pledge Acknowledgment','2019-02-03 04:21:16',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(314,NULL,10,'Subject for Pledge Acknowledgment','2019-10-05 22:41:41',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(315,NULL,9,'Subject for Tell a Friend','2019-07-17 03:48:16',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(316,NULL,10,'Subject for Pledge Acknowledgment','2019-04-18 17:46:51',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(317,NULL,9,'Subject for Tell a Friend','2019-06-10 09:39:59',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(318,NULL,10,'Subject for Pledge Acknowledgment','2019-10-23 05:17:45',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(319,NULL,10,'Subject for Pledge Acknowledgment','2018-12-14 15:52:03',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(320,NULL,9,'Subject for Tell a Friend','2019-03-28 17:26:05',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(321,NULL,10,'Subject for Pledge Acknowledgment','2019-07-16 14:01:47',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(322,NULL,10,'Subject for Pledge Acknowledgment','2019-08-04 23:34:14',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(323,NULL,10,'Subject for Pledge Acknowledgment','2019-09-20 15:43:45',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(324,NULL,10,'Subject for Pledge Acknowledgment','2019-03-02 06:14:14',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(325,NULL,10,'Subject for Pledge Acknowledgment','2019-08-30 23:09:12',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(326,NULL,10,'Subject for Pledge Acknowledgment','2019-04-11 08:45:04',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(327,NULL,9,'Subject for Tell a Friend','2019-07-15 21:02:48',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(328,NULL,9,'Subject for Tell a Friend','2018-12-07 22:25:51',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(329,NULL,10,'Subject for Pledge Acknowledgment','2019-04-02 02:19:54',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(330,NULL,9,'Subject for Tell a Friend','2019-08-31 00:50:51',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(331,NULL,10,'Subject for Pledge Acknowledgment','2019-02-26 02:12:10',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(332,NULL,10,'Subject for Pledge Acknowledgment','2018-12-15 10:35:12',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(333,NULL,9,'Subject for Tell a Friend','2019-10-06 09:53:02',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(334,NULL,10,'Subject for Pledge Acknowledgment','2019-04-07 10:26:04',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(335,NULL,10,'Subject for Pledge Acknowledgment','2019-01-14 05:31:51',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(336,NULL,10,'Subject for Pledge Acknowledgment','2019-08-12 17:13:06',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(337,NULL,9,'Subject for Tell a Friend','2019-06-07 09:59:21',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(338,NULL,10,'Subject for Pledge Acknowledgment','2018-12-20 01:07:12',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(339,NULL,9,'Subject for Tell a Friend','2019-09-14 14:58:37',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(340,NULL,10,'Subject for Pledge Acknowledgment','2019-04-19 23:05:22',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(341,NULL,9,'Subject for Tell a Friend','2019-07-09 00:04:24',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(342,NULL,10,'Subject for Pledge Acknowledgment','2019-07-30 20:07:58',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(343,NULL,9,'Subject for Tell a Friend','2019-04-04 19:37:18',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(344,NULL,10,'Subject for Pledge Acknowledgment','2019-05-18 10:32:34',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(345,NULL,9,'Subject for Tell a Friend','2019-04-09 15:03:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(346,NULL,10,'Subject for Pledge Acknowledgment','2019-04-10 15:05:55',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(347,NULL,9,'Subject for Tell a Friend','2019-10-22 18:46:55',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(348,NULL,10,'Subject for Pledge Acknowledgment','2019-07-14 16:49:14',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(349,NULL,9,'Subject for Tell a Friend','2019-08-04 11:46:43',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(350,NULL,10,'Subject for Pledge Acknowledgment','2019-08-31 14:01:02',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(351,NULL,10,'Subject for Pledge Acknowledgment','2018-12-15 16:30:30',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(352,NULL,9,'Subject for Tell a Friend','2019-09-03 13:37:12',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(353,NULL,10,'Subject for Pledge Acknowledgment','2019-11-15 04:07:12',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(354,NULL,10,'Subject for Pledge Acknowledgment','2019-01-16 19:45:01',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(355,NULL,9,'Subject for Tell a Friend','2019-09-29 08:48:05',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(356,NULL,9,'Subject for Tell a Friend','2019-08-26 22:13:30',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(357,NULL,9,'Subject for Tell a Friend','2019-01-19 01:16:45',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(358,NULL,10,'Subject for Pledge Acknowledgment','2019-07-09 10:00:19',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(359,NULL,9,'Subject for Tell a Friend','2019-04-02 08:39:09',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(360,NULL,9,'Subject for Tell a Friend','2019-07-23 21:27:35',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(361,NULL,10,'Subject for Pledge Acknowledgment','2018-12-05 08:38:45',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(362,NULL,9,'Subject for Tell a Friend','2019-11-15 07:03:36',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(363,NULL,10,'Subject for Pledge Acknowledgment','2019-08-30 14:34:15',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(364,NULL,10,'Subject for Pledge Acknowledgment','2019-04-20 10:31:57',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(365,NULL,10,'Subject for Pledge Acknowledgment','2019-03-24 21:55:34',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(366,NULL,9,'Subject for Tell a Friend','2019-02-14 05:59:33',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(367,NULL,9,'Subject for Tell a Friend','2019-10-24 04:10:04',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(368,NULL,9,'Subject for Tell a Friend','2019-08-01 07:52:36',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(369,NULL,9,'Subject for Tell a Friend','2019-07-31 14:36:15',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(370,NULL,9,'Subject for Tell a Friend','2018-12-27 17:39:46',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(371,NULL,9,'Subject for Tell a Friend','2019-04-15 04:18:49',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(372,NULL,9,'Subject for Tell a Friend','2019-03-26 20:56:12',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(373,NULL,9,'Subject for Tell a Friend','2019-10-25 04:40:05',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(374,NULL,10,'Subject for Pledge Acknowledgment','2019-11-10 05:48:48',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(375,NULL,9,'Subject for Tell a Friend','2019-03-15 19:27:36',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:51','2019-11-28 19:55:51'),(376,NULL,9,'Subject for Tell a Friend','2019-07-08 07:59:10',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(377,NULL,10,'Subject for Pledge Acknowledgment','2019-08-20 07:49:07',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(378,NULL,9,'Subject for Tell a Friend','2018-12-23 18:19:27',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(379,NULL,10,'Subject for Pledge Acknowledgment','2019-01-28 12:00:29',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(380,NULL,10,'Subject for Pledge Acknowledgment','2019-05-01 23:37:54',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(381,NULL,9,'Subject for Tell a Friend','2018-12-06 02:00:02',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(382,NULL,10,'Subject for Pledge Acknowledgment','2019-09-22 09:59:36',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(383,NULL,10,'Subject for Pledge Acknowledgment','2019-07-31 11:08:17',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(384,NULL,10,'Subject for Pledge Acknowledgment','2019-10-08 02:17:42',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(385,NULL,10,'Subject for Pledge Acknowledgment','2019-10-16 00:34:13',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(386,NULL,10,'Subject for Pledge Acknowledgment','2019-03-05 03:45:17',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(387,NULL,10,'Subject for Pledge Acknowledgment','2019-01-06 21:41:38',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(388,NULL,9,'Subject for Tell a Friend','2018-12-24 08:02:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(389,NULL,9,'Subject for Tell a Friend','2019-07-06 02:17:21',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(390,NULL,10,'Subject for Pledge Acknowledgment','2019-08-26 23:44:16',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(391,NULL,10,'Subject for Pledge Acknowledgment','2019-04-30 01:35:05',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(392,NULL,10,'Subject for Pledge Acknowledgment','2019-04-03 14:33:58',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(393,NULL,9,'Subject for Tell a Friend','2019-05-04 00:33:09',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(394,NULL,10,'Subject for Pledge Acknowledgment','2018-12-20 22:07:20',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(395,NULL,10,'Subject for Pledge Acknowledgment','2019-03-15 02:14:30',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(396,NULL,10,'Subject for Pledge Acknowledgment','2019-06-01 14:54:46',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(397,NULL,9,'Subject for Tell a Friend','2019-06-19 07:05:24',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(398,NULL,9,'Subject for Tell a Friend','2019-10-14 04:23:57',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(399,NULL,10,'Subject for Pledge Acknowledgment','2019-05-02 21:22:38',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(400,NULL,10,'Subject for Pledge Acknowledgment','2019-07-06 09:45:15',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(401,NULL,9,'Subject for Tell a Friend','2019-09-20 19:32:39',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(402,NULL,9,'Subject for Tell a Friend','2019-11-16 17:11:08',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(403,NULL,9,'Subject for Tell a Friend','2019-03-03 02:15:21',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(404,NULL,10,'Subject for Pledge Acknowledgment','2018-12-12 16:38:26',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(405,NULL,10,'Subject for Pledge Acknowledgment','2018-12-05 01:14:50',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(406,NULL,10,'Subject for Pledge Acknowledgment','2019-09-21 16:20:56',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(407,NULL,10,'Subject for Pledge Acknowledgment','2019-10-05 22:09:37',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(408,NULL,10,'Subject for Pledge Acknowledgment','2019-08-25 17:14:31',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(409,NULL,9,'Subject for Tell a Friend','2019-06-17 18:34:25',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(410,NULL,9,'Subject for Tell a Friend','2018-12-07 16:01:35',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(411,NULL,9,'Subject for Tell a Friend','2019-03-31 08:15:46',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(412,NULL,9,'Subject for Tell a Friend','2019-07-12 22:25:18',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(413,NULL,9,'Subject for Tell a Friend','2019-10-23 21:02:21',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(414,NULL,10,'Subject for Pledge Acknowledgment','2019-02-14 01:34:28',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(415,NULL,10,'Subject for Pledge Acknowledgment','2019-08-17 14:39:08',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(416,NULL,10,'Subject for Pledge Acknowledgment','2019-02-21 04:35:29',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(417,NULL,9,'Subject for Tell a Friend','2019-07-23 19:59:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(418,NULL,10,'Subject for Pledge Acknowledgment','2019-01-02 02:00:01',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(419,NULL,9,'Subject for Tell a Friend','2019-10-28 21:56:53',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(420,NULL,10,'Subject for Pledge Acknowledgment','2019-08-05 08:48:54',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(421,NULL,10,'Subject for Pledge Acknowledgment','2019-08-16 21:22:06',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(422,NULL,9,'Subject for Tell a Friend','2019-11-03 15:56:12',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(423,NULL,10,'Subject for Pledge Acknowledgment','2019-04-13 20:10:29',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(424,NULL,9,'Subject for Tell a Friend','2019-08-24 15:01:57',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(425,NULL,9,'Subject for Tell a Friend','2019-08-27 21:47:31',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(426,NULL,9,'Subject for Tell a Friend','2019-07-25 01:47:15',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(427,NULL,9,'Subject for Tell a Friend','2019-01-05 13:03:25',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(428,NULL,10,'Subject for Pledge Acknowledgment','2019-02-21 09:40:50',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(429,NULL,9,'Subject for Tell a Friend','2019-03-22 16:45:51',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(430,NULL,9,'Subject for Tell a Friend','2018-12-13 07:06:45',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(431,NULL,9,'Subject for Tell a Friend','2019-07-01 17:12:28',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(432,NULL,9,'Subject for Tell a Friend','2019-02-19 01:05:29',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(433,NULL,9,'Subject for Tell a Friend','2019-11-13 03:24:04',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(434,NULL,10,'Subject for Pledge Acknowledgment','2019-08-12 19:22:43',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(435,NULL,10,'Subject for Pledge Acknowledgment','2019-04-06 09:16:26',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(436,NULL,10,'Subject for Pledge Acknowledgment','2019-11-23 11:43:47',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(437,NULL,9,'Subject for Tell a Friend','2019-05-05 16:29:39',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(438,NULL,10,'Subject for Pledge Acknowledgment','2019-10-23 14:13:36',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(439,NULL,10,'Subject for Pledge Acknowledgment','2019-08-01 17:59:10',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(440,NULL,9,'Subject for Tell a Friend','2019-07-15 07:43:06',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(441,NULL,9,'Subject for Tell a Friend','2019-02-21 11:09:20',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(442,NULL,9,'Subject for Tell a Friend','2019-07-14 23:32:54',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(443,NULL,10,'Subject for Pledge Acknowledgment','2019-11-15 12:23:58',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(444,NULL,10,'Subject for Pledge Acknowledgment','2019-07-03 08:52:37',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(445,NULL,10,'Subject for Pledge Acknowledgment','2019-03-25 01:17:16',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(446,NULL,10,'Subject for Pledge Acknowledgment','2019-09-18 15:57:36',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(447,NULL,9,'Subject for Tell a Friend','2019-03-24 06:09:39',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(448,NULL,10,'Subject for Pledge Acknowledgment','2019-05-26 05:02:37',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(449,NULL,10,'Subject for Pledge Acknowledgment','2019-11-08 11:13:04',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(450,NULL,10,'Subject for Pledge Acknowledgment','2019-04-12 04:46:05',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(451,1,6,'$ 125.00-Apr 2007 Mailer 1','2010-04-11 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(452,2,6,'$ 50.00-Online: Save the Penguins','2010-03-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(453,3,6,'$ 25.00-Apr 2007 Mailer 1','2010-04-29 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(454,4,6,'$ 50.00-Apr 2007 Mailer 1','2010-04-11 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(455,5,6,'$ 500.00-Apr 2007 Mailer 1','2010-04-15 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(456,6,6,'$ 175.00-Apr 2007 Mailer 1','2010-04-11 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(457,7,6,'$ 50.00-Online: Save the Penguins','2010-03-27 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(458,8,6,'$ 10.00-Online: Save the Penguins','2010-03-08 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(459,9,6,'$ 250.00-Online: Save the Penguins','2010-04-22 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(460,10,6,NULL,'2009-07-01 11:53:50',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(461,11,6,NULL,'2009-07-01 12:55:41',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(462,12,6,NULL,'2009-10-01 11:53:50',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(463,13,6,NULL,'2009-12-01 12:55:41',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(464,1,7,'General','2019-11-28 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(465,2,7,'Student','2019-11-27 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(466,3,7,'General','2019-11-26 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(467,4,7,'Student','2019-11-25 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(468,5,7,'General','2017-10-27 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(469,6,7,'Student','2019-11-23 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(470,7,7,'General','2019-11-22 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(471,8,7,'Student','2019-11-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(472,9,7,'General','2019-11-20 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(473,10,7,'General','2017-09-17 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(474,11,7,'Lifetime','2019-11-18 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(475,12,7,'Student','2019-11-17 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(476,13,7,'General','2019-11-16 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(477,14,7,'Student','2019-11-15 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(478,15,7,'Student','2018-11-14 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(479,16,7,'Student','2019-11-13 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(480,17,7,'General','2019-11-12 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(481,18,7,'Student','2019-11-11 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(482,19,7,'General','2019-11-10 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(483,20,7,'General','2017-06-29 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(484,21,7,'General','2019-11-08 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(485,22,7,'Lifetime','2019-11-07 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(486,23,7,'General','2019-11-06 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(487,24,7,'Student','2019-11-05 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(488,25,7,'General','2017-05-20 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(489,26,7,'Student','2019-11-03 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(490,27,7,'General','2019-11-02 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(491,28,7,'Student','2019-11-01 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(492,29,7,'General','2019-10-31 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(493,30,7,'General','2017-04-10 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(494,14,6,'$ 100.00 - General Membership: Offline signup','2019-11-29 08:55:52',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(495,15,6,'$ 100.00 - General Membership: Offline signup','2019-11-29 08:55:52',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(496,16,6,'$ 100.00 - General Membership: Offline signup','2019-11-29 08:55:52',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(497,17,6,'$ 100.00 - General Membership: Offline signup','2019-11-29 08:55:52',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(498,18,6,'$ 100.00 - General Membership: Offline signup','2019-11-29 08:55:52',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(499,19,6,'$ 100.00 - General Membership: Offline signup','2019-11-29 08:55:52',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(500,20,6,'$ 100.00 - General Membership: Offline signup','2019-11-29 08:55:52',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(501,21,6,'$ 100.00 - General Membership: Offline signup','2019-11-29 08:55:52',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(502,22,6,'$ 100.00 - General Membership: Offline signup','2019-11-29 08:55:52',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(503,23,6,'$ 100.00 - General Membership: Offline signup','2019-11-29 08:55:52',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(504,24,6,'$ 100.00 - General Membership: Offline signup','2019-11-29 08:55:52',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(505,25,6,'$ 100.00 - General Membership: Offline signup','2019-11-29 08:55:52',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(506,26,6,'$ 100.00 - General Membership: Offline signup','2019-11-29 08:55:52',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(507,27,6,'$ 100.00 - General Membership: Offline signup','2019-11-29 08:55:52',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(508,28,6,'$ 100.00 - General Membership: Offline signup','2019-11-29 08:55:52',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(509,29,6,'$ 100.00 - General Membership: Offline signup','2019-11-29 08:55:52',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(510,30,6,'$ 50.00 - Student Membership: Offline signup','2019-11-29 08:55:52',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(511,31,6,'$ 50.00 - Student Membership: Offline signup','2019-11-29 08:55:52',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(512,32,6,'$ 50.00 - Student Membership: Offline signup','2019-11-29 08:55:52',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(513,33,6,'$ 50.00 - Student Membership: Offline signup','2019-11-29 08:55:52',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(514,34,6,'$ 50.00 - Student Membership: Offline signup','2019-11-29 08:55:52',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(515,35,6,'$ 50.00 - Student Membership: Offline signup','2019-11-29 08:55:52',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(516,36,6,'$ 50.00 - Student Membership: Offline signup','2019-11-29 08:55:52',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(517,37,6,'$ 50.00 - Student Membership: Offline signup','2019-11-29 08:55:52',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(518,38,6,'$ 50.00 - Student Membership: Offline signup','2019-11-29 08:55:52',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(519,39,6,'$ 50.00 - Student Membership: Offline signup','2019-11-29 08:55:52',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(520,40,6,'$ 50.00 - Student Membership: Offline signup','2019-11-29 08:55:52',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(521,41,6,'$ 50.00 - Student Membership: Offline signup','2019-11-29 08:55:52',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(522,42,6,'$ 1200.00 - Lifetime Membership: Offline signup','2019-11-29 08:55:52',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(523,43,6,'$ 1200.00 - Lifetime Membership: Offline signup','2019-11-29 08:55:52',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(525,1,5,'NULL','2009-01-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(526,2,5,'NULL','2008-05-07 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(527,3,5,'NULL','2008-05-05 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(528,4,5,'NULL','2008-10-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(529,5,5,'NULL','2008-01-10 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(530,6,5,'NULL','2008-03-05 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(531,7,5,'NULL','2009-07-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(532,8,5,'NULL','2009-03-07 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(533,9,5,'NULL','2008-02-05 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(534,10,5,'NULL','2008-02-01 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(535,11,5,'NULL','2009-01-10 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(536,12,5,'NULL','2009-03-06 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(537,13,5,'NULL','2008-06-04 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(538,14,5,'NULL','2008-01-10 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(539,15,5,'NULL','2008-07-04 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(540,16,5,'NULL','2009-01-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(541,17,5,'NULL','2008-01-10 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(542,18,5,'NULL','2009-03-05 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(543,19,5,'NULL','2008-10-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(544,20,5,'NULL','2009-01-10 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(545,21,5,'NULL','2008-03-25 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(546,22,5,'NULL','2009-10-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(547,23,5,'NULL','2008-01-10 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(548,24,5,'NULL','2008-03-11 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(549,25,5,'NULL','2008-04-05 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(550,26,5,'NULL','2009-01-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(551,27,5,'NULL','2008-05-07 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(552,28,5,'NULL','2009-12-12 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(553,29,5,'NULL','2009-12-13 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(554,30,5,'NULL','2009-12-14 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(555,31,5,'NULL','2009-12-15 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(556,32,5,'NULL','2009-07-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(557,33,5,'NULL','2009-03-07 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(558,34,5,'NULL','2009-12-15 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(559,35,5,'NULL','2009-12-13 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(560,36,5,'NULL','2009-01-10 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(561,37,5,'NULL','2009-03-06 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(562,38,5,'NULL','2009-12-13 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(563,39,5,'NULL','2008-01-10 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(564,40,5,'NULL','2009-12-14 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(565,41,5,'NULL','2009-01-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(566,42,5,'NULL','2009-12-15 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(567,43,5,'NULL','2009-03-05 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(568,44,5,'NULL','2009-12-13 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(569,45,5,'NULL','2009-01-10 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(570,46,5,'NULL','2009-12-13 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(571,47,5,'NULL','2009-10-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(572,48,5,'NULL','2009-12-10 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(573,49,5,'NULL','2009-03-11 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(574,50,5,'NULL','2009-04-05 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(575,45,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2019-11-29 08:55:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(576,46,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2019-11-29 08:55:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(577,47,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2019-11-29 08:55:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(578,48,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2019-11-29 08:55:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(579,49,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2019-11-29 08:55:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(580,50,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2019-11-29 08:55:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(581,51,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2019-11-29 08:55:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(582,52,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2019-11-29 08:55:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(583,53,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2019-11-29 08:55:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(584,54,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2019-11-29 08:55:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(585,55,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2019-11-29 08:55:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(586,56,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2019-11-29 08:55:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(587,57,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2019-11-29 08:55:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(588,58,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2019-11-29 08:55:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(589,59,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2019-11-29 08:55:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(590,60,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2019-11-29 08:55:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(591,61,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2019-11-29 08:55:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(592,62,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2019-11-29 08:55:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(593,63,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2019-11-29 08:55:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(594,64,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2019-11-29 08:55:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(595,65,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2019-11-29 08:55:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(596,66,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2019-11-29 08:55:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(597,67,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2019-11-29 08:55:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(598,68,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2019-11-29 08:55:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(599,69,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2019-11-29 08:55:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(600,70,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2019-11-29 08:55:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(601,71,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2019-11-29 08:55:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(602,72,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2019-11-29 08:55:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(603,73,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2019-11-29 08:55:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(604,74,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2019-11-29 08:55:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(605,75,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2019-11-29 08:55:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(606,76,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2019-11-29 08:55:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(607,77,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2019-11-29 08:55:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(608,78,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2019-11-29 08:55:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(609,79,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2019-11-29 08:55:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(610,80,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2019-11-29 08:55:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(611,81,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2019-11-29 08:55:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(612,82,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2019-11-29 08:55:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(613,83,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2019-11-29 08:55:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(614,84,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2019-11-29 08:55:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(615,85,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2019-11-29 08:55:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(616,86,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2019-11-29 08:55:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(617,87,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2019-11-29 08:55:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(618,88,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2019-11-29 08:55:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(619,89,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2019-11-29 08:55:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(620,90,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2019-11-29 08:55:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(621,91,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2019-11-29 08:55:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(622,92,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2019-11-29 08:55:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(623,93,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2019-11-29 08:55:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52'),(624,94,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2019-11-29 08:55:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2019-11-28 19:55:52','2019-11-28 19:55:52');
+INSERT INTO `civicrm_activity` (`id`, `source_record_id`, `activity_type_id`, `subject`, `activity_date_time`, `duration`, `location`, `phone_id`, `phone_number`, `details`, `status_id`, `priority_id`, `parent_id`, `is_test`, `medium_id`, `is_auto`, `relationship_id`, `is_current_revision`, `original_id`, `result`, `is_deleted`, `campaign_id`, `engagement_level`, `weight`, `is_star`, `created_date`, `modified_date`) VALUES (1,NULL,10,'Subject for Pledge Acknowledgment','2019-05-01 03:33:07',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:50','2020-01-16 22:53:50'),(2,NULL,10,'Subject for Pledge Acknowledgment','2019-08-06 08:40:48',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:50','2020-01-16 22:53:50'),(3,NULL,9,'Subject for Tell a Friend','2019-08-18 23:49:06',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:50','2020-01-16 22:53:50'),(4,NULL,9,'Subject for Tell a Friend','2019-01-31 15:22:19',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:50','2020-01-16 22:53:50'),(5,NULL,10,'Subject for Pledge Acknowledgment','2019-06-06 18:04:41',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:50','2020-01-16 22:53:50'),(6,NULL,10,'Subject for Pledge Acknowledgment','2019-10-16 04:00:59',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:50','2020-01-16 22:53:50'),(7,NULL,10,'Subject for Pledge Acknowledgment','2019-05-28 16:16:54',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:50','2020-01-16 22:53:50'),(8,NULL,9,'Subject for Tell a Friend','2019-07-06 08:03:29',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:50','2020-01-16 22:53:50'),(9,NULL,10,'Subject for Pledge Acknowledgment','2019-09-11 16:12:11',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:50','2020-01-16 22:53:50'),(10,NULL,9,'Subject for Tell a Friend','2019-11-07 12:40:59',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:50','2020-01-16 22:53:50'),(11,NULL,10,'Subject for Pledge Acknowledgment','2019-11-17 15:47:47',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:50','2020-01-16 22:53:50'),(12,NULL,9,'Subject for Tell a Friend','2019-03-08 14:40:51',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:50','2020-01-16 22:53:50'),(13,NULL,9,'Subject for Tell a Friend','2019-09-27 17:26:40',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:50','2020-01-16 22:53:50'),(14,NULL,9,'Subject for Tell a Friend','2019-09-07 22:16:38',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:50','2020-01-16 22:53:50'),(15,NULL,9,'Subject for Tell a Friend','2019-04-12 08:19:23',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:50','2020-01-16 22:53:50'),(16,NULL,10,'Subject for Pledge Acknowledgment','2019-06-29 12:16:48',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:50','2020-01-16 22:53:50'),(17,NULL,10,'Subject for Pledge Acknowledgment','2019-04-28 08:58:45',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:50','2020-01-16 22:53:50'),(18,NULL,10,'Subject for Pledge Acknowledgment','2019-06-19 05:05:35',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:50','2020-01-16 22:53:50'),(19,NULL,9,'Subject for Tell a Friend','2019-03-25 06:42:56',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:50','2020-01-16 22:53:50'),(20,NULL,10,'Subject for Pledge Acknowledgment','2019-02-23 02:17:27',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:50','2020-01-16 22:53:50'),(21,NULL,10,'Subject for Pledge Acknowledgment','2019-07-22 11:00:03',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:50','2020-01-16 22:53:50'),(22,NULL,10,'Subject for Pledge Acknowledgment','2019-08-24 15:54:01',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:50','2020-01-16 22:53:50'),(23,NULL,9,'Subject for Tell a Friend','2019-07-30 20:51:08',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:50','2020-01-16 22:53:50'),(24,NULL,10,'Subject for Pledge Acknowledgment','2019-09-04 09:20:01',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:50','2020-01-16 22:53:50'),(25,NULL,9,'Subject for Tell a Friend','2019-11-13 17:25:40',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:50','2020-01-16 22:53:50'),(26,NULL,9,'Subject for Tell a Friend','2019-03-11 06:52:41',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:50','2020-01-16 22:53:50'),(27,NULL,10,'Subject for Pledge Acknowledgment','2019-03-25 20:31:33',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:50','2020-01-16 22:53:50'),(28,NULL,9,'Subject for Tell a Friend','2019-02-09 13:58:30',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:50','2020-01-16 22:53:50'),(29,NULL,10,'Subject for Pledge Acknowledgment','2020-01-10 03:20:03',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:50','2020-01-16 22:53:50'),(30,NULL,9,'Subject for Tell a Friend','2019-05-14 15:45:47',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:50','2020-01-16 22:53:50'),(31,NULL,10,'Subject for Pledge Acknowledgment','2019-05-16 07:58:55',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:50','2020-01-16 22:53:50'),(32,NULL,9,'Subject for Tell a Friend','2019-03-09 09:39:58',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:50','2020-01-16 22:53:50'),(33,NULL,9,'Subject for Tell a Friend','2019-02-25 12:01:58',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:50','2020-01-16 22:53:50'),(34,NULL,9,'Subject for Tell a Friend','2019-05-16 19:34:53',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:50','2020-01-16 22:53:50'),(35,NULL,9,'Subject for Tell a Friend','2019-11-21 11:59:25',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:50','2020-01-16 22:53:50'),(36,NULL,9,'Subject for Tell a Friend','2019-06-28 01:52:27',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(37,NULL,9,'Subject for Tell a Friend','2020-01-07 22:11:09',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(38,NULL,10,'Subject for Pledge Acknowledgment','2019-08-03 03:44:47',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(39,NULL,10,'Subject for Pledge Acknowledgment','2019-02-07 08:00:28',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(40,NULL,9,'Subject for Tell a Friend','2019-03-06 09:12:06',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(41,NULL,9,'Subject for Tell a Friend','2019-10-08 07:34:21',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(42,NULL,10,'Subject for Pledge Acknowledgment','2019-03-29 11:13:17',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(43,NULL,9,'Subject for Tell a Friend','2019-08-11 17:40:17',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(44,NULL,9,'Subject for Tell a Friend','2019-10-27 12:36:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(45,NULL,10,'Subject for Pledge Acknowledgment','2019-02-12 21:07:13',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(46,NULL,9,'Subject for Tell a Friend','2019-09-20 16:00:19',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(47,NULL,10,'Subject for Pledge Acknowledgment','2019-06-17 15:41:06',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(48,NULL,10,'Subject for Pledge Acknowledgment','2019-09-08 06:22:03',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(49,NULL,10,'Subject for Pledge Acknowledgment','2019-02-27 01:39:41',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(50,NULL,9,'Subject for Tell a Friend','2019-12-17 07:31:17',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(51,NULL,9,'Subject for Tell a Friend','2020-01-03 05:21:30',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(52,NULL,10,'Subject for Pledge Acknowledgment','2019-12-16 02:23:17',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(53,NULL,10,'Subject for Pledge Acknowledgment','2019-09-20 16:54:19',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(54,NULL,10,'Subject for Pledge Acknowledgment','2019-07-12 23:07:19',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(55,NULL,10,'Subject for Pledge Acknowledgment','2019-04-19 08:52:59',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(56,NULL,9,'Subject for Tell a Friend','2019-11-13 04:54:44',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(57,NULL,10,'Subject for Pledge Acknowledgment','2019-11-28 19:46:48',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(58,NULL,9,'Subject for Tell a Friend','2019-08-28 07:22:05',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(59,NULL,10,'Subject for Pledge Acknowledgment','2019-08-12 21:13:48',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(60,NULL,9,'Subject for Tell a Friend','2020-01-09 04:38:54',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(61,NULL,10,'Subject for Pledge Acknowledgment','2019-10-17 14:09:02',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(62,NULL,9,'Subject for Tell a Friend','2019-06-02 03:56:31',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(63,NULL,10,'Subject for Pledge Acknowledgment','2019-06-27 12:12:54',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(64,NULL,10,'Subject for Pledge Acknowledgment','2019-08-12 02:21:56',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(65,NULL,10,'Subject for Pledge Acknowledgment','2019-04-09 14:11:54',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(66,NULL,9,'Subject for Tell a Friend','2019-07-02 05:44:41',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(67,NULL,9,'Subject for Tell a Friend','2019-03-20 03:55:03',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(68,NULL,9,'Subject for Tell a Friend','2020-01-08 00:54:37',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(69,NULL,10,'Subject for Pledge Acknowledgment','2019-05-07 22:17:22',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(70,NULL,9,'Subject for Tell a Friend','2019-08-06 23:43:12',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(71,NULL,10,'Subject for Pledge Acknowledgment','2019-02-17 13:44:31',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(72,NULL,10,'Subject for Pledge Acknowledgment','2019-07-13 08:08:40',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(73,NULL,10,'Subject for Pledge Acknowledgment','2019-08-14 14:00:20',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(74,NULL,9,'Subject for Tell a Friend','2019-02-19 10:39:29',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(75,NULL,10,'Subject for Pledge Acknowledgment','2019-03-21 00:39:53',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(76,NULL,10,'Subject for Pledge Acknowledgment','2019-03-07 09:07:40',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(77,NULL,9,'Subject for Tell a Friend','2019-12-08 23:15:31',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(78,NULL,9,'Subject for Tell a Friend','2019-12-01 10:27:37',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(79,NULL,9,'Subject for Tell a Friend','2019-11-29 18:28:35',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(80,NULL,9,'Subject for Tell a Friend','2019-03-06 15:58:20',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(81,NULL,9,'Subject for Tell a Friend','2019-07-17 21:02:33',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(82,NULL,9,'Subject for Tell a Friend','2019-12-29 10:44:11',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(83,NULL,10,'Subject for Pledge Acknowledgment','2019-12-11 01:19:30',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(84,NULL,9,'Subject for Tell a Friend','2019-11-26 09:01:32',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(85,NULL,10,'Subject for Pledge Acknowledgment','2019-08-04 07:28:46',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(86,NULL,10,'Subject for Pledge Acknowledgment','2019-08-26 01:10:39',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(87,NULL,10,'Subject for Pledge Acknowledgment','2019-10-03 15:09:57',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(88,NULL,9,'Subject for Tell a Friend','2019-11-26 03:37:22',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(89,NULL,10,'Subject for Pledge Acknowledgment','2019-07-25 15:32:10',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(90,NULL,10,'Subject for Pledge Acknowledgment','2019-05-28 04:42:29',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(91,NULL,10,'Subject for Pledge Acknowledgment','2019-03-22 13:38:23',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(92,NULL,10,'Subject for Pledge Acknowledgment','2019-06-27 16:20:19',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(93,NULL,9,'Subject for Tell a Friend','2019-07-24 22:17:26',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(94,NULL,10,'Subject for Pledge Acknowledgment','2019-08-20 03:20:44',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(95,NULL,9,'Subject for Tell a Friend','2019-06-30 11:23:45',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(96,NULL,10,'Subject for Pledge Acknowledgment','2019-09-10 08:49:42',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(97,NULL,10,'Subject for Pledge Acknowledgment','2019-09-05 13:16:42',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(98,NULL,10,'Subject for Pledge Acknowledgment','2019-01-20 19:28:20',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(99,NULL,9,'Subject for Tell a Friend','2019-10-16 21:14:26',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(100,NULL,10,'Subject for Pledge Acknowledgment','2019-01-30 23:50:54',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(101,NULL,9,'Subject for Tell a Friend','2019-07-30 11:33:53',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(102,NULL,10,'Subject for Pledge Acknowledgment','2019-06-18 19:11:13',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(103,NULL,10,'Subject for Pledge Acknowledgment','2019-06-13 04:20:38',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(104,NULL,10,'Subject for Pledge Acknowledgment','2019-02-12 08:02:05',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(105,NULL,10,'Subject for Pledge Acknowledgment','2019-08-17 16:25:51',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(106,NULL,10,'Subject for Pledge Acknowledgment','2019-11-04 19:46:19',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(107,NULL,9,'Subject for Tell a Friend','2019-02-08 16:24:21',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(108,NULL,9,'Subject for Tell a Friend','2019-04-05 23:50:07',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(109,NULL,10,'Subject for Pledge Acknowledgment','2019-12-17 09:03:12',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(110,NULL,9,'Subject for Tell a Friend','2019-05-23 21:09:25',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(111,NULL,10,'Subject for Pledge Acknowledgment','2019-11-02 17:33:02',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(112,NULL,10,'Subject for Pledge Acknowledgment','2019-08-24 16:39:50',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(113,NULL,10,'Subject for Pledge Acknowledgment','2019-06-22 18:18:17',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(114,NULL,9,'Subject for Tell a Friend','2019-12-18 07:35:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(115,NULL,10,'Subject for Pledge Acknowledgment','2019-05-07 05:16:46',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(116,NULL,9,'Subject for Tell a Friend','2019-04-06 19:06:50',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(117,NULL,10,'Subject for Pledge Acknowledgment','2019-05-04 11:05:07',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(118,NULL,9,'Subject for Tell a Friend','2019-10-04 17:19:53',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(119,NULL,9,'Subject for Tell a Friend','2019-02-28 04:49:55',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(120,NULL,9,'Subject for Tell a Friend','2019-11-08 16:33:06',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(121,NULL,10,'Subject for Pledge Acknowledgment','2019-10-21 15:21:28',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(122,NULL,10,'Subject for Pledge Acknowledgment','2019-06-20 05:15:52',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(123,NULL,9,'Subject for Tell a Friend','2019-01-22 08:04:47',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(124,NULL,9,'Subject for Tell a Friend','2019-01-26 22:20:13',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(125,NULL,9,'Subject for Tell a Friend','2019-10-18 21:20:14',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(126,NULL,10,'Subject for Pledge Acknowledgment','2020-01-09 17:16:17',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(127,NULL,9,'Subject for Tell a Friend','2019-10-21 16:14:53',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(128,NULL,10,'Subject for Pledge Acknowledgment','2019-04-19 00:15:09',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(129,NULL,10,'Subject for Pledge Acknowledgment','2019-02-19 00:31:16',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(130,NULL,10,'Subject for Pledge Acknowledgment','2019-07-19 09:36:29',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(131,NULL,9,'Subject for Tell a Friend','2019-02-21 03:50:58',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(132,NULL,10,'Subject for Pledge Acknowledgment','2019-10-08 13:31:44',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(133,NULL,9,'Subject for Tell a Friend','2019-02-24 04:55:13',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(134,NULL,10,'Subject for Pledge Acknowledgment','2019-07-09 18:09:58',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(135,NULL,10,'Subject for Pledge Acknowledgment','2019-06-14 04:18:35',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(136,NULL,9,'Subject for Tell a Friend','2019-08-11 21:03:21',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(137,NULL,9,'Subject for Tell a Friend','2019-09-19 04:12:58',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(138,NULL,10,'Subject for Pledge Acknowledgment','2019-05-24 17:41:45',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(139,NULL,10,'Subject for Pledge Acknowledgment','2019-11-25 02:03:46',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(140,NULL,9,'Subject for Tell a Friend','2019-09-28 23:22:56',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(141,NULL,9,'Subject for Tell a Friend','2019-02-04 00:39:38',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(142,NULL,10,'Subject for Pledge Acknowledgment','2019-08-01 01:03:57',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(143,NULL,10,'Subject for Pledge Acknowledgment','2019-06-09 04:17:41',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(144,NULL,9,'Subject for Tell a Friend','2019-10-24 10:45:32',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(145,NULL,9,'Subject for Tell a Friend','2019-12-23 08:15:11',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(146,NULL,9,'Subject for Tell a Friend','2019-02-07 22:37:03',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(147,NULL,9,'Subject for Tell a Friend','2019-10-26 13:09:09',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(148,NULL,9,'Subject for Tell a Friend','2019-11-08 11:05:21',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(149,NULL,9,'Subject for Tell a Friend','2019-01-22 23:46:19',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(150,NULL,9,'Subject for Tell a Friend','2019-08-28 19:09:34',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(151,NULL,9,'Subject for Tell a Friend','2019-10-19 09:15:41',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(152,NULL,10,'Subject for Pledge Acknowledgment','2019-03-05 08:13:08',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(153,NULL,10,'Subject for Pledge Acknowledgment','2019-06-08 03:46:14',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(154,NULL,9,'Subject for Tell a Friend','2019-04-07 03:40:17',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(155,NULL,10,'Subject for Pledge Acknowledgment','2020-01-16 12:57:45',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(156,NULL,10,'Subject for Pledge Acknowledgment','2019-06-22 11:56:27',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(157,NULL,9,'Subject for Tell a Friend','2019-03-01 18:06:09',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(158,NULL,10,'Subject for Pledge Acknowledgment','2019-05-05 12:55:43',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(159,NULL,9,'Subject for Tell a Friend','2019-06-09 19:27:38',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(160,NULL,10,'Subject for Pledge Acknowledgment','2019-10-28 02:38:32',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(161,NULL,9,'Subject for Tell a Friend','2019-03-10 09:23:52',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(162,NULL,10,'Subject for Pledge Acknowledgment','2019-05-23 13:50:38',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(163,NULL,9,'Subject for Tell a Friend','2019-06-21 16:42:31',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(164,NULL,9,'Subject for Tell a Friend','2019-02-22 15:01:56',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(165,NULL,9,'Subject for Tell a Friend','2019-10-26 18:08:47',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(166,NULL,10,'Subject for Pledge Acknowledgment','2019-12-18 17:44:37',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(167,NULL,10,'Subject for Pledge Acknowledgment','2019-01-24 16:30:07',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(168,NULL,10,'Subject for Pledge Acknowledgment','2019-12-03 23:31:45',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(169,NULL,9,'Subject for Tell a Friend','2019-10-30 02:25:02',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(170,NULL,10,'Subject for Pledge Acknowledgment','2019-10-22 13:59:50',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(171,NULL,9,'Subject for Tell a Friend','2019-08-18 01:36:20',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(172,NULL,10,'Subject for Pledge Acknowledgment','2019-07-27 18:24:55',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(173,NULL,10,'Subject for Pledge Acknowledgment','2019-08-02 03:23:47',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(174,NULL,9,'Subject for Tell a Friend','2019-02-20 09:13:35',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(175,NULL,10,'Subject for Pledge Acknowledgment','2019-04-20 14:49:40',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(176,NULL,10,'Subject for Pledge Acknowledgment','2019-06-18 02:28:33',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(177,NULL,10,'Subject for Pledge Acknowledgment','2019-01-18 05:52:22',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(178,NULL,10,'Subject for Pledge Acknowledgment','2019-02-28 18:51:27',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(179,NULL,9,'Subject for Tell a Friend','2019-09-22 00:25:41',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(180,NULL,9,'Subject for Tell a Friend','2019-04-06 04:22:46',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(181,NULL,9,'Subject for Tell a Friend','2019-02-10 14:42:44',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(182,NULL,9,'Subject for Tell a Friend','2019-09-06 20:20:09',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(183,NULL,9,'Subject for Tell a Friend','2019-02-09 08:32:51',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(184,NULL,10,'Subject for Pledge Acknowledgment','2019-06-12 20:04:31',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(185,NULL,10,'Subject for Pledge Acknowledgment','2019-10-13 04:00:37',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(186,NULL,9,'Subject for Tell a Friend','2019-03-01 20:03:51',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(187,NULL,10,'Subject for Pledge Acknowledgment','2019-11-09 19:01:36',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(188,NULL,10,'Subject for Pledge Acknowledgment','2019-09-13 05:11:29',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(189,NULL,10,'Subject for Pledge Acknowledgment','2019-02-05 11:18:02',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(190,NULL,10,'Subject for Pledge Acknowledgment','2019-02-01 00:47:04',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(191,NULL,10,'Subject for Pledge Acknowledgment','2019-09-07 08:59:50',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(192,NULL,9,'Subject for Tell a Friend','2019-11-12 22:17:27',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(193,NULL,9,'Subject for Tell a Friend','2019-06-25 08:47:27',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(194,NULL,9,'Subject for Tell a Friend','2019-08-28 08:27:40',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(195,NULL,10,'Subject for Pledge Acknowledgment','2019-12-01 13:16:31',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(196,NULL,9,'Subject for Tell a Friend','2019-10-11 02:29:46',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(197,NULL,10,'Subject for Pledge Acknowledgment','2019-06-04 10:34:27',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(198,NULL,9,'Subject for Tell a Friend','2019-09-09 23:03:15',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(199,NULL,9,'Subject for Tell a Friend','2019-06-09 12:46:46',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(200,NULL,9,'Subject for Tell a Friend','2019-12-08 07:45:07',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(201,NULL,10,'Subject for Pledge Acknowledgment','2019-08-09 05:02:57',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(202,NULL,10,'Subject for Pledge Acknowledgment','2019-12-29 14:41:50',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(203,NULL,10,'Subject for Pledge Acknowledgment','2019-12-17 22:51:07',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(204,NULL,9,'Subject for Tell a Friend','2019-07-30 06:05:22',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(205,NULL,10,'Subject for Pledge Acknowledgment','2019-06-23 09:16:35',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(206,NULL,9,'Subject for Tell a Friend','2019-04-10 00:35:53',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(207,NULL,9,'Subject for Tell a Friend','2019-01-21 14:52:31',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(208,NULL,9,'Subject for Tell a Friend','2019-12-02 07:28:41',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(209,NULL,10,'Subject for Pledge Acknowledgment','2019-02-28 16:04:55',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(210,NULL,9,'Subject for Tell a Friend','2019-03-27 17:47:55',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(211,NULL,10,'Subject for Pledge Acknowledgment','2019-11-26 13:58:19',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(212,NULL,10,'Subject for Pledge Acknowledgment','2019-11-13 17:30:47',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(213,NULL,10,'Subject for Pledge Acknowledgment','2019-08-31 23:49:21',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(214,NULL,9,'Subject for Tell a Friend','2019-11-21 23:27:40',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(215,NULL,9,'Subject for Tell a Friend','2019-04-23 09:13:24',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(216,NULL,10,'Subject for Pledge Acknowledgment','2019-02-10 22:03:25',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(217,NULL,10,'Subject for Pledge Acknowledgment','2019-05-11 19:06:49',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(218,NULL,9,'Subject for Tell a Friend','2019-03-22 11:04:52',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(219,NULL,10,'Subject for Pledge Acknowledgment','2019-07-02 12:27:32',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(220,NULL,10,'Subject for Pledge Acknowledgment','2019-09-03 21:49:04',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(221,NULL,10,'Subject for Pledge Acknowledgment','2019-09-24 10:36:14',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(222,NULL,10,'Subject for Pledge Acknowledgment','2019-04-17 09:40:56',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(223,NULL,9,'Subject for Tell a Friend','2019-12-11 19:24:03',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(224,NULL,10,'Subject for Pledge Acknowledgment','2019-12-16 00:11:26',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(225,NULL,9,'Subject for Tell a Friend','2019-11-23 18:35:35',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(226,NULL,9,'Subject for Tell a Friend','2019-05-31 10:42:56',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(227,NULL,10,'Subject for Pledge Acknowledgment','2019-09-19 16:02:27',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(228,NULL,9,'Subject for Tell a Friend','2019-04-30 01:41:51',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(229,NULL,10,'Subject for Pledge Acknowledgment','2019-02-12 11:05:08',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(230,NULL,10,'Subject for Pledge Acknowledgment','2019-04-28 20:37:09',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(231,NULL,9,'Subject for Tell a Friend','2019-02-13 05:50:10',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(232,NULL,10,'Subject for Pledge Acknowledgment','2019-10-18 02:40:34',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(233,NULL,9,'Subject for Tell a Friend','2019-04-20 11:33:03',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(234,NULL,10,'Subject for Pledge Acknowledgment','2019-10-11 14:22:50',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(235,NULL,9,'Subject for Tell a Friend','2019-01-21 21:56:11',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(236,NULL,9,'Subject for Tell a Friend','2019-12-08 21:00:12',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(237,NULL,10,'Subject for Pledge Acknowledgment','2019-04-23 09:25:35',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(238,NULL,9,'Subject for Tell a Friend','2020-01-05 22:51:53',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(239,NULL,9,'Subject for Tell a Friend','2019-02-09 22:39:43',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(240,NULL,9,'Subject for Tell a Friend','2019-08-03 01:13:18',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(241,NULL,9,'Subject for Tell a Friend','2019-08-28 06:31:12',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(242,NULL,10,'Subject for Pledge Acknowledgment','2019-08-13 13:36:18',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(243,NULL,9,'Subject for Tell a Friend','2019-03-21 18:56:47',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(244,NULL,10,'Subject for Pledge Acknowledgment','2019-07-15 22:03:51',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(245,NULL,10,'Subject for Pledge Acknowledgment','2019-07-05 15:47:37',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(246,NULL,9,'Subject for Tell a Friend','2019-12-24 07:37:26',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(247,NULL,10,'Subject for Pledge Acknowledgment','2019-01-18 00:10:12',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(248,NULL,9,'Subject for Tell a Friend','2019-10-10 04:25:08',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(249,NULL,9,'Subject for Tell a Friend','2019-08-20 22:05:06',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(250,NULL,10,'Subject for Pledge Acknowledgment','2019-03-28 21:34:17',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(251,NULL,10,'Subject for Pledge Acknowledgment','2019-11-05 04:13:45',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(252,NULL,9,'Subject for Tell a Friend','2019-08-30 19:27:15',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(253,NULL,10,'Subject for Pledge Acknowledgment','2019-10-03 12:53:26',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(254,NULL,9,'Subject for Tell a Friend','2019-12-26 02:47:55',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(255,NULL,10,'Subject for Pledge Acknowledgment','2019-09-24 16:14:34',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(256,NULL,10,'Subject for Pledge Acknowledgment','2019-03-10 04:57:36',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(257,NULL,10,'Subject for Pledge Acknowledgment','2019-12-08 15:34:34',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(258,NULL,9,'Subject for Tell a Friend','2019-04-28 00:02:21',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(259,NULL,10,'Subject for Pledge Acknowledgment','2019-06-12 16:17:50',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(260,NULL,9,'Subject for Tell a Friend','2019-12-30 18:08:45',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(261,NULL,9,'Subject for Tell a Friend','2019-08-29 07:16:03',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(262,NULL,10,'Subject for Pledge Acknowledgment','2019-03-24 15:13:25',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(263,NULL,9,'Subject for Tell a Friend','2019-05-06 20:54:13',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(264,NULL,9,'Subject for Tell a Friend','2019-02-26 14:16:02',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(265,NULL,9,'Subject for Tell a Friend','2019-01-23 06:59:49',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(266,NULL,10,'Subject for Pledge Acknowledgment','2019-12-17 07:29:58',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(267,NULL,9,'Subject for Tell a Friend','2019-07-29 05:05:48',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(268,NULL,9,'Subject for Tell a Friend','2019-01-26 10:33:20',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(269,NULL,9,'Subject for Tell a Friend','2019-12-30 19:16:08',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(270,NULL,9,'Subject for Tell a Friend','2019-02-01 11:18:17',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(271,NULL,9,'Subject for Tell a Friend','2019-03-10 17:12:54',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(272,NULL,10,'Subject for Pledge Acknowledgment','2019-12-27 18:35:28',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(273,NULL,10,'Subject for Pledge Acknowledgment','2019-06-29 20:33:05',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(274,NULL,10,'Subject for Pledge Acknowledgment','2019-07-02 09:42:22',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(275,NULL,10,'Subject for Pledge Acknowledgment','2019-12-04 16:18:46',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(276,NULL,10,'Subject for Pledge Acknowledgment','2019-04-24 15:33:30',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(277,NULL,9,'Subject for Tell a Friend','2019-03-02 22:49:42',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(278,NULL,10,'Subject for Pledge Acknowledgment','2019-08-27 09:23:16',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(279,NULL,9,'Subject for Tell a Friend','2019-08-10 05:08:54',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(280,NULL,9,'Subject for Tell a Friend','2019-03-09 19:04:56',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(281,NULL,9,'Subject for Tell a Friend','2019-11-29 22:01:31',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(282,NULL,10,'Subject for Pledge Acknowledgment','2019-04-12 01:19:18',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(283,NULL,10,'Subject for Pledge Acknowledgment','2019-10-16 12:02:25',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(284,NULL,10,'Subject for Pledge Acknowledgment','2019-09-14 16:29:15',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(285,NULL,9,'Subject for Tell a Friend','2019-06-20 23:26:22',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(286,NULL,10,'Subject for Pledge Acknowledgment','2019-06-10 13:31:30',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(287,NULL,10,'Subject for Pledge Acknowledgment','2019-10-16 21:37:30',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(288,NULL,9,'Subject for Tell a Friend','2019-10-22 03:15:25',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(289,NULL,9,'Subject for Tell a Friend','2019-05-06 15:13:41',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(290,NULL,10,'Subject for Pledge Acknowledgment','2019-06-22 05:25:25',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(291,NULL,10,'Subject for Pledge Acknowledgment','2019-10-03 18:57:09',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(292,NULL,9,'Subject for Tell a Friend','2019-06-24 09:58:49',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(293,NULL,10,'Subject for Pledge Acknowledgment','2019-12-28 09:50:02',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(294,NULL,10,'Subject for Pledge Acknowledgment','2019-11-03 13:26:08',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(295,NULL,9,'Subject for Tell a Friend','2019-06-30 20:00:14',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(296,NULL,10,'Subject for Pledge Acknowledgment','2019-08-28 02:32:07',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(297,NULL,10,'Subject for Pledge Acknowledgment','2019-07-11 08:29:21',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(298,NULL,10,'Subject for Pledge Acknowledgment','2019-10-14 21:32:35',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(299,NULL,10,'Subject for Pledge Acknowledgment','2019-09-02 10:45:32',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(300,NULL,10,'Subject for Pledge Acknowledgment','2019-06-22 11:12:17',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(301,NULL,9,'Subject for Tell a Friend','2019-02-22 10:08:03',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(302,NULL,10,'Subject for Pledge Acknowledgment','2019-03-26 15:11:46',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(303,NULL,10,'Subject for Pledge Acknowledgment','2019-06-21 21:25:08',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(304,NULL,10,'Subject for Pledge Acknowledgment','2019-01-19 23:30:18',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(305,NULL,10,'Subject for Pledge Acknowledgment','2019-08-07 10:18:26',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(306,NULL,10,'Subject for Pledge Acknowledgment','2019-05-28 03:27:49',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(307,NULL,9,'Subject for Tell a Friend','2019-10-25 07:02:55',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(308,NULL,9,'Subject for Tell a Friend','2019-04-14 04:18:59',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(309,NULL,10,'Subject for Pledge Acknowledgment','2019-12-29 20:56:53',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(310,NULL,9,'Subject for Tell a Friend','2019-12-04 17:19:52',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(311,NULL,9,'Subject for Tell a Friend','2019-10-27 12:24:36',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(312,NULL,9,'Subject for Tell a Friend','2019-07-21 07:48:51',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(313,NULL,9,'Subject for Tell a Friend','2019-06-13 14:51:45',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(314,NULL,10,'Subject for Pledge Acknowledgment','2019-07-21 11:21:50',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(315,NULL,10,'Subject for Pledge Acknowledgment','2019-06-21 13:51:14',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(316,NULL,9,'Subject for Tell a Friend','2019-04-20 01:19:58',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(317,NULL,9,'Subject for Tell a Friend','2019-07-21 07:51:21',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(318,NULL,9,'Subject for Tell a Friend','2019-10-16 22:23:04',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(319,NULL,9,'Subject for Tell a Friend','2020-01-11 19:40:05',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(320,NULL,9,'Subject for Tell a Friend','2019-07-04 01:23:46',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(321,NULL,10,'Subject for Pledge Acknowledgment','2019-03-27 04:59:37',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(322,NULL,9,'Subject for Tell a Friend','2019-09-01 21:08:54',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(323,NULL,9,'Subject for Tell a Friend','2019-03-25 03:25:16',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(324,NULL,9,'Subject for Tell a Friend','2019-08-16 06:24:21',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(325,NULL,10,'Subject for Pledge Acknowledgment','2019-12-20 01:38:30',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(326,NULL,10,'Subject for Pledge Acknowledgment','2019-12-16 09:57:59',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(327,NULL,10,'Subject for Pledge Acknowledgment','2019-06-17 06:09:56',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(328,NULL,9,'Subject for Tell a Friend','2019-02-15 16:43:46',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(329,NULL,9,'Subject for Tell a Friend','2019-05-23 16:08:20',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(330,NULL,10,'Subject for Pledge Acknowledgment','2019-02-08 05:46:32',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(331,NULL,10,'Subject for Pledge Acknowledgment','2019-03-16 00:46:07',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(332,NULL,9,'Subject for Tell a Friend','2019-08-06 10:40:04',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(333,NULL,10,'Subject for Pledge Acknowledgment','2019-06-12 03:51:10',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(334,NULL,10,'Subject for Pledge Acknowledgment','2019-08-05 00:49:39',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(335,NULL,9,'Subject for Tell a Friend','2019-03-03 17:04:14',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(336,NULL,9,'Subject for Tell a Friend','2019-04-25 01:07:30',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(337,NULL,10,'Subject for Pledge Acknowledgment','2020-01-03 21:44:19',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(338,NULL,10,'Subject for Pledge Acknowledgment','2019-07-30 04:19:33',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(339,NULL,10,'Subject for Pledge Acknowledgment','2019-12-19 20:12:27',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(340,NULL,9,'Subject for Tell a Friend','2019-02-10 13:50:22',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(341,NULL,10,'Subject for Pledge Acknowledgment','2019-02-21 20:28:34',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(342,NULL,10,'Subject for Pledge Acknowledgment','2019-01-21 15:39:02',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(343,NULL,9,'Subject for Tell a Friend','2019-02-26 21:11:40',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(344,NULL,10,'Subject for Pledge Acknowledgment','2019-09-27 21:29:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(345,NULL,10,'Subject for Pledge Acknowledgment','2019-04-27 22:10:31',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(346,NULL,9,'Subject for Tell a Friend','2019-11-21 19:45:03',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(347,NULL,9,'Subject for Tell a Friend','2019-08-09 10:02:38',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(348,NULL,10,'Subject for Pledge Acknowledgment','2019-05-24 18:07:26',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(349,NULL,10,'Subject for Pledge Acknowledgment','2019-06-20 09:08:07',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(350,NULL,9,'Subject for Tell a Friend','2019-03-31 03:09:03',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(351,NULL,10,'Subject for Pledge Acknowledgment','2019-08-12 17:08:09',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(352,NULL,9,'Subject for Tell a Friend','2019-03-07 22:09:02',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(353,NULL,9,'Subject for Tell a Friend','2019-05-03 17:07:17',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(354,NULL,10,'Subject for Pledge Acknowledgment','2019-12-01 02:43:26',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(355,NULL,9,'Subject for Tell a Friend','2019-05-09 12:21:41',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(356,NULL,9,'Subject for Tell a Friend','2019-11-08 01:17:43',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(357,NULL,10,'Subject for Pledge Acknowledgment','2019-05-12 07:52:31',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(358,NULL,9,'Subject for Tell a Friend','2019-09-13 15:12:56',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(359,NULL,9,'Subject for Tell a Friend','2019-06-23 03:20:18',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(360,NULL,10,'Subject for Pledge Acknowledgment','2019-03-28 15:46:54',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(361,NULL,9,'Subject for Tell a Friend','2019-02-10 14:08:37',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(362,NULL,10,'Subject for Pledge Acknowledgment','2019-06-12 01:26:45',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(363,NULL,9,'Subject for Tell a Friend','2019-01-18 11:00:22',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(364,NULL,9,'Subject for Tell a Friend','2019-04-26 19:30:10',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(365,NULL,9,'Subject for Tell a Friend','2019-02-06 23:12:42',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(366,NULL,9,'Subject for Tell a Friend','2019-09-20 15:30:31',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(367,NULL,10,'Subject for Pledge Acknowledgment','2019-08-05 13:44:53',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(368,NULL,10,'Subject for Pledge Acknowledgment','2019-06-05 21:00:11',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(369,NULL,9,'Subject for Tell a Friend','2020-01-02 22:51:22',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(370,NULL,9,'Subject for Tell a Friend','2019-12-21 08:57:01',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(371,NULL,10,'Subject for Pledge Acknowledgment','2019-07-06 21:06:55',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(372,NULL,10,'Subject for Pledge Acknowledgment','2019-11-10 21:55:12',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(373,NULL,9,'Subject for Tell a Friend','2019-05-19 10:34:25',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(374,NULL,9,'Subject for Tell a Friend','2019-06-05 00:07:36',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(375,NULL,9,'Subject for Tell a Friend','2019-12-10 15:13:31',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(376,NULL,9,'Subject for Tell a Friend','2019-11-05 14:48:22',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(377,NULL,9,'Subject for Tell a Friend','2019-12-02 21:35:50',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(378,NULL,9,'Subject for Tell a Friend','2020-01-03 06:22:26',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(379,NULL,9,'Subject for Tell a Friend','2019-06-21 23:17:47',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(380,NULL,9,'Subject for Tell a Friend','2019-01-22 16:01:22',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(381,NULL,9,'Subject for Tell a Friend','2019-09-02 09:33:40',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(382,NULL,9,'Subject for Tell a Friend','2019-05-10 01:43:33',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(383,NULL,10,'Subject for Pledge Acknowledgment','2019-11-12 11:01:09',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(384,NULL,9,'Subject for Tell a Friend','2020-01-06 14:39:12',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(385,NULL,10,'Subject for Pledge Acknowledgment','2019-12-23 22:34:56',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(386,NULL,9,'Subject for Tell a Friend','2020-01-04 01:19:22',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(387,NULL,9,'Subject for Tell a Friend','2019-08-20 10:17:37',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(388,NULL,10,'Subject for Pledge Acknowledgment','2019-11-16 07:22:10',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(389,NULL,9,'Subject for Tell a Friend','2019-04-02 16:09:40',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(390,NULL,10,'Subject for Pledge Acknowledgment','2019-12-01 02:52:37',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(391,NULL,10,'Subject for Pledge Acknowledgment','2019-11-06 15:01:06',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(392,NULL,10,'Subject for Pledge Acknowledgment','2019-12-09 08:06:55',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(393,NULL,10,'Subject for Pledge Acknowledgment','2019-08-19 08:16:26',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(394,NULL,9,'Subject for Tell a Friend','2019-06-05 19:03:08',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(395,NULL,9,'Subject for Tell a Friend','2019-11-02 13:38:41',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(396,NULL,9,'Subject for Tell a Friend','2019-11-05 00:36:43',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(397,NULL,10,'Subject for Pledge Acknowledgment','2019-10-12 11:10:13',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(398,NULL,9,'Subject for Tell a Friend','2019-06-19 09:02:18',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(399,NULL,9,'Subject for Tell a Friend','2019-07-17 03:06:36',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(400,NULL,10,'Subject for Pledge Acknowledgment','2019-03-02 09:12:55',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(401,NULL,10,'Subject for Pledge Acknowledgment','2019-03-13 03:35:13',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(402,NULL,9,'Subject for Tell a Friend','2019-10-07 21:32:03',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(403,NULL,10,'Subject for Pledge Acknowledgment','2019-08-25 02:58:02',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(404,NULL,9,'Subject for Tell a Friend','2019-10-11 17:00:17',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(405,NULL,10,'Subject for Pledge Acknowledgment','2019-03-03 18:09:13',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(406,NULL,10,'Subject for Pledge Acknowledgment','2019-10-12 01:27:58',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(407,NULL,9,'Subject for Tell a Friend','2019-08-22 13:03:24',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(408,NULL,9,'Subject for Tell a Friend','2019-05-27 14:01:30',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(409,NULL,9,'Subject for Tell a Friend','2019-12-15 14:53:51',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(410,NULL,9,'Subject for Tell a Friend','2019-11-27 21:23:03',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(411,NULL,9,'Subject for Tell a Friend','2019-05-31 19:37:20',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(412,NULL,9,'Subject for Tell a Friend','2019-09-11 04:42:52',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(413,NULL,9,'Subject for Tell a Friend','2019-08-11 21:42:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(414,NULL,10,'Subject for Pledge Acknowledgment','2019-09-15 11:43:47',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(415,NULL,9,'Subject for Tell a Friend','2019-01-18 20:34:44',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(416,NULL,9,'Subject for Tell a Friend','2019-08-22 01:51:44',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(417,NULL,9,'Subject for Tell a Friend','2019-05-06 16:18:02',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(418,NULL,10,'Subject for Pledge Acknowledgment','2019-07-22 09:16:37',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(419,NULL,9,'Subject for Tell a Friend','2019-11-11 10:39:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(420,NULL,10,'Subject for Pledge Acknowledgment','2019-02-07 00:27:36',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(421,NULL,10,'Subject for Pledge Acknowledgment','2019-07-26 08:52:38',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(422,NULL,9,'Subject for Tell a Friend','2019-09-09 20:04:59',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(423,NULL,10,'Subject for Pledge Acknowledgment','2019-11-17 03:53:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(424,NULL,9,'Subject for Tell a Friend','2019-02-18 09:13:06',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(425,NULL,10,'Subject for Pledge Acknowledgment','2019-05-09 15:17:41',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(426,NULL,10,'Subject for Pledge Acknowledgment','2019-10-22 06:14:22',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(427,NULL,9,'Subject for Tell a Friend','2019-11-22 20:10:02',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(428,NULL,9,'Subject for Tell a Friend','2019-09-17 13:45:14',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(429,NULL,10,'Subject for Pledge Acknowledgment','2019-07-25 03:48:17',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(430,NULL,9,'Subject for Tell a Friend','2019-06-03 16:15:30',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(431,NULL,9,'Subject for Tell a Friend','2019-12-03 18:14:05',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(432,NULL,9,'Subject for Tell a Friend','2019-09-15 07:55:28',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(433,NULL,9,'Subject for Tell a Friend','2019-11-23 09:14:02',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(434,NULL,9,'Subject for Tell a Friend','2019-12-29 17:44:35',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(435,NULL,10,'Subject for Pledge Acknowledgment','2019-04-25 18:04:54',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(436,NULL,9,'Subject for Tell a Friend','2019-05-30 00:50:21',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(437,NULL,10,'Subject for Pledge Acknowledgment','2019-11-12 09:38:03',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(438,NULL,9,'Subject for Tell a Friend','2019-12-23 11:46:13',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(439,NULL,10,'Subject for Pledge Acknowledgment','2019-12-13 10:08:34',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(440,NULL,9,'Subject for Tell a Friend','2020-01-09 08:45:36',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(441,NULL,10,'Subject for Pledge Acknowledgment','2019-02-23 02:43:02',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(442,NULL,9,'Subject for Tell a Friend','2019-01-28 17:30:41',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(443,NULL,10,'Subject for Pledge Acknowledgment','2019-02-13 01:18:42',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(444,NULL,10,'Subject for Pledge Acknowledgment','2020-01-16 05:18:30',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(445,NULL,10,'Subject for Pledge Acknowledgment','2019-06-18 18:22:43',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(446,NULL,9,'Subject for Tell a Friend','2019-07-03 22:19:47',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(447,NULL,10,'Subject for Pledge Acknowledgment','2019-07-12 18:53:07',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(448,NULL,10,'Subject for Pledge Acknowledgment','2019-02-12 19:32:50',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(449,NULL,9,'Subject for Tell a Friend','2019-11-14 10:07:48',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(450,NULL,10,'Subject for Pledge Acknowledgment','2019-12-30 22:01:56',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(451,1,6,'$ 125.00-Apr 2007 Mailer 1','2010-04-11 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(452,2,6,'$ 50.00-Online: Save the Penguins','2010-03-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(453,3,6,'$ 25.00-Apr 2007 Mailer 1','2010-04-29 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(454,4,6,'$ 50.00-Apr 2007 Mailer 1','2010-04-11 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(455,5,6,'$ 500.00-Apr 2007 Mailer 1','2010-04-15 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(456,6,6,'$ 175.00-Apr 2007 Mailer 1','2010-04-11 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(457,7,6,'$ 50.00-Online: Save the Penguins','2010-03-27 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(458,8,6,'$ 10.00-Online: Save the Penguins','2010-03-08 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(459,9,6,'$ 250.00-Online: Save the Penguins','2010-04-22 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(460,10,6,NULL,'2009-07-01 11:53:50',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(461,11,6,NULL,'2009-07-01 12:55:41',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(462,12,6,NULL,'2009-10-01 11:53:50',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(463,13,6,NULL,'2009-12-01 12:55:41',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(464,1,7,'General','2020-01-17 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(465,2,7,'Student','2020-01-16 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(466,3,7,'General','2020-01-15 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(467,4,7,'Student','2020-01-14 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(468,5,7,'Student','2019-01-13 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(469,6,7,'Student','2020-01-12 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(470,7,7,'General','2020-01-11 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(471,8,7,'Student','2020-01-10 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(472,9,7,'General','2020-01-09 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(473,10,7,'Student','2019-01-08 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(474,11,7,'Lifetime','2020-01-07 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(475,12,7,'Student','2020-01-06 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(476,13,7,'General','2020-01-05 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(477,14,7,'Student','2020-01-04 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(478,15,7,'General','2017-09-27 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(479,16,7,'Student','2020-01-02 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(480,17,7,'General','2020-01-01 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(481,18,7,'Student','2019-12-31 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(482,19,7,'General','2019-12-30 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(483,20,7,'Student','2018-12-29 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(484,21,7,'General','2019-12-28 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(485,22,7,'Lifetime','2019-12-27 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(486,23,7,'General','2019-12-26 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(487,24,7,'Student','2019-12-25 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(488,25,7,'Student','2018-12-24 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(489,26,7,'Student','2019-12-23 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(490,27,7,'General','2019-12-22 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(491,28,7,'Student','2019-12-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(492,29,7,'General','2019-12-20 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(493,30,7,'Student','2018-12-19 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(494,14,6,'$ 100.00 - General Membership: Offline signup','2020-01-17 09:53:51',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(495,15,6,'$ 100.00 - General Membership: Offline signup','2020-01-17 09:53:51',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(496,16,6,'$ 100.00 - General Membership: Offline signup','2020-01-17 09:53:51',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(497,17,6,'$ 100.00 - General Membership: Offline signup','2020-01-17 09:53:51',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(498,18,6,'$ 100.00 - General Membership: Offline signup','2020-01-17 09:53:51',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(499,19,6,'$ 100.00 - General Membership: Offline signup','2020-01-17 09:53:51',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(500,20,6,'$ 100.00 - General Membership: Offline signup','2020-01-17 09:53:51',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(501,21,6,'$ 100.00 - General Membership: Offline signup','2020-01-17 09:53:51',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(502,22,6,'$ 100.00 - General Membership: Offline signup','2020-01-17 09:53:51',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(503,23,6,'$ 100.00 - General Membership: Offline signup','2020-01-17 09:53:51',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(504,24,6,'$ 100.00 - General Membership: Offline signup','2020-01-17 09:53:51',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(505,25,6,'$ 100.00 - General Membership: Offline signup','2020-01-17 09:53:51',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(506,26,6,'$ 50.00 - Student Membership: Offline signup','2020-01-17 09:53:51',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(507,27,6,'$ 50.00 - Student Membership: Offline signup','2020-01-17 09:53:51',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(508,28,6,'$ 50.00 - Student Membership: Offline signup','2020-01-17 09:53:51',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(509,29,6,'$ 50.00 - Student Membership: Offline signup','2020-01-17 09:53:51',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(510,30,6,'$ 50.00 - Student Membership: Offline signup','2020-01-17 09:53:51',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(511,31,6,'$ 50.00 - Student Membership: Offline signup','2020-01-17 09:53:51',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(512,32,6,'$ 50.00 - Student Membership: Offline signup','2020-01-17 09:53:51',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(513,33,6,'$ 50.00 - Student Membership: Offline signup','2020-01-17 09:53:51',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(514,34,6,'$ 50.00 - Student Membership: Offline signup','2020-01-17 09:53:51',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(515,35,6,'$ 50.00 - Student Membership: Offline signup','2020-01-17 09:53:51',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(516,36,6,'$ 50.00 - Student Membership: Offline signup','2020-01-17 09:53:51',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(517,37,6,'$ 50.00 - Student Membership: Offline signup','2020-01-17 09:53:51',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(518,38,6,'$ 50.00 - Student Membership: Offline signup','2020-01-17 09:53:51',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(519,39,6,'$ 50.00 - Student Membership: Offline signup','2020-01-17 09:53:51',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(520,40,6,'$ 50.00 - Student Membership: Offline signup','2020-01-17 09:53:51',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(521,41,6,'$ 50.00 - Student Membership: Offline signup','2020-01-17 09:53:51',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(522,42,6,'$ 1200.00 - Lifetime Membership: Offline signup','2020-01-17 09:53:51',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(523,43,6,'$ 1200.00 - Lifetime Membership: Offline signup','2020-01-17 09:53:51',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:51','2020-01-16 22:53:51'),(525,1,5,'NULL','2009-01-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(526,2,5,'NULL','2008-05-07 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(527,3,5,'NULL','2008-05-05 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(528,4,5,'NULL','2008-10-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(529,5,5,'NULL','2008-01-10 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(530,6,5,'NULL','2008-03-05 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(531,7,5,'NULL','2009-07-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(532,8,5,'NULL','2009-03-07 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(533,9,5,'NULL','2008-02-05 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(534,10,5,'NULL','2008-02-01 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(535,11,5,'NULL','2009-01-10 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(536,12,5,'NULL','2009-03-06 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(537,13,5,'NULL','2008-06-04 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(538,14,5,'NULL','2008-01-10 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(539,15,5,'NULL','2008-07-04 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(540,16,5,'NULL','2009-01-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(541,17,5,'NULL','2008-01-10 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(542,18,5,'NULL','2009-03-05 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(543,19,5,'NULL','2008-10-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(544,20,5,'NULL','2009-01-10 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(545,21,5,'NULL','2008-03-25 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(546,22,5,'NULL','2009-10-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(547,23,5,'NULL','2008-01-10 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(548,24,5,'NULL','2008-03-11 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(549,25,5,'NULL','2008-04-05 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(550,26,5,'NULL','2009-01-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(551,27,5,'NULL','2008-05-07 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(552,28,5,'NULL','2009-12-12 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(553,29,5,'NULL','2009-12-13 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(554,30,5,'NULL','2009-12-14 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(555,31,5,'NULL','2009-12-15 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(556,32,5,'NULL','2009-07-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(557,33,5,'NULL','2009-03-07 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(558,34,5,'NULL','2009-12-15 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(559,35,5,'NULL','2009-12-13 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(560,36,5,'NULL','2009-01-10 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(561,37,5,'NULL','2009-03-06 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(562,38,5,'NULL','2009-12-13 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(563,39,5,'NULL','2008-01-10 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(564,40,5,'NULL','2009-12-14 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(565,41,5,'NULL','2009-01-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(566,42,5,'NULL','2009-12-15 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(567,43,5,'NULL','2009-03-05 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(568,44,5,'NULL','2009-12-13 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(569,45,5,'NULL','2009-01-10 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(570,46,5,'NULL','2009-12-13 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(571,47,5,'NULL','2009-10-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(572,48,5,'NULL','2009-12-10 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(573,49,5,'NULL','2009-03-11 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(574,50,5,'NULL','2009-04-05 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(575,45,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2020-01-17 09:53:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(576,46,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2020-01-17 09:53:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(577,47,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2020-01-17 09:53:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(578,48,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2020-01-17 09:53:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(579,49,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2020-01-17 09:53:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(580,50,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2020-01-17 09:53:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(581,51,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2020-01-17 09:53:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(582,52,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2020-01-17 09:53:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(583,53,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2020-01-17 09:53:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(584,54,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2020-01-17 09:53:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(585,55,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2020-01-17 09:53:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(586,56,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2020-01-17 09:53:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(587,57,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2020-01-17 09:53:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(588,58,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2020-01-17 09:53:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(589,59,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2020-01-17 09:53:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(590,60,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2020-01-17 09:53:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(591,61,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2020-01-17 09:53:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(592,62,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2020-01-17 09:53:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(593,63,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2020-01-17 09:53:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(594,64,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2020-01-17 09:53:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(595,65,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2020-01-17 09:53:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(596,66,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2020-01-17 09:53:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(597,67,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2020-01-17 09:53:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(598,68,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2020-01-17 09:53:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(599,69,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2020-01-17 09:53:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(600,70,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2020-01-17 09:53:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(601,71,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2020-01-17 09:53:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(602,72,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2020-01-17 09:53:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(603,73,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2020-01-17 09:53:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(604,74,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2020-01-17 09:53:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(605,75,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2020-01-17 09:53:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(606,76,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2020-01-17 09:53:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(607,77,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2020-01-17 09:53:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(608,78,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2020-01-17 09:53:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(609,79,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2020-01-17 09:53:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(610,80,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2020-01-17 09:53:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(611,81,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2020-01-17 09:53:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(612,82,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2020-01-17 09:53:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(613,83,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2020-01-17 09:53:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(614,84,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2020-01-17 09:53:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(615,85,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2020-01-17 09:53:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(616,86,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2020-01-17 09:53:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(617,87,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2020-01-17 09:53:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(618,88,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2020-01-17 09:53:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(619,89,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2020-01-17 09:53:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(620,90,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2020-01-17 09:53:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(621,91,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2020-01-17 09:53:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(622,92,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2020-01-17 09:53:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(623,93,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2020-01-17 09:53:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52'),(624,94,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2020-01-17 09:53:52',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2020-01-16 22:53:52','2020-01-16 22:53:52');
 /*!40000 ALTER TABLE `civicrm_activity` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -97,7 +97,7 @@ UNLOCK TABLES;
 
 LOCK TABLES `civicrm_activity_contact` WRITE;
 /*!40000 ALTER TABLE `civicrm_activity_contact` DISABLE KEYS */;
-INSERT INTO `civicrm_activity_contact` (`id`, `activity_id`, `contact_id`, `record_type_id`) VALUES (490,320,1,3),(658,433,1,3),(210,132,2,3),(601,397,2,3),(681,451,2,2),(714,484,2,2),(734,504,2,2),(795,565,2,2),(172,110,3,3),(308,197,3,3),(340,221,3,3),(419,273,3,3),(611,403,3,3),(620,410,3,3),(107,68,4,3),(269,172,4,3),(682,452,4,2),(44,30,5,3),(377,244,5,3),(777,547,5,2),(503,330,6,3),(683,453,6,2),(771,541,6,2),(97,62,7,3),(348,227,7,3),(650,429,7,3),(5,3,8,3),(323,208,8,3),(352,230,8,3),(462,302,8,3),(464,303,8,3),(684,454,8,2),(518,341,9,3),(567,372,9,3),(9,5,10,3),(254,163,10,3),(542,357,10,3),(157,101,11,3),(286,183,11,3),(396,258,11,3),(425,276,11,3),(483,315,11,3),(161,104,12,3),(203,128,12,3),(358,233,12,3),(455,296,12,3),(557,367,12,3),(2,1,13,3),(1,1,14,2),(3,2,14,2),(4,3,14,2),(6,4,14,2),(8,5,14,2),(10,6,14,2),(11,7,14,2),(13,8,14,2),(15,9,14,2),(16,10,14,2),(18,11,14,2),(19,12,14,2),(20,13,14,2),(21,14,14,2),(22,15,14,2),(23,16,14,2),(24,17,14,2),(25,18,14,2),(27,19,14,2),(28,20,14,2),(29,21,14,2),(30,22,14,2),(32,23,14,2),(34,24,14,2),(36,25,14,2),(37,26,14,2),(39,27,14,2),(40,28,14,2),(41,29,14,2),(43,30,14,2),(45,31,14,2),(47,32,14,2),(49,33,14,2),(50,34,14,2),(51,35,14,2),(52,36,14,2),(53,37,14,2),(55,38,14,2),(57,39,14,2),(59,40,14,2),(60,41,14,2),(62,42,14,2),(64,43,14,2),(65,44,14,2),(66,45,14,2),(68,46,14,2),(70,47,14,2),(72,48,14,2),(74,49,14,2),(76,50,14,2),(77,51,14,2),(79,52,14,2),(81,53,14,2),(83,54,14,2),(84,55,14,2),(86,56,14,2),(88,57,14,2),(89,58,14,2),(91,59,14,2),(92,60,14,2),(94,61,14,2),(96,62,14,2),(98,63,14,2),(100,64,14,2),(102,65,14,2),(103,66,14,2),(104,67,14,2),(106,68,14,2),(108,69,14,2),(109,70,14,2),(111,71,14,2),(112,72,14,2),(113,73,14,2),(114,73,14,3),(115,74,14,2),(117,75,14,2),(119,76,14,2),(120,77,14,2),(122,78,14,2),(124,79,14,2),(126,80,14,2),(128,81,14,2),(130,82,14,2),(131,83,14,2),(132,84,14,2),(134,85,14,2),(135,86,14,2),(137,87,14,2),(138,88,14,2),(139,89,14,2),(141,90,14,2),(142,91,14,2),(143,92,14,2),(144,93,14,2),(146,94,14,2),(147,95,14,2),(149,96,14,2),(151,97,14,2),(152,98,14,2),(153,99,14,2),(154,100,14,2),(156,101,14,2),(158,102,14,2),(159,103,14,2),(160,104,14,2),(162,105,14,2),(164,106,14,2),(165,107,14,2),(167,108,14,2),(169,109,14,2),(171,110,14,2),(173,111,14,2),(175,112,14,2),(176,113,14,2),(178,114,14,2),(180,115,14,2),(182,116,14,2),(184,117,14,2),(186,118,14,2),(188,119,14,2),(189,120,14,2),(190,121,14,2),(192,122,14,2),(194,123,14,2),(196,124,14,2),(198,125,14,2),(199,126,14,2),(200,127,14,2),(202,128,14,2),(204,129,14,2),(206,130,14,2),(207,131,14,2),(209,132,14,2),(211,133,14,2),(212,134,14,2),(214,135,14,2),(215,136,14,2),(216,137,14,2),(218,138,14,2),(219,139,14,2),(220,140,14,2),(222,141,14,2),(223,142,14,2),(224,143,14,2),(226,144,14,2),(228,145,14,2),(230,146,14,2),(232,147,14,2),(234,148,14,2),(235,149,14,2),(237,150,14,2),(297,190,14,3),(527,347,14,3),(559,368,14,3),(561,369,14,3),(656,432,14,3),(785,555,14,2),(38,26,15,3),(121,77,16,3),(148,95,16,3),(479,312,16,3),(685,455,16,2),(801,571,16,2),(545,359,17,3),(786,556,18,2),(82,53,19,3),(264,169,19,3),(466,304,19,3),(686,456,19,2),(315,202,20,3),(512,337,21,3),(540,356,21,3),(547,360,21,3),(591,389,21,3),(624,412,21,3),(634,419,21,3),(645,426,22,3),(769,539,22,2),(61,41,24,3),(231,146,24,3),(54,37,25,3),(67,45,25,3),(430,279,25,3),(663,437,25,3),(715,485,25,2),(753,523,25,2),(787,557,25,2),(213,134,26,3),(243,155,26,3),(390,254,26,3),(719,489,26,2),(750,520,26,2),(105,67,27,3),(294,188,27,3),(789,559,27,2),(170,109,28,3),(48,32,29,3),(90,58,29,3),(125,79,29,3),(319,205,30,3),(446,290,30,3),(565,371,30,3),(802,572,30,2),(174,111,31,3),(356,232,32,3),(388,253,32,3),(581,381,32,3),(692,462,32,2),(693,463,32,2),(406,264,33,3),(702,472,33,2),(728,498,33,2),(803,573,33,2),(689,459,34,2),(123,78,35,3),(145,93,35,3),(233,147,35,3),(326,210,35,3),(246,157,36,3),(596,393,36,3),(35,24,37,3),(373,242,37,3),(695,465,37,2),(740,510,37,2),(155,100,38,3),(282,181,38,3),(140,89,39,3),(150,96,40,3),(354,231,40,3),(17,10,41,3),(332,215,41,3),(337,219,41,3),(393,256,41,3),(272,174,43,3),(398,259,43,3),(400,260,43,3),(486,317,43,3),(691,461,43,2),(101,64,44,3),(236,149,44,3),(14,8,45,3),(58,39,45,3),(698,468,45,2),(726,496,45,2),(110,70,46,3),(46,31,47,3),(704,474,47,2),(752,522,47,2),(765,535,47,2),(95,61,49,3),(267,171,49,3),(439,284,49,3),(449,292,49,3),(507,333,49,3),(80,52,50,3),(193,122,50,3),(259,166,50,3),(423,275,50,3),(470,306,50,3),(669,441,50,3),(572,375,51,3),(129,81,52,3),(360,234,52,3),(417,272,52,3),(700,470,52,2),(727,497,52,2),(783,553,52,2),(133,84,53,3),(205,129,53,3),(118,75,55,3),(410,267,55,3),(708,478,55,2),(746,516,55,2),(7,4,56,3),(177,113,57,3),(181,115,57,3),(703,473,58,2),(729,499,58,2),(762,532,58,2),(191,121,60,3),(288,184,60,3),(368,239,60,3),(563,370,61,3),(768,538,61,2),(42,29,62,3),(284,182,62,3),(434,281,62,3),(472,307,62,3),(626,413,62,3),(75,49,63,3),(797,567,63,2),(71,47,64,3),(127,80,64,3),(299,191,64,3),(780,550,64,2),(500,328,65,3),(589,388,65,3),(197,124,66,3),(712,482,66,2),(732,502,66,2),(638,422,67,3),(185,117,68,3),(468,305,68,3),(607,401,68,3),(756,526,68,2),(166,107,70,3),(195,123,71,3),(304,195,71,3),(313,201,71,3),(574,376,71,3),(618,409,71,3),(690,460,71,2),(208,131,72,3),(577,378,72,3),(427,277,73,3),(432,280,73,3),(515,339,73,3),(647,427,73,3),(794,564,73,2),(179,114,74,3),(251,161,74,3),(474,308,74,3),(229,145,76,3),(365,237,76,3),(384,250,76,3),(654,431,76,3),(436,282,77,3),(555,366,77,3),(569,373,77,3),(776,546,77,2),(772,542,78,2),(93,60,79,3),(403,262,79,3),(530,349,79,3),(116,74,80,3),(696,466,80,2),(725,495,80,2),(85,55,81,3),(201,127,81,3),(421,274,81,3),(603,398,81,3),(631,417,81,3),(791,561,81,2),(12,7,82,3),(163,105,82,3),(671,442,82,3),(687,457,82,2),(56,38,83,3),(78,51,84,3),(183,116,84,3),(721,491,84,2),(751,521,84,2),(168,108,85,3),(498,327,85,3),(524,345,85,3),(677,447,85,3),(773,543,85,2),(73,48,87,3),(225,143,87,3),(278,178,87,3),(362,235,87,3),(274,175,88,3),(775,545,88,2),(187,118,89,3),(717,487,89,2),(749,519,89,2),(796,566,89,2),(87,56,90,3),(550,362,90,3),(63,42,91,3),(371,241,91,3),(521,343,91,3),(217,137,92,3),(538,355,92,3),(622,411,92,3),(688,458,92,2),(804,574,92,2),(643,425,93,3),(31,22,94,3),(99,63,94,3),(256,164,94,3),(375,243,94,3),(227,144,95,3),(290,185,95,3),(710,480,95,2),(731,501,95,2),(136,86,96,3),(221,140,96,3),(342,222,96,3),(453,295,96,3),(306,196,97,3),(415,271,97,3),(641,424,97,3),(652,430,97,3),(534,352,98,3),(33,23,99,3),(69,46,99,3),(667,440,99,3),(261,167,100,3),(609,402,100,3),(26,18,101,3),(782,552,102,2),(707,477,103,2),(745,515,103,2),(755,525,103,2),(697,467,105,2),(741,511,105,2),(774,544,105,2),(706,476,107,2),(730,500,107,2),(799,569,107,2),(800,570,109,2),(792,562,113,2),(718,488,115,2),(736,506,115,2),(767,537,115,2),(781,551,118,2),(770,540,121,2),(460,301,130,2),(461,302,130,2),(463,303,130,2),(465,304,130,2),(467,305,130,2),(469,306,130,2),(471,307,130,2),(473,308,130,2),(475,309,130,2),(476,310,130,2),(477,311,130,2),(478,312,130,2),(480,313,130,2),(481,314,130,2),(482,315,130,2),(484,316,130,2),(485,317,130,2),(487,318,130,2),(488,319,130,2),(489,320,130,2),(491,321,130,2),(492,322,130,2),(493,323,130,2),(494,324,130,2),(495,325,130,2),(496,326,130,2),(497,327,130,2),(499,328,130,2),(501,329,130,2),(502,330,130,2),(504,331,130,2),(505,332,130,2),(506,333,130,2),(508,334,130,2),(509,335,130,2),(510,336,130,2),(511,337,130,2),(513,338,130,2),(514,339,130,2),(516,340,130,2),(517,341,130,2),(519,342,130,2),(520,343,130,2),(522,344,130,2),(523,345,130,2),(525,346,130,2),(526,347,130,2),(528,348,130,2),(529,349,130,2),(531,350,130,2),(532,351,130,2),(533,352,130,2),(535,353,130,2),(536,354,130,2),(537,355,130,2),(539,356,130,2),(541,357,130,2),(543,358,130,2),(544,359,130,2),(546,360,130,2),(548,361,130,2),(549,362,130,2),(551,363,130,2),(552,364,130,2),(553,365,130,2),(554,366,130,2),(556,367,130,2),(558,368,130,2),(560,369,130,2),(562,370,130,2),(564,371,130,2),(566,372,130,2),(568,373,130,2),(570,374,130,2),(571,375,130,2),(573,376,130,2),(575,377,130,2),(576,378,130,2),(578,379,130,2),(579,380,130,2),(580,381,130,2),(582,382,130,2),(583,383,130,2),(584,384,130,2),(585,385,130,2),(586,386,130,2),(587,387,130,2),(588,388,130,2),(590,389,130,2),(592,390,130,2),(593,391,130,2),(594,392,130,2),(595,393,130,2),(597,394,130,2),(598,395,130,2),(599,396,130,2),(600,397,130,2),(602,398,130,2),(604,399,130,2),(605,400,130,2),(606,401,130,2),(608,402,130,2),(610,403,130,2),(612,404,130,2),(613,405,130,2),(614,406,130,2),(615,407,130,2),(616,408,130,2),(617,409,130,2),(619,410,130,2),(621,411,130,2),(623,412,130,2),(625,413,130,2),(627,414,130,2),(628,415,130,2),(629,416,130,2),(630,417,130,2),(632,418,130,2),(633,419,130,2),(635,420,130,2),(636,421,130,2),(637,422,130,2),(639,423,130,2),(640,424,130,2),(642,425,130,2),(644,426,130,2),(646,427,130,2),(648,428,130,2),(649,429,130,2),(651,430,130,2),(653,431,130,2),(655,432,130,2),(657,433,130,2),(659,434,130,2),(660,435,130,2),(661,436,130,2),(662,437,130,2),(664,438,130,2),(665,439,130,2),(666,440,130,2),(668,441,130,2),(670,442,130,2),(672,443,130,2),(673,444,130,2),(674,445,130,2),(675,446,130,2),(676,447,130,2),(678,448,130,2),(679,449,130,2),(680,450,130,2),(761,531,131,2),(784,554,133,2),(716,486,134,2),(735,505,134,2),(238,151,135,2),(239,152,135,2),(240,153,135,2),(241,154,135,2),(242,155,135,2),(244,156,135,2),(245,157,135,2),(247,158,135,2),(248,159,135,2),(249,160,135,2),(250,161,135,2),(252,162,135,2),(253,163,135,2),(255,164,135,2),(257,165,135,2),(258,166,135,2),(260,167,135,2),(262,168,135,2),(263,169,135,2),(265,170,135,2),(266,171,135,2),(268,172,135,2),(270,173,135,2),(271,174,135,2),(273,175,135,2),(275,176,135,2),(276,177,135,2),(277,178,135,2),(279,179,135,2),(280,180,135,2),(281,181,135,2),(283,182,135,2),(285,183,135,2),(287,184,135,2),(289,185,135,2),(291,186,135,2),(292,187,135,2),(293,188,135,2),(295,189,135,2),(296,190,135,2),(298,191,135,2),(300,192,135,2),(301,193,135,2),(302,194,135,2),(303,195,135,2),(305,196,135,2),(307,197,135,2),(309,198,135,2),(310,199,135,2),(311,200,135,2),(312,201,135,2),(314,202,135,2),(316,203,135,2),(317,204,135,2),(318,205,135,2),(320,206,135,2),(321,207,135,2),(322,208,135,2),(324,209,135,2),(325,210,135,2),(327,211,135,2),(328,212,135,2),(329,213,135,2),(330,214,135,2),(331,215,135,2),(333,216,135,2),(334,217,135,2),(335,218,135,2),(336,219,135,2),(338,220,135,2),(339,221,135,2),(341,222,135,2),(343,223,135,2),(344,224,135,2),(345,225,135,2),(346,226,135,2),(347,227,135,2),(349,228,135,2),(350,229,135,2),(351,230,135,2),(353,231,135,2),(355,232,135,2),(357,233,135,2),(359,234,135,2),(361,235,135,2),(363,236,135,2),(364,237,135,2),(366,238,135,2),(367,239,135,2),(369,240,135,2),(370,241,135,2),(372,242,135,2),(374,243,135,2),(376,244,135,2),(378,245,135,2),(379,246,135,2),(380,247,135,2),(381,248,135,2),(382,249,135,2),(383,250,135,2),(385,251,135,2),(386,252,135,2),(387,253,135,2),(389,254,135,2),(391,255,135,2),(392,256,135,2),(394,257,135,2),(395,258,135,2),(397,259,135,2),(399,260,135,2),(401,261,135,2),(402,262,135,2),(404,263,135,2),(405,264,135,2),(407,265,135,2),(408,266,135,2),(409,267,135,2),(411,268,135,2),(412,269,135,2),(413,270,135,2),(414,271,135,2),(416,272,135,2),(418,273,135,2),(420,274,135,2),(422,275,135,2),(424,276,135,2),(426,277,135,2),(428,278,135,2),(429,279,135,2),(431,280,135,2),(433,281,135,2),(435,282,135,2),(437,283,135,2),(438,284,135,2),(440,285,135,2),(441,286,135,2),(442,287,135,2),(443,288,135,2),(444,289,135,2),(445,290,135,2),(447,291,135,2),(448,292,135,2),(450,293,135,2),(451,294,135,2),(452,295,135,2),(454,296,135,2),(456,297,135,2),(457,298,135,2),(458,299,135,2),(459,300,135,2),(758,528,135,2),(720,490,139,2),(737,507,139,2),(798,568,142,2),(705,475,144,2),(744,514,144,2),(723,493,145,2),(739,509,145,2),(722,492,147,2),(738,508,147,2),(701,471,148,2),(743,513,148,2),(760,530,149,2),(793,563,159,2),(699,469,160,2),(742,512,160,2),(763,533,162,2),(766,536,165,2),(713,483,166,2),(733,503,166,2),(788,558,171,2),(694,464,175,2),(724,494,175,2),(779,549,179,2),(711,481,184,2),(748,518,184,2),(764,534,184,2),(759,529,188,2),(778,548,189,2),(790,560,191,2),(757,527,195,2),(709,479,200,2),(747,517,200,2);
+INSERT INTO `civicrm_activity_contact` (`id`, `activity_id`, `contact_id`, `record_type_id`) VALUES (760,532,1,2),(473,319,2,3),(679,451,2,2),(33,23,3,3),(68,44,3,3),(659,436,3,3),(415,279,4,3),(680,452,4,2),(242,163,5,3),(467,316,5,3),(545,366,5,3),(711,483,5,2),(744,516,5,2),(573,382,6,3),(681,453,6,2),(774,546,6,2),(122,81,7,3),(213,145,7,3),(341,231,7,3),(482,324,7,3),(592,395,7,3),(319,215,8,3),(682,454,8,2),(266,180,9,3),(412,277,9,3),(180,123,10,3),(224,151,10,2),(226,152,10,2),(227,153,10,2),(228,154,10,2),(230,155,10,2),(231,156,10,2),(232,157,10,2),(234,158,10,2),(235,159,10,2),(237,160,10,2),(238,161,10,2),(240,162,10,2),(241,163,10,2),(243,164,10,2),(245,165,10,2),(247,166,10,2),(248,167,10,2),(249,168,10,2),(250,169,10,2),(252,170,10,2),(253,171,10,2),(255,172,10,2),(256,173,10,2),(257,174,10,2),(259,175,10,2),(260,176,10,2),(261,177,10,2),(262,178,10,2),(263,179,10,2),(265,180,10,2),(267,181,10,2),(269,182,10,2),(271,183,10,2),(273,184,10,2),(274,185,10,2),(275,186,10,2),(277,187,10,2),(278,188,10,2),(279,189,10,2),(280,190,10,2),(281,191,10,2),(282,192,10,2),(284,193,10,2),(286,194,10,2),(288,195,10,2),(289,196,10,2),(291,197,10,2),(292,198,10,2),(294,199,10,2),(296,200,10,2),(298,201,10,2),(299,202,10,2),(300,203,10,2),(301,204,10,2),(303,205,10,2),(304,206,10,2),(306,207,10,2),(308,208,10,2),(310,209,10,2),(311,210,10,2),(313,211,10,2),(314,212,10,2),(315,213,10,2),(316,214,10,2),(318,215,10,2),(320,216,10,2),(321,217,10,2),(322,218,10,2),(324,219,10,2),(325,220,10,2),(326,221,10,2),(327,222,10,2),(328,223,10,2),(330,224,10,2),(331,225,10,2),(333,226,10,2),(335,227,10,2),(336,228,10,2),(338,229,10,2),(339,230,10,2),(340,231,10,2),(342,232,10,2),(343,233,10,2),(345,234,10,2),(346,235,10,2),(348,236,10,2),(350,237,10,2),(351,238,10,2),(353,239,10,2),(355,240,10,2),(357,241,10,2),(359,242,10,2),(360,243,10,2),(362,244,10,2),(363,245,10,2),(364,246,10,2),(366,247,10,2),(367,248,10,2),(369,249,10,2),(371,250,10,2),(372,251,10,2),(373,252,10,2),(375,253,10,2),(376,254,10,2),(378,255,10,2),(379,256,10,2),(380,257,10,2),(381,258,10,2),(383,259,10,2),(384,260,10,2),(386,261,10,2),(388,262,10,2),(389,263,10,2),(391,264,10,2),(393,265,10,2),(395,266,10,2),(396,267,10,2),(398,268,10,2),(399,268,10,3),(400,269,10,2),(402,270,10,2),(404,271,10,2),(406,272,10,2),(407,273,10,2),(408,274,10,2),(409,275,10,2),(410,276,10,2),(411,277,10,2),(413,278,10,2),(414,279,10,2),(416,280,10,2),(418,281,10,2),(420,282,10,2),(421,283,10,2),(422,284,10,2),(423,285,10,2),(425,286,10,2),(426,287,10,2),(427,288,10,2),(429,289,10,2),(431,290,10,2),(432,291,10,2),(433,292,10,2),(435,293,10,2),(436,294,10,2),(437,295,10,2),(439,296,10,2),(440,297,10,2),(441,298,10,2),(442,299,10,2),(443,300,10,2),(41,28,11,3),(258,174,11,3),(374,252,11,3),(650,431,12,3),(49,33,13,3),(127,84,13,3),(358,241,13,3),(499,336,13,3),(656,434,13,3),(354,239,14,3),(698,470,14,2),(724,496,14,2),(120,80,15,3),(557,374,15,3),(665,440,16,3),(683,455,16,2),(773,545,16,2),(174,119,17,3),(184,125,17,3),(625,415,17,3),(44,30,18,3),(428,288,19,3),(684,456,19,2),(317,214,20,3),(457,310,20,3),(543,365,20,3),(706,478,20,2),(727,499,20,2),(323,218,21,3),(599,399,21,3),(254,171,22,3),(377,254,22,3),(569,380,22,3),(576,384,22,3),(329,223,23,3),(430,289,23,3),(541,364,23,3),(63,41,24,3),(276,186,24,3),(539,363,24,3),(612,408,24,3),(239,161,25,3),(264,179,25,3),(385,260,25,3),(403,270,25,3),(469,317,25,3),(559,375,25,3),(788,560,25,2),(161,110,26,3),(645,428,26,3),(758,530,26,2),(221,149,27,3),(579,386,27,3),(606,404,27,3),(195,133,28,3),(236,159,28,3),(478,322,28,3),(480,323,28,3),(489,329,28,3),(211,144,29,3),(307,207,29,3),(397,267,29,3),(717,489,29,2),(747,519,29,2),(302,204,30,3),(471,318,30,3),(697,469,30,2),(737,509,30,2),(762,534,30,2),(98,66,32,3),(138,93,32,3),(182,124,32,3),(390,263,32,3),(521,352,32,3),(690,462,32,2),(691,463,32,2),(17,12,33,3),(55,36,33,3),(217,147,33,3),(461,312,33,3),(677,449,34,3),(687,459,34,2),(718,490,34,2),(732,504,34,2),(219,148,35,3),(392,264,35,3),(652,432,35,3),(782,554,35,2),(405,271,36,3),(90,60,37,3),(662,438,37,3),(759,531,39,2),(87,58,40,3),(233,157,40,3),(337,228,40,3),(454,308,40,3),(581,387,40,3),(705,477,40,2),(741,513,40,2),(51,34,41,3),(445,301,41,3),(618,411,41,3),(565,378,42,3),(709,481,42,2),(743,515,42,2),(783,555,42,2),(365,246,43,3),(689,461,43,2),(309,208,44,3),(636,422,44,3),(283,192,45,3),(290,196,45,3),(382,258,45,3),(567,379,45,3),(603,402,45,3),(785,557,45,2),(21,14,46,3),(801,573,46,2),(36,25,47,3),(401,269,47,3),(38,26,49,3),(497,335,49,3),(622,413,49,3),(116,78,50,3),(693,465,50,2),(734,506,50,2),(118,79,51,3),(285,193,51,3),(699,471,51,2),(738,510,51,2),(361,243,52,3),(463,313,52,3),(616,410,52,3),(781,553,52,2),(215,146,53,3),(246,165,53,3),(452,307,54,3),(207,141,55,3),(368,248,55,3),(531,358,55,3),(668,442,55,3),(771,543,55,2),(78,51,56,3),(141,95,56,3),(66,43,57,3),(434,292,57,3),(533,359,58,3),(287,194,59,3),(508,343,59,3),(590,394,59,3),(632,419,59,3),(53,35,60,3),(620,412,60,3),(654,433,60,3),(332,225,62,3),(424,285,62,3),(778,550,62,2),(334,226,64,3),(504,340,64,3),(614,409,64,3),(721,493,64,2),(749,521,64,2),(71,46,65,3),(244,164,65,3),(528,356,65,3),(639,424,65,3),(166,114,66,3),(268,181,66,3),(394,265,66,3),(584,389,66,3),(512,346,67,3),(563,377,67,3),(102,68,68,3),(549,369,68,3),(124,82,69,3),(555,373,69,3),(11,8,70,3),(23,15,70,3),(187,127,70,3),(356,240,70,3),(643,427,70,3),(100,67,71,3),(229,154,71,3),(293,198,71,3),(597,398,71,3),(627,416,71,3),(688,460,71,2),(419,281,72,3),(571,381,72,3),(158,108,73,3),(4,3,74,3),(199,136,74,3),(526,355,74,3),(251,169,75,3),(523,353,75,3),(673,446,75,3),(14,10,76,3),(149,101,76,3),(312,210,76,3),(84,56,77,3),(493,332,77,3),(710,482,77,2),(729,501,77,2),(192,131,78,3),(205,140,78,3),(417,280,78,3),(459,311,79,3),(561,376,79,3),(790,562,79,2),(475,320,80,3),(344,233,81,3),(349,236,81,3),(370,249,81,3),(780,552,81,2),(305,206,82,3),(438,295,82,3),(685,457,82,2),(694,466,82,2),(723,495,82,2),(28,19,85,3),(76,50,85,3),(594,396,85,3),(695,467,85,2),(735,507,85,2),(754,526,85,2),(223,150,86,3),(295,199,86,3),(551,370,86,3),(798,570,86,2),(105,70,87,3),(176,120,87,3),(225,151,87,3),(347,235,89,3),(518,350,89,3),(692,464,89,2),(722,494,89,2),(775,547,89,2),(19,13,90,3),(57,37,90,3),(201,137,90,3),(387,261,90,3),(794,566,90,2),(146,99,91,3),(487,328,91,3),(629,417,91,3),(47,32,92,3),(686,458,92,2),(172,118,93,3),(6,4,94,3),(696,468,94,2),(736,508,94,2),(114,77,95,3),(514,347,95,3),(156,107,96,3),(352,238,96,3),(536,361,96,3),(110,74,97,3),(297,200,97,3),(270,182,98,3),(132,88,99,3),(610,407,99,3),(648,430,99,3),(756,528,100,2),(61,40,101,3),(93,62,101,3),(169,116,101,3),(272,183,101,3),(793,565,102,2),(701,473,103,2),(739,511,103,2),(789,561,103,2),(707,479,105,2),(742,514,105,2),(786,558,105,2),(761,533,106,2),(800,572,110,2),(770,542,115,2),(715,487,120,2),(745,517,120,2),(768,540,120,2),(713,485,122,2),(751,523,122,2),(755,527,124,2),(720,492,128,2),(733,505,128,2),(795,567,128,2),(708,480,132,2),(728,500,132,2),(704,476,133,2),(726,498,133,2),(777,549,136,2),(712,484,138,2),(730,502,138,2),(753,525,138,2),(784,556,140,2),(763,535,143,2),(799,571,144,2),(787,559,149,2),(765,537,150,2),(796,568,157,2),(779,551,159,2),(802,574,160,2),(792,564,163,2),(714,486,164,2),(731,503,164,2),(702,474,165,2),(750,522,165,2),(772,544,166,2),(764,536,167,2),(769,541,171,2),(797,569,176,2),(703,475,181,2),(740,512,181,2),(700,472,183,2),(725,497,183,2),(716,488,184,2),(746,518,184,2),(791,563,187,2),(757,529,188,2),(776,548,191,2),(1,1,192,2),(2,2,192,2),(3,3,192,2),(5,4,192,2),(7,5,192,2),(8,6,192,2),(9,7,192,2),(10,8,192,2),(12,9,192,2),(13,10,192,2),(15,11,192,2),(16,12,192,2),(18,13,192,2),(20,14,192,2),(22,15,192,2),(24,16,192,2),(25,17,192,2),(26,18,192,2),(27,19,192,2),(29,20,192,2),(30,21,192,2),(31,22,192,2),(32,23,192,2),(34,24,192,2),(35,25,192,2),(37,26,192,2),(39,27,192,2),(40,28,192,2),(42,29,192,2),(43,30,192,2),(45,31,192,2),(46,32,192,2),(48,33,192,2),(50,34,192,2),(52,35,192,2),(54,36,192,2),(56,37,192,2),(58,38,192,2),(59,39,192,2),(60,40,192,2),(62,41,192,2),(64,42,192,2),(65,43,192,2),(67,44,192,2),(69,45,192,2),(70,46,192,2),(72,47,192,2),(73,48,192,2),(74,49,192,2),(75,50,192,2),(77,51,192,2),(79,52,192,2),(80,53,192,2),(81,54,192,2),(82,55,192,2),(83,56,192,2),(85,57,192,2),(86,58,192,2),(88,59,192,2),(89,60,192,2),(91,61,192,2),(92,62,192,2),(94,63,192,2),(95,64,192,2),(96,65,192,2),(97,66,192,2),(99,67,192,2),(101,68,192,2),(103,69,192,2),(104,70,192,2),(106,71,192,2),(107,72,192,2),(108,73,192,2),(109,74,192,2),(111,75,192,2),(112,76,192,2),(113,77,192,2),(115,78,192,2),(117,79,192,2),(119,80,192,2),(121,81,192,2),(123,82,192,2),(125,83,192,2),(126,84,192,2),(128,85,192,2),(129,86,192,2),(130,87,192,2),(131,88,192,2),(133,89,192,2),(134,90,192,2),(135,91,192,2),(136,92,192,2),(137,93,192,2),(139,94,192,2),(140,95,192,2),(142,96,192,2),(143,97,192,2),(144,98,192,2),(145,99,192,2),(147,100,192,2),(148,101,192,2),(150,102,192,2),(151,103,192,2),(152,104,192,2),(153,105,192,2),(154,106,192,2),(155,107,192,2),(157,108,192,2),(159,109,192,2),(160,110,192,2),(162,111,192,2),(163,112,192,2),(164,113,192,2),(165,114,192,2),(167,115,192,2),(168,116,192,2),(170,117,192,2),(171,118,192,2),(173,119,192,2),(175,120,192,2),(177,121,192,2),(178,122,192,2),(179,123,192,2),(181,124,192,2),(183,125,192,2),(185,126,192,2),(186,127,192,2),(188,128,192,2),(189,129,192,2),(190,130,192,2),(191,131,192,2),(193,132,192,2),(194,133,192,2),(196,134,192,2),(197,135,192,2),(198,136,192,2),(200,137,192,2),(202,138,192,2),(203,139,192,2),(204,140,192,2),(206,141,192,2),(208,142,192,2),(209,143,192,2),(210,144,192,2),(212,145,192,2),(214,146,192,2),(216,147,192,2),(218,148,192,2),(220,149,192,2),(222,150,192,2),(766,538,194,2),(444,301,196,2),(446,302,196,2),(447,303,196,2),(448,304,196,2),(449,305,196,2),(450,306,196,2),(451,307,196,2),(453,308,196,2),(455,309,196,2),(456,310,196,2),(458,311,196,2),(460,312,196,2),(462,313,196,2),(464,314,196,2),(465,315,196,2),(466,316,196,2),(468,317,196,2),(470,318,196,2),(472,319,196,2),(474,320,196,2),(476,321,196,2),(477,322,196,2),(479,323,196,2),(481,324,196,2),(483,325,196,2),(484,326,196,2),(485,327,196,2),(486,328,196,2),(488,329,196,2),(490,330,196,2),(491,331,196,2),(492,332,196,2),(494,333,196,2),(495,334,196,2),(496,335,196,2),(498,336,196,2),(500,337,196,2),(501,338,196,2),(502,339,196,2),(503,340,196,2),(505,341,196,2),(506,342,196,2),(507,343,196,2),(509,344,196,2),(510,345,196,2),(511,346,196,2),(513,347,196,2),(515,348,196,2),(516,349,196,2),(517,350,196,2),(519,351,196,2),(520,352,196,2),(522,353,196,2),(524,354,196,2),(525,355,196,2),(527,356,196,2),(529,357,196,2),(530,358,196,2),(532,359,196,2),(534,360,196,2),(535,361,196,2),(537,362,196,2),(538,363,196,2),(540,364,196,2),(542,365,196,2),(544,366,196,2),(546,367,196,2),(547,368,196,2),(548,369,196,2),(550,370,196,2),(552,371,196,2),(553,372,196,2),(554,373,196,2),(556,374,196,2),(558,375,196,2),(560,376,196,2),(562,377,196,2),(564,378,196,2),(566,379,196,2),(568,380,196,2),(570,381,196,2),(572,382,196,2),(574,383,196,2),(575,384,196,2),(577,385,196,2),(578,386,196,2),(580,387,196,2),(582,388,196,2),(583,389,196,2),(585,390,196,2),(586,391,196,2),(587,392,196,2),(588,393,196,2),(589,394,196,2),(591,395,196,2),(593,396,196,2),(595,397,196,2),(596,398,196,2),(598,399,196,2),(600,400,196,2),(601,401,196,2),(602,402,196,2),(604,403,196,2),(605,404,196,2),(607,405,196,2),(608,406,196,2),(609,407,196,2),(611,408,196,2),(613,409,196,2),(615,410,196,2),(617,411,196,2),(619,412,196,2),(621,413,196,2),(623,414,196,2),(624,415,196,2),(626,416,196,2),(628,417,196,2),(630,418,196,2),(631,419,196,2),(633,420,196,2),(634,421,196,2),(635,422,196,2),(637,423,196,2),(638,424,196,2),(640,425,196,2),(641,426,196,2),(642,427,196,2),(644,428,196,2),(646,429,196,2),(647,430,196,2),(649,431,196,2),(651,432,196,2),(653,433,196,2),(655,434,196,2),(657,435,196,2),(658,436,196,2),(660,437,196,2),(661,438,196,2),(663,439,196,2),(664,440,196,2),(666,441,196,2),(667,442,196,2),(669,443,196,2),(670,444,196,2),(671,445,196,2),(672,446,196,2),(674,447,196,2),(675,448,196,2),(676,449,196,2),(678,450,196,2),(767,539,196,2),(719,491,197,2),(748,520,197,2);
 /*!40000 ALTER TABLE `civicrm_activity_contact` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -107,7 +107,7 @@ UNLOCK TABLES;
 
 LOCK TABLES `civicrm_address` WRITE;
 /*!40000 ALTER TABLE `civicrm_address` DISABLE KEYS */;
-INSERT INTO `civicrm_address` (`id`, `contact_id`, `location_type_id`, `is_primary`, `is_billing`, `street_address`, `street_number`, `street_number_suffix`, `street_number_predirectional`, `street_name`, `street_type`, `street_number_postdirectional`, `street_unit`, `supplemental_address_1`, `supplemental_address_2`, `supplemental_address_3`, `city`, `county_id`, `state_province_id`, `postal_code_suffix`, `postal_code`, `usps_adc`, `country_id`, `geo_code_1`, `geo_code_2`, `manual_geo_code`, `timezone`, `name`, `master_id`) VALUES (1,164,1,1,0,'390X Martin Luther King Dr NW',390,'X',NULL,'Martin Luther King','Dr','NW',NULL,NULL,NULL,NULL,'Kealia',1,1010,NULL,'96751',NULL,1228,22.111837,-159.31283,0,NULL,NULL,NULL),(2,54,1,1,0,'551G Van Ness Ln SW',551,'G',NULL,'Van Ness','Ln','SW',NULL,NULL,NULL,NULL,'West Covina',1,1004,NULL,'91793',NULL,1228,33.786594,-118.298662,0,NULL,NULL,NULL),(3,159,1,1,0,'785M Woodbridge Path NW',785,'M',NULL,'Woodbridge','Path','NW',NULL,NULL,NULL,NULL,'Warfordsburg',1,1037,NULL,'17267',NULL,1228,39.798516,-78.23675,0,NULL,NULL,NULL),(4,127,1,1,0,'399Y Beech Blvd NE',399,'Y',NULL,'Beech','Blvd','NE',NULL,NULL,NULL,NULL,'Corn',1,1035,NULL,'73024',NULL,1228,35.370775,-98.80897,0,NULL,NULL,NULL),(5,200,1,1,0,'419U Martin Luther King St S',419,'U',NULL,'Martin Luther King','St','S',NULL,NULL,NULL,NULL,'Roseland',1,1026,NULL,'68973',NULL,1228,40.459642,-98.55892,0,NULL,NULL,NULL),(6,14,1,1,0,'151J Van Ness Ave SW',151,'J',NULL,'Van Ness','Ave','SW',NULL,NULL,NULL,NULL,'Ijamsville',1,1019,NULL,'21754',NULL,1228,39.342096,-77.29984,0,NULL,NULL,NULL),(7,22,1,1,0,'882P Maple Rd E',882,'P',NULL,'Maple','Rd','E',NULL,NULL,NULL,NULL,'McBee',1,1039,NULL,'29101',NULL,1228,34.461353,-80.2506,0,NULL,NULL,NULL),(8,30,1,1,0,'964T Dowlen Pl N',964,'T',NULL,'Dowlen','Pl','N',NULL,NULL,NULL,NULL,'Marshallville',1,1009,NULL,'31057',NULL,1228,32.446656,-83.93413,0,NULL,NULL,NULL),(9,144,1,1,0,'930T Beech Blvd N',930,'T',NULL,'Beech','Blvd','N',NULL,NULL,NULL,NULL,'Rocklin',1,1004,NULL,'95765',NULL,1228,38.817993,-121.2631,0,NULL,NULL,NULL),(10,74,1,1,0,'399O Cadell Pl SW',399,'O',NULL,'Cadell','Pl','SW',NULL,NULL,NULL,NULL,'Ruso',1,1033,NULL,'58778',NULL,1228,47.783028,-100.93423,0,NULL,NULL,NULL),(11,194,1,1,0,'503T Pine St E',503,'T',NULL,'Pine','St','E',NULL,NULL,NULL,NULL,'Rainsville',1,1030,NULL,'87736',NULL,1228,35.974115,-105.17633,0,NULL,NULL,NULL),(12,87,1,1,0,'113V Main Way W',113,'V',NULL,'Main','Way','W',NULL,NULL,NULL,NULL,'New Albany',1,1023,NULL,'38652',NULL,1228,34.489085,-88.99973,0,NULL,NULL,NULL),(13,167,1,1,0,'720C Beech Way N',720,'C',NULL,'Beech','Way','N',NULL,NULL,NULL,NULL,'Marion Center',1,1037,NULL,'15759',NULL,1228,40.771687,-79.04221,0,NULL,NULL,NULL),(14,8,1,1,0,'564Z Bay Rd NE',564,'Z',NULL,'Bay','Rd','NE',NULL,NULL,NULL,NULL,'Houston',1,1042,NULL,'77238',NULL,1228,29.83399,-95.434241,0,NULL,NULL,NULL),(15,70,1,1,0,'350V Jackson Blvd NE',350,'V',NULL,'Jackson','Blvd','NE',NULL,NULL,NULL,NULL,'Manson',1,1014,NULL,'50563',NULL,1228,42.52503,-94.53628,0,NULL,NULL,NULL),(16,124,1,1,0,'281H Dowlen Ln SE',281,'H',NULL,'Dowlen','Ln','SE',NULL,NULL,NULL,NULL,'Dallas',1,1042,NULL,'75247',NULL,1228,32.817978,-96.87928,0,NULL,NULL,NULL),(17,72,1,1,0,'813K Second Pl SW',813,'K',NULL,'Second','Pl','SW',NULL,NULL,NULL,NULL,'Erieville',1,1031,NULL,'13061',NULL,1228,42.859332,-75.74261,0,NULL,NULL,NULL),(18,197,1,1,0,'358N Northpoint Pl W',358,'N',NULL,'Northpoint','Pl','W',NULL,NULL,NULL,NULL,'Durants Neck',1,1032,NULL,'27930',NULL,1228,36.198539,-76.373908,0,NULL,NULL,NULL),(19,50,1,1,0,'367V Dowlen Ave S',367,'V',NULL,'Dowlen','Ave','S',NULL,NULL,NULL,NULL,'Simi Valley',1,1004,NULL,'93093',NULL,1228,34.032383,-119.1343,0,NULL,NULL,NULL),(20,4,1,1,0,'579Q Pine Pl S',579,'Q',NULL,'Pine','Pl','S',NULL,NULL,NULL,NULL,'Encino',1,1004,NULL,'91316',NULL,1228,34.168753,-118.51636,0,NULL,NULL,NULL),(21,166,1,1,0,'229U Cadell Ave SE',229,'U',NULL,'Cadell','Ave','SE',NULL,NULL,NULL,NULL,'Greenwood',1,1031,NULL,'14839',NULL,1228,42.129806,-77.63705,0,NULL,NULL,NULL),(22,191,1,1,0,'505D Van Ness Ave N',505,'D',NULL,'Van Ness','Ave','N',NULL,NULL,NULL,NULL,'Peetz',1,1005,NULL,'80747',NULL,1228,40.964518,-103.11162,0,NULL,NULL,NULL),(23,173,1,1,0,'296O Maple Path S',296,'O',NULL,'Maple','Path','S',NULL,NULL,NULL,NULL,'Atwood',1,1035,NULL,'74827',NULL,1228,34.949547,-96.33356,0,NULL,NULL,NULL),(24,53,1,1,0,'242L States Rd E',242,'L',NULL,'States','Rd','E',NULL,NULL,NULL,NULL,'Osceola',1,1026,NULL,'68651',NULL,1228,41.21361,-97.56993,0,NULL,NULL,NULL),(25,116,1,1,0,'64P States Ln S',64,'P',NULL,'States','Ln','S',NULL,NULL,NULL,NULL,'Arco',1,1022,NULL,'56113',NULL,1228,44.398668,-96.17095,0,NULL,NULL,NULL),(26,186,1,1,0,'283T Bay Ln N',283,'T',NULL,'Bay','Ln','N',NULL,NULL,NULL,NULL,'Madison',1,1013,NULL,'47250',NULL,1228,38.787175,-85.38031,0,NULL,NULL,NULL),(27,23,1,1,0,'190X Northpoint Blvd SE',190,'X',NULL,'Northpoint','Blvd','SE',NULL,NULL,NULL,NULL,'Howe',1,1011,NULL,'83244',NULL,1228,43.854175,-113.04362,0,NULL,NULL,NULL),(28,40,1,1,0,'84A Jackson Ave N',84,'A',NULL,'Jackson','Ave','N',NULL,NULL,NULL,NULL,'Durham',1,1032,NULL,'27712',NULL,1228,36.087738,-78.92313,0,NULL,NULL,NULL),(29,171,1,1,0,'444X College Dr NW',444,'X',NULL,'College','Dr','NW',NULL,NULL,NULL,NULL,'Wake',1,1045,NULL,'23176',NULL,1228,37.571789,-76.41631,0,NULL,NULL,NULL),(30,149,1,1,0,'485X College Rd E',485,'X',NULL,'College','Rd','E',NULL,NULL,NULL,NULL,'Plato Center',1,1012,NULL,'60170',NULL,1228,42.025776,-88.425931,0,NULL,NULL,NULL),(31,39,1,1,0,'99N Maple Path SE',99,'N',NULL,'Maple','Path','SE',NULL,NULL,NULL,NULL,'Lake Placid',1,1008,NULL,'33862',NULL,1228,27.244668,-81.288424,0,NULL,NULL,NULL),(32,113,1,1,0,'966I Dowlen St NW',966,'I',NULL,'Dowlen','St','NW',NULL,NULL,NULL,NULL,'Collyer',1,1015,NULL,'67631',NULL,1228,39.028141,-100.08722,0,NULL,NULL,NULL),(33,55,1,1,0,'106O Green St E',106,'O',NULL,'Green','St','E',NULL,NULL,NULL,NULL,'South Lyme',1,1006,NULL,'06376',NULL,1228,41.294797,-72.25602,0,NULL,NULL,NULL),(34,145,1,1,0,'534M El Camino Rd W',534,'M',NULL,'El Camino','Rd','W',NULL,NULL,NULL,NULL,'Corcoran',1,1004,NULL,'93212',NULL,1228,36.085342,-119.5548,0,NULL,NULL,NULL),(35,189,1,1,0,'334T College Ave S',334,'T',NULL,'College','Ave','S',NULL,NULL,NULL,NULL,'Stollings',1,1047,NULL,'25646',NULL,1228,37.837136,-81.95921,0,NULL,NULL,NULL),(36,61,1,1,0,'852K El Camino St W',852,'K',NULL,'El Camino','St','W',NULL,NULL,NULL,NULL,'Metairie',1,1017,NULL,'70011',NULL,1228,29.677893,-90.0901,0,NULL,NULL,NULL),(37,18,1,1,0,'428C Second Pl NW',428,'C',NULL,'Second','Pl','NW',NULL,NULL,NULL,NULL,'Hopedale',1,1034,NULL,'43976',NULL,1228,40.352364,-80.90465,0,NULL,NULL,NULL),(38,3,1,1,0,'965X Northpoint Way SE',965,'X',NULL,'Northpoint','Way','SE',NULL,NULL,NULL,NULL,'Kent City',1,1021,NULL,'49330',NULL,1228,43.231933,-85.73768,0,NULL,NULL,NULL),(39,180,1,1,0,'659S Cadell Ave S',659,'S',NULL,'Cadell','Ave','S',NULL,NULL,NULL,NULL,'Saint Louis',1,1024,NULL,'63178',NULL,1228,38.6531,-90.243462,0,NULL,NULL,NULL),(40,119,1,1,0,'816C States Rd W',816,'C',NULL,'States','Rd','W',NULL,NULL,NULL,NULL,'Virginia Beach',1,1045,NULL,'23459',NULL,1228,36.926647,-76.02058,0,NULL,NULL,NULL),(41,137,1,1,0,'608X Northpoint Path S',608,'X',NULL,'Northpoint','Path','S',NULL,NULL,NULL,NULL,'Laredo',1,1042,NULL,'78093',NULL,1228,27.492996,-99.463668,0,NULL,NULL,NULL),(42,51,1,1,0,'256Z Beech St NW',256,'Z',NULL,'Beech','St','NW',NULL,NULL,NULL,NULL,'Oxford',1,1006,NULL,'06748',NULL,1228,41.586368,-73.43657,0,NULL,NULL,NULL),(43,7,1,1,0,'565C College Dr N',565,'C',NULL,'College','Dr','N',NULL,NULL,NULL,NULL,'Auburn',1,1018,NULL,'04210',NULL,1228,44.089173,-70.24143,0,NULL,NULL,NULL),(44,98,1,1,0,'531G Martin Luther King Pl W',531,'G',NULL,'Martin Luther King','Pl','W',NULL,NULL,NULL,NULL,'Metaline Falls',1,1046,NULL,'99153',NULL,1228,48.858518,-117.29833,0,NULL,NULL,NULL),(45,118,1,1,0,'58M Caulder Ave W',58,'M',NULL,'Caulder','Ave','W',NULL,NULL,NULL,NULL,'Tullahoma',1,1041,NULL,'37388',NULL,1228,35.357522,-86.21484,0,NULL,NULL,NULL),(46,20,1,1,0,'795I Beech Ave NE',795,'I',NULL,'Beech','Ave','NE',NULL,NULL,NULL,NULL,'Quinebaug',1,1006,NULL,'06262',NULL,1228,42.022904,-71.94671,0,NULL,NULL,NULL),(47,5,1,1,0,'868O Van Ness Ave SE',868,'O',NULL,'Van Ness','Ave','SE',NULL,NULL,NULL,NULL,'Selma',1,1014,NULL,'52588',NULL,1228,40.873769,-92.13113,0,NULL,NULL,NULL),(48,21,1,1,0,'3P Caulder Pl SW',3,'P',NULL,'Caulder','Pl','SW',NULL,NULL,NULL,NULL,'Winchester',1,1016,NULL,'40392',NULL,1228,37.968496,-84.157766,0,NULL,NULL,NULL),(49,100,1,1,0,'351P Caulder Ln E',351,'P',NULL,'Caulder','Ln','E',NULL,NULL,NULL,NULL,'Junction City',1,1048,NULL,'54443',NULL,1228,44.612879,-89.74163,0,NULL,NULL,NULL),(50,99,1,1,0,'809T States Rd SW',809,'T',NULL,'States','Rd','SW',NULL,NULL,NULL,NULL,'Winnett',1,1025,NULL,'59087',NULL,1228,47.000478,-108.29005,0,NULL,NULL,NULL),(51,44,1,1,0,'209I Green Dr S',209,'I',NULL,'Green','Dr','S',NULL,NULL,NULL,NULL,'Ohiopyle',1,1037,NULL,'15470',NULL,1228,39.854144,-79.52989,0,NULL,NULL,NULL),(52,168,1,1,0,'88G Pine Blvd S',88,'G',NULL,'Pine','Blvd','S',NULL,NULL,NULL,NULL,'South Bend',1,1026,NULL,'68058',NULL,1228,41.003188,-96.24529,0,NULL,NULL,NULL),(53,163,1,1,0,'325I States Way N',325,'I',NULL,'States','Way','N',NULL,NULL,NULL,NULL,'Tumacacori',1,1002,NULL,'85640',NULL,1228,31.586392,-111.0416,0,NULL,NULL,NULL),(54,117,1,1,0,'128F Maple Ln N',128,'F',NULL,'Maple','Ln','N',NULL,NULL,NULL,NULL,'Alexandria',1,1017,NULL,'71303',NULL,1228,31.302432,-92.50515,0,NULL,NULL,NULL),(55,126,1,1,0,'941A El Camino Ave SW',941,'A',NULL,'El Camino','Ave','SW',NULL,NULL,NULL,NULL,'Montgomery',1,1000,NULL,'36111',NULL,1228,32.338989,-86.27316,0,NULL,NULL,NULL),(56,34,1,1,0,'21C States Blvd NW',21,'C',NULL,'States','Blvd','NW',NULL,NULL,NULL,NULL,'Collison',1,1012,NULL,'61831',NULL,1228,40.2159,-87.78418,0,NULL,NULL,NULL),(57,90,1,1,0,'718E Van Ness Way SW',718,'E',NULL,'Van Ness','Way','SW',NULL,NULL,NULL,NULL,'Woodruff',1,1002,NULL,'85942',NULL,1228,34.778649,-109.96697,0,NULL,NULL,NULL),(58,108,1,1,0,'126H Green Dr NW',126,'H',NULL,'Green','Dr','NW',NULL,NULL,NULL,NULL,'South Bound Brook',1,1029,NULL,'08880',NULL,1228,40.553803,-74.52976,0,NULL,NULL,NULL),(59,96,1,1,0,'558C Dowlen Pl SW',558,'C',NULL,'Dowlen','Pl','SW',NULL,NULL,NULL,NULL,'Sun City Center',1,1008,NULL,'33571',NULL,1228,27.720111,-82.453041,0,NULL,NULL,NULL),(60,150,1,1,0,'778X El Camino Ln SW',778,'X',NULL,'El Camino','Ln','SW',NULL,NULL,NULL,NULL,'Fresno',1,1004,NULL,'93761',NULL,1228,36.746375,-119.639658,0,NULL,NULL,NULL),(61,83,3,1,0,'174M Jackson Way N',174,'M',NULL,'Jackson','Way','N',NULL,'Mailstop 101',NULL,NULL,'Alma',1,1021,NULL,'48802',NULL,1228,43.389262,-84.666661,0,NULL,NULL,NULL),(62,3,2,0,0,'174M Jackson Way N',174,'M',NULL,'Jackson','Way','N',NULL,'Mailstop 101',NULL,NULL,'Alma',1,1021,NULL,'48802',NULL,1228,43.389262,-84.666661,0,NULL,NULL,61),(63,86,3,1,0,'398E Lincoln Rd SW',398,'E',NULL,'Lincoln','Rd','SW',NULL,'Cuffe Parade',NULL,NULL,'Parowan',1,1043,NULL,'84761',NULL,1228,37.886163,-112.83945,0,NULL,NULL,NULL),(64,10,3,1,0,'559M Pine Ln E',559,'M',NULL,'Pine','Ln','E',NULL,'Payables Dept.',NULL,NULL,'Redmon',1,1012,NULL,'61949',NULL,1228,39.646359,-87.86014,0,NULL,NULL,NULL),(65,179,2,1,0,'559M Pine Ln E',559,'M',NULL,'Pine','Ln','E',NULL,'Payables Dept.',NULL,NULL,'Redmon',1,1012,NULL,'61949',NULL,1228,39.646359,-87.86014,0,NULL,NULL,64),(66,181,3,1,0,'247Q Cadell Dr NE',247,'Q',NULL,'Cadell','Dr','NE',NULL,'Community Relations',NULL,NULL,'Prairie Du Sac',1,1048,NULL,'53578',NULL,1228,43.318318,-89.74928,0,NULL,NULL,NULL),(67,71,2,1,0,'247Q Cadell Dr NE',247,'Q',NULL,'Cadell','Dr','NE',NULL,'Community Relations',NULL,NULL,'Prairie Du Sac',1,1048,NULL,'53578',NULL,1228,43.318318,-89.74928,0,NULL,NULL,66),(68,29,3,1,0,'638T Dowlen Ln W',638,'T',NULL,'Dowlen','Ln','W',NULL,'Mailstop 101',NULL,NULL,'Sisseton',1,1040,NULL,'57262',NULL,1228,45.667565,-97.04528,0,NULL,NULL,NULL),(69,63,2,1,0,'638T Dowlen Ln W',638,'T',NULL,'Dowlen','Ln','W',NULL,'Mailstop 101',NULL,NULL,'Sisseton',1,1040,NULL,'57262',NULL,1228,45.667565,-97.04528,0,NULL,NULL,68),(70,187,3,1,0,'998G Dowlen Blvd NW',998,'G',NULL,'Dowlen','Blvd','NW',NULL,'Donor Relations',NULL,NULL,'Biwabik',1,1022,NULL,'55708',NULL,1228,47.533314,-92.34084,0,NULL,NULL,NULL),(71,189,2,0,0,'998G Dowlen Blvd NW',998,'G',NULL,'Dowlen','Blvd','NW',NULL,'Donor Relations',NULL,NULL,'Biwabik',1,1022,NULL,'55708',NULL,1228,47.533314,-92.34084,0,NULL,NULL,70),(72,155,3,1,0,'303Y Martin Luther King Dr NW',303,'Y',NULL,'Martin Luther King','Dr','NW',NULL,'Donor Relations',NULL,NULL,'Jamestown',1,1045,NULL,'23081',NULL,1228,37.223482,-76.783317,0,NULL,NULL,NULL),(73,16,3,1,0,'459U Main Way N',459,'U',NULL,'Main','Way','N',NULL,'Payables Dept.',NULL,NULL,'Bertrand',1,1024,NULL,'63823',NULL,1228,36.905584,-89.44945,0,NULL,NULL,NULL),(74,161,3,1,0,'801B Cadell Way NW',801,'B',NULL,'Cadell','Way','NW',NULL,'Churchgate',NULL,NULL,'Washington',1,1050,NULL,'20070',NULL,1228,38.893311,-77.014647,0,NULL,NULL,NULL),(75,138,3,1,0,'356F Dowlen Dr NW',356,'F',NULL,'Dowlen','Dr','NW',NULL,'Attn: Accounting',NULL,NULL,'Imboden',1,1003,NULL,'72434',NULL,1228,36.21601,-91.15872,0,NULL,NULL,NULL),(76,38,3,1,0,'540J Bay Blvd SW',540,'J',NULL,'Bay','Blvd','SW',NULL,'Disbursements',NULL,NULL,'Moorpark',1,1004,NULL,'93020',NULL,1228,34.032383,-119.1343,0,NULL,NULL,NULL),(77,6,3,1,0,'629S Maple Path SE',629,'S',NULL,'Maple','Path','SE',NULL,'Donor Relations',NULL,NULL,'York Haven',1,1037,NULL,'17370',NULL,1228,40.120806,-76.76352,0,NULL,NULL,NULL),(78,27,3,1,0,'35S Cadell Path S',35,'S',NULL,'Cadell','Path','S',NULL,'Payables Dept.',NULL,NULL,'Fredericksburg',1,1045,NULL,'22408',NULL,1228,38.236023,-77.46111,0,NULL,NULL,NULL),(79,58,2,1,0,'35S Cadell Path S',35,'S',NULL,'Cadell','Path','S',NULL,'Payables Dept.',NULL,NULL,'Fredericksburg',1,1045,NULL,'22408',NULL,1228,38.236023,-77.46111,0,NULL,NULL,78),(80,128,3,1,0,'446K El Camino Blvd S',446,'K',NULL,'El Camino','Blvd','S',NULL,'c/o OPDC',NULL,NULL,'Salford',1,1037,NULL,'18957',NULL,1228,40.302945,-75.448579,0,NULL,NULL,NULL),(81,69,3,1,0,'570G States Path NW',570,'G',NULL,'States','Path','NW',NULL,'Cuffe Parade',NULL,NULL,'Round O',1,1039,NULL,'29474',NULL,1228,32.939642,-80.54405,0,NULL,NULL,NULL),(82,142,3,1,0,'447Q Lincoln Dr NW',447,'Q',NULL,'Lincoln','Dr','NW',NULL,'Disbursements',NULL,NULL,'Ephraim',1,1048,NULL,'54211',NULL,1228,45.158078,-87.16796,0,NULL,NULL,NULL),(83,93,2,1,0,'447Q Lincoln Dr NW',447,'Q',NULL,'Lincoln','Dr','NW',NULL,'Disbursements',NULL,NULL,'Ephraim',1,1048,NULL,'54211',NULL,1228,45.158078,-87.16796,0,NULL,NULL,82),(84,11,3,1,0,'486H Green Ln NW',486,'H',NULL,'Green','Ln','NW',NULL,'c/o PO Plus',NULL,NULL,'Sanders',1,1025,NULL,'59076',NULL,1228,46.2644,-107.07438,0,NULL,NULL,NULL),(85,120,3,1,0,'218C Woodbridge Path SW',218,'C',NULL,'Woodbridge','Path','SW',NULL,'Receiving',NULL,NULL,'Woodworth',1,1048,NULL,'53194',NULL,1228,42.58098,-87.662878,0,NULL,NULL,NULL),(86,75,2,1,0,'218C Woodbridge Path SW',218,'C',NULL,'Woodbridge','Path','SW',NULL,'Receiving',NULL,NULL,'Woodworth',1,1048,NULL,'53194',NULL,1228,42.58098,-87.662878,0,NULL,NULL,85),(87,56,3,1,0,'683L Jackson St S',683,'L',NULL,'Jackson','St','S',NULL,'Editorial Dept',NULL,NULL,'Overpeck',1,1034,NULL,'45055',NULL,1228,39.451806,-84.515245,0,NULL,NULL,NULL),(88,24,2,1,0,'683L Jackson St S',683,'L',NULL,'Jackson','St','S',NULL,'Editorial Dept',NULL,NULL,'Overpeck',1,1034,NULL,'45055',NULL,1228,39.451806,-84.515245,0,NULL,NULL,87),(89,76,3,1,0,'620T College Ave E',620,'T',NULL,'College','Ave','E',NULL,'Community Relations',NULL,NULL,'Newark',1,1034,NULL,'43093',NULL,1228,40.095148,-82.482659,0,NULL,NULL,NULL),(90,84,1,1,0,'608X Northpoint Path S',608,'X',NULL,'Northpoint','Path','S',NULL,NULL,NULL,NULL,'Laredo',1,1042,NULL,'78093',NULL,1228,27.492996,-99.463668,0,NULL,NULL,41),(91,192,1,1,0,'608X Northpoint Path S',608,'X',NULL,'Northpoint','Path','S',NULL,NULL,NULL,NULL,'Laredo',1,1042,NULL,'78093',NULL,1228,27.492996,-99.463668,0,NULL,NULL,41),(92,48,1,1,0,'608X Northpoint Path S',608,'X',NULL,'Northpoint','Path','S',NULL,NULL,NULL,NULL,'Laredo',1,1042,NULL,'78093',NULL,1228,27.492996,-99.463668,0,NULL,NULL,41),(93,119,1,0,0,'608X Northpoint Path S',608,'X',NULL,'Northpoint','Path','S',NULL,NULL,NULL,NULL,'Laredo',1,1042,NULL,'78093',NULL,1228,27.492996,-99.463668,0,NULL,NULL,41),(94,105,1,1,0,'256Z Beech St NW',256,'Z',NULL,'Beech','St','NW',NULL,NULL,NULL,NULL,'Oxford',1,1006,NULL,'06748',NULL,1228,41.586368,-73.43657,0,NULL,NULL,42),(95,2,1,1,0,'256Z Beech St NW',256,'Z',NULL,'Beech','St','NW',NULL,NULL,NULL,NULL,'Oxford',1,1006,NULL,'06748',NULL,1228,41.586368,-73.43657,0,NULL,NULL,42),(96,112,1,1,0,'256Z Beech St NW',256,'Z',NULL,'Beech','St','NW',NULL,NULL,NULL,NULL,'Oxford',1,1006,NULL,'06748',NULL,1228,41.586368,-73.43657,0,NULL,NULL,42),(97,147,1,1,0,'400D Northpoint Dr W',400,'D',NULL,'Northpoint','Dr','W',NULL,NULL,NULL,NULL,'Minneapolis',1,1022,NULL,'55483',NULL,1228,45.015914,-93.47188,0,NULL,NULL,NULL),(98,123,1,1,0,'565C College Dr N',565,'C',NULL,'College','Dr','N',NULL,NULL,NULL,NULL,'Auburn',1,1018,NULL,'04210',NULL,1228,44.089173,-70.24143,0,NULL,NULL,43),(99,95,1,1,0,'565C College Dr N',565,'C',NULL,'College','Dr','N',NULL,NULL,NULL,NULL,'Auburn',1,1018,NULL,'04210',NULL,1228,44.089173,-70.24143,0,NULL,NULL,43),(100,36,1,1,0,'565C College Dr N',565,'C',NULL,'College','Dr','N',NULL,NULL,NULL,NULL,'Auburn',1,1018,NULL,'04210',NULL,1228,44.089173,-70.24143,0,NULL,NULL,43),(101,129,1,1,0,'565C College Dr N',565,'C',NULL,'College','Dr','N',NULL,NULL,NULL,NULL,'Auburn',1,1018,NULL,'04210',NULL,1228,44.089173,-70.24143,0,NULL,NULL,43),(102,25,1,1,0,'531G Martin Luther King Pl W',531,'G',NULL,'Martin Luther King','Pl','W',NULL,NULL,NULL,NULL,'Metaline Falls',1,1046,NULL,'99153',NULL,1228,48.858518,-117.29833,0,NULL,NULL,44),(103,131,1,1,0,'531G Martin Luther King Pl W',531,'G',NULL,'Martin Luther King','Pl','W',NULL,NULL,NULL,NULL,'Metaline Falls',1,1046,NULL,'99153',NULL,1228,48.858518,-117.29833,0,NULL,NULL,44),(104,132,1,1,0,'531G Martin Luther King Pl W',531,'G',NULL,'Martin Luther King','Pl','W',NULL,NULL,NULL,NULL,'Metaline Falls',1,1046,NULL,'99153',NULL,1228,48.858518,-117.29833,0,NULL,NULL,44),(105,134,1,1,0,'874P Bay Ave SW',874,'P',NULL,'Bay','Ave','SW',NULL,NULL,NULL,NULL,'Miami',1,1008,NULL,'33165',NULL,1228,25.734828,-80.3583,0,NULL,NULL,NULL),(106,121,1,1,0,'58M Caulder Ave W',58,'M',NULL,'Caulder','Ave','W',NULL,NULL,NULL,NULL,'Tullahoma',1,1041,NULL,'37388',NULL,1228,35.357522,-86.21484,0,NULL,NULL,45),(107,125,1,1,0,'58M Caulder Ave W',58,'M',NULL,'Caulder','Ave','W',NULL,NULL,NULL,NULL,'Tullahoma',1,1041,NULL,'37388',NULL,1228,35.357522,-86.21484,0,NULL,NULL,45),(108,64,1,1,0,'58M Caulder Ave W',58,'M',NULL,'Caulder','Ave','W',NULL,NULL,NULL,NULL,'Tullahoma',1,1041,NULL,'37388',NULL,1228,35.357522,-86.21484,0,NULL,NULL,45),(109,43,1,1,0,'58M Caulder Ave W',58,'M',NULL,'Caulder','Ave','W',NULL,NULL,NULL,NULL,'Tullahoma',1,1041,NULL,'37388',NULL,1228,35.357522,-86.21484,0,NULL,NULL,45),(110,9,1,1,0,'795I Beech Ave NE',795,'I',NULL,'Beech','Ave','NE',NULL,NULL,NULL,NULL,'Quinebaug',1,1006,NULL,'06262',NULL,1228,42.022904,-71.94671,0,NULL,NULL,46),(111,115,1,1,0,'795I Beech Ave NE',795,'I',NULL,'Beech','Ave','NE',NULL,NULL,NULL,NULL,'Quinebaug',1,1006,NULL,'06262',NULL,1228,42.022904,-71.94671,0,NULL,NULL,46),(112,141,1,1,0,'795I Beech Ave NE',795,'I',NULL,'Beech','Ave','NE',NULL,NULL,NULL,NULL,'Quinebaug',1,1006,NULL,'06262',NULL,1228,42.022904,-71.94671,0,NULL,NULL,46),(113,152,1,1,0,'159Z El Camino Dr W',159,'Z',NULL,'El Camino','Dr','W',NULL,NULL,NULL,NULL,'Hood',1,1045,NULL,'22723',NULL,1228,38.331957,-78.3774,0,NULL,NULL,NULL),(114,158,1,1,0,'868O Van Ness Ave SE',868,'O',NULL,'Van Ness','Ave','SE',NULL,NULL,NULL,NULL,'Selma',1,1014,NULL,'52588',NULL,1228,40.873769,-92.13113,0,NULL,NULL,47),(115,41,1,1,0,'868O Van Ness Ave SE',868,'O',NULL,'Van Ness','Ave','SE',NULL,NULL,NULL,NULL,'Selma',1,1014,NULL,'52588',NULL,1228,40.873769,-92.13113,0,NULL,NULL,47),(116,94,1,1,0,'868O Van Ness Ave SE',868,'O',NULL,'Van Ness','Ave','SE',NULL,NULL,NULL,NULL,'Selma',1,1014,NULL,'52588',NULL,1228,40.873769,-92.13113,0,NULL,NULL,47),(117,65,1,1,0,'868O Van Ness Ave SE',868,'O',NULL,'Van Ness','Ave','SE',NULL,NULL,NULL,NULL,'Selma',1,1014,NULL,'52588',NULL,1228,40.873769,-92.13113,0,NULL,NULL,47),(118,183,1,1,0,'3P Caulder Pl SW',3,'P',NULL,'Caulder','Pl','SW',NULL,NULL,NULL,NULL,'Winchester',1,1016,NULL,'40392',NULL,1228,37.968496,-84.157766,0,NULL,NULL,48),(119,71,1,0,0,'3P Caulder Pl SW',3,'P',NULL,'Caulder','Pl','SW',NULL,NULL,NULL,NULL,'Winchester',1,1016,NULL,'40392',NULL,1228,37.968496,-84.157766,0,NULL,NULL,48),(120,151,1,1,0,'3P Caulder Pl SW',3,'P',NULL,'Caulder','Pl','SW',NULL,NULL,NULL,NULL,'Winchester',1,1016,NULL,'40392',NULL,1228,37.968496,-84.157766,0,NULL,NULL,48),(121,101,1,1,0,'19W Jackson St E',19,'W',NULL,'Jackson','St','E',NULL,NULL,NULL,NULL,'Holbrook',1,1020,NULL,'02343',NULL,1228,42.148351,-71.01037,0,NULL,NULL,NULL),(122,67,1,1,0,'351P Caulder Ln E',351,'P',NULL,'Caulder','Ln','E',NULL,NULL,NULL,NULL,'Junction City',1,1048,NULL,'54443',NULL,1228,44.612879,-89.74163,0,NULL,NULL,49),(123,93,1,0,0,'351P Caulder Ln E',351,'P',NULL,'Caulder','Ln','E',NULL,NULL,NULL,NULL,'Junction City',1,1048,NULL,'54443',NULL,1228,44.612879,-89.74163,0,NULL,NULL,49),(124,199,1,1,0,'351P Caulder Ln E',351,'P',NULL,'Caulder','Ln','E',NULL,NULL,NULL,NULL,'Junction City',1,1048,NULL,'54443',NULL,1228,44.612879,-89.74163,0,NULL,NULL,49),(125,104,1,1,0,'351P Caulder Ln E',351,'P',NULL,'Caulder','Ln','E',NULL,NULL,NULL,NULL,'Junction City',1,1048,NULL,'54443',NULL,1228,44.612879,-89.74163,0,NULL,NULL,49),(126,92,1,1,0,'809T States Rd SW',809,'T',NULL,'States','Rd','SW',NULL,NULL,NULL,NULL,'Winnett',1,1025,NULL,'59087',NULL,1228,47.000478,-108.29005,0,NULL,NULL,50),(127,73,1,1,0,'809T States Rd SW',809,'T',NULL,'States','Rd','SW',NULL,NULL,NULL,NULL,'Winnett',1,1025,NULL,'59087',NULL,1228,47.000478,-108.29005,0,NULL,NULL,50),(128,68,1,1,0,'809T States Rd SW',809,'T',NULL,'States','Rd','SW',NULL,NULL,NULL,NULL,'Winnett',1,1025,NULL,'59087',NULL,1228,47.000478,-108.29005,0,NULL,NULL,50),(129,179,1,0,0,'809T States Rd SW',809,'T',NULL,'States','Rd','SW',NULL,NULL,NULL,NULL,'Winnett',1,1025,NULL,'59087',NULL,1228,47.000478,-108.29005,0,NULL,NULL,50),(130,140,1,1,0,'209I Green Dr S',209,'I',NULL,'Green','Dr','S',NULL,NULL,NULL,NULL,'Ohiopyle',1,1037,NULL,'15470',NULL,1228,39.854144,-79.52989,0,NULL,NULL,51),(131,201,1,1,0,'209I Green Dr S',209,'I',NULL,'Green','Dr','S',NULL,NULL,NULL,NULL,'Ohiopyle',1,1037,NULL,'15470',NULL,1228,39.854144,-79.52989,0,NULL,NULL,51),(132,58,1,0,0,'209I Green Dr S',209,'I',NULL,'Green','Dr','S',NULL,NULL,NULL,NULL,'Ohiopyle',1,1037,NULL,'15470',NULL,1228,39.854144,-79.52989,0,NULL,NULL,51),(133,188,1,1,0,'83T Martin Luther King St S',83,'T',NULL,'Martin Luther King','St','S',NULL,NULL,NULL,NULL,'Summerville',1,1036,NULL,'97876',NULL,1228,45.52535,-118.01193,0,NULL,NULL,NULL),(134,109,1,1,0,'88G Pine Blvd S',88,'G',NULL,'Pine','Blvd','S',NULL,NULL,NULL,NULL,'South Bend',1,1026,NULL,'68058',NULL,1228,41.003188,-96.24529,0,NULL,NULL,52),(135,35,1,1,0,'88G Pine Blvd S',88,'G',NULL,'Pine','Blvd','S',NULL,NULL,NULL,NULL,'South Bend',1,1026,NULL,'68058',NULL,1228,41.003188,-96.24529,0,NULL,NULL,52),(136,195,1,1,0,'88G Pine Blvd S',88,'G',NULL,'Pine','Blvd','S',NULL,NULL,NULL,NULL,'South Bend',1,1026,NULL,'68058',NULL,1228,41.003188,-96.24529,0,NULL,NULL,52),(137,114,1,1,0,'88G Pine Blvd S',88,'G',NULL,'Pine','Blvd','S',NULL,NULL,NULL,NULL,'South Bend',1,1026,NULL,'68058',NULL,1228,41.003188,-96.24529,0,NULL,NULL,52),(138,190,1,1,0,'325I States Way N',325,'I',NULL,'States','Way','N',NULL,NULL,NULL,NULL,'Tumacacori',1,1002,NULL,'85640',NULL,1228,31.586392,-111.0416,0,NULL,NULL,53),(139,146,1,1,0,'325I States Way N',325,'I',NULL,'States','Way','N',NULL,NULL,NULL,NULL,'Tumacacori',1,1002,NULL,'85640',NULL,1228,31.586392,-111.0416,0,NULL,NULL,53),(140,160,1,1,0,'325I States Way N',325,'I',NULL,'States','Way','N',NULL,NULL,NULL,NULL,'Tumacacori',1,1002,NULL,'85640',NULL,1228,31.586392,-111.0416,0,NULL,NULL,53),(141,175,1,1,0,'329U Cadell Way N',329,'U',NULL,'Cadell','Way','N',NULL,NULL,NULL,NULL,'Nashville',1,1041,NULL,'37248',NULL,1228,36.186605,-86.785248,0,NULL,NULL,NULL),(142,81,1,1,0,'128F Maple Ln N',128,'F',NULL,'Maple','Ln','N',NULL,NULL,NULL,NULL,'Alexandria',1,1017,NULL,'71303',NULL,1228,31.302432,-92.50515,0,NULL,NULL,54),(143,85,1,1,0,'128F Maple Ln N',128,'F',NULL,'Maple','Ln','N',NULL,NULL,NULL,NULL,'Alexandria',1,1017,NULL,'71303',NULL,1228,31.302432,-92.50515,0,NULL,NULL,54),(144,79,1,1,0,'128F Maple Ln N',128,'F',NULL,'Maple','Ln','N',NULL,NULL,NULL,NULL,'Alexandria',1,1017,NULL,'71303',NULL,1228,31.302432,-92.50515,0,NULL,NULL,54),(145,52,1,1,0,'163U Maple Ave S',163,'U',NULL,'Maple','Ave','S',NULL,NULL,NULL,NULL,'Pickwick Dam',1,1041,NULL,'38365',NULL,1228,35.038284,-88.225601,0,NULL,NULL,NULL),(146,47,1,1,0,'941A El Camino Ave SW',941,'A',NULL,'El Camino','Ave','SW',NULL,NULL,NULL,NULL,'Montgomery',1,1000,NULL,'36111',NULL,1228,32.338989,-86.27316,0,NULL,NULL,55),(147,32,1,1,0,'941A El Camino Ave SW',941,'A',NULL,'El Camino','Ave','SW',NULL,NULL,NULL,NULL,'Montgomery',1,1000,NULL,'36111',NULL,1228,32.338989,-86.27316,0,NULL,NULL,55),(148,143,1,1,0,'941A El Camino Ave SW',941,'A',NULL,'El Camino','Ave','SW',NULL,NULL,NULL,NULL,'Montgomery',1,1000,NULL,'36111',NULL,1228,32.338989,-86.27316,0,NULL,NULL,55),(149,24,1,0,0,'864P Woodbridge Ave NW',864,'P',NULL,'Woodbridge','Ave','NW',NULL,NULL,NULL,NULL,'Archer',1,1026,NULL,'68816',NULL,1228,41.172932,-98.12755,0,NULL,NULL,NULL),(150,185,1,1,0,'21C States Blvd NW',21,'C',NULL,'States','Blvd','NW',NULL,NULL,NULL,NULL,'Collison',1,1012,NULL,'61831',NULL,1228,40.2159,-87.78418,0,NULL,NULL,56),(151,135,1,1,0,'21C States Blvd NW',21,'C',NULL,'States','Blvd','NW',NULL,NULL,NULL,NULL,'Collison',1,1012,NULL,'61831',NULL,1228,40.2159,-87.78418,0,NULL,NULL,56),(152,130,1,1,0,'21C States Blvd NW',21,'C',NULL,'States','Blvd','NW',NULL,NULL,NULL,NULL,'Collison',1,1012,NULL,'61831',NULL,1228,40.2159,-87.78418,0,NULL,NULL,56),(153,139,1,1,0,'50E Green Way NE',50,'E',NULL,'Green','Way','NE',NULL,NULL,NULL,NULL,'Athens',1,1009,NULL,'30601',NULL,1228,33.979016,-83.36423,0,NULL,NULL,NULL),(154,198,1,1,0,'718E Van Ness Way SW',718,'E',NULL,'Van Ness','Way','SW',NULL,NULL,NULL,NULL,'Woodruff',1,1002,NULL,'85942',NULL,1228,34.778649,-109.96697,0,NULL,NULL,57),(155,106,1,1,0,'718E Van Ness Way SW',718,'E',NULL,'Van Ness','Way','SW',NULL,NULL,NULL,NULL,'Woodruff',1,1002,NULL,'85942',NULL,1228,34.778649,-109.96697,0,NULL,NULL,57),(156,62,1,1,0,'718E Van Ness Way SW',718,'E',NULL,'Van Ness','Way','SW',NULL,NULL,NULL,NULL,'Woodruff',1,1002,NULL,'85942',NULL,1228,34.778649,-109.96697,0,NULL,NULL,57),(157,63,1,0,0,'161O College Blvd N',161,'O',NULL,'College','Blvd','N',NULL,NULL,NULL,NULL,'Nortonville',1,1015,NULL,'66060',NULL,1228,39.415907,-95.32966,0,NULL,NULL,NULL),(158,136,1,1,0,'126H Green Dr NW',126,'H',NULL,'Green','Dr','NW',NULL,NULL,NULL,NULL,'South Bound Brook',1,1029,NULL,'08880',NULL,1228,40.553803,-74.52976,0,NULL,NULL,58),(159,31,1,1,0,'126H Green Dr NW',126,'H',NULL,'Green','Dr','NW',NULL,NULL,NULL,NULL,'South Bound Brook',1,1029,NULL,'08880',NULL,1228,40.553803,-74.52976,0,NULL,NULL,58),(160,153,1,1,0,'126H Green Dr NW',126,'H',NULL,'Green','Dr','NW',NULL,NULL,NULL,NULL,'South Bound Brook',1,1029,NULL,'08880',NULL,1228,40.553803,-74.52976,0,NULL,NULL,58),(161,182,1,1,0,'126H Green Dr NW',126,'H',NULL,'Green','Dr','NW',NULL,NULL,NULL,NULL,'South Bound Brook',1,1029,NULL,'08880',NULL,1228,40.553803,-74.52976,0,NULL,NULL,58),(162,178,1,1,0,'558C Dowlen Pl SW',558,'C',NULL,'Dowlen','Pl','SW',NULL,NULL,NULL,NULL,'Sun City Center',1,1008,NULL,'33571',NULL,1228,27.720111,-82.453041,0,NULL,NULL,59),(163,165,1,1,0,'558C Dowlen Pl SW',558,'C',NULL,'Dowlen','Pl','SW',NULL,NULL,NULL,NULL,'Sun City Center',1,1008,NULL,'33571',NULL,1228,27.720111,-82.453041,0,NULL,NULL,59),(164,15,1,1,0,'558C Dowlen Pl SW',558,'C',NULL,'Dowlen','Pl','SW',NULL,NULL,NULL,NULL,'Sun City Center',1,1008,NULL,'33571',NULL,1228,27.720111,-82.453041,0,NULL,NULL,59),(165,12,1,1,0,'369H College Blvd SE',369,'H',NULL,'College','Blvd','SE',NULL,NULL,NULL,NULL,'Ellsworth',1,1014,NULL,'50075',NULL,1228,42.325266,-93.56507,0,NULL,NULL,NULL),(166,45,1,1,0,'778X El Camino Ln SW',778,'X',NULL,'El Camino','Ln','SW',NULL,NULL,NULL,NULL,'Fresno',1,1004,NULL,'93761',NULL,1228,36.746375,-119.639658,0,NULL,NULL,60),(167,154,1,1,0,'778X El Camino Ln SW',778,'X',NULL,'El Camino','Ln','SW',NULL,NULL,NULL,NULL,'Fresno',1,1004,NULL,'93761',NULL,1228,36.746375,-119.639658,0,NULL,NULL,60),(168,91,1,1,0,'778X El Camino Ln SW',778,'X',NULL,'El Camino','Ln','SW',NULL,NULL,NULL,NULL,'Fresno',1,1004,NULL,'93761',NULL,1228,36.746375,-119.639658,0,NULL,NULL,60),(169,77,1,1,0,'205P Caulder Ln SW',205,'P',NULL,'Caulder','Ln','SW',NULL,NULL,NULL,NULL,'Gordon',1,1042,NULL,'76453',NULL,1228,32.572618,-98.36399,0,NULL,NULL,NULL),(170,NULL,1,1,1,'14S El Camino Way E',14,'S',NULL,'El Camino','Way',NULL,NULL,NULL,NULL,NULL,'Collinsville',NULL,1006,NULL,'6022',NULL,1228,41.8328,-72.9253,0,NULL,NULL,NULL),(171,NULL,1,1,1,'11B Woodbridge Path SW',11,'B',NULL,'Woodbridge','Path',NULL,NULL,NULL,NULL,NULL,'Dayton',NULL,1034,NULL,'45417',NULL,1228,39.7531,-84.2471,0,NULL,NULL,NULL),(172,NULL,1,1,1,'581O Lincoln Dr SW',581,'O',NULL,'Lincoln','Dr',NULL,NULL,NULL,NULL,NULL,'Santa Fe',NULL,1030,NULL,'87594',NULL,1228,35.5212,-105.982,0,NULL,NULL,NULL);
+INSERT INTO `civicrm_address` (`id`, `contact_id`, `location_type_id`, `is_primary`, `is_billing`, `street_address`, `street_number`, `street_number_suffix`, `street_number_predirectional`, `street_name`, `street_type`, `street_number_postdirectional`, `street_unit`, `supplemental_address_1`, `supplemental_address_2`, `supplemental_address_3`, `city`, `county_id`, `state_province_id`, `postal_code_suffix`, `postal_code`, `usps_adc`, `country_id`, `geo_code_1`, `geo_code_2`, `manual_geo_code`, `timezone`, `name`, `master_id`) VALUES (1,43,1,1,0,'190Q Martin Luther King Rd NW',190,'Q',NULL,'Martin Luther King','Rd','NW',NULL,NULL,NULL,NULL,'Sun Valley',1,1011,NULL,'83354',NULL,1228,43.681156,-114.33214,0,NULL,NULL,NULL),(2,140,1,1,0,'599H Bay Ln NE',599,'H',NULL,'Bay','Ln','NE',NULL,NULL,NULL,NULL,'Medina',1,1031,NULL,'14103',NULL,1228,43.217155,-78.38746,0,NULL,NULL,NULL),(3,95,1,1,0,'493V States Rd NW',493,'V',NULL,'States','Rd','NW',NULL,NULL,NULL,NULL,'Minidoka',1,1011,NULL,'83343',NULL,1228,42.772955,-113.509762,0,NULL,NULL,NULL),(4,106,1,1,0,'345R Maple Pl SW',345,'R',NULL,'Maple','Pl','SW',NULL,NULL,NULL,NULL,'Goshen',1,1013,NULL,'46528',NULL,1228,41.600649,-85.81902,0,NULL,NULL,NULL),(5,127,1,1,0,'531L Main Path S',531,'L',NULL,'Main','Path','S',NULL,NULL,NULL,NULL,'Denton',1,1015,NULL,'66017',NULL,1228,39.720911,-95.27417,0,NULL,NULL,NULL),(6,137,1,1,0,'25W College Blvd E',25,'W',NULL,'College','Blvd','E',NULL,NULL,NULL,NULL,'Spokane',1,1046,NULL,'99252',NULL,1228,47.653568,-117.431742,0,NULL,NULL,NULL),(7,105,1,1,0,'45R Dowlen Way N',45,'R',NULL,'Dowlen','Way','N',NULL,NULL,NULL,NULL,'Prattsburgh',1,1031,NULL,'14873',NULL,1228,42.525335,-77.29673,0,NULL,NULL,NULL),(8,9,1,1,0,'176U Woodbridge Ln NE',176,'U',NULL,'Woodbridge','Ln','NE',NULL,NULL,NULL,NULL,'Steelville',1,1037,NULL,'19370',NULL,1228,39.983153,-75.748055,0,NULL,NULL,NULL),(9,158,1,1,0,'247Y Martin Luther King Way NW',247,'Y',NULL,'Martin Luther King','Way','NW',NULL,NULL,NULL,NULL,'Shaw A F B',1,1039,NULL,'29152',NULL,1228,33.972863,-80.46534,0,NULL,NULL,NULL),(10,117,1,1,0,'62A Green Ave SW',62,'A',NULL,'Green','Ave','SW',NULL,NULL,NULL,NULL,'Middletown',1,1019,NULL,'21769',NULL,1228,39.446452,-77.55169,0,NULL,NULL,NULL),(11,165,1,1,0,'681W Beech Ave S',681,'W',NULL,'Beech','Ave','S',NULL,NULL,NULL,NULL,'Houma',1,1017,NULL,'70360',NULL,1228,29.593377,-90.7475,0,NULL,NULL,NULL),(12,72,1,1,0,'201J Second Rd E',201,'J',NULL,'Second','Rd','E',NULL,NULL,NULL,NULL,'Chester',1,1045,NULL,'23831',NULL,1228,37.350999,-77.43959,0,NULL,NULL,NULL),(13,186,1,1,0,'639R Beech Dr SE',639,'R',NULL,'Beech','Dr','SE',NULL,NULL,NULL,NULL,'East Middlebury',1,1044,NULL,'05740',NULL,1228,43.97153,-73.091416,0,NULL,NULL,NULL),(14,40,1,1,0,'243X Beech St S',243,'X',NULL,'Beech','St','S',NULL,NULL,NULL,NULL,'Queensbury',1,1031,NULL,'12825',NULL,1228,42.973468,-74.406393,0,NULL,NULL,NULL),(15,143,1,1,0,'191M States Ln S',191,'M',NULL,'States','Ln','S',NULL,NULL,NULL,NULL,'Mooseheart',1,1012,NULL,'60539',NULL,1228,41.823478,-88.3332,0,NULL,NULL,NULL),(16,37,1,1,0,'969O Green Blvd N',969,'O',NULL,'Green','Blvd','N',NULL,NULL,NULL,NULL,'Fort Madison',1,1014,NULL,'52627',NULL,1228,40.637694,-91.33866,0,NULL,NULL,NULL),(17,164,1,1,0,'996C Lincoln Dr NW',996,'C',NULL,'Lincoln','Dr','NW',NULL,NULL,NULL,NULL,'Lemoore',1,1004,NULL,'93245',NULL,1228,36.312075,-119.80349,0,NULL,NULL,NULL),(18,63,1,1,0,'547E Pine Blvd SE',547,'E',NULL,'Pine','Blvd','SE',NULL,NULL,NULL,NULL,'Melvin',1,1000,NULL,'36913',NULL,1228,32.004227,-88.200738,0,NULL,NULL,NULL),(19,130,1,1,0,'149P Maple Way E',149,'P',NULL,'Maple','Way','E',NULL,NULL,NULL,NULL,'Greeley',1,1037,NULL,'18425',NULL,1228,41.419116,-75.00683,0,NULL,NULL,NULL),(20,100,1,1,0,'547P Van Ness Ln SW',547,'P',NULL,'Van Ness','Ln','SW',NULL,NULL,NULL,NULL,'Pathfork',1,1016,NULL,'40863',NULL,1228,36.753043,-83.44991,0,NULL,NULL,NULL),(21,16,1,1,0,'166Q Caulder Pl N',166,'Q',NULL,'Caulder','Pl','N',NULL,NULL,NULL,NULL,'Destin',1,1008,NULL,'32541',NULL,1228,30.391795,-86.4338,0,NULL,NULL,NULL),(22,162,1,1,0,'481Y Lincoln Pl SE',481,'Y',NULL,'Lincoln','Pl','SE',NULL,NULL,NULL,NULL,'Weskan',1,1015,NULL,'67762',NULL,1228,38.930464,-101.99084,0,NULL,NULL,NULL),(23,59,1,1,0,'940I Maple Ln S',940,'I',NULL,'Maple','Ln','S',NULL,NULL,NULL,NULL,'Wichita Falls',1,1042,NULL,'76308',NULL,1228,33.859798,-98.54064,0,NULL,NULL,NULL),(24,144,1,1,0,'652A Dowlen Dr NE',652,'A',NULL,'Dowlen','Dr','NE',NULL,NULL,NULL,NULL,'Swiftwater',1,1037,NULL,'18370',NULL,1228,41.095437,-75.3191,0,NULL,NULL,NULL),(25,122,1,1,0,'500I Caulder Pl W',500,'I',NULL,'Caulder','Pl','W',NULL,NULL,NULL,NULL,'Draper',1,1045,NULL,'24324',NULL,1228,36.973028,-80.79309,0,NULL,NULL,NULL),(26,111,1,1,0,'606F Green St W',606,'F',NULL,'Green','St','W',NULL,NULL,NULL,NULL,'Rockville',1,1019,NULL,'20847',NULL,1228,39.143979,-77.207617,0,NULL,NULL,NULL),(27,181,1,1,0,'861W Bay Ave NE',861,'W',NULL,'Bay','Ave','NE',NULL,NULL,NULL,NULL,'New Waverly',1,1013,NULL,'46961',NULL,1228,40.765286,-86.1918,0,NULL,NULL,NULL),(28,176,1,1,0,'173K College St W',173,'K',NULL,'College','St','W',NULL,NULL,NULL,NULL,'Plainfield',1,1034,NULL,'43836',NULL,1228,40.200382,-81.720675,0,NULL,NULL,NULL),(29,178,1,1,0,'990Y El Camino Ave W',990,'Y',NULL,'El Camino','Ave','W',NULL,NULL,NULL,NULL,'Sweet Home',1,1042,NULL,'77987',NULL,1228,29.347975,-96.900331,0,NULL,NULL,NULL),(30,131,1,1,0,'920N Caulder Ln NE',920,'N',NULL,'Caulder','Ln','NE',NULL,NULL,NULL,NULL,'Carson City',1,1027,NULL,'89706',NULL,1228,39.200035,-119.72732,0,NULL,NULL,NULL),(31,103,1,1,0,'194Y Jackson Dr W',194,'Y',NULL,'Jackson','Dr','W',NULL,NULL,NULL,NULL,'Anniston',1,1000,NULL,'36204',NULL,1228,33.762195,-85.837828,0,NULL,NULL,NULL),(32,65,1,1,0,'95Q Jackson St E',95,'Q',NULL,'Jackson','St','E',NULL,NULL,NULL,NULL,'Ahwahnee',1,1004,NULL,'93601',NULL,1228,37.388698,-119.72439,0,NULL,NULL,NULL),(33,109,1,1,0,'215T Martin Luther King Way S',215,'T',NULL,'Martin Luther King','Way','S',NULL,NULL,NULL,NULL,'Athens',1,1018,NULL,'04912',NULL,1228,44.949136,-69.64968,0,NULL,NULL,NULL),(34,68,1,1,0,'997R Cadell Pl NE',997,'R',NULL,'Cadell','Pl','NE',NULL,NULL,NULL,NULL,'Ash Fork',1,1002,NULL,'86320',NULL,1228,35.178163,-112.56465,0,NULL,NULL,NULL),(35,55,1,1,0,'158D Maple Ln NW',158,'D',NULL,'Maple','Ln','NW',NULL,NULL,NULL,NULL,'Freeport',1,1034,NULL,'43973',NULL,1228,40.189812,-81.27506,0,NULL,NULL,NULL),(36,150,1,1,0,'166W Woodbridge Dr S',166,'W',NULL,'Woodbridge','Dr','S',NULL,NULL,NULL,NULL,'Boston',1,1031,NULL,'14025',NULL,1228,42.627312,-78.73768,0,NULL,NULL,NULL),(37,196,1,1,0,'60K States Pl N',60,'K',NULL,'States','Pl','N',NULL,NULL,NULL,NULL,'Prospect',1,1031,NULL,'13435',NULL,1228,43.305156,-75.150183,0,NULL,NULL,NULL),(38,32,1,1,0,'992U Lincoln Way W',992,'U',NULL,'Lincoln','Way','W',NULL,NULL,NULL,NULL,'Indianapolis',1,1013,NULL,'46222',NULL,1228,39.786793,-86.21093,0,NULL,NULL,NULL),(39,58,1,1,0,'356A Cadell Way NW',356,'A',NULL,'Cadell','Way','NW',NULL,NULL,NULL,NULL,'Martinsburg',1,1047,NULL,'25401',NULL,1228,39.463781,-77.95767,0,NULL,NULL,NULL),(40,173,1,1,0,'41F Cadell Dr N',41,'F',NULL,'Cadell','Dr','N',NULL,NULL,NULL,NULL,'Saint Louis',1,1024,NULL,'63117',NULL,1228,38.628402,-90.32636,0,NULL,NULL,NULL),(41,91,1,1,0,'570V Beech Pl NW',570,'V',NULL,'Beech','Pl','NW',NULL,NULL,NULL,NULL,'Eustace',1,1042,NULL,'75124',NULL,1228,32.310343,-96.00312,0,NULL,NULL,NULL),(42,57,1,1,0,'144F Bay Ln NE',144,'F',NULL,'Bay','Ln','NE',NULL,NULL,NULL,NULL,'Kansas City',1,1024,NULL,'64124',NULL,1228,39.107304,-94.53985,0,NULL,NULL,NULL),(43,112,1,1,0,'857N Northpoint Way W',857,'N',NULL,'Northpoint','Way','W',NULL,NULL,NULL,NULL,'Cutchogue',1,1031,NULL,'11935',NULL,1228,41.012868,-72.4723,0,NULL,NULL,NULL),(44,48,1,1,0,'755W Jackson Path NW',755,'W',NULL,'Jackson','Path','NW',NULL,NULL,NULL,NULL,'Odenville',1,1000,NULL,'35120',NULL,1228,33.668341,-86.43641,0,NULL,NULL,NULL),(45,188,1,1,0,'634L Dowlen Dr NW',634,'L',NULL,'Dowlen','Dr','NW',NULL,NULL,NULL,NULL,'Fort Worth',1,1042,NULL,'76120',NULL,1228,32.762631,-97.17527,0,NULL,NULL,NULL),(46,90,1,1,0,'122H Northpoint Ln S',122,'H',NULL,'Northpoint','Ln','S',NULL,NULL,NULL,NULL,'Pinon',1,1030,NULL,'88344',NULL,1228,32.663082,-105.36135,0,NULL,NULL,NULL),(47,139,1,1,0,'81N Lincoln Ln SE',81,'N',NULL,'Lincoln','Ln','SE',NULL,NULL,NULL,NULL,'Medley',1,1047,NULL,'26734',NULL,1228,39.070601,-79.233536,0,NULL,NULL,NULL),(48,171,1,1,0,'795M Jackson St SW',795,'M',NULL,'Jackson','St','SW',NULL,NULL,NULL,NULL,'Fountaintown',1,1013,NULL,'46130',NULL,1228,39.680058,-85.83363,0,NULL,NULL,NULL),(49,12,1,1,0,'234Q Beech Ln SE',234,'Q',NULL,'Beech','Ln','SE',NULL,NULL,NULL,NULL,'Williamson',1,1014,NULL,'50272',NULL,1228,41.08869,-93.25821,0,NULL,NULL,NULL),(50,134,1,1,0,'977M Beech Way W',977,'M',NULL,'Beech','Way','W',NULL,NULL,NULL,NULL,'Easton',1,1020,NULL,'02735',NULL,1228,41.999346,-71.113582,0,NULL,NULL,NULL),(51,8,1,1,0,'467Y Second Pl S',467,'Y',NULL,'Second','Pl','S',NULL,NULL,NULL,NULL,'Greenup',1,1016,NULL,'41144',NULL,1228,38.552472,-82.86514,0,NULL,NULL,NULL),(52,155,1,1,0,'793B Green Rd S',793,'B',NULL,'Green','Rd','S',NULL,NULL,NULL,NULL,'Tucson',1,1002,NULL,'85750',NULL,1228,32.292078,-110.84384,0,NULL,NULL,NULL),(53,198,1,1,0,'51Y Main Ave SW',51,'Y',NULL,'Main','Ave','SW',NULL,NULL,NULL,NULL,'Stella',1,1026,NULL,'68442',NULL,1228,40.229899,-95.77517,0,NULL,NULL,NULL),(54,148,1,1,0,'805G Green Pl E',805,'G',NULL,'Green','Pl','E',NULL,NULL,NULL,NULL,'Holland',1,1024,NULL,'63853',NULL,1228,36.058612,-89.87038,0,NULL,NULL,NULL),(55,61,1,1,0,'345U Pine Pl SE',345,'U',NULL,'Pine','Pl','SE',NULL,NULL,NULL,NULL,'Glen Aubrey',1,1031,NULL,'13777',NULL,1228,42.254154,-76.01194,0,NULL,NULL,NULL),(56,179,1,1,0,'379V El Camino Way S',379,'V',NULL,'El Camino','Way','S',NULL,NULL,NULL,NULL,'Montpelier',1,1023,NULL,'39754',NULL,1228,33.659271,-88.753976,0,NULL,NULL,NULL),(57,78,1,1,0,'651H Dowlen Path E',651,'H',NULL,'Dowlen','Path','E',NULL,NULL,NULL,NULL,'Natchitoches',1,1017,NULL,'71457',NULL,1228,31.751287,-93.09021,0,NULL,NULL,NULL),(58,172,1,1,0,'437R College Pl NW',437,'R',NULL,'College','Pl','NW',NULL,NULL,NULL,NULL,'Pinnacle',1,1032,NULL,'27043',NULL,1228,36.331502,-80.4417,0,NULL,NULL,NULL),(59,93,1,1,0,'154Z El Camino Way E',154,'Z',NULL,'El Camino','Way','E',NULL,NULL,NULL,NULL,'Force',1,1037,NULL,'15841',NULL,1228,41.254727,-78.50411,0,NULL,NULL,NULL),(60,33,1,1,0,'439H Maple Ave S',439,'H',NULL,'Maple','Ave','S',NULL,NULL,NULL,NULL,'Mount Prospect',1,1012,NULL,'60056',NULL,1228,42.065427,-87.93621,0,NULL,NULL,NULL),(61,36,1,1,0,'841G Beech Rd NE',841,'G',NULL,'Beech','Rd','NE',NULL,NULL,NULL,NULL,'Pahokee',1,1008,NULL,'33476',NULL,1228,26.817786,-80.65425,0,NULL,NULL,NULL),(62,180,1,1,0,'642U Northpoint St NE',642,'U',NULL,'Northpoint','St','NE',NULL,NULL,NULL,NULL,'Cordesville',1,1039,NULL,'29434',NULL,1228,33.119898,-79.85797,0,NULL,NULL,NULL),(63,170,1,1,0,'88I Cadell Dr SW',88,'I',NULL,'Cadell','Dr','SW',NULL,NULL,NULL,NULL,'Chase',1,1019,NULL,'21027',NULL,1228,39.438964,-76.592139,0,NULL,NULL,NULL),(64,46,3,1,0,'841U Caulder Pl NE',841,'U',NULL,'Caulder','Pl','NE',NULL,'Urgent',NULL,NULL,'Kanarraville',1,1043,NULL,'84742',NULL,1228,37.522753,-113.203633,0,NULL,NULL,NULL),(65,149,3,1,0,'100M Pine Pl W',100,'M',NULL,'Pine','Pl','W',NULL,'Attn: Accounting',NULL,NULL,'Douglasville',1,1009,NULL,'30133',NULL,1228,33.68966,-84.744595,0,NULL,NULL,NULL),(66,121,3,1,0,'871H Jackson Pl W',871,'H',NULL,'Jackson','Pl','W',NULL,'Payables Dept.',NULL,NULL,'East Chicago',1,1013,NULL,'46312',NULL,1228,41.639735,-87.46084,0,NULL,NULL,NULL),(67,55,2,0,0,'871H Jackson Pl W',871,'H',NULL,'Jackson','Pl','W',NULL,'Payables Dept.',NULL,NULL,'East Chicago',1,1013,NULL,'46312',NULL,1228,41.639735,-87.46084,0,NULL,NULL,66),(68,110,3,1,0,'496P Lincoln Pl SE',496,'P',NULL,'Lincoln','Pl','SE',NULL,'Donor Relations',NULL,NULL,'Big Spring',1,1016,NULL,'40106',NULL,1228,37.788538,-86.231194,0,NULL,NULL,NULL),(69,21,2,1,0,'496P Lincoln Pl SE',496,'P',NULL,'Lincoln','Pl','SE',NULL,'Donor Relations',NULL,NULL,'Big Spring',1,1016,NULL,'40106',NULL,1228,37.788538,-86.231194,0,NULL,NULL,68),(70,7,3,1,0,'270U Lincoln Dr SE',270,'U',NULL,'Lincoln','Dr','SE',NULL,'Attn: Development',NULL,NULL,'Dysart',1,1037,NULL,'16636',NULL,1228,40.612642,-78.51947,0,NULL,NULL,NULL),(71,57,2,0,0,'270U Lincoln Dr SE',270,'U',NULL,'Lincoln','Dr','SE',NULL,'Attn: Development',NULL,NULL,'Dysart',1,1037,NULL,'16636',NULL,1228,40.612642,-78.51947,0,NULL,NULL,70),(72,153,3,1,0,'771T Beech Ave S',771,'T',NULL,'Beech','Ave','S',NULL,'Attn: Development',NULL,NULL,'Mount Vernon',1,1031,NULL,'10552',NULL,1228,40.924195,-73.82614,0,NULL,NULL,NULL),(73,135,2,1,0,'771T Beech Ave S',771,'T',NULL,'Beech','Ave','S',NULL,'Attn: Development',NULL,NULL,'Mount Vernon',1,1031,NULL,'10552',NULL,1228,40.924195,-73.82614,0,NULL,NULL,72),(74,113,3,1,0,'7F Maple Dr W',7,'F',NULL,'Maple','Dr','W',NULL,'Community Relations',NULL,NULL,'City Of Industry',1,1004,NULL,'91714',NULL,1228,33.786594,-118.298662,0,NULL,NULL,NULL),(75,182,2,1,0,'7F Maple Dr W',7,'F',NULL,'Maple','Dr','W',NULL,'Community Relations',NULL,NULL,'City Of Industry',1,1004,NULL,'91714',NULL,1228,33.786594,-118.298662,0,NULL,NULL,74),(76,28,3,1,0,'169C El Camino St NW',169,'C',NULL,'El Camino','St','NW',NULL,'Donor Relations',NULL,NULL,'Colon',1,1021,NULL,'49040',NULL,1228,41.960856,-85.33059,0,NULL,NULL,NULL),(77,142,3,1,0,'908I States Way NW',908,'I',NULL,'States','Way','NW',NULL,'Subscriptions Dept',NULL,NULL,'Eau Claire',1,1048,NULL,'54703',NULL,1228,44.82961,-91.50521,0,NULL,NULL,NULL),(78,193,3,1,0,'647R College Rd NE',647,'R',NULL,'College','Rd','NE',NULL,'Mailstop 101',NULL,NULL,'Bridgeport',1,1021,NULL,'48722',NULL,1228,43.346632,-83.84636,0,NULL,NULL,NULL),(79,40,2,0,0,'647R College Rd NE',647,'R',NULL,'College','Rd','NE',NULL,'Mailstop 101',NULL,NULL,'Bridgeport',1,1021,NULL,'48722',NULL,1228,43.346632,-83.84636,0,NULL,NULL,78),(80,191,3,1,0,'135I Second Way N',135,'I',NULL,'Second','Way','N',NULL,'Cuffe Parade',NULL,NULL,'Annandale',1,1045,NULL,'22003',NULL,1228,38.830345,-77.21387,0,NULL,NULL,NULL),(81,66,2,1,0,'135I Second Way N',135,'I',NULL,'Second','Way','N',NULL,'Cuffe Parade',NULL,NULL,'Annandale',1,1045,NULL,'22003',NULL,1228,38.830345,-77.21387,0,NULL,NULL,80),(82,104,3,1,0,'868G Pine Dr NE',868,'G',NULL,'Pine','Dr','NE',NULL,'Churchgate',NULL,NULL,'Indio',1,1004,NULL,'92201',NULL,1228,33.715271,-116.235,0,NULL,NULL,NULL),(83,82,2,1,0,'868G Pine Dr NE',868,'G',NULL,'Pine','Dr','NE',NULL,'Churchgate',NULL,NULL,'Indio',1,1004,NULL,'92201',NULL,1228,33.715271,-116.235,0,NULL,NULL,82),(84,190,3,1,0,'759F Beech Dr SW',759,'F',NULL,'Beech','Dr','SW',NULL,'Payables Dept.',NULL,NULL,'Yukon',1,1035,NULL,'73085',NULL,1228,35.489527,-97.750009,0,NULL,NULL,NULL),(85,122,2,0,0,'759F Beech Dr SW',759,'F',NULL,'Beech','Dr','SW',NULL,'Payables Dept.',NULL,NULL,'Yukon',1,1035,NULL,'73085',NULL,1228,35.489527,-97.750009,0,NULL,NULL,84),(86,53,3,1,0,'20H States Way NW',20,'H',NULL,'States','Way','NW',NULL,'Community Relations',NULL,NULL,'Del Rey',1,1004,NULL,'93616',NULL,1228,36.657266,-119.59309,0,NULL,NULL,NULL),(87,22,3,1,0,'6Z Jackson Path SW',6,'Z',NULL,'Jackson','Path','SW',NULL,'Cuffe Parade',NULL,NULL,'Warba',1,1022,NULL,'55793',NULL,1228,47.116453,-93.26881,0,NULL,NULL,NULL),(88,97,3,1,0,'537H Woodbridge Path E',537,'H',NULL,'Woodbridge','Path','E',NULL,'Urgent',NULL,NULL,'Bethesda',1,1034,NULL,'43719',NULL,1228,40.009383,-81.0763,0,NULL,NULL,NULL),(89,150,2,0,0,'537H Woodbridge Path E',537,'H',NULL,'Woodbridge','Path','E',NULL,'Urgent',NULL,NULL,'Bethesda',1,1034,NULL,'43719',NULL,1228,40.009383,-81.0763,0,NULL,NULL,88),(90,71,3,1,0,'711W Beech Ave NW',711,'W',NULL,'Beech','Ave','NW',NULL,'Disbursements',NULL,NULL,'Chriesman',1,1042,NULL,'77838',NULL,1228,30.513118,-96.618047,0,NULL,NULL,NULL),(91,185,2,1,0,'711W Beech Ave NW',711,'W',NULL,'Beech','Ave','NW',NULL,'Disbursements',NULL,NULL,'Chriesman',1,1042,NULL,'77838',NULL,1228,30.513118,-96.618047,0,NULL,NULL,90),(92,118,3,1,0,'975S Martin Luther King Dr S',975,'S',NULL,'Martin Luther King','Dr','S',NULL,'Subscriptions Dept',NULL,NULL,'Merced',1,1004,NULL,'95340',NULL,1228,37.294648,-120.47474,0,NULL,NULL,NULL),(93,159,3,1,0,'978P Lincoln Ave SW',978,'P',NULL,'Lincoln','Ave','SW',NULL,'Subscriptions Dept',NULL,NULL,'Saint John',1,1046,NULL,'99171',NULL,1228,47.11653,-117.63938,0,NULL,NULL,NULL),(94,80,2,1,0,'978P Lincoln Ave SW',978,'P',NULL,'Lincoln','Ave','SW',NULL,'Subscriptions Dept',NULL,NULL,'Saint John',1,1046,NULL,'99171',NULL,1228,47.11653,-117.63938,0,NULL,NULL,93),(95,31,3,1,0,'548V College Way NW',548,'V',NULL,'College','Way','NW',NULL,'c/o PO Plus',NULL,NULL,'Los Osos',1,1004,NULL,'93412',NULL,1228,35.347065,-120.455345,0,NULL,NULL,NULL),(96,59,2,0,0,'548V College Way NW',548,'V',NULL,'College','Way','NW',NULL,'c/o PO Plus',NULL,NULL,'Los Osos',1,1004,NULL,'93412',NULL,1228,35.347065,-120.455345,0,NULL,NULL,95),(97,168,1,1,0,'755W Jackson Path NW',755,'W',NULL,'Jackson','Path','NW',NULL,NULL,NULL,NULL,'Odenville',1,1000,NULL,'35120',NULL,1228,33.668341,-86.43641,0,NULL,NULL,44),(98,146,1,1,0,'755W Jackson Path NW',755,'W',NULL,'Jackson','Path','NW',NULL,NULL,NULL,NULL,'Odenville',1,1000,NULL,'35120',NULL,1228,33.668341,-86.43641,0,NULL,NULL,44),(99,132,1,1,0,'755W Jackson Path NW',755,'W',NULL,'Jackson','Path','NW',NULL,NULL,NULL,NULL,'Odenville',1,1000,NULL,'35120',NULL,1228,33.668341,-86.43641,0,NULL,NULL,44),(100,24,1,1,0,'755W Jackson Path NW',755,'W',NULL,'Jackson','Path','NW',NULL,NULL,NULL,NULL,'Odenville',1,1000,NULL,'35120',NULL,1228,33.668341,-86.43641,0,NULL,NULL,44),(101,6,1,1,0,'634L Dowlen Dr NW',634,'L',NULL,'Dowlen','Dr','NW',NULL,NULL,NULL,NULL,'Fort Worth',1,1042,NULL,'76120',NULL,1228,32.762631,-97.17527,0,NULL,NULL,45),(102,76,1,1,0,'634L Dowlen Dr NW',634,'L',NULL,'Dowlen','Dr','NW',NULL,NULL,NULL,NULL,'Fort Worth',1,1042,NULL,'76120',NULL,1228,32.762631,-97.17527,0,NULL,NULL,45),(103,42,1,1,0,'634L Dowlen Dr NW',634,'L',NULL,'Dowlen','Dr','NW',NULL,NULL,NULL,NULL,'Fort Worth',1,1042,NULL,'76120',NULL,1228,32.762631,-97.17527,0,NULL,NULL,45),(104,200,1,1,0,'204I Woodbridge St W',204,'I',NULL,'Woodbridge','St','W',NULL,NULL,NULL,NULL,'Vero Beach',1,1008,NULL,'32966',NULL,1228,27.645377,-80.51468,0,NULL,NULL,NULL),(105,41,1,1,0,'122H Northpoint Ln S',122,'H',NULL,'Northpoint','Ln','S',NULL,NULL,NULL,NULL,'Pinon',1,1030,NULL,'88344',NULL,1228,32.663082,-105.36135,0,NULL,NULL,46),(106,89,1,1,0,'122H Northpoint Ln S',122,'H',NULL,'Northpoint','Ln','S',NULL,NULL,NULL,NULL,'Pinon',1,1030,NULL,'88344',NULL,1228,32.663082,-105.36135,0,NULL,NULL,46),(107,161,1,1,0,'122H Northpoint Ln S',122,'H',NULL,'Northpoint','Ln','S',NULL,NULL,NULL,NULL,'Pinon',1,1030,NULL,'88344',NULL,1228,32.663082,-105.36135,0,NULL,NULL,46),(108,64,1,1,0,'122H Northpoint Ln S',122,'H',NULL,'Northpoint','Ln','S',NULL,NULL,NULL,NULL,'Pinon',1,1030,NULL,'88344',NULL,1228,32.663082,-105.36135,0,NULL,NULL,46),(109,30,1,1,0,'81N Lincoln Ln SE',81,'N',NULL,'Lincoln','Ln','SE',NULL,NULL,NULL,NULL,'Medley',1,1047,NULL,'26734',NULL,1228,39.070601,-79.233536,0,NULL,NULL,47),(110,3,1,1,0,'81N Lincoln Ln SE',81,'N',NULL,'Lincoln','Ln','SE',NULL,NULL,NULL,NULL,'Medley',1,1047,NULL,'26734',NULL,1228,39.070601,-79.233536,0,NULL,NULL,47),(111,34,1,1,0,'81N Lincoln Ln SE',81,'N',NULL,'Lincoln','Ln','SE',NULL,NULL,NULL,NULL,'Medley',1,1047,NULL,'26734',NULL,1228,39.070601,-79.233536,0,NULL,NULL,47),(112,138,1,1,0,'191L Jackson Dr E',191,'L',NULL,'Jackson','Dr','E',NULL,NULL,NULL,NULL,'Port Huron',1,1021,NULL,'48060',NULL,1228,42.978974,-82.44402,0,NULL,NULL,NULL),(113,152,1,1,0,'795M Jackson St SW',795,'M',NULL,'Jackson','St','SW',NULL,NULL,NULL,NULL,'Fountaintown',1,1013,NULL,'46130',NULL,1228,39.680058,-85.83363,0,NULL,NULL,48),(114,94,1,1,0,'795M Jackson St SW',795,'M',NULL,'Jackson','St','SW',NULL,NULL,NULL,NULL,'Fountaintown',1,1013,NULL,'46130',NULL,1228,39.680058,-85.83363,0,NULL,NULL,48),(115,194,1,1,0,'795M Jackson St SW',795,'M',NULL,'Jackson','St','SW',NULL,NULL,NULL,NULL,'Fountaintown',1,1013,NULL,'46130',NULL,1228,39.680058,-85.83363,0,NULL,NULL,48),(116,56,1,1,0,'795M Jackson St SW',795,'M',NULL,'Jackson','St','SW',NULL,NULL,NULL,NULL,'Fountaintown',1,1013,NULL,'46130',NULL,1228,39.680058,-85.83363,0,NULL,NULL,48),(117,167,1,1,0,'234Q Beech Ln SE',234,'Q',NULL,'Beech','Ln','SE',NULL,NULL,NULL,NULL,'Williamson',1,1014,NULL,'50272',NULL,1228,41.08869,-93.25821,0,NULL,NULL,49),(118,187,1,1,0,'234Q Beech Ln SE',234,'Q',NULL,'Beech','Ln','SE',NULL,NULL,NULL,NULL,'Williamson',1,1014,NULL,'50272',NULL,1228,41.08869,-93.25821,0,NULL,NULL,49),(119,45,1,1,0,'234Q Beech Ln SE',234,'Q',NULL,'Beech','Ln','SE',NULL,NULL,NULL,NULL,'Williamson',1,1014,NULL,'50272',NULL,1228,41.08869,-93.25821,0,NULL,NULL,49),(120,156,1,1,0,'234Q Beech Ln SE',234,'Q',NULL,'Beech','Ln','SE',NULL,NULL,NULL,NULL,'Williamson',1,1014,NULL,'50272',NULL,1228,41.08869,-93.25821,0,NULL,NULL,49),(121,124,1,1,0,'977M Beech Way W',977,'M',NULL,'Beech','Way','W',NULL,NULL,NULL,NULL,'Easton',1,1020,NULL,'02735',NULL,1228,41.999346,-71.113582,0,NULL,NULL,50),(122,67,1,1,0,'977M Beech Way W',977,'M',NULL,'Beech','Way','W',NULL,NULL,NULL,NULL,'Easton',1,1020,NULL,'02735',NULL,1228,41.999346,-71.113582,0,NULL,NULL,50),(123,160,1,1,0,'977M Beech Way W',977,'M',NULL,'Beech','Way','W',NULL,NULL,NULL,NULL,'Easton',1,1020,NULL,'02735',NULL,1228,41.999346,-71.113582,0,NULL,NULL,50),(124,20,1,1,0,'977M Beech Way W',977,'M',NULL,'Beech','Way','W',NULL,NULL,NULL,NULL,'Easton',1,1020,NULL,'02735',NULL,1228,41.999346,-71.113582,0,NULL,NULL,50),(125,119,1,1,0,'467Y Second Pl S',467,'Y',NULL,'Second','Pl','S',NULL,NULL,NULL,NULL,'Greenup',1,1016,NULL,'41144',NULL,1228,38.552472,-82.86514,0,NULL,NULL,51),(126,44,1,1,0,'467Y Second Pl S',467,'Y',NULL,'Second','Pl','S',NULL,NULL,NULL,NULL,'Greenup',1,1016,NULL,'41144',NULL,1228,38.552472,-82.86514,0,NULL,NULL,51),(127,2,1,1,0,'467Y Second Pl S',467,'Y',NULL,'Second','Pl','S',NULL,NULL,NULL,NULL,'Greenup',1,1016,NULL,'41144',NULL,1228,38.552472,-82.86514,0,NULL,NULL,51),(128,126,1,1,0,'467Y Second Pl S',467,'Y',NULL,'Second','Pl','S',NULL,NULL,NULL,NULL,'Greenup',1,1016,NULL,'41144',NULL,1228,38.552472,-82.86514,0,NULL,NULL,51),(129,26,1,1,0,'793B Green Rd S',793,'B',NULL,'Green','Rd','S',NULL,NULL,NULL,NULL,'Tucson',1,1002,NULL,'85750',NULL,1228,32.292078,-110.84384,0,NULL,NULL,52),(130,133,1,1,0,'793B Green Rd S',793,'B',NULL,'Green','Rd','S',NULL,NULL,NULL,NULL,'Tucson',1,1002,NULL,'85750',NULL,1228,32.292078,-110.84384,0,NULL,NULL,52),(131,195,1,1,0,'793B Green Rd S',793,'B',NULL,'Green','Rd','S',NULL,NULL,NULL,NULL,'Tucson',1,1002,NULL,'85750',NULL,1228,32.292078,-110.84384,0,NULL,NULL,52),(132,85,1,1,0,'29G El Camino Path SE',29,'G',NULL,'El Camino','Path','SE',NULL,NULL,NULL,NULL,'Hagerstown',1,1019,NULL,'21746',NULL,1228,39.563787,-77.720642,0,NULL,NULL,NULL),(133,145,1,1,0,'51Y Main Ave SW',51,'Y',NULL,'Main','Ave','SW',NULL,NULL,NULL,NULL,'Stella',1,1026,NULL,'68442',NULL,1228,40.229899,-95.77517,0,NULL,NULL,53),(134,114,1,1,0,'51Y Main Ave SW',51,'Y',NULL,'Main','Ave','SW',NULL,NULL,NULL,NULL,'Stella',1,1026,NULL,'68442',NULL,1228,40.229899,-95.77517,0,NULL,NULL,53),(135,147,1,1,0,'51Y Main Ave SW',51,'Y',NULL,'Main','Ave','SW',NULL,NULL,NULL,NULL,'Stella',1,1026,NULL,'68442',NULL,1228,40.229899,-95.77517,0,NULL,NULL,53),(136,92,1,1,0,'51Y Main Ave SW',51,'Y',NULL,'Main','Ave','SW',NULL,NULL,NULL,NULL,'Stella',1,1026,NULL,'68442',NULL,1228,40.229899,-95.77517,0,NULL,NULL,53),(137,66,1,0,0,'805G Green Pl E',805,'G',NULL,'Green','Pl','E',NULL,NULL,NULL,NULL,'Holland',1,1024,NULL,'63853',NULL,1228,36.058612,-89.87038,0,NULL,NULL,54),(138,107,1,1,0,'805G Green Pl E',805,'G',NULL,'Green','Pl','E',NULL,NULL,NULL,NULL,'Holland',1,1024,NULL,'63853',NULL,1228,36.058612,-89.87038,0,NULL,NULL,54),(139,81,1,1,0,'805G Green Pl E',805,'G',NULL,'Green','Pl','E',NULL,NULL,NULL,NULL,'Holland',1,1024,NULL,'63853',NULL,1228,36.058612,-89.87038,0,NULL,NULL,54),(140,82,1,0,0,'805G Green Pl E',805,'G',NULL,'Green','Pl','E',NULL,NULL,NULL,NULL,'Holland',1,1024,NULL,'63853',NULL,1228,36.058612,-89.87038,0,NULL,NULL,54),(141,79,1,1,0,'345U Pine Pl SE',345,'U',NULL,'Pine','Pl','SE',NULL,NULL,NULL,NULL,'Glen Aubrey',1,1031,NULL,'13777',NULL,1228,42.254154,-76.01194,0,NULL,NULL,55),(142,123,1,1,0,'345U Pine Pl SE',345,'U',NULL,'Pine','Pl','SE',NULL,NULL,NULL,NULL,'Glen Aubrey',1,1031,NULL,'13777',NULL,1228,42.254154,-76.01194,0,NULL,NULL,55),(143,77,1,1,0,'345U Pine Pl SE',345,'U',NULL,'Pine','Pl','SE',NULL,NULL,NULL,NULL,'Glen Aubrey',1,1031,NULL,'13777',NULL,1228,42.254154,-76.01194,0,NULL,NULL,55),(144,88,1,1,0,'345U Pine Pl SE',345,'U',NULL,'Pine','Pl','SE',NULL,NULL,NULL,NULL,'Glen Aubrey',1,1031,NULL,'13777',NULL,1228,42.254154,-76.01194,0,NULL,NULL,55),(145,157,1,1,0,'379V El Camino Way S',379,'V',NULL,'El Camino','Way','S',NULL,NULL,NULL,NULL,'Montpelier',1,1023,NULL,'39754',NULL,1228,33.659271,-88.753976,0,NULL,NULL,56),(146,125,1,1,0,'379V El Camino Way S',379,'V',NULL,'El Camino','Way','S',NULL,NULL,NULL,NULL,'Montpelier',1,1023,NULL,'39754',NULL,1228,33.659271,-88.753976,0,NULL,NULL,56),(147,163,1,1,0,'379V El Camino Way S',379,'V',NULL,'El Camino','Way','S',NULL,NULL,NULL,NULL,'Montpelier',1,1023,NULL,'39754',NULL,1228,33.659271,-88.753976,0,NULL,NULL,56),(148,199,1,1,0,'379V El Camino Way S',379,'V',NULL,'El Camino','Way','S',NULL,NULL,NULL,NULL,'Montpelier',1,1023,NULL,'39754',NULL,1228,33.659271,-88.753976,0,NULL,NULL,56),(149,197,1,1,0,'651H Dowlen Path E',651,'H',NULL,'Dowlen','Path','E',NULL,NULL,NULL,NULL,'Natchitoches',1,1017,NULL,'71457',NULL,1228,31.751287,-93.09021,0,NULL,NULL,57),(150,35,1,1,0,'651H Dowlen Path E',651,'H',NULL,'Dowlen','Path','E',NULL,NULL,NULL,NULL,'Natchitoches',1,1017,NULL,'71457',NULL,1228,31.751287,-93.09021,0,NULL,NULL,57),(151,69,1,1,0,'651H Dowlen Path E',651,'H',NULL,'Dowlen','Path','E',NULL,NULL,NULL,NULL,'Natchitoches',1,1017,NULL,'71457',NULL,1228,31.751287,-93.09021,0,NULL,NULL,57),(152,60,1,1,0,'651H Dowlen Path E',651,'H',NULL,'Dowlen','Path','E',NULL,NULL,NULL,NULL,'Natchitoches',1,1017,NULL,'71457',NULL,1228,31.751287,-93.09021,0,NULL,NULL,57),(153,62,1,1,0,'437R College Pl NW',437,'R',NULL,'College','Pl','NW',NULL,NULL,NULL,NULL,'Pinnacle',1,1032,NULL,'27043',NULL,1228,36.331502,-80.4417,0,NULL,NULL,58),(154,84,1,1,0,'437R College Pl NW',437,'R',NULL,'College','Pl','NW',NULL,NULL,NULL,NULL,'Pinnacle',1,1032,NULL,'27043',NULL,1228,36.331502,-80.4417,0,NULL,NULL,58),(155,70,1,1,0,'437R College Pl NW',437,'R',NULL,'College','Pl','NW',NULL,NULL,NULL,NULL,'Pinnacle',1,1032,NULL,'27043',NULL,1228,36.331502,-80.4417,0,NULL,NULL,58),(156,87,1,1,0,'485M States Way NE',485,'M',NULL,'States','Way','NE',NULL,NULL,NULL,NULL,'Pender',1,1026,NULL,'68047',NULL,1228,42.112028,-96.73093,0,NULL,NULL,NULL),(157,175,1,1,0,'154Z El Camino Way E',154,'Z',NULL,'El Camino','Way','E',NULL,NULL,NULL,NULL,'Force',1,1037,NULL,'15841',NULL,1228,41.254727,-78.50411,0,NULL,NULL,59),(158,47,1,1,0,'154Z El Camino Way E',154,'Z',NULL,'El Camino','Way','E',NULL,NULL,NULL,NULL,'Force',1,1037,NULL,'15841',NULL,1228,41.254727,-78.50411,0,NULL,NULL,59),(159,183,1,1,0,'154Z El Camino Way E',154,'Z',NULL,'El Camino','Way','E',NULL,NULL,NULL,NULL,'Force',1,1037,NULL,'15841',NULL,1228,41.254727,-78.50411,0,NULL,NULL,59),(160,86,1,1,0,'791W Northpoint Blvd N',791,'W',NULL,'Northpoint','Blvd','N',NULL,NULL,NULL,NULL,'Elk Creek',1,1024,NULL,'65464',NULL,1228,37.191845,-91.91627,0,NULL,NULL,NULL),(161,14,1,1,0,'439H Maple Ave S',439,'H',NULL,'Maple','Ave','S',NULL,NULL,NULL,NULL,'Mount Prospect',1,1012,NULL,'60056',NULL,1228,42.065427,-87.93621,0,NULL,NULL,60),(162,50,1,1,0,'439H Maple Ave S',439,'H',NULL,'Maple','Ave','S',NULL,NULL,NULL,NULL,'Mount Prospect',1,1012,NULL,'60056',NULL,1228,42.065427,-87.93621,0,NULL,NULL,60),(163,177,1,1,0,'439H Maple Ave S',439,'H',NULL,'Maple','Ave','S',NULL,NULL,NULL,NULL,'Mount Prospect',1,1012,NULL,'60056',NULL,1228,42.065427,-87.93621,0,NULL,NULL,60),(164,38,1,1,0,'439H Maple Ave S',439,'H',NULL,'Maple','Ave','S',NULL,NULL,NULL,NULL,'Mount Prospect',1,1012,NULL,'60056',NULL,1228,42.065427,-87.93621,0,NULL,NULL,60),(165,115,1,1,0,'841G Beech Rd NE',841,'G',NULL,'Beech','Rd','NE',NULL,NULL,NULL,NULL,'Pahokee',1,1008,NULL,'33476',NULL,1228,26.817786,-80.65425,0,NULL,NULL,61),(166,15,1,1,0,'841G Beech Rd NE',841,'G',NULL,'Beech','Rd','NE',NULL,NULL,NULL,NULL,'Pahokee',1,1008,NULL,'33476',NULL,1228,26.817786,-80.65425,0,NULL,NULL,61),(167,154,1,1,0,'841G Beech Rd NE',841,'G',NULL,'Beech','Rd','NE',NULL,NULL,NULL,NULL,'Pahokee',1,1008,NULL,'33476',NULL,1228,26.817786,-80.65425,0,NULL,NULL,61),(168,174,1,1,0,'594P Jackson Blvd NW',594,'P',NULL,'Jackson','Blvd','NW',NULL,NULL,NULL,NULL,'Orlando',1,1008,NULL,'32836',NULL,1228,28.401151,-81.52488,0,NULL,NULL,NULL),(169,116,1,1,0,'642U Northpoint St NE',642,'U',NULL,'Northpoint','St','NE',NULL,NULL,NULL,NULL,'Cordesville',1,1039,NULL,'29434',NULL,1228,33.119898,-79.85797,0,NULL,NULL,62),(170,135,1,0,0,'642U Northpoint St NE',642,'U',NULL,'Northpoint','St','NE',NULL,NULL,NULL,NULL,'Cordesville',1,1039,NULL,'29434',NULL,1228,33.119898,-79.85797,0,NULL,NULL,62),(171,54,1,1,0,'642U Northpoint St NE',642,'U',NULL,'Northpoint','St','NE',NULL,NULL,NULL,NULL,'Cordesville',1,1039,NULL,'29434',NULL,1228,33.119898,-79.85797,0,NULL,NULL,62),(172,18,1,1,0,'25I States St S',25,'I',NULL,'States','St','S',NULL,NULL,NULL,NULL,'Jacumba',1,1004,NULL,'91934',NULL,1228,32.624424,-116.17025,0,NULL,NULL,NULL),(173,5,1,1,0,'88I Cadell Dr SW',88,'I',NULL,'Cadell','Dr','SW',NULL,NULL,NULL,NULL,'Chase',1,1019,NULL,'21027',NULL,1228,39.438964,-76.592139,0,NULL,NULL,63),(174,39,1,1,0,'88I Cadell Dr SW',88,'I',NULL,'Cadell','Dr','SW',NULL,NULL,NULL,NULL,'Chase',1,1019,NULL,'21027',NULL,1228,39.438964,-76.592139,0,NULL,NULL,63),(175,17,1,1,0,'88I Cadell Dr SW',88,'I',NULL,'Cadell','Dr','SW',NULL,NULL,NULL,NULL,'Chase',1,1019,NULL,'21027',NULL,1228,39.438964,-76.592139,0,NULL,NULL,63),(176,136,1,1,0,'88I Cadell Dr SW',88,'I',NULL,'Cadell','Dr','SW',NULL,NULL,NULL,NULL,'Chase',1,1019,NULL,'21027',NULL,1228,39.438964,-76.592139,0,NULL,NULL,63),(177,NULL,1,1,1,'14S El Camino Way E',14,'S',NULL,'El Camino','Way',NULL,NULL,NULL,NULL,NULL,'Collinsville',NULL,1006,NULL,'6022',NULL,1228,41.8328,-72.9253,0,NULL,NULL,NULL),(178,NULL,1,1,1,'11B Woodbridge Path SW',11,'B',NULL,'Woodbridge','Path',NULL,NULL,NULL,NULL,NULL,'Dayton',NULL,1034,NULL,'45417',NULL,1228,39.7531,-84.2471,0,NULL,NULL,NULL),(179,NULL,1,1,1,'581O Lincoln Dr SW',581,'O',NULL,'Lincoln','Dr',NULL,NULL,NULL,NULL,NULL,'Santa Fe',NULL,1030,NULL,'87594',NULL,1228,35.5212,-105.982,0,NULL,NULL,NULL);
 /*!40000 ALTER TABLE `civicrm_address` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -208,7 +208,7 @@ UNLOCK TABLES;
 
 LOCK TABLES `civicrm_contact` WRITE;
 /*!40000 ALTER TABLE `civicrm_contact` DISABLE KEYS */;
-INSERT INTO `civicrm_contact` (`id`, `contact_type`, `contact_sub_type`, `do_not_email`, `do_not_phone`, `do_not_mail`, `do_not_sms`, `do_not_trade`, `is_opt_out`, `legal_identifier`, `external_identifier`, `sort_name`, `display_name`, `nick_name`, `legal_name`, `image_URL`, `preferred_communication_method`, `preferred_language`, `preferred_mail_format`, `hash`, `api_key`, `source`, `first_name`, `middle_name`, `last_name`, `prefix_id`, `suffix_id`, `formal_title`, `communication_style_id`, `email_greeting_id`, `email_greeting_custom`, `email_greeting_display`, `postal_greeting_id`, `postal_greeting_custom`, `postal_greeting_display`, `addressee_id`, `addressee_custom`, `addressee_display`, `job_title`, `gender_id`, `birth_date`, `is_deceased`, `deceased_date`, `household_name`, `primary_contact_id`, `organization_name`, `sic_code`, `user_unique_id`, `employer_id`, `is_deleted`, `created_date`, `modified_date`) VALUES (1,'Organization',NULL,0,0,0,0,0,0,NULL,NULL,'Default Organization','Default Organization',NULL,'Default Organization',NULL,NULL,NULL,'Both',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,'Default Organization',NULL,NULL,NULL,0,NULL,'2019-11-28 19:55:25'),(2,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'barkleym@spamalot.org','barkleym@spamalot.org',NULL,NULL,NULL,'5',NULL,'Both','2674686280',NULL,'Sample Data',NULL,NULL,NULL,NULL,3,NULL,NULL,1,NULL,'Dear barkleym@spamalot.org',1,NULL,'Dear barkleym@spamalot.org',1,NULL,'barkleym@spamalot.org',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(3,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Smith, Daren','Daren Smith',NULL,NULL,NULL,NULL,NULL,'Both','3966682227',NULL,'Sample Data','Daren','','Smith',NULL,NULL,NULL,NULL,1,NULL,'Dear Daren',1,NULL,'Dear Daren',1,NULL,'Daren Smith',NULL,2,NULL,0,NULL,NULL,NULL,'Alma Poetry Center',NULL,NULL,83,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(4,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Wagner, Russell','Russell Wagner II',NULL,NULL,NULL,NULL,NULL,'Both','3304810540',NULL,'Sample Data','Russell','','Wagner',NULL,3,NULL,NULL,1,NULL,'Dear Russell',1,NULL,'Dear Russell',1,NULL,'Russell Wagner II',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(5,'Household',NULL,1,0,0,0,0,0,NULL,NULL,'Smith family','Smith family',NULL,NULL,NULL,NULL,NULL,'Both','4082772645',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Smith family',5,NULL,'Dear Smith family',2,NULL,'Smith family',NULL,NULL,NULL,0,NULL,'Smith family',NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(6,'Organization',NULL,0,0,0,0,1,0,NULL,NULL,'York Haven Peace Academy','York Haven Peace Academy',NULL,NULL,NULL,NULL,NULL,'Both','2723172013',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'York Haven Peace Academy',NULL,NULL,NULL,0,NULL,NULL,188,'York Haven Peace Academy',NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(7,'Household',NULL,0,1,0,0,0,0,NULL,NULL,'Jameson-Roberts family','Jameson-Roberts family',NULL,NULL,NULL,NULL,NULL,'Both','2464959924',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Jameson-Roberts family',5,NULL,'Dear Jameson-Roberts family',2,NULL,'Jameson-Roberts family',NULL,NULL,NULL,0,NULL,'Jameson-Roberts family',NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(8,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Ivanov, Carlos','Carlos Ivanov',NULL,NULL,NULL,'3',NULL,'Both','3509440467',NULL,'Sample Data','Carlos','G','Ivanov',NULL,NULL,NULL,NULL,1,NULL,'Dear Carlos',1,NULL,'Dear Carlos',1,NULL,'Carlos Ivanov',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(9,'Individual',NULL,1,0,0,0,1,0,NULL,NULL,'Samson, Beula','Ms. Beula Samson',NULL,NULL,NULL,NULL,NULL,'Both','1224450330',NULL,'Sample Data','Beula','R','Samson',2,NULL,NULL,NULL,1,NULL,'Dear Beula',1,NULL,'Dear Beula',1,NULL,'Ms. Beula Samson',NULL,NULL,'1996-07-17',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(10,'Organization',NULL,0,0,0,0,0,0,NULL,NULL,'Redmon Health Trust','Redmon Health Trust',NULL,NULL,NULL,'2',NULL,'Both','674976725',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Redmon Health Trust',NULL,NULL,NULL,0,NULL,NULL,179,'Redmon Health Trust',NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(11,'Organization',NULL,1,0,0,0,0,0,NULL,NULL,'Montana Advocacy Alliance','Montana Advocacy Alliance',NULL,NULL,NULL,'2',NULL,'Both','368613395',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Montana Advocacy Alliance',NULL,NULL,NULL,0,NULL,NULL,NULL,'Montana Advocacy Alliance',NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(12,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Müller, Russell','Russell Müller Jr.',NULL,NULL,NULL,NULL,NULL,'Both','1078913970',NULL,'Sample Data','Russell','X','Müller',NULL,1,NULL,NULL,1,NULL,'Dear Russell',1,NULL,'Dear Russell',1,NULL,'Russell Müller Jr.',NULL,NULL,'1976-06-22',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(13,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Samuels, Angelika','Angelika Samuels',NULL,NULL,NULL,'5',NULL,'Both','3920942088',NULL,'Sample Data','Angelika','B','Samuels',NULL,NULL,NULL,NULL,1,NULL,'Dear Angelika',1,NULL,'Dear Angelika',1,NULL,'Angelika Samuels',NULL,NULL,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(14,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Adams, Rebekah','Rebekah Adams',NULL,NULL,NULL,'3',NULL,'Both','323607436',NULL,'Sample Data','Rebekah','','Adams',NULL,NULL,NULL,NULL,1,NULL,'Dear Rebekah',1,NULL,'Dear Rebekah',1,NULL,'Rebekah Adams',NULL,1,'1960-12-22',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(15,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Müller, Shauna','Shauna Müller',NULL,NULL,NULL,NULL,NULL,'Both','2927518438',NULL,'Sample Data','Shauna','S','Müller',NULL,NULL,NULL,NULL,1,NULL,'Dear Shauna',1,NULL,'Dear Shauna',1,NULL,'Shauna Müller',NULL,1,'2004-06-22',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(16,'Organization',NULL,0,1,0,0,0,0,NULL,NULL,'Main Empowerment Alliance','Main Empowerment Alliance',NULL,NULL,NULL,NULL,NULL,'Both','3950181096',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Main Empowerment Alliance',NULL,NULL,NULL,0,NULL,NULL,78,'Main Empowerment Alliance',NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(17,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Bachman, Bryon','Bryon Bachman',NULL,NULL,NULL,NULL,NULL,'Both','1112110435',NULL,'Sample Data','Bryon','E','Bachman',NULL,NULL,NULL,NULL,1,NULL,'Dear Bryon',1,NULL,'Dear Bryon',1,NULL,'Bryon Bachman',NULL,2,'1997-02-05',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(18,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Prentice, Nicole','Nicole Prentice',NULL,NULL,NULL,NULL,NULL,'Both','138339105',NULL,'Sample Data','Nicole','I','Prentice',NULL,NULL,NULL,NULL,1,NULL,'Dear Nicole',1,NULL,'Dear Nicole',1,NULL,'Nicole Prentice',NULL,NULL,'1975-12-31',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(19,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Parker, Troy','Troy Parker Sr.',NULL,NULL,NULL,'4',NULL,'Both','1888190696',NULL,'Sample Data','Troy','L','Parker',NULL,2,NULL,NULL,1,NULL,'Dear Troy',1,NULL,'Dear Troy',1,NULL,'Troy Parker Sr.',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(20,'Household',NULL,0,1,0,0,0,0,NULL,NULL,'Samson family','Samson family',NULL,NULL,NULL,'1',NULL,'Both','333421926',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Samson family',5,NULL,'Dear Samson family',2,NULL,'Samson family',NULL,NULL,NULL,0,NULL,'Samson family',NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(21,'Household',NULL,0,1,0,0,0,0,NULL,NULL,'Wilson family','Wilson family',NULL,NULL,NULL,NULL,NULL,'Both','350510798',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Wilson family',5,NULL,'Dear Wilson family',2,NULL,'Wilson family',NULL,NULL,NULL,0,NULL,'Wilson family',NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(22,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Prentice, Juliann','Juliann Prentice',NULL,NULL,NULL,'4',NULL,'Both','4163234057',NULL,'Sample Data','Juliann','D','Prentice',NULL,NULL,NULL,NULL,1,NULL,'Dear Juliann',1,NULL,'Dear Juliann',1,NULL,'Juliann Prentice',NULL,NULL,'1978-03-15',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(23,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Lee, Jina','Jina Lee',NULL,NULL,NULL,'2',NULL,'Both','1558289528',NULL,'Sample Data','Jina','Q','Lee',NULL,NULL,NULL,NULL,1,NULL,'Dear Jina',1,NULL,'Dear Jina',1,NULL,'Jina Lee',NULL,1,'1982-05-06',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(24,'Individual',NULL,0,1,0,0,1,0,NULL,NULL,'Robertson, Juliann','Ms. Juliann Robertson',NULL,NULL,NULL,NULL,NULL,'Both','2263807778',NULL,'Sample Data','Juliann','V','Robertson',2,NULL,NULL,NULL,1,NULL,'Dear Juliann',1,NULL,'Dear Juliann',1,NULL,'Ms. Juliann Robertson',NULL,1,'1982-04-28',0,NULL,NULL,NULL,'Ohio Advocacy Initiative',NULL,NULL,56,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(25,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Cruz, Ivey','Ivey Cruz',NULL,NULL,NULL,NULL,NULL,'Both','3529937009',NULL,'Sample Data','Ivey','X','Cruz',NULL,NULL,NULL,NULL,1,NULL,'Dear Ivey',1,NULL,'Dear Ivey',1,NULL,'Ivey Cruz',NULL,1,'1962-03-27',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(26,'Individual',NULL,1,0,0,0,1,0,NULL,NULL,'Smith, Shad','Shad Smith III',NULL,NULL,NULL,NULL,NULL,'Both','3601530916',NULL,'Sample Data','Shad','K','Smith',NULL,4,NULL,NULL,1,NULL,'Dear Shad',1,NULL,'Dear Shad',1,NULL,'Shad Smith III',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(27,'Organization',NULL,1,1,0,0,0,0,NULL,NULL,'Fredericksburg Food Fund','Fredericksburg Food Fund',NULL,NULL,NULL,NULL,NULL,'Both','130909820',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Fredericksburg Food Fund',NULL,NULL,NULL,0,NULL,NULL,58,'Fredericksburg Food Fund',NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(28,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Wagner, Roland','Roland Wagner',NULL,NULL,NULL,NULL,NULL,'Both','1173293758',NULL,'Sample Data','Roland','','Wagner',NULL,NULL,NULL,NULL,1,NULL,'Dear Roland',1,NULL,'Dear Roland',1,NULL,'Roland Wagner',NULL,2,'2005-05-12',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(29,'Organization',NULL,0,0,0,0,1,0,NULL,NULL,'Sisseton Literacy Initiative','Sisseton Literacy Initiative',NULL,NULL,NULL,'5',NULL,'Both','2841707761',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Sisseton Literacy Initiative',NULL,NULL,NULL,0,NULL,NULL,63,'Sisseton Literacy Initiative',NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(30,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Smith, Delana','Delana Smith',NULL,NULL,NULL,NULL,NULL,'Both','1662574257',NULL,'Sample Data','Delana','Q','Smith',NULL,NULL,NULL,NULL,1,NULL,'Dear Delana',1,NULL,'Dear Delana',1,NULL,'Delana Smith',NULL,NULL,'1988-02-27',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(31,'Individual',NULL,1,1,0,0,0,0,NULL,NULL,'Smith-Zope, Andrew','Andrew Smith-Zope III',NULL,NULL,NULL,'5',NULL,'Both','406922462',NULL,'Sample Data','Andrew','V','Smith-Zope',NULL,4,NULL,NULL,1,NULL,'Dear Andrew',1,NULL,'Dear Andrew',1,NULL,'Andrew Smith-Zope III',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(32,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Robertson, Junko','Junko Robertson',NULL,NULL,NULL,NULL,NULL,'Both','1317703823',NULL,'Sample Data','Junko','Q','Robertson',NULL,NULL,NULL,NULL,1,NULL,'Dear Junko',1,NULL,'Dear Junko',1,NULL,'Junko Robertson',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(33,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Díaz, Brent','Brent Díaz Sr.',NULL,NULL,NULL,'3',NULL,'Both','1416320616',NULL,'Sample Data','Brent','J','Díaz',NULL,2,NULL,NULL,1,NULL,'Dear Brent',1,NULL,'Dear Brent',1,NULL,'Brent Díaz Sr.',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(34,'Household',NULL,0,0,0,0,0,0,NULL,NULL,'Bachman-Smith family','Bachman-Smith family',NULL,NULL,NULL,NULL,NULL,'Both','610277100',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Bachman-Smith family',5,NULL,'Dear Bachman-Smith family',2,NULL,'Bachman-Smith family',NULL,NULL,NULL,0,NULL,'Bachman-Smith family',NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(35,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Ivanov, Magan','Magan Ivanov',NULL,NULL,NULL,'5',NULL,'Both','4273390544',NULL,'Sample Data','Magan','','Ivanov',NULL,NULL,NULL,NULL,1,NULL,'Dear Magan',1,NULL,'Dear Magan',1,NULL,'Magan Ivanov',NULL,1,'1988-09-23',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(36,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Jameson-Roberts, Ashley','Ashley Jameson-Roberts',NULL,NULL,NULL,NULL,NULL,'Both','3246849580',NULL,'Sample Data','Ashley','','Jameson-Roberts',NULL,NULL,NULL,NULL,1,NULL,'Dear Ashley',1,NULL,'Dear Ashley',1,NULL,'Ashley Jameson-Roberts',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(37,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Jones, Junko','Junko Jones',NULL,NULL,NULL,NULL,NULL,'Both','3254186828',NULL,'Sample Data','Junko','','Jones',NULL,NULL,NULL,NULL,1,NULL,'Dear Junko',1,NULL,'Dear Junko',1,NULL,'Junko Jones',NULL,NULL,NULL,0,NULL,NULL,NULL,'Bay Sustainability Partners',NULL,NULL,38,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(38,'Organization',NULL,0,0,0,0,0,0,NULL,NULL,'Bay Sustainability Partners','Bay Sustainability Partners',NULL,NULL,NULL,NULL,NULL,'Both','3082386049',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Bay Sustainability Partners',NULL,NULL,NULL,0,NULL,NULL,37,'Bay Sustainability Partners',NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(39,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'González, Angelika','Ms. Angelika González',NULL,NULL,NULL,'5',NULL,'Both','2364901887',NULL,'Sample Data','Angelika','','González',2,NULL,NULL,NULL,1,NULL,'Dear Angelika',1,NULL,'Dear Angelika',1,NULL,'Ms. Angelika González',NULL,1,'1960-10-07',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(40,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Müller, Merrie','Merrie Müller',NULL,NULL,NULL,NULL,NULL,'Both','1627224470',NULL,'Sample Data','Merrie','S','Müller',NULL,NULL,NULL,NULL,1,NULL,'Dear Merrie',1,NULL,'Dear Merrie',1,NULL,'Merrie Müller',NULL,1,'2004-07-18',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(41,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Smith, Brent','Brent Smith',NULL,NULL,NULL,NULL,NULL,'Both','645749990',NULL,'Sample Data','Brent','','Smith',NULL,NULL,NULL,NULL,1,NULL,'Dear Brent',1,NULL,'Dear Brent',1,NULL,'Brent Smith',NULL,NULL,'2006-10-24',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(42,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Terrell, Sherman','Dr. Sherman Terrell III',NULL,NULL,NULL,'4',NULL,'Both','470401788',NULL,'Sample Data','Sherman','Z','Terrell',4,4,NULL,NULL,1,NULL,'Dear Sherman',1,NULL,'Dear Sherman',1,NULL,'Dr. Sherman Terrell III',NULL,2,'1940-04-22',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(43,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Parker, Shad','Dr. Shad Parker II',NULL,NULL,NULL,NULL,NULL,'Both','23650208',NULL,'Sample Data','Shad','E','Parker',4,3,NULL,NULL,1,NULL,'Dear Shad',1,NULL,'Dear Shad',1,NULL,'Dr. Shad Parker II',NULL,2,'1955-05-14',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(44,'Household',NULL,1,1,0,0,0,0,NULL,NULL,'Samson family','Samson family',NULL,NULL,NULL,NULL,NULL,'Both','333421926',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Samson family',5,NULL,'Dear Samson family',2,NULL,'Samson family',NULL,NULL,NULL,0,NULL,'Samson family',NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(45,'Individual',NULL,1,1,0,0,1,0,NULL,NULL,'Yadav-Olsen, Brigette','Dr. Brigette Yadav-Olsen',NULL,NULL,NULL,NULL,NULL,'Both','1044978853',NULL,'Sample Data','Brigette','','Yadav-Olsen',4,NULL,NULL,NULL,1,NULL,'Dear Brigette',1,NULL,'Dear Brigette',1,NULL,'Dr. Brigette Yadav-Olsen',NULL,1,'1986-09-29',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(46,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Grant, Sanford','Sanford Grant',NULL,NULL,NULL,'3',NULL,'Both','27540077',NULL,'Sample Data','Sanford','','Grant',NULL,NULL,NULL,NULL,1,NULL,'Dear Sanford',1,NULL,'Dear Sanford',1,NULL,'Sanford Grant',NULL,NULL,'1998-05-13',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(47,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Robertson, Allan','Allan Robertson',NULL,NULL,NULL,'5',NULL,'Both','2586293753',NULL,'Sample Data','Allan','','Robertson',NULL,NULL,NULL,NULL,1,NULL,'Dear Allan',1,NULL,'Dear Allan',1,NULL,'Allan Robertson',NULL,2,'1956-03-29',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(48,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Barkley, Rolando','Rolando Barkley',NULL,NULL,NULL,NULL,NULL,'Both','3419064809',NULL,'Sample Data','Rolando','','Barkley',NULL,NULL,NULL,NULL,1,NULL,'Dear Rolando',1,NULL,'Dear Rolando',1,NULL,'Rolando Barkley',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(49,'Individual',NULL,1,1,0,0,0,0,NULL,NULL,'mllera71@notmail.net','mllera71@notmail.net',NULL,NULL,NULL,'3',NULL,'Both','830069502',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,'Dear mllera71@notmail.net',1,NULL,'Dear mllera71@notmail.net',1,NULL,'mllera71@notmail.net',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(50,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Roberts, Lou','Lou Roberts II',NULL,NULL,NULL,'5',NULL,'Both','3476194906',NULL,'Sample Data','Lou','X','Roberts',NULL,3,NULL,NULL,1,NULL,'Dear Lou',1,NULL,'Dear Lou',1,NULL,'Lou Roberts II',NULL,2,'1998-12-02',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(51,'Household',NULL,0,0,0,0,0,0,NULL,NULL,'Barkley family','Barkley family',NULL,NULL,NULL,'4',NULL,'Both','2888062109',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Barkley family',5,NULL,'Dear Barkley family',2,NULL,'Barkley family',NULL,NULL,NULL,0,NULL,'Barkley family',NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(52,'Individual',NULL,1,0,0,0,1,0,NULL,NULL,'Yadav, Billy','Dr. Billy Yadav III',NULL,NULL,NULL,'5',NULL,'Both','2022079737',NULL,'Sample Data','Billy','B','Yadav',4,4,NULL,NULL,1,NULL,'Dear Billy',1,NULL,'Dear Billy',1,NULL,'Dr. Billy Yadav III',NULL,2,'1996-11-05',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(53,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Wilson, Princess','Princess Wilson',NULL,NULL,NULL,NULL,NULL,'Both','1309472467',NULL,'Sample Data','Princess','E','Wilson',NULL,NULL,NULL,NULL,1,NULL,'Dear Princess',1,NULL,'Dear Princess',1,NULL,'Princess Wilson',NULL,NULL,'1953-01-11',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(54,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Terry, Sonny','Mr. Sonny Terry Sr.',NULL,NULL,NULL,NULL,NULL,'Both','2037695520',NULL,'Sample Data','Sonny','T','Terry',3,2,NULL,NULL,1,NULL,'Dear Sonny',1,NULL,'Dear Sonny',1,NULL,'Mr. Sonny Terry Sr.',NULL,2,'1987-05-27',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(55,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Deforest, Josefa','Josefa Deforest',NULL,NULL,NULL,NULL,NULL,'Both','2303939746',NULL,'Sample Data','Josefa','X','Deforest',NULL,NULL,NULL,NULL,1,NULL,'Dear Josefa',1,NULL,'Dear Josefa',1,NULL,'Josefa Deforest',NULL,1,'2003-01-07',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(56,'Organization',NULL,0,1,0,0,0,0,NULL,NULL,'Ohio Advocacy Initiative','Ohio Advocacy Initiative',NULL,NULL,NULL,NULL,NULL,'Both','961789765',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Ohio Advocacy Initiative',NULL,NULL,NULL,0,NULL,NULL,24,'Ohio Advocacy Initiative',NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(57,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Jones, Brittney','Brittney Jones',NULL,NULL,NULL,'2',NULL,'Both','4034608446',NULL,'Sample Data','Brittney','O','Jones',NULL,NULL,NULL,NULL,1,NULL,'Dear Brittney',1,NULL,'Dear Brittney',1,NULL,'Brittney Jones',NULL,NULL,'1931-08-15',1,'2019-03-28',NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(58,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Samson, Miguel','Miguel Samson III',NULL,NULL,NULL,'5',NULL,'Both','3523304734',NULL,'Sample Data','Miguel','','Samson',NULL,4,NULL,NULL,1,NULL,'Dear Miguel',1,NULL,'Dear Miguel',1,NULL,'Miguel Samson III',NULL,NULL,'1992-03-16',0,NULL,NULL,NULL,'Fredericksburg Food Fund',NULL,NULL,27,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(59,'Individual',NULL,1,0,0,0,1,0,NULL,NULL,'Jameson, Carylon','Carylon Jameson',NULL,NULL,NULL,'3',NULL,'Both','232914878',NULL,'Sample Data','Carylon','J','Jameson',NULL,NULL,NULL,NULL,1,NULL,'Dear Carylon',1,NULL,'Dear Carylon',1,NULL,'Carylon Jameson',NULL,1,'2008-01-01',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(60,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Cruz, Felisha','Felisha Cruz',NULL,NULL,NULL,'3',NULL,'Both','2429011594',NULL,'Sample Data','Felisha','','Cruz',NULL,NULL,NULL,NULL,1,NULL,'Dear Felisha',1,NULL,'Dear Felisha',1,NULL,'Felisha Cruz',NULL,1,'2005-01-29',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(61,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Łąchowski, Junko','Junko Łąchowski',NULL,NULL,NULL,NULL,NULL,'Both','213828340',NULL,'Sample Data','Junko','','Łąchowski',NULL,NULL,NULL,NULL,1,NULL,'Dear Junko',1,NULL,'Dear Junko',1,NULL,'Junko Łąchowski',NULL,NULL,'2008-01-28',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(62,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Deforest, Toby','Toby Deforest III',NULL,NULL,NULL,'2',NULL,'Both','2295860847',NULL,'Sample Data','Toby','T','Deforest',NULL,4,NULL,NULL,1,NULL,'Dear Toby',1,NULL,'Dear Toby',1,NULL,'Toby Deforest III',NULL,2,'2007-12-16',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(63,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Deforest, Russell','Mr. Russell Deforest',NULL,NULL,NULL,'3',NULL,'Both','2595317869',NULL,'Sample Data','Russell','Y','Deforest',3,NULL,NULL,NULL,1,NULL,'Dear Russell',1,NULL,'Dear Russell',1,NULL,'Mr. Russell Deforest',NULL,NULL,'1975-01-14',0,NULL,NULL,NULL,'Sisseton Literacy Initiative',NULL,NULL,29,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(64,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Parker, Valene','Mrs. Valene Parker',NULL,NULL,NULL,'3',NULL,'Both','2439115501',NULL,'Sample Data','Valene','Y','Parker',1,NULL,NULL,NULL,1,NULL,'Dear Valene',1,NULL,'Dear Valene',1,NULL,'Mrs. Valene Parker',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(65,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Smith, Sonny','Mr. Sonny Smith III',NULL,NULL,NULL,'1',NULL,'Both','2875915978',NULL,'Sample Data','Sonny','','Smith',3,4,NULL,NULL,1,NULL,'Dear Sonny',1,NULL,'Dear Sonny',1,NULL,'Mr. Sonny Smith III',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(66,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Grant, Rosario','Rosario Grant III',NULL,NULL,NULL,'2',NULL,'Both','2992904466',NULL,'Sample Data','Rosario','','Grant',NULL,4,NULL,NULL,1,NULL,'Dear Rosario',1,NULL,'Dear Rosario',1,NULL,'Rosario Grant III',NULL,NULL,'1939-06-16',1,'2019-10-25',NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(67,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Łąchowski, Elina','Elina Łąchowski',NULL,NULL,NULL,'3',NULL,'Both','1014989559',NULL,'Sample Data','Elina','','Łąchowski',NULL,NULL,NULL,NULL,1,NULL,'Dear Elina',1,NULL,'Dear Elina',1,NULL,'Elina Łąchowski',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(68,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Jacobs, Kandace','Kandace Jacobs',NULL,NULL,NULL,NULL,NULL,'Both','662729753',NULL,'Sample Data','Kandace','','Jacobs',NULL,NULL,NULL,NULL,1,NULL,'Dear Kandace',1,NULL,'Dear Kandace',1,NULL,'Kandace Jacobs',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(69,'Organization',NULL,0,0,0,0,0,0,NULL,NULL,'South Carolina Literacy Services','South Carolina Literacy Services',NULL,NULL,NULL,'5',NULL,'Both','1633471049',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'South Carolina Literacy Services',NULL,NULL,NULL,0,NULL,NULL,NULL,'South Carolina Literacy Services',NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(70,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Łąchowski, Mei','Mrs. Mei Łąchowski',NULL,NULL,NULL,NULL,NULL,'Both','16480830',NULL,'Sample Data','Mei','','Łąchowski',1,NULL,NULL,NULL,1,NULL,'Dear Mei',1,NULL,'Dear Mei',1,NULL,'Mrs. Mei Łąchowski',NULL,1,'1945-11-27',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(71,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Wilson, Errol','Dr. Errol Wilson',NULL,NULL,NULL,NULL,NULL,'Both','1627252863',NULL,'Sample Data','Errol','','Wilson',4,NULL,NULL,NULL,1,NULL,'Dear Errol',1,NULL,'Dear Errol',1,NULL,'Dr. Errol Wilson',NULL,2,'1997-09-16',0,NULL,NULL,NULL,'Cadell Development Services',NULL,NULL,181,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(72,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Jensen, Allan','Mr. Allan Jensen III',NULL,NULL,NULL,NULL,NULL,'Both','2028803249',NULL,'Sample Data','Allan','E','Jensen',3,4,NULL,NULL,1,NULL,'Dear Allan',1,NULL,'Dear Allan',1,NULL,'Mr. Allan Jensen III',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(73,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Jacobs, Josefa','Josefa Jacobs',NULL,NULL,NULL,NULL,NULL,'Both','4224564328',NULL,'Sample Data','Josefa','','Jacobs',NULL,NULL,NULL,NULL,1,NULL,'Dear Josefa',1,NULL,'Dear Josefa',1,NULL,'Josefa Jacobs',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(74,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Yadav, Beula','Beula Yadav',NULL,NULL,NULL,'3',NULL,'Both','852214760',NULL,'Sample Data','Beula','','Yadav',NULL,NULL,NULL,NULL,1,NULL,'Dear Beula',1,NULL,'Dear Beula',1,NULL,'Beula Yadav',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(75,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Jacobs, Allen','Allen Jacobs II',NULL,NULL,NULL,'1',NULL,'Both','1784582040',NULL,'Sample Data','Allen','F','Jacobs',NULL,3,NULL,NULL,1,NULL,'Dear Allen',1,NULL,'Dear Allen',1,NULL,'Allen Jacobs II',NULL,NULL,NULL,0,NULL,NULL,NULL,'Wisconsin Sports Trust',NULL,NULL,120,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(76,'Organization',NULL,0,1,0,0,0,0,NULL,NULL,'Community Peace Fellowship','Community Peace Fellowship',NULL,NULL,NULL,NULL,NULL,'Both','1299963232',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Community Peace Fellowship',NULL,NULL,NULL,0,NULL,NULL,112,'Community Peace Fellowship',NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(77,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Olsen, Rolando','Rolando Olsen',NULL,NULL,NULL,NULL,NULL,'Both','2121296962',NULL,'Sample Data','Rolando','P','Olsen',NULL,NULL,NULL,NULL,1,NULL,'Dear Rolando',1,NULL,'Dear Rolando',1,NULL,'Rolando Olsen',NULL,2,'1993-04-30',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(78,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Nielsen, Lashawnda','Ms. Lashawnda Nielsen',NULL,NULL,NULL,'3',NULL,'Both','591811788',NULL,'Sample Data','Lashawnda','','Nielsen',2,NULL,NULL,NULL,1,NULL,'Dear Lashawnda',1,NULL,'Dear Lashawnda',1,NULL,'Ms. Lashawnda Nielsen',NULL,1,'1979-05-18',0,NULL,NULL,NULL,'Main Empowerment Alliance',NULL,NULL,16,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(79,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Yadav, Rosario','Rosario Yadav II',NULL,NULL,NULL,NULL,NULL,'Both','422504705',NULL,'Sample Data','Rosario','L','Yadav',NULL,3,NULL,NULL,1,NULL,'Dear Rosario',1,NULL,'Dear Rosario',1,NULL,'Rosario Yadav II',NULL,2,'1994-07-18',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(80,'Individual',NULL,0,1,0,0,1,0,NULL,NULL,'Jensen, Sharyn','Dr. Sharyn Jensen',NULL,NULL,NULL,'3',NULL,'Both','2516683246',NULL,'Sample Data','Sharyn','','Jensen',4,NULL,NULL,NULL,1,NULL,'Dear Sharyn',1,NULL,'Dear Sharyn',1,NULL,'Dr. Sharyn Jensen',NULL,1,'1979-10-15',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(81,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Cooper-Yadav, Ashley','Ashley Cooper-Yadav',NULL,NULL,NULL,'5',NULL,'Both','2863427603',NULL,'Sample Data','Ashley','S','Cooper-Yadav',NULL,NULL,NULL,NULL,1,NULL,'Dear Ashley',1,NULL,'Dear Ashley',1,NULL,'Ashley Cooper-Yadav',NULL,1,'1951-10-05',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(82,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Wilson, Herminia','Mrs. Herminia Wilson',NULL,NULL,NULL,'3',NULL,'Both','1306948243',NULL,'Sample Data','Herminia','','Wilson',1,NULL,NULL,NULL,1,NULL,'Dear Herminia',1,NULL,'Dear Herminia',1,NULL,'Mrs. Herminia Wilson',NULL,1,'1993-02-12',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(83,'Organization',NULL,0,0,0,0,0,0,NULL,NULL,'Alma Poetry Center','Alma Poetry Center',NULL,NULL,NULL,NULL,NULL,'Both','194499531',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Alma Poetry Center',NULL,NULL,NULL,0,NULL,NULL,3,'Alma Poetry Center',NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(84,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Barkley, Felisha','Ms. Felisha Barkley',NULL,NULL,NULL,NULL,NULL,'Both','1669802133',NULL,'Sample Data','Felisha','','Barkley',2,NULL,NULL,NULL,1,NULL,'Dear Felisha',1,NULL,'Dear Felisha',1,NULL,'Ms. Felisha Barkley',NULL,1,'1963-01-03',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(85,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Yadav, Jay','Jay Yadav Jr.',NULL,NULL,NULL,'2',NULL,'Both','3317277068',NULL,'Sample Data','Jay','','Yadav',NULL,1,NULL,NULL,1,NULL,'Dear Jay',1,NULL,'Dear Jay',1,NULL,'Jay Yadav Jr.',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(86,'Organization',NULL,0,0,0,0,1,0,NULL,NULL,'Lincoln Music Systems','Lincoln Music Systems',NULL,NULL,NULL,NULL,NULL,'Both','1297736450',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Lincoln Music Systems',NULL,NULL,NULL,0,NULL,NULL,125,'Lincoln Music Systems',NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(87,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Parker, Jay','Dr. Jay Parker Sr.',NULL,NULL,NULL,NULL,NULL,'Both','1839033827',NULL,'Sample Data','Jay','','Parker',4,2,NULL,NULL,1,NULL,'Dear Jay',1,NULL,'Dear Jay',1,NULL,'Dr. Jay Parker Sr.',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(88,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Łąchowski, Andrew','Andrew Łąchowski',NULL,NULL,NULL,'1',NULL,'Both','1575830932',NULL,'Sample Data','Andrew','B','Łąchowski',NULL,NULL,NULL,NULL,1,NULL,'Dear Andrew',1,NULL,'Dear Andrew',1,NULL,'Andrew Łąchowski',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(89,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'blackwell.jerome@sample.com','blackwell.jerome@sample.com',NULL,NULL,NULL,NULL,NULL,'Both','3165043511',NULL,'Sample Data',NULL,NULL,NULL,4,NULL,NULL,NULL,1,NULL,'Dear blackwell.jerome@sample.com',1,NULL,'Dear blackwell.jerome@sample.com',1,NULL,'blackwell.jerome@sample.com',NULL,NULL,NULL,0,NULL,NULL,NULL,'Jamestown Wellness Partners',NULL,NULL,155,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(90,'Household',NULL,0,1,0,0,0,0,NULL,NULL,'Deforest family','Deforest family',NULL,NULL,NULL,'5',NULL,'Both','3235379039',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Deforest family',5,NULL,'Dear Deforest family',2,NULL,'Deforest family',NULL,NULL,NULL,0,NULL,'Deforest family',NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(91,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Yadav-Olsen, Lou','Lou Yadav-Olsen III',NULL,NULL,NULL,'4',NULL,'Both','3254233099',NULL,'Sample Data','Lou','','Yadav-Olsen',NULL,4,NULL,NULL,1,NULL,'Dear Lou',1,NULL,'Dear Lou',1,NULL,'Lou Yadav-Olsen III',NULL,2,'1982-08-28',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(92,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Jacobs, Teresa','Teresa Jacobs',NULL,NULL,NULL,'5',NULL,'Both','128468563',NULL,'Sample Data','Teresa','','Jacobs',NULL,NULL,NULL,NULL,1,NULL,'Dear Teresa',1,NULL,'Dear Teresa',1,NULL,'Teresa Jacobs',NULL,1,'1956-08-26',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(93,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Łąchowski, Bernadette','Bernadette Łąchowski',NULL,NULL,NULL,'5',NULL,'Both','2108681272',NULL,'Sample Data','Bernadette','','Łąchowski',NULL,NULL,NULL,NULL,1,NULL,'Dear Bernadette',1,NULL,'Dear Bernadette',1,NULL,'Bernadette Łąchowski',NULL,1,'2009-10-03',0,NULL,NULL,NULL,'Wisconsin Technology Services',NULL,NULL,142,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(94,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Smith, Justina','Justina Smith',NULL,NULL,NULL,'1',NULL,'Both','16511477',NULL,'Sample Data','Justina','','Smith',NULL,NULL,NULL,NULL,1,NULL,'Dear Justina',1,NULL,'Dear Justina',1,NULL,'Justina Smith',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(95,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Jameson-Roberts, Ashlie','Dr. Ashlie Jameson-Roberts',NULL,NULL,NULL,NULL,NULL,'Both','2033380719',NULL,'Sample Data','Ashlie','','Jameson-Roberts',4,NULL,NULL,NULL,1,NULL,'Dear Ashlie',1,NULL,'Dear Ashlie',1,NULL,'Dr. Ashlie Jameson-Roberts',NULL,NULL,'1983-03-14',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(96,'Household',NULL,1,0,0,0,0,0,NULL,NULL,'Müller family','Müller family',NULL,NULL,NULL,NULL,NULL,'Both','1144797465',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Müller family',5,NULL,'Dear Müller family',2,NULL,'Müller family',NULL,NULL,NULL,0,NULL,'Müller family',NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(97,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Lee, Errol','Errol Lee',NULL,NULL,NULL,NULL,NULL,'Both','1182001849',NULL,'Sample Data','Errol','','Lee',NULL,NULL,NULL,NULL,1,NULL,'Dear Errol',1,NULL,'Dear Errol',1,NULL,'Errol Lee',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(98,'Household',NULL,0,0,0,0,0,0,NULL,NULL,'Wattson-Cruz family','Wattson-Cruz family',NULL,NULL,NULL,NULL,NULL,'Both','2227626634',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Wattson-Cruz family',5,NULL,'Dear Wattson-Cruz family',2,NULL,'Wattson-Cruz family',NULL,NULL,NULL,0,NULL,'Wattson-Cruz family',NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(99,'Household',NULL,0,0,0,0,0,0,NULL,NULL,'Jacobs family','Jacobs family',NULL,NULL,NULL,NULL,NULL,'Both','1498986649',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Jacobs family',5,NULL,'Dear Jacobs family',2,NULL,'Jacobs family',NULL,NULL,NULL,0,NULL,'Jacobs family',NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(100,'Household',NULL,0,0,0,0,0,0,NULL,NULL,'Łąchowski family','Łąchowski family',NULL,NULL,NULL,NULL,NULL,'Both','2407077255',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Łąchowski family',5,NULL,'Dear Łąchowski family',2,NULL,'Łąchowski family',NULL,NULL,NULL,0,NULL,'Łąchowski family',NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(101,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'wilson.scarlet@notmail.info','wilson.scarlet@notmail.info',NULL,NULL,NULL,NULL,NULL,'Both','3871035212',NULL,'Sample Data',NULL,NULL,NULL,4,NULL,NULL,NULL,1,NULL,'Dear wilson.scarlet@notmail.info',1,NULL,'Dear wilson.scarlet@notmail.info',1,NULL,'wilson.scarlet@notmail.info',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(102,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Müller, Carylon','Carylon Müller',NULL,NULL,NULL,'4',NULL,'Both','2173697265',NULL,'Sample Data','Carylon','','Müller',NULL,NULL,NULL,NULL,1,NULL,'Dear Carylon',1,NULL,'Dear Carylon',1,NULL,'Carylon Müller',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(103,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Díaz, Princess','Princess Díaz',NULL,NULL,NULL,'3',NULL,'Both','2291440559',NULL,'Sample Data','Princess','','Díaz',NULL,NULL,NULL,NULL,1,NULL,'Dear Princess',1,NULL,'Dear Princess',1,NULL,'Princess Díaz',NULL,NULL,'1949-01-19',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(104,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Łąchowski, Lincoln','Lincoln Łąchowski III',NULL,NULL,NULL,'4',NULL,'Both','4115738277',NULL,'Sample Data','Lincoln','T','Łąchowski',NULL,4,NULL,NULL,1,NULL,'Dear Lincoln',1,NULL,'Dear Lincoln',1,NULL,'Lincoln Łąchowski III',NULL,2,'1949-05-31',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(105,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Roberts-Barkley, Scott','Scott Roberts-Barkley II',NULL,NULL,NULL,'5',NULL,'Both','2205323300',NULL,'Sample Data','Scott','','Roberts-Barkley',NULL,3,NULL,NULL,1,NULL,'Dear Scott',1,NULL,'Dear Scott',1,NULL,'Scott Roberts-Barkley II',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(106,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Deforest, Rodrigo','Rodrigo Deforest',NULL,NULL,NULL,NULL,NULL,'Both','560403570',NULL,'Sample Data','Rodrigo','C','Deforest',NULL,NULL,NULL,NULL,1,NULL,'Dear Rodrigo',1,NULL,'Dear Rodrigo',1,NULL,'Rodrigo Deforest',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(107,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Yadav, Claudio','Claudio Yadav',NULL,NULL,NULL,'2',NULL,'Both','2212747069',NULL,'Sample Data','Claudio','','Yadav',NULL,NULL,NULL,NULL,1,NULL,'Dear Claudio',1,NULL,'Dear Claudio',1,NULL,'Claudio Yadav',NULL,NULL,'2000-01-09',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(108,'Household',NULL,0,1,0,0,0,0,NULL,NULL,'Smith-Zope family','Smith-Zope family',NULL,NULL,NULL,NULL,NULL,'Both','4232325802',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Smith-Zope family',5,NULL,'Dear Smith-Zope family',2,NULL,'Smith-Zope family',NULL,NULL,NULL,0,NULL,'Smith-Zope family',NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(109,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Ivanov, Elizabeth','Dr. Elizabeth Ivanov',NULL,NULL,NULL,NULL,NULL,'Both','818500223',NULL,'Sample Data','Elizabeth','','Ivanov',4,NULL,NULL,NULL,1,NULL,'Dear Elizabeth',1,NULL,'Dear Elizabeth',1,NULL,'Dr. Elizabeth Ivanov',NULL,NULL,'1984-05-07',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(110,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Wilson, Erik','Erik Wilson',NULL,NULL,NULL,'5',NULL,'Both','3965179222',NULL,'Sample Data','Erik','','Wilson',NULL,NULL,NULL,NULL,1,NULL,'Dear Erik',1,NULL,'Dear Erik',1,NULL,'Erik Wilson',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(111,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'mller.u.heidi@testmail.co.nz','mller.u.heidi@testmail.co.nz',NULL,NULL,NULL,NULL,NULL,'Both','1185221714',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,'Dear mller.u.heidi@testmail.co.nz',1,NULL,'Dear mller.u.heidi@testmail.co.nz',1,NULL,'mller.u.heidi@testmail.co.nz',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(112,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Barkley, Norris','Norris Barkley',NULL,NULL,NULL,'5',NULL,'Both','2989554076',NULL,'Sample Data','Norris','L','Barkley',NULL,NULL,NULL,NULL,1,NULL,'Dear Norris',1,NULL,'Dear Norris',1,NULL,'Norris Barkley',NULL,2,'2000-05-02',0,NULL,NULL,NULL,'Community Peace Fellowship',NULL,NULL,76,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(113,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Ivanov, Ashley','Ashley Ivanov',NULL,NULL,NULL,'5',NULL,'Both','2740657237',NULL,'Sample Data','Ashley','O','Ivanov',NULL,NULL,NULL,NULL,1,NULL,'Dear Ashley',1,NULL,'Dear Ashley',1,NULL,'Ashley Ivanov',NULL,1,'1944-01-04',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(114,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Ivanov, Maxwell','Dr. Maxwell Ivanov II',NULL,NULL,NULL,'5',NULL,'Both','3562493045',NULL,'Sample Data','Maxwell','T','Ivanov',4,3,NULL,NULL,1,NULL,'Dear Maxwell',1,NULL,'Dear Maxwell',1,NULL,'Dr. Maxwell Ivanov II',NULL,2,'1977-09-12',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(115,'Individual',NULL,1,1,0,0,0,0,NULL,NULL,'Samson, Carlos','Carlos Samson',NULL,NULL,NULL,NULL,NULL,'Both','3685526914',NULL,'Sample Data','Carlos','','Samson',NULL,NULL,NULL,NULL,1,NULL,'Dear Carlos',1,NULL,'Dear Carlos',1,NULL,'Carlos Samson',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(116,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'McReynolds, Brent','Brent McReynolds',NULL,NULL,NULL,NULL,NULL,'Both','1642363983',NULL,'Sample Data','Brent','W','McReynolds',NULL,NULL,NULL,NULL,1,NULL,'Dear Brent',1,NULL,'Dear Brent',1,NULL,'Brent McReynolds',NULL,2,'2005-04-22',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(117,'Household',NULL,0,0,0,0,0,0,NULL,NULL,'Yadav family','Yadav family',NULL,NULL,NULL,'1',NULL,'Both','1777336212',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Yadav family',5,NULL,'Dear Yadav family',2,NULL,'Yadav family',NULL,NULL,NULL,0,NULL,'Yadav family',NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(118,'Household',NULL,0,1,0,0,0,0,NULL,NULL,'Parker family','Parker family',NULL,NULL,NULL,'3',NULL,'Both','425242179',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Parker family',5,NULL,'Dear Parker family',2,NULL,'Parker family',NULL,NULL,NULL,0,NULL,'Parker family',NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(119,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Cruz, Lou','Mr. Lou Cruz',NULL,NULL,NULL,'5',NULL,'Both','3825436654',NULL,'Sample Data','Lou','','Cruz',3,NULL,NULL,NULL,1,NULL,'Dear Lou',1,NULL,'Dear Lou',1,NULL,'Mr. Lou Cruz',NULL,2,'1970-07-24',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(120,'Organization',NULL,0,0,0,0,1,0,NULL,NULL,'Wisconsin Sports Trust','Wisconsin Sports Trust',NULL,NULL,NULL,NULL,NULL,'Both','2130379751',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Wisconsin Sports Trust',NULL,NULL,NULL,0,NULL,NULL,75,'Wisconsin Sports Trust',NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(121,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Parker, Roland','Roland Parker',NULL,NULL,NULL,'2',NULL,'Both','3318650576',NULL,'Sample Data','Roland','','Parker',NULL,NULL,NULL,NULL,1,NULL,'Dear Roland',1,NULL,'Dear Roland',1,NULL,'Roland Parker',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(122,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Cooper, Laree','Laree Cooper',NULL,NULL,NULL,NULL,NULL,'Both','4213061637',NULL,'Sample Data','Laree','','Cooper',NULL,NULL,NULL,NULL,1,NULL,'Dear Laree',1,NULL,'Dear Laree',1,NULL,'Laree Cooper',NULL,1,'1974-02-02',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(123,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'roberts.angelika@fakemail.net','roberts.angelika@fakemail.net',NULL,NULL,NULL,'5',NULL,'Both','699969520',NULL,'Sample Data',NULL,NULL,NULL,4,NULL,NULL,NULL,1,NULL,'Dear roberts.angelika@fakemail.net',1,NULL,'Dear roberts.angelika@fakemail.net',1,NULL,'roberts.angelika@fakemail.net',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(124,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Terrell, Sherman','Dr. Sherman Terrell',NULL,NULL,NULL,NULL,NULL,'Both','470401788',NULL,'Sample Data','Sherman','W','Terrell',4,NULL,NULL,NULL,1,NULL,'Dear Sherman',1,NULL,'Dear Sherman',1,NULL,'Dr. Sherman Terrell',NULL,2,'1963-08-30',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(125,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Parker, Beula','Beula Parker',NULL,NULL,NULL,NULL,NULL,'Both','1115460159',NULL,'Sample Data','Beula','X','Parker',NULL,NULL,NULL,NULL,1,NULL,'Dear Beula',1,NULL,'Dear Beula',1,NULL,'Beula Parker',NULL,1,NULL,0,NULL,NULL,NULL,'Lincoln Music Systems',NULL,NULL,86,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(126,'Household',NULL,0,0,0,0,1,0,NULL,NULL,'Robertson family','Robertson family',NULL,NULL,NULL,NULL,NULL,'Both','3444393980',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Robertson family',5,NULL,'Dear Robertson family',2,NULL,'Robertson family',NULL,NULL,NULL,0,NULL,'Robertson family',NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(127,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'McReynolds, Brigette','Mrs. Brigette McReynolds',NULL,NULL,NULL,NULL,NULL,'Both','393115724',NULL,'Sample Data','Brigette','S','McReynolds',1,NULL,NULL,NULL,1,NULL,'Dear Brigette',1,NULL,'Dear Brigette',1,NULL,'Mrs. Brigette McReynolds',NULL,1,'1988-03-08',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(128,'Organization',NULL,0,0,0,0,0,0,NULL,NULL,'Rural Environmental Partners','Rural Environmental Partners',NULL,NULL,NULL,'1',NULL,'Both','3766287659',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Rural Environmental Partners',NULL,NULL,NULL,0,NULL,NULL,NULL,'Rural Environmental Partners',NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(129,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Jameson, Lawerence','Dr. Lawerence Jameson Sr.',NULL,NULL,NULL,NULL,NULL,'Both','745354503',NULL,'Sample Data','Lawerence','','Jameson',4,2,NULL,NULL,1,NULL,'Dear Lawerence',1,NULL,'Dear Lawerence',1,NULL,'Dr. Lawerence Jameson Sr.',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(130,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Bachman-Smith, Russell','Russell Bachman-Smith',NULL,NULL,NULL,'5',NULL,'Both','2186584911',NULL,'Sample Data','Russell','I','Bachman-Smith',NULL,NULL,NULL,NULL,1,NULL,'Dear Russell',1,NULL,'Dear Russell',1,NULL,'Russell Bachman-Smith',NULL,2,'2013-08-21',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(131,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Wattson-Cruz, Shauna','Shauna Wattson-Cruz',NULL,NULL,NULL,'3',NULL,'Both','3350747843',NULL,'Sample Data','Shauna','','Wattson-Cruz',NULL,NULL,NULL,NULL,1,NULL,'Dear Shauna',1,NULL,'Dear Shauna',1,NULL,'Shauna Wattson-Cruz',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(132,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Wattson-Cruz, Magan','Magan Wattson-Cruz',NULL,NULL,NULL,NULL,NULL,'Both','3898854066',NULL,'Sample Data','Magan','','Wattson-Cruz',NULL,NULL,NULL,NULL,1,NULL,'Dear Magan',1,NULL,'Dear Magan',1,NULL,'Magan Wattson-Cruz',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(133,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Zope, Barry','Mr. Barry Zope',NULL,NULL,NULL,'4',NULL,'Both','1953474040',NULL,'Sample Data','Barry','','Zope',3,NULL,NULL,NULL,1,NULL,'Dear Barry',1,NULL,'Dear Barry',1,NULL,'Mr. Barry Zope',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(134,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Wattson, Rosario','Rosario Wattson',NULL,NULL,NULL,NULL,NULL,'Both','661817002',NULL,'Sample Data','Rosario','','Wattson',NULL,NULL,NULL,NULL,1,NULL,'Dear Rosario',1,NULL,'Dear Rosario',1,NULL,'Rosario Wattson',NULL,NULL,'1980-07-08',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(135,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Bachman-Smith, Rebekah','Dr. Rebekah Bachman-Smith',NULL,NULL,NULL,NULL,NULL,'Both','288194811',NULL,'Sample Data','Rebekah','N','Bachman-Smith',4,NULL,NULL,NULL,1,NULL,'Dear Rebekah',1,NULL,'Dear Rebekah',1,NULL,'Dr. Rebekah Bachman-Smith',NULL,1,'1995-01-31',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(136,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Zope, Tanya','Tanya Zope',NULL,NULL,NULL,'1',NULL,'Both','2120997971',NULL,'Sample Data','Tanya','','Zope',NULL,NULL,NULL,NULL,1,NULL,'Dear Tanya',1,NULL,'Dear Tanya',1,NULL,'Tanya Zope',NULL,1,'1952-11-07',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(137,'Household',NULL,0,0,0,0,0,0,NULL,NULL,'Barkley family','Barkley family',NULL,NULL,NULL,'5',NULL,'Both','2888062109',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Barkley family',5,NULL,'Dear Barkley family',2,NULL,'Barkley family',NULL,NULL,NULL,0,NULL,'Barkley family',NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(138,'Organization',NULL,1,0,0,0,0,0,NULL,NULL,'Imboden Advocacy Alliance','Imboden Advocacy Alliance',NULL,NULL,NULL,'4',NULL,'Both','3801724864',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Imboden Advocacy Alliance',NULL,NULL,NULL,0,NULL,NULL,NULL,'Imboden Advocacy Alliance',NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(139,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Bachman, Ashley','Dr. Ashley Bachman',NULL,NULL,NULL,NULL,NULL,'Both','2646692852',NULL,'Sample Data','Ashley','Q','Bachman',4,NULL,NULL,NULL,1,NULL,'Dear Ashley',1,NULL,'Dear Ashley',1,NULL,'Dr. Ashley Bachman',NULL,2,'1962-07-09',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(140,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Samson, Princess','Princess Samson',NULL,NULL,NULL,'3',NULL,'Both','3367737253',NULL,'Sample Data','Princess','K','Samson',NULL,NULL,NULL,NULL,1,NULL,'Dear Princess',1,NULL,'Dear Princess',1,NULL,'Princess Samson',NULL,1,'1974-05-16',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(141,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Samson, Ivey','Ms. Ivey Samson',NULL,NULL,NULL,NULL,NULL,'Both','2827177330',NULL,'Sample Data','Ivey','','Samson',2,NULL,NULL,NULL,1,NULL,'Dear Ivey',1,NULL,'Dear Ivey',1,NULL,'Ms. Ivey Samson',NULL,1,'1976-03-07',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(142,'Organization',NULL,0,0,0,0,0,0,NULL,NULL,'Wisconsin Technology Services','Wisconsin Technology Services',NULL,NULL,NULL,'2',NULL,'Both','176691767',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Wisconsin Technology Services',NULL,NULL,NULL,0,NULL,NULL,93,'Wisconsin Technology Services',NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(143,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Robertson, Elina','Elina Robertson',NULL,NULL,NULL,'4',NULL,'Both','2118897804',NULL,'Sample Data','Elina','','Robertson',NULL,NULL,NULL,NULL,1,NULL,'Dear Elina',1,NULL,'Dear Elina',1,NULL,'Elina Robertson',NULL,1,'1985-11-23',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(144,'Individual',NULL,1,1,0,0,0,0,NULL,NULL,'Wilson, Russell','Russell Wilson',NULL,NULL,NULL,NULL,NULL,'Both','1575033929',NULL,'Sample Data','Russell','','Wilson',NULL,NULL,NULL,NULL,1,NULL,'Dear Russell',1,NULL,'Dear Russell',1,NULL,'Russell Wilson',NULL,NULL,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(145,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Jones, Felisha','Ms. Felisha Jones',NULL,NULL,NULL,'3',NULL,'Both','2947770839',NULL,'Sample Data','Felisha','E','Jones',2,NULL,NULL,NULL,1,NULL,'Dear Felisha',1,NULL,'Dear Felisha',1,NULL,'Ms. Felisha Jones',NULL,NULL,'1990-11-17',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(146,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'dimitrov-smithi@fakemail.biz','dimitrov-smithi@fakemail.biz',NULL,NULL,NULL,NULL,NULL,'Both','1081673834',NULL,'Sample Data',NULL,NULL,NULL,4,NULL,NULL,NULL,1,NULL,'Dear dimitrov-smithi@fakemail.biz',1,NULL,'Dear dimitrov-smithi@fakemail.biz',1,NULL,'dimitrov-smithi@fakemail.biz',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(147,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Barkley, Landon','Mr. Landon Barkley III',NULL,NULL,NULL,'2',NULL,'Both','2012224076',NULL,'Sample Data','Landon','W','Barkley',3,4,NULL,NULL,1,NULL,'Dear Landon',1,NULL,'Dear Landon',1,NULL,'Mr. Landon Barkley III',NULL,2,'1963-01-01',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(148,'Individual',NULL,0,1,0,0,1,0,NULL,NULL,'Dimitrov, Scarlet','Ms. Scarlet Dimitrov',NULL,NULL,NULL,'4',NULL,'Both','2143443543',NULL,'Sample Data','Scarlet','W','Dimitrov',2,NULL,NULL,NULL,1,NULL,'Dear Scarlet',1,NULL,'Dear Scarlet',1,NULL,'Ms. Scarlet Dimitrov',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(149,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Smith, Brittney','Mrs. Brittney Smith',NULL,NULL,NULL,'3',NULL,'Both','1142724087',NULL,'Sample Data','Brittney','','Smith',1,NULL,NULL,NULL,1,NULL,'Dear Brittney',1,NULL,'Dear Brittney',1,NULL,'Mrs. Brittney Smith',NULL,1,'1946-11-28',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(150,'Household',NULL,1,0,0,0,1,0,NULL,NULL,'Yadav-Olsen family','Yadav-Olsen family',NULL,NULL,NULL,NULL,NULL,'Both','41170437',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Yadav-Olsen family',5,NULL,'Dear Yadav-Olsen family',2,NULL,'Yadav-Olsen family',NULL,NULL,NULL,0,NULL,'Yadav-Olsen family',NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(151,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'wilson.errol@example.co.uk','wilson.errol@example.co.uk',NULL,NULL,NULL,NULL,NULL,'Both','3794837389',NULL,'Sample Data',NULL,NULL,NULL,NULL,3,NULL,NULL,1,NULL,'Dear wilson.errol@example.co.uk',1,NULL,'Dear wilson.errol@example.co.uk',1,NULL,'wilson.errol@example.co.uk',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(152,'Individual',NULL,0,1,0,0,1,0,NULL,NULL,'Samson, Elbert','Mr. Elbert Samson',NULL,NULL,NULL,'5',NULL,'Both','3416596353',NULL,'Sample Data','Elbert','','Samson',3,NULL,NULL,NULL,1,NULL,'Dear Elbert',1,NULL,'Dear Elbert',1,NULL,'Mr. Elbert Samson',NULL,2,'1962-06-15',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(153,'Individual',NULL,1,1,0,0,0,0,NULL,NULL,'Smith-Zope, Rolando','Dr. Rolando Smith-Zope',NULL,NULL,NULL,NULL,NULL,'Both','3966788998',NULL,'Sample Data','Rolando','','Smith-Zope',4,NULL,NULL,NULL,1,NULL,'Dear Rolando',1,NULL,'Dear Rolando',1,NULL,'Dr. Rolando Smith-Zope',NULL,2,'1992-06-13',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(154,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'yadav-olsen.jerome@spamalot.org','yadav-olsen.jerome@spamalot.org',NULL,NULL,NULL,NULL,NULL,'Both','2062066477',NULL,'Sample Data',NULL,NULL,NULL,NULL,3,NULL,NULL,1,NULL,'Dear yadav-olsen.jerome@spamalot.org',1,NULL,'Dear yadav-olsen.jerome@spamalot.org',1,NULL,'yadav-olsen.jerome@spamalot.org',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(155,'Organization',NULL,0,0,0,0,0,0,NULL,NULL,'Jamestown Wellness Partners','Jamestown Wellness Partners',NULL,NULL,NULL,NULL,NULL,'Both','1629383910',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Jamestown Wellness Partners',NULL,NULL,NULL,0,NULL,NULL,89,'Jamestown Wellness Partners',NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(156,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'González, Lincoln','Lincoln González',NULL,NULL,NULL,NULL,NULL,'Both','1919790687',NULL,'Sample Data','Lincoln','','González',NULL,NULL,NULL,NULL,1,NULL,'Dear Lincoln',1,NULL,'Dear Lincoln',1,NULL,'Lincoln González',NULL,NULL,'1989-01-25',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(157,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Reynolds, Sherman','Sherman Reynolds',NULL,NULL,NULL,NULL,NULL,'Both','3073547479',NULL,'Sample Data','Sherman','O','Reynolds',NULL,NULL,NULL,NULL,1,NULL,'Dear Sherman',1,NULL,'Dear Sherman',1,NULL,'Sherman Reynolds',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(158,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Smith, Beula','Ms. Beula Smith',NULL,NULL,NULL,'2',NULL,'Both','2826835673',NULL,'Sample Data','Beula','K','Smith',2,NULL,NULL,NULL,1,NULL,'Dear Beula',1,NULL,'Dear Beula',1,NULL,'Ms. Beula Smith',NULL,NULL,'1957-08-26',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(159,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Smith, Sherman','Sherman Smith Sr.',NULL,NULL,NULL,NULL,NULL,'Both','2534452689',NULL,'Sample Data','Sherman','','Smith',NULL,2,NULL,NULL,1,NULL,'Dear Sherman',1,NULL,'Dear Sherman',1,NULL,'Sherman Smith Sr.',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(160,'Individual',NULL,1,1,0,0,0,0,NULL,NULL,'Dimitrov-Smith, Ashley','Ashley Dimitrov-Smith II',NULL,NULL,NULL,'2',NULL,'Both','4104506646',NULL,'Sample Data','Ashley','','Dimitrov-Smith',NULL,3,NULL,NULL,1,NULL,'Dear Ashley',1,NULL,'Dear Ashley',1,NULL,'Ashley Dimitrov-Smith II',NULL,NULL,'2002-11-04',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(161,'Organization',NULL,0,0,0,0,0,0,NULL,NULL,'Urban Literacy Collective','Urban Literacy Collective',NULL,NULL,NULL,'1',NULL,'Both','3060307100',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Urban Literacy Collective',NULL,NULL,NULL,0,NULL,NULL,NULL,'Urban Literacy Collective',NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(162,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'dimitrovd53@example.org','dimitrovd53@example.org',NULL,NULL,NULL,NULL,NULL,'Both','1201326698',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,'Dear dimitrovd53@example.org',1,NULL,'Dear dimitrovd53@example.org',1,NULL,'dimitrovd53@example.org',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(163,'Household',NULL,0,0,0,0,1,0,NULL,NULL,'Dimitrov-Smith family','Dimitrov-Smith family',NULL,NULL,NULL,NULL,NULL,'Both','74943900',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Dimitrov-Smith family',5,NULL,'Dear Dimitrov-Smith family',2,NULL,'Dimitrov-Smith family',NULL,NULL,NULL,0,NULL,'Dimitrov-Smith family',NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(164,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'jones.herminia35@sample.co.in','jones.herminia35@sample.co.in',NULL,NULL,NULL,NULL,NULL,'Both','3006409793',NULL,'Sample Data',NULL,NULL,NULL,1,NULL,NULL,NULL,1,NULL,'Dear jones.herminia35@sample.co.in',1,NULL,'Dear jones.herminia35@sample.co.in',1,NULL,'jones.herminia35@sample.co.in',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(165,'Individual',NULL,1,1,0,0,0,0,NULL,NULL,'mller.f.allen@fishmail.co.in','mller.f.allen@fishmail.co.in',NULL,NULL,NULL,'5',NULL,'Both','2187435047',NULL,'Sample Data',NULL,NULL,NULL,4,NULL,NULL,NULL,1,NULL,'Dear mller.f.allen@fishmail.co.in',1,NULL,'Dear mller.f.allen@fishmail.co.in',1,NULL,'mller.f.allen@fishmail.co.in',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(166,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Parker, Shad','Shad Parker',NULL,NULL,NULL,'5',NULL,'Both','23650208',NULL,'Sample Data','Shad','','Parker',NULL,NULL,NULL,NULL,1,NULL,'Dear Shad',1,NULL,'Dear Shad',1,NULL,'Shad Parker',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(167,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Grant, Craig','Craig Grant II',NULL,NULL,NULL,NULL,NULL,'Both','3839246434',NULL,'Sample Data','Craig','','Grant',NULL,3,NULL,NULL,1,NULL,'Dear Craig',1,NULL,'Dear Craig',1,NULL,'Craig Grant II',NULL,NULL,'1968-10-26',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(168,'Household',NULL,0,0,0,0,0,0,NULL,NULL,'Ivanov family','Ivanov family',NULL,NULL,NULL,'2',NULL,'Both','2450779112',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Ivanov family',5,NULL,'Dear Ivanov family',2,NULL,'Ivanov family',NULL,NULL,NULL,0,NULL,'Ivanov family',NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(169,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Terrell, Kathleen','Kathleen Terrell',NULL,NULL,NULL,'1',NULL,'Both','1212297989',NULL,'Sample Data','Kathleen','X','Terrell',NULL,NULL,NULL,NULL,1,NULL,'Dear Kathleen',1,NULL,'Dear Kathleen',1,NULL,'Kathleen Terrell',NULL,NULL,'1954-10-14',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(170,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'roberts.betty@airmail.biz','roberts.betty@airmail.biz',NULL,NULL,NULL,NULL,NULL,'Both','3456955083',NULL,'Sample Data',NULL,NULL,NULL,4,NULL,NULL,NULL,1,NULL,'Dear roberts.betty@airmail.biz',1,NULL,'Dear roberts.betty@airmail.biz',1,NULL,'roberts.betty@airmail.biz',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(171,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Müller, Erik','Dr. Erik Müller',NULL,NULL,NULL,NULL,NULL,'Both','826359334',NULL,'Sample Data','Erik','N','Müller',4,NULL,NULL,NULL,1,NULL,'Dear Erik',1,NULL,'Dear Erik',1,NULL,'Dr. Erik Müller',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(172,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Samuels, Russell','Russell Samuels III',NULL,NULL,NULL,'3',NULL,'Both','3958135330',NULL,'Sample Data','Russell','','Samuels',NULL,4,NULL,NULL,1,NULL,'Dear Russell',1,NULL,'Dear Russell',1,NULL,'Russell Samuels III',NULL,2,'2004-02-07',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(173,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Ivanov, Merrie','Dr. Merrie Ivanov',NULL,NULL,NULL,'4',NULL,'Both','2861667534',NULL,'Sample Data','Merrie','F','Ivanov',4,NULL,NULL,NULL,1,NULL,'Dear Merrie',1,NULL,'Dear Merrie',1,NULL,'Dr. Merrie Ivanov',NULL,NULL,'1931-03-28',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(174,'Individual',NULL,0,1,0,0,1,0,NULL,NULL,'González, Brent','Brent González',NULL,NULL,NULL,'1',NULL,'Both','397348525',NULL,'Sample Data','Brent','E','González',NULL,NULL,NULL,NULL,1,NULL,'Dear Brent',1,NULL,'Dear Brent',1,NULL,'Brent González',NULL,2,'2009-03-24',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(175,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Dimitrov, Craig','Mr. Craig Dimitrov III',NULL,NULL,NULL,'4',NULL,'Both','3815881421',NULL,'Sample Data','Craig','','Dimitrov',3,4,NULL,NULL,1,NULL,'Dear Craig',1,NULL,'Dear Craig',1,NULL,'Mr. Craig Dimitrov III',NULL,NULL,'1954-07-01',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(176,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'ivanov.kandace@sample.co.nz','ivanov.kandace@sample.co.nz',NULL,NULL,NULL,'1',NULL,'Both','1367898449',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,'Dear ivanov.kandace@sample.co.nz',1,NULL,'Dear ivanov.kandace@sample.co.nz',1,NULL,'ivanov.kandace@sample.co.nz',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(177,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Samuels, Kandace','Kandace Samuels',NULL,NULL,NULL,NULL,NULL,'Both','757003024',NULL,'Sample Data','Kandace','','Samuels',NULL,NULL,NULL,NULL,1,NULL,'Dear Kandace',1,NULL,'Dear Kandace',1,NULL,'Kandace Samuels',NULL,NULL,'1976-07-01',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(178,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Jameson-Müller, Eleonor','Eleonor Jameson-Müller',NULL,NULL,NULL,'1',NULL,'Both','3299392273',NULL,'Sample Data','Eleonor','O','Jameson-Müller',NULL,NULL,NULL,NULL,1,NULL,'Dear Eleonor',1,NULL,'Dear Eleonor',1,NULL,'Eleonor Jameson-Müller',NULL,NULL,'1977-07-24',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(179,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Jacobs, Lincoln','Lincoln Jacobs',NULL,NULL,NULL,NULL,NULL,'Both','2306283534',NULL,'Sample Data','Lincoln','','Jacobs',NULL,NULL,NULL,NULL,1,NULL,'Dear Lincoln',1,NULL,'Dear Lincoln',1,NULL,'Lincoln Jacobs',NULL,NULL,'1997-05-24',0,NULL,NULL,NULL,'Redmon Health Trust',NULL,NULL,10,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(180,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Jones, Rodrigo','Rodrigo Jones III',NULL,NULL,NULL,NULL,NULL,'Both','1530953309',NULL,'Sample Data','Rodrigo','M','Jones',NULL,4,NULL,NULL,1,NULL,'Dear Rodrigo',1,NULL,'Dear Rodrigo',1,NULL,'Rodrigo Jones III',NULL,NULL,'1976-07-13',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(181,'Organization',NULL,1,0,0,0,0,0,NULL,NULL,'Cadell Development Services','Cadell Development Services',NULL,NULL,NULL,NULL,NULL,'Both','901140523',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Cadell Development Services',NULL,NULL,NULL,0,NULL,NULL,71,'Cadell Development Services',NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(182,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Smith, Jay','Jay Smith',NULL,NULL,NULL,'4',NULL,'Both','2744125186',NULL,'Sample Data','Jay','','Smith',NULL,NULL,NULL,NULL,1,NULL,'Dear Jay',1,NULL,'Dear Jay',1,NULL,'Jay Smith',NULL,2,'1957-05-30',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(183,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Prentice-Wilson, Margaret','Margaret Prentice-Wilson',NULL,NULL,NULL,'5',NULL,'Both','1024721887',NULL,'Sample Data','Margaret','C','Prentice-Wilson',NULL,NULL,NULL,NULL,1,NULL,'Dear Margaret',1,NULL,'Dear Margaret',1,NULL,'Margaret Prentice-Wilson',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(184,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Deforest, Tanya','Tanya Deforest',NULL,NULL,NULL,NULL,NULL,'Both','3707213011',NULL,'Sample Data','Tanya','Y','Deforest',NULL,NULL,NULL,NULL,1,NULL,'Dear Tanya',1,NULL,'Dear Tanya',1,NULL,'Tanya Deforest',NULL,1,'1961-03-11',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(185,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Smith, Betty','Dr. Betty Smith',NULL,NULL,NULL,'4',NULL,'Both','952859873',NULL,'Sample Data','Betty','D','Smith',4,NULL,NULL,NULL,1,NULL,'Dear Betty',1,NULL,'Dear Betty',1,NULL,'Dr. Betty Smith',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(186,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Jameson, Ashley','Dr. Ashley Jameson II',NULL,NULL,NULL,NULL,NULL,'Both','3561508179',NULL,'Sample Data','Ashley','','Jameson',4,3,NULL,NULL,1,NULL,'Dear Ashley',1,NULL,'Dear Ashley',1,NULL,'Dr. Ashley Jameson II',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(187,'Organization',NULL,0,0,0,0,0,0,NULL,NULL,'Creative Education Academy','Creative Education Academy',NULL,NULL,NULL,NULL,NULL,'Both','61414175',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Creative Education Academy',NULL,NULL,NULL,0,NULL,NULL,189,'Creative Education Academy',NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(188,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Samson, Jerome','Jerome Samson',NULL,NULL,NULL,'5',NULL,'Both','3448189696',NULL,'Sample Data','Jerome','','Samson',NULL,NULL,NULL,NULL,1,NULL,'Dear Jerome',1,NULL,'Dear Jerome',1,NULL,'Jerome Samson',NULL,2,NULL,0,NULL,NULL,NULL,'York Haven Peace Academy',NULL,NULL,6,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(189,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Wilson, Elbert','Mr. Elbert Wilson III',NULL,NULL,NULL,NULL,NULL,'Both','330239896',NULL,'Sample Data','Elbert','G','Wilson',3,4,NULL,NULL,1,NULL,'Dear Elbert',1,NULL,'Dear Elbert',1,NULL,'Mr. Elbert Wilson III',NULL,2,NULL,0,NULL,NULL,NULL,'Creative Education Academy',NULL,NULL,187,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(190,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'smith.heidi@airmail.co.pl','smith.heidi@airmail.co.pl',NULL,NULL,NULL,NULL,NULL,'Both','496973477',NULL,'Sample Data',NULL,NULL,NULL,2,NULL,NULL,NULL,1,NULL,'Dear smith.heidi@airmail.co.pl',1,NULL,'Dear smith.heidi@airmail.co.pl',1,NULL,'smith.heidi@airmail.co.pl',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(191,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Prentice, Jina','Jina Prentice',NULL,NULL,NULL,NULL,NULL,'Both','3574120172',NULL,'Sample Data','Jina','','Prentice',NULL,NULL,NULL,NULL,1,NULL,'Dear Jina',1,NULL,'Dear Jina',1,NULL,'Jina Prentice',NULL,1,'1971-07-16',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(192,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Barkley, Shauna','Shauna Barkley',NULL,NULL,NULL,'4',NULL,'Both','1145257394',NULL,'Sample Data','Shauna','K','Barkley',NULL,NULL,NULL,NULL,1,NULL,'Dear Shauna',1,NULL,'Dear Shauna',1,NULL,'Shauna Barkley',NULL,1,'1978-05-03',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(193,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Łąchowski, Elbert','Elbert Łąchowski III',NULL,NULL,NULL,'3',NULL,'Both','473197543',NULL,'Sample Data','Elbert','','Łąchowski',NULL,4,NULL,NULL,1,NULL,'Dear Elbert',1,NULL,'Dear Elbert',1,NULL,'Elbert Łąchowski III',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(194,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Olsen, Erik','Dr. Erik Olsen',NULL,NULL,NULL,NULL,NULL,'Both','1259292682',NULL,'Sample Data','Erik','','Olsen',4,NULL,NULL,NULL,1,NULL,'Dear Erik',1,NULL,'Dear Erik',1,NULL,'Dr. Erik Olsen',NULL,NULL,'1989-09-19',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(195,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'ivanov.winford@lol.co.in','ivanov.winford@lol.co.in',NULL,NULL,NULL,NULL,NULL,'Both','1671398020',NULL,'Sample Data',NULL,NULL,NULL,NULL,4,NULL,NULL,1,NULL,'Dear ivanov.winford@lol.co.in',1,NULL,'Dear ivanov.winford@lol.co.in',1,NULL,'ivanov.winford@lol.co.in',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(196,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Deforest, Juliann','Juliann Deforest',NULL,NULL,NULL,'4',NULL,'Both','3366299166',NULL,'Sample Data','Juliann','','Deforest',NULL,NULL,NULL,NULL,1,NULL,'Dear Juliann',1,NULL,'Dear Juliann',1,NULL,'Juliann Deforest',NULL,NULL,'2007-02-13',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(197,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Dimitrov, Lawerence','Mr. Lawerence Dimitrov II',NULL,NULL,NULL,'4',NULL,'Both','2843061688',NULL,'Sample Data','Lawerence','N','Dimitrov',3,3,NULL,NULL,1,NULL,'Dear Lawerence',1,NULL,'Dear Lawerence',1,NULL,'Mr. Lawerence Dimitrov II',NULL,NULL,'1958-08-03',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(198,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Roberts-Deforest, Princess','Princess Roberts-Deforest',NULL,NULL,NULL,'1',NULL,'Both','991089738',NULL,'Sample Data','Princess','','Roberts-Deforest',NULL,NULL,NULL,NULL,1,NULL,'Dear Princess',1,NULL,'Dear Princess',1,NULL,'Princess Roberts-Deforest',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(199,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Łąchowski, Beula','Beula Łąchowski',NULL,NULL,NULL,'5',NULL,'Both','3562875387',NULL,'Sample Data','Beula','','Łąchowski',NULL,NULL,NULL,NULL,1,NULL,'Dear Beula',1,NULL,'Dear Beula',1,NULL,'Beula Łąchowski',NULL,1,'1999-12-31',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51'),(200,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Terry, Sanford','Mr. Sanford Terry III',NULL,NULL,NULL,'4',NULL,'Both','4170670568',NULL,'Sample Data','Sanford','','Terry',3,4,NULL,NULL,1,NULL,'Dear Sanford',1,NULL,'Dear Sanford',1,NULL,'Mr. Sanford Terry III',NULL,2,'1996-02-09',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:50'),(201,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Samson, Arlyne','Arlyne Samson',NULL,NULL,NULL,'3',NULL,'Both','4139787516',NULL,'Sample Data','Arlyne','','Samson',NULL,NULL,NULL,NULL,1,NULL,'Dear Arlyne',1,NULL,'Dear Arlyne',1,NULL,'Arlyne Samson',NULL,1,'2018-01-02',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2019-11-28 19:55:50','2019-11-28 19:55:51');
+INSERT INTO `civicrm_contact` (`id`, `contact_type`, `contact_sub_type`, `do_not_email`, `do_not_phone`, `do_not_mail`, `do_not_sms`, `do_not_trade`, `is_opt_out`, `legal_identifier`, `external_identifier`, `sort_name`, `display_name`, `nick_name`, `legal_name`, `image_URL`, `preferred_communication_method`, `preferred_language`, `preferred_mail_format`, `hash`, `api_key`, `source`, `first_name`, `middle_name`, `last_name`, `prefix_id`, `suffix_id`, `formal_title`, `communication_style_id`, `email_greeting_id`, `email_greeting_custom`, `email_greeting_display`, `postal_greeting_id`, `postal_greeting_custom`, `postal_greeting_display`, `addressee_id`, `addressee_custom`, `addressee_display`, `job_title`, `gender_id`, `birth_date`, `is_deceased`, `deceased_date`, `household_name`, `primary_contact_id`, `organization_name`, `sic_code`, `user_unique_id`, `employer_id`, `is_deleted`, `created_date`, `modified_date`) VALUES (1,'Organization',NULL,0,0,0,0,0,0,NULL,NULL,'Default Organization','Default Organization',NULL,'Default Organization',NULL,NULL,NULL,'Both',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,'Default Organization',NULL,NULL,NULL,0,NULL,'2020-01-16 22:53:12'),(2,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'roberts.sanford@lol.co.nz','roberts.sanford@lol.co.nz',NULL,NULL,NULL,NULL,NULL,'Both','3254791246',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,NULL,1,NULL,'Dear roberts.sanford@lol.co.nz',1,NULL,'Dear roberts.sanford@lol.co.nz',1,NULL,'roberts.sanford@lol.co.nz',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:50'),(3,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Parker-Grant, Arlyne','Arlyne Parker-Grant',NULL,NULL,NULL,NULL,NULL,'Both','3401223721',NULL,'Sample Data','Arlyne','','Parker-Grant',NULL,NULL,NULL,NULL,1,NULL,'Dear Arlyne',1,NULL,'Dear Arlyne',1,NULL,'Arlyne Parker-Grant',NULL,1,'1979-11-10',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:50'),(4,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Terry, Maxwell','Maxwell Terry II',NULL,NULL,NULL,NULL,NULL,'Both','528410264',NULL,'Sample Data','Maxwell','','Terry',NULL,3,NULL,NULL,1,NULL,'Dear Maxwell',1,NULL,'Dear Maxwell',1,NULL,'Maxwell Terry II',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:48'),(5,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Grant, Betty','Betty Grant',NULL,NULL,NULL,'2',NULL,'Both','200685072',NULL,'Sample Data','Betty','','Grant',NULL,NULL,NULL,NULL,1,NULL,'Dear Betty',1,NULL,'Dear Betty',1,NULL,'Betty Grant',NULL,1,'1962-08-18',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:50'),(6,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'cruzh@mymail.co.pl','cruzh@mymail.co.pl',NULL,NULL,NULL,NULL,NULL,'Both','436435613',NULL,'Sample Data',NULL,NULL,NULL,4,NULL,NULL,NULL,1,NULL,'Dear cruzh@mymail.co.pl',1,NULL,'Dear cruzh@mymail.co.pl',1,NULL,'cruzh@mymail.co.pl',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:50'),(7,'Organization',NULL,0,1,0,0,1,0,NULL,NULL,'Dysart Literacy Services','Dysart Literacy Services',NULL,NULL,NULL,'4',NULL,'Both','4183140735',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Dysart Literacy Services',NULL,NULL,NULL,0,NULL,NULL,57,'Dysart Literacy Services',NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:49'),(8,'Household',NULL,0,0,0,0,0,0,NULL,NULL,'Roberts family','Roberts family',NULL,NULL,NULL,NULL,NULL,'Both','2097305882',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Roberts family',5,NULL,'Dear Roberts family',2,NULL,'Roberts family',NULL,NULL,NULL,0,NULL,'Roberts family',NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:49'),(9,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Terrell, Elbert','Mr. Elbert Terrell Jr.',NULL,NULL,NULL,'3',NULL,'Both','1862258278',NULL,'Sample Data','Elbert','O','Terrell',3,1,NULL,NULL,1,NULL,'Dear Elbert',1,NULL,'Dear Elbert',1,NULL,'Mr. Elbert Terrell Jr.',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:47'),(10,'Individual',NULL,1,1,0,0,1,0,NULL,NULL,'Bachman, Lincoln','Lincoln Bachman',NULL,NULL,NULL,'4',NULL,'Both','3974009485',NULL,'Sample Data','Lincoln','I','Bachman',NULL,NULL,NULL,NULL,1,NULL,'Dear Lincoln',1,NULL,'Dear Lincoln',1,NULL,'Lincoln Bachman',NULL,NULL,'2009-04-28',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:47'),(11,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Grant, Valene','Valene Grant',NULL,NULL,NULL,NULL,NULL,'Both','309020900',NULL,'Sample Data','Valene','D','Grant',NULL,NULL,NULL,NULL,1,NULL,'Dear Valene',1,NULL,'Dear Valene',1,NULL,'Valene Grant',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:48'),(12,'Household',NULL,0,0,0,0,0,0,NULL,NULL,'Blackwell family','Blackwell family',NULL,NULL,NULL,'1',NULL,'Both','3218641510',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Blackwell family',5,NULL,'Dear Blackwell family',2,NULL,'Blackwell family',NULL,NULL,NULL,0,NULL,'Blackwell family',NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:49'),(13,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Díaz, Tanya','Tanya Díaz',NULL,NULL,NULL,'4',NULL,'Both','2641118119',NULL,'Sample Data','Tanya','Z','Díaz',NULL,NULL,NULL,NULL,1,NULL,'Dear Tanya',1,NULL,'Dear Tanya',1,NULL,'Tanya Díaz',NULL,1,'1968-12-11',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:48'),(14,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Nielsen, Josefa','Ms. Josefa Nielsen',NULL,NULL,NULL,'5',NULL,'Both','3267028471',NULL,'Sample Data','Josefa','','Nielsen',2,NULL,NULL,NULL,1,NULL,'Dear Josefa',1,NULL,'Dear Josefa',1,NULL,'Ms. Josefa Nielsen',NULL,1,'1987-03-08',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:50'),(15,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Parker, Ashlie','Ashlie Parker',NULL,NULL,NULL,NULL,NULL,'Both','1516256819',NULL,'Sample Data','Ashlie','','Parker',NULL,NULL,NULL,NULL,1,NULL,'Dear Ashlie',1,NULL,'Dear Ashlie',1,NULL,'Ashlie Parker',NULL,1,'1993-10-30',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:50'),(16,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Müller, Jacob','Jacob Müller',NULL,NULL,NULL,NULL,NULL,'Both','176489544',NULL,'Sample Data','Jacob','','Müller',NULL,NULL,NULL,NULL,1,NULL,'Dear Jacob',1,NULL,'Dear Jacob',1,NULL,'Jacob Müller',NULL,2,'1992-10-13',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:48'),(17,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Yadav-Grant, Maxwell','Maxwell Yadav-Grant',NULL,NULL,NULL,'2',NULL,'Both','1238611584',NULL,'Sample Data','Maxwell','','Yadav-Grant',NULL,NULL,NULL,NULL,1,NULL,'Dear Maxwell',1,NULL,'Dear Maxwell',1,NULL,'Maxwell Yadav-Grant',NULL,2,'1988-03-12',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:50'),(18,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Lee, Sanford','Mr. Sanford Lee',NULL,NULL,NULL,'5',NULL,'Both','952477375',NULL,'Sample Data','Sanford','M','Lee',3,NULL,NULL,NULL,1,NULL,'Dear Sanford',1,NULL,'Dear Sanford',1,NULL,'Mr. Sanford Lee',NULL,2,'1992-08-12',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:50'),(19,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Lee, Teresa','Teresa Lee',NULL,NULL,NULL,NULL,NULL,'Both','2160842597',NULL,'Sample Data','Teresa','','Lee',NULL,NULL,NULL,NULL,1,NULL,'Dear Teresa',1,NULL,'Dear Teresa',1,NULL,'Teresa Lee',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:48'),(20,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Grant, Allan','Allan Grant',NULL,NULL,NULL,'3',NULL,'Both','2534249041',NULL,'Sample Data','Allan','R','Grant',NULL,NULL,NULL,NULL,1,NULL,'Dear Allan',1,NULL,'Dear Allan',1,NULL,'Allan Grant',NULL,NULL,'1987-12-23',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:50'),(21,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'olsenb67@testmail.co.pl','olsenb67@testmail.co.pl',NULL,NULL,NULL,'3',NULL,'Both','2127155960',NULL,'Sample Data',NULL,NULL,NULL,4,3,NULL,NULL,1,NULL,'Dear olsenb67@testmail.co.pl',1,NULL,'Dear olsenb67@testmail.co.pl',1,NULL,'olsenb67@testmail.co.pl',NULL,NULL,NULL,0,NULL,NULL,NULL,'Lincoln Music Partnership',NULL,NULL,110,0,'2020-01-16 22:53:47','2020-01-16 22:53:49'),(22,'Organization',NULL,0,0,0,0,0,0,NULL,NULL,'Jackson Action Association','Jackson Action Association',NULL,NULL,NULL,'2',NULL,'Both','4125625078',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Jackson Action Association',NULL,NULL,NULL,0,NULL,NULL,NULL,'Jackson Action Association',NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:49'),(23,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Terrell, Troy','Mr. Troy Terrell',NULL,NULL,NULL,NULL,NULL,'Both','2532022550',NULL,'Sample Data','Troy','','Terrell',3,NULL,NULL,NULL,1,NULL,'Dear Troy',1,NULL,'Dear Troy',1,NULL,'Mr. Troy Terrell',NULL,2,'1940-04-12',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:47'),(24,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Roberts, Errol','Errol Roberts III',NULL,NULL,NULL,NULL,NULL,'Both','152825771',NULL,'Sample Data','Errol','B','Roberts',NULL,4,NULL,NULL,1,NULL,'Dear Errol',1,NULL,'Dear Errol',1,NULL,'Errol Roberts III',NULL,2,'2001-08-03',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:50'),(25,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Ivanov, Jacob','Jacob Ivanov Jr.',NULL,NULL,NULL,'5',NULL,'Both','3702183609',NULL,'Sample Data','Jacob','','Ivanov',NULL,1,NULL,NULL,1,NULL,'Dear Jacob',1,NULL,'Dear Jacob',1,NULL,'Jacob Ivanov Jr.',NULL,2,'1990-07-07',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:48'),(26,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'olsen.s.elina@lol.biz','olsen.s.elina@lol.biz',NULL,NULL,NULL,'4',NULL,'Both','9491452',NULL,'Sample Data',NULL,NULL,NULL,2,NULL,NULL,NULL,1,NULL,'Dear olsen.s.elina@lol.biz',1,NULL,'Dear olsen.s.elina@lol.biz',1,NULL,'olsen.s.elina@lol.biz',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:50'),(27,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Smith, Arlyne','Arlyne Smith',NULL,NULL,NULL,'3',NULL,'Both','4098699841',NULL,'Sample Data','Arlyne','K','Smith',NULL,NULL,NULL,NULL,1,NULL,'Dear Arlyne',1,NULL,'Dear Arlyne',1,NULL,'Arlyne Smith',NULL,NULL,'1968-08-28',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:48'),(28,'Organization',NULL,1,0,0,0,0,0,NULL,NULL,'Michigan Sports Partners','Michigan Sports Partners',NULL,NULL,NULL,NULL,NULL,'Both','4084976836',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Michigan Sports Partners',NULL,NULL,NULL,0,NULL,NULL,NULL,'Michigan Sports Partners',NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:49'),(29,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Deforest, Andrew','Dr. Andrew Deforest Jr.',NULL,NULL,NULL,NULL,NULL,'Both','3584733584',NULL,'Sample Data','Andrew','K','Deforest',4,1,NULL,NULL,1,NULL,'Dear Andrew',1,NULL,'Dear Andrew',1,NULL,'Dr. Andrew Deforest Jr.',NULL,2,'1974-11-19',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:48'),(30,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Grant, Errol','Errol Grant',NULL,NULL,NULL,NULL,NULL,'Both','3028211429',NULL,'Sample Data','Errol','K','Grant',NULL,NULL,NULL,NULL,1,NULL,'Dear Errol',1,NULL,'Dear Errol',1,NULL,'Errol Grant',NULL,NULL,'1975-12-19',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:50'),(31,'Organization',NULL,0,0,0,0,0,0,NULL,NULL,'College Culture Fund','College Culture Fund',NULL,NULL,NULL,'4',NULL,'Both','1949829312',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'College Culture Fund',NULL,NULL,NULL,0,NULL,NULL,59,'College Culture Fund',NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:50'),(32,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Grant, Bob','Bob Grant',NULL,NULL,NULL,NULL,NULL,'Both','2147877951',NULL,'Sample Data','Bob','H','Grant',NULL,NULL,NULL,NULL,1,NULL,'Dear Bob',1,NULL,'Dear Bob',1,NULL,'Bob Grant',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:48'),(33,'Household',NULL,0,1,0,0,0,0,NULL,NULL,'Nielsen family','Nielsen family',NULL,NULL,NULL,'1',NULL,'Both','766698874',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Nielsen family',5,NULL,'Dear Nielsen family',2,NULL,'Nielsen family',NULL,NULL,NULL,0,NULL,'Nielsen family',NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:49'),(34,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'mparker-grant51@testmail.co.nz','mparker-grant51@testmail.co.nz',NULL,NULL,NULL,'4',NULL,'Both','2669952951',NULL,'Sample Data',NULL,NULL,NULL,NULL,4,NULL,NULL,1,NULL,'Dear mparker-grant51@testmail.co.nz',1,NULL,'Dear mparker-grant51@testmail.co.nz',1,NULL,'mparker-grant51@testmail.co.nz',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:50'),(35,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Díaz, Laree','Laree Díaz',NULL,NULL,NULL,NULL,NULL,'Both','970611892',NULL,'Sample Data','Laree','P','Díaz',NULL,NULL,NULL,NULL,1,NULL,'Dear Laree',1,NULL,'Dear Laree',1,NULL,'Laree Díaz',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:50'),(36,'Household',NULL,0,0,0,0,1,0,NULL,NULL,'Parker family','Parker family',NULL,NULL,NULL,NULL,NULL,'Both','425242179',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Parker family',5,NULL,'Dear Parker family',2,NULL,'Parker family',NULL,NULL,NULL,0,NULL,'Parker family',NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:49'),(37,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'patel.rosario@example.co.in','patel.rosario@example.co.in',NULL,NULL,NULL,NULL,NULL,'Both','3812102404',NULL,'Sample Data',NULL,NULL,NULL,4,3,NULL,NULL,1,NULL,'Dear patel.rosario@example.co.in',1,NULL,'Dear patel.rosario@example.co.in',1,NULL,'patel.rosario@example.co.in',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:48'),(38,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Nielsen, Toby','Toby Nielsen II',NULL,NULL,NULL,NULL,NULL,'Both','1430850543',NULL,'Sample Data','Toby','','Nielsen',NULL,3,NULL,NULL,1,NULL,'Dear Toby',1,NULL,'Dear Toby',1,NULL,'Toby Nielsen II',NULL,2,'1947-10-13',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:50'),(39,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Yadav-Grant, Arlyne','Arlyne Yadav-Grant',NULL,NULL,NULL,NULL,NULL,'Both','2866027560',NULL,'Sample Data','Arlyne','','Yadav-Grant',NULL,NULL,NULL,NULL,1,NULL,'Dear Arlyne',1,NULL,'Dear Arlyne',1,NULL,'Arlyne Yadav-Grant',NULL,NULL,'1986-01-15',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:50'),(40,'Individual',NULL,1,0,0,0,1,0,NULL,NULL,'Wattson, Clint','Clint Wattson',NULL,NULL,NULL,'4',NULL,'Both','4167597443',NULL,'Sample Data','Clint','O','Wattson',NULL,NULL,NULL,NULL,1,NULL,'Dear Clint',1,NULL,'Dear Clint',1,NULL,'Clint Wattson',NULL,2,'1968-08-12',0,NULL,NULL,NULL,'College Arts Alliance',NULL,NULL,193,0,'2020-01-16 22:53:47','2020-01-16 22:53:49'),(41,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Prentice, Truman','Mr. Truman Prentice Jr.',NULL,NULL,NULL,'4',NULL,'Both','3922272167',NULL,'Sample Data','Truman','X','Prentice',3,1,NULL,NULL,1,NULL,'Dear Truman',1,NULL,'Dear Truman',1,NULL,'Mr. Truman Prentice Jr.',NULL,2,'1964-06-02',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:50'),(42,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Cruz, Margaret','Mrs. Margaret Cruz',NULL,NULL,NULL,'2',NULL,'Both','680750633',NULL,'Sample Data','Margaret','','Cruz',1,NULL,NULL,NULL,1,NULL,'Dear Margaret',1,NULL,'Dear Margaret',1,NULL,'Mrs. Margaret Cruz',NULL,NULL,'1974-07-09',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:50'),(43,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'sbarkley@fakemail.co.in','sbarkley@fakemail.co.in',NULL,NULL,NULL,NULL,NULL,'Both','2107586211',NULL,'Sample Data',NULL,NULL,NULL,1,NULL,NULL,NULL,1,NULL,'Dear sbarkley@fakemail.co.in',1,NULL,'Dear sbarkley@fakemail.co.in',1,NULL,'sbarkley@fakemail.co.in',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:47'),(44,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Roberts, Alida','Ms. Alida Roberts',NULL,NULL,NULL,NULL,NULL,'Both','3245047840',NULL,'Sample Data','Alida','I','Roberts',2,NULL,NULL,NULL,1,NULL,'Dear Alida',1,NULL,'Dear Alida',1,NULL,'Ms. Alida Roberts',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:50'),(45,'Individual',NULL,1,0,0,0,1,0,NULL,NULL,'Blackwell, Kiara','Kiara Blackwell',NULL,NULL,NULL,NULL,NULL,'Both','1817462688',NULL,'Sample Data','Kiara','T','Blackwell',NULL,NULL,NULL,NULL,1,NULL,'Dear Kiara',1,NULL,'Dear Kiara',1,NULL,'Kiara Blackwell',NULL,NULL,'2003-05-15',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:50'),(46,'Organization',NULL,0,0,0,0,0,0,NULL,NULL,'Creative Music Services','Creative Music Services',NULL,NULL,NULL,'1',NULL,'Both','2553392068',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Creative Music Services',NULL,NULL,NULL,0,NULL,NULL,NULL,'Creative Music Services',NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:49'),(47,'Individual',NULL,0,1,0,0,1,0,NULL,NULL,'Prentice, Nicole','Nicole Prentice',NULL,NULL,NULL,NULL,NULL,'Both','138339105',NULL,'Sample Data','Nicole','B','Prentice',NULL,NULL,NULL,NULL,1,NULL,'Dear Nicole',1,NULL,'Dear Nicole',1,NULL,'Nicole Prentice',NULL,1,'2004-11-03',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:50'),(48,'Household',NULL,0,0,0,0,0,0,NULL,NULL,'Patel family','Patel family',NULL,NULL,NULL,NULL,NULL,'Both','1669281794',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Patel family',5,NULL,'Dear Patel family',2,NULL,'Patel family',NULL,NULL,NULL,0,NULL,'Patel family',NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:49'),(49,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Robertson, Alexia','Mrs. Alexia Robertson',NULL,NULL,NULL,'1',NULL,'Both','234001148',NULL,'Sample Data','Alexia','J','Robertson',1,NULL,NULL,NULL,1,NULL,'Dear Alexia',1,NULL,'Dear Alexia',1,NULL,'Mrs. Alexia Robertson',NULL,1,'1965-06-06',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:48'),(50,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Nielsen, Lou','Lou Nielsen',NULL,NULL,NULL,'3',NULL,'Both','3533817831',NULL,'Sample Data','Lou','','Nielsen',NULL,NULL,NULL,NULL,1,NULL,'Dear Lou',1,NULL,'Dear Lou',1,NULL,'Lou Nielsen',NULL,2,'1993-02-11',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:50'),(51,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Wattson, Valene','Dr. Valene Wattson',NULL,NULL,NULL,'3',NULL,'Both','3149820460',NULL,'Sample Data','Valene','','Wattson',4,NULL,NULL,NULL,1,NULL,'Dear Valene',1,NULL,'Dear Valene',1,NULL,'Dr. Valene Wattson',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:48'),(52,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'samuels.k.rolando68@mymail.info','samuels.k.rolando68@mymail.info',NULL,NULL,NULL,'4',NULL,'Both','4157533738',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,'Dear samuels.k.rolando68@mymail.info',1,NULL,'Dear samuels.k.rolando68@mymail.info',1,NULL,'samuels.k.rolando68@mymail.info',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:48'),(53,'Organization',NULL,0,0,0,0,0,0,NULL,NULL,'Del Rey Wellness Partners','Del Rey Wellness Partners',NULL,NULL,NULL,'4',NULL,'Both','4123866218',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Del Rey Wellness Partners',NULL,NULL,NULL,0,NULL,NULL,NULL,'Del Rey Wellness Partners',NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:49'),(54,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Lee, Kathleen','Kathleen Lee',NULL,NULL,NULL,NULL,NULL,'Both','2198492721',NULL,'Sample Data','Kathleen','V','Lee',NULL,NULL,NULL,NULL,1,NULL,'Dear Kathleen',1,NULL,'Dear Kathleen',1,NULL,'Kathleen Lee',NULL,NULL,'2008-12-21',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:50'),(55,'Individual',NULL,0,1,0,0,1,0,NULL,NULL,'Deforest, Magan','Magan Deforest',NULL,NULL,NULL,NULL,NULL,'Both','2893209447',NULL,'Sample Data','Magan','','Deforest',NULL,NULL,NULL,NULL,1,NULL,'Dear Magan',1,NULL,'Dear Magan',1,NULL,'Magan Deforest',NULL,1,'1977-10-26',0,NULL,NULL,NULL,'Community Legal Collective',NULL,NULL,121,0,'2020-01-16 22:53:47','2020-01-16 22:53:49'),(56,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Jameson, Norris','Norris Jameson',NULL,NULL,NULL,'3',NULL,'Both','3849460374',NULL,'Sample Data','Norris','Q','Jameson',NULL,NULL,NULL,NULL,1,NULL,'Dear Norris',1,NULL,'Dear Norris',1,NULL,'Norris Jameson',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:50'),(57,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'González, Carylon','Dr. Carylon González',NULL,NULL,NULL,'1',NULL,'Both','3685317689',NULL,'Sample Data','Carylon','I','González',4,NULL,NULL,NULL,1,NULL,'Dear Carylon',1,NULL,'Dear Carylon',1,NULL,'Dr. Carylon González',NULL,NULL,'1944-07-28',0,NULL,NULL,NULL,'Dysart Literacy Services',NULL,NULL,7,0,'2020-01-16 22:53:47','2020-01-16 22:53:49'),(58,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Blackwell, Errol','Mr. Errol Blackwell',NULL,NULL,NULL,'2',NULL,'Both','3418432727',NULL,'Sample Data','Errol','C','Blackwell',3,NULL,NULL,NULL,1,NULL,'Dear Errol',1,NULL,'Dear Errol',1,NULL,'Mr. Errol Blackwell',NULL,2,'1965-11-09',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:48'),(59,'Individual',NULL,1,1,0,0,0,0,NULL,NULL,'Yadav, Heidi','Heidi Yadav',NULL,NULL,NULL,'5',NULL,'Both','2873459559',NULL,'Sample Data','Heidi','K','Yadav',NULL,NULL,NULL,NULL,1,NULL,'Dear Heidi',1,NULL,'Dear Heidi',1,NULL,'Heidi Yadav',NULL,1,'2003-03-31',0,NULL,NULL,NULL,'College Culture Fund',NULL,NULL,31,0,'2020-01-16 22:53:47','2020-01-16 22:53:50'),(60,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Díaz, Errol','Errol Díaz',NULL,NULL,NULL,'4',NULL,'Both','4116027034',NULL,'Sample Data','Errol','K','Díaz',NULL,NULL,NULL,NULL,1,NULL,'Dear Errol',1,NULL,'Dear Errol',1,NULL,'Errol Díaz',NULL,2,'1980-07-17',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:50'),(61,'Household',NULL,0,0,0,0,0,0,NULL,NULL,'Jones family','Jones family',NULL,NULL,NULL,NULL,NULL,'Both','1110516799',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Jones family',5,NULL,'Dear Jones family',2,NULL,'Jones family',NULL,NULL,NULL,0,NULL,'Jones family',NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:49'),(62,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Wattson-Reynolds, Brittney','Brittney Wattson-Reynolds',NULL,NULL,NULL,'1',NULL,'Both','1866226259',NULL,'Sample Data','Brittney','','Wattson-Reynolds',NULL,NULL,NULL,NULL,1,NULL,'Dear Brittney',1,NULL,'Dear Brittney',1,NULL,'Brittney Wattson-Reynolds',NULL,NULL,'1981-12-30',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:50'),(63,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Cruz, Jay','Jay Cruz',NULL,NULL,NULL,'5',NULL,'Both','2008783609',NULL,'Sample Data','Jay','','Cruz',NULL,NULL,NULL,NULL,1,NULL,'Dear Jay',1,NULL,'Dear Jay',1,NULL,'Jay Cruz',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:48'),(64,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Prentice, Barry','Mr. Barry Prentice',NULL,NULL,NULL,'5',NULL,'Both','3550869584',NULL,'Sample Data','Barry','N','Prentice',3,NULL,NULL,NULL,1,NULL,'Dear Barry',1,NULL,'Dear Barry',1,NULL,'Mr. Barry Prentice',NULL,NULL,'1988-06-12',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:50'),(65,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Reynolds, Shauna','Shauna Reynolds',NULL,NULL,NULL,NULL,NULL,'Both','564809255',NULL,'Sample Data','Shauna','G','Reynolds',NULL,NULL,NULL,NULL,1,NULL,'Dear Shauna',1,NULL,'Dear Shauna',1,NULL,'Shauna Reynolds',NULL,1,'1995-12-31',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:48'),(66,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Wagner, Elina','Mrs. Elina Wagner',NULL,NULL,NULL,NULL,NULL,'Both','4003830950',NULL,'Sample Data','Elina','','Wagner',1,NULL,NULL,NULL,1,NULL,'Dear Elina',1,NULL,'Dear Elina',1,NULL,'Mrs. Elina Wagner',NULL,1,'1978-12-11',0,NULL,NULL,NULL,'Friends Food Network',NULL,NULL,191,0,'2020-01-16 22:53:47','2020-01-16 22:53:50'),(67,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Grant, Miguel','Miguel Grant Jr.',NULL,NULL,NULL,'2',NULL,'Both','436581475',NULL,'Sample Data','Miguel','A','Grant',NULL,1,NULL,NULL,1,NULL,'Dear Miguel',1,NULL,'Dear Miguel',1,NULL,'Miguel Grant Jr.',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:50'),(68,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Roberts, Jackson','Mr. Jackson Roberts II',NULL,NULL,NULL,'1',NULL,'Both','3261233132',NULL,'Sample Data','Jackson','P','Roberts',3,3,NULL,NULL,1,NULL,'Dear Jackson',1,NULL,'Dear Jackson',1,NULL,'Mr. Jackson Roberts II',NULL,NULL,'1932-04-16',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:48'),(69,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'sb.daz5@sample.co.uk','sb.daz5@sample.co.uk',NULL,NULL,NULL,'3',NULL,'Both','586586956',NULL,'Sample Data',NULL,NULL,NULL,1,NULL,NULL,NULL,1,NULL,'Dear sb.daz5@sample.co.uk',1,NULL,'Dear sb.daz5@sample.co.uk',1,NULL,'sb.daz5@sample.co.uk',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:50'),(70,'Individual',NULL,1,1,0,0,0,0,NULL,NULL,'Reynolds, Damaris','Damaris Reynolds',NULL,NULL,NULL,NULL,NULL,'Both','4231913075',NULL,'Sample Data','Damaris','','Reynolds',NULL,NULL,NULL,NULL,1,NULL,'Dear Damaris',1,NULL,'Dear Damaris',1,NULL,'Damaris Reynolds',NULL,NULL,'2003-09-15',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:50'),(71,'Organization',NULL,0,0,0,0,0,0,NULL,NULL,'Beech Arts Fund','Beech Arts Fund',NULL,NULL,NULL,NULL,NULL,'Both','2057494687',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Beech Arts Fund',NULL,NULL,NULL,0,NULL,NULL,185,'Beech Arts Fund',NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:50'),(72,'Individual',NULL,1,0,0,0,1,0,NULL,NULL,'Wagner, Heidi','Dr. Heidi Wagner',NULL,NULL,NULL,'5',NULL,'Both','2668197669',NULL,'Sample Data','Heidi','H','Wagner',4,NULL,NULL,NULL,1,NULL,'Dear Heidi',1,NULL,'Dear Heidi',1,NULL,'Dr. Heidi Wagner',NULL,1,'1998-08-10',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:47'),(73,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Blackwell, Omar','Omar Blackwell',NULL,NULL,NULL,NULL,NULL,'Both','3587375768',NULL,'Sample Data','Omar','L','Blackwell',NULL,NULL,NULL,NULL,1,NULL,'Dear Omar',1,NULL,'Dear Omar',1,NULL,'Omar Blackwell',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:48'),(74,'Individual',NULL,0,1,0,0,1,0,NULL,NULL,'Cruz, Herminia','Mrs. Herminia Cruz',NULL,NULL,NULL,NULL,NULL,'Both','3479995875',NULL,'Sample Data','Herminia','Y','Cruz',1,NULL,NULL,NULL,1,NULL,'Dear Herminia',1,NULL,'Dear Herminia',1,NULL,'Mrs. Herminia Cruz',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:48'),(75,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Smith, Eleonor','Eleonor Smith',NULL,NULL,NULL,'5',NULL,'Both','574097129',NULL,'Sample Data','Eleonor','J','Smith',NULL,NULL,NULL,NULL,1,NULL,'Dear Eleonor',1,NULL,'Dear Eleonor',1,NULL,'Eleonor Smith',NULL,NULL,'2009-05-23',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:48'),(76,'Individual',NULL,1,0,0,0,1,0,NULL,NULL,'cruzm@infomail.co.in','cruzm@infomail.co.in',NULL,NULL,NULL,NULL,NULL,'Both','2415993561',NULL,'Sample Data',NULL,NULL,NULL,4,NULL,NULL,NULL,1,NULL,'Dear cruzm@infomail.co.in',1,NULL,'Dear cruzm@infomail.co.in',1,NULL,'cruzm@infomail.co.in',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:50'),(77,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'my.jones24@notmail.com','my.jones24@notmail.com',NULL,NULL,NULL,'3',NULL,'Both','336636319',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,'Dear my.jones24@notmail.com',1,NULL,'Dear my.jones24@notmail.com',1,NULL,'my.jones24@notmail.com',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:50'),(78,'Household',NULL,0,0,0,0,0,0,NULL,NULL,'Díaz family','Díaz family',NULL,NULL,NULL,'2',NULL,'Both','2169249835',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Díaz family',5,NULL,'Dear Díaz family',2,NULL,'Díaz family',NULL,NULL,NULL,0,NULL,'Díaz family',NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:49'),(79,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Jones, Norris','Mr. Norris Jones Sr.',NULL,NULL,NULL,'4',NULL,'Both','2315660840',NULL,'Sample Data','Norris','','Jones',3,2,NULL,NULL,1,NULL,'Dear Norris',1,NULL,'Dear Norris',1,NULL,'Mr. Norris Jones Sr.',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:50'),(80,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Jameson, Lawerence','Lawerence Jameson',NULL,NULL,NULL,NULL,NULL,'Both','745354503',NULL,'Sample Data','Lawerence','','Jameson',NULL,NULL,NULL,NULL,1,NULL,'Dear Lawerence',1,NULL,'Dear Lawerence',1,NULL,'Lawerence Jameson',NULL,2,NULL,0,NULL,NULL,NULL,'United Health Trust',NULL,NULL,159,0,'2020-01-16 22:53:47','2020-01-16 22:53:50'),(81,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Parker-Wagner, Kenny','Mr. Kenny Parker-Wagner Jr.',NULL,NULL,NULL,'1',NULL,'Both','3468730422',NULL,'Sample Data','Kenny','I','Parker-Wagner',3,1,NULL,NULL,1,NULL,'Dear Kenny',1,NULL,'Dear Kenny',1,NULL,'Mr. Kenny Parker-Wagner Jr.',NULL,2,'1983-11-30',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:50'),(82,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Parker, Elbert','Dr. Elbert Parker',NULL,NULL,NULL,'1',NULL,'Both','2158710005',NULL,'Sample Data','Elbert','C','Parker',4,NULL,NULL,NULL,1,NULL,'Dear Elbert',1,NULL,'Dear Elbert',1,NULL,'Dr. Elbert Parker',NULL,NULL,'1970-12-06',0,NULL,NULL,NULL,'Local Health Network',NULL,NULL,104,0,'2020-01-16 22:53:47','2020-01-16 22:53:50'),(83,'Individual',NULL,0,1,0,0,1,0,NULL,NULL,'robertss94@fakemail.net','robertss94@fakemail.net',NULL,NULL,NULL,NULL,NULL,'Both','265127693',NULL,'Sample Data',NULL,NULL,NULL,NULL,4,NULL,NULL,1,NULL,'Dear robertss94@fakemail.net',1,NULL,'Dear robertss94@fakemail.net',1,NULL,'robertss94@fakemail.net',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:48'),(84,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'reynolds.v.merrie86@lol.com','reynolds.v.merrie86@lol.com',NULL,NULL,NULL,NULL,NULL,'Both','2233787668',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,'Dear reynolds.v.merrie86@lol.com',1,NULL,'Dear reynolds.v.merrie86@lol.com',1,NULL,'reynolds.v.merrie86@lol.com',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:50'),(85,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Samuels, Omar','Dr. Omar Samuels II',NULL,NULL,NULL,'5',NULL,'Both','1072276407',NULL,'Sample Data','Omar','C','Samuels',4,3,NULL,NULL,1,NULL,'Dear Omar',1,NULL,'Dear Omar',1,NULL,'Dr. Omar Samuels II',NULL,2,'1969-06-26',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:50'),(86,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Prentice, Roland','Roland Prentice III',NULL,NULL,NULL,NULL,NULL,'Both','3836132137',NULL,'Sample Data','Roland','F','Prentice',NULL,4,NULL,NULL,1,NULL,'Dear Roland',1,NULL,'Dear Roland',1,NULL,'Roland Prentice III',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:50'),(87,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Reynolds, Brent','Brent Reynolds Sr.',NULL,NULL,NULL,NULL,NULL,'Both','547975558',NULL,'Sample Data','Brent','','Reynolds',NULL,2,NULL,NULL,1,NULL,'Dear Brent',1,NULL,'Dear Brent',1,NULL,'Brent Reynolds Sr.',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:50'),(88,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Jones, Roland','Mr. Roland Jones',NULL,NULL,NULL,'4',NULL,'Both','2619785805',NULL,'Sample Data','Roland','','Jones',3,NULL,NULL,NULL,1,NULL,'Dear Roland',1,NULL,'Dear Roland',1,NULL,'Mr. Roland Jones',NULL,NULL,'1956-07-06',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:50'),(89,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Prentice, Jacob','Jacob Prentice Sr.',NULL,NULL,NULL,NULL,NULL,'Both','2335760166',NULL,'Sample Data','Jacob','','Prentice',NULL,2,NULL,NULL,1,NULL,'Dear Jacob',1,NULL,'Dear Jacob',1,NULL,'Jacob Prentice Sr.',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:50'),(90,'Household',NULL,0,0,0,0,0,0,NULL,NULL,'Prentice family','Prentice family',NULL,NULL,NULL,'2',NULL,'Both','3313623671',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Prentice family',5,NULL,'Dear Prentice family',2,NULL,'Prentice family',NULL,NULL,NULL,0,NULL,'Prentice family',NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:49'),(91,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Nielsen, Jacob','Dr. Jacob Nielsen',NULL,NULL,NULL,NULL,NULL,'Both','1661720619',NULL,'Sample Data','Jacob','','Nielsen',4,NULL,NULL,NULL,1,NULL,'Dear Jacob',1,NULL,'Dear Jacob',1,NULL,'Dr. Jacob Nielsen',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:48'),(92,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Jameson, Irvin','Mr. Irvin Jameson',NULL,NULL,NULL,'1',NULL,'Both','2294697519',NULL,'Sample Data','Irvin','','Jameson',3,NULL,NULL,NULL,1,NULL,'Dear Irvin',1,NULL,'Dear Irvin',1,NULL,'Mr. Irvin Jameson',NULL,2,'1981-01-07',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:50'),(93,'Household',NULL,1,0,0,0,0,0,NULL,NULL,'Prentice family','Prentice family',NULL,NULL,NULL,NULL,NULL,'Both','3313623671',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Prentice family',5,NULL,'Dear Prentice family',2,NULL,'Prentice family',NULL,NULL,NULL,0,NULL,'Prentice family',NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:49'),(94,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Jameson, Herminia','Herminia Jameson',NULL,NULL,NULL,'5',NULL,'Both','2172372210',NULL,'Sample Data','Herminia','','Jameson',NULL,NULL,NULL,NULL,1,NULL,'Dear Herminia',1,NULL,'Dear Herminia',1,NULL,'Herminia Jameson',NULL,NULL,'2011-10-07',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:50'),(95,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Cruz, Eleonor','Eleonor Cruz',NULL,NULL,NULL,'2',NULL,'Both','1901745992',NULL,'Sample Data','Eleonor','Y','Cruz',NULL,NULL,NULL,NULL,1,NULL,'Dear Eleonor',1,NULL,'Dear Eleonor',1,NULL,'Eleonor Cruz',NULL,1,'2004-03-20',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:47'),(96,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Yadav, Nicole','Nicole Yadav',NULL,NULL,NULL,'4',NULL,'Both','831602430',NULL,'Sample Data','Nicole','A','Yadav',NULL,NULL,NULL,NULL,1,NULL,'Dear Nicole',1,NULL,'Dear Nicole',1,NULL,'Nicole Yadav',NULL,1,'1998-11-14',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:47'),(97,'Organization',NULL,1,0,0,0,0,0,NULL,NULL,'Progressive Poetry Partnership','Progressive Poetry Partnership',NULL,NULL,NULL,NULL,NULL,'Both','2210484958',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Progressive Poetry Partnership',NULL,NULL,NULL,0,NULL,NULL,150,'Progressive Poetry Partnership',NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:49'),(98,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'González, Jay','Dr. Jay González',NULL,NULL,NULL,NULL,NULL,'Both','431469491',NULL,'Sample Data','Jay','','González',4,NULL,NULL,NULL,1,NULL,'Dear Jay',1,NULL,'Dear Jay',1,NULL,'Dr. Jay González',NULL,2,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:47'),(99,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Jones, Esta','Esta Jones',NULL,NULL,NULL,'5',NULL,'Both','2492655702',NULL,'Sample Data','Esta','F','Jones',NULL,NULL,NULL,NULL,1,NULL,'Dear Esta',1,NULL,'Dear Esta',1,NULL,'Esta Jones',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:48'),(100,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Terry, Angelika','Ms. Angelika Terry',NULL,NULL,NULL,'1',NULL,'Both','1807339903',NULL,'Sample Data','Angelika','K','Terry',2,NULL,NULL,NULL,1,NULL,'Dear Angelika',1,NULL,'Dear Angelika',1,NULL,'Ms. Angelika Terry',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:48'),(101,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'daz.shad56@testmail.info','daz.shad56@testmail.info',NULL,NULL,NULL,'5',NULL,'Both','2393076872',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,NULL,1,NULL,'Dear daz.shad56@testmail.info',1,NULL,'Dear daz.shad56@testmail.info',1,NULL,'daz.shad56@testmail.info',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:48'),(102,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Wagner, Rodrigo','Dr. Rodrigo Wagner',NULL,NULL,NULL,NULL,NULL,'Both','2133660723',NULL,'Sample Data','Rodrigo','V','Wagner',4,NULL,NULL,NULL,1,NULL,'Dear Rodrigo',1,NULL,'Dear Rodrigo',1,NULL,'Dr. Rodrigo Wagner',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:47'),(103,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Robertson, Carlos','Dr. Carlos Robertson III',NULL,NULL,NULL,NULL,NULL,'Both','3416802562',NULL,'Sample Data','Carlos','I','Robertson',4,4,NULL,NULL,1,NULL,'Dear Carlos',1,NULL,'Dear Carlos',1,NULL,'Dr. Carlos Robertson III',NULL,NULL,'1955-09-11',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:48'),(104,'Organization',NULL,0,0,0,0,0,0,NULL,NULL,'Local Health Network','Local Health Network',NULL,NULL,NULL,'2',NULL,'Both','1973371496',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Local Health Network',NULL,NULL,NULL,0,NULL,NULL,82,'Local Health Network',NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:49'),(105,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Roberts, Truman','Mr. Truman Roberts II',NULL,NULL,NULL,'4',NULL,'Both','3664937465',NULL,'Sample Data','Truman','','Roberts',3,3,NULL,NULL,1,NULL,'Dear Truman',1,NULL,'Dear Truman',1,NULL,'Mr. Truman Roberts II',NULL,NULL,'1970-02-03',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:47'),(106,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Samuels, Shauna','Shauna Samuels',NULL,NULL,NULL,NULL,NULL,'Both','3723668425',NULL,'Sample Data','Shauna','S','Samuels',NULL,NULL,NULL,NULL,1,NULL,'Dear Shauna',1,NULL,'Dear Shauna',1,NULL,'Shauna Samuels',NULL,1,NULL,1,'2019-11-18',NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:47'),(107,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Parker-Wagner, Jacob','Jacob Parker-Wagner',NULL,NULL,NULL,NULL,NULL,'Both','3882120495',NULL,'Sample Data','Jacob','','Parker-Wagner',NULL,NULL,NULL,NULL,1,NULL,'Dear Jacob',1,NULL,'Dear Jacob',1,NULL,'Jacob Parker-Wagner',NULL,2,'2009-09-25',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:50'),(108,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Reynolds, Lashawnda','Lashawnda Reynolds',NULL,NULL,NULL,'3',NULL,'Both','935996887',NULL,'Sample Data','Lashawnda','','Reynolds',NULL,NULL,NULL,NULL,1,NULL,'Dear Lashawnda',1,NULL,'Dear Lashawnda',1,NULL,'Lashawnda Reynolds',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:48'),(109,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'olsen.kathlyn@infomail.co.uk','olsen.kathlyn@infomail.co.uk',NULL,NULL,NULL,NULL,NULL,'Both','2298197723',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,'Dear olsen.kathlyn@infomail.co.uk',1,NULL,'Dear olsen.kathlyn@infomail.co.uk',1,NULL,'olsen.kathlyn@infomail.co.uk',NULL,NULL,NULL,0,NULL,NULL,NULL,'California Legal School',NULL,NULL,118,0,'2020-01-16 22:53:47','2020-01-16 22:53:50'),(110,'Organization',NULL,0,0,0,0,0,0,NULL,NULL,'Lincoln Music Partnership','Lincoln Music Partnership',NULL,NULL,NULL,'4',NULL,'Both','4049459743',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Lincoln Music Partnership',NULL,NULL,NULL,0,NULL,NULL,21,'Lincoln Music Partnership',NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:49'),(111,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Yadav, Santina','Santina Yadav',NULL,NULL,NULL,'4',NULL,'Both','3262021642',NULL,'Sample Data','Santina','','Yadav',NULL,NULL,NULL,NULL,1,NULL,'Dear Santina',1,NULL,'Dear Santina',1,NULL,'Santina Yadav',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:48'),(112,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Grant, Kacey','Kacey Grant',NULL,NULL,NULL,'3',NULL,'Both','3274986963',NULL,'Sample Data','Kacey','D','Grant',NULL,NULL,NULL,NULL,1,NULL,'Dear Kacey',1,NULL,'Dear Kacey',1,NULL,'Kacey Grant',NULL,1,'1971-05-18',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:48'),(113,'Organization',NULL,0,1,0,0,0,0,NULL,NULL,'Friends Music Services','Friends Music Services',NULL,NULL,NULL,'2',NULL,'Both','2698246175',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Friends Music Services',NULL,NULL,NULL,0,NULL,NULL,182,'Friends Music Services',NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:49'),(114,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Jameson, Herminia','Herminia Jameson',NULL,NULL,NULL,NULL,NULL,'Both','2172372210',NULL,'Sample Data','Herminia','','Jameson',NULL,NULL,NULL,NULL,1,NULL,'Dear Herminia',1,NULL,'Dear Herminia',1,NULL,'Herminia Jameson',NULL,NULL,'2000-07-03',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:50'),(115,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Zope-Parker, Eleonor','Eleonor Zope-Parker',NULL,NULL,NULL,'3',NULL,'Both','3802257091',NULL,'Sample Data','Eleonor','L','Zope-Parker',NULL,NULL,NULL,NULL,1,NULL,'Dear Eleonor',1,NULL,'Dear Eleonor',1,NULL,'Eleonor Zope-Parker',NULL,1,'1974-09-21',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:50'),(116,'Individual',NULL,1,0,0,0,1,0,NULL,NULL,'Lee, Shauna','Ms. Shauna Lee',NULL,NULL,NULL,NULL,NULL,'Both','3300398193',NULL,'Sample Data','Shauna','','Lee',2,NULL,NULL,NULL,1,NULL,'Dear Shauna',1,NULL,'Dear Shauna',1,NULL,'Ms. Shauna Lee',NULL,NULL,'1952-07-23',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:50'),(117,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Jensen, Daren','Daren Jensen Sr.',NULL,NULL,NULL,'1',NULL,'Both','817039458',NULL,'Sample Data','Daren','Z','Jensen',NULL,2,NULL,NULL,1,NULL,'Dear Daren',1,NULL,'Dear Daren',1,NULL,'Daren Jensen Sr.',NULL,NULL,'1986-02-01',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:47'),(118,'Organization',NULL,0,0,0,0,0,0,NULL,NULL,'California Legal School','California Legal School',NULL,NULL,NULL,NULL,NULL,'Both','1684258442',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'California Legal School',NULL,NULL,NULL,0,NULL,NULL,109,'California Legal School',NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:50'),(119,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Wattson-Roberts, Laree','Laree Wattson-Roberts',NULL,NULL,NULL,NULL,NULL,'Both','2912769833',NULL,'Sample Data','Laree','','Wattson-Roberts',NULL,NULL,NULL,NULL,1,NULL,'Dear Laree',1,NULL,'Dear Laree',1,NULL,'Laree Wattson-Roberts',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:50'),(120,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Dimitrov, Kandace','Ms. Kandace Dimitrov',NULL,NULL,NULL,'4',NULL,'Both','2771100224',NULL,'Sample Data','Kandace','','Dimitrov',2,NULL,NULL,NULL,1,NULL,'Dear Kandace',1,NULL,'Dear Kandace',1,NULL,'Ms. Kandace Dimitrov',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:48'),(121,'Organization',NULL,0,0,0,0,0,0,NULL,NULL,'Community Legal Collective','Community Legal Collective',NULL,NULL,NULL,'2',NULL,'Both','1915166559',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Community Legal Collective',NULL,NULL,NULL,0,NULL,NULL,55,'Community Legal Collective',NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:49'),(122,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Terry, Sonny','Sonny Terry',NULL,NULL,NULL,'1',NULL,'Both','2037695520',NULL,'Sample Data','Sonny','','Terry',NULL,NULL,NULL,NULL,1,NULL,'Dear Sonny',1,NULL,'Dear Sonny',1,NULL,'Sonny Terry',NULL,2,NULL,0,NULL,NULL,NULL,'Yukon Music Fellowship',NULL,NULL,190,0,'2020-01-16 22:53:47','2020-01-16 22:53:49'),(123,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Jones, Alexia','Alexia Jones',NULL,NULL,NULL,NULL,NULL,'Both','252738965',NULL,'Sample Data','Alexia','','Jones',NULL,NULL,NULL,NULL,1,NULL,'Dear Alexia',1,NULL,'Dear Alexia',1,NULL,'Alexia Jones',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:50'),(124,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Wagner-Grant, Jina','Jina Wagner-Grant',NULL,NULL,NULL,'3',NULL,'Both','2176815138',NULL,'Sample Data','Jina','E','Wagner-Grant',NULL,NULL,NULL,NULL,1,NULL,'Dear Jina',1,NULL,'Dear Jina',1,NULL,'Jina Wagner-Grant',NULL,1,'1980-05-11',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:50'),(125,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Müller, Delana','Delana Müller',NULL,NULL,NULL,'4',NULL,'Both','2709014277',NULL,'Sample Data','Delana','','Müller',NULL,NULL,NULL,NULL,1,NULL,'Dear Delana',1,NULL,'Dear Delana',1,NULL,'Delana Müller',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:50'),(126,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Roberts, Sherman','Sherman Roberts',NULL,NULL,NULL,'3',NULL,'Both','1027715448',NULL,'Sample Data','Sherman','','Roberts',NULL,NULL,NULL,NULL,1,NULL,'Dear Sherman',1,NULL,'Dear Sherman',1,NULL,'Sherman Roberts',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:50'),(127,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Blackwell, Josefa','Ms. Josefa Blackwell',NULL,NULL,NULL,NULL,NULL,'Both','3593065423',NULL,'Sample Data','Josefa','','Blackwell',2,NULL,NULL,NULL,1,NULL,'Dear Josefa',1,NULL,'Dear Josefa',1,NULL,'Ms. Josefa Blackwell',NULL,1,'1935-03-19',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:47'),(128,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Jacobs, Teddy','Dr. Teddy Jacobs II',NULL,NULL,NULL,NULL,NULL,'Both','730676702',NULL,'Sample Data','Teddy','M','Jacobs',4,3,NULL,NULL,1,NULL,'Dear Teddy',1,NULL,'Dear Teddy',1,NULL,'Dr. Teddy Jacobs II',NULL,2,'1993-10-16',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:48'),(129,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Müller, Valene','Valene Müller',NULL,NULL,NULL,NULL,NULL,'Both','444739216',NULL,'Sample Data','Valene','I','Müller',NULL,NULL,NULL,NULL,1,NULL,'Dear Valene',1,NULL,'Dear Valene',1,NULL,'Valene Müller',NULL,1,'2009-04-08',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:48'),(130,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'be.terrell@testmail.co.in','be.terrell@testmail.co.in',NULL,NULL,NULL,'3',NULL,'Both','4054735089',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,'Dear be.terrell@testmail.co.in',1,NULL,'Dear be.terrell@testmail.co.in',1,NULL,'be.terrell@testmail.co.in',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:48'),(131,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Yadav, Delana','Mrs. Delana Yadav',NULL,NULL,NULL,'5',NULL,'Both','844917598',NULL,'Sample Data','Delana','D','Yadav',1,NULL,NULL,NULL,1,NULL,'Dear Delana',1,NULL,'Dear Delana',1,NULL,'Mrs. Delana Yadav',NULL,1,'1962-10-27',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:48'),(132,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Patel, Troy','Troy Patel',NULL,NULL,NULL,'1',NULL,'Both','1028090211',NULL,'Sample Data','Troy','','Patel',NULL,NULL,NULL,NULL,1,NULL,'Dear Troy',1,NULL,'Dear Troy',1,NULL,'Troy Patel',NULL,2,'2016-07-30',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:50'),(133,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Samuels-Olsen, Jackson','Jackson Samuels-Olsen II',NULL,NULL,NULL,NULL,NULL,'Both','447975851',NULL,'Sample Data','Jackson','','Samuels-Olsen',NULL,3,NULL,NULL,1,NULL,'Dear Jackson',1,NULL,'Dear Jackson',1,NULL,'Jackson Samuels-Olsen II',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:50'),(134,'Household',NULL,1,1,0,0,0,0,NULL,NULL,'Grant family','Grant family',NULL,NULL,NULL,NULL,NULL,'Both','3228000340',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Grant family',5,NULL,'Dear Grant family',2,NULL,'Grant family',NULL,NULL,NULL,0,NULL,'Grant family',NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:49'),(135,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Lee, Carlos','Carlos Lee Jr.',NULL,NULL,NULL,'4',NULL,'Both','1904694300',NULL,'Sample Data','Carlos','','Lee',NULL,1,NULL,NULL,1,NULL,'Dear Carlos',1,NULL,'Dear Carlos',1,NULL,'Carlos Lee Jr.',NULL,2,'1972-09-24',0,NULL,NULL,NULL,'Beech Sustainability Trust',NULL,NULL,153,0,'2020-01-16 22:53:47','2020-01-16 22:53:50'),(136,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Cooper-Yadav, Ashley','Ashley Cooper-Yadav',NULL,NULL,NULL,'2',NULL,'Both','2863427603',NULL,'Sample Data','Ashley','B','Cooper-Yadav',NULL,NULL,NULL,NULL,1,NULL,'Dear Ashley',1,NULL,'Dear Ashley',1,NULL,'Ashley Cooper-Yadav',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:50'),(137,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Nielsen, Felisha','Felisha Nielsen',NULL,NULL,NULL,NULL,NULL,'Both','3470675762',NULL,'Sample Data','Felisha','','Nielsen',NULL,NULL,NULL,NULL,1,NULL,'Dear Felisha',1,NULL,'Dear Felisha',1,NULL,'Felisha Nielsen',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:47'),(138,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Parker, Norris','Mr. Norris Parker',NULL,NULL,NULL,'3',NULL,'Both','3555621557',NULL,'Sample Data','Norris','','Parker',3,NULL,NULL,NULL,1,NULL,'Dear Norris',1,NULL,'Dear Norris',1,NULL,'Mr. Norris Parker',NULL,NULL,'1970-11-02',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:50'),(139,'Household',NULL,0,0,0,0,0,0,NULL,NULL,'Parker-Grant family','Parker-Grant family',NULL,NULL,NULL,'4',NULL,'Both','1787926850',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Parker-Grant family',5,NULL,'Dear Parker-Grant family',2,NULL,'Parker-Grant family',NULL,NULL,NULL,0,NULL,'Parker-Grant family',NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:49'),(140,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'jeromez@example.org','jeromez@example.org',NULL,NULL,NULL,'2',NULL,'Both','98282835',NULL,'Sample Data',NULL,NULL,NULL,NULL,2,NULL,NULL,1,NULL,'Dear jeromez@example.org',1,NULL,'Dear jeromez@example.org',1,NULL,'jeromez@example.org',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:47'),(141,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Díaz, Errol','Errol Díaz Sr.',NULL,NULL,NULL,NULL,NULL,'Both','4116027034',NULL,'Sample Data','Errol','','Díaz',NULL,2,NULL,NULL,1,NULL,'Dear Errol',1,NULL,'Dear Errol',1,NULL,'Errol Díaz Sr.',NULL,2,'1988-07-15',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:47'),(142,'Organization',NULL,1,0,0,0,0,0,NULL,NULL,'States Technology Initiative','States Technology Initiative',NULL,NULL,NULL,NULL,NULL,'Both','3517127573',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'States Technology Initiative',NULL,NULL,NULL,0,NULL,NULL,176,'States Technology Initiative',NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:49'),(143,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'McReynolds, Elina','Elina McReynolds',NULL,NULL,NULL,'3',NULL,'Both','130391420',NULL,'Sample Data','Elina','','McReynolds',NULL,NULL,NULL,NULL,1,NULL,'Dear Elina',1,NULL,'Dear Elina',1,NULL,'Elina McReynolds',NULL,1,'1984-09-15',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:47'),(144,'Individual',NULL,0,1,0,0,1,0,NULL,NULL,'sreynolds@fakemail.co.nz','sreynolds@fakemail.co.nz',NULL,NULL,NULL,'5',NULL,'Both','1059810794',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,'Dear sreynolds@fakemail.co.nz',1,NULL,'Dear sreynolds@fakemail.co.nz',1,NULL,'sreynolds@fakemail.co.nz',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:48'),(145,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Jameson, Kandace','Kandace Jameson',NULL,NULL,NULL,'5',NULL,'Both','181551567',NULL,'Sample Data','Kandace','','Jameson',NULL,NULL,NULL,NULL,1,NULL,'Dear Kandace',1,NULL,'Dear Kandace',1,NULL,'Kandace Jameson',NULL,1,'1966-09-12',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:50'),(146,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Patel, Maria','Maria Patel Jr.',NULL,NULL,NULL,NULL,NULL,'Both','1297212984',NULL,'Sample Data','Maria','N','Patel',NULL,1,NULL,NULL,1,NULL,'Dear Maria',1,NULL,'Dear Maria',1,NULL,'Maria Patel Jr.',NULL,NULL,'2005-02-22',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:50'),(147,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Jameson, Clint','Clint Jameson III',NULL,NULL,NULL,'4',NULL,'Both','3622436306',NULL,'Sample Data','Clint','A','Jameson',NULL,4,NULL,NULL,1,NULL,'Dear Clint',1,NULL,'Dear Clint',1,NULL,'Clint Jameson III',NULL,2,'2002-01-04',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:50'),(148,'Household',NULL,0,1,0,0,0,0,NULL,NULL,'Parker-Wagner family','Parker-Wagner family',NULL,NULL,NULL,'2',NULL,'Both','2849851518',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Parker-Wagner family',5,NULL,'Dear Parker-Wagner family',2,NULL,'Parker-Wagner family',NULL,NULL,NULL,0,NULL,'Parker-Wagner family',NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:49'),(149,'Organization',NULL,1,0,0,0,0,0,NULL,NULL,'United Poetry Fellowship','United Poetry Fellowship',NULL,NULL,NULL,NULL,NULL,'Both','1218226956',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'United Poetry Fellowship',NULL,NULL,NULL,0,NULL,NULL,NULL,'United Poetry Fellowship',NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:49'),(150,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Dimitrov, Jay','Jay Dimitrov',NULL,NULL,NULL,'3',NULL,'Both','512179988',NULL,'Sample Data','Jay','O','Dimitrov',NULL,NULL,NULL,NULL,1,NULL,'Dear Jay',1,NULL,'Dear Jay',1,NULL,'Jay Dimitrov',NULL,2,'1937-09-18',0,NULL,NULL,NULL,'Progressive Poetry Partnership',NULL,NULL,97,0,'2020-01-16 22:53:47','2020-01-16 22:53:49'),(151,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Wilson, Betty','Betty Wilson',NULL,NULL,NULL,NULL,NULL,'Both','3748989066',NULL,'Sample Data','Betty','','Wilson',NULL,NULL,NULL,NULL,1,NULL,'Dear Betty',1,NULL,'Dear Betty',1,NULL,'Betty Wilson',NULL,1,'1964-12-21',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:48'),(152,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Jameson, Santina','Santina Jameson',NULL,NULL,NULL,NULL,NULL,'Both','2989109013',NULL,'Sample Data','Santina','K','Jameson',NULL,NULL,NULL,NULL,1,NULL,'Dear Santina',1,NULL,'Dear Santina',1,NULL,'Santina Jameson',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:50'),(153,'Organization',NULL,0,0,0,0,0,0,NULL,NULL,'Beech Sustainability Trust','Beech Sustainability Trust',NULL,NULL,NULL,'5',NULL,'Both','3061781347',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Beech Sustainability Trust',NULL,NULL,NULL,0,NULL,NULL,135,'Beech Sustainability Trust',NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:49'),(154,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Parker, Teddy','Teddy Parker Jr.',NULL,NULL,NULL,'5',NULL,'Both','1804413700',NULL,'Sample Data','Teddy','N','Parker',NULL,1,NULL,NULL,1,NULL,'Dear Teddy',1,NULL,'Dear Teddy',1,NULL,'Teddy Parker Jr.',NULL,2,'2016-07-02',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:50'),(155,'Household',NULL,0,1,0,0,1,0,NULL,NULL,'Samuels-Olsen family','Samuels-Olsen family',NULL,NULL,NULL,'1',NULL,'Both','1720860212',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Samuels-Olsen family',5,NULL,'Dear Samuels-Olsen family',2,NULL,'Samuels-Olsen family',NULL,NULL,NULL,0,NULL,'Samuels-Olsen family',NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:49'),(156,'Individual',NULL,1,0,0,0,1,0,NULL,NULL,'Blackwell, Teddy','Dr. Teddy Blackwell',NULL,NULL,NULL,'1',NULL,'Both','3440187169',NULL,'Sample Data','Teddy','T','Blackwell',4,NULL,NULL,NULL,1,NULL,'Dear Teddy',1,NULL,'Dear Teddy',1,NULL,'Dr. Teddy Blackwell',NULL,2,'1960-04-08',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:50'),(157,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Wagner-Müller, Lashawnda','Lashawnda Wagner-Müller',NULL,NULL,NULL,NULL,NULL,'Both','3890554952',NULL,'Sample Data','Lashawnda','B','Wagner-Müller',NULL,NULL,NULL,NULL,1,NULL,'Dear Lashawnda',1,NULL,'Dear Lashawnda',1,NULL,'Lashawnda Wagner-Müller',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:50'),(158,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Patel, Alida','Alida Patel',NULL,NULL,NULL,'3',NULL,'Both','3742818616',NULL,'Sample Data','Alida','L','Patel',NULL,NULL,NULL,NULL,1,NULL,'Dear Alida',1,NULL,'Dear Alida',1,NULL,'Alida Patel',NULL,NULL,'1936-11-11',1,'2019-03-13',NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:47'),(159,'Organization',NULL,1,0,0,0,0,0,NULL,NULL,'United Health Trust','United Health Trust',NULL,NULL,NULL,'2',NULL,'Both','50896687',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'United Health Trust',NULL,NULL,NULL,0,NULL,NULL,80,'United Health Trust',NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:50'),(160,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Grant, Lou','Lou Grant',NULL,NULL,NULL,NULL,NULL,'Both','155954418',NULL,'Sample Data','Lou','','Grant',NULL,NULL,NULL,NULL,1,NULL,'Dear Lou',1,NULL,'Dear Lou',1,NULL,'Lou Grant',NULL,2,'2008-08-25',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:50'),(161,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Prentice, Sherman','Sherman Prentice III',NULL,NULL,NULL,'3',NULL,'Both','2980148757',NULL,'Sample Data','Sherman','F','Prentice',NULL,4,NULL,NULL,1,NULL,'Dear Sherman',1,NULL,'Dear Sherman',1,NULL,'Sherman Prentice III',NULL,2,'2010-03-27',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:50'),(162,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Patel, Jackson','Dr. Jackson Patel Sr.',NULL,NULL,NULL,'1',NULL,'Both','2060230662',NULL,'Sample Data','Jackson','I','Patel',4,2,NULL,NULL,1,NULL,'Dear Jackson',1,NULL,'Dear Jackson',1,NULL,'Dr. Jackson Patel Sr.',NULL,2,'1998-11-23',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:48'),(163,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'omarm@fishmail.net','omarm@fishmail.net',NULL,NULL,NULL,NULL,NULL,'Both','3872264428',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,'Dear omarm@fishmail.net',1,NULL,'Dear omarm@fishmail.net',1,NULL,'omarm@fishmail.net',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:50'),(164,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Smith, Jed','Jed Smith',NULL,NULL,NULL,'4',NULL,'Both','2767892191',NULL,'Sample Data','Jed','Y','Smith',NULL,NULL,NULL,NULL,1,NULL,'Dear Jed',1,NULL,'Dear Jed',1,NULL,'Jed Smith',NULL,2,'1950-12-11',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:48'),(165,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Díaz, Kathleen','Kathleen Díaz',NULL,NULL,NULL,NULL,NULL,'Both','3901103420',NULL,'Sample Data','Kathleen','','Díaz',NULL,NULL,NULL,NULL,1,NULL,'Dear Kathleen',1,NULL,'Dear Kathleen',1,NULL,'Kathleen Díaz',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:47'),(166,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Jensen, Kiara','Ms. Kiara Jensen',NULL,NULL,NULL,'4',NULL,'Both','4228592498',NULL,'Sample Data','Kiara','M','Jensen',2,NULL,NULL,NULL,1,NULL,'Dear Kiara',1,NULL,'Dear Kiara',1,NULL,'Ms. Kiara Jensen',NULL,1,'1971-04-18',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:47'),(167,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Blackwell, Magan','Magan Blackwell',NULL,NULL,NULL,'3',NULL,'Both','3548232286',NULL,'Sample Data','Magan','','Blackwell',NULL,NULL,NULL,NULL,1,NULL,'Dear Magan',1,NULL,'Dear Magan',1,NULL,'Magan Blackwell',NULL,1,'1989-03-26',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:50'),(168,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Patel, Teresa','Mrs. Teresa Patel',NULL,NULL,NULL,NULL,NULL,'Both','1615801119',NULL,'Sample Data','Teresa','','Patel',1,NULL,NULL,NULL,1,NULL,'Dear Teresa',1,NULL,'Dear Teresa',1,NULL,'Mrs. Teresa Patel',NULL,1,'1987-05-02',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:50'),(169,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Deforest, Laree','Laree Deforest',NULL,NULL,NULL,NULL,NULL,'Both','2017561536',NULL,'Sample Data','Laree','','Deforest',NULL,NULL,NULL,NULL,1,NULL,'Dear Laree',1,NULL,'Dear Laree',1,NULL,'Laree Deforest',NULL,1,'1963-11-12',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:47'),(170,'Household',NULL,0,1,0,0,0,0,NULL,NULL,'Yadav-Grant family','Yadav-Grant family',NULL,NULL,NULL,'4',NULL,'Both','3029159389',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Yadav-Grant family',5,NULL,'Dear Yadav-Grant family',2,NULL,'Yadav-Grant family',NULL,NULL,NULL,0,NULL,'Yadav-Grant family',NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:49'),(171,'Household',NULL,0,0,0,0,0,0,NULL,NULL,'Jameson family','Jameson family',NULL,NULL,NULL,'2',NULL,'Both','2255649769',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Jameson family',5,NULL,'Dear Jameson family',2,NULL,'Jameson family',NULL,NULL,NULL,0,NULL,'Jameson family',NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:49'),(172,'Household',NULL,0,0,0,0,1,0,NULL,NULL,'Reynolds family','Reynolds family',NULL,NULL,NULL,NULL,NULL,'Both','4119726021',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Reynolds family',5,NULL,'Dear Reynolds family',2,NULL,'Reynolds family',NULL,NULL,NULL,0,NULL,'Reynolds family',NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:49'),(173,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Grant, Bernadette','Ms. Bernadette Grant',NULL,NULL,NULL,'2',NULL,'Both','2386715823',NULL,'Sample Data','Bernadette','O','Grant',2,NULL,NULL,NULL,1,NULL,'Dear Bernadette',1,NULL,'Dear Bernadette',1,NULL,'Ms. Bernadette Grant',NULL,1,'1940-05-05',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:48'),(174,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Parker, Winford','Winford Parker',NULL,NULL,NULL,'5',NULL,'Both','1625763341',NULL,'Sample Data','Winford','','Parker',NULL,NULL,NULL,NULL,1,NULL,'Dear Winford',1,NULL,'Dear Winford',1,NULL,'Winford Parker',NULL,NULL,'1960-02-26',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:50'),(175,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Wattson-Prentice, Elizabeth','Dr. Elizabeth Wattson-Prentice',NULL,NULL,NULL,NULL,NULL,'Both','3126293613',NULL,'Sample Data','Elizabeth','','Wattson-Prentice',4,NULL,NULL,NULL,1,NULL,'Dear Elizabeth',1,NULL,'Dear Elizabeth',1,NULL,'Dr. Elizabeth Wattson-Prentice',NULL,1,'1980-04-08',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:50'),(176,'Individual',NULL,1,1,0,0,0,0,NULL,NULL,'Samuels, Omar','Mr. Omar Samuels III',NULL,NULL,NULL,'5',NULL,'Both','1072276407',NULL,'Sample Data','Omar','','Samuels',3,4,NULL,NULL,1,NULL,'Dear Omar',1,NULL,'Dear Omar',1,NULL,'Mr. Omar Samuels III',NULL,2,NULL,0,NULL,NULL,NULL,'States Technology Initiative',NULL,NULL,142,0,'2020-01-16 22:53:47','2020-01-16 22:53:49'),(177,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Nielsen, Herminia','Herminia Nielsen',NULL,NULL,NULL,'5',NULL,'Both','176728020',NULL,'Sample Data','Herminia','O','Nielsen',NULL,NULL,NULL,NULL,1,NULL,'Dear Herminia',1,NULL,'Dear Herminia',1,NULL,'Herminia Nielsen',NULL,1,'2003-11-28',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:50'),(178,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Yadav, Alida','Alida Yadav',NULL,NULL,NULL,'3',NULL,'Both','3582338734',NULL,'Sample Data','Alida','','Yadav',NULL,NULL,NULL,NULL,1,NULL,'Dear Alida',1,NULL,'Dear Alida',1,NULL,'Alida Yadav',NULL,1,'2001-06-12',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:48'),(179,'Household',NULL,1,0,0,0,0,0,NULL,NULL,'Müller family','Müller family',NULL,NULL,NULL,'4',NULL,'Both','1144797465',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Müller family',5,NULL,'Dear Müller family',2,NULL,'Müller family',NULL,NULL,NULL,0,NULL,'Müller family',NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:49'),(180,'Household',NULL,0,0,0,0,1,0,NULL,NULL,'Lee family','Lee family',NULL,NULL,NULL,NULL,NULL,'Both','845831176',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Lee family',5,NULL,'Dear Lee family',2,NULL,'Lee family',NULL,NULL,NULL,0,NULL,'Lee family',NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:49'),(181,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Grant, Lincoln','Lincoln Grant',NULL,NULL,NULL,'1',NULL,'Both','2133553876',NULL,'Sample Data','Lincoln','K','Grant',NULL,NULL,NULL,NULL,1,NULL,'Dear Lincoln',1,NULL,'Dear Lincoln',1,NULL,'Lincoln Grant',NULL,2,'1992-06-10',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:48'),(182,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Olsen, Sanford','Mr. Sanford Olsen III',NULL,NULL,NULL,NULL,NULL,'Both','2408737591',NULL,'Sample Data','Sanford','','Olsen',3,4,NULL,NULL,1,NULL,'Dear Sanford',1,NULL,'Dear Sanford',1,NULL,'Mr. Sanford Olsen III',NULL,NULL,NULL,0,NULL,NULL,NULL,'Friends Music Services',NULL,NULL,113,0,'2020-01-16 22:53:47','2020-01-16 22:53:49'),(183,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Prentice, Landon','Landon Prentice III',NULL,NULL,NULL,'5',NULL,'Both','927380636',NULL,'Sample Data','Landon','I','Prentice',NULL,4,NULL,NULL,1,NULL,'Dear Landon',1,NULL,'Dear Landon',1,NULL,'Landon Prentice III',NULL,NULL,'2003-04-15',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:50'),(184,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Grant, Ashlie','Ashlie Grant',NULL,NULL,NULL,'1',NULL,'Both','3647636538',NULL,'Sample Data','Ashlie','Y','Grant',NULL,NULL,NULL,NULL,1,NULL,'Dear Ashlie',1,NULL,'Dear Ashlie',1,NULL,'Ashlie Grant',NULL,1,'1960-03-27',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:48'),(185,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Dimitrov, Craig','Craig Dimitrov Jr.',NULL,NULL,NULL,NULL,NULL,'Both','3815881421',NULL,'Sample Data','Craig','S','Dimitrov',NULL,1,NULL,NULL,1,NULL,'Dear Craig',1,NULL,'Dear Craig',1,NULL,'Craig Dimitrov Jr.',NULL,2,NULL,0,NULL,NULL,NULL,'Beech Arts Fund',NULL,NULL,71,0,'2020-01-16 22:53:47','2020-01-16 22:53:50'),(186,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Prentice, Maxwell','Dr. Maxwell Prentice II',NULL,NULL,NULL,'3',NULL,'Both','1532112278',NULL,'Sample Data','Maxwell','','Prentice',4,3,NULL,NULL,1,NULL,'Dear Maxwell',1,NULL,'Dear Maxwell',1,NULL,'Dr. Maxwell Prentice II',NULL,2,'1997-12-19',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:47'),(187,'Individual',NULL,0,1,0,0,1,0,NULL,NULL,'Blackwell, Magan','Magan Blackwell',NULL,NULL,NULL,'4',NULL,'Both','3548232286',NULL,'Sample Data','Magan','X','Blackwell',NULL,NULL,NULL,NULL,1,NULL,'Dear Magan',1,NULL,'Dear Magan',1,NULL,'Magan Blackwell',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:50'),(188,'Household',NULL,1,0,0,0,0,0,NULL,NULL,'Cruz family','Cruz family',NULL,NULL,NULL,NULL,NULL,'Both','2326538497',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Cruz family',5,NULL,'Dear Cruz family',2,NULL,'Cruz family',NULL,NULL,NULL,0,NULL,'Cruz family',NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:49'),(189,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Müller, Mei','Mei Müller',NULL,NULL,NULL,NULL,NULL,'Both','726297805',NULL,'Sample Data','Mei','H','Müller',NULL,NULL,NULL,NULL,1,NULL,'Dear Mei',1,NULL,'Dear Mei',1,NULL,'Mei Müller',NULL,1,'1940-09-15',1,'2019-10-12',NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:47'),(190,'Organization',NULL,0,0,0,0,1,0,NULL,NULL,'Yukon Music Fellowship','Yukon Music Fellowship',NULL,NULL,NULL,'3',NULL,'Both','3603225200',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Yukon Music Fellowship',NULL,NULL,NULL,0,NULL,NULL,122,'Yukon Music Fellowship',NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:49'),(191,'Organization',NULL,0,1,0,0,1,0,NULL,NULL,'Friends Food Network','Friends Food Network',NULL,NULL,NULL,NULL,NULL,'Both','674500802',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Friends Food Network',NULL,NULL,NULL,0,NULL,NULL,66,'Friends Food Network',NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:49'),(192,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Adams, Nicole','Nicole Adams',NULL,NULL,NULL,NULL,NULL,'Both','1724528090',NULL,'Sample Data','Nicole','O','Adams',NULL,NULL,NULL,NULL,1,NULL,'Dear Nicole',1,NULL,'Dear Nicole',1,NULL,'Nicole Adams',NULL,1,'1946-04-26',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:48'),(193,'Organization',NULL,1,0,0,0,1,0,NULL,NULL,'College Arts Alliance','College Arts Alliance',NULL,NULL,NULL,NULL,NULL,'Both','2613695336',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'College Arts Alliance',NULL,NULL,NULL,0,NULL,NULL,40,'College Arts Alliance',NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:49'),(194,'Individual',NULL,1,1,0,0,0,0,NULL,NULL,'Jameson, Alexia','Alexia Jameson',NULL,NULL,NULL,'5',NULL,'Both','1617185067',NULL,'Sample Data','Alexia','Y','Jameson',NULL,NULL,NULL,NULL,1,NULL,'Dear Alexia',1,NULL,'Dear Alexia',1,NULL,'Alexia Jameson',NULL,1,'2000-10-01',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:50'),(195,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Samuels-Olsen, Clint','Clint Samuels-Olsen II',NULL,NULL,NULL,'1',NULL,'Both','923383823',NULL,'Sample Data','Clint','','Samuels-Olsen',NULL,3,NULL,NULL,1,NULL,'Dear Clint',1,NULL,'Dear Clint',1,NULL,'Clint Samuels-Olsen II',NULL,2,'1982-03-19',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:50'),(196,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Bachman, Shauna','Shauna Bachman',NULL,NULL,NULL,'4',NULL,'Both','1518911519',NULL,'Sample Data','Shauna','G','Bachman',NULL,NULL,NULL,NULL,1,NULL,'Dear Shauna',1,NULL,'Dear Shauna',1,NULL,'Shauna Bachman',NULL,1,'1955-06-25',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:48'),(197,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Smith-Díaz, Santina','Ms. Santina Smith-Díaz',NULL,NULL,NULL,'1',NULL,'Both','2045566064',NULL,'Sample Data','Santina','','Smith-Díaz',2,NULL,NULL,NULL,1,NULL,'Dear Santina',1,NULL,'Dear Santina',1,NULL,'Ms. Santina Smith-Díaz',NULL,1,'1972-02-09',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:50'),(198,'Household',NULL,0,0,0,0,1,0,NULL,NULL,'Jameson family','Jameson family',NULL,NULL,NULL,'4',NULL,'Both','2255649769',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Jameson family',5,NULL,'Dear Jameson family',2,NULL,'Jameson family',NULL,NULL,NULL,0,NULL,'Jameson family',NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:49'),(199,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Müller, Herminia','Herminia Müller',NULL,NULL,NULL,NULL,NULL,'Both','1737815792',NULL,'Sample Data','Herminia','','Müller',NULL,NULL,NULL,NULL,1,NULL,'Dear Herminia',1,NULL,'Dear Herminia',1,NULL,'Herminia Müller',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:50'),(200,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Cruz, Santina','Ms. Santina Cruz',NULL,NULL,NULL,NULL,NULL,'Both','2716363511',NULL,'Sample Data','Santina','','Cruz',2,NULL,NULL,NULL,1,NULL,'Dear Santina',1,NULL,'Dear Santina',1,NULL,'Ms. Santina Cruz',NULL,NULL,'1969-05-05',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:50'),(201,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Grant, Barry','Mr. Barry Grant II',NULL,NULL,NULL,NULL,NULL,'Both','3594746483',NULL,'Sample Data','Barry','','Grant',3,3,NULL,NULL,1,NULL,'Dear Barry',1,NULL,'Dear Barry',1,NULL,'Mr. Barry Grant II',NULL,NULL,'1998-07-16',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-01-16 22:53:47','2020-01-16 22:53:48');
 /*!40000 ALTER TABLE `civicrm_contact` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -228,7 +228,7 @@ UNLOCK TABLES;
 
 LOCK TABLES `civicrm_contribution` WRITE;
 /*!40000 ALTER TABLE `civicrm_contribution` DISABLE KEYS */;
-INSERT INTO `civicrm_contribution` (`id`, `contact_id`, `financial_type_id`, `contribution_page_id`, `payment_instrument_id`, `receive_date`, `non_deductible_amount`, `total_amount`, `fee_amount`, `net_amount`, `trxn_id`, `invoice_id`, `invoice_number`, `currency`, `cancel_date`, `cancel_reason`, `receipt_date`, `thankyou_date`, `source`, `amount_level`, `contribution_recur_id`, `is_test`, `is_pay_later`, `contribution_status_id`, `address_id`, `check_number`, `campaign_id`, `creditnote_id`, `tax_amount`, `revenue_recognition_date`, `is_template`) VALUES (1,2,1,NULL,4,'2010-04-11 00:00:00',0.00,125.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Apr 2007 Mailer 1',NULL,NULL,0,0,1,NULL,'1041',NULL,NULL,NULL,NULL,0),(2,4,1,NULL,1,'2010-03-21 00:00:00',0.00,50.00,NULL,NULL,'P20901X1',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Online: Save the Penguins',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(3,6,1,NULL,4,'2010-04-29 00:00:00',0.00,25.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Apr 2007 Mailer 1',NULL,NULL,0,0,1,NULL,'2095',NULL,NULL,NULL,NULL,0),(4,8,1,NULL,4,'2010-04-11 00:00:00',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Apr 2007 Mailer 1',NULL,NULL,0,0,1,NULL,'10552',NULL,NULL,NULL,NULL,0),(5,16,1,NULL,4,'2010-04-15 00:00:00',0.00,500.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Apr 2007 Mailer 1',NULL,NULL,0,0,1,NULL,'509',NULL,NULL,NULL,NULL,0),(6,19,1,NULL,4,'2010-04-11 00:00:00',0.00,175.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Apr 2007 Mailer 1',NULL,NULL,0,0,1,NULL,'102',NULL,NULL,NULL,NULL,0),(7,82,1,NULL,1,'2010-03-27 00:00:00',0.00,50.00,NULL,NULL,'P20193L2',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Online: Save the Penguins',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(8,92,1,NULL,1,'2010-03-08 00:00:00',0.00,10.00,NULL,NULL,'P40232Y3',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Online: Help CiviCRM',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(9,34,1,NULL,1,'2010-04-22 00:00:00',0.00,250.00,NULL,NULL,'P20193L6',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Online: Help CiviCRM',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(10,71,1,NULL,1,'2009-07-01 11:53:50',0.00,500.00,NULL,NULL,'PL71',NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(11,43,1,NULL,1,'2009-07-01 12:55:41',0.00,200.00,NULL,NULL,'PL43II',NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(12,32,1,NULL,1,'2009-10-01 11:53:50',0.00,200.00,NULL,NULL,'PL32I',NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(13,32,1,NULL,1,'2009-12-01 12:55:41',0.00,200.00,NULL,NULL,'PL32II',NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(14,175,2,NULL,1,'2019-11-29 08:55:52',0.00,100.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(15,80,2,NULL,1,'2019-11-29 08:55:52',0.00,100.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(16,45,2,NULL,1,'2019-11-29 08:55:52',0.00,100.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(17,52,2,NULL,1,'2019-11-29 08:55:52',0.00,100.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(18,33,2,NULL,1,'2019-11-29 08:55:52',0.00,100.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(19,58,2,NULL,1,'2019-11-29 08:55:52',0.00,100.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(20,107,2,NULL,1,'2019-11-29 08:55:52',0.00,100.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(21,95,2,NULL,1,'2019-11-29 08:55:52',0.00,100.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(22,66,2,NULL,1,'2019-11-29 08:55:52',0.00,100.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(23,166,2,NULL,1,'2019-11-29 08:55:52',0.00,100.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(24,2,2,NULL,1,'2019-11-29 08:55:52',0.00,100.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(25,134,2,NULL,1,'2019-11-29 08:55:52',0.00,100.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(26,115,2,NULL,1,'2019-11-29 08:55:52',0.00,100.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(27,139,2,NULL,1,'2019-11-29 08:55:52',0.00,100.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(28,147,2,NULL,1,'2019-11-29 08:55:52',0.00,100.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(29,145,2,NULL,1,'2019-11-29 08:55:52',0.00,100.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(30,37,2,NULL,1,'2019-11-29 08:55:52',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(31,105,2,NULL,1,'2019-11-29 08:55:52',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(32,160,2,NULL,1,'2019-11-29 08:55:52',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(33,148,2,NULL,1,'2019-11-29 08:55:52',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(34,144,2,NULL,1,'2019-11-29 08:55:52',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(35,103,2,NULL,1,'2019-11-29 08:55:52',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(36,55,2,NULL,1,'2019-11-29 08:55:52',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(37,200,2,NULL,1,'2019-11-29 08:55:52',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(38,184,2,NULL,1,'2019-11-29 08:55:52',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(39,89,2,NULL,1,'2019-11-29 08:55:52',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(40,26,2,NULL,1,'2019-11-29 08:55:52',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(41,84,2,NULL,1,'2019-11-29 08:55:52',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(42,47,2,NULL,1,'2019-11-29 08:55:52',0.00,1200.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Lifetime Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(43,25,2,NULL,1,'2019-11-29 08:55:52',0.00,1200.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Lifetime Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(45,2,4,NULL,1,'2019-11-29 08:55:52',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2019-11-29 08:55:52',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(46,5,4,NULL,1,'2019-11-29 08:55:52',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2019-11-29 08:55:52',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(47,6,4,NULL,1,'2019-11-29 08:55:52',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2019-11-29 08:55:52',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(48,14,4,NULL,1,'2019-11-29 08:55:52',0.00,800.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2019-11-29 08:55:52',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(49,16,4,NULL,1,'2019-11-29 08:55:52',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2019-11-29 08:55:52',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(50,18,4,NULL,1,'2019-11-29 08:55:52',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2019-11-29 08:55:52',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(51,22,4,NULL,1,'2019-11-29 08:55:52',0.00,800.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2019-11-29 08:55:52',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(52,25,4,NULL,1,'2019-11-29 08:55:52',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2019-11-29 08:55:52',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(53,27,4,NULL,1,'2019-11-29 08:55:52',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2019-11-29 08:55:52',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(54,30,4,NULL,1,'2019-11-29 08:55:52',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2019-11-29 08:55:52',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(55,33,4,NULL,1,'2019-11-29 08:55:52',0.00,800.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2019-11-29 08:55:52',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(56,47,4,NULL,1,'2019-11-29 08:55:52',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2019-11-29 08:55:52',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(57,52,4,NULL,1,'2019-11-29 08:55:52',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2019-11-29 08:55:52',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(58,58,4,NULL,1,'2019-11-29 08:55:52',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2019-11-29 08:55:52',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(59,61,4,NULL,1,'2019-11-29 08:55:52',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2019-11-29 08:55:52',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(60,63,4,NULL,1,'2019-11-29 08:55:52',0.00,800.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2019-11-29 08:55:52',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(61,64,4,NULL,1,'2019-11-29 08:55:52',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2019-11-29 08:55:52',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(62,68,4,NULL,1,'2019-11-29 08:55:52',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2019-11-29 08:55:52',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(63,73,4,NULL,1,'2019-11-29 08:55:52',0.00,800.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2019-11-29 08:55:52',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(64,77,4,NULL,1,'2019-11-29 08:55:52',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2019-11-29 08:55:52',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(65,78,4,NULL,1,'2019-11-29 08:55:52',0.00,800.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2019-11-29 08:55:52',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(66,81,4,NULL,1,'2019-11-29 08:55:52',0.00,800.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2019-11-29 08:55:52',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(67,85,4,NULL,1,'2019-11-29 08:55:52',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2019-11-29 08:55:52',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(68,88,4,NULL,1,'2019-11-29 08:55:52',0.00,800.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2019-11-29 08:55:52',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(69,89,4,NULL,1,'2019-11-29 08:55:52',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2019-11-29 08:55:52',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(70,92,4,NULL,1,'2019-11-29 08:55:52',0.00,800.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2019-11-29 08:55:52',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(71,102,4,NULL,1,'2019-11-29 08:55:52',0.00,800.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2019-11-29 08:55:52',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(72,103,4,NULL,1,'2019-11-29 08:55:52',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2019-11-29 08:55:52',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(73,105,4,NULL,1,'2019-11-29 08:55:52',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2019-11-29 08:55:52',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(74,107,4,NULL,1,'2019-11-29 08:55:52',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2019-11-29 08:55:52',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(75,109,4,NULL,1,'2019-11-29 08:55:52',0.00,800.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2019-11-29 08:55:52',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(76,113,4,NULL,1,'2019-11-29 08:55:52',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2019-11-29 08:55:52',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(77,115,4,NULL,1,'2019-11-29 08:55:52',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2019-11-29 08:55:52',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(78,118,4,NULL,1,'2019-11-29 08:55:52',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2019-11-29 08:55:52',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(79,121,4,NULL,1,'2019-11-29 08:55:52',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2019-11-29 08:55:52',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(80,131,4,NULL,1,'2019-11-29 08:55:52',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2019-11-29 08:55:52',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(81,133,4,NULL,1,'2019-11-29 08:55:52',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2019-11-29 08:55:52',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(82,135,4,NULL,1,'2019-11-29 08:55:52',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2019-11-29 08:55:52',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(83,142,4,NULL,1,'2019-11-29 08:55:52',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2019-11-29 08:55:52',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(84,149,4,NULL,1,'2019-11-29 08:55:52',0.00,800.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2019-11-29 08:55:52',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(85,159,4,NULL,1,'2019-11-29 08:55:52',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2019-11-29 08:55:52',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(86,162,4,NULL,1,'2019-11-29 08:55:52',0.00,800.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2019-11-29 08:55:52',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(87,165,4,NULL,1,'2019-11-29 08:55:52',0.00,800.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2019-11-29 08:55:52',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(88,171,4,NULL,1,'2019-11-29 08:55:52',0.00,800.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2019-11-29 08:55:52',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(89,179,4,NULL,1,'2019-11-29 08:55:52',0.00,800.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2019-11-29 08:55:52',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(90,184,4,NULL,1,'2019-11-29 08:55:52',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2019-11-29 08:55:52',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(91,188,4,NULL,1,'2019-11-29 08:55:52',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2019-11-29 08:55:52',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(92,189,4,NULL,1,'2019-11-29 08:55:52',0.00,800.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2019-11-29 08:55:52',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(93,191,4,NULL,1,'2019-11-29 08:55:52',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2019-11-29 08:55:52',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(94,195,4,NULL,1,'2019-11-29 08:55:52',0.00,800.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2019-11-29 08:55:52',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0);
+INSERT INTO `civicrm_contribution` (`id`, `contact_id`, `financial_type_id`, `contribution_page_id`, `payment_instrument_id`, `receive_date`, `non_deductible_amount`, `total_amount`, `fee_amount`, `net_amount`, `trxn_id`, `invoice_id`, `invoice_number`, `currency`, `cancel_date`, `cancel_reason`, `receipt_date`, `thankyou_date`, `source`, `amount_level`, `contribution_recur_id`, `is_test`, `is_pay_later`, `contribution_status_id`, `address_id`, `check_number`, `campaign_id`, `creditnote_id`, `tax_amount`, `revenue_recognition_date`, `is_template`) VALUES (1,2,1,NULL,4,'2010-04-11 00:00:00',0.00,125.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Apr 2007 Mailer 1',NULL,NULL,0,0,1,NULL,'1041',NULL,NULL,NULL,NULL,0),(2,4,1,NULL,1,'2010-03-21 00:00:00',0.00,50.00,NULL,NULL,'P20901X1',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Online: Save the Penguins',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(3,6,1,NULL,4,'2010-04-29 00:00:00',0.00,25.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Apr 2007 Mailer 1',NULL,NULL,0,0,1,NULL,'2095',NULL,NULL,NULL,NULL,0),(4,8,1,NULL,4,'2010-04-11 00:00:00',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Apr 2007 Mailer 1',NULL,NULL,0,0,1,NULL,'10552',NULL,NULL,NULL,NULL,0),(5,16,1,NULL,4,'2010-04-15 00:00:00',0.00,500.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Apr 2007 Mailer 1',NULL,NULL,0,0,1,NULL,'509',NULL,NULL,NULL,NULL,0),(6,19,1,NULL,4,'2010-04-11 00:00:00',0.00,175.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Apr 2007 Mailer 1',NULL,NULL,0,0,1,NULL,'102',NULL,NULL,NULL,NULL,0),(7,82,1,NULL,1,'2010-03-27 00:00:00',0.00,50.00,NULL,NULL,'P20193L2',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Online: Save the Penguins',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(8,92,1,NULL,1,'2010-03-08 00:00:00',0.00,10.00,NULL,NULL,'P40232Y3',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Online: Help CiviCRM',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(9,34,1,NULL,1,'2010-04-22 00:00:00',0.00,250.00,NULL,NULL,'P20193L6',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Online: Help CiviCRM',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(10,71,1,NULL,1,'2009-07-01 11:53:50',0.00,500.00,NULL,NULL,'PL71',NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(11,43,1,NULL,1,'2009-07-01 12:55:41',0.00,200.00,NULL,NULL,'PL43II',NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(12,32,1,NULL,1,'2009-10-01 11:53:50',0.00,200.00,NULL,NULL,'PL32I',NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(13,32,1,NULL,1,'2009-12-01 12:55:41',0.00,200.00,NULL,NULL,'PL32II',NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(14,89,2,NULL,1,'2020-01-17 09:53:51',0.00,100.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(15,82,2,NULL,1,'2020-01-17 09:53:51',0.00,100.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(16,14,2,NULL,1,'2020-01-17 09:53:51',0.00,100.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(17,183,2,NULL,1,'2020-01-17 09:53:51',0.00,100.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(18,133,2,NULL,1,'2020-01-17 09:53:51',0.00,100.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(19,20,2,NULL,1,'2020-01-17 09:53:51',0.00,100.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(20,132,2,NULL,1,'2020-01-17 09:53:51',0.00,100.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(21,77,2,NULL,1,'2020-01-17 09:53:51',0.00,100.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(22,138,2,NULL,1,'2020-01-17 09:53:51',0.00,100.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(23,164,2,NULL,1,'2020-01-17 09:53:51',0.00,100.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(24,34,2,NULL,1,'2020-01-17 09:53:51',0.00,100.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(25,128,2,NULL,1,'2020-01-17 09:53:51',0.00,100.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(26,50,2,NULL,1,'2020-01-17 09:53:51',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(27,85,2,NULL,1,'2020-01-17 09:53:51',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(28,94,2,NULL,1,'2020-01-17 09:53:51',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(29,30,2,NULL,1,'2020-01-17 09:53:51',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(30,51,2,NULL,1,'2020-01-17 09:53:51',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(31,103,2,NULL,1,'2020-01-17 09:53:51',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(32,181,2,NULL,1,'2020-01-17 09:53:51',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(33,40,2,NULL,1,'2020-01-17 09:53:51',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(34,105,2,NULL,1,'2020-01-17 09:53:51',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(35,42,2,NULL,1,'2020-01-17 09:53:51',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(36,5,2,NULL,1,'2020-01-17 09:53:51',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(37,120,2,NULL,1,'2020-01-17 09:53:51',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(38,184,2,NULL,1,'2020-01-17 09:53:51',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(39,29,2,NULL,1,'2020-01-17 09:53:51',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(40,197,2,NULL,1,'2020-01-17 09:53:51',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(41,64,2,NULL,1,'2020-01-17 09:53:51',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(42,165,2,NULL,1,'2020-01-17 09:53:51',0.00,1200.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Lifetime Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(43,122,2,NULL,1,'2020-01-17 09:53:51',0.00,1200.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Lifetime Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(45,1,4,NULL,1,'2020-01-17 09:53:52',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2020-01-17 09:53:52',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(46,6,4,NULL,1,'2020-01-17 09:53:52',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2020-01-17 09:53:52',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(47,16,4,NULL,1,'2020-01-17 09:53:52',0.00,800.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2020-01-17 09:53:52',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(48,25,4,NULL,1,'2020-01-17 09:53:52',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2020-01-17 09:53:52',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(49,26,4,NULL,1,'2020-01-17 09:53:52',0.00,800.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2020-01-17 09:53:52',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(50,30,4,NULL,1,'2020-01-17 09:53:52',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2020-01-17 09:53:52',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(51,35,4,NULL,1,'2020-01-17 09:53:52',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2020-01-17 09:53:52',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(52,39,4,NULL,1,'2020-01-17 09:53:52',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2020-01-17 09:53:52',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(53,42,4,NULL,1,'2020-01-17 09:53:52',0.00,800.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2020-01-17 09:53:52',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(54,45,4,NULL,1,'2020-01-17 09:53:52',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2020-01-17 09:53:52',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(55,46,4,NULL,1,'2020-01-17 09:53:52',0.00,800.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2020-01-17 09:53:52',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(56,52,4,NULL,1,'2020-01-17 09:53:52',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2020-01-17 09:53:52',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(57,55,4,NULL,1,'2020-01-17 09:53:52',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2020-01-17 09:53:52',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(58,62,4,NULL,1,'2020-01-17 09:53:52',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2020-01-17 09:53:52',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(59,79,4,NULL,1,'2020-01-17 09:53:52',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2020-01-17 09:53:52',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(60,81,4,NULL,1,'2020-01-17 09:53:52',0.00,800.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2020-01-17 09:53:52',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(61,85,4,NULL,1,'2020-01-17 09:53:52',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2020-01-17 09:53:52',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(62,86,4,NULL,1,'2020-01-17 09:53:52',0.00,800.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2020-01-17 09:53:52',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(63,89,4,NULL,1,'2020-01-17 09:53:52',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2020-01-17 09:53:52',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(64,90,4,NULL,1,'2020-01-17 09:53:52',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2020-01-17 09:53:52',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(65,100,4,NULL,1,'2020-01-17 09:53:52',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2020-01-17 09:53:52',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(66,102,4,NULL,1,'2020-01-17 09:53:52',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2020-01-17 09:53:52',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(67,103,4,NULL,1,'2020-01-17 09:53:52',0.00,800.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2020-01-17 09:53:52',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(68,105,4,NULL,1,'2020-01-17 09:53:52',0.00,800.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2020-01-17 09:53:52',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(69,106,4,NULL,1,'2020-01-17 09:53:52',0.00,800.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2020-01-17 09:53:52',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(70,110,4,NULL,1,'2020-01-17 09:53:52',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2020-01-17 09:53:52',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(71,115,4,NULL,1,'2020-01-17 09:53:52',0.00,800.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2020-01-17 09:53:52',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(72,120,4,NULL,1,'2020-01-17 09:53:52',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2020-01-17 09:53:52',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(73,124,4,NULL,1,'2020-01-17 09:53:52',0.00,800.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2020-01-17 09:53:52',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(74,128,4,NULL,1,'2020-01-17 09:53:52',0.00,800.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2020-01-17 09:53:52',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(75,136,4,NULL,1,'2020-01-17 09:53:52',0.00,800.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2020-01-17 09:53:52',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(76,138,4,NULL,1,'2020-01-17 09:53:52',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2020-01-17 09:53:52',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(77,140,4,NULL,1,'2020-01-17 09:53:52',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2020-01-17 09:53:52',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(78,143,4,NULL,1,'2020-01-17 09:53:52',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2020-01-17 09:53:52',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(79,144,4,NULL,1,'2020-01-17 09:53:52',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2020-01-17 09:53:52',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(80,149,4,NULL,1,'2020-01-17 09:53:52',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2020-01-17 09:53:52',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(81,150,4,NULL,1,'2020-01-17 09:53:52',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2020-01-17 09:53:52',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(82,157,4,NULL,1,'2020-01-17 09:53:52',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2020-01-17 09:53:52',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(83,159,4,NULL,1,'2020-01-17 09:53:52',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2020-01-17 09:53:52',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(84,160,4,NULL,1,'2020-01-17 09:53:52',0.00,800.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2020-01-17 09:53:52',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(85,163,4,NULL,1,'2020-01-17 09:53:52',0.00,800.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2020-01-17 09:53:52',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(86,166,4,NULL,1,'2020-01-17 09:53:52',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2020-01-17 09:53:52',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(87,167,4,NULL,1,'2020-01-17 09:53:52',0.00,800.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2020-01-17 09:53:52',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(88,171,4,NULL,1,'2020-01-17 09:53:52',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2020-01-17 09:53:52',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(89,176,4,NULL,1,'2020-01-17 09:53:52',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2020-01-17 09:53:52',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(90,187,4,NULL,1,'2020-01-17 09:53:52',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2020-01-17 09:53:52',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(91,188,4,NULL,1,'2020-01-17 09:53:52',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2020-01-17 09:53:52',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(92,191,4,NULL,1,'2020-01-17 09:53:52',0.00,800.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2020-01-17 09:53:52',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(93,194,4,NULL,1,'2020-01-17 09:53:52',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2020-01-17 09:53:52',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),(94,196,4,NULL,1,'2020-01-17 09:53:52',0.00,800.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,'2020-01-17 09:53:52',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0);
 /*!40000 ALTER TABLE `civicrm_contribution` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -266,7 +266,7 @@ UNLOCK TABLES;
 
 LOCK TABLES `civicrm_contribution_soft` WRITE;
 /*!40000 ALTER TABLE `civicrm_contribution_soft` DISABLE KEYS */;
-INSERT INTO `civicrm_contribution_soft` (`id`, `contribution_id`, `contact_id`, `amount`, `currency`, `pcp_id`, `pcp_display_in_roll`, `pcp_roll_nickname`, `pcp_personal_note`, `soft_credit_type_id`) VALUES (1,8,54,10.00,'USD',1,1,'Jones Family','Helping Hands',10),(2,9,54,250.00,'USD',1,1,'Annie and the kids','Annie Helps',10);
+INSERT INTO `civicrm_contribution_soft` (`id`, `contribution_id`, `contact_id`, `amount`, `currency`, `pcp_id`, `pcp_display_in_roll`, `pcp_roll_nickname`, `pcp_personal_note`, `soft_credit_type_id`) VALUES (1,8,140,10.00,'USD',1,1,'Jones Family','Helping Hands',10),(2,9,140,250.00,'USD',1,1,'Annie and the kids','Annie Helps',10);
 /*!40000 ALTER TABLE `civicrm_contribution_soft` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -399,7 +399,7 @@ UNLOCK TABLES;
 
 LOCK TABLES `civicrm_domain` WRITE;
 /*!40000 ALTER TABLE `civicrm_domain` DISABLE KEYS */;
-INSERT INTO `civicrm_domain` (`id`, `name`, `description`, `config_backend`, `version`, `contact_id`, `locales`, `locale_custom_strings`) VALUES (1,'Default Domain Name',NULL,NULL,'5.22.1',1,NULL,'a:1:{s:5:\"en_US\";a:0:{}}');
+INSERT INTO `civicrm_domain` (`id`, `name`, `description`, `version`, `contact_id`, `locales`, `locale_custom_strings`) VALUES (1,'Default Domain Name',NULL,'5.23.0',1,NULL,'a:1:{s:5:\"en_US\";a:0:{}}');
 /*!40000 ALTER TABLE `civicrm_domain` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -409,7 +409,7 @@ UNLOCK TABLES;
 
 LOCK TABLES `civicrm_email` WRITE;
 /*!40000 ALTER TABLE `civicrm_email` DISABLE KEYS */;
-INSERT INTO `civicrm_email` (`id`, `contact_id`, `location_type_id`, `email`, `is_primary`, `is_billing`, `on_hold`, `is_bulkmail`, `hold_date`, `reset_date`, `signature_text`, `signature_html`) VALUES (1,1,1,'fixme.domainemail@example.org',0,0,0,0,NULL,NULL,NULL,NULL),(2,164,1,'herminiajones@sample.co.in',1,0,0,0,NULL,NULL,NULL,NULL),(3,164,1,'jones.herminia35@sample.co.in',0,0,0,0,NULL,NULL,NULL,NULL),(4,172,1,'russells@fakemail.com',1,0,0,0,NULL,NULL,NULL,NULL),(5,54,1,'terry.t.sonny42@mymail.net',1,0,0,0,NULL,NULL,NULL,NULL),(6,49,1,'mllera@airmail.com',1,0,0,0,NULL,NULL,NULL,NULL),(7,49,1,'mllera71@notmail.net',0,0,0,0,NULL,NULL,NULL,NULL),(8,13,1,'samuels.angelika39@testing.net',1,0,0,0,NULL,NULL,NULL,NULL),(9,13,1,'samuelsa@infomail.co.in',0,0,0,0,NULL,NULL,NULL,NULL),(10,176,1,'ivanov.kandace@sample.co.nz',1,0,0,0,NULL,NULL,NULL,NULL),(11,28,1,'wagnerr@testing.co.nz',1,0,0,0,NULL,NULL,NULL,NULL),(12,28,1,'wagnerr80@sample.net',0,0,0,0,NULL,NULL,NULL,NULL),(13,157,1,'shermanr@notmail.info',1,0,0,0,NULL,NULL,NULL,NULL),(14,157,1,'shermanreynolds@testmail.com',0,0,0,0,NULL,NULL,NULL,NULL),(15,66,1,'grant.rosario38@lol.info',1,0,0,0,NULL,NULL,NULL,NULL),(16,14,1,'rebekahadams@example.org',1,0,0,0,NULL,NULL,NULL,NULL),(17,102,1,'carylonmller36@notmail.com',1,0,0,0,NULL,NULL,NULL,NULL),(18,22,1,'prentice.d.juliann@mymail.biz',1,0,0,0,NULL,NULL,NULL,NULL),(19,22,1,'prenticej24@airmail.co.pl',0,0,0,0,NULL,NULL,NULL,NULL),(20,37,1,'junkoj78@spamalot.com',1,0,0,0,NULL,NULL,NULL,NULL),(21,30,1,'smith.delana@airmail.co.pl',1,0,0,0,NULL,NULL,NULL,NULL),(22,17,1,'bachman.bryon73@notmail.co.uk',1,0,0,0,NULL,NULL,NULL,NULL),(23,17,1,'bachman.e.bryon@testing.biz',0,0,0,0,NULL,NULL,NULL,NULL),(24,80,1,'sjensen@notmail.org',1,0,0,0,NULL,NULL,NULL,NULL),(25,80,1,'jensen.sharyn10@sample.co.nz',0,0,0,0,NULL,NULL,NULL,NULL),(26,60,1,'cruz.felisha@fishmail.co.pl',1,0,0,0,NULL,NULL,NULL,NULL),(27,60,1,'cruz.felisha@fishmail.info',0,0,0,0,NULL,NULL,NULL,NULL),(28,82,1,'wilson.herminia4@fishmail.org',1,0,0,0,NULL,NULL,NULL,NULL),(29,57,1,'bo.jones@infomail.co.pl',1,0,0,0,NULL,NULL,NULL,NULL),(30,8,1,'ivanov.g.carlos70@lol.co.pl',1,0,0,0,NULL,NULL,NULL,NULL),(31,8,1,'ivanov.g.carlos@lol.co.pl',0,0,0,0,NULL,NULL,NULL,NULL),(32,170,1,'robertsb@fakemail.com',1,0,0,0,NULL,NULL,NULL,NULL),(33,170,1,'roberts.betty@airmail.biz',0,0,0,0,NULL,NULL,NULL,NULL),(34,111,1,'heidimller@lol.co.uk',1,0,0,0,NULL,NULL,NULL,NULL),(35,111,1,'mller.u.heidi@testmail.co.nz',0,0,0,0,NULL,NULL,NULL,NULL),(36,70,1,'meichowski52@example.co.nz',1,0,0,0,NULL,NULL,NULL,NULL),(37,70,1,'mchowski@sample.net',0,0,0,0,NULL,NULL,NULL,NULL),(38,169,1,'kx.terrell@testing.co.uk',1,0,0,0,NULL,NULL,NULL,NULL),(39,124,1,'terrell.sherman@mymail.biz',1,0,0,0,NULL,NULL,NULL,NULL),(40,124,1,'terrells75@fakemail.org',0,0,0,0,NULL,NULL,NULL,NULL),(41,103,1,'princessdaz@notmail.com',1,0,0,0,NULL,NULL,NULL,NULL),(42,103,1,'pdaz@airmail.com',0,0,0,0,NULL,NULL,NULL,NULL),(43,72,1,'allanjensen@notmail.co.pl',1,0,0,0,NULL,NULL,NULL,NULL),(44,72,1,'jensen.allan@mymail.biz',0,0,0,0,NULL,NULL,NULL,NULL),(45,50,1,'lour@fakemail.co.nz',1,0,0,0,NULL,NULL,NULL,NULL),(46,4,1,'wagner.russell@sample.co.pl',1,0,0,0,NULL,NULL,NULL,NULL),(47,166,1,'sparker@testing.co.pl',1,0,0,0,NULL,NULL,NULL,NULL),(48,191,1,'prenticej@example.info',1,0,0,0,NULL,NULL,NULL,NULL),(49,59,1,'jameson.j.carylon50@lol.org',1,0,0,0,NULL,NULL,NULL,NULL),(50,59,1,'jamesonc5@notmail.co.nz',0,0,0,0,NULL,NULL,NULL,NULL),(51,173,1,'ivanov.merrie57@example.co.nz',1,0,0,0,NULL,NULL,NULL,NULL),(52,173,1,'mf.ivanov@mymail.info',0,0,0,0,NULL,NULL,NULL,NULL),(53,53,1,'princessw@lol.co.pl',1,0,0,0,NULL,NULL,NULL,NULL),(54,53,1,'princesswilson@lol.org',0,0,0,0,NULL,NULL,NULL,NULL),(55,116,1,'brentmcreynolds@notmail.org',1,0,0,0,NULL,NULL,NULL,NULL),(56,116,1,'bw.mcreynolds95@testmail.co.nz',0,0,0,0,NULL,NULL,NULL,NULL),(57,186,1,'ashleyj@lol.net',1,0,0,0,NULL,NULL,NULL,NULL),(58,133,1,'bzope@mymail.co.nz',1,0,0,0,NULL,NULL,NULL,NULL),(59,171,1,'mllere29@mymail.co.nz',1,0,0,0,NULL,NULL,NULL,NULL),(60,171,1,'erikmller@lol.net',0,0,0,0,NULL,NULL,NULL,NULL),(61,78,1,'lashawndan@sample.co.nz',1,0,0,0,NULL,NULL,NULL,NULL),(62,149,1,'smith.brittney@example.com',1,0,0,0,NULL,NULL,NULL,NULL),(63,149,1,'smithb@example.info',0,0,0,0,NULL,NULL,NULL,NULL),(64,39,1,'angelikag@fishmail.org',1,0,0,0,NULL,NULL,NULL,NULL),(65,39,1,'gonzleza@fakemail.net',0,0,0,0,NULL,NULL,NULL,NULL),(66,113,1,'ashleyi12@fakemail.co.in',1,0,0,0,NULL,NULL,NULL,NULL),(67,184,1,'deforestt@airmail.co.uk',1,0,0,0,NULL,NULL,NULL,NULL),(68,184,1,'deforest.y.tanya@spamalot.co.pl',0,0,0,0,NULL,NULL,NULL,NULL),(69,55,1,'jx.deforest@example.net',1,0,0,0,NULL,NULL,NULL,NULL),(70,145,1,'felishaj40@infomail.co.pl',1,0,0,0,NULL,NULL,NULL,NULL),(71,145,1,'fe.jones@fakemail.co.pl',0,0,0,0,NULL,NULL,NULL,NULL),(72,162,1,'dimitrovd@fishmail.co.uk',1,0,0,0,NULL,NULL,NULL,NULL),(73,162,1,'dimitrovd53@example.org',0,0,0,0,NULL,NULL,NULL,NULL),(74,189,1,'elbertw33@lol.co.pl',1,0,0,0,NULL,NULL,NULL,NULL),(75,193,1,'chowskie51@testing.co.pl',1,0,0,0,NULL,NULL,NULL,NULL),(76,26,1,'shads@fakemail.com',1,0,0,0,NULL,NULL,NULL,NULL),(77,18,1,'ni.prentice@spamalot.co.in',1,0,0,0,NULL,NULL,NULL,NULL),(78,3,1,'dsmith17@testmail.co.pl',1,0,0,0,NULL,NULL,NULL,NULL),(79,3,1,'smithd40@fakemail.co.uk',0,0,0,0,NULL,NULL,NULL,NULL),(80,89,1,'blackwell.jerome@mymail.co.pl',1,0,0,0,NULL,NULL,NULL,NULL),(81,89,1,'blackwell.jerome@sample.com',0,0,0,0,NULL,NULL,NULL,NULL),(82,180,1,'rodrigojones97@infomail.co.pl',1,0,0,0,NULL,NULL,NULL,NULL),(83,177,1,'ksamuels67@spamalot.co.in',1,0,0,0,NULL,NULL,NULL,NULL),(84,177,1,'samuels.kandace27@airmail.co.nz',0,0,0,0,NULL,NULL,NULL,NULL),(85,119,1,'loucruz96@notmail.co.in',1,0,0,0,NULL,NULL,NULL,NULL),(86,119,1,'cruzl@sample.co.in',0,0,0,0,NULL,NULL,NULL,NULL),(87,84,1,'barkley.felisha53@mymail.info',1,0,0,0,NULL,NULL,NULL,NULL),(88,84,1,'fbarkley@notmail.biz',0,0,0,0,NULL,NULL,NULL,NULL),(89,192,1,'shaunabarkley@spamalot.co.uk',1,0,0,0,NULL,NULL,NULL,NULL),(90,192,1,'barkley.k.shauna@mymail.com',0,0,0,0,NULL,NULL,NULL,NULL),(91,48,1,'barkley.rolando@example.co.pl',1,0,0,0,NULL,NULL,NULL,NULL),(92,105,1,'roberts-barkley.scott@fakemail.co.nz',1,0,0,0,NULL,NULL,NULL,NULL),(93,2,1,'maxwellbarkley@fakemail.co.nz',1,0,0,0,NULL,NULL,NULL,NULL),(94,2,1,'barkleym@spamalot.org',0,0,0,0,NULL,NULL,NULL,NULL),(95,112,1,'nl.barkley@mymail.biz',1,0,0,0,NULL,NULL,NULL,NULL),(96,123,1,'aroberts23@example.co.uk',1,0,0,0,NULL,NULL,NULL,NULL),(97,123,1,'roberts.angelika@fakemail.net',0,0,0,0,NULL,NULL,NULL,NULL),(98,95,1,'ashliej@airmail.co.pl',1,0,0,0,NULL,NULL,NULL,NULL),(99,95,1,'ajameson-roberts@fishmail.co.pl',0,0,0,0,NULL,NULL,NULL,NULL),(100,36,1,'ajameson-roberts@infomail.com',1,0,0,0,NULL,NULL,NULL,NULL),(101,36,1,'ashleyj82@testing.co.uk',0,0,0,0,NULL,NULL,NULL,NULL),(102,132,1,'maganw@fishmail.com',1,0,0,0,NULL,NULL,NULL,NULL),(103,64,1,'parker.valene@notmail.co.nz',1,0,0,0,NULL,NULL,NULL,NULL),(104,64,1,'parkerv@testmail.co.pl',0,0,0,0,NULL,NULL,NULL,NULL),(105,152,1,'samsone17@airmail.co.pl',1,0,0,0,NULL,NULL,NULL,NULL),(106,115,1,'samson.carlos@lol.biz',1,0,0,0,NULL,NULL,NULL,NULL),(107,115,1,'samson.carlos59@fishmail.co.in',0,0,0,0,NULL,NULL,NULL,NULL),(108,65,1,'smith.sonny78@infomail.info',1,0,0,0,NULL,NULL,NULL,NULL),(109,65,1,'sonnysmith@fakemail.co.pl',0,0,0,0,NULL,NULL,NULL,NULL),(110,158,1,'smith.beula@infomail.co.uk',1,0,0,0,NULL,NULL,NULL,NULL),(111,158,1,'beulas41@mymail.biz',0,0,0,0,NULL,NULL,NULL,NULL),(112,41,1,'smith.brent@fishmail.net',1,0,0,0,NULL,NULL,NULL,NULL),(113,41,1,'smith.brent@notmail.co.nz',0,0,0,0,NULL,NULL,NULL,NULL),(114,94,1,'jsmith@mymail.co.uk',1,0,0,0,NULL,NULL,NULL,NULL),(115,101,1,'wilson.scarlet@sample.co.pl',1,0,0,0,NULL,NULL,NULL,NULL),(116,101,1,'wilson.scarlet@notmail.info',0,0,0,0,NULL,NULL,NULL,NULL),(117,151,1,'ewilson25@notmail.co.uk',1,0,0,0,NULL,NULL,NULL,NULL),(118,151,1,'wilson.errol@example.co.uk',0,0,0,0,NULL,NULL,NULL,NULL),(119,104,1,'lincolnchowski49@fakemail.co.in',1,0,0,0,NULL,NULL,NULL,NULL),(120,104,1,'chowskil@airmail.co.nz',0,0,0,0,NULL,NULL,NULL,NULL),(121,67,1,'echowski18@fishmail.net',1,0,0,0,NULL,NULL,NULL,NULL),(122,93,1,'chowski.bernadette25@spamalot.info',1,0,0,0,NULL,NULL,NULL,NULL),(123,93,1,'chowski.bernadette23@lol.net',0,0,0,0,NULL,NULL,NULL,NULL),(124,199,1,'chowski.beula@fakemail.org',1,0,0,0,NULL,NULL,NULL,NULL),(125,199,1,'beulachowski77@testing.info',0,0,0,0,NULL,NULL,NULL,NULL),(126,92,1,'jacobs.teresa@airmail.org',1,0,0,0,NULL,NULL,NULL,NULL),(127,92,1,'jacobs.teresa@mymail.org',0,0,0,0,NULL,NULL,NULL,NULL),(128,68,1,'jacobs.kandace67@spamalot.co.in',1,0,0,0,NULL,NULL,NULL,NULL),(129,68,1,'jacobs.kandace@spamalot.biz',0,0,0,0,NULL,NULL,NULL,NULL),(130,140,1,'pk.samson@spamalot.org',1,0,0,0,NULL,NULL,NULL,NULL),(131,58,1,'msamson@airmail.co.uk',1,0,0,0,NULL,NULL,NULL,NULL),(132,58,1,'miguelsamson@fakemail.co.uk',0,0,0,0,NULL,NULL,NULL,NULL),(133,114,1,'ivanov.maxwell@notmail.info',1,0,0,0,NULL,NULL,NULL,NULL),(134,114,1,'maxwellivanov@infomail.net',0,0,0,0,NULL,NULL,NULL,NULL),(135,35,1,'ivanovm@mymail.biz',1,0,0,0,NULL,NULL,NULL,NULL),(136,35,1,'maganivanov@notmail.info',0,0,0,0,NULL,NULL,NULL,NULL),(137,195,1,'ivanovw@lol.org',1,0,0,0,NULL,NULL,NULL,NULL),(138,195,1,'ivanov.winford@lol.co.in',0,0,0,0,NULL,NULL,NULL,NULL),(139,175,1,'cdimitrov58@notmail.co.nz',1,0,0,0,NULL,NULL,NULL,NULL),(140,190,1,'smith.heidi@airmail.co.pl',1,0,0,0,NULL,NULL,NULL,NULL),(141,146,1,'dimitrov-smithi@airmail.info',1,0,0,0,NULL,NULL,NULL,NULL),(142,146,1,'dimitrov-smithi@fakemail.biz',0,0,0,0,NULL,NULL,NULL,NULL),(143,160,1,'ashleydimitrov-smith@fishmail.co.pl',1,0,0,0,NULL,NULL,NULL,NULL),(144,160,1,'ashleyd69@fishmail.co.in',0,0,0,0,NULL,NULL,NULL,NULL),(145,81,1,'cooper-yadava46@testing.co.in',1,0,0,0,NULL,NULL,NULL,NULL),(146,81,1,'as.cooper-yadav@testmail.co.nz',0,0,0,0,NULL,NULL,NULL,NULL),(147,85,1,'jayyadav@sample.co.in',1,0,0,0,NULL,NULL,NULL,NULL),(148,85,1,'yadavj@mymail.biz',0,0,0,0,NULL,NULL,NULL,NULL),(149,24,1,'robertson.v.juliann67@mymail.net',1,0,0,0,NULL,NULL,NULL,NULL),(150,143,1,'erobertson45@testmail.org',1,0,0,0,NULL,NULL,NULL,NULL),(151,185,1,'bd.smith@airmail.co.pl',1,0,0,0,NULL,NULL,NULL,NULL),(152,135,1,'rebekahb@airmail.co.pl',1,0,0,0,NULL,NULL,NULL,NULL),(153,135,1,'rn.bachman-smith@testing.biz',0,0,0,0,NULL,NULL,NULL,NULL),(154,130,1,'russellbachman-smith@spamalot.co.pl',1,0,0,0,NULL,NULL,NULL,NULL),(155,130,1,'bachman-smithr@fakemail.biz',0,0,0,0,NULL,NULL,NULL,NULL),(156,63,1,'deforest.russell@fakemail.co.in',1,0,0,0,NULL,NULL,NULL,NULL),(157,198,1,'roberts-deforest.princess36@notmail.net',1,0,0,0,NULL,NULL,NULL,NULL),(158,198,1,'proberts-deforest33@testmail.co.pl',0,0,0,0,NULL,NULL,NULL,NULL),(159,106,1,'rodrigodeforest36@testmail.biz',1,0,0,0,NULL,NULL,NULL,NULL),(160,106,1,'rodrigod@example.co.pl',0,0,0,0,NULL,NULL,NULL,NULL),(161,62,1,'deforestt23@lol.co.in',1,0,0,0,NULL,NULL,NULL,NULL),(162,182,1,'jsmith92@infomail.co.uk',1,0,0,0,NULL,NULL,NULL,NULL),(163,182,1,'smith.jay43@testmail.net',0,0,0,0,NULL,NULL,NULL,NULL),(164,136,1,'zopet67@spamalot.co.nz',1,0,0,0,NULL,NULL,NULL,NULL),(165,136,1,'zope.tanya@sample.net',0,0,0,0,NULL,NULL,NULL,NULL),(166,12,1,'mller.x.russell35@infomail.org',1,0,0,0,NULL,NULL,NULL,NULL),(167,12,1,'rx.mller17@infomail.co.pl',0,0,0,0,NULL,NULL,NULL,NULL),(168,178,1,'jameson-mller.o.eleonor@fakemail.co.in',1,0,0,0,NULL,NULL,NULL,NULL),(169,178,1,'eleonorj63@infomail.com',0,0,0,0,NULL,NULL,NULL,NULL),(170,165,1,'allenmller@testing.co.uk',1,0,0,0,NULL,NULL,NULL,NULL),(171,165,1,'mller.f.allen@fishmail.co.in',0,0,0,0,NULL,NULL,NULL,NULL),(172,45,1,'yadav-olsen.brigette@infomail.biz',1,0,0,0,NULL,NULL,NULL,NULL),(173,154,1,'yadav-olsen.jerome79@spamalot.co.nz',1,0,0,0,NULL,NULL,NULL,NULL),(174,154,1,'yadav-olsen.jerome@spamalot.org',0,0,0,0,NULL,NULL,NULL,NULL),(175,83,3,'sales@almacenter.org',1,0,0,0,NULL,NULL,NULL,NULL),(176,3,2,'darens@almacenter.org',0,0,0,0,NULL,NULL,NULL,NULL),(177,86,3,'sales@lincolnmusic.org',1,0,0,0,NULL,NULL,NULL,NULL),(178,125,2,'beulaparker@lincolnmusic.org',1,0,0,0,NULL,NULL,NULL,NULL),(179,10,3,'info@redmonhealth.org',1,0,0,0,NULL,NULL,NULL,NULL),(180,179,2,'jacobsl@redmonhealth.org',1,0,0,0,NULL,NULL,NULL,NULL),(181,181,3,'service@cadelldevelopmentservices.org',1,0,0,0,NULL,NULL,NULL,NULL),(182,71,2,'wilson.errol95@cadelldevelopmentservices.org',1,0,0,0,NULL,NULL,NULL,NULL),(183,29,3,'info@sissetoninitiative.org',1,0,0,0,NULL,NULL,NULL,NULL),(184,63,2,'ry.deforest@sissetoninitiative.org',0,0,0,0,NULL,NULL,NULL,NULL),(185,187,3,'service@creativeeducation.org',1,0,0,0,NULL,NULL,NULL,NULL),(186,189,2,'wilson.g.elbert@creativeeducation.org',0,0,0,0,NULL,NULL,NULL,NULL),(187,155,3,'contact@jamestownwellnesspartners.org',1,0,0,0,NULL,NULL,NULL,NULL),(188,89,2,'.@jamestownwellnesspartners.org',0,0,0,0,NULL,NULL,NULL,NULL),(189,161,3,'info@urbanliteracycollective.org',1,0,0,0,NULL,NULL,NULL,NULL),(190,138,3,'service@imbodenalliance.org',1,0,0,0,NULL,NULL,NULL,NULL),(191,38,3,'sales@baypartners.org',1,0,0,0,NULL,NULL,NULL,NULL),(192,37,2,'jones.junko44@baypartners.org',0,0,0,0,NULL,NULL,NULL,NULL),(193,6,3,'sales@yhpeaceacademy.org',1,0,0,0,NULL,NULL,NULL,NULL),(194,188,2,'samson.jerome24@yhpeaceacademy.org',1,0,0,0,NULL,NULL,NULL,NULL),(195,27,3,'info@fredericksburgfoodfund.org',1,0,0,0,NULL,NULL,NULL,NULL),(196,58,2,'miguelsamson@fredericksburgfoodfund.org',0,0,0,0,NULL,NULL,NULL,NULL),(197,69,3,'sales@scliteracyservices.org',1,0,0,0,NULL,NULL,NULL,NULL),(198,142,3,'feedback@wisconsintechnology.org',1,0,0,0,NULL,NULL,NULL,NULL),(199,93,2,'chowskib@wisconsintechnology.org',0,0,0,0,NULL,NULL,NULL,NULL),(200,11,3,'service@montanaadvocacyalliance.org',1,0,0,0,NULL,NULL,NULL,NULL),(201,120,3,'sales@wisconsintrust.org',1,0,0,0,NULL,NULL,NULL,NULL),(202,75,2,'af.jacobs@wisconsintrust.org',1,0,0,0,NULL,NULL,NULL,NULL),(203,56,3,'service@ohioadvocacy.org',1,0,0,0,NULL,NULL,NULL,NULL),(204,24,2,'juliannr@ohioadvocacy.org',0,0,0,0,NULL,NULL,NULL,NULL),(205,76,3,'feedback@communityfellowship.org',1,0,0,0,NULL,NULL,NULL,NULL),(206,112,2,'barkleyn@communityfellowship.org',0,0,0,0,NULL,NULL,NULL,NULL),(207,NULL,1,'development@example.org',0,0,0,0,NULL,NULL,NULL,NULL),(208,NULL,1,'tournaments@example.org',0,0,0,0,NULL,NULL,NULL,NULL),(209,NULL,1,'celebration@example.org',0,0,0,0,NULL,NULL,NULL,NULL);
+INSERT INTO `civicrm_email` (`id`, `contact_id`, `location_type_id`, `email`, `is_primary`, `is_billing`, `on_hold`, `is_bulkmail`, `hold_date`, `reset_date`, `signature_text`, `signature_html`) VALUES (1,1,1,'fixme.domainemail@example.org',0,0,0,0,NULL,NULL,NULL,NULL),(2,96,1,'na.yadav14@fakemail.info',1,0,0,0,NULL,NULL,NULL,NULL),(3,96,1,'yadavn@infomail.com',0,0,0,0,NULL,NULL,NULL,NULL),(4,43,1,'shaunab@lol.info',1,0,0,0,NULL,NULL,NULL,NULL),(5,43,1,'sbarkley@fakemail.co.in',0,0,0,0,NULL,NULL,NULL,NULL),(6,140,1,'jeromez@example.org',1,0,0,0,NULL,NULL,NULL,NULL),(7,95,1,'cruz.y.eleonor@testing.info',1,0,0,0,NULL,NULL,NULL,NULL),(8,95,1,'ey.cruz28@mymail.co.in',0,0,0,0,NULL,NULL,NULL,NULL),(9,106,1,'ss.samuels79@mymail.biz',1,0,0,0,NULL,NULL,NULL,NULL),(10,98,1,'jaygonzlez@sample.co.nz',1,0,0,0,NULL,NULL,NULL,NULL),(11,127,1,'blackwellj76@infomail.co.uk',1,0,0,0,NULL,NULL,NULL,NULL),(12,102,1,'wagnerr@infomail.co.pl',1,0,0,0,NULL,NULL,NULL,NULL),(13,141,1,'edaz@sample.org',1,0,0,0,NULL,NULL,NULL,NULL),(14,105,1,'trumanroberts@spamalot.co.in',1,0,0,0,NULL,NULL,NULL,NULL),(15,105,1,'robertst@notmail.info',0,0,0,0,NULL,NULL,NULL,NULL),(16,23,1,'tterrell86@airmail.net',1,0,0,0,NULL,NULL,NULL,NULL),(17,23,1,'terrell.troy89@spamalot.co.pl',0,0,0,0,NULL,NULL,NULL,NULL),(18,9,1,'eo.terrell6@example.biz',1,0,0,0,NULL,NULL,NULL,NULL),(19,9,1,'terrell.o.elbert68@sample.biz',0,0,0,0,NULL,NULL,NULL,NULL),(20,117,1,'dz.jensen12@airmail.info',1,0,0,0,NULL,NULL,NULL,NULL),(21,117,1,'darenj@notmail.co.in',0,0,0,0,NULL,NULL,NULL,NULL),(22,10,1,'bachmanl@sample.co.uk',1,0,0,0,NULL,NULL,NULL,NULL),(23,40,1,'wattsonc@infomail.co.in',1,0,0,0,NULL,NULL,NULL,NULL),(24,40,1,'co.wattson@testing.net',0,0,0,0,NULL,NULL,NULL,NULL),(25,185,1,'craigd@mymail.co.pl',1,0,0,0,NULL,NULL,NULL,NULL),(26,37,1,'patel.rosario@fakemail.co.in',1,0,0,0,NULL,NULL,NULL,NULL),(27,37,1,'patel.rosario@example.co.in',0,0,0,0,NULL,NULL,NULL,NULL),(28,27,1,'arlynes99@sample.co.uk',1,0,0,0,NULL,NULL,NULL,NULL),(29,27,1,'ak.smith25@sample.info',0,0,0,0,NULL,NULL,NULL,NULL),(30,164,1,'smith.jed@mymail.co.pl',1,0,0,0,NULL,NULL,NULL,NULL),(31,164,1,'smith.y.jed@fakemail.com',0,0,0,0,NULL,NULL,NULL,NULL),(32,49,1,'robertson.j.alexia@fakemail.co.in',1,0,0,0,NULL,NULL,NULL,NULL),(33,49,1,'robertson.alexia@fishmail.net',0,0,0,0,NULL,NULL,NULL,NULL),(34,130,1,'be.terrell@testmail.co.in',1,0,0,0,NULL,NULL,NULL,NULL),(35,4,1,'mterry52@fishmail.biz',1,0,0,0,NULL,NULL,NULL,NULL),(36,100,1,'terrya@testmail.co.nz',1,0,0,0,NULL,NULL,NULL,NULL),(37,100,1,'angelikat5@sample.co.nz',0,0,0,0,NULL,NULL,NULL,NULL),(38,16,1,'jmller30@testmail.biz',1,0,0,0,NULL,NULL,NULL,NULL),(39,16,1,'mller.jacob@spamalot.biz',0,0,0,0,NULL,NULL,NULL,NULL),(40,29,1,'andrewdeforest55@sample.info',1,0,0,0,NULL,NULL,NULL,NULL),(41,162,1,'jacksonp@testing.co.nz',1,0,0,0,NULL,NULL,NULL,NULL),(42,162,1,'patelj@example.net',0,0,0,0,NULL,NULL,NULL,NULL),(43,59,1,'heidiy@fishmail.co.pl',1,0,0,0,NULL,NULL,NULL,NULL),(44,144,1,'reynolds.sharyn@infomail.info',1,0,0,0,NULL,NULL,NULL,NULL),(45,144,1,'sreynolds@fakemail.co.nz',0,0,0,0,NULL,NULL,NULL,NULL),(46,21,1,'olsenb67@testmail.co.pl',1,0,0,0,NULL,NULL,NULL,NULL),(47,122,1,'sonnyt@sample.co.uk',1,0,0,0,NULL,NULL,NULL,NULL),(48,122,1,'sonnyterry@spamalot.co.nz',0,0,0,0,NULL,NULL,NULL,NULL),(49,74,1,'hy.cruz@testing.com',1,0,0,0,NULL,NULL,NULL,NULL),(50,74,1,'cruz.herminia@lol.net',0,0,0,0,NULL,NULL,NULL,NULL),(51,111,1,'yadavs@infomail.info',1,0,0,0,NULL,NULL,NULL,NULL),(52,111,1,'santinay@fishmail.net',0,0,0,0,NULL,NULL,NULL,NULL),(53,181,1,'lincolng@spamalot.biz',1,0,0,0,NULL,NULL,NULL,NULL),(54,201,1,'grantb@fishmail.co.in',1,0,0,0,NULL,NULL,NULL,NULL),(55,184,1,'ashlieg87@fishmail.biz',1,0,0,0,NULL,NULL,NULL,NULL),(56,184,1,'ashliegrant@notmail.net',0,0,0,0,NULL,NULL,NULL,NULL),(57,176,1,'samuels.omar54@infomail.net',1,0,0,0,NULL,NULL,NULL,NULL),(58,176,1,'samuels.omar@sample.org',0,0,0,0,NULL,NULL,NULL,NULL),(59,178,1,'ayadav@lol.co.nz',1,0,0,0,NULL,NULL,NULL,NULL),(60,51,1,'wattson.valene@fakemail.info',1,0,0,0,NULL,NULL,NULL,NULL),(61,52,1,'samuels.k.rolando68@mymail.info',1,0,0,0,NULL,NULL,NULL,NULL),(62,11,1,'grant.d.valene@testmail.co.nz',1,0,0,0,NULL,NULL,NULL,NULL),(63,11,1,'valenegrant@infomail.co.in',0,0,0,0,NULL,NULL,NULL,NULL),(64,103,1,'carlosrobertson@spamalot.co.pl',1,0,0,0,NULL,NULL,NULL,NULL),(65,109,1,'olsen.l.kathlyn@testmail.co.in',1,0,0,0,NULL,NULL,NULL,NULL),(66,109,1,'olsen.kathlyn@infomail.co.uk',0,0,0,0,NULL,NULL,NULL,NULL),(67,73,1,'blackwell.l.omar@testing.co.pl',1,0,0,0,NULL,NULL,NULL,NULL),(68,73,1,'blackwell.omar@fakemail.info',0,0,0,0,NULL,NULL,NULL,NULL),(69,55,1,'magandeforest@spamalot.com',1,0,0,0,NULL,NULL,NULL,NULL),(70,151,1,'wilson.betty83@sample.net',1,0,0,0,NULL,NULL,NULL,NULL),(71,151,1,'bwilson@airmail.co.pl',0,0,0,0,NULL,NULL,NULL,NULL),(72,108,1,'lashawndareynolds14@testmail.co.pl',1,0,0,0,NULL,NULL,NULL,NULL),(73,108,1,'reynoldsl61@fakemail.co.uk',0,0,0,0,NULL,NULL,NULL,NULL),(74,19,1,'teresalee@lol.co.in',1,0,0,0,NULL,NULL,NULL,NULL),(75,19,1,'lee.teresa@example.co.in',0,0,0,0,NULL,NULL,NULL,NULL),(76,196,1,'bachmans8@fishmail.co.pl',1,0,0,0,NULL,NULL,NULL,NULL),(77,196,1,'bachmans@mymail.co.in',0,0,0,0,NULL,NULL,NULL,NULL),(78,83,1,'robertss@sample.org',1,0,0,0,NULL,NULL,NULL,NULL),(79,83,1,'robertss94@fakemail.net',0,0,0,0,NULL,NULL,NULL,NULL),(80,80,1,'lawerencej@lol.info',1,0,0,0,NULL,NULL,NULL,NULL),(81,25,1,'ivanov.jacob32@spamalot.info',1,0,0,0,NULL,NULL,NULL,NULL),(82,25,1,'jivanov@example.info',0,0,0,0,NULL,NULL,NULL,NULL),(83,13,1,'daz.z.tanya66@fakemail.co.in',1,0,0,0,NULL,NULL,NULL,NULL),(84,13,1,'dazt@notmail.co.uk',0,0,0,0,NULL,NULL,NULL,NULL),(85,173,1,'bo.grant89@fishmail.info',1,0,0,0,NULL,NULL,NULL,NULL),(86,91,1,'jnielsen@testmail.com',1,0,0,0,NULL,NULL,NULL,NULL),(87,91,1,'jacobn89@airmail.co.uk',0,0,0,0,NULL,NULL,NULL,NULL),(88,57,1,'ci.gonzlez@fishmail.co.pl',1,0,0,0,NULL,NULL,NULL,NULL),(89,57,1,'gonzlezc@fishmail.net',0,0,0,0,NULL,NULL,NULL,NULL),(90,101,1,'daz.shad56@testmail.info',1,0,0,0,NULL,NULL,NULL,NULL),(91,24,1,'eb.roberts71@notmail.co.pl',1,0,0,0,NULL,NULL,NULL,NULL),(92,24,1,'roberts.b.errol@testing.info',0,0,0,0,NULL,NULL,NULL,NULL),(93,168,1,'patel.teresa@testmail.net',1,0,0,0,NULL,NULL,NULL,NULL),(94,146,1,'mn.patel@notmail.com',1,0,0,0,NULL,NULL,NULL,NULL),(95,200,1,'cruzs@mymail.co.uk',1,0,0,0,NULL,NULL,NULL,NULL),(96,6,1,'cruz.herminia@sample.com',1,0,0,0,NULL,NULL,NULL,NULL),(97,6,1,'cruzh@mymail.co.pl',0,0,0,0,NULL,NULL,NULL,NULL),(98,76,1,'cruzm@infomail.co.in',1,0,0,0,NULL,NULL,NULL,NULL),(99,64,1,'prenticeb2@infomail.biz',1,0,0,0,NULL,NULL,NULL,NULL),(100,64,1,'prentice.n.barry@fakemail.info',0,0,0,0,NULL,NULL,NULL,NULL),(101,41,1,'tx.prentice@spamalot.org',1,0,0,0,NULL,NULL,NULL,NULL),(102,89,1,'jprentice@sample.info',1,0,0,0,NULL,NULL,NULL,NULL),(103,161,1,'shermanprentice26@sample.co.nz',1,0,0,0,NULL,NULL,NULL,NULL),(104,138,1,'norrisp83@testing.net',1,0,0,0,NULL,NULL,NULL,NULL),(105,34,1,'parker-grant.maxwell@sample.co.in',1,0,0,0,NULL,NULL,NULL,NULL),(106,34,1,'mparker-grant51@testmail.co.nz',0,0,0,0,NULL,NULL,NULL,NULL),(107,56,1,'jamesonn@mymail.biz',1,0,0,0,NULL,NULL,NULL,NULL),(108,56,1,'jamesonn@lol.org',0,0,0,0,NULL,NULL,NULL,NULL),(109,156,1,'blackwell.teddy@example.co.nz',1,0,0,0,NULL,NULL,NULL,NULL),(110,167,1,'maganblackwell@fishmail.info',1,0,0,0,NULL,NULL,NULL,NULL),(111,45,1,'kt.blackwell79@testing.com',1,0,0,0,NULL,NULL,NULL,NULL),(112,20,1,'grant.allan@infomail.co.nz',1,0,0,0,NULL,NULL,NULL,NULL),(113,20,1,'grant.allan@fakemail.co.in',0,0,0,0,NULL,NULL,NULL,NULL),(114,124,1,'jinawagner-grant33@fishmail.biz',1,0,0,0,NULL,NULL,NULL,NULL),(115,160,1,'lougrant16@lol.co.uk',1,0,0,0,NULL,NULL,NULL,NULL),(116,160,1,'lgrant@fakemail.org',0,0,0,0,NULL,NULL,NULL,NULL),(117,126,1,'roberts.sherman@fishmail.org',1,0,0,0,NULL,NULL,NULL,NULL),(118,126,1,'sroberts@airmail.biz',0,0,0,0,NULL,NULL,NULL,NULL),(119,119,1,'lwattson-roberts12@fishmail.org',1,0,0,0,NULL,NULL,NULL,NULL),(120,119,1,'lareewattson-roberts22@lol.com',0,0,0,0,NULL,NULL,NULL,NULL),(121,44,1,'roberts.alida@fakemail.biz',1,0,0,0,NULL,NULL,NULL,NULL),(122,2,1,'sanfordroberts@mymail.org',1,0,0,0,NULL,NULL,NULL,NULL),(123,2,1,'roberts.sanford@lol.co.nz',0,0,0,0,NULL,NULL,NULL,NULL),(124,26,1,'olsen.elina@lol.co.uk',1,0,0,0,NULL,NULL,NULL,NULL),(125,26,1,'olsen.s.elina@lol.biz',0,0,0,0,NULL,NULL,NULL,NULL),(126,133,1,'jsamuels-olsen34@testing.co.in',1,0,0,0,NULL,NULL,NULL,NULL),(127,195,1,'samuels-olsen.clint15@testing.co.nz',1,0,0,0,NULL,NULL,NULL,NULL),(128,195,1,'samuels-olsen.clint67@infomail.co.nz',0,0,0,0,NULL,NULL,NULL,NULL),(129,145,1,'jamesonk46@spamalot.co.nz',1,0,0,0,NULL,NULL,NULL,NULL),(130,114,1,'hjameson22@testmail.info',1,0,0,0,NULL,NULL,NULL,NULL),(131,147,1,'jamesonc83@spamalot.co.pl',1,0,0,0,NULL,NULL,NULL,NULL),(132,147,1,'jameson.a.clint19@testing.co.pl',0,0,0,0,NULL,NULL,NULL,NULL),(133,81,1,'parker-wagner.i.kenny64@lol.biz',1,0,0,0,NULL,NULL,NULL,NULL),(134,88,1,'jonesr@sample.net',1,0,0,0,NULL,NULL,NULL,NULL),(135,79,1,'norrisj25@testmail.co.uk',1,0,0,0,NULL,NULL,NULL,NULL),(136,123,1,'jonesa@sample.co.nz',1,0,0,0,NULL,NULL,NULL,NULL),(137,77,1,'my.jones24@notmail.com',1,0,0,0,NULL,NULL,NULL,NULL),(138,199,1,'herminiam4@notmail.com',1,0,0,0,NULL,NULL,NULL,NULL),(139,125,1,'delanamller33@airmail.co.uk',1,0,0,0,NULL,NULL,NULL,NULL),(140,125,1,'mller.delana19@testmail.co.uk',0,0,0,0,NULL,NULL,NULL,NULL),(141,163,1,'omarm@fishmail.net',1,0,0,0,NULL,NULL,NULL,NULL),(142,60,1,'daz.errol66@testing.org',1,0,0,0,NULL,NULL,NULL,NULL),(143,60,1,'errold@lol.co.uk',0,0,0,0,NULL,NULL,NULL,NULL),(144,197,1,'smith-daz.santina81@mymail.biz',1,0,0,0,NULL,NULL,NULL,NULL),(145,69,1,'dazs@sample.com',1,0,0,0,NULL,NULL,NULL,NULL),(146,69,1,'sb.daz5@sample.co.uk',0,0,0,0,NULL,NULL,NULL,NULL),(147,87,1,'brentr@example.com',1,0,0,0,NULL,NULL,NULL,NULL),(148,84,1,'reynolds.v.merrie86@lol.com',1,0,0,0,NULL,NULL,NULL,NULL),(149,86,1,'rf.prentice79@notmail.biz',1,0,0,0,NULL,NULL,NULL,NULL),(150,86,1,'prenticer@testmail.info',0,0,0,0,NULL,NULL,NULL,NULL),(151,47,1,'nicolep@testing.co.in',1,0,0,0,NULL,NULL,NULL,NULL),(152,47,1,'nb.prentice@testing.net',0,0,0,0,NULL,NULL,NULL,NULL),(153,183,1,'landonprentice@infomail.net',1,0,0,0,NULL,NULL,NULL,NULL),(154,14,1,'nielsenj@airmail.com',1,0,0,0,NULL,NULL,NULL,NULL),(155,14,1,'josefan@notmail.co.nz',0,0,0,0,NULL,NULL,NULL,NULL),(156,50,1,'nielsenl@fakemail.co.pl',1,0,0,0,NULL,NULL,NULL,NULL),(157,50,1,'lounielsen@sample.co.pl',0,0,0,0,NULL,NULL,NULL,NULL),(158,177,1,'ho.nielsen9@fakemail.co.nz',1,0,0,0,NULL,NULL,NULL,NULL),(159,177,1,'herminian3@fishmail.biz',0,0,0,0,NULL,NULL,NULL,NULL),(160,174,1,'winfordparker68@testmail.net',1,0,0,0,NULL,NULL,NULL,NULL),(161,115,1,'zope-parker.eleonor@testing.net',1,0,0,0,NULL,NULL,NULL,NULL),(162,18,1,'sm.lee54@airmail.org',1,0,0,0,NULL,NULL,NULL,NULL),(163,135,1,'carloslee@infomail.info',1,0,0,0,NULL,NULL,NULL,NULL),(164,135,1,'clee59@lol.co.uk',0,0,0,0,NULL,NULL,NULL,NULL),(165,5,1,'bettyg@lol.co.uk',1,0,0,0,NULL,NULL,NULL,NULL),(166,39,1,'arlyney@example.co.pl',1,0,0,0,NULL,NULL,NULL,NULL),(167,39,1,'arlyneyadav-grant@mymail.biz',0,0,0,0,NULL,NULL,NULL,NULL),(168,17,1,'yadav-grant.maxwell72@example.co.in',1,0,0,0,NULL,NULL,NULL,NULL),(169,17,1,'yadav-grantm98@mymail.info',0,0,0,0,NULL,NULL,NULL,NULL),(170,149,3,'sales@unitedpoetryfellowship.org',1,0,0,0,NULL,NULL,NULL,NULL),(171,121,3,'service@communitylegal.org',1,0,0,0,NULL,NULL,NULL,NULL),(172,55,2,'deforest.magan41@communitylegal.org',0,0,0,0,NULL,NULL,NULL,NULL),(173,153,3,'service@beechsustainability.org',1,0,0,0,NULL,NULL,NULL,NULL),(174,135,2,'leec27@beechsustainability.org',0,0,0,0,NULL,NULL,NULL,NULL),(175,113,3,'sales@friendsservices.org',1,0,0,0,NULL,NULL,NULL,NULL),(176,182,2,'olsen.sanford38@friendsservices.org',1,0,0,0,NULL,NULL,NULL,NULL),(177,28,3,'info@michigansports.org',1,0,0,0,NULL,NULL,NULL,NULL),(178,142,3,'info@statesinitiative.org',1,0,0,0,NULL,NULL,NULL,NULL),(179,176,2,'samuels.omar18@statesinitiative.org',0,0,0,0,NULL,NULL,NULL,NULL),(180,191,3,'feedback@friendsfood.org',1,0,0,0,NULL,NULL,NULL,NULL),(181,66,2,'wagnere@friendsfood.org',1,0,0,0,NULL,NULL,NULL,NULL),(182,104,3,'service@localnetwork.org',1,0,0,0,NULL,NULL,NULL,NULL),(183,82,2,'parkere14@localnetwork.org',1,0,0,0,NULL,NULL,NULL,NULL),(184,190,3,'info@yukonfellowship.org',1,0,0,0,NULL,NULL,NULL,NULL),(185,122,2,'sterry@yukonfellowship.org',0,0,0,0,NULL,NULL,NULL,NULL),(186,22,3,'contact@jacksonassociation.org',1,0,0,0,NULL,NULL,NULL,NULL),(187,97,3,'sales@progressivepoetrypartnership.org',1,0,0,0,NULL,NULL,NULL,NULL),(188,150,2,'dimitrov.jay45@progressivepoetrypartnership.org',1,0,0,0,NULL,NULL,NULL,NULL),(189,71,3,'sales@beechartsfund.org',1,0,0,0,NULL,NULL,NULL,NULL),(190,185,2,'dimitrov.s.craig@beechartsfund.org',0,0,0,0,NULL,NULL,NULL,NULL),(191,159,3,'feedback@unitedhealth.org',1,0,0,0,NULL,NULL,NULL,NULL),(192,80,2,'jameson.lawerence40@unitedhealth.org',0,0,0,0,NULL,NULL,NULL,NULL),(193,31,3,'service@collegefund.org',1,0,0,0,NULL,NULL,NULL,NULL),(194,59,2,'yadavh42@collegefund.org',0,0,0,0,NULL,NULL,NULL,NULL),(195,NULL,1,'development@example.org',0,0,0,0,NULL,NULL,NULL,NULL),(196,NULL,1,'tournaments@example.org',0,0,0,0,NULL,NULL,NULL,NULL),(197,NULL,1,'celebration@example.org',0,0,0,0,NULL,NULL,NULL,NULL);
 /*!40000 ALTER TABLE `civicrm_email` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -447,7 +447,7 @@ UNLOCK TABLES;
 
 LOCK TABLES `civicrm_entity_financial_trxn` WRITE;
 /*!40000 ALTER TABLE `civicrm_entity_financial_trxn` DISABLE KEYS */;
-INSERT INTO `civicrm_entity_financial_trxn` (`id`, `entity_table`, `entity_id`, `financial_trxn_id`, `amount`) VALUES (1,'civicrm_contribution',1,1,125.00),(2,'civicrm_financial_item',1,1,125.00),(3,'civicrm_contribution',2,2,50.00),(4,'civicrm_financial_item',2,2,50.00),(5,'civicrm_contribution',3,3,25.00),(6,'civicrm_financial_item',3,3,25.00),(7,'civicrm_contribution',4,4,50.00),(8,'civicrm_financial_item',4,4,50.00),(9,'civicrm_contribution',5,5,500.00),(10,'civicrm_financial_item',5,5,500.00),(11,'civicrm_contribution',6,6,175.00),(12,'civicrm_financial_item',6,6,175.00),(13,'civicrm_contribution',7,7,50.00),(14,'civicrm_financial_item',7,7,50.00),(15,'civicrm_contribution',8,8,10.00),(16,'civicrm_financial_item',8,8,10.00),(17,'civicrm_contribution',9,9,250.00),(18,'civicrm_financial_item',9,9,250.00),(19,'civicrm_contribution',10,10,500.00),(20,'civicrm_financial_item',10,10,500.00),(21,'civicrm_contribution',11,11,200.00),(22,'civicrm_financial_item',11,11,200.00),(23,'civicrm_contribution',12,12,200.00),(24,'civicrm_financial_item',12,12,200.00),(25,'civicrm_contribution',13,13,200.00),(26,'civicrm_financial_item',13,13,200.00),(27,'civicrm_contribution',14,14,100.00),(28,'civicrm_financial_item',14,14,100.00),(29,'civicrm_contribution',15,15,100.00),(30,'civicrm_financial_item',15,15,100.00),(31,'civicrm_contribution',16,16,100.00),(32,'civicrm_financial_item',16,16,100.00),(33,'civicrm_contribution',17,17,100.00),(34,'civicrm_financial_item',17,17,100.00),(35,'civicrm_contribution',18,18,100.00),(36,'civicrm_financial_item',18,18,100.00),(37,'civicrm_contribution',19,19,100.00),(38,'civicrm_financial_item',19,19,100.00),(39,'civicrm_contribution',20,20,100.00),(40,'civicrm_financial_item',20,20,100.00),(41,'civicrm_contribution',21,21,100.00),(42,'civicrm_financial_item',21,21,100.00),(43,'civicrm_contribution',22,22,100.00),(44,'civicrm_financial_item',22,22,100.00),(45,'civicrm_contribution',23,23,100.00),(46,'civicrm_financial_item',23,23,100.00),(47,'civicrm_contribution',24,24,100.00),(48,'civicrm_financial_item',24,24,100.00),(49,'civicrm_contribution',25,25,100.00),(50,'civicrm_financial_item',25,25,100.00),(51,'civicrm_contribution',26,26,100.00),(52,'civicrm_financial_item',26,26,100.00),(53,'civicrm_contribution',27,27,100.00),(54,'civicrm_financial_item',27,27,100.00),(55,'civicrm_contribution',28,28,100.00),(56,'civicrm_financial_item',28,28,100.00),(57,'civicrm_contribution',29,29,100.00),(58,'civicrm_financial_item',29,29,100.00),(59,'civicrm_contribution',30,30,50.00),(60,'civicrm_financial_item',30,30,50.00),(61,'civicrm_contribution',31,31,50.00),(62,'civicrm_financial_item',31,31,50.00),(63,'civicrm_contribution',32,32,50.00),(64,'civicrm_financial_item',32,32,50.00),(65,'civicrm_contribution',33,33,50.00),(66,'civicrm_financial_item',33,33,50.00),(67,'civicrm_contribution',34,34,50.00),(68,'civicrm_financial_item',34,34,50.00),(69,'civicrm_contribution',35,35,50.00),(70,'civicrm_financial_item',35,35,50.00),(71,'civicrm_contribution',36,36,50.00),(72,'civicrm_financial_item',36,36,50.00),(73,'civicrm_contribution',37,37,50.00),(74,'civicrm_financial_item',37,37,50.00),(75,'civicrm_contribution',38,38,50.00),(76,'civicrm_financial_item',38,38,50.00),(77,'civicrm_contribution',39,39,50.00),(78,'civicrm_financial_item',39,39,50.00),(79,'civicrm_contribution',40,40,50.00),(80,'civicrm_financial_item',40,40,50.00),(81,'civicrm_contribution',41,41,50.00),(82,'civicrm_financial_item',41,41,50.00),(83,'civicrm_contribution',42,42,1200.00),(84,'civicrm_financial_item',42,42,1200.00),(85,'civicrm_contribution',43,43,1200.00),(86,'civicrm_financial_item',43,43,1200.00),(87,'civicrm_contribution',62,44,50.00),(88,'civicrm_financial_item',44,44,50.00),(89,'civicrm_contribution',91,45,50.00),(90,'civicrm_financial_item',45,45,50.00),(91,'civicrm_contribution',58,46,50.00),(92,'civicrm_financial_item',46,46,50.00),(93,'civicrm_contribution',56,47,50.00),(94,'civicrm_financial_item',47,47,50.00),(95,'civicrm_contribution',59,48,50.00),(96,'civicrm_financial_item',48,48,50.00),(97,'civicrm_contribution',47,49,50.00),(98,'civicrm_financial_item',49,49,50.00),(99,'civicrm_contribution',73,50,50.00),(100,'civicrm_financial_item',50,50,50.00),(101,'civicrm_contribution',46,51,50.00),(102,'civicrm_financial_item',51,51,50.00),(103,'civicrm_contribution',78,52,50.00),(104,'civicrm_financial_item',52,52,50.00),(105,'civicrm_contribution',81,53,50.00),(106,'civicrm_financial_item',53,53,50.00),(107,'civicrm_contribution',52,54,50.00),(108,'civicrm_financial_item',54,54,50.00),(109,'civicrm_contribution',93,55,50.00),(110,'civicrm_financial_item',55,55,50.00),(111,'civicrm_contribution',85,56,50.00),(112,'civicrm_financial_item',56,56,50.00),(113,'civicrm_contribution',69,57,50.00),(114,'civicrm_financial_item',57,57,50.00),(115,'civicrm_contribution',74,58,50.00),(116,'civicrm_financial_item',58,58,50.00),(117,'civicrm_contribution',54,59,50.00),(118,'civicrm_financial_item',59,59,50.00),(119,'civicrm_contribution',94,60,800.00),(120,'civicrm_financial_item',60,60,800.00),(121,'civicrm_contribution',84,61,800.00),(122,'civicrm_financial_item',61,61,800.00),(123,'civicrm_contribution',86,62,800.00),(124,'civicrm_financial_item',62,62,800.00),(125,'civicrm_contribution',87,63,800.00),(126,'civicrm_financial_item',63,63,800.00),(127,'civicrm_contribution',51,64,800.00),(128,'civicrm_financial_item',64,64,800.00),(129,'civicrm_contribution',65,65,800.00),(130,'civicrm_financial_item',65,65,800.00),(131,'civicrm_contribution',68,66,800.00),(132,'civicrm_financial_item',66,66,800.00),(133,'civicrm_contribution',92,67,800.00),(134,'civicrm_financial_item',67,67,800.00),(135,'civicrm_contribution',89,68,800.00),(136,'civicrm_financial_item',68,68,800.00),(137,'civicrm_contribution',71,69,800.00),(138,'civicrm_financial_item',69,69,800.00),(139,'civicrm_contribution',48,70,800.00),(140,'civicrm_financial_item',70,70,800.00),(141,'civicrm_contribution',88,71,800.00),(142,'civicrm_financial_item',71,71,800.00),(143,'civicrm_contribution',66,72,800.00),(144,'civicrm_financial_item',72,72,800.00),(145,'civicrm_contribution',63,73,800.00),(146,'civicrm_financial_item',73,73,800.00),(147,'civicrm_contribution',60,74,800.00),(148,'civicrm_financial_item',74,74,800.00),(149,'civicrm_contribution',75,75,800.00),(150,'civicrm_financial_item',75,75,800.00),(151,'civicrm_contribution',55,76,800.00),(152,'civicrm_financial_item',76,76,800.00),(153,'civicrm_contribution',70,77,800.00),(154,'civicrm_financial_item',77,77,800.00),(155,'civicrm_contribution',72,78,50.00),(156,'civicrm_financial_item',78,78,50.00),(157,'civicrm_contribution',82,79,50.00),(158,'civicrm_financial_item',79,79,50.00),(159,'civicrm_contribution',80,80,50.00),(160,'civicrm_financial_item',80,80,50.00),(161,'civicrm_contribution',90,81,50.00),(162,'civicrm_financial_item',81,81,50.00),(163,'civicrm_contribution',77,82,50.00),(164,'civicrm_financial_item',82,82,50.00),(165,'civicrm_contribution',79,83,50.00),(166,'civicrm_financial_item',83,83,50.00),(167,'civicrm_contribution',67,84,50.00),(168,'civicrm_financial_item',84,84,50.00),(169,'civicrm_contribution',64,85,50.00),(170,'civicrm_financial_item',85,85,50.00),(171,'civicrm_contribution',61,86,50.00),(172,'civicrm_financial_item',86,86,50.00),(173,'civicrm_contribution',57,87,50.00),(174,'civicrm_financial_item',87,87,50.00),(175,'civicrm_contribution',50,88,50.00),(176,'civicrm_financial_item',88,88,50.00),(177,'civicrm_contribution',53,89,50.00),(178,'civicrm_financial_item',89,89,50.00),(179,'civicrm_contribution',76,90,50.00),(180,'civicrm_financial_item',90,90,50.00),(181,'civicrm_contribution',45,91,50.00),(182,'civicrm_financial_item',91,91,50.00),(183,'civicrm_contribution',83,92,50.00),(184,'civicrm_financial_item',92,92,50.00),(185,'civicrm_contribution',49,93,50.00),(186,'civicrm_financial_item',93,93,50.00);
+INSERT INTO `civicrm_entity_financial_trxn` (`id`, `entity_table`, `entity_id`, `financial_trxn_id`, `amount`) VALUES (1,'civicrm_contribution',1,1,125.00),(2,'civicrm_financial_item',1,1,125.00),(3,'civicrm_contribution',2,2,50.00),(4,'civicrm_financial_item',2,2,50.00),(5,'civicrm_contribution',3,3,25.00),(6,'civicrm_financial_item',3,3,25.00),(7,'civicrm_contribution',4,4,50.00),(8,'civicrm_financial_item',4,4,50.00),(9,'civicrm_contribution',5,5,500.00),(10,'civicrm_financial_item',5,5,500.00),(11,'civicrm_contribution',6,6,175.00),(12,'civicrm_financial_item',6,6,175.00),(13,'civicrm_contribution',7,7,50.00),(14,'civicrm_financial_item',7,7,50.00),(15,'civicrm_contribution',8,8,10.00),(16,'civicrm_financial_item',8,8,10.00),(17,'civicrm_contribution',9,9,250.00),(18,'civicrm_financial_item',9,9,250.00),(19,'civicrm_contribution',10,10,500.00),(20,'civicrm_financial_item',10,10,500.00),(21,'civicrm_contribution',11,11,200.00),(22,'civicrm_financial_item',11,11,200.00),(23,'civicrm_contribution',12,12,200.00),(24,'civicrm_financial_item',12,12,200.00),(25,'civicrm_contribution',13,13,200.00),(26,'civicrm_financial_item',13,13,200.00),(27,'civicrm_contribution',14,14,100.00),(28,'civicrm_financial_item',14,14,100.00),(29,'civicrm_contribution',15,15,100.00),(30,'civicrm_financial_item',15,15,100.00),(31,'civicrm_contribution',16,16,100.00),(32,'civicrm_financial_item',16,16,100.00),(33,'civicrm_contribution',17,17,100.00),(34,'civicrm_financial_item',17,17,100.00),(35,'civicrm_contribution',18,18,100.00),(36,'civicrm_financial_item',18,18,100.00),(37,'civicrm_contribution',19,19,100.00),(38,'civicrm_financial_item',19,19,100.00),(39,'civicrm_contribution',20,20,100.00),(40,'civicrm_financial_item',20,20,100.00),(41,'civicrm_contribution',21,21,100.00),(42,'civicrm_financial_item',21,21,100.00),(43,'civicrm_contribution',22,22,100.00),(44,'civicrm_financial_item',22,22,100.00),(45,'civicrm_contribution',23,23,100.00),(46,'civicrm_financial_item',23,23,100.00),(47,'civicrm_contribution',24,24,100.00),(48,'civicrm_financial_item',24,24,100.00),(49,'civicrm_contribution',25,25,100.00),(50,'civicrm_financial_item',25,25,100.00),(51,'civicrm_contribution',26,26,50.00),(52,'civicrm_financial_item',26,26,50.00),(53,'civicrm_contribution',27,27,50.00),(54,'civicrm_financial_item',27,27,50.00),(55,'civicrm_contribution',28,28,50.00),(56,'civicrm_financial_item',28,28,50.00),(57,'civicrm_contribution',29,29,50.00),(58,'civicrm_financial_item',29,29,50.00),(59,'civicrm_contribution',30,30,50.00),(60,'civicrm_financial_item',30,30,50.00),(61,'civicrm_contribution',31,31,50.00),(62,'civicrm_financial_item',31,31,50.00),(63,'civicrm_contribution',32,32,50.00),(64,'civicrm_financial_item',32,32,50.00),(65,'civicrm_contribution',33,33,50.00),(66,'civicrm_financial_item',33,33,50.00),(67,'civicrm_contribution',34,34,50.00),(68,'civicrm_financial_item',34,34,50.00),(69,'civicrm_contribution',35,35,50.00),(70,'civicrm_financial_item',35,35,50.00),(71,'civicrm_contribution',36,36,50.00),(72,'civicrm_financial_item',36,36,50.00),(73,'civicrm_contribution',37,37,50.00),(74,'civicrm_financial_item',37,37,50.00),(75,'civicrm_contribution',38,38,50.00),(76,'civicrm_financial_item',38,38,50.00),(77,'civicrm_contribution',39,39,50.00),(78,'civicrm_financial_item',39,39,50.00),(79,'civicrm_contribution',40,40,50.00),(80,'civicrm_financial_item',40,40,50.00),(81,'civicrm_contribution',41,41,50.00),(82,'civicrm_financial_item',41,41,50.00),(83,'civicrm_contribution',42,42,1200.00),(84,'civicrm_financial_item',42,42,1200.00),(85,'civicrm_contribution',43,43,1200.00),(86,'civicrm_financial_item',43,43,1200.00),(87,'civicrm_contribution',61,44,50.00),(88,'civicrm_financial_item',44,44,50.00),(89,'civicrm_contribution',91,45,50.00),(90,'civicrm_financial_item',45,45,50.00),(91,'civicrm_contribution',45,46,50.00),(92,'civicrm_financial_item',46,46,50.00),(93,'civicrm_contribution',78,47,50.00),(94,'civicrm_financial_item',47,47,50.00),(95,'civicrm_contribution',93,48,50.00),(96,'civicrm_financial_item',48,48,50.00),(97,'civicrm_contribution',88,49,50.00),(98,'civicrm_financial_item',49,49,50.00),(99,'civicrm_contribution',86,50,50.00),(100,'civicrm_financial_item',50,50,50.00),(101,'civicrm_contribution',63,51,50.00),(102,'civicrm_financial_item',51,51,50.00),(103,'civicrm_contribution',83,52,50.00),(104,'civicrm_financial_item',52,52,50.00),(105,'civicrm_contribution',51,53,50.00),(106,'civicrm_financial_item',53,53,50.00),(107,'civicrm_contribution',54,54,50.00),(108,'civicrm_financial_item',54,54,50.00),(109,'civicrm_contribution',48,55,50.00),(110,'civicrm_financial_item',55,55,50.00),(111,'civicrm_contribution',90,56,50.00),(112,'civicrm_financial_item',56,56,50.00),(113,'civicrm_contribution',64,57,50.00),(114,'civicrm_financial_item',57,57,50.00),(115,'civicrm_contribution',89,58,50.00),(116,'civicrm_financial_item',58,58,50.00),(117,'civicrm_contribution',70,59,50.00),(118,'civicrm_financial_item',59,59,50.00),(119,'civicrm_contribution',73,60,800.00),(120,'civicrm_financial_item',60,60,800.00),(121,'civicrm_contribution',49,61,800.00),(122,'civicrm_financial_item',61,61,800.00),(123,'civicrm_contribution',69,62,800.00),(124,'civicrm_financial_item',62,62,800.00),(125,'civicrm_contribution',87,63,800.00),(126,'civicrm_financial_item',63,63,800.00),(127,'civicrm_contribution',94,64,800.00),(128,'civicrm_financial_item',64,64,800.00),(129,'civicrm_contribution',71,65,800.00),(130,'civicrm_financial_item',65,65,800.00),(131,'civicrm_contribution',47,66,800.00),(132,'civicrm_financial_item',66,66,800.00),(133,'civicrm_contribution',92,67,800.00),(134,'civicrm_financial_item',67,67,800.00),(135,'civicrm_contribution',75,68,800.00),(136,'civicrm_financial_item',68,68,800.00),(137,'civicrm_contribution',60,69,800.00),(138,'civicrm_financial_item',69,69,800.00),(139,'civicrm_contribution',53,70,800.00),(140,'civicrm_financial_item',70,70,800.00),(141,'civicrm_contribution',68,71,800.00),(142,'civicrm_financial_item',71,71,800.00),(143,'civicrm_contribution',67,72,800.00),(144,'civicrm_financial_item',72,72,800.00),(145,'civicrm_contribution',85,73,800.00),(146,'civicrm_financial_item',73,73,800.00),(147,'civicrm_contribution',74,74,800.00),(148,'civicrm_financial_item',74,74,800.00),(149,'civicrm_contribution',62,75,800.00),(150,'civicrm_financial_item',75,75,800.00),(151,'civicrm_contribution',55,76,800.00),(152,'civicrm_financial_item',76,76,800.00),(153,'civicrm_contribution',84,77,800.00),(154,'civicrm_financial_item',77,77,800.00),(155,'civicrm_contribution',76,78,50.00),(156,'civicrm_financial_item',78,78,50.00),(157,'civicrm_contribution',65,79,50.00),(158,'civicrm_financial_item',79,79,50.00),(159,'civicrm_contribution',52,80,50.00),(160,'civicrm_financial_item',80,80,50.00),(161,'civicrm_contribution',50,81,50.00),(162,'civicrm_financial_item',81,81,50.00),(163,'civicrm_contribution',81,82,50.00),(164,'civicrm_financial_item',82,82,50.00),(165,'civicrm_contribution',72,83,50.00),(166,'civicrm_financial_item',83,83,50.00),(167,'civicrm_contribution',57,84,50.00),(168,'civicrm_financial_item',84,84,50.00),(169,'civicrm_contribution',46,85,50.00),(170,'civicrm_financial_item',85,85,50.00),(171,'civicrm_contribution',58,86,50.00),(172,'civicrm_financial_item',86,86,50.00),(173,'civicrm_contribution',56,87,50.00),(174,'civicrm_financial_item',87,87,50.00),(175,'civicrm_contribution',77,88,50.00),(176,'civicrm_financial_item',88,88,50.00),(177,'civicrm_contribution',80,89,50.00),(178,'civicrm_financial_item',89,89,50.00),(179,'civicrm_contribution',59,90,50.00),(180,'civicrm_financial_item',90,90,50.00),(181,'civicrm_contribution',66,91,50.00),(182,'civicrm_financial_item',91,91,50.00),(183,'civicrm_contribution',82,92,50.00),(184,'civicrm_financial_item',92,92,50.00),(185,'civicrm_contribution',79,93,50.00),(186,'civicrm_financial_item',93,93,50.00);
 /*!40000 ALTER TABLE `civicrm_entity_financial_trxn` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -457,7 +457,7 @@ UNLOCK TABLES;
 
 LOCK TABLES `civicrm_entity_tag` WRITE;
 /*!40000 ALTER TABLE `civicrm_entity_tag` DISABLE KEYS */;
-INSERT INTO `civicrm_entity_tag` (`id`, `entity_table`, `entity_id`, `tag_id`) VALUES (70,'civicrm_contact',2,4),(61,'civicrm_contact',3,4),(62,'civicrm_contact',3,5),(41,'civicrm_contact',4,5),(34,'civicrm_contact',8,5),(2,'civicrm_contact',10,1),(9,'civicrm_contact',11,2),(110,'civicrm_contact',12,4),(111,'civicrm_contact',12,5),(16,'civicrm_contact',13,4),(51,'civicrm_contact',19,4),(99,'civicrm_contact',24,4),(100,'civicrm_contact',24,5),(7,'civicrm_contact',27,2),(20,'civicrm_contact',28,5),(3,'civicrm_contact',29,3),(109,'civicrm_contact',31,5),(101,'civicrm_contact',32,5),(94,'civicrm_contact',35,4),(25,'civicrm_contact',37,4),(6,'civicrm_contact',38,2),(52,'civicrm_contact',39,4),(53,'civicrm_contact',39,5),(48,'civicrm_contact',40,4),(81,'civicrm_contact',41,4),(76,'civicrm_contact',43,4),(13,'civicrm_contact',49,4),(97,'civicrm_contact',52,4),(44,'civicrm_contact',53,4),(10,'civicrm_contact',56,3),(60,'civicrm_contact',61,5),(105,'civicrm_contact',63,4),(106,'civicrm_contact',63,5),(80,'civicrm_contact',65,5),(21,'civicrm_contact',66,4),(22,'civicrm_contact',66,5),(8,'civicrm_contact',69,2),(37,'civicrm_contact',70,4),(83,'civicrm_contact',71,5),(88,'civicrm_contact',73,4),(30,'civicrm_contact',74,4),(14,'civicrm_contact',75,4),(15,'civicrm_contact',75,5),(114,'civicrm_contact',77,4),(49,'civicrm_contact',78,4),(50,'civicrm_contact',78,5),(27,'civicrm_contact',80,4),(1,'civicrm_contact',83,2),(98,'civicrm_contact',85,4),(32,'civicrm_contact',87,4),(33,'civicrm_contact',87,5),(85,'civicrm_contact',93,4),(86,'civicrm_contact',93,5),(73,'civicrm_contact',95,4),(82,'civicrm_contact',101,4),(23,'civicrm_contact',102,4),(24,'civicrm_contact',102,5),(39,'civicrm_contact',103,5),(84,'civicrm_contact',104,5),(107,'civicrm_contact',106,4),(11,'civicrm_contact',107,5),(35,'civicrm_contact',111,4),(36,'civicrm_contact',111,5),(92,'civicrm_contact',114,4),(93,'civicrm_contact',114,5),(79,'civicrm_contact',115,4),(65,'civicrm_contact',119,5),(43,'civicrm_contact',122,5),(77,'civicrm_contact',125,4),(71,'civicrm_contact',129,4),(72,'civicrm_contact',129,5),(75,'civicrm_contact',131,5),(47,'civicrm_contact',133,5),(74,'civicrm_contact',134,5),(103,'civicrm_contact',135,4),(104,'civicrm_contact',135,5),(102,'civicrm_contact',139,4),(28,'civicrm_contact',144,4),(29,'civicrm_contact',144,5),(55,'civicrm_contact',145,5),(96,'civicrm_contact',146,5),(68,'civicrm_contact',147,4),(69,'civicrm_contact',147,5),(78,'civicrm_contact',152,5),(115,'civicrm_contact',154,5),(4,'civicrm_contact',155,2),(58,'civicrm_contact',156,4),(59,'civicrm_contact',156,5),(5,'civicrm_contact',161,3),(112,'civicrm_contact',165,4),(113,'civicrm_contact',165,5),(38,'civicrm_contact',169,4),(12,'civicrm_contact',172,5),(18,'civicrm_contact',174,4),(19,'civicrm_contact',174,5),(95,'civicrm_contact',175,4),(17,'civicrm_contact',176,5),(87,'civicrm_contact',179,4),(63,'civicrm_contact',180,4),(64,'civicrm_contact',180,5),(108,'civicrm_contact',182,5),(54,'civicrm_contact',184,5),(45,'civicrm_contact',186,4),(46,'civicrm_contact',186,5),(89,'civicrm_contact',188,4),(56,'civicrm_contact',189,4),(57,'civicrm_contact',189,5),(42,'civicrm_contact',191,4),(66,'civicrm_contact',192,4),(67,'civicrm_contact',192,5),(31,'civicrm_contact',194,5),(26,'civicrm_contact',196,4),(40,'civicrm_contact',197,4),(90,'civicrm_contact',201,4),(91,'civicrm_contact',201,5);
+INSERT INTO `civicrm_entity_tag` (`id`, `entity_table`, `entity_id`, `tag_id`) VALUES (72,'civicrm_contact',3,4),(73,'civicrm_contact',3,5),(3,'civicrm_contact',7,2),(22,'civicrm_contact',9,4),(23,'civicrm_contact',9,5),(28,'civicrm_contact',10,4),(109,'civicrm_contact',15,4),(110,'civicrm_contact',15,5),(37,'civicrm_contact',16,4),(111,'civicrm_contact',18,4),(112,'civicrm_contact',18,5),(79,'civicrm_contact',20,5),(8,'civicrm_contact',22,2),(63,'civicrm_contact',24,4),(64,'civicrm_contact',24,5),(59,'civicrm_contact',25,5),(57,'civicrm_contact',32,4),(98,'civicrm_contact',35,5),(31,'civicrm_contact',37,4),(105,'civicrm_contact',38,4),(116,'civicrm_contact',39,4),(117,'civicrm_contact',39,5),(29,'civicrm_contact',40,5),(83,'civicrm_contact',44,5),(1,'civicrm_contact',46,1),(104,'civicrm_contact',47,5),(33,'civicrm_contact',49,5),(106,'civicrm_contact',50,5),(48,'civicrm_contact',52,5),(52,'civicrm_contact',55,4),(74,'civicrm_contact',56,5),(60,'civicrm_contact',58,4),(96,'civicrm_contact',60,4),(97,'civicrm_contact',60,5),(68,'civicrm_contact',64,4),(50,'civicrm_contact',65,5),(80,'civicrm_contact',67,4),(51,'civicrm_contact',68,5),(9,'civicrm_contact',71,3),(26,'civicrm_contact',72,4),(27,'civicrm_contact',72,5),(35,'civicrm_contact',75,4),(36,'civicrm_contact',75,5),(67,'civicrm_contact',76,4),(58,'civicrm_contact',80,4),(89,'civicrm_contact',82,5),(101,'civicrm_contact',84,4),(102,'civicrm_contact',84,5),(84,'civicrm_contact',85,5),(103,'civicrm_contact',86,4),(99,'civicrm_contact',87,4),(100,'civicrm_contact',87,5),(91,'civicrm_contact',88,4),(69,'civicrm_contact',89,5),(61,'civicrm_contact',91,5),(86,'civicrm_contact',92,4),(75,'civicrm_contact',94,5),(11,'civicrm_contact',96,4),(12,'civicrm_contact',96,5),(18,'civicrm_contact',102,4),(19,'civicrm_contact',102,5),(20,'civicrm_contact',105,4),(21,'civicrm_contact',105,5),(16,'civicrm_contact',106,4),(90,'civicrm_contact',107,4),(43,'civicrm_contact',111,4),(44,'civicrm_contact',111,5),(62,'civicrm_contact',112,4),(4,'civicrm_contact',113,2),(87,'civicrm_contact',114,4),(88,'civicrm_contact',114,5),(24,'civicrm_contact',117,4),(25,'civicrm_contact',117,5),(2,'civicrm_contact',121,3),(42,'civicrm_contact',122,4),(92,'civicrm_contact',123,4),(93,'civicrm_contact',123,5),(95,'civicrm_contact',125,5),(81,'civicrm_contact',126,4),(82,'civicrm_contact',126,5),(17,'civicrm_contact',127,5),(45,'civicrm_contact',128,4),(34,'civicrm_contact',130,4),(49,'civicrm_contact',131,4),(85,'civicrm_contact',133,4),(113,'civicrm_contact',135,4),(114,'civicrm_contact',135,5),(115,'civicrm_contact',136,5),(70,'civicrm_contact',138,4),(71,'civicrm_contact',138,5),(5,'civicrm_contact',142,2),(30,'civicrm_contact',143,5),(40,'civicrm_contact',144,4),(41,'civicrm_contact',144,5),(65,'civicrm_contact',146,5),(54,'civicrm_contact',150,4),(55,'civicrm_contact',150,5),(53,'civicrm_contact',151,5),(76,'civicrm_contact',156,4),(77,'civicrm_contact',156,5),(10,'civicrm_contact',159,2),(38,'civicrm_contact',162,4),(39,'civicrm_contact',162,5),(32,'civicrm_contact',164,5),(15,'civicrm_contact',166,4),(107,'civicrm_contact',174,4),(108,'civicrm_contact',174,5),(47,'civicrm_contact',178,5),(46,'civicrm_contact',184,5),(78,'civicrm_contact',187,4),(13,'civicrm_contact',189,4),(14,'civicrm_contact',189,5),(7,'civicrm_contact',190,1),(6,'civicrm_contact',191,3),(56,'civicrm_contact',196,4),(94,'civicrm_contact',199,5),(66,'civicrm_contact',200,5);
 /*!40000 ALTER TABLE `civicrm_entity_tag` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -467,7 +467,7 @@ UNLOCK TABLES;
 
 LOCK TABLES `civicrm_event` WRITE;
 /*!40000 ALTER TABLE `civicrm_event` DISABLE KEYS */;
-INSERT INTO `civicrm_event` (`id`, `title`, `summary`, `description`, `event_type_id`, `participant_listing_id`, `is_public`, `start_date`, `end_date`, `is_online_registration`, `registration_link_text`, `registration_start_date`, `registration_end_date`, `max_participants`, `event_full_text`, `is_monetary`, `financial_type_id`, `payment_processor`, `is_map`, `is_active`, `fee_label`, `is_show_location`, `loc_block_id`, `default_role_id`, `intro_text`, `footer_text`, `confirm_title`, `confirm_text`, `confirm_footer_text`, `is_email_confirm`, `confirm_email_text`, `confirm_from_name`, `confirm_from_email`, `cc_confirm`, `bcc_confirm`, `default_fee_id`, `default_discount_fee_id`, `thankyou_title`, `thankyou_text`, `thankyou_footer_text`, `is_pay_later`, `pay_later_text`, `pay_later_receipt`, `is_partial_payment`, `initial_amount_label`, `initial_amount_help_text`, `min_initial_amount`, `is_multiple_registrations`, `max_additional_participants`, `allow_same_participant_emails`, `has_waitlist`, `requires_approval`, `expiration_time`, `allow_selfcancelxfer`, `selfcancelxfer_time`, `waitlist_text`, `approval_req_text`, `is_template`, `template_title`, `created_id`, `created_date`, `currency`, `campaign_id`, `is_share`, `is_confirm_enabled`, `parent_event_id`, `slot_label_id`, `dedupe_rule_group_id`, `is_billing_required`) VALUES (1,'Fall Fundraiser Dinner','Kick up your heels at our Fall Fundraiser Dinner/Dance at Glen Echo Park! Come by yourself or bring a partner, friend or the entire family!','This event benefits our teen programs. Admission includes a full 3 course meal and wine or soft drinks. Grab your dancing shoes, bring the kids and come join the party!',3,1,1,'2020-05-28 17:00:00','2020-05-30 17:00:00',1,'Register Now',NULL,NULL,100,'Sorry! The Fall Fundraiser Dinner is full. Please call Jane at 204 222-1000 ext 33 if you want to be added to the waiting list.',1,4,NULL,1,1,'Dinner Contribution',1,1,1,'Fill in the information below to join as at this wonderful dinner event.',NULL,'Confirm Your Registration Information','Review the information below carefully.',NULL,1,'Contact the Development Department if you need to make any changes to your registration.','Fundraising Dept.','development@example.org',NULL,NULL,NULL,NULL,'Thanks for Registering!','<p>Thank you for your support. Your contribution will help us build even better tools.</p><p>Please tell your friends and colleagues about this wonderful event.</p>','<p><a href=https://civicrm.org>Back to CiviCRM Home Page</a></p>',1,'I will send payment by check','Send a check payable to Our Organization within 3 business days to hold your reservation. Checks should be sent to: 100 Main St., Suite 3, San Francisco CA 94110',0,NULL,NULL,NULL,1,0,0,NULL,NULL,NULL,0,0,NULL,NULL,0,NULL,NULL,NULL,'USD',NULL,1,1,NULL,NULL,NULL,0),(2,'Summer Solstice Festival Day Concert','Festival Day is coming! Join us and help support your parks.','We will gather at noon, learn a song all together,  and then join in a joyous procession to the pavilion. We will be one of many groups performing at this wonderful concert which benefits our city parks.',5,1,1,'2019-11-27 12:00:00','2019-11-27 17:00:00',1,'Register Now',NULL,NULL,50,'We have all the singers we can handle. Come to the pavilion anyway and join in from the audience.',1,2,NULL,NULL,1,'Festival Fee',1,2,1,'Complete the form below and click Continue to register online for the festival. Or you can register by calling us at 204 222-1000 ext 22.','','Confirm Your Registration Information','','',1,'This email confirms your registration. If you have questions or need to change your registration - please do not hesitate to call us.','Event Dept.','events@example.org','',NULL,NULL,NULL,'Thanks for Your Joining In!','<p>Thank you for your support. Your participation will help build new parks.</p><p>Please tell your friends and colleagues about the concert.</p>','<p><a href=https://civicrm.org>Back to CiviCRM Home Page</a></p>',0,NULL,NULL,0,NULL,NULL,NULL,1,0,0,NULL,NULL,NULL,0,0,NULL,NULL,0,NULL,NULL,NULL,'USD',NULL,1,1,NULL,NULL,NULL,0),(3,'Rain-forest Cup Youth Soccer Tournament','Sign up your team to participate in this fun tournament which benefits several Rain-forest protection groups in the Amazon basin.','This is a FYSA Sanctioned Tournament, which is open to all USSF/FIFA affiliated organizations for boys and girls in age groups: U9-U10 (6v6), U11-U12 (8v8), and U13-U17 (Full Sided).',3,1,1,'2020-06-28 07:00:00','2020-07-01 17:00:00',1,'Register Now',NULL,NULL,500,'Sorry! All available team slots for this tournament have been filled. Contact Jill Futbol for information about the waiting list and next years event.',1,4,NULL,NULL,1,'Tournament Fees',1,3,1,'Complete the form below to register your team for this year\'s tournament.','<em>A Soccer Youth Event</em>','Review and Confirm Your Registration Information','','<em>A Soccer Youth Event</em>',1,'Contact our Tournament Director for eligibility details.','Tournament Director','tournament@example.org','',NULL,NULL,NULL,'Thanks for Your Support!','<p>Thank you for your support. Your participation will help save thousands of acres of rainforest.</p>','<p><a href=https://civicrm.org>Back to CiviCRM Home Page</a></p>',0,NULL,NULL,0,NULL,NULL,NULL,0,0,0,NULL,NULL,NULL,0,0,NULL,NULL,0,NULL,NULL,NULL,'USD',NULL,1,1,NULL,NULL,NULL,0),(4,NULL,NULL,NULL,4,1,1,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,0,1,NULL,1,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,0,NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,0,0,NULL,NULL,1,'Free Meeting without Online Registration',NULL,NULL,'USD',NULL,1,1,NULL,NULL,NULL,0),(5,NULL,NULL,NULL,4,1,1,NULL,NULL,1,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,0,1,NULL,1,NULL,1,NULL,NULL,'Confirm Your Registration Information',NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'Thanks for Registering!',NULL,NULL,0,NULL,NULL,0,NULL,NULL,NULL,1,0,1,NULL,NULL,NULL,0,0,NULL,NULL,1,'Free Meeting with Online Registration',NULL,NULL,'USD',NULL,1,1,NULL,NULL,NULL,0),(6,NULL,NULL,NULL,1,1,1,NULL,NULL,1,NULL,NULL,NULL,NULL,NULL,1,4,NULL,0,1,'Conference Fee',1,NULL,1,NULL,NULL,'Confirm Your Registration Information',NULL,NULL,1,NULL,'Event Template Dept.','event_templates@example.org',NULL,NULL,NULL,NULL,'Thanks for Registering!',NULL,NULL,0,NULL,NULL,0,NULL,NULL,NULL,1,0,1,NULL,NULL,NULL,0,0,NULL,NULL,1,'Paid Conference with Online Registration',NULL,NULL,'USD',NULL,1,1,NULL,NULL,NULL,0);
+INSERT INTO `civicrm_event` (`id`, `title`, `summary`, `description`, `event_type_id`, `participant_listing_id`, `is_public`, `start_date`, `end_date`, `is_online_registration`, `registration_link_text`, `registration_start_date`, `registration_end_date`, `max_participants`, `event_full_text`, `is_monetary`, `financial_type_id`, `payment_processor`, `is_map`, `is_active`, `fee_label`, `is_show_location`, `loc_block_id`, `default_role_id`, `intro_text`, `footer_text`, `confirm_title`, `confirm_text`, `confirm_footer_text`, `is_email_confirm`, `confirm_email_text`, `confirm_from_name`, `confirm_from_email`, `cc_confirm`, `bcc_confirm`, `default_fee_id`, `default_discount_fee_id`, `thankyou_title`, `thankyou_text`, `thankyou_footer_text`, `is_pay_later`, `pay_later_text`, `pay_later_receipt`, `is_partial_payment`, `initial_amount_label`, `initial_amount_help_text`, `min_initial_amount`, `is_multiple_registrations`, `max_additional_participants`, `allow_same_participant_emails`, `has_waitlist`, `requires_approval`, `expiration_time`, `allow_selfcancelxfer`, `selfcancelxfer_time`, `waitlist_text`, `approval_req_text`, `is_template`, `template_title`, `created_id`, `created_date`, `currency`, `campaign_id`, `is_share`, `is_confirm_enabled`, `parent_event_id`, `slot_label_id`, `dedupe_rule_group_id`, `is_billing_required`) VALUES (1,'Fall Fundraiser Dinner','Kick up your heels at our Fall Fundraiser Dinner/Dance at Glen Echo Park! Come by yourself or bring a partner, friend or the entire family!','This event benefits our teen programs. Admission includes a full 3 course meal and wine or soft drinks. Grab your dancing shoes, bring the kids and come join the party!',3,1,1,'2020-07-17 17:00:00','2020-07-19 17:00:00',1,'Register Now',NULL,NULL,100,'Sorry! The Fall Fundraiser Dinner is full. Please call Jane at 204 222-1000 ext 33 if you want to be added to the waiting list.',1,4,NULL,1,1,'Dinner Contribution',1,1,1,'Fill in the information below to join as at this wonderful dinner event.',NULL,'Confirm Your Registration Information','Review the information below carefully.',NULL,1,'Contact the Development Department if you need to make any changes to your registration.','Fundraising Dept.','development@example.org',NULL,NULL,NULL,NULL,'Thanks for Registering!','<p>Thank you for your support. Your contribution will help us build even better tools.</p><p>Please tell your friends and colleagues about this wonderful event.</p>','<p><a href=https://civicrm.org>Back to CiviCRM Home Page</a></p>',1,'I will send payment by check','Send a check payable to Our Organization within 3 business days to hold your reservation. Checks should be sent to: 100 Main St., Suite 3, San Francisco CA 94110',0,NULL,NULL,NULL,1,0,0,NULL,NULL,NULL,0,0,NULL,NULL,0,NULL,NULL,NULL,'USD',NULL,1,1,NULL,NULL,NULL,0),(2,'Summer Solstice Festival Day Concert','Festival Day is coming! Join us and help support your parks.','We will gather at noon, learn a song all together,  and then join in a joyous procession to the pavilion. We will be one of many groups performing at this wonderful concert which benefits our city parks.',5,1,1,'2020-01-16 12:00:00','2020-01-16 17:00:00',1,'Register Now',NULL,NULL,50,'We have all the singers we can handle. Come to the pavilion anyway and join in from the audience.',1,2,NULL,NULL,1,'Festival Fee',1,2,1,'Complete the form below and click Continue to register online for the festival. Or you can register by calling us at 204 222-1000 ext 22.','','Confirm Your Registration Information','','',1,'This email confirms your registration. If you have questions or need to change your registration - please do not hesitate to call us.','Event Dept.','events@example.org','',NULL,NULL,NULL,'Thanks for Your Joining In!','<p>Thank you for your support. Your participation will help build new parks.</p><p>Please tell your friends and colleagues about the concert.</p>','<p><a href=https://civicrm.org>Back to CiviCRM Home Page</a></p>',0,NULL,NULL,0,NULL,NULL,NULL,1,0,0,NULL,NULL,NULL,0,0,NULL,NULL,0,NULL,NULL,NULL,'USD',NULL,1,1,NULL,NULL,NULL,0),(3,'Rain-forest Cup Youth Soccer Tournament','Sign up your team to participate in this fun tournament which benefits several Rain-forest protection groups in the Amazon basin.','This is a FYSA Sanctioned Tournament, which is open to all USSF/FIFA affiliated organizations for boys and girls in age groups: U9-U10 (6v6), U11-U12 (8v8), and U13-U17 (Full Sided).',3,1,1,'2020-08-17 07:00:00','2020-08-20 17:00:00',1,'Register Now',NULL,NULL,500,'Sorry! All available team slots for this tournament have been filled. Contact Jill Futbol for information about the waiting list and next years event.',1,4,NULL,NULL,1,'Tournament Fees',1,3,1,'Complete the form below to register your team for this year\'s tournament.','<em>A Soccer Youth Event</em>','Review and Confirm Your Registration Information','','<em>A Soccer Youth Event</em>',1,'Contact our Tournament Director for eligibility details.','Tournament Director','tournament@example.org','',NULL,NULL,NULL,'Thanks for Your Support!','<p>Thank you for your support. Your participation will help save thousands of acres of rainforest.</p>','<p><a href=https://civicrm.org>Back to CiviCRM Home Page</a></p>',0,NULL,NULL,0,NULL,NULL,NULL,0,0,0,NULL,NULL,NULL,0,0,NULL,NULL,0,NULL,NULL,NULL,'USD',NULL,1,1,NULL,NULL,NULL,0),(4,NULL,NULL,NULL,4,1,1,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,0,1,NULL,1,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,0,NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,0,0,NULL,NULL,1,'Free Meeting without Online Registration',NULL,NULL,'USD',NULL,1,1,NULL,NULL,NULL,0),(5,NULL,NULL,NULL,4,1,1,NULL,NULL,1,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,0,1,NULL,1,NULL,1,NULL,NULL,'Confirm Your Registration Information',NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'Thanks for Registering!',NULL,NULL,0,NULL,NULL,0,NULL,NULL,NULL,1,0,1,NULL,NULL,NULL,0,0,NULL,NULL,1,'Free Meeting with Online Registration',NULL,NULL,'USD',NULL,1,1,NULL,NULL,NULL,0),(6,NULL,NULL,NULL,1,1,1,NULL,NULL,1,NULL,NULL,NULL,NULL,NULL,1,4,NULL,0,1,'Conference Fee',1,NULL,1,NULL,NULL,'Confirm Your Registration Information',NULL,NULL,1,NULL,'Event Template Dept.','event_templates@example.org',NULL,NULL,NULL,NULL,'Thanks for Registering!',NULL,NULL,0,NULL,NULL,0,NULL,NULL,NULL,1,0,1,NULL,NULL,NULL,0,0,NULL,NULL,1,'Paid Conference with Online Registration',NULL,NULL,'USD',NULL,1,1,NULL,NULL,NULL,0);
 /*!40000 ALTER TABLE `civicrm_event` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -523,7 +523,7 @@ UNLOCK TABLES;
 
 LOCK TABLES `civicrm_financial_item` WRITE;
 /*!40000 ALTER TABLE `civicrm_financial_item` DISABLE KEYS */;
-INSERT INTO `civicrm_financial_item` (`id`, `created_date`, `transaction_date`, `contact_id`, `description`, `amount`, `currency`, `financial_account_id`, `status_id`, `entity_table`, `entity_id`) VALUES (1,'2019-11-28 19:55:52','2010-04-11 00:00:00',2,'Contribution Amount',125.00,'USD',1,1,'civicrm_line_item',1),(2,'2019-11-28 19:55:52','2010-03-21 00:00:00',4,'Contribution Amount',50.00,'USD',1,1,'civicrm_line_item',2),(3,'2019-11-28 19:55:52','2010-04-29 00:00:00',6,'Contribution Amount',25.00,'USD',1,1,'civicrm_line_item',3),(4,'2019-11-28 19:55:52','2010-04-11 00:00:00',8,'Contribution Amount',50.00,'USD',1,1,'civicrm_line_item',4),(5,'2019-11-28 19:55:52','2010-04-15 00:00:00',16,'Contribution Amount',500.00,'USD',1,1,'civicrm_line_item',5),(6,'2019-11-28 19:55:52','2010-04-11 00:00:00',19,'Contribution Amount',175.00,'USD',1,1,'civicrm_line_item',6),(7,'2019-11-28 19:55:52','2010-03-27 00:00:00',82,'Contribution Amount',50.00,'USD',1,1,'civicrm_line_item',7),(8,'2019-11-28 19:55:52','2010-03-08 00:00:00',92,'Contribution Amount',10.00,'USD',1,1,'civicrm_line_item',8),(9,'2019-11-28 19:55:52','2010-04-22 00:00:00',34,'Contribution Amount',250.00,'USD',1,1,'civicrm_line_item',9),(10,'2019-11-28 19:55:52','2009-07-01 11:53:50',71,'Contribution Amount',500.00,'USD',1,1,'civicrm_line_item',10),(11,'2019-11-28 19:55:52','2009-07-01 12:55:41',43,'Contribution Amount',200.00,'USD',1,1,'civicrm_line_item',11),(12,'2019-11-28 19:55:52','2009-10-01 11:53:50',32,'Contribution Amount',200.00,'USD',1,1,'civicrm_line_item',12),(13,'2019-11-28 19:55:52','2009-12-01 12:55:41',32,'Contribution Amount',200.00,'USD',1,1,'civicrm_line_item',13),(14,'2019-11-28 19:55:52','2019-11-29 08:55:52',175,'General',100.00,'USD',2,1,'civicrm_line_item',16),(15,'2019-11-28 19:55:52','2019-11-29 08:55:52',80,'General',100.00,'USD',2,1,'civicrm_line_item',17),(16,'2019-11-28 19:55:52','2019-11-29 08:55:52',45,'General',100.00,'USD',2,1,'civicrm_line_item',18),(17,'2019-11-28 19:55:52','2019-11-29 08:55:52',52,'General',100.00,'USD',2,1,'civicrm_line_item',19),(18,'2019-11-28 19:55:52','2019-11-29 08:55:52',33,'General',100.00,'USD',2,1,'civicrm_line_item',20),(19,'2019-11-28 19:55:52','2019-11-29 08:55:52',58,'General',100.00,'USD',2,1,'civicrm_line_item',21),(20,'2019-11-28 19:55:52','2019-11-29 08:55:52',107,'General',100.00,'USD',2,1,'civicrm_line_item',22),(21,'2019-11-28 19:55:52','2019-11-29 08:55:52',95,'General',100.00,'USD',2,1,'civicrm_line_item',23),(22,'2019-11-28 19:55:52','2019-11-29 08:55:52',66,'General',100.00,'USD',2,1,'civicrm_line_item',24),(23,'2019-11-28 19:55:52','2019-11-29 08:55:52',166,'General',100.00,'USD',2,1,'civicrm_line_item',25),(24,'2019-11-28 19:55:52','2019-11-29 08:55:52',2,'General',100.00,'USD',2,1,'civicrm_line_item',26),(25,'2019-11-28 19:55:52','2019-11-29 08:55:52',134,'General',100.00,'USD',2,1,'civicrm_line_item',27),(26,'2019-11-28 19:55:52','2019-11-29 08:55:52',115,'General',100.00,'USD',2,1,'civicrm_line_item',28),(27,'2019-11-28 19:55:52','2019-11-29 08:55:52',139,'General',100.00,'USD',2,1,'civicrm_line_item',29),(28,'2019-11-28 19:55:52','2019-11-29 08:55:52',147,'General',100.00,'USD',2,1,'civicrm_line_item',30),(29,'2019-11-28 19:55:52','2019-11-29 08:55:52',145,'General',100.00,'USD',2,1,'civicrm_line_item',31),(30,'2019-11-28 19:55:52','2019-11-29 08:55:52',37,'Student',50.00,'USD',2,1,'civicrm_line_item',32),(31,'2019-11-28 19:55:52','2019-11-29 08:55:52',105,'Student',50.00,'USD',2,1,'civicrm_line_item',33),(32,'2019-11-28 19:55:52','2019-11-29 08:55:52',160,'Student',50.00,'USD',2,1,'civicrm_line_item',34),(33,'2019-11-28 19:55:52','2019-11-29 08:55:52',148,'Student',50.00,'USD',2,1,'civicrm_line_item',35),(34,'2019-11-28 19:55:52','2019-11-29 08:55:52',144,'Student',50.00,'USD',2,1,'civicrm_line_item',36),(35,'2019-11-28 19:55:52','2019-11-29 08:55:52',103,'Student',50.00,'USD',2,1,'civicrm_line_item',37),(36,'2019-11-28 19:55:52','2019-11-29 08:55:52',55,'Student',50.00,'USD',2,1,'civicrm_line_item',38),(37,'2019-11-28 19:55:52','2019-11-29 08:55:52',200,'Student',50.00,'USD',2,1,'civicrm_line_item',39),(38,'2019-11-28 19:55:52','2019-11-29 08:55:52',184,'Student',50.00,'USD',2,1,'civicrm_line_item',40),(39,'2019-11-28 19:55:52','2019-11-29 08:55:52',89,'Student',50.00,'USD',2,1,'civicrm_line_item',41),(40,'2019-11-28 19:55:52','2019-11-29 08:55:52',26,'Student',50.00,'USD',2,1,'civicrm_line_item',42),(41,'2019-11-28 19:55:52','2019-11-29 08:55:52',84,'Student',50.00,'USD',2,1,'civicrm_line_item',43),(42,'2019-11-28 19:55:52','2019-11-29 08:55:52',47,'Lifetime',1200.00,'USD',2,1,'civicrm_line_item',44),(43,'2019-11-28 19:55:52','2019-11-29 08:55:52',25,'Lifetime',1200.00,'USD',2,1,'civicrm_line_item',45),(44,'2019-11-28 19:55:52','2019-11-29 08:55:52',68,'Soprano',50.00,'USD',2,1,'civicrm_line_item',81),(45,'2019-11-28 19:55:52','2019-11-29 08:55:52',188,'Soprano',50.00,'USD',2,1,'civicrm_line_item',82),(46,'2019-11-28 19:55:52','2019-11-29 08:55:52',58,'Soprano',50.00,'USD',2,1,'civicrm_line_item',83),(47,'2019-11-28 19:55:52','2019-11-29 08:55:52',47,'Soprano',50.00,'USD',2,1,'civicrm_line_item',84),(48,'2019-11-28 19:55:52','2019-11-29 08:55:52',61,'Soprano',50.00,'USD',2,1,'civicrm_line_item',85),(49,'2019-11-28 19:55:52','2019-11-29 08:55:52',6,'Soprano',50.00,'USD',2,1,'civicrm_line_item',86),(50,'2019-11-28 19:55:52','2019-11-29 08:55:52',105,'Soprano',50.00,'USD',2,1,'civicrm_line_item',87),(51,'2019-11-28 19:55:52','2019-11-29 08:55:52',5,'Soprano',50.00,'USD',2,1,'civicrm_line_item',88),(52,'2019-11-28 19:55:52','2019-11-29 08:55:52',118,'Soprano',50.00,'USD',2,1,'civicrm_line_item',89),(53,'2019-11-28 19:55:52','2019-11-29 08:55:52',133,'Soprano',50.00,'USD',2,1,'civicrm_line_item',90),(54,'2019-11-28 19:55:52','2019-11-29 08:55:52',25,'Soprano',50.00,'USD',2,1,'civicrm_line_item',91),(55,'2019-11-28 19:55:52','2019-11-29 08:55:52',191,'Soprano',50.00,'USD',2,1,'civicrm_line_item',92),(56,'2019-11-28 19:55:52','2019-11-29 08:55:52',159,'Soprano',50.00,'USD',2,1,'civicrm_line_item',93),(57,'2019-11-28 19:55:52','2019-11-29 08:55:52',89,'Soprano',50.00,'USD',2,1,'civicrm_line_item',94),(58,'2019-11-28 19:55:52','2019-11-29 08:55:52',107,'Soprano',50.00,'USD',2,1,'civicrm_line_item',95),(59,'2019-11-28 19:55:52','2019-11-29 08:55:52',30,'Soprano',50.00,'USD',2,1,'civicrm_line_item',96),(60,'2019-11-28 19:55:52','2019-11-29 08:55:52',195,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',47),(61,'2019-11-28 19:55:52','2019-11-29 08:55:52',149,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',48),(62,'2019-11-28 19:55:52','2019-11-29 08:55:52',162,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',49),(63,'2019-11-28 19:55:52','2019-11-29 08:55:52',165,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',50),(64,'2019-11-28 19:55:52','2019-11-29 08:55:52',22,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',51),(65,'2019-11-28 19:55:52','2019-11-29 08:55:52',78,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',52),(66,'2019-11-28 19:55:52','2019-11-29 08:55:52',88,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',53),(67,'2019-11-28 19:55:52','2019-11-29 08:55:52',189,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',54),(68,'2019-11-28 19:55:52','2019-11-29 08:55:52',179,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',55),(69,'2019-11-28 19:55:52','2019-11-29 08:55:52',102,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',56),(70,'2019-11-28 19:55:52','2019-11-29 08:55:52',14,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',57),(71,'2019-11-28 19:55:52','2019-11-29 08:55:52',171,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',58),(72,'2019-11-28 19:55:52','2019-11-29 08:55:52',81,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',59),(73,'2019-11-28 19:55:52','2019-11-29 08:55:52',73,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',60),(74,'2019-11-28 19:55:52','2019-11-29 08:55:52',63,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',61),(75,'2019-11-28 19:55:52','2019-11-29 08:55:52',109,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',62),(76,'2019-11-28 19:55:52','2019-11-29 08:55:52',33,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',63),(77,'2019-11-28 19:55:52','2019-11-29 08:55:52',92,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',64),(78,'2019-11-28 19:55:52','2019-11-29 08:55:52',103,'Single',50.00,'USD',4,1,'civicrm_line_item',65),(79,'2019-11-28 19:55:52','2019-11-29 08:55:52',135,'Single',50.00,'USD',4,1,'civicrm_line_item',66),(80,'2019-11-28 19:55:52','2019-11-29 08:55:52',131,'Single',50.00,'USD',4,1,'civicrm_line_item',67),(81,'2019-11-28 19:55:52','2019-11-29 08:55:52',184,'Single',50.00,'USD',4,1,'civicrm_line_item',68),(82,'2019-11-28 19:55:52','2019-11-29 08:55:52',115,'Single',50.00,'USD',4,1,'civicrm_line_item',69),(83,'2019-11-28 19:55:52','2019-11-29 08:55:52',121,'Single',50.00,'USD',4,1,'civicrm_line_item',70),(84,'2019-11-28 19:55:52','2019-11-29 08:55:52',85,'Single',50.00,'USD',4,1,'civicrm_line_item',71),(85,'2019-11-28 19:55:52','2019-11-29 08:55:52',77,'Single',50.00,'USD',4,1,'civicrm_line_item',72),(86,'2019-11-28 19:55:52','2019-11-29 08:55:52',64,'Single',50.00,'USD',4,1,'civicrm_line_item',73),(87,'2019-11-28 19:55:52','2019-11-29 08:55:52',52,'Single',50.00,'USD',4,1,'civicrm_line_item',74),(88,'2019-11-28 19:55:52','2019-11-29 08:55:52',18,'Single',50.00,'USD',4,1,'civicrm_line_item',75),(89,'2019-11-28 19:55:52','2019-11-29 08:55:52',27,'Single',50.00,'USD',4,1,'civicrm_line_item',76),(90,'2019-11-28 19:55:52','2019-11-29 08:55:52',113,'Single',50.00,'USD',4,1,'civicrm_line_item',77),(91,'2019-11-28 19:55:52','2019-11-29 08:55:52',2,'Single',50.00,'USD',4,1,'civicrm_line_item',78),(92,'2019-11-28 19:55:52','2019-11-29 08:55:52',142,'Single',50.00,'USD',4,1,'civicrm_line_item',79),(93,'2019-11-28 19:55:52','2019-11-29 08:55:52',16,'Single',50.00,'USD',4,1,'civicrm_line_item',80);
+INSERT INTO `civicrm_financial_item` (`id`, `created_date`, `transaction_date`, `contact_id`, `description`, `amount`, `currency`, `financial_account_id`, `status_id`, `entity_table`, `entity_id`) VALUES (1,'2020-01-16 22:53:52','2010-04-11 00:00:00',2,'Contribution Amount',125.00,'USD',1,1,'civicrm_line_item',1),(2,'2020-01-16 22:53:52','2010-03-21 00:00:00',4,'Contribution Amount',50.00,'USD',1,1,'civicrm_line_item',2),(3,'2020-01-16 22:53:52','2010-04-29 00:00:00',6,'Contribution Amount',25.00,'USD',1,1,'civicrm_line_item',3),(4,'2020-01-16 22:53:52','2010-04-11 00:00:00',8,'Contribution Amount',50.00,'USD',1,1,'civicrm_line_item',4),(5,'2020-01-16 22:53:52','2010-04-15 00:00:00',16,'Contribution Amount',500.00,'USD',1,1,'civicrm_line_item',5),(6,'2020-01-16 22:53:52','2010-04-11 00:00:00',19,'Contribution Amount',175.00,'USD',1,1,'civicrm_line_item',6),(7,'2020-01-16 22:53:52','2010-03-27 00:00:00',82,'Contribution Amount',50.00,'USD',1,1,'civicrm_line_item',7),(8,'2020-01-16 22:53:52','2010-03-08 00:00:00',92,'Contribution Amount',10.00,'USD',1,1,'civicrm_line_item',8),(9,'2020-01-16 22:53:52','2010-04-22 00:00:00',34,'Contribution Amount',250.00,'USD',1,1,'civicrm_line_item',9),(10,'2020-01-16 22:53:52','2009-07-01 11:53:50',71,'Contribution Amount',500.00,'USD',1,1,'civicrm_line_item',10),(11,'2020-01-16 22:53:52','2009-07-01 12:55:41',43,'Contribution Amount',200.00,'USD',1,1,'civicrm_line_item',11),(12,'2020-01-16 22:53:52','2009-10-01 11:53:50',32,'Contribution Amount',200.00,'USD',1,1,'civicrm_line_item',12),(13,'2020-01-16 22:53:52','2009-12-01 12:55:41',32,'Contribution Amount',200.00,'USD',1,1,'civicrm_line_item',13),(14,'2020-01-16 22:53:52','2020-01-17 09:53:51',89,'General',100.00,'USD',2,1,'civicrm_line_item',16),(15,'2020-01-16 22:53:52','2020-01-17 09:53:51',82,'General',100.00,'USD',2,1,'civicrm_line_item',17),(16,'2020-01-16 22:53:52','2020-01-17 09:53:51',14,'General',100.00,'USD',2,1,'civicrm_line_item',18),(17,'2020-01-16 22:53:52','2020-01-17 09:53:51',183,'General',100.00,'USD',2,1,'civicrm_line_item',19),(18,'2020-01-16 22:53:52','2020-01-17 09:53:51',133,'General',100.00,'USD',2,1,'civicrm_line_item',20),(19,'2020-01-16 22:53:52','2020-01-17 09:53:51',20,'General',100.00,'USD',2,1,'civicrm_line_item',21),(20,'2020-01-16 22:53:52','2020-01-17 09:53:51',132,'General',100.00,'USD',2,1,'civicrm_line_item',22),(21,'2020-01-16 22:53:52','2020-01-17 09:53:51',77,'General',100.00,'USD',2,1,'civicrm_line_item',23),(22,'2020-01-16 22:53:52','2020-01-17 09:53:51',138,'General',100.00,'USD',2,1,'civicrm_line_item',24),(23,'2020-01-16 22:53:52','2020-01-17 09:53:51',164,'General',100.00,'USD',2,1,'civicrm_line_item',25),(24,'2020-01-16 22:53:52','2020-01-17 09:53:51',34,'General',100.00,'USD',2,1,'civicrm_line_item',26),(25,'2020-01-16 22:53:52','2020-01-17 09:53:51',128,'General',100.00,'USD',2,1,'civicrm_line_item',27),(26,'2020-01-16 22:53:52','2020-01-17 09:53:51',50,'Student',50.00,'USD',2,1,'civicrm_line_item',28),(27,'2020-01-16 22:53:52','2020-01-17 09:53:51',85,'Student',50.00,'USD',2,1,'civicrm_line_item',29),(28,'2020-01-16 22:53:52','2020-01-17 09:53:51',94,'Student',50.00,'USD',2,1,'civicrm_line_item',30),(29,'2020-01-16 22:53:52','2020-01-17 09:53:51',30,'Student',50.00,'USD',2,1,'civicrm_line_item',31),(30,'2020-01-16 22:53:52','2020-01-17 09:53:51',51,'Student',50.00,'USD',2,1,'civicrm_line_item',32),(31,'2020-01-16 22:53:52','2020-01-17 09:53:51',103,'Student',50.00,'USD',2,1,'civicrm_line_item',33),(32,'2020-01-16 22:53:52','2020-01-17 09:53:51',181,'Student',50.00,'USD',2,1,'civicrm_line_item',34),(33,'2020-01-16 22:53:52','2020-01-17 09:53:51',40,'Student',50.00,'USD',2,1,'civicrm_line_item',35),(34,'2020-01-16 22:53:52','2020-01-17 09:53:51',105,'Student',50.00,'USD',2,1,'civicrm_line_item',36),(35,'2020-01-16 22:53:52','2020-01-17 09:53:51',42,'Student',50.00,'USD',2,1,'civicrm_line_item',37),(36,'2020-01-16 22:53:52','2020-01-17 09:53:51',5,'Student',50.00,'USD',2,1,'civicrm_line_item',38),(37,'2020-01-16 22:53:52','2020-01-17 09:53:51',120,'Student',50.00,'USD',2,1,'civicrm_line_item',39),(38,'2020-01-16 22:53:52','2020-01-17 09:53:51',184,'Student',50.00,'USD',2,1,'civicrm_line_item',40),(39,'2020-01-16 22:53:52','2020-01-17 09:53:51',29,'Student',50.00,'USD',2,1,'civicrm_line_item',41),(40,'2020-01-16 22:53:52','2020-01-17 09:53:51',197,'Student',50.00,'USD',2,1,'civicrm_line_item',42),(41,'2020-01-16 22:53:52','2020-01-17 09:53:51',64,'Student',50.00,'USD',2,1,'civicrm_line_item',43),(42,'2020-01-16 22:53:52','2020-01-17 09:53:51',165,'Lifetime',1200.00,'USD',2,1,'civicrm_line_item',44),(43,'2020-01-16 22:53:52','2020-01-17 09:53:51',122,'Lifetime',1200.00,'USD',2,1,'civicrm_line_item',45),(44,'2020-01-16 22:53:52','2020-01-17 09:53:52',85,'Soprano',50.00,'USD',2,1,'civicrm_line_item',81),(45,'2020-01-16 22:53:52','2020-01-17 09:53:52',188,'Soprano',50.00,'USD',2,1,'civicrm_line_item',82),(46,'2020-01-16 22:53:52','2020-01-17 09:53:52',1,'Soprano',50.00,'USD',2,1,'civicrm_line_item',83),(47,'2020-01-16 22:53:52','2020-01-17 09:53:52',143,'Soprano',50.00,'USD',2,1,'civicrm_line_item',84),(48,'2020-01-16 22:53:52','2020-01-17 09:53:52',194,'Soprano',50.00,'USD',2,1,'civicrm_line_item',85),(49,'2020-01-16 22:53:52','2020-01-17 09:53:52',171,'Soprano',50.00,'USD',2,1,'civicrm_line_item',86),(50,'2020-01-16 22:53:52','2020-01-17 09:53:52',166,'Soprano',50.00,'USD',2,1,'civicrm_line_item',87),(51,'2020-01-16 22:53:52','2020-01-17 09:53:52',89,'Soprano',50.00,'USD',2,1,'civicrm_line_item',88),(52,'2020-01-16 22:53:52','2020-01-17 09:53:52',159,'Soprano',50.00,'USD',2,1,'civicrm_line_item',89),(53,'2020-01-16 22:53:52','2020-01-17 09:53:52',35,'Soprano',50.00,'USD',2,1,'civicrm_line_item',90),(54,'2020-01-16 22:53:52','2020-01-17 09:53:52',45,'Soprano',50.00,'USD',2,1,'civicrm_line_item',91),(55,'2020-01-16 22:53:52','2020-01-17 09:53:52',25,'Soprano',50.00,'USD',2,1,'civicrm_line_item',92),(56,'2020-01-16 22:53:52','2020-01-17 09:53:52',187,'Soprano',50.00,'USD',2,1,'civicrm_line_item',93),(57,'2020-01-16 22:53:52','2020-01-17 09:53:52',90,'Soprano',50.00,'USD',2,1,'civicrm_line_item',94),(58,'2020-01-16 22:53:52','2020-01-17 09:53:52',176,'Soprano',50.00,'USD',2,1,'civicrm_line_item',95),(59,'2020-01-16 22:53:52','2020-01-17 09:53:52',110,'Soprano',50.00,'USD',2,1,'civicrm_line_item',96),(60,'2020-01-16 22:53:52','2020-01-17 09:53:52',124,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',47),(61,'2020-01-16 22:53:52','2020-01-17 09:53:52',26,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',48),(62,'2020-01-16 22:53:52','2020-01-17 09:53:52',106,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',49),(63,'2020-01-16 22:53:52','2020-01-17 09:53:52',167,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',50),(64,'2020-01-16 22:53:52','2020-01-17 09:53:52',196,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',51),(65,'2020-01-16 22:53:52','2020-01-17 09:53:52',115,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',52),(66,'2020-01-16 22:53:52','2020-01-17 09:53:52',16,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',53),(67,'2020-01-16 22:53:52','2020-01-17 09:53:52',191,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',54),(68,'2020-01-16 22:53:52','2020-01-17 09:53:52',136,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',55),(69,'2020-01-16 22:53:52','2020-01-17 09:53:52',81,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',56),(70,'2020-01-16 22:53:52','2020-01-17 09:53:52',42,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',57),(71,'2020-01-16 22:53:52','2020-01-17 09:53:52',105,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',58),(72,'2020-01-16 22:53:52','2020-01-17 09:53:52',103,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',59),(73,'2020-01-16 22:53:52','2020-01-17 09:53:52',163,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',60),(74,'2020-01-16 22:53:52','2020-01-17 09:53:52',128,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',61),(75,'2020-01-16 22:53:52','2020-01-17 09:53:52',86,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',62),(76,'2020-01-16 22:53:52','2020-01-17 09:53:52',46,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',63),(77,'2020-01-16 22:53:52','2020-01-17 09:53:52',160,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',64),(78,'2020-01-16 22:53:52','2020-01-17 09:53:52',138,'Single',50.00,'USD',4,1,'civicrm_line_item',65),(79,'2020-01-16 22:53:52','2020-01-17 09:53:52',100,'Single',50.00,'USD',4,1,'civicrm_line_item',66),(80,'2020-01-16 22:53:52','2020-01-17 09:53:52',39,'Single',50.00,'USD',4,1,'civicrm_line_item',67),(81,'2020-01-16 22:53:52','2020-01-17 09:53:52',30,'Single',50.00,'USD',4,1,'civicrm_line_item',68),(82,'2020-01-16 22:53:52','2020-01-17 09:53:52',150,'Single',50.00,'USD',4,1,'civicrm_line_item',69),(83,'2020-01-16 22:53:52','2020-01-17 09:53:52',120,'Single',50.00,'USD',4,1,'civicrm_line_item',70),(84,'2020-01-16 22:53:52','2020-01-17 09:53:52',55,'Single',50.00,'USD',4,1,'civicrm_line_item',71),(85,'2020-01-16 22:53:52','2020-01-17 09:53:52',6,'Single',50.00,'USD',4,1,'civicrm_line_item',72),(86,'2020-01-16 22:53:52','2020-01-17 09:53:52',62,'Single',50.00,'USD',4,1,'civicrm_line_item',73),(87,'2020-01-16 22:53:52','2020-01-17 09:53:52',52,'Single',50.00,'USD',4,1,'civicrm_line_item',74),(88,'2020-01-16 22:53:52','2020-01-17 09:53:52',140,'Single',50.00,'USD',4,1,'civicrm_line_item',75),(89,'2020-01-16 22:53:52','2020-01-17 09:53:52',149,'Single',50.00,'USD',4,1,'civicrm_line_item',76),(90,'2020-01-16 22:53:52','2020-01-17 09:53:52',79,'Single',50.00,'USD',4,1,'civicrm_line_item',77),(91,'2020-01-16 22:53:52','2020-01-17 09:53:52',102,'Single',50.00,'USD',4,1,'civicrm_line_item',78),(92,'2020-01-16 22:53:52','2020-01-17 09:53:52',157,'Single',50.00,'USD',4,1,'civicrm_line_item',79),(93,'2020-01-16 22:53:52','2020-01-17 09:53:52',144,'Single',50.00,'USD',4,1,'civicrm_line_item',80);
 /*!40000 ALTER TABLE `civicrm_financial_item` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -533,7 +533,7 @@ UNLOCK TABLES;
 
 LOCK TABLES `civicrm_financial_trxn` WRITE;
 /*!40000 ALTER TABLE `civicrm_financial_trxn` DISABLE KEYS */;
-INSERT INTO `civicrm_financial_trxn` (`id`, `from_financial_account_id`, `to_financial_account_id`, `trxn_date`, `total_amount`, `fee_amount`, `net_amount`, `currency`, `is_payment`, `trxn_id`, `trxn_result_code`, `status_id`, `payment_processor_id`, `payment_instrument_id`, `card_type_id`, `check_number`, `pan_truncation`, `order_reference`) VALUES (1,NULL,1,'2010-04-11 00:00:00',125.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,4,NULL,'1041',NULL,NULL),(2,NULL,1,'2010-03-21 00:00:00',50.00,NULL,NULL,'USD',1,'P20901X1',NULL,1,NULL,1,NULL,NULL,NULL,NULL),(3,NULL,1,'2010-04-29 00:00:00',25.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,4,NULL,'2095',NULL,NULL),(4,NULL,1,'2010-04-11 00:00:00',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,4,NULL,'10552',NULL,NULL),(5,NULL,1,'2010-04-15 00:00:00',500.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,4,NULL,'509',NULL,NULL),(6,NULL,1,'2010-04-11 00:00:00',175.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,4,NULL,'102',NULL,NULL),(7,NULL,1,'2010-03-27 00:00:00',50.00,NULL,NULL,'USD',1,'P20193L2',NULL,1,NULL,1,NULL,NULL,NULL,NULL),(8,NULL,1,'2010-03-08 00:00:00',10.00,NULL,NULL,'USD',1,'P40232Y3',NULL,1,NULL,1,NULL,NULL,NULL,NULL),(9,NULL,1,'2010-04-22 00:00:00',250.00,NULL,NULL,'USD',1,'P20193L6',NULL,1,NULL,1,NULL,NULL,NULL,NULL),(10,NULL,1,'2009-07-01 11:53:50',500.00,NULL,NULL,'USD',1,'PL71',NULL,1,NULL,1,NULL,NULL,NULL,NULL),(11,NULL,1,'2009-07-01 12:55:41',200.00,NULL,NULL,'USD',1,'PL43II',NULL,1,NULL,1,NULL,NULL,NULL,NULL),(12,NULL,1,'2009-10-01 11:53:50',200.00,NULL,NULL,'USD',1,'PL32I',NULL,1,NULL,1,NULL,NULL,NULL,NULL),(13,NULL,1,'2009-12-01 12:55:41',200.00,NULL,NULL,'USD',1,'PL32II',NULL,1,NULL,1,NULL,NULL,NULL,NULL),(14,NULL,1,'2019-11-29 08:55:52',100.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(15,NULL,1,'2019-11-29 08:55:52',100.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(16,NULL,1,'2019-11-29 08:55:52',100.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(17,NULL,1,'2019-11-29 08:55:52',100.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(18,NULL,1,'2019-11-29 08:55:52',100.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(19,NULL,1,'2019-11-29 08:55:52',100.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(20,NULL,1,'2019-11-29 08:55:52',100.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(21,NULL,1,'2019-11-29 08:55:52',100.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(22,NULL,1,'2019-11-29 08:55:52',100.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(23,NULL,1,'2019-11-29 08:55:52',100.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(24,NULL,1,'2019-11-29 08:55:52',100.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(25,NULL,1,'2019-11-29 08:55:52',100.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(26,NULL,1,'2019-11-29 08:55:52',100.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(27,NULL,1,'2019-11-29 08:55:52',100.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(28,NULL,1,'2019-11-29 08:55:52',100.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(29,NULL,1,'2019-11-29 08:55:52',100.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(30,NULL,1,'2019-11-29 08:55:52',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(31,NULL,1,'2019-11-29 08:55:52',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(32,NULL,1,'2019-11-29 08:55:52',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(33,NULL,1,'2019-11-29 08:55:52',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(34,NULL,1,'2019-11-29 08:55:52',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(35,NULL,1,'2019-11-29 08:55:52',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(36,NULL,1,'2019-11-29 08:55:52',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(37,NULL,1,'2019-11-29 08:55:52',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(38,NULL,1,'2019-11-29 08:55:52',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(39,NULL,1,'2019-11-29 08:55:52',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(40,NULL,1,'2019-11-29 08:55:52',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(41,NULL,1,'2019-11-29 08:55:52',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(42,NULL,1,'2019-11-29 08:55:52',1200.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(43,NULL,1,'2019-11-29 08:55:52',1200.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(44,NULL,1,'2019-11-29 08:55:52',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(45,NULL,1,'2019-11-29 08:55:52',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(46,NULL,1,'2019-11-29 08:55:52',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(47,NULL,1,'2019-11-29 08:55:52',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(48,NULL,1,'2019-11-29 08:55:52',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(49,NULL,1,'2019-11-29 08:55:52',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(50,NULL,1,'2019-11-29 08:55:52',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(51,NULL,1,'2019-11-29 08:55:52',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(52,NULL,1,'2019-11-29 08:55:52',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(53,NULL,1,'2019-11-29 08:55:52',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(54,NULL,1,'2019-11-29 08:55:52',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(55,NULL,1,'2019-11-29 08:55:52',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(56,NULL,1,'2019-11-29 08:55:52',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(57,NULL,1,'2019-11-29 08:55:52',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(58,NULL,1,'2019-11-29 08:55:52',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(59,NULL,1,'2019-11-29 08:55:52',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(60,NULL,1,'2019-11-29 08:55:52',800.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(61,NULL,1,'2019-11-29 08:55:52',800.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(62,NULL,1,'2019-11-29 08:55:52',800.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(63,NULL,1,'2019-11-29 08:55:52',800.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(64,NULL,1,'2019-11-29 08:55:52',800.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(65,NULL,1,'2019-11-29 08:55:52',800.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(66,NULL,1,'2019-11-29 08:55:52',800.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(67,NULL,1,'2019-11-29 08:55:52',800.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(68,NULL,1,'2019-11-29 08:55:52',800.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(69,NULL,1,'2019-11-29 08:55:52',800.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(70,NULL,1,'2019-11-29 08:55:52',800.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(71,NULL,1,'2019-11-29 08:55:52',800.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(72,NULL,1,'2019-11-29 08:55:52',800.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(73,NULL,1,'2019-11-29 08:55:52',800.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(74,NULL,1,'2019-11-29 08:55:52',800.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(75,NULL,1,'2019-11-29 08:55:52',800.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(76,NULL,1,'2019-11-29 08:55:52',800.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(77,NULL,1,'2019-11-29 08:55:52',800.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(78,NULL,1,'2019-11-29 08:55:52',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(79,NULL,1,'2019-11-29 08:55:52',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(80,NULL,1,'2019-11-29 08:55:52',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(81,NULL,1,'2019-11-29 08:55:52',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(82,NULL,1,'2019-11-29 08:55:52',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(83,NULL,1,'2019-11-29 08:55:52',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(84,NULL,1,'2019-11-29 08:55:52',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(85,NULL,1,'2019-11-29 08:55:52',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(86,NULL,1,'2019-11-29 08:55:52',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(87,NULL,1,'2019-11-29 08:55:52',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(88,NULL,1,'2019-11-29 08:55:52',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(89,NULL,1,'2019-11-29 08:55:52',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(90,NULL,1,'2019-11-29 08:55:52',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(91,NULL,1,'2019-11-29 08:55:52',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(92,NULL,1,'2019-11-29 08:55:52',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(93,NULL,1,'2019-11-29 08:55:52',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL);
+INSERT INTO `civicrm_financial_trxn` (`id`, `from_financial_account_id`, `to_financial_account_id`, `trxn_date`, `total_amount`, `fee_amount`, `net_amount`, `currency`, `is_payment`, `trxn_id`, `trxn_result_code`, `status_id`, `payment_processor_id`, `payment_instrument_id`, `card_type_id`, `check_number`, `pan_truncation`, `order_reference`) VALUES (1,NULL,1,'2010-04-11 00:00:00',125.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,4,NULL,'1041',NULL,NULL),(2,NULL,1,'2010-03-21 00:00:00',50.00,NULL,NULL,'USD',1,'P20901X1',NULL,1,NULL,1,NULL,NULL,NULL,NULL),(3,NULL,1,'2010-04-29 00:00:00',25.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,4,NULL,'2095',NULL,NULL),(4,NULL,1,'2010-04-11 00:00:00',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,4,NULL,'10552',NULL,NULL),(5,NULL,1,'2010-04-15 00:00:00',500.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,4,NULL,'509',NULL,NULL),(6,NULL,1,'2010-04-11 00:00:00',175.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,4,NULL,'102',NULL,NULL),(7,NULL,1,'2010-03-27 00:00:00',50.00,NULL,NULL,'USD',1,'P20193L2',NULL,1,NULL,1,NULL,NULL,NULL,NULL),(8,NULL,1,'2010-03-08 00:00:00',10.00,NULL,NULL,'USD',1,'P40232Y3',NULL,1,NULL,1,NULL,NULL,NULL,NULL),(9,NULL,1,'2010-04-22 00:00:00',250.00,NULL,NULL,'USD',1,'P20193L6',NULL,1,NULL,1,NULL,NULL,NULL,NULL),(10,NULL,1,'2009-07-01 11:53:50',500.00,NULL,NULL,'USD',1,'PL71',NULL,1,NULL,1,NULL,NULL,NULL,NULL),(11,NULL,1,'2009-07-01 12:55:41',200.00,NULL,NULL,'USD',1,'PL43II',NULL,1,NULL,1,NULL,NULL,NULL,NULL),(12,NULL,1,'2009-10-01 11:53:50',200.00,NULL,NULL,'USD',1,'PL32I',NULL,1,NULL,1,NULL,NULL,NULL,NULL),(13,NULL,1,'2009-12-01 12:55:41',200.00,NULL,NULL,'USD',1,'PL32II',NULL,1,NULL,1,NULL,NULL,NULL,NULL),(14,NULL,1,'2020-01-17 09:53:51',100.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(15,NULL,1,'2020-01-17 09:53:51',100.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(16,NULL,1,'2020-01-17 09:53:51',100.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(17,NULL,1,'2020-01-17 09:53:51',100.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(18,NULL,1,'2020-01-17 09:53:51',100.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(19,NULL,1,'2020-01-17 09:53:51',100.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(20,NULL,1,'2020-01-17 09:53:51',100.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(21,NULL,1,'2020-01-17 09:53:51',100.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(22,NULL,1,'2020-01-17 09:53:51',100.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(23,NULL,1,'2020-01-17 09:53:51',100.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(24,NULL,1,'2020-01-17 09:53:51',100.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(25,NULL,1,'2020-01-17 09:53:51',100.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(26,NULL,1,'2020-01-17 09:53:51',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(27,NULL,1,'2020-01-17 09:53:51',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(28,NULL,1,'2020-01-17 09:53:51',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(29,NULL,1,'2020-01-17 09:53:51',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(30,NULL,1,'2020-01-17 09:53:51',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(31,NULL,1,'2020-01-17 09:53:51',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(32,NULL,1,'2020-01-17 09:53:51',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(33,NULL,1,'2020-01-17 09:53:51',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(34,NULL,1,'2020-01-17 09:53:51',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(35,NULL,1,'2020-01-17 09:53:51',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(36,NULL,1,'2020-01-17 09:53:51',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(37,NULL,1,'2020-01-17 09:53:51',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(38,NULL,1,'2020-01-17 09:53:51',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(39,NULL,1,'2020-01-17 09:53:51',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(40,NULL,1,'2020-01-17 09:53:51',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(41,NULL,1,'2020-01-17 09:53:51',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(42,NULL,1,'2020-01-17 09:53:51',1200.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(43,NULL,1,'2020-01-17 09:53:51',1200.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(44,NULL,1,'2020-01-17 09:53:52',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(45,NULL,1,'2020-01-17 09:53:52',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(46,NULL,1,'2020-01-17 09:53:52',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(47,NULL,1,'2020-01-17 09:53:52',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(48,NULL,1,'2020-01-17 09:53:52',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(49,NULL,1,'2020-01-17 09:53:52',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(50,NULL,1,'2020-01-17 09:53:52',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(51,NULL,1,'2020-01-17 09:53:52',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(52,NULL,1,'2020-01-17 09:53:52',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(53,NULL,1,'2020-01-17 09:53:52',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(54,NULL,1,'2020-01-17 09:53:52',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(55,NULL,1,'2020-01-17 09:53:52',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(56,NULL,1,'2020-01-17 09:53:52',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(57,NULL,1,'2020-01-17 09:53:52',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(58,NULL,1,'2020-01-17 09:53:52',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(59,NULL,1,'2020-01-17 09:53:52',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(60,NULL,1,'2020-01-17 09:53:52',800.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(61,NULL,1,'2020-01-17 09:53:52',800.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(62,NULL,1,'2020-01-17 09:53:52',800.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(63,NULL,1,'2020-01-17 09:53:52',800.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(64,NULL,1,'2020-01-17 09:53:52',800.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(65,NULL,1,'2020-01-17 09:53:52',800.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(66,NULL,1,'2020-01-17 09:53:52',800.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(67,NULL,1,'2020-01-17 09:53:52',800.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(68,NULL,1,'2020-01-17 09:53:52',800.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(69,NULL,1,'2020-01-17 09:53:52',800.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(70,NULL,1,'2020-01-17 09:53:52',800.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(71,NULL,1,'2020-01-17 09:53:52',800.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(72,NULL,1,'2020-01-17 09:53:52',800.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(73,NULL,1,'2020-01-17 09:53:52',800.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(74,NULL,1,'2020-01-17 09:53:52',800.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(75,NULL,1,'2020-01-17 09:53:52',800.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(76,NULL,1,'2020-01-17 09:53:52',800.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(77,NULL,1,'2020-01-17 09:53:52',800.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(78,NULL,1,'2020-01-17 09:53:52',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(79,NULL,1,'2020-01-17 09:53:52',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(80,NULL,1,'2020-01-17 09:53:52',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(81,NULL,1,'2020-01-17 09:53:52',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(82,NULL,1,'2020-01-17 09:53:52',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(83,NULL,1,'2020-01-17 09:53:52',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(84,NULL,1,'2020-01-17 09:53:52',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(85,NULL,1,'2020-01-17 09:53:52',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(86,NULL,1,'2020-01-17 09:53:52',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(87,NULL,1,'2020-01-17 09:53:52',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(88,NULL,1,'2020-01-17 09:53:52',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(89,NULL,1,'2020-01-17 09:53:52',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(90,NULL,1,'2020-01-17 09:53:52',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(91,NULL,1,'2020-01-17 09:53:52',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(92,NULL,1,'2020-01-17 09:53:52',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL),(93,NULL,1,'2020-01-17 09:53:52',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL);
 /*!40000 ALTER TABLE `civicrm_financial_trxn` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -572,7 +572,7 @@ UNLOCK TABLES;
 
 LOCK TABLES `civicrm_group_contact` WRITE;
 /*!40000 ALTER TABLE `civicrm_group_contact` DISABLE KEYS */;
-INSERT INTO `civicrm_group_contact` (`id`, `group_id`, `contact_id`, `status`, `location_id`, `email_id`) VALUES (1,2,107,'Added',NULL,NULL),(2,2,164,'Added',NULL,NULL),(3,2,172,'Added',NULL,NULL),(4,2,54,'Added',NULL,NULL),(5,2,49,'Added',NULL,NULL),(6,2,159,'Added',NULL,NULL),(7,2,75,'Added',NULL,NULL),(8,2,110,'Added',NULL,NULL),(9,2,13,'Added',NULL,NULL),(10,2,127,'Added',NULL,NULL),(11,2,176,'Added',NULL,NULL),(12,2,200,'Added',NULL,NULL),(13,2,174,'Added',NULL,NULL),(14,2,46,'Added',NULL,NULL),(15,2,28,'Added',NULL,NULL),(16,2,157,'Added',NULL,NULL),(17,2,66,'Added',NULL,NULL),(18,2,14,'Added',NULL,NULL),(19,2,102,'Added',NULL,NULL),(20,2,22,'Added',NULL,NULL),(21,2,37,'Added',NULL,NULL),(22,2,30,'Added',NULL,NULL),(23,2,196,'Added',NULL,NULL),(24,2,17,'Added',NULL,NULL),(25,2,80,'Added',NULL,NULL),(26,2,60,'Added',NULL,NULL),(27,2,144,'Added',NULL,NULL),(28,2,82,'Added',NULL,NULL),(29,2,74,'Added',NULL,NULL),(30,2,88,'Added',NULL,NULL),(31,2,194,'Added',NULL,NULL),(32,2,57,'Added',NULL,NULL),(33,2,87,'Added',NULL,NULL),(34,2,167,'Added',NULL,NULL),(35,2,8,'Added',NULL,NULL),(36,2,170,'Added',NULL,NULL),(37,2,111,'Added',NULL,NULL),(38,2,97,'Added',NULL,NULL),(39,2,70,'Added',NULL,NULL),(40,2,33,'Added',NULL,NULL),(41,2,169,'Added',NULL,NULL),(42,2,124,'Added',NULL,NULL),(43,2,103,'Added',NULL,NULL),(44,2,72,'Added',NULL,NULL),(45,2,197,'Added',NULL,NULL),(46,2,50,'Added',NULL,NULL),(47,2,4,'Added',NULL,NULL),(48,2,166,'Added',NULL,NULL),(49,2,191,'Added',NULL,NULL),(50,2,59,'Added',NULL,NULL),(51,2,122,'Added',NULL,NULL),(52,2,173,'Added',NULL,NULL),(53,2,53,'Added',NULL,NULL),(54,2,116,'Added',NULL,NULL),(55,2,186,'Added',NULL,NULL),(56,2,23,'Added',NULL,NULL),(57,2,133,'Added',NULL,NULL),(58,2,42,'Added',NULL,NULL),(59,2,40,'Added',NULL,NULL),(60,2,171,'Added',NULL,NULL),(61,3,78,'Added',NULL,NULL),(62,3,149,'Added',NULL,NULL),(63,3,19,'Added',NULL,NULL),(64,3,148,'Added',NULL,NULL),(65,3,39,'Added',NULL,NULL),(66,3,113,'Added',NULL,NULL),(67,3,184,'Added',NULL,NULL),(68,3,55,'Added',NULL,NULL),(69,3,145,'Added',NULL,NULL),(70,3,162,'Added',NULL,NULL),(71,3,189,'Added',NULL,NULL),(72,3,193,'Added',NULL,NULL),(73,3,156,'Added',NULL,NULL),(74,3,26,'Added',NULL,NULL),(75,3,61,'Added',NULL,NULL),(76,4,107,'Added',NULL,NULL),(77,4,110,'Added',NULL,NULL),(78,4,28,'Added',NULL,NULL),(79,4,30,'Added',NULL,NULL),(80,4,74,'Added',NULL,NULL),(81,4,170,'Added',NULL,NULL),(82,4,103,'Added',NULL,NULL),(83,4,59,'Added',NULL,NULL);
+INSERT INTO `civicrm_group_contact` (`id`, `group_id`, `contact_id`, `status`, `location_id`, `email_id`) VALUES (1,2,96,'Added',NULL,NULL),(2,2,43,'Added',NULL,NULL),(3,2,189,'Added',NULL,NULL),(4,2,140,'Added',NULL,NULL),(5,2,166,'Added',NULL,NULL),(6,2,95,'Added',NULL,NULL),(7,2,106,'Added',NULL,NULL),(8,2,98,'Added',NULL,NULL),(9,2,127,'Added',NULL,NULL),(10,2,137,'Added',NULL,NULL),(11,2,102,'Added',NULL,NULL),(12,2,141,'Added',NULL,NULL),(13,2,105,'Added',NULL,NULL),(14,2,23,'Added',NULL,NULL),(15,2,9,'Added',NULL,NULL),(16,2,158,'Added',NULL,NULL),(17,2,117,'Added',NULL,NULL),(18,2,165,'Added',NULL,NULL),(19,2,72,'Added',NULL,NULL),(20,2,186,'Added',NULL,NULL),(21,2,10,'Added',NULL,NULL),(22,2,182,'Added',NULL,NULL),(23,2,40,'Added',NULL,NULL),(24,2,169,'Added',NULL,NULL),(25,2,143,'Added',NULL,NULL),(26,2,185,'Added',NULL,NULL),(27,2,37,'Added',NULL,NULL),(28,2,27,'Added',NULL,NULL),(29,2,164,'Added',NULL,NULL),(30,2,63,'Added',NULL,NULL),(31,2,49,'Added',NULL,NULL),(32,2,192,'Added',NULL,NULL),(33,2,130,'Added',NULL,NULL),(34,2,4,'Added',NULL,NULL),(35,2,75,'Added',NULL,NULL),(36,2,100,'Added',NULL,NULL),(37,2,16,'Added',NULL,NULL),(38,2,29,'Added',NULL,NULL),(39,2,162,'Added',NULL,NULL),(40,2,59,'Added',NULL,NULL),(41,2,144,'Added',NULL,NULL),(42,2,21,'Added',NULL,NULL),(43,2,122,'Added',NULL,NULL),(44,2,74,'Added',NULL,NULL),(45,2,111,'Added',NULL,NULL),(46,2,181,'Added',NULL,NULL),(47,2,128,'Added',NULL,NULL),(48,2,201,'Added',NULL,NULL),(49,2,184,'Added',NULL,NULL),(50,2,176,'Added',NULL,NULL),(51,2,178,'Added',NULL,NULL),(52,2,51,'Added',NULL,NULL),(53,2,52,'Added',NULL,NULL),(54,2,11,'Added',NULL,NULL),(55,2,131,'Added',NULL,NULL),(56,2,103,'Added',NULL,NULL),(57,2,65,'Added',NULL,NULL),(58,2,109,'Added',NULL,NULL),(59,2,68,'Added',NULL,NULL),(60,2,73,'Added',NULL,NULL),(61,3,55,'Added',NULL,NULL),(62,3,99,'Added',NULL,NULL),(63,3,151,'Added',NULL,NULL),(64,3,108,'Added',NULL,NULL),(65,3,150,'Added',NULL,NULL),(66,3,19,'Added',NULL,NULL),(67,3,196,'Added',NULL,NULL),(68,3,83,'Added',NULL,NULL),(69,3,32,'Added',NULL,NULL),(70,3,120,'Added',NULL,NULL),(71,3,80,'Added',NULL,NULL),(72,3,129,'Added',NULL,NULL),(73,3,25,'Added',NULL,NULL),(74,3,13,'Added',NULL,NULL),(75,3,58,'Added',NULL,NULL),(76,4,96,'Added',NULL,NULL),(77,4,98,'Added',NULL,NULL),(78,4,9,'Added',NULL,NULL),(79,4,182,'Added',NULL,NULL),(80,4,164,'Added',NULL,NULL),(81,4,100,'Added',NULL,NULL),(82,4,122,'Added',NULL,NULL),(83,4,176,'Added',NULL,NULL);
 /*!40000 ALTER TABLE `civicrm_group_contact` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -637,7 +637,7 @@ UNLOCK TABLES;
 
 LOCK TABLES `civicrm_line_item` WRITE;
 /*!40000 ALTER TABLE `civicrm_line_item` DISABLE KEYS */;
-INSERT INTO `civicrm_line_item` (`id`, `entity_table`, `entity_id`, `contribution_id`, `price_field_id`, `label`, `qty`, `unit_price`, `line_total`, `participant_count`, `price_field_value_id`, `financial_type_id`, `non_deductible_amount`, `tax_amount`) VALUES (1,'civicrm_contribution',1,1,1,'Contribution Amount',1.00,125.00,125.00,0,1,1,0.00,NULL),(2,'civicrm_contribution',2,2,1,'Contribution Amount',1.00,50.00,50.00,0,1,1,0.00,NULL),(3,'civicrm_contribution',3,3,1,'Contribution Amount',1.00,25.00,25.00,0,1,1,0.00,NULL),(4,'civicrm_contribution',4,4,1,'Contribution Amount',1.00,50.00,50.00,0,1,1,0.00,NULL),(5,'civicrm_contribution',5,5,1,'Contribution Amount',1.00,500.00,500.00,0,1,1,0.00,NULL),(6,'civicrm_contribution',6,6,1,'Contribution Amount',1.00,175.00,175.00,0,1,1,0.00,NULL),(7,'civicrm_contribution',7,7,1,'Contribution Amount',1.00,50.00,50.00,0,1,1,0.00,NULL),(8,'civicrm_contribution',8,8,1,'Contribution Amount',1.00,10.00,10.00,0,1,1,0.00,NULL),(9,'civicrm_contribution',9,9,1,'Contribution Amount',1.00,250.00,250.00,0,1,1,0.00,NULL),(10,'civicrm_contribution',10,10,1,'Contribution Amount',1.00,500.00,500.00,0,1,1,0.00,NULL),(11,'civicrm_contribution',11,11,1,'Contribution Amount',1.00,200.00,200.00,0,1,1,0.00,NULL),(12,'civicrm_contribution',12,12,1,'Contribution Amount',1.00,200.00,200.00,0,1,1,0.00,NULL),(13,'civicrm_contribution',13,13,1,'Contribution Amount',1.00,200.00,200.00,0,1,1,0.00,NULL),(16,'civicrm_membership',1,14,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL),(17,'civicrm_membership',3,15,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL),(18,'civicrm_membership',5,16,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL),(19,'civicrm_membership',7,17,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL),(20,'civicrm_membership',9,18,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL),(21,'civicrm_membership',10,19,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL),(22,'civicrm_membership',13,20,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL),(23,'civicrm_membership',17,21,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL),(24,'civicrm_membership',19,22,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL),(25,'civicrm_membership',20,23,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL),(26,'civicrm_membership',21,24,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL),(27,'civicrm_membership',23,25,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL),(28,'civicrm_membership',25,26,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL),(29,'civicrm_membership',27,27,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL),(30,'civicrm_membership',29,28,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL),(31,'civicrm_membership',30,29,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL),(32,'civicrm_membership',2,30,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL),(33,'civicrm_membership',4,31,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL),(34,'civicrm_membership',6,32,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL),(35,'civicrm_membership',8,33,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL),(36,'civicrm_membership',12,34,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL),(37,'civicrm_membership',14,35,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL),(38,'civicrm_membership',15,36,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL),(39,'civicrm_membership',16,37,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL),(40,'civicrm_membership',18,38,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL),(41,'civicrm_membership',24,39,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL),(42,'civicrm_membership',26,40,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL),(43,'civicrm_membership',28,41,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL),(44,'civicrm_membership',11,42,4,'Lifetime',1.00,1200.00,1200.00,NULL,9,2,0.00,NULL),(45,'civicrm_membership',22,43,4,'Lifetime',1.00,1200.00,1200.00,NULL,9,2,0.00,NULL),(47,'civicrm_participant',3,94,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL),(48,'civicrm_participant',6,84,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL),(49,'civicrm_participant',9,86,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL),(50,'civicrm_participant',12,87,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL),(51,'civicrm_participant',15,51,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL),(52,'civicrm_participant',18,65,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL),(53,'civicrm_participant',21,68,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL),(54,'civicrm_participant',24,92,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL),(55,'civicrm_participant',25,89,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL),(56,'civicrm_participant',28,71,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL),(57,'civicrm_participant',31,48,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL),(58,'civicrm_participant',34,88,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL),(59,'civicrm_participant',37,66,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL),(60,'civicrm_participant',40,63,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL),(61,'civicrm_participant',43,60,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL),(62,'civicrm_participant',46,75,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL),(63,'civicrm_participant',49,55,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL),(64,'civicrm_participant',50,70,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL),(65,'civicrm_participant',1,72,8,'Single',1.00,50.00,50.00,0,16,4,0.00,NULL),(66,'civicrm_participant',4,82,8,'Single',1.00,50.00,50.00,0,16,4,0.00,NULL),(67,'civicrm_participant',7,80,8,'Single',1.00,50.00,50.00,0,16,4,0.00,NULL),(68,'civicrm_participant',10,90,8,'Single',1.00,50.00,50.00,0,16,4,0.00,NULL),(69,'civicrm_participant',13,77,8,'Single',1.00,50.00,50.00,0,16,4,0.00,NULL),(70,'civicrm_participant',16,79,8,'Single',1.00,50.00,50.00,0,16,4,0.00,NULL),(71,'civicrm_participant',19,67,8,'Single',1.00,50.00,50.00,0,16,4,0.00,NULL),(72,'civicrm_participant',22,64,8,'Single',1.00,50.00,50.00,0,16,4,0.00,NULL),(73,'civicrm_participant',26,61,8,'Single',1.00,50.00,50.00,0,16,4,0.00,NULL),(74,'civicrm_participant',29,57,8,'Single',1.00,50.00,50.00,0,16,4,0.00,NULL),(75,'civicrm_participant',32,50,8,'Single',1.00,50.00,50.00,0,16,4,0.00,NULL),(76,'civicrm_participant',35,53,8,'Single',1.00,50.00,50.00,0,16,4,0.00,NULL),(77,'civicrm_participant',38,76,8,'Single',1.00,50.00,50.00,0,16,4,0.00,NULL),(78,'civicrm_participant',41,45,8,'Single',1.00,50.00,50.00,0,16,4,0.00,NULL),(79,'civicrm_participant',44,83,8,'Single',1.00,50.00,50.00,0,16,4,0.00,NULL),(80,'civicrm_participant',47,49,8,'Single',1.00,50.00,50.00,0,16,4,0.00,NULL),(81,'civicrm_participant',2,62,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,NULL),(82,'civicrm_participant',5,91,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,NULL),(83,'civicrm_participant',8,58,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,NULL),(84,'civicrm_participant',11,56,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,NULL),(85,'civicrm_participant',14,59,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,NULL),(86,'civicrm_participant',17,47,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,NULL),(87,'civicrm_participant',20,73,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,NULL),(88,'civicrm_participant',23,46,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,NULL),(89,'civicrm_participant',27,78,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,NULL),(90,'civicrm_participant',30,81,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,NULL),(91,'civicrm_participant',33,52,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,NULL),(92,'civicrm_participant',36,93,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,NULL),(93,'civicrm_participant',39,85,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,NULL),(94,'civicrm_participant',42,69,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,NULL),(95,'civicrm_participant',45,74,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,NULL),(96,'civicrm_participant',48,54,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,NULL);
+INSERT INTO `civicrm_line_item` (`id`, `entity_table`, `entity_id`, `contribution_id`, `price_field_id`, `label`, `qty`, `unit_price`, `line_total`, `participant_count`, `price_field_value_id`, `financial_type_id`, `non_deductible_amount`, `tax_amount`) VALUES (1,'civicrm_contribution',1,1,1,'Contribution Amount',1.00,125.00,125.00,0,1,1,0.00,NULL),(2,'civicrm_contribution',2,2,1,'Contribution Amount',1.00,50.00,50.00,0,1,1,0.00,NULL),(3,'civicrm_contribution',3,3,1,'Contribution Amount',1.00,25.00,25.00,0,1,1,0.00,NULL),(4,'civicrm_contribution',4,4,1,'Contribution Amount',1.00,50.00,50.00,0,1,1,0.00,NULL),(5,'civicrm_contribution',5,5,1,'Contribution Amount',1.00,500.00,500.00,0,1,1,0.00,NULL),(6,'civicrm_contribution',6,6,1,'Contribution Amount',1.00,175.00,175.00,0,1,1,0.00,NULL),(7,'civicrm_contribution',7,7,1,'Contribution Amount',1.00,50.00,50.00,0,1,1,0.00,NULL),(8,'civicrm_contribution',8,8,1,'Contribution Amount',1.00,10.00,10.00,0,1,1,0.00,NULL),(9,'civicrm_contribution',9,9,1,'Contribution Amount',1.00,250.00,250.00,0,1,1,0.00,NULL),(10,'civicrm_contribution',10,10,1,'Contribution Amount',1.00,500.00,500.00,0,1,1,0.00,NULL),(11,'civicrm_contribution',11,11,1,'Contribution Amount',1.00,200.00,200.00,0,1,1,0.00,NULL),(12,'civicrm_contribution',12,12,1,'Contribution Amount',1.00,200.00,200.00,0,1,1,0.00,NULL),(13,'civicrm_contribution',13,13,1,'Contribution Amount',1.00,200.00,200.00,0,1,1,0.00,NULL),(16,'civicrm_membership',1,14,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL),(17,'civicrm_membership',3,15,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL),(18,'civicrm_membership',7,16,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL),(19,'civicrm_membership',9,17,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL),(20,'civicrm_membership',13,18,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL),(21,'civicrm_membership',15,19,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL),(22,'civicrm_membership',17,20,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL),(23,'civicrm_membership',19,21,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL),(24,'civicrm_membership',21,22,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL),(25,'civicrm_membership',23,23,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL),(26,'civicrm_membership',27,24,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL),(27,'civicrm_membership',29,25,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL),(28,'civicrm_membership',2,26,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL),(29,'civicrm_membership',4,27,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL),(30,'civicrm_membership',5,28,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL),(31,'civicrm_membership',6,29,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL),(32,'civicrm_membership',8,30,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL),(33,'civicrm_membership',10,31,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL),(34,'civicrm_membership',12,32,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL),(35,'civicrm_membership',14,33,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL),(36,'civicrm_membership',16,34,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL),(37,'civicrm_membership',18,35,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL),(38,'civicrm_membership',20,36,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL),(39,'civicrm_membership',24,37,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL),(40,'civicrm_membership',25,38,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL),(41,'civicrm_membership',26,39,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL),(42,'civicrm_membership',28,40,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL),(43,'civicrm_membership',30,41,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL),(44,'civicrm_membership',11,42,4,'Lifetime',1.00,1200.00,1200.00,NULL,9,2,0.00,NULL),(45,'civicrm_membership',22,43,4,'Lifetime',1.00,1200.00,1200.00,NULL,9,2,0.00,NULL),(47,'civicrm_participant',3,73,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL),(48,'civicrm_participant',6,49,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL),(49,'civicrm_participant',9,69,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL),(50,'civicrm_participant',12,87,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL),(51,'civicrm_participant',15,94,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL),(52,'civicrm_participant',18,71,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL),(53,'civicrm_participant',21,47,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL),(54,'civicrm_participant',24,92,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL),(55,'civicrm_participant',25,75,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL),(56,'civicrm_participant',28,60,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL),(57,'civicrm_participant',31,53,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL),(58,'civicrm_participant',34,68,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL),(59,'civicrm_participant',37,67,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL),(60,'civicrm_participant',40,85,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL),(61,'civicrm_participant',43,74,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL),(62,'civicrm_participant',46,62,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL),(63,'civicrm_participant',49,55,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL),(64,'civicrm_participant',50,84,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL),(65,'civicrm_participant',1,76,8,'Single',1.00,50.00,50.00,0,16,4,0.00,NULL),(66,'civicrm_participant',4,65,8,'Single',1.00,50.00,50.00,0,16,4,0.00,NULL),(67,'civicrm_participant',7,52,8,'Single',1.00,50.00,50.00,0,16,4,0.00,NULL),(68,'civicrm_participant',10,50,8,'Single',1.00,50.00,50.00,0,16,4,0.00,NULL),(69,'civicrm_participant',13,81,8,'Single',1.00,50.00,50.00,0,16,4,0.00,NULL),(70,'civicrm_participant',16,72,8,'Single',1.00,50.00,50.00,0,16,4,0.00,NULL),(71,'civicrm_participant',19,57,8,'Single',1.00,50.00,50.00,0,16,4,0.00,NULL),(72,'civicrm_participant',22,46,8,'Single',1.00,50.00,50.00,0,16,4,0.00,NULL),(73,'civicrm_participant',26,58,8,'Single',1.00,50.00,50.00,0,16,4,0.00,NULL),(74,'civicrm_participant',29,56,8,'Single',1.00,50.00,50.00,0,16,4,0.00,NULL),(75,'civicrm_participant',32,77,8,'Single',1.00,50.00,50.00,0,16,4,0.00,NULL),(76,'civicrm_participant',35,80,8,'Single',1.00,50.00,50.00,0,16,4,0.00,NULL),(77,'civicrm_participant',38,59,8,'Single',1.00,50.00,50.00,0,16,4,0.00,NULL),(78,'civicrm_participant',41,66,8,'Single',1.00,50.00,50.00,0,16,4,0.00,NULL),(79,'civicrm_participant',44,82,8,'Single',1.00,50.00,50.00,0,16,4,0.00,NULL),(80,'civicrm_participant',47,79,8,'Single',1.00,50.00,50.00,0,16,4,0.00,NULL),(81,'civicrm_participant',2,61,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,NULL),(82,'civicrm_participant',5,91,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,NULL),(83,'civicrm_participant',8,45,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,NULL),(84,'civicrm_participant',11,78,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,NULL),(85,'civicrm_participant',14,93,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,NULL),(86,'civicrm_participant',17,88,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,NULL),(87,'civicrm_participant',20,86,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,NULL),(88,'civicrm_participant',23,63,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,NULL),(89,'civicrm_participant',27,83,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,NULL),(90,'civicrm_participant',30,51,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,NULL),(91,'civicrm_participant',33,54,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,NULL),(92,'civicrm_participant',36,48,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,NULL),(93,'civicrm_participant',39,90,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,NULL),(94,'civicrm_participant',42,64,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,NULL),(95,'civicrm_participant',45,89,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,NULL),(96,'civicrm_participant',48,70,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,NULL);
 /*!40000 ALTER TABLE `civicrm_line_item` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -647,7 +647,7 @@ UNLOCK TABLES;
 
 LOCK TABLES `civicrm_loc_block` WRITE;
 /*!40000 ALTER TABLE `civicrm_loc_block` DISABLE KEYS */;
-INSERT INTO `civicrm_loc_block` (`id`, `address_id`, `email_id`, `phone_id`, `im_id`, `address_2_id`, `email_2_id`, `phone_2_id`, `im_2_id`) VALUES (1,170,207,144,NULL,NULL,NULL,NULL,NULL),(2,171,208,145,NULL,NULL,NULL,NULL,NULL),(3,172,209,146,NULL,NULL,NULL,NULL,NULL);
+INSERT INTO `civicrm_loc_block` (`id`, `address_id`, `email_id`, `phone_id`, `im_id`, `address_2_id`, `email_2_id`, `phone_2_id`, `im_2_id`) VALUES (1,177,195,178,NULL,NULL,NULL,NULL,NULL),(2,178,196,179,NULL,NULL,NULL,NULL,NULL),(3,179,197,180,NULL,NULL,NULL,NULL,NULL);
 /*!40000 ALTER TABLE `civicrm_loc_block` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -896,7 +896,7 @@ UNLOCK TABLES;
 
 LOCK TABLES `civicrm_membership` WRITE;
 /*!40000 ALTER TABLE `civicrm_membership` DISABLE KEYS */;
-INSERT INTO `civicrm_membership` (`id`, `contact_id`, `membership_type_id`, `join_date`, `start_date`, `end_date`, `source`, `status_id`, `is_override`, `status_override_end_date`, `owner_membership_id`, `max_related`, `is_test`, `is_pay_later`, `contribution_recur_id`, `campaign_id`) VALUES (1,175,1,'2019-11-28','2019-11-28','2021-11-27','Donation',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),(2,37,2,'2019-11-27','2019-11-27','2020-11-26','Payment',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),(3,80,1,'2019-11-26','2019-11-26','2021-11-25','Check',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),(4,105,2,'2019-11-25','2019-11-25','2020-11-24','Check',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),(5,45,1,'2017-10-27','2017-10-27','2019-10-26','Donation',3,NULL,NULL,NULL,NULL,0,0,NULL,NULL),(6,160,2,'2019-11-23','2019-11-23','2020-11-22','Payment',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),(7,52,1,'2019-11-22','2019-11-22','2021-11-21','Donation',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),(8,148,2,'2019-11-21','2019-11-21','2020-11-20','Payment',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),(9,33,1,'2019-11-20','2019-11-20','2021-11-19','Donation',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),(10,58,1,'2017-09-17','2017-09-17','2019-09-16','Payment',3,NULL,NULL,NULL,NULL,0,0,NULL,NULL),(11,47,3,'2019-11-18','2019-11-18',NULL,'Donation',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),(12,144,2,'2019-11-17','2019-11-17','2020-11-16','Check',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),(13,107,1,'2019-11-16','2019-11-16','2021-11-15','Payment',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),(14,103,2,'2019-11-15','2019-11-15','2020-11-14','Payment',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),(15,55,2,'2018-11-14','2018-11-14','2019-11-13','Check',4,NULL,NULL,NULL,NULL,0,0,NULL,NULL),(16,200,2,'2019-11-13','2019-11-13','2020-11-12','Donation',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),(17,95,1,'2019-11-12','2019-11-12','2021-11-11','Payment',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),(18,184,2,'2019-11-11','2019-11-11','2020-11-10','Payment',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),(19,66,1,'2019-11-10','2019-11-10','2021-11-09','Check',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),(20,166,1,'2017-06-29','2017-06-29','2019-06-28','Donation',3,NULL,NULL,NULL,NULL,0,0,NULL,NULL),(21,2,1,'2019-11-08','2019-11-08','2021-11-07','Check',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),(22,25,3,'2019-11-07','2019-11-07',NULL,'Payment',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),(23,134,1,'2019-11-06','2019-11-06','2021-11-05','Payment',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),(24,89,2,'2019-11-05','2019-11-05','2020-11-04','Check',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),(25,115,1,'2017-05-20','2017-05-20','2019-05-19','Payment',3,NULL,NULL,NULL,NULL,0,0,NULL,NULL),(26,26,2,'2019-11-03','2019-11-03','2020-11-02','Check',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),(27,139,1,'2019-11-02','2019-11-02','2021-11-01','Check',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),(28,84,2,'2019-11-01','2019-11-01','2020-10-31','Check',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),(29,147,1,'2019-10-31','2019-10-31','2021-10-30','Donation',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),(30,145,1,'2017-04-10','2017-04-10','2019-04-09','Payment',3,NULL,NULL,NULL,NULL,0,0,NULL,NULL);
+INSERT INTO `civicrm_membership` (`id`, `contact_id`, `membership_type_id`, `join_date`, `start_date`, `end_date`, `source`, `status_id`, `is_override`, `status_override_end_date`, `owner_membership_id`, `max_related`, `is_test`, `is_pay_later`, `contribution_recur_id`, `campaign_id`) VALUES (1,89,1,'2020-01-17','2020-01-17','2022-01-16','Donation',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),(2,50,2,'2020-01-16','2020-01-16','2021-01-15','Donation',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),(3,82,1,'2020-01-15','2020-01-15','2022-01-14','Payment',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),(4,85,2,'2020-01-14','2020-01-14','2021-01-13','Donation',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),(5,94,2,'2019-01-13','2019-01-13','2020-01-12','Check',4,NULL,NULL,NULL,NULL,0,0,NULL,NULL),(6,30,2,'2020-01-12','2020-01-12','2021-01-11','Donation',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),(7,14,1,'2020-01-11','2020-01-11','2022-01-10','Payment',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),(8,51,2,'2020-01-10','2020-01-10','2021-01-09','Payment',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),(9,183,1,'2020-01-09','2020-01-09','2022-01-08','Donation',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),(10,103,2,'2019-01-08','2019-01-08','2020-01-07','Payment',4,NULL,NULL,NULL,NULL,0,0,NULL,NULL),(11,165,3,'2020-01-07','2020-01-07',NULL,'Check',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),(12,181,2,'2020-01-06','2020-01-06','2021-01-05','Donation',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),(13,133,1,'2020-01-05','2020-01-05','2022-01-04','Payment',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),(14,40,2,'2020-01-04','2020-01-04','2021-01-03','Payment',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),(15,20,1,'2017-09-27','2017-09-27','2019-09-26','Payment',3,NULL,NULL,NULL,NULL,0,0,NULL,NULL),(16,105,2,'2020-01-02','2020-01-02','2021-01-01','Payment',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),(17,132,1,'2020-01-01','2020-01-01','2021-12-31','Payment',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),(18,42,2,'2019-12-31','2019-12-31','2020-12-30','Payment',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),(19,77,1,'2019-12-30','2019-12-30','2021-12-29','Payment',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),(20,5,2,'2018-12-29','2018-12-29','2019-12-28','Payment',4,NULL,NULL,NULL,NULL,0,0,NULL,NULL),(21,138,1,'2019-12-28','2019-12-28','2021-12-27','Check',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),(22,122,3,'2019-12-27','2019-12-27',NULL,'Check',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),(23,164,1,'2019-12-26','2019-12-26','2021-12-25','Check',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),(24,120,2,'2019-12-25','2019-12-25','2020-12-24','Payment',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),(25,184,2,'2018-12-24','2018-12-24','2019-12-23','Donation',4,NULL,NULL,NULL,NULL,0,0,NULL,NULL),(26,29,2,'2019-12-23','2019-12-23','2020-12-22','Donation',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),(27,34,1,'2019-12-22','2019-12-22','2021-12-21','Check',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),(28,197,2,'2019-12-21','2019-12-21','2020-12-20','Donation',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),(29,128,1,'2019-12-20','2019-12-20','2021-12-19','Payment',1,NULL,NULL,NULL,NULL,0,0,NULL,NULL),(30,64,2,'2018-12-19','2018-12-19','2019-12-18','Payment',4,NULL,NULL,NULL,NULL,0,0,NULL,NULL);
 /*!40000 ALTER TABLE `civicrm_membership` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -916,7 +916,7 @@ UNLOCK TABLES;
 
 LOCK TABLES `civicrm_membership_log` WRITE;
 /*!40000 ALTER TABLE `civicrm_membership_log` DISABLE KEYS */;
-INSERT INTO `civicrm_membership_log` (`id`, `membership_id`, `status_id`, `start_date`, `end_date`, `modified_id`, `modified_date`, `membership_type_id`, `max_related`) VALUES (1,21,1,'2019-11-08','2021-11-07',2,'2019-11-28',1,NULL),(2,22,1,'2019-11-07',NULL,25,'2019-11-28',3,NULL),(3,26,1,'2019-11-03','2020-11-02',26,'2019-11-28',2,NULL),(4,9,1,'2019-11-20','2021-11-19',33,'2019-11-28',1,NULL),(5,2,1,'2019-11-27','2020-11-26',37,'2019-11-28',2,NULL),(6,5,3,'2017-10-27','2019-10-26',45,'2019-11-28',1,NULL),(7,11,1,'2019-11-18',NULL,47,'2019-11-28',3,NULL),(8,7,1,'2019-11-22','2021-11-21',52,'2019-11-28',1,NULL),(9,15,4,'2018-11-14','2019-11-13',55,'2019-11-28',2,NULL),(10,10,3,'2017-09-17','2019-09-16',58,'2019-11-28',1,NULL),(11,19,1,'2019-11-10','2021-11-09',66,'2019-11-28',1,NULL),(12,3,1,'2019-11-26','2021-11-25',80,'2019-11-28',1,NULL),(13,28,1,'2019-11-01','2020-10-31',84,'2019-11-28',2,NULL),(14,24,1,'2019-11-05','2020-11-04',89,'2019-11-28',2,NULL),(15,17,1,'2019-11-12','2021-11-11',95,'2019-11-28',1,NULL),(16,14,1,'2019-11-15','2020-11-14',103,'2019-11-28',2,NULL),(17,4,1,'2019-11-25','2020-11-24',105,'2019-11-28',2,NULL),(18,13,1,'2019-11-16','2021-11-15',107,'2019-11-28',1,NULL),(19,25,3,'2017-05-20','2019-05-19',115,'2019-11-28',1,NULL),(20,23,1,'2019-11-06','2021-11-05',134,'2019-11-28',1,NULL),(21,27,1,'2019-11-02','2021-11-01',139,'2019-11-28',1,NULL),(22,12,1,'2019-11-17','2020-11-16',144,'2019-11-28',2,NULL),(23,30,3,'2017-04-10','2019-04-09',145,'2019-11-28',1,NULL),(24,29,1,'2019-10-31','2021-10-30',147,'2019-11-28',1,NULL),(25,8,1,'2019-11-21','2020-11-20',148,'2019-11-28',2,NULL),(26,6,1,'2019-11-23','2020-11-22',160,'2019-11-28',2,NULL),(27,20,3,'2017-06-29','2019-06-28',166,'2019-11-28',1,NULL),(28,1,1,'2019-11-28','2021-11-27',175,'2019-11-28',1,NULL),(29,18,1,'2019-11-11','2020-11-10',184,'2019-11-28',2,NULL),(30,16,1,'2019-11-13','2020-11-12',200,'2019-11-28',2,NULL);
+INSERT INTO `civicrm_membership_log` (`id`, `membership_id`, `status_id`, `start_date`, `end_date`, `modified_id`, `modified_date`, `membership_type_id`, `max_related`) VALUES (1,20,4,'2018-12-29','2019-12-28',5,'2020-01-17',2,NULL),(2,7,1,'2020-01-11','2022-01-10',14,'2020-01-17',1,NULL),(3,15,3,'2017-09-27','2019-09-26',20,'2020-01-17',1,NULL),(4,26,1,'2019-12-23','2020-12-22',29,'2020-01-17',2,NULL),(5,6,1,'2020-01-12','2021-01-11',30,'2020-01-17',2,NULL),(6,27,1,'2019-12-22','2021-12-21',34,'2020-01-17',1,NULL),(7,14,1,'2020-01-04','2021-01-03',40,'2020-01-17',2,NULL),(8,18,1,'2019-12-31','2020-12-30',42,'2020-01-17',2,NULL),(9,2,1,'2020-01-16','2021-01-15',50,'2020-01-17',2,NULL),(10,8,1,'2020-01-10','2021-01-09',51,'2020-01-17',2,NULL),(11,30,4,'2018-12-19','2019-12-18',64,'2020-01-17',2,NULL),(12,19,1,'2019-12-30','2021-12-29',77,'2020-01-17',1,NULL),(13,3,1,'2020-01-15','2022-01-14',82,'2020-01-17',1,NULL),(14,4,1,'2020-01-14','2021-01-13',85,'2020-01-17',2,NULL),(15,1,1,'2020-01-17','2022-01-16',89,'2020-01-17',1,NULL),(16,5,4,'2019-01-13','2020-01-12',94,'2020-01-17',2,NULL),(17,10,4,'2019-01-08','2020-01-07',103,'2020-01-17',2,NULL),(18,16,1,'2020-01-02','2021-01-01',105,'2020-01-17',2,NULL),(19,24,1,'2019-12-25','2020-12-24',120,'2020-01-17',2,NULL),(20,22,1,'2019-12-27',NULL,122,'2020-01-17',3,NULL),(21,29,1,'2019-12-20','2021-12-19',128,'2020-01-17',1,NULL),(22,17,1,'2020-01-01','2021-12-31',132,'2020-01-17',1,NULL),(23,13,1,'2020-01-05','2022-01-04',133,'2020-01-17',1,NULL),(24,21,1,'2019-12-28','2021-12-27',138,'2020-01-17',1,NULL),(25,23,1,'2019-12-26','2021-12-25',164,'2020-01-17',1,NULL),(26,11,1,'2020-01-07',NULL,165,'2020-01-17',3,NULL),(27,12,1,'2020-01-06','2021-01-05',181,'2020-01-17',2,NULL),(28,9,1,'2020-01-09','2022-01-08',183,'2020-01-17',1,NULL),(29,25,4,'2018-12-24','2019-12-23',184,'2020-01-17',2,NULL),(30,28,1,'2019-12-21','2020-12-20',197,'2020-01-17',2,NULL);
 /*!40000 ALTER TABLE `civicrm_membership_log` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -926,7 +926,7 @@ UNLOCK TABLES;
 
 LOCK TABLES `civicrm_membership_payment` WRITE;
 /*!40000 ALTER TABLE `civicrm_membership_payment` DISABLE KEYS */;
-INSERT INTO `civicrm_membership_payment` (`id`, `membership_id`, `contribution_id`) VALUES (1,1,14),(2,3,15),(3,5,16),(4,7,17),(5,9,18),(6,10,19),(7,13,20),(8,17,21),(9,19,22),(10,20,23),(11,21,24),(12,23,25),(13,25,26),(14,27,27),(15,29,28),(16,30,29),(17,2,30),(18,4,31),(19,6,32),(20,8,33),(21,12,34),(22,14,35),(23,15,36),(24,16,37),(25,18,38),(26,24,39),(27,26,40),(28,28,41),(29,11,42),(30,22,43);
+INSERT INTO `civicrm_membership_payment` (`id`, `membership_id`, `contribution_id`) VALUES (1,1,14),(2,3,15),(3,7,16),(4,9,17),(5,13,18),(6,15,19),(7,17,20),(8,19,21),(9,21,22),(10,23,23),(11,27,24),(12,29,25),(13,2,26),(14,4,27),(15,5,28),(16,6,29),(17,8,30),(18,10,31),(19,12,32),(20,14,33),(21,16,34),(22,18,35),(23,20,36),(24,24,37),(25,25,38),(26,26,39),(27,28,40),(28,30,41),(29,11,42),(30,22,43);
 /*!40000 ALTER TABLE `civicrm_membership_payment` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -956,7 +956,7 @@ UNLOCK TABLES;
 
 LOCK TABLES `civicrm_menu` WRITE;
 /*!40000 ALTER TABLE `civicrm_menu` DISABLE KEYS */;
-INSERT INTO `civicrm_menu` (`id`, `domain_id`, `path`, `path_arguments`, `title`, `access_callback`, `access_arguments`, `page_callback`, `page_arguments`, `breadcrumb`, `return_url`, `return_url_args`, `component_id`, `is_active`, `is_public`, `is_exposed`, `is_ssl`, `weight`, `type`, `page_type`, `skipBreadcrumb`, `module_data`) VALUES (1,1,'civicrm/ajax/api4',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:18:\"CRM_Api4_Page_AJAX\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(2,1,'civicrm/api4',NULL,'CiviCRM','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:26:\"CRM_Api4_Page_Api4Explorer\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(3,1,'civicrm/import',NULL,'Import','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:15:\"import contacts\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:29:\"CRM_Contact_Import_Controller\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,400,1,1,NULL,'a:0:{}'),(4,1,'civicrm/import/contact',NULL,'Import Contacts','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:15:\"import contacts\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:29:\"CRM_Contact_Import_Controller\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:6:\"Import\";s:3:\"url\";s:23:\"/civicrm/import?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,410,1,1,NULL,'a:0:{}'),(5,1,'civicrm/import/activity',NULL,'Import Activities','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:15:\"import contacts\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:30:\"CRM_Activity_Import_Controller\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:6:\"Import\";s:3:\"url\";s:23:\"/civicrm/import?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,420,1,1,NULL,'a:0:{}'),(6,1,'civicrm/import/custom','id=%%id%%','Import Multi-value Custom Data','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:28:\"CRM_Custom_Import_Controller\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:6:\"Import\";s:3:\"url\";s:23:\"/civicrm/import?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,420,1,1,NULL,'a:0:{}'),(7,1,'civicrm/ajax/status',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:15:\"import contacts\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:28:\"CRM_Contact_Import_Page_AJAX\";i:1;s:6:\"status\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(8,1,'civicrm/custom/add',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:26:\"CRM_Custom_Form_CustomData\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(9,1,'civicrm/ajax/optionlist',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:20:\"CRM_Custom_Page_AJAX\";i:1;s:13:\"getOptionList\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(10,1,'civicrm/ajax/reorder',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:20:\"CRM_Custom_Page_AJAX\";i:1;s:11:\"fixOrdering\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(11,1,'civicrm/ajax/multirecordfieldlist',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:20:\"CRM_Custom_Page_AJAX\";i:1;s:23:\"getMultiRecordFieldList\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(12,1,'civicrm/group',NULL,'Manage Groups','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:20:\"CRM_Group_Page_Group\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,30,1,1,NULL,'a:0:{}'),(13,1,'civicrm/group/search',NULL,'Group Members','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:29:\"CRM_Contact_Controller_Search\";','s:8:\"mode=256\";','a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:13:\"Manage Groups\";s:3:\"url\";s:22:\"/civicrm/group?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:1:{s:7:\"comment\";s:164:\"Note: group search already respect ACL, so a strict permission at url level is not required. A simple/basic permission like \'access CiviCRM\' could be used. CRM-5417\";}'),(14,1,'civicrm/group/add',NULL,'New Group','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:11:\"edit groups\";}i:1;s:3:\"and\";}','s:20:\"CRM_Group_Controller\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:13:\"Manage Groups\";s:3:\"url\";s:22:\"/civicrm/group?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(15,1,'civicrm/ajax/grouplist',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:19:\"CRM_Group_Page_AJAX\";i:1;s:12:\"getGroupList\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(16,1,'civicrm/tag',NULL,'Tags (Categories)','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:11:\"manage tags\";}i:1;s:2:\"or\";}','s:16:\"CRM_Tag_Page_Tag\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,25,1,0,NULL,'a:3:{s:4:\"desc\";s:158:\"Tags are useful for segmenting the contacts in your database into categories (e.g. Staff Member, Donor, Volunteer, etc.). Create and edit available tags here.\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";s:4:\"icon\";s:18:\"admin/small/11.png\";}'),(17,1,'civicrm/tag/edit','action=add','New Tag','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:11:\"manage tags\";}i:1;s:2:\"or\";}','s:17:\"CRM_Tag_Form_Edit\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:17:\"Tags (Categories)\";s:3:\"url\";s:20:\"/civicrm/tag?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(18,1,'civicrm/tag/merge',NULL,'Merge Tags','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:11:\"manage tags\";}i:1;s:2:\"or\";}','s:18:\"CRM_Tag_Form_Merge\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:17:\"Tags (Categories)\";s:3:\"url\";s:20:\"/civicrm/tag?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(19,1,'civicrm/ajax/tagTree',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:11:\"manage tags\";}i:1;s:2:\"or\";}','a:2:{i:0;s:19:\"CRM_Admin_Page_AJAX\";i:1;s:10:\"getTagTree\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(20,1,'civicrm/payment/form',NULL,NULL,'s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:26:\"CRM_Financial_Form_Payment\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:11:\"New Payment\";s:3:\"url\";s:39:\"/civicrm/payment?reset=1&amp;action=add\";}}',NULL,NULL,2,NULL,1,NULL,0,0,1,0,NULL,'a:0:{}'),(21,1,'civicrm/payment/edit',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:30:\"CRM_Financial_Form_PaymentEdit\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:11:\"New Payment\";s:3:\"url\";s:39:\"/civicrm/payment?reset=1&amp;action=add\";}}',NULL,NULL,2,NULL,NULL,NULL,0,1,1,0,NULL,'a:1:{s:9:\"component\";s:14:\"CiviContribute\";}'),(22,1,'civicrm',NULL,'CiviCRM','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:26:\"CRM_Contact_Page_DashBoard\";',NULL,'a:0:{}',NULL,NULL,NULL,NULL,NULL,NULL,0,0,1,0,NULL,'a:0:{}'),(23,1,'civicrm/dashboard',NULL,'CiviCRM Home','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:26:\"CRM_Contact_Page_DashBoard\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,0,1,1,NULL,'a:0:{}'),(24,1,'civicrm/dashlet',NULL,'CiviCRM Dashlets','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:24:\"CRM_Contact_Page_Dashlet\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,1,NULL,'a:0:{}'),(25,1,'civicrm/contact/search',NULL,'Find Contacts','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:29:\"CRM_Contact_Controller_Search\";','s:8:\"mode=256\";','a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,10,1,1,NULL,'a:0:{}'),(26,1,'civicrm/contact/image',NULL,'Process Uploaded Images','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access uploaded files\";}i:1;s:3:\"and\";}','a:2:{i:0;s:23:\"CRM_Contact_BAO_Contact\";i:1;s:12:\"processImage\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(27,1,'civicrm/contact/imagefile',NULL,'Get Image File','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"*always allow*\";}i:1;s:3:\"and\";}','s:26:\"CRM_Contact_Page_ImageFile\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(28,1,'civicrm/contact/search/basic',NULL,'Find Contacts','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:29:\"CRM_Contact_Controller_Search\";','s:8:\"mode=256\";','a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:13:\"Find Contacts\";s:3:\"url\";s:31:\"/civicrm/contact/search?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(29,1,'civicrm/contact/search/advanced',NULL,'Advanced Search','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:29:\"CRM_Contact_Controller_Search\";','s:8:\"mode=512\";','a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:13:\"Find Contacts\";s:3:\"url\";s:31:\"/civicrm/contact/search?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,12,1,1,NULL,'a:0:{}'),(30,1,'civicrm/contact/search/builder',NULL,'Search Builder','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:29:\"CRM_Contact_Controller_Search\";','s:9:\"mode=8192\";','a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:13:\"Find Contacts\";s:3:\"url\";s:31:\"/civicrm/contact/search?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,14,1,1,NULL,'a:0:{}'),(31,1,'civicrm/contact/search/custom',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:29:\"CRM_Contact_Controller_Search\";','s:10:\"mode=16384\";','a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:13:\"Find Contacts\";s:3:\"url\";s:31:\"/civicrm/contact/search?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(32,1,'civicrm/contact/search/custom/list',NULL,'Custom Searches','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:29:\"CRM_Contact_Page_CustomSearch\";','s:10:\"mode=16384\";','a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:13:\"Find Contacts\";s:3:\"url\";s:31:\"/civicrm/contact/search?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,16,1,1,NULL,'a:0:{}'),(33,1,'civicrm/contact/add',NULL,'New Contact','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:24:\"CRM_Contact_Form_Contact\";','s:13:\"addSequence=1\";','a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(34,1,'civicrm/contact/add/individual','ct=Individual','New Individual','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:12:\"add contacts\";}i:1;s:3:\"and\";}','s:24:\"CRM_Contact_Form_Contact\";','s:13:\"addSequence=1\";','a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:11:\"New Contact\";s:3:\"url\";s:28:\"/civicrm/contact/add?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(35,1,'civicrm/contact/add/household','ct=Household','New Household','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:12:\"add contacts\";}i:1;s:3:\"and\";}','s:24:\"CRM_Contact_Form_Contact\";','s:13:\"addSequence=1\";','a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:11:\"New Contact\";s:3:\"url\";s:28:\"/civicrm/contact/add?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(36,1,'civicrm/contact/add/organization','ct=Organization','New Organization','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:12:\"add contacts\";}i:1;s:3:\"and\";}','s:24:\"CRM_Contact_Form_Contact\";','s:13:\"addSequence=1\";','a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:11:\"New Contact\";s:3:\"url\";s:28:\"/civicrm/contact/add?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(37,1,'civicrm/contact/relatedcontact',NULL,'Edit Related Contact','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:24:\"access Contact Dashboard\";}i:1;s:3:\"and\";}','s:31:\"CRM_Contact_Form_RelatedContact\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,1,NULL,0,1,1,0,NULL,'a:0:{}'),(38,1,'civicrm/contact/merge',NULL,'Merge Contact','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:24:\"merge duplicate contacts\";}i:1;s:3:\"and\";}','s:22:\"CRM_Contact_Form_Merge\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(39,1,'civicrm/contact/email',NULL,'Email a Contact','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:27:\"CRM_Contact_Form_Task_Email\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(40,1,'civicrm/contact/map',NULL,'Map Location(s)','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:25:\"CRM_Contact_Form_Task_Map\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,1,NULL,0,1,1,0,NULL,'a:0:{}'),(41,1,'civicrm/contact/map/event',NULL,'Map Event Location','s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:31:\"CRM_Contact_Form_Task_Map_Event\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Map Location(s)\";s:3:\"url\";s:28:\"/civicrm/contact/map?reset=1\";}}',NULL,NULL,NULL,NULL,1,NULL,0,1,1,0,NULL,'a:0:{}'),(42,1,'civicrm/contact/view','cid=%%cid%%','Contact Summary','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:29:\"CRM_Contact_Page_View_Summary\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(43,1,'civicrm/contact/view/delete',NULL,'Delete Contact','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:28:\"CRM_Contact_Form_Task_Delete\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(44,1,'civicrm/contact/view/activity','show=1,cid=%%cid%%','Activities','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:21:\"CRM_Activity_Page_Tab\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(45,1,'civicrm/activity/add','action=add','Activities','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:26:\"CRM_Activity_Form_Activity\";','s:14:\"attachUpload=1\";','a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:12:\"New Activity\";s:3:\"url\";s:63:\"/civicrm/activity?reset=1&amp;action=add&amp;context=standalone\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(46,1,'civicrm/activity/email/add','action=add','Activities','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:27:\"CRM_Contact_Form_Task_Email\";','s:14:\"attachUpload=1\";','a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:12:\"New Activity\";s:3:\"url\";s:63:\"/civicrm/activity?reset=1&amp;action=add&amp;context=standalone\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(47,1,'civicrm/activity/pdf/add','action=add','Activities','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:25:\"CRM_Contact_Form_Task_PDF\";','s:14:\"attachUpload=1\";','a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:12:\"New Activity\";s:3:\"url\";s:63:\"/civicrm/activity?reset=1&amp;action=add&amp;context=standalone\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(48,1,'civicrm/contact/view/rel','cid=%%cid%%','Relationships','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:34:\"CRM_Contact_Page_View_Relationship\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(49,1,'civicrm/contact/view/group','cid=%%cid%%','Groups','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:34:\"CRM_Contact_Page_View_GroupContact\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(50,1,'civicrm/contact/view/smartgroup','cid=%%cid%%','Smart Groups','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:39:\"CRM_Contact_Page_View_ContactSmartGroup\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(51,1,'civicrm/contact/view/note','cid=%%cid%%','Notes','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:26:\"CRM_Contact_Page_View_Note\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(52,1,'civicrm/contact/view/tag','cid=%%cid%%','Tags','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:25:\"CRM_Contact_Page_View_Tag\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(53,1,'civicrm/contact/view/cd',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:32:\"CRM_Contact_Page_View_CustomData\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(54,1,'civicrm/contact/view/cd/edit',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:27:\"CRM_Contact_Form_CustomData\";','s:13:\"addSequence=1\";','a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(55,1,'civicrm/contact/view/vcard',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:27:\"CRM_Contact_Page_View_Vcard\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(56,1,'civicrm/contact/view/print',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:27:\"CRM_Contact_Page_View_Print\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(57,1,'civicrm/contact/view/log',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:25:\"CRM_Contact_Page_View_Log\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(58,1,'civicrm/user',NULL,'Contact Dashboard','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:24:\"access Contact Dashboard\";}i:1;s:3:\"and\";}','s:35:\"CRM_Contact_Page_View_UserDashBoard\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,1,NULL,0,0,1,0,NULL,'a:0:{}'),(59,1,'civicrm/dashlet/activity',NULL,'Activity Dashlet','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:25:\"CRM_Dashlet_Page_Activity\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:16:\"CiviCRM Dashlets\";s:3:\"url\";s:24:\"/civicrm/dashlet?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(60,1,'civicrm/dashlet/blog',NULL,'CiviCRM Blog','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:21:\"CRM_Dashlet_Page_Blog\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:16:\"CiviCRM Dashlets\";s:3:\"url\";s:24:\"/civicrm/dashlet?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(61,1,'civicrm/dashlet/getting-started',NULL,'CiviCRM Resources','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:31:\"CRM_Dashlet_Page_GettingStarted\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:16:\"CiviCRM Dashlets\";s:3:\"url\";s:24:\"/civicrm/dashlet?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(62,1,'civicrm/ajax/relation',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:12:\"relationship\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,3,NULL,'a:0:{}'),(63,1,'civicrm/ajax/groupTree',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:9:\"groupTree\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(64,1,'civicrm/ajax/custom',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:11:\"customField\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(65,1,'civicrm/ajax/customvalue',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:17:\"deleteCustomValue\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,3,NULL,'a:0:{}'),(66,1,'civicrm/ajax/cmsuser',NULL,NULL,'s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:13:\"checkUserName\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(67,1,'civicrm/ajax/checkemail',NULL,NULL,'s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:15:\"getContactEmail\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(68,1,'civicrm/ajax/checkphone',NULL,NULL,'s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:15:\"getContactPhone\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(69,1,'civicrm/ajax/subtype',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:13:\"buildSubTypes\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(70,1,'civicrm/ajax/dashboard',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:9:\"dashboard\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,3,NULL,'a:0:{}'),(71,1,'civicrm/ajax/signature',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:12:\"getSignature\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(72,1,'civicrm/ajax/pdfFormat',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:9:\"pdfFormat\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(73,1,'civicrm/ajax/paperSize',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:9:\"paperSize\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(74,1,'civicrm/ajax/contactref',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:31:\"access contact reference fields\";i:1;s:15:\" access CiviCRM\";}i:1;s:2:\"or\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:16:\"contactReference\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(75,1,'civicrm/dashlet/myCases',NULL,'Case Dashlet','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:24:\"CRM_Dashlet_Page_MyCases\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:16:\"CiviCRM Dashlets\";s:3:\"url\";s:24:\"/civicrm/dashlet?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(76,1,'civicrm/dashlet/allCases',NULL,'All Cases Dashlet','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:31:\"access all cases and activities\";}i:1;s:3:\"and\";}','s:25:\"CRM_Dashlet_Page_AllCases\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:16:\"CiviCRM Dashlets\";s:3:\"url\";s:24:\"/civicrm/dashlet?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(77,1,'civicrm/dashlet/casedashboard',NULL,'Case Dashboard Dashlet','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:30:\"CRM_Dashlet_Page_CaseDashboard\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:16:\"CiviCRM Dashlets\";s:3:\"url\";s:24:\"/civicrm/dashlet?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(78,1,'civicrm/contact/deduperules',NULL,'Find and Merge Duplicate Contacts','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:23:\"administer dedupe rules\";i:1;s:24:\"merge duplicate contacts\";}i:1;s:2:\"or\";}','s:28:\"CRM_Contact_Page_DedupeRules\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,105,1,0,NULL,'a:3:{s:4:\"desc\";s:158:\"Manage the rules used to identify potentially duplicate contact records. Scan for duplicates using a selected rule and merge duplicate contact data as needed.\";s:10:\"adminGroup\";s:6:\"Manage\";s:4:\"icon\";s:34:\"admin/small/duplicate_matching.png\";}'),(79,1,'civicrm/contact/dedupefind',NULL,'Find and Merge Duplicate Contacts','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:24:\"merge duplicate contacts\";}i:1;s:3:\"and\";}','s:27:\"CRM_Contact_Page_DedupeFind\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(80,1,'civicrm/ajax/dedupefind',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:24:\"merge duplicate contacts\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:10:\"getDedupes\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(81,1,'civicrm/contact/dedupemerge',NULL,'Batch Merge Duplicate Contacts','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:24:\"merge duplicate contacts\";}i:1;s:3:\"and\";}','s:28:\"CRM_Contact_Page_DedupeMerge\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(82,1,'civicrm/dedupe/exception',NULL,'Dedupe Exceptions','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:32:\"CRM_Contact_Page_DedupeException\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,110,1,0,NULL,'a:1:{s:10:\"adminGroup\";s:6:\"Manage\";}'),(83,1,'civicrm/ajax/dedupeRules',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:16:\"buildDedupeRules\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(84,1,'civicrm/contact/view/useradd','cid=%%cid%%','Add User','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:29:\"CRM_Contact_Page_View_Useradd\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(85,1,'civicrm/ajax/markSelection',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:22:\"selectUnselectContacts\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(86,1,'civicrm/ajax/toggleDedupeSelect',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:24:\"merge duplicate contacts\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:18:\"toggleDedupeSelect\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(87,1,'civicrm/ajax/flipDupePairs',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:24:\"merge duplicate contacts\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:13:\"flipDupePairs\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(88,1,'civicrm/activity/sms/add','action=add','Activities','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:8:\"send SMS\";}i:1;s:3:\"and\";}','s:25:\"CRM_Contact_Form_Task_SMS\";','s:14:\"attachUpload=1\";','a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:12:\"New Activity\";s:3:\"url\";s:63:\"/civicrm/activity?reset=1&amp;action=add&amp;context=standalone\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(89,1,'civicrm/ajax/contactrelationships',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"view my contact\";}i:1;s:2:\"or\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:23:\"getContactRelationships\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(90,1,'civicrm/pcp',NULL,NULL,'s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:16:\"CRM_PCP_Form_PCP\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,1,NULL,0,1,1,0,NULL,'a:0:{}'),(91,1,'civicrm/pcp/campaign',NULL,'Setup a Personal Campaign Page - Account Information','s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:25:\"make online contributions\";}i:1;s:3:\"and\";}','s:22:\"CRM_PCP_Controller_PCP\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,1,NULL,0,0,1,0,NULL,'a:0:{}'),(92,1,'civicrm/pcp/info',NULL,NULL,'s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:20:\"CRM_PCP_Page_PCPInfo\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,1,NULL,0,1,1,0,NULL,'a:0:{}'),(93,1,'civicrm/admin/pcp','context=contribute','Personal Campaign Pages','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:16:\"CRM_PCP_Page_PCP\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,362,1,0,NULL,'a:3:{s:4:\"desc\";s:49:\"View and manage existing personal campaign pages.\";s:10:\"adminGroup\";s:14:\"CiviContribute\";s:4:\"icon\";s:34:\"admin/small/contribution_types.png\";}'),(94,1,'civicrm/activity','action=add&context=standalone','New Activity','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:26:\"CRM_Activity_Form_Activity\";','s:14:\"attachUpload=1\";','a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(95,1,'civicrm/activity/view',NULL,'View Activity','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:30:\"CRM_Activity_Form_ActivityView\";','s:14:\"attachUpload=1\";','a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:12:\"New Activity\";s:3:\"url\";s:63:\"/civicrm/activity?reset=1&amp;action=add&amp;context=standalone\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(96,1,'civicrm/ajax/activity',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:22:\"CRM_Activity_Page_AJAX\";i:1;s:15:\"getCaseActivity\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(97,1,'civicrm/ajax/globalrelationships',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:22:\"CRM_Activity_Page_AJAX\";i:1;s:26:\"getCaseGlobalRelationships\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(98,1,'civicrm/ajax/clientrelationships',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:22:\"CRM_Activity_Page_AJAX\";i:1;s:26:\"getCaseClientRelationships\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(99,1,'civicrm/ajax/caseroles',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:22:\"CRM_Activity_Page_AJAX\";i:1;s:12:\"getCaseRoles\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(100,1,'civicrm/ajax/contactactivity',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:22:\"CRM_Activity_Page_AJAX\";i:1;s:18:\"getContactActivity\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(101,1,'civicrm/ajax/activity/convert',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:22:\"CRM_Activity_Page_AJAX\";i:1;s:21:\"convertToCaseActivity\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,3,NULL,'a:0:{}'),(102,1,'civicrm/activity/search',NULL,'Find Activities','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:30:\"CRM_Activity_Controller_Search\";','s:14:\"attachUpload=1\";','a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:12:\"New Activity\";s:3:\"url\";s:63:\"/civicrm/activity?reset=1&amp;action=add&amp;context=standalone\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(103,1,'civicrm/custom',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:32:\"CRM_Custom_Form_CustomDataByType\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(104,1,'civicrm/profile',NULL,NULL,'s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:23:\"CRM_Profile_Page_Router\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,1,NULL,0,0,1,0,NULL,'a:0:{}'),(105,1,'civicrm/profile/create',NULL,'CiviCRM Profile Create','s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:23:\"CRM_Profile_Page_Router\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,1,NULL,0,0,1,0,NULL,'a:0:{}'),(106,1,'civicrm/profile/view',NULL,NULL,'s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:21:\"CRM_Profile_Page_View\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,1,NULL,0,1,1,0,NULL,'a:0:{}'),(107,1,'civicrm/ajax/jqState',NULL,NULL,'s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:27:\"CRM_Core_Page_AJAX_Location\";i:1;s:7:\"jqState\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,1,NULL,0,1,1,0,NULL,'a:0:{}'),(108,1,'civicrm/ajax/jqCounty',NULL,NULL,'s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:27:\"CRM_Core_Page_AJAX_Location\";i:1;s:8:\"jqCounty\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,1,NULL,0,1,1,0,NULL,'a:0:{}'),(109,1,'civicrm/admin/custom/group',NULL,'Custom Data','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:21:\"CRM_Custom_Page_Group\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,10,1,0,NULL,'a:3:{s:4:\"desc\";s:109:\"Configure custom fields to collect and store custom data which is not included in the standard CiviCRM forms.\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";s:4:\"icon\";s:26:\"admin/small/custm_data.png\";}'),(110,1,'civicrm/admin/custom/group/field',NULL,'Custom Data Fields','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:21:\"CRM_Custom_Page_Field\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:11:\"Custom Data\";s:3:\"url\";s:35:\"/civicrm/admin/custom/group?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,11,1,0,0,'a:0:{}'),(111,1,'civicrm/admin/custom/group/field/option',NULL,'Custom Field - Options','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Custom_Page_Option\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:11:\"Custom Data\";s:3:\"url\";s:35:\"/civicrm/admin/custom/group?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,0,NULL,'a:0:{}'),(112,1,'civicrm/admin/custom/group/field/add',NULL,'Custom Field - Add','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:21:\"CRM_Custom_Form_Field\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:11:\"Custom Data\";s:3:\"url\";s:35:\"/civicrm/admin/custom/group?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,0,NULL,'a:0:{}'),(113,1,'civicrm/admin/custom/group/field/update',NULL,'Custom Field - Edit','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:21:\"CRM_Custom_Form_Field\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:11:\"Custom Data\";s:3:\"url\";s:35:\"/civicrm/admin/custom/group?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,0,NULL,'a:0:{}'),(114,1,'civicrm/admin/custom/group/field/move',NULL,'Custom Field - Move','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:25:\"CRM_Custom_Form_MoveField\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:11:\"Custom Data\";s:3:\"url\";s:35:\"/civicrm/admin/custom/group?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,0,NULL,'a:0:{}'),(115,1,'civicrm/admin/custom/group/field/changetype',NULL,'Custom Field - Change Type','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:31:\"CRM_Custom_Form_ChangeFieldType\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:11:\"Custom Data\";s:3:\"url\";s:35:\"/civicrm/admin/custom/group?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,0,NULL,'a:0:{}'),(116,1,'civicrm/admin/uf/group',NULL,'Profiles','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:17:\"CRM_UF_Page_Group\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,20,1,0,NULL,'a:3:{s:4:\"desc\";s:151:\"Profiles allow you to aggregate groups of fields and include them in your site as input forms, contact display pages, and search and listings features.\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";s:4:\"icon\";s:23:\"admin/small/Profile.png\";}'),(117,1,'civicrm/admin/uf/group/field',NULL,'CiviCRM Profile Fields','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:17:\"CRM_UF_Page_Field\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:8:\"Profiles\";s:3:\"url\";s:31:\"/civicrm/admin/uf/group?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,21,1,0,0,'a:0:{}'),(118,1,'civicrm/admin/uf/group/field/add',NULL,'Add Field','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:17:\"CRM_UF_Form_Field\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:8:\"Profiles\";s:3:\"url\";s:31:\"/civicrm/admin/uf/group?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,22,1,0,NULL,'a:0:{}'),(119,1,'civicrm/admin/uf/group/field/update',NULL,'Edit Field','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:17:\"CRM_UF_Form_Field\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:8:\"Profiles\";s:3:\"url\";s:31:\"/civicrm/admin/uf/group?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,23,1,0,NULL,'a:0:{}'),(120,1,'civicrm/admin/uf/group/add',NULL,'New CiviCRM Profile','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:17:\"CRM_UF_Form_Group\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:8:\"Profiles\";s:3:\"url\";s:31:\"/civicrm/admin/uf/group?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,24,1,0,NULL,'a:0:{}'),(121,1,'civicrm/admin/uf/group/update',NULL,'Profile Settings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:17:\"CRM_UF_Form_Group\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:8:\"Profiles\";s:3:\"url\";s:31:\"/civicrm/admin/uf/group?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,25,1,0,NULL,'a:0:{}'),(122,1,'civicrm/admin/uf/group/setting',NULL,'AdditionalInfo Form','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:26:\"CRM_UF_Form_AdvanceSetting\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:8:\"Profiles\";s:3:\"url\";s:31:\"/civicrm/admin/uf/group?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,0,1,0,NULL,'a:0:{}'),(123,1,'civicrm/admin/options/activity_type',NULL,'Activity Types','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,30,1,0,NULL,'a:3:{s:4:\"desc\";s:155:\"CiviCRM has several built-in activity types (meetings, phone calls, emails sent). Track other types of interactions by creating custom activity types here.\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";s:4:\"icon\";s:18:\"admin/small/05.png\";}'),(124,1,'civicrm/admin/reltype',NULL,'Relationship Types','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:31:\"CRM_Admin_Page_RelationshipType\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,35,1,0,NULL,'a:3:{s:4:\"desc\";s:148:\"Contacts can be linked to each other through Relationships (e.g. Spouse, Employer, etc.). Define the types of relationships you want to record here.\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";s:4:\"icon\";s:25:\"admin/small/rela_type.png\";}'),(125,1,'civicrm/admin/options/subtype',NULL,'Contact Types','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:26:\"CRM_Admin_Page_ContactType\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,40,1,0,NULL,'a:2:{s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";s:4:\"icon\";s:18:\"admin/small/09.png\";}'),(126,1,'civicrm/admin/options/gender',NULL,'Gender Options','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,45,1,0,NULL,'a:3:{s:4:\"desc\";s:79:\"Options for assigning gender to individual contacts (e.g. Male, Female, Other).\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";s:4:\"icon\";s:18:\"admin/small/01.png\";}'),(127,1,'civicrm/admin/options/individual_prefix',NULL,'Individual Prefixes (Ms, Mr...)','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,50,1,0,NULL,'a:3:{s:4:\"desc\";s:66:\"Options for individual contact prefixes (e.g. Ms., Mr., Dr. etc.).\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";s:4:\"icon\";s:21:\"admin/small/title.png\";}'),(128,1,'civicrm/admin/options/individual_suffix',NULL,'Individual Suffixes (Jr, Sr...)','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,55,1,0,NULL,'a:3:{s:4:\"desc\";s:61:\"Options for individual contact suffixes (e.g. Jr., Sr. etc.).\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";s:4:\"icon\";s:18:\"admin/small/10.png\";}'),(129,1,'civicrm/admin/locationType',NULL,'Location Types (Home, Work...)','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:27:\"CRM_Admin_Page_LocationType\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,60,1,0,NULL,'a:3:{s:4:\"desc\";s:94:\"Options for categorizing contact addresses and phone numbers (e.g. Home, Work, Billing, etc.).\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";s:4:\"icon\";s:18:\"admin/small/13.png\";}'),(130,1,'civicrm/admin/options/website_type',NULL,'Website Types','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,65,1,0,NULL,'a:2:{s:4:\"desc\";s:48:\"Options for assigning website types to contacts.\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";}'),(131,1,'civicrm/admin/options/instant_messenger_service',NULL,'Instant Messenger Services','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,70,1,0,NULL,'a:3:{s:4:\"desc\";s:79:\"List of IM services which can be used when recording screen-names for contacts.\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";s:4:\"icon\";s:18:\"admin/small/07.png\";}'),(132,1,'civicrm/admin/options/mobile_provider',NULL,'Mobile Phone Providers','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,75,1,0,NULL,'a:3:{s:4:\"desc\";s:90:\"List of mobile phone providers which can be assigned when recording contact phone numbers.\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";s:4:\"icon\";s:18:\"admin/small/08.png\";}'),(133,1,'civicrm/admin/options/phone_type',NULL,'Phone Type','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,80,1,0,NULL,'a:3:{s:4:\"desc\";s:80:\"Options for assigning phone type to contacts (e.g Phone,\n    Mobile, Fax, Pager)\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";s:4:\"icon\";s:7:\"tel.gif\";}'),(134,1,'civicrm/admin/setting/preferences/display',NULL,'Display Preferences','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:34:\"CRM_Admin_Form_Preferences_Display\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,90,1,0,NULL,'a:2:{s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";s:4:\"icon\";s:18:\"admin/small/36.png\";}'),(135,1,'civicrm/admin/setting/search',NULL,'Search Preferences','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:29:\"CRM_Admin_Form_Setting_Search\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,95,1,0,NULL,'a:2:{s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";s:4:\"icon\";s:18:\"admin/small/36.png\";}'),(136,1,'civicrm/admin/setting/preferences/date',NULL,'View Date Preferences','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:30:\"CRM_Admin_Page_PreferencesDate\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,0,NULL,'a:0:{}'),(137,1,'civicrm/admin/menu',NULL,'Navigation Menu','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:25:\"CRM_Admin_Page_Navigation\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,100,1,0,NULL,'a:3:{s:4:\"desc\";s:79:\"Add or remove menu items, and modify the order of items on the navigation menu.\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";s:4:\"icon\";s:24:\"admin/small/template.png\";}'),(138,1,'civicrm/admin/options/wordreplacements',NULL,'Word Replacements','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:31:\"CRM_Admin_Form_WordReplacements\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,105,1,0,NULL,'a:2:{s:4:\"desc\";s:18:\"Word Replacements.\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";}'),(139,1,'civicrm/admin/options/custom_search',NULL,'Manage Custom Searches','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,110,1,0,NULL,'a:3:{s:4:\"desc\";s:225:\"Developers and accidental techies with a bit of PHP and SQL knowledge can create new search forms to handle specific search and reporting needs which aren\'t covered by the built-in Advanced Search and Search Builder features.\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";s:4:\"icon\";s:24:\"admin/small/template.png\";}'),(140,1,'civicrm/admin/domain','action=update','Organization Address and Contact Info','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:23:\"CRM_Contact_Form_Domain\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,10,1,0,NULL,'a:3:{s:4:\"desc\";s:150:\"Configure primary contact name, email, return-path and address information. This information is used by CiviMail to identify the sending organization.\";s:10:\"adminGroup\";s:14:\"Communications\";s:4:\"icon\";s:22:\"admin/small/domain.png\";}'),(141,1,'civicrm/admin/options/from_email_address',NULL,'From Email Addresses','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,20,1,0,NULL,'a:3:{s:4:\"desc\";s:74:\"List of Email Addresses which can be used when sending emails to contacts.\";s:10:\"adminGroup\";s:14:\"Communications\";s:4:\"icon\";s:21:\"admin/small/title.png\";}'),(142,1,'civicrm/admin/messageTemplates',NULL,'Message Templates','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:22:\"edit message templates\";i:1;s:34:\"edit user-driven message templates\";i:2;s:38:\"edit system workflow message templates\";}i:1;s:2:\"or\";}','s:31:\"CRM_Admin_Page_MessageTemplates\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,30,1,0,NULL,'a:3:{s:4:\"desc\";s:130:\"Message templates allow you to save and re-use messages with layouts which you can use when sending email to one or more contacts.\";s:10:\"adminGroup\";s:14:\"Communications\";s:4:\"icon\";s:24:\"admin/small/template.png\";}'),(143,1,'civicrm/admin/messageTemplates/add',NULL,'Message Templates','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:22:\"edit message templates\";i:1;s:34:\"edit user-driven message templates\";i:2;s:38:\"edit system workflow message templates\";}i:1;s:2:\"or\";}','s:31:\"CRM_Admin_Form_MessageTemplates\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:17:\"Message Templates\";s:3:\"url\";s:39:\"/civicrm/admin/messageTemplates?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,262,1,0,NULL,'a:1:{s:4:\"desc\";s:26:\"Add/Edit Message Templates\";}'),(144,1,'civicrm/admin/scheduleReminders',NULL,'Schedule Reminders','s:1:\"1\";','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:15:\"edit all events\";}i:1;s:2:\"or\";}','s:32:\"CRM_Admin_Page_ScheduleReminders\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,40,1,0,NULL,'a:3:{s:4:\"desc\";s:19:\"Schedule Reminders.\";s:10:\"adminGroup\";s:14:\"Communications\";s:4:\"icon\";s:24:\"admin/small/template.png\";}'),(145,1,'civicrm/admin/weight',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:16:\"CRM_Utils_Weight\";i:1;s:8:\"fixOrder\";}',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,0,NULL,'a:0:{}'),(146,1,'civicrm/admin/options/preferred_communication_method',NULL,'Preferred Communication Methods','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,50,1,0,NULL,'a:3:{s:4:\"desc\";s:117:\"One or more preferred methods of communication can be assigned to each contact. Customize the available options here.\";s:10:\"adminGroup\";s:14:\"Communications\";s:4:\"icon\";s:29:\"admin/small/communication.png\";}'),(147,1,'civicrm/admin/labelFormats',NULL,'Label Formats','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:27:\"CRM_Admin_Page_LabelFormats\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,60,1,0,NULL,'a:3:{s:4:\"desc\";s:67:\"Configure Label Formats that are used when creating mailing labels.\";s:10:\"adminGroup\";s:14:\"Communications\";s:4:\"icon\";s:24:\"admin/small/template.png\";}'),(148,1,'civicrm/admin/pdfFormats',NULL,'Print Page (PDF) Formats','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:25:\"CRM_Admin_Page_PdfFormats\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,70,1,0,NULL,'a:3:{s:4:\"desc\";s:95:\"Configure PDF Page Formats that can be assigned to Message Templates when creating PDF letters.\";s:10:\"adminGroup\";s:14:\"Communications\";s:4:\"icon\";s:24:\"admin/small/template.png\";}'),(149,1,'civicrm/admin/options/communication_style',NULL,'Communication Style Options','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,75,1,0,NULL,'a:3:{s:4:\"desc\";s:42:\"Options for Communication Style selection.\";s:10:\"adminGroup\";s:14:\"Communications\";s:4:\"icon\";s:18:\"admin/small/01.png\";}'),(150,1,'civicrm/admin/options/email_greeting',NULL,'Email Greeting Formats','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,80,1,0,NULL,'a:3:{s:4:\"desc\";s:75:\"Options for assigning email greetings to individual and household contacts.\";s:10:\"adminGroup\";s:14:\"Communications\";s:4:\"icon\";s:18:\"admin/small/01.png\";}'),(151,1,'civicrm/admin/options/postal_greeting',NULL,'Postal Greeting Formats','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,90,1,0,NULL,'a:3:{s:4:\"desc\";s:76:\"Options for assigning postal greetings to individual and household contacts.\";s:10:\"adminGroup\";s:14:\"Communications\";s:4:\"icon\";s:18:\"admin/small/01.png\";}'),(152,1,'civicrm/admin/options/addressee',NULL,'Addressee Formats','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,100,1,0,NULL,'a:3:{s:4:\"desc\";s:83:\"Options for assigning addressee to individual, household and organization contacts.\";s:10:\"adminGroup\";s:14:\"Communications\";s:4:\"icon\";s:18:\"admin/small/01.png\";}'),(153,1,'civicrm/admin/setting/localization',NULL,'Languages, Currency, Locations','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:35:\"CRM_Admin_Form_Setting_Localization\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,10,1,0,NULL,'a:2:{s:10:\"adminGroup\";s:12:\"Localization\";s:4:\"icon\";s:18:\"admin/small/36.png\";}'),(154,1,'civicrm/admin/setting/preferences/address',NULL,'Address Settings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:34:\"CRM_Admin_Form_Preferences_Address\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,20,1,0,NULL,'a:2:{s:10:\"adminGroup\";s:12:\"Localization\";s:4:\"icon\";s:18:\"admin/small/36.png\";}'),(155,1,'civicrm/admin/setting/date',NULL,'Date Formats','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:27:\"CRM_Admin_Form_Setting_Date\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,30,1,0,NULL,'a:2:{s:10:\"adminGroup\";s:12:\"Localization\";s:4:\"icon\";s:18:\"admin/small/36.png\";}'),(156,1,'civicrm/admin/options/languages',NULL,'Preferred Languages','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,40,1,0,NULL,'a:3:{s:4:\"desc\";s:30:\"Options for contact languages.\";s:10:\"adminGroup\";s:12:\"Localization\";s:4:\"icon\";s:18:\"admin/small/36.png\";}'),(157,1,'civicrm/admin/access',NULL,'Access Control','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:21:\"CRM_Admin_Page_Access\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,10,1,0,NULL,'a:3:{s:4:\"desc\";s:73:\"Grant or deny access to actions (view, edit...), features and components.\";s:10:\"adminGroup\";s:21:\"Users and Permissions\";s:4:\"icon\";s:18:\"admin/small/03.png\";}'),(158,1,'civicrm/admin/access/wp-permissions',NULL,'WordPress Access Control','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:34:\"CRM_ACL_Form_WordPress_Permissions\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:14:\"Access Control\";s:3:\"url\";s:29:\"/civicrm/admin/access?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,10,1,0,NULL,'a:1:{s:4:\"desc\";s:65:\"Grant access to CiviCRM components and other CiviCRM permissions.\";}'),(159,1,'civicrm/admin/synchUser',NULL,'Synchronize Users to Contacts','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Form_CMSUser\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,20,1,0,NULL,'a:3:{s:4:\"desc\";s:71:\"Automatically create a CiviCRM contact record for each CMS user record.\";s:10:\"adminGroup\";s:21:\"Users and Permissions\";s:4:\"icon\";s:26:\"admin/small/Synch_user.png\";}'),(160,1,'civicrm/admin/configtask',NULL,'Configuration Checklist','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:29:\"CRM_Admin_Page_ConfigTaskList\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}','civicrm/admin/configtask',NULL,NULL,NULL,NULL,NULL,1,1,1,0,NULL,'a:3:{s:4:\"desc\";s:55:\"List of configuration tasks with links to each setting.\";s:10:\"adminGroup\";s:15:\"System Settings\";s:4:\"icon\";s:9:\"check.gif\";}'),(161,1,'civicrm/admin/setting/component',NULL,'Enable CiviCRM Components','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:32:\"CRM_Admin_Form_Setting_Component\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,10,1,0,NULL,'a:3:{s:4:\"desc\";s:269:\"Enable or disable components (e.g. CiviEvent, CiviMember, etc.) for your site based on the features you need. We recommend disabling any components not being used in order to simplify the user interface. You can easily re-enable components at any time from this screen.\";s:10:\"adminGroup\";s:15:\"System Settings\";s:4:\"icon\";s:18:\"admin/small/36.png\";}'),(162,1,'civicrm/admin/extensions',NULL,'Manage Extensions','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:18:\"administer CiviCRM\";}i:1;s:3:\"and\";}','s:25:\"CRM_Admin_Page_Extensions\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,120,1,0,NULL,'a:3:{s:4:\"desc\";s:0:\"\";s:10:\"adminGroup\";s:15:\"System Settings\";s:4:\"icon\";s:26:\"admin/small/price_sets.png\";}'),(163,1,'civicrm/admin/extensions/upgrade',NULL,'Database Upgrades','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:18:\"administer CiviCRM\";}i:1;s:3:\"and\";}','s:32:\"CRM_Admin_Page_ExtensionsUpgrade\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:17:\"Manage Extensions\";s:3:\"url\";s:33:\"/civicrm/admin/extensions?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,0,NULL,'a:0:{}'),(164,1,'civicrm/admin/setting/smtp',NULL,'Outbound Email Settings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:27:\"CRM_Admin_Form_Setting_Smtp\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,20,1,0,NULL,'a:2:{s:10:\"adminGroup\";s:15:\"System Settings\";s:4:\"icon\";s:18:\"admin/small/07.png\";}'),(165,1,'civicrm/admin/paymentProcessor',NULL,'Settings - Payment Processor','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:29:\"administer payment processors\";}i:1;s:3:\"and\";}','s:31:\"CRM_Admin_Page_PaymentProcessor\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,30,1,0,NULL,'a:3:{s:4:\"desc\";s:48:\"Payment Processor setup for CiviCRM transactions\";s:10:\"adminGroup\";s:15:\"System Settings\";s:4:\"icon\";s:41:\"admin/small/online_contribution_pages.png\";}'),(166,1,'civicrm/admin/setting/mapping',NULL,'Mapping and Geocoding','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:30:\"CRM_Admin_Form_Setting_Mapping\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,40,1,0,NULL,'a:2:{s:10:\"adminGroup\";s:15:\"System Settings\";s:4:\"icon\";s:18:\"admin/small/36.png\";}'),(167,1,'civicrm/admin/setting/misc',NULL,'Misc (Undelete, PDFs, Limits, Logging, Captcha, etc.)','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:36:\"CRM_Admin_Form_Setting_Miscellaneous\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,50,1,0,NULL,'a:3:{s:4:\"desc\";s:91:\"Enable undelete/move to trash feature, detailed change logging, ReCAPTCHA to protect forms.\";s:10:\"adminGroup\";s:15:\"System Settings\";s:4:\"icon\";s:18:\"admin/small/36.png\";}'),(168,1,'civicrm/admin/setting/path',NULL,'Directories','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:27:\"CRM_Admin_Form_Setting_Path\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,60,1,0,NULL,'a:2:{s:10:\"adminGroup\";s:15:\"System Settings\";s:4:\"icon\";s:18:\"admin/small/36.png\";}'),(169,1,'civicrm/admin/setting/url',NULL,'Resource URLs','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:26:\"CRM_Admin_Form_Setting_Url\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,70,1,0,NULL,'a:2:{s:10:\"adminGroup\";s:15:\"System Settings\";s:4:\"icon\";s:18:\"admin/small/36.png\";}'),(170,1,'civicrm/admin/setting/updateConfigBackend',NULL,'Cleanup Caches and Update Paths','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:42:\"CRM_Admin_Form_Setting_UpdateConfigBackend\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,80,1,0,NULL,'a:3:{s:4:\"desc\";s:157:\"Reset the Base Directory Path and Base URL settings - generally when a CiviCRM site is moved to another location in the file system and/or to another domain.\";s:10:\"adminGroup\";s:15:\"System Settings\";s:4:\"icon\";s:26:\"admin/small/updatepath.png\";}'),(171,1,'civicrm/admin/setting/uf',NULL,'CMS Database Integration','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:25:\"CRM_Admin_Form_Setting_UF\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,90,1,0,NULL,'a:2:{s:10:\"adminGroup\";s:15:\"System Settings\";s:4:\"icon\";s:18:\"admin/small/36.png\";}'),(172,1,'civicrm/admin/options/safe_file_extension',NULL,'Safe File Extension Options','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,100,1,0,NULL,'a:3:{s:4:\"desc\";s:44:\"File Extensions that can be considered safe.\";s:10:\"adminGroup\";s:15:\"System Settings\";s:4:\"icon\";s:18:\"admin/small/01.png\";}'),(173,1,'civicrm/admin/options',NULL,'Option Groups','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,105,1,0,NULL,'a:3:{s:4:\"desc\";s:35:\"Access all meta-data option groups.\";s:10:\"adminGroup\";s:15:\"System Settings\";s:4:\"icon\";s:18:\"admin/small/01.png\";}'),(174,1,'civicrm/admin/mapping',NULL,'Import/Export Mappings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Mapping\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,110,1,0,NULL,'a:3:{s:4:\"desc\";s:141:\"Import and Export mappings allow you to easily run the same job multiple times. This option allows you to rename or delete existing mappings.\";s:10:\"adminGroup\";s:15:\"System Settings\";s:4:\"icon\";s:33:\"admin/small/import_export_map.png\";}'),(175,1,'civicrm/admin/setting/debug',NULL,'Debugging','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:32:\"CRM_Admin_Form_Setting_Debugging\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,120,1,0,NULL,'a:2:{s:10:\"adminGroup\";s:15:\"System Settings\";s:4:\"icon\";s:18:\"admin/small/36.png\";}'),(176,1,'civicrm/admin/setting/preferences/multisite',NULL,'Multi Site Settings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Form_Generic\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,130,1,0,NULL,'a:2:{s:10:\"adminGroup\";s:15:\"System Settings\";s:4:\"icon\";s:18:\"admin/small/36.png\";}'),(177,1,'civicrm/admin/setting/preferences/campaign',NULL,'CiviCampaign Component Settings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Form_Generic\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,10,1,0,NULL,'a:3:{s:4:\"desc\";s:40:\"Configure global CiviCampaign behaviors.\";s:10:\"adminGroup\";s:12:\"CiviCampaign\";s:9:\"component\";s:12:\"CiviCampaign\";}'),(178,1,'civicrm/admin/setting/preferences/event',NULL,'CiviEvent Component Settings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:16:\"access CiviEvent\";i:1;s:18:\"administer CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Form_Generic\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,420,1,0,NULL,'a:2:{s:4:\"desc\";s:37:\"Configure global CiviEvent behaviors.\";s:10:\"adminGroup\";s:9:\"CiviEvent\";}'),(179,1,'civicrm/admin/setting/preferences/mailing',NULL,'CiviMail Component Settings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:15:\"access CiviMail\";i:1;s:18:\"administer CiviCRM\";}i:1;s:3:\"and\";}','s:34:\"CRM_Admin_Form_Preferences_Mailing\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,430,1,0,NULL,'a:2:{s:4:\"desc\";s:36:\"Configure global CiviMail behaviors.\";s:10:\"adminGroup\";s:8:\"CiviMail\";}'),(180,1,'civicrm/admin/setting/preferences/member',NULL,'CiviMember Component Settings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:17:\"access CiviMember\";i:1;s:18:\"administer CiviCRM\";}i:1;s:3:\"and\";}','s:33:\"CRM_Admin_Form_Preferences_Member\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,390,1,0,NULL,'a:2:{s:4:\"desc\";s:38:\"Configure global CiviMember behaviors.\";s:10:\"adminGroup\";s:10:\"CiviMember\";}'),(181,1,'civicrm/admin/runjobs',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:18:\"administer CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:16:\"CRM_Utils_System\";i:1;s:20:\"executeScheduledJobs\";}',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,0,NULL,'a:1:{s:4:\"desc\";s:36:\"URL used for running scheduled jobs.\";}'),(182,1,'civicrm/admin/job',NULL,'Scheduled Jobs','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:18:\"administer CiviCRM\";}i:1;s:3:\"and\";}','s:18:\"CRM_Admin_Page_Job\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1370,1,0,NULL,'a:3:{s:4:\"desc\";s:35:\"Managing periodially running tasks.\";s:10:\"adminGroup\";s:15:\"System Settings\";s:4:\"icon\";s:18:\"admin/small/13.png\";}'),(183,1,'civicrm/admin/joblog',NULL,'Scheduled Jobs Log','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:18:\"administer CiviCRM\";}i:1;s:3:\"and\";}','s:21:\"CRM_Admin_Page_JobLog\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1380,1,0,NULL,'a:3:{s:4:\"desc\";s:46:\"Browsing the log of periodially running tasks.\";s:10:\"adminGroup\";s:6:\"Manage\";s:4:\"icon\";s:18:\"admin/small/13.png\";}'),(184,1,'civicrm/admin/options/grant_type',NULL,'Grant Types','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,385,1,0,NULL,'a:3:{s:4:\"desc\";s:148:\"List of types which can be assigned to Grants. (Enable CiviGrant from Administer > Systme Settings > Enable Components if you want to track grants.)\";s:10:\"adminGroup\";s:12:\"Option Lists\";s:4:\"icon\";s:26:\"admin/small/grant_type.png\";}'),(185,1,'civicrm/admin/paymentProcessorType',NULL,'Payment Processor Type','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:35:\"CRM_Admin_Page_PaymentProcessorType\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,390,1,0,NULL,'a:1:{s:4:\"desc\";s:34:\"Payment Processor type information\";}'),(186,1,'civicrm/admin',NULL,'Administer CiviCRM','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:20:\"CRM_Admin_Page_Admin\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,9000,1,1,NULL,'a:0:{}'),(187,1,'civicrm/ajax/navmenu',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:19:\"CRM_Admin_Page_AJAX\";i:1;s:7:\"navMenu\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(188,1,'civicrm/ajax/menutree',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:18:\"administer CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:19:\"CRM_Admin_Page_AJAX\";i:1;s:8:\"menuTree\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,3,NULL,'a:0:{}'),(189,1,'civicrm/ajax/statusmsg',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:19:\"CRM_Admin_Page_AJAX\";i:1;s:12:\"getStatusMsg\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(190,1,'civicrm/admin/price',NULL,'Price Sets','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:18:\"CRM_Price_Page_Set\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,380,1,0,NULL,'a:3:{s:4:\"desc\";s:205:\"Price sets allow you to offer multiple options with associated fees (e.g. pre-conference workshops, additional meals, etc.). Configure Price Sets for events which need more than a single set of fee levels.\";s:10:\"adminGroup\";s:9:\"Customize\";s:4:\"icon\";s:26:\"admin/small/price_sets.png\";}'),(191,1,'civicrm/admin/price/add','action=add','New Price Set','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:18:\"CRM_Price_Page_Set\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:10:\"Price Sets\";s:3:\"url\";s:28:\"/civicrm/admin/price?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,0,NULL,'a:1:{s:4:\"desc\";s:205:\"Price sets allow you to offer multiple options with associated fees (e.g. pre-conference workshops, additional meals, etc.). Configure Price Sets for events which need more than a single set of fee levels.\";}'),(192,1,'civicrm/admin/price/field',NULL,'Price Fields','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:20:\"CRM_Price_Page_Field\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:10:\"Price Sets\";s:3:\"url\";s:28:\"/civicrm/admin/price?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,0,0,'a:0:{}'),(193,1,'civicrm/admin/price/field/option',NULL,'Price Field Options','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:21:\"CRM_Price_Page_Option\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:10:\"Price Sets\";s:3:\"url\";s:28:\"/civicrm/admin/price?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,0,NULL,'a:0:{}'),(194,1,'civicrm/ajax/mapping',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:19:\"CRM_Admin_Page_AJAX\";i:1;s:11:\"mappingList\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(195,1,'civicrm/ajax/recipientListing',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:19:\"CRM_Admin_Page_AJAX\";i:1;s:16:\"recipientListing\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(196,1,'civicrm/admin/sms/provider',NULL,'Sms Providers','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:18:\"administer CiviCRM\";}i:1;s:3:\"and\";}','s:21:\"CRM_SMS_Page_Provider\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,500,1,0,NULL,'a:3:{s:4:\"desc\";s:27:\"To configure a sms provider\";s:10:\"adminGroup\";s:15:\"System Settings\";s:4:\"icon\";s:18:\"admin/small/36.png\";}'),(197,1,'civicrm/sms/send',NULL,'New Mass SMS','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:8:\"send SMS\";}i:1;s:3:\"and\";}','s:23:\"CRM_SMS_Controller_Send\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,610,1,1,NULL,'a:0:{}'),(198,1,'civicrm/sms/callback',NULL,NULL,'s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:21:\"CRM_SMS_Page_Callback\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,1,NULL,0,1,1,0,NULL,'a:0:{}'),(199,1,'civicrm/admin/badgelayout','action=browse','Event Name Badge Layouts','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:21:\"CRM_Badge_Page_Layout\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,399,1,0,NULL,'a:2:{s:4:\"desc\";s:107:\"Configure name badge layouts for event participants, including logos and what data to include on the badge.\";s:10:\"adminGroup\";s:9:\"CiviEvent\";}'),(200,1,'civicrm/admin/badgelayout/add',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:18:\"administer CiviCRM\";}i:1;s:3:\"and\";}','s:21:\"CRM_Badge_Form_Layout\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:24:\"Event Name Badge Layouts\";s:3:\"url\";s:52:\"/civicrm/admin/badgelayout?reset=1&amp;action=browse\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,0,NULL,'a:0:{}'),(201,1,'civicrm/admin/ckeditor',NULL,'Configure CKEditor','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:18:\"administer CiviCRM\";}i:1;s:3:\"and\";}','s:29:\"CRM_Admin_Page_CKEditorConfig\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,0,NULL,'a:0:{}'),(202,1,'civicrm/upgrade',NULL,'Upgrade CiviCRM','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:24:\"CRM_Upgrade_Page_Upgrade\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(203,1,'civicrm/export',NULL,'Download Errors','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Export_BAO_Export\";i:1;s:6:\"invoke\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(204,1,'civicrm/export/contact',NULL,'Export Contacts','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Export_BAO_Export\";i:1;s:6:\"invoke\";}',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Download Errors\";s:3:\"url\";s:23:\"/civicrm/export?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,0,1,0,NULL,'a:0:{}'),(205,1,'civicrm/export/standalone',NULL,'Export','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:32:\"CRM_Export_Controller_Standalone\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Download Errors\";s:3:\"url\";s:23:\"/civicrm/export?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(206,1,'civicrm/admin/options/acl_role',NULL,'ACL Roles','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,0,NULL,'a:0:{}'),(207,1,'civicrm/acl',NULL,'Manage ACLs','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:16:\"CRM_ACL_Page_ACL\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(208,1,'civicrm/acl/entityrole',NULL,'Assign Users to ACL Roles','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:23:\"CRM_ACL_Page_EntityRole\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:11:\"Manage ACLs\";s:3:\"url\";s:20:\"/civicrm/acl?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(209,1,'civicrm/acl/basic',NULL,'ACL','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:21:\"CRM_ACL_Page_ACLBasic\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:11:\"Manage ACLs\";s:3:\"url\";s:20:\"/civicrm/acl?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(210,1,'civicrm/file',NULL,'Browse Uploaded files','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access uploaded files\";}i:1;s:3:\"and\";}','s:18:\"CRM_Core_Page_File\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(211,1,'civicrm/file/delete',NULL,'Delete File','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:17:\"CRM_Core_BAO_File\";i:1;s:16:\"deleteAttachment\";}',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:21:\"Browse Uploaded files\";s:3:\"url\";s:21:\"/civicrm/file?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(212,1,'civicrm/friend',NULL,'Tell a Friend','s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:15:\"CRM_Friend_Form\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,1,NULL,0,1,1,0,NULL,'a:0:{}'),(213,1,'civicrm/logout',NULL,'Log out','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:16:\"CRM_Utils_System\";i:1;s:6:\"logout\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,9999,1,1,NULL,'a:0:{}'),(214,1,'civicrm/i18n',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:17:\"translate CiviCRM\";}i:1;s:3:\"and\";}','s:18:\"CRM_Core_I18n_Form\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(215,1,'civicrm/ajax/attachment',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"access AJAX API\";}i:1;s:2:\"or\";}','a:2:{i:0;s:29:\"CRM_Core_Page_AJAX_Attachment\";i:1;s:10:\"attachFile\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(216,1,'civicrm/api',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Core_Page_Redirect\";','s:16:\"url=civicrm/api3\";','a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(217,1,'civicrm/api3',NULL,'CiviCRM API v3','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:26:\"CRM_Admin_Page_APIExplorer\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(218,1,'civicrm/ajax/apiexample',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:26:\"CRM_Admin_Page_APIExplorer\";i:1;s:14:\"getExampleFile\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(219,1,'civicrm/ajax/apidoc',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:26:\"CRM_Admin_Page_APIExplorer\";i:1;s:6:\"getDoc\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(220,1,'civicrm/ajax/rest',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"access AJAX API\";}i:1;s:2:\"or\";}','a:2:{i:0;s:14:\"CRM_Utils_REST\";i:1;s:4:\"ajax\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(221,1,'civicrm/api/json',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:14:\"CRM_Utils_REST\";i:1;s:8:\"ajaxJson\";}','s:16:\"url=civicrm/api3\";','a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(222,1,'civicrm/inline',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:14:\"CRM_Utils_REST\";i:1;s:12:\"loadTemplate\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(223,1,'civicrm/ajax/chart',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:38:\"CRM_Contribute_Form_ContributionCharts\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(224,1,'civicrm/asset/builder',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"*always allow*\";}i:1;s:3:\"and\";}','a:2:{i:0;s:23:\"\\Civi\\Core\\AssetBuilder\";i:1;s:7:\"pageRun\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(225,1,'civicrm/contribute/ajax/tableview',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:29:\"CRM_Contribute_Page_DashBoard\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(226,1,'civicrm/payment/ipn',NULL,NULL,'s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','a:2:{i:0;s:16:\"CRM_Core_Payment\";i:1;s:9:\"handleIPN\";}',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:11:\"New Payment\";s:3:\"url\";s:39:\"/civicrm/payment?reset=1&amp;action=add\";}}',NULL,NULL,2,NULL,1,NULL,0,1,1,0,NULL,'a:0:{}'),(227,1,'civicrm/batch',NULL,'Batch Data Entry','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:20:\"CRM_Batch_Page_Batch\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(228,1,'civicrm/batch/add',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:20:\"CRM_Batch_Form_Batch\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:16:\"Batch Data Entry\";s:3:\"url\";s:22:\"/civicrm/batch?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(229,1,'civicrm/batch/entry',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:20:\"CRM_Batch_Form_Entry\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:16:\"Batch Data Entry\";s:3:\"url\";s:22:\"/civicrm/batch?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(230,1,'civicrm/ajax/batch',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','a:2:{i:0;s:19:\"CRM_Batch_Page_AJAX\";i:1;s:9:\"batchSave\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(231,1,'civicrm/ajax/batchlist',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:19:\"CRM_Batch_Page_AJAX\";i:1;s:12:\"getBatchList\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(232,1,'civicrm/ajax/inline',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:18:\"CRM_Core_Page_AJAX\";i:1;s:3:\"run\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(233,1,'civicrm/dev/qunit',NULL,'QUnit','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:18:\"administer CiviCRM\";}i:1;s:3:\"and\";}','s:19:\"CRM_Core_Page_QUnit\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(234,1,'civicrm/profile-editor/schema',NULL,'ProfileEditor','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:25:\"CRM_UF_Page_ProfileEditor\";i:1;s:13:\"getSchemaJSON\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(235,1,'civicrm/a',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:23:\"\\Civi\\Angular\\Page\\Main\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(236,1,'civicrm/ajax/angular-modules',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"*always allow*\";}i:1;s:3:\"and\";}','s:26:\"\\Civi\\Angular\\Page\\Modules\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(237,1,'civicrm/ajax/recurringentity/update-mode',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:34:\"CRM_Core_Page_AJAX_RecurringEntity\";i:1;s:10:\"updateMode\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(238,1,'civicrm/recurringentity/preview',NULL,'Confirm dates','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:36:\"CRM_Core_Page_RecurringEntityPreview\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(239,1,'civicrm/ajax/l10n-js',NULL,NULL,'s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:18:\"CRM_Core_Resources\";i:1;s:20:\"outputLocalizationJS\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,1,NULL,0,1,1,0,NULL,'a:0:{}'),(240,1,'civicrm/shortcode',NULL,'Insert CiviCRM Content','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:23:\"CRM_Core_Form_ShortCode\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(241,1,'civicrm/task/add-to-group',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:32:\"CRM_Contact_Form_Task_AddToGroup\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(242,1,'civicrm/task/remove-from-group',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:37:\"CRM_Contact_Form_Task_RemoveFromGroup\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(243,1,'civicrm/task/add-to-tag',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:30:\"CRM_Contact_Form_Task_AddToTag\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(244,1,'civicrm/task/remove-from-tag',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:35:\"CRM_Contact_Form_Task_RemoveFromTag\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(245,1,'civicrm/task/send-email',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:27:\"CRM_Contact_Form_Task_Email\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(246,1,'civicrm/task/make-mailing-label',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:27:\"CRM_Contact_Form_Task_Label\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(247,1,'civicrm/task/pick-profile',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:33:\"CRM_Contact_Form_Task_PickProfile\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(248,1,'civicrm/task/print-document',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:25:\"CRM_Contact_Form_Task_PDF\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(249,1,'civicrm/task/unhold-email',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:28:\"CRM_Contact_Form_Task_Unhold\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(250,1,'civicrm/task/alter-contact-preference',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:38:\"CRM_Contact_Form_Task_AlterPreferences\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(251,1,'civicrm/task/delete-contact',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:28:\"CRM_Contact_Form_Task_Delete\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(252,1,'civicrm/event',NULL,'CiviEvent Dashboard','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:24:\"CRM_Event_Page_DashBoard\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,1,NULL,NULL,NULL,0,800,1,1,NULL,'a:1:{s:9:\"component\";s:9:\"CiviEvent\";}'),(253,1,'civicrm/participant/add','action=add','Register New Participant','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:18:\"CRM_Event_Page_Tab\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:1:{s:9:\"component\";s:9:\"CiviEvent\";}'),(254,1,'civicrm/event/info',NULL,'Event Information','s:1:\"1\";','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:24:\"CRM_Event_Page_EventInfo\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,NULL,1,NULL,0,1,1,0,NULL,'a:0:{}'),(255,1,'civicrm/event/register',NULL,'Event Registration','s:1:\"1\";','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:33:\"CRM_Event_Controller_Registration\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,NULL,1,NULL,1,1,1,0,NULL,'a:0:{}'),(256,1,'civicrm/event/confirm',NULL,'Confirm Event Registration','s:1:\"1\";','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:46:\"CRM_Event_Form_Registration_ParticipantConfirm\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,NULL,1,NULL,1,1,1,0,NULL,'a:0:{}'),(257,1,'civicrm/event/ical',NULL,'Current and Upcoming Events','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:15:\"view event info\";}i:1;s:3:\"and\";}','s:24:\"CRM_Event_Page_ICalendar\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,NULL,1,NULL,0,0,1,0,NULL,'a:0:{}'),(258,1,'civicrm/event/participant',NULL,'Event Participants List','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:23:\"view event participants\";}i:1;s:3:\"and\";}','s:33:\"CRM_Event_Page_ParticipantListing\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,NULL,1,NULL,0,0,1,0,NULL,'a:0:{}'),(259,1,'civicrm/admin/event',NULL,'Manage Events','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:26:\"CRM_Event_Page_ManageEvent\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,370,1,0,NULL,'a:3:{s:4:\"desc\";s:136:\"Create and edit event configuration including times, locations, online registration forms, and fees. Links for iCal and RSS syndication.\";s:10:\"adminGroup\";s:9:\"CiviEvent\";s:4:\"icon\";s:28:\"admin/small/event_manage.png\";}'),(260,1,'civicrm/admin/eventTemplate',NULL,'Event Templates','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:28:\"CRM_Admin_Page_EventTemplate\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,375,1,0,NULL,'a:3:{s:4:\"desc\";s:115:\"Administrators can create Event Templates - which are basically master event records pre-filled with default values\";s:10:\"adminGroup\";s:9:\"CiviEvent\";s:4:\"icon\";s:24:\"admin/small/template.png\";}'),(261,1,'civicrm/admin/options/event_type',NULL,'Event Types','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,385,1,0,NULL,'a:3:{s:4:\"desc\";s:143:\"Use Event Types to categorize your events. Event feeds can be filtered by Event Type and participant searches can use Event Type as a criteria.\";s:10:\"adminGroup\";s:9:\"CiviEvent\";s:4:\"icon\";s:26:\"admin/small/event_type.png\";}'),(262,1,'civicrm/admin/participant_status',NULL,'Participant Status','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:36:\"CRM_Admin_Page_ParticipantStatusType\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,390,1,0,NULL,'a:3:{s:4:\"desc\";s:154:\"Define statuses for event participants here (e.g. Registered, Attended, Cancelled...). You can then assign statuses and search for participants by status.\";s:10:\"adminGroup\";s:9:\"CiviEvent\";s:4:\"icon\";s:28:\"admin/small/parti_status.png\";}'),(263,1,'civicrm/admin/options/participant_role',NULL,'Participant Role','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,395,1,0,NULL,'a:3:{s:4:\"desc\";s:138:\"Define participant roles for events here (e.g. Attendee, Host, Speaker...). You can then assign roles and search for participants by role.\";s:10:\"adminGroup\";s:9:\"CiviEvent\";s:4:\"icon\";s:26:\"admin/small/parti_role.png\";}'),(264,1,'civicrm/admin/options/participant_listing',NULL,'Participant Listing Templates','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,398,1,0,NULL,'a:3:{s:4:\"desc\";s:48:\"Template to control participant listing display.\";s:10:\"adminGroup\";s:9:\"CiviEvent\";s:4:\"icon\";s:18:\"admin/small/01.png\";}'),(265,1,'civicrm/admin/conference_slots','group=conference_slot','Conference Slot Labels','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,415,1,0,NULL,'a:2:{s:4:\"desc\";s:35:\"Define conference slots and labels.\";s:10:\"adminGroup\";s:9:\"CiviEvent\";}'),(266,1,'civicrm/event/search',NULL,'Find Participants','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:27:\"CRM_Event_Controller_Search\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,NULL,NULL,NULL,0,810,1,1,NULL,'a:0:{}'),(267,1,'civicrm/event/manage',NULL,'Manage Events','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:26:\"CRM_Event_Page_ManageEvent\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,NULL,NULL,NULL,1,820,1,1,NULL,'a:0:{}'),(268,1,'civicrm/event/badge',NULL,'Print Event Name Badge','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:25:\"CRM_Event_Form_Task_Badge\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(269,1,'civicrm/event/manage/settings',NULL,'Event Info and Settings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:36:\"CRM_Event_Form_ManageEvent_EventInfo\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Manage Events\";s:3:\"url\";s:29:\"/civicrm/event/manage?reset=1\";}}',NULL,NULL,1,NULL,NULL,NULL,1,910,1,0,NULL,'a:0:{}'),(270,1,'civicrm/event/manage/location',NULL,'Event Location','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:35:\"CRM_Event_Form_ManageEvent_Location\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Manage Events\";s:3:\"url\";s:29:\"/civicrm/event/manage?reset=1\";}}',NULL,NULL,1,NULL,NULL,NULL,1,930,1,0,NULL,'a:0:{}'),(271,1,'civicrm/event/manage/fee',NULL,'Event Fees','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:30:\"CRM_Event_Form_ManageEvent_Fee\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Manage Events\";s:3:\"url\";s:29:\"/civicrm/event/manage?reset=1\";}}',NULL,NULL,1,NULL,NULL,NULL,1,920,1,0,NULL,'a:0:{}'),(272,1,'civicrm/event/manage/registration',NULL,'Event Online Registration','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:39:\"CRM_Event_Form_ManageEvent_Registration\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Manage Events\";s:3:\"url\";s:29:\"/civicrm/event/manage?reset=1\";}}',NULL,NULL,1,NULL,NULL,NULL,1,930,1,0,NULL,'a:0:{}'),(273,1,'civicrm/event/manage/friend',NULL,'Tell a Friend','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:21:\"CRM_Friend_Form_Event\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Manage Events\";s:3:\"url\";s:29:\"/civicrm/event/manage?reset=1\";}}',NULL,NULL,1,NULL,NULL,NULL,1,940,1,0,NULL,'a:0:{}'),(274,1,'civicrm/event/manage/reminder',NULL,'Schedule Reminders','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:44:\"CRM_Event_Form_ManageEvent_ScheduleReminders\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Manage Events\";s:3:\"url\";s:29:\"/civicrm/event/manage?reset=1\";}}',NULL,NULL,1,NULL,NULL,NULL,1,950,1,0,NULL,'a:0:{}'),(275,1,'civicrm/event/manage/repeat',NULL,'Repeat Event','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:33:\"CRM_Event_Form_ManageEvent_Repeat\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Manage Events\";s:3:\"url\";s:29:\"/civicrm/event/manage?reset=1\";}}',NULL,NULL,1,NULL,NULL,NULL,1,960,1,0,NULL,'a:0:{}'),(276,1,'civicrm/event/manage/conference',NULL,'Conference Slots','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:37:\"CRM_Event_Form_ManageEvent_Conference\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Manage Events\";s:3:\"url\";s:29:\"/civicrm/event/manage?reset=1\";}}',NULL,NULL,1,NULL,NULL,NULL,1,950,1,0,NULL,'a:0:{}'),(277,1,'civicrm/event/add','action=add','New Event','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:36:\"CRM_Event_Form_ManageEvent_EventInfo\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,NULL,NULL,NULL,0,830,1,0,NULL,'a:0:{}'),(278,1,'civicrm/event/import',NULL,'Import Participants','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:16:\"access CiviEvent\";i:1;s:23:\"edit event participants\";}i:1;s:3:\"and\";}','s:27:\"CRM_Event_Import_Controller\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,NULL,NULL,NULL,0,840,1,1,NULL,'a:0:{}'),(279,1,'civicrm/event/price',NULL,'Manage Price Sets','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:18:\"CRM_Price_Page_Set\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,NULL,NULL,NULL,0,850,1,1,NULL,'a:0:{}'),(280,1,'civicrm/event/selfsvcupdate',NULL,'Self-service Registration Update','s:1:\"1\";','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:28:\"CRM_Event_Form_SelfSvcUpdate\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,NULL,1,NULL,0,880,1,1,NULL,'a:0:{}'),(281,1,'civicrm/event/selfsvctransfer',NULL,'Self-service Registration Transfer','s:1:\"1\";','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:30:\"CRM_Event_Form_SelfSvcTransfer\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,NULL,1,NULL,0,890,1,1,NULL,'a:0:{}'),(282,1,'civicrm/contact/view/participant',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:18:\"CRM_Event_Page_Tab\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,4,1,0,NULL,'a:0:{}'),(283,1,'civicrm/ajax/eventFee',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','a:2:{i:0;s:19:\"CRM_Event_Page_AJAX\";i:1;s:8:\"eventFee\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(284,1,'civicrm/ajax/locBlock',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','a:2:{i:0;s:27:\"CRM_Core_Page_AJAX_Location\";i:1;s:11:\"getLocBlock\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(285,1,'civicrm/ajax/event/add_participant_to_cart',NULL,NULL,'s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:32:\"CRM_Event_Cart_Page_CheckoutAJAX\";i:1;s:23:\"add_participant_to_cart\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,1,NULL,0,1,1,0,NULL,'a:0:{}'),(286,1,'civicrm/ajax/event/remove_participant_from_cart',NULL,NULL,'s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:32:\"CRM_Event_Cart_Page_CheckoutAJAX\";i:1;s:28:\"remove_participant_from_cart\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,1,NULL,0,1,1,0,NULL,'a:0:{}'),(287,1,'civicrm/event/add_to_cart',NULL,'Add Event To Cart','s:1:\"1\";','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:29:\"CRM_Event_Cart_Page_AddToCart\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,NULL,1,NULL,0,1,1,0,NULL,'a:0:{}'),(288,1,'civicrm/event/cart_checkout',NULL,'Cart Checkout','s:1:\"1\";','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:34:\"CRM_Event_Cart_Controller_Checkout\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,NULL,1,NULL,1,1,1,0,NULL,'a:0:{}'),(289,1,'civicrm/event/remove_from_cart',NULL,'Remove From Cart','s:1:\"1\";','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:34:\"CRM_Event_Cart_Page_RemoveFromCart\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,NULL,1,NULL,0,1,1,0,NULL,'a:0:{}'),(290,1,'civicrm/event/view_cart',NULL,'View Cart','s:1:\"1\";','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:28:\"CRM_Event_Cart_Page_ViewCart\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,NULL,1,NULL,0,1,1,0,NULL,'a:0:{}'),(291,1,'civicrm/event/participant/feeselection',NULL,'Change Registration Selections','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:38:\"CRM_Event_Form_ParticipantFeeSelection\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}i:2;a:2:{s:5:\"title\";s:23:\"Event Participants List\";s:3:\"url\";s:34:\"/civicrm/event/participant?reset=1\";}}',NULL,NULL,1,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(292,1,'civicrm/event/manage/pcp',NULL,'Personal Campaign Pages','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:18:\"CRM_PCP_Form_Event\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Manage Events\";s:3:\"url\";s:29:\"/civicrm/event/manage?reset=1\";}}',NULL,NULL,1,NULL,NULL,NULL,1,540,1,1,NULL,'a:0:{}'),(293,1,'civicrm/event/pcp',NULL,NULL,'s:1:\"1\";','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:16:\"CRM_PCP_Form_PCP\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,NULL,1,NULL,0,1,1,0,NULL,'a:0:{}'),(294,1,'civicrm/event/campaign',NULL,'Setup a Personal Campaign Page - Account Information','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:25:\"make online contributions\";}i:1;s:3:\"and\";}','s:22:\"CRM_PCP_Controller_PCP\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,NULL,1,NULL,0,0,1,0,NULL,'a:0:{}'),(295,1,'civicrm/contribute',NULL,'CiviContribute Dashboard','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:29:\"CRM_Contribute_Page_DashBoard\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,2,NULL,NULL,NULL,0,500,1,1,NULL,'a:1:{s:9:\"component\";s:14:\"CiviContribute\";}'),(296,1,'civicrm/contribute/add','action=add','New Contribution','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:23:\"CRM_Contribute_Page_Tab\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,NULL,NULL,NULL,0,1,1,1,NULL,'a:1:{s:9:\"component\";s:14:\"CiviContribute\";}'),(297,1,'civicrm/contribute/chart',NULL,'Contribution Summary - Chart View','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:38:\"CRM_Contribute_Form_ContributionCharts\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,NULL,NULL,NULL,0,1,1,0,NULL,'a:1:{s:9:\"component\";s:14:\"CiviContribute\";}'),(298,1,'civicrm/contribute/transact',NULL,'CiviContribute','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:25:\"make online contributions\";}i:1;s:3:\"and\";}','s:38:\"CRM_Contribute_Controller_Contribution\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,NULL,1,NULL,1,0,1,0,NULL,'a:0:{}'),(299,1,'civicrm/admin/contribute',NULL,'Manage Contribution Pages','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:36:\"CRM_Contribute_Page_ContributionPage\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,360,1,0,NULL,'a:3:{s:4:\"desc\";s:242:\"CiviContribute allows you to create and maintain any number of Online Contribution Pages. You can create different pages for different programs or campaigns - and customize text, amounts, types of information collected from contributors, etc.\";s:10:\"adminGroup\";s:14:\"CiviContribute\";s:4:\"icon\";s:41:\"admin/small/online_contribution_pages.png\";}'),(300,1,'civicrm/admin/contribute/settings',NULL,'Title and Settings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:45:\"CRM_Contribute_Form_ContributionPage_Settings\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:25:\"Manage Contribution Pages\";s:3:\"url\";s:33:\"/civicrm/admin/contribute?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,400,1,0,NULL,'a:0:{}'),(301,1,'civicrm/admin/contribute/amount',NULL,'Contribution Amounts','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:43:\"CRM_Contribute_Form_ContributionPage_Amount\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:25:\"Manage Contribution Pages\";s:3:\"url\";s:33:\"/civicrm/admin/contribute?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,410,1,0,NULL,'a:0:{}'),(302,1,'civicrm/admin/contribute/membership',NULL,'Membership Section','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:31:\"CRM_Member_Form_MembershipBlock\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:25:\"Manage Contribution Pages\";s:3:\"url\";s:33:\"/civicrm/admin/contribute?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,420,1,0,NULL,'a:0:{}'),(303,1,'civicrm/admin/contribute/custom',NULL,'Include Profiles','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:43:\"CRM_Contribute_Form_ContributionPage_Custom\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:25:\"Manage Contribution Pages\";s:3:\"url\";s:33:\"/civicrm/admin/contribute?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,430,1,0,NULL,'a:0:{}'),(304,1,'civicrm/admin/contribute/thankyou',NULL,'Thank-you and Receipting','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:45:\"CRM_Contribute_Form_ContributionPage_ThankYou\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:25:\"Manage Contribution Pages\";s:3:\"url\";s:33:\"/civicrm/admin/contribute?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,430,1,0,NULL,'a:0:{}'),(305,1,'civicrm/admin/contribute/friend',NULL,'Tell a Friend','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:26:\"CRM_Friend_Form_Contribute\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:25:\"Manage Contribution Pages\";s:3:\"url\";s:33:\"/civicrm/admin/contribute?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,440,1,0,NULL,'a:0:{}'),(306,1,'civicrm/admin/contribute/widget',NULL,'Configure Widget','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:43:\"CRM_Contribute_Form_ContributionPage_Widget\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:25:\"Manage Contribution Pages\";s:3:\"url\";s:33:\"/civicrm/admin/contribute?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,460,1,0,NULL,'a:0:{}'),(307,1,'civicrm/admin/contribute/premium',NULL,'Premiums','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:44:\"CRM_Contribute_Form_ContributionPage_Premium\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:25:\"Manage Contribution Pages\";s:3:\"url\";s:33:\"/civicrm/admin/contribute?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,470,1,0,NULL,'a:0:{}'),(308,1,'civicrm/admin/contribute/addProductToPage',NULL,'Add Products to This Page','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:47:\"CRM_Contribute_Form_ContributionPage_AddProduct\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:25:\"Manage Contribution Pages\";s:3:\"url\";s:33:\"/civicrm/admin/contribute?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,480,1,0,NULL,'a:0:{}'),(309,1,'civicrm/admin/contribute/add','action=add','New Contribution Page','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:42:\"CRM_Contribute_Controller_ContributionPage\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:25:\"Manage Contribution Pages\";s:3:\"url\";s:33:\"/civicrm/admin/contribute?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,0,NULL,'a:0:{}'),(310,1,'civicrm/admin/contribute/managePremiums',NULL,'Manage Premiums','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:34:\"CRM_Contribute_Page_ManagePremiums\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:25:\"Manage Contribution Pages\";s:3:\"url\";s:33:\"/civicrm/admin/contribute?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,365,1,0,NULL,'a:3:{s:4:\"desc\";s:175:\"CiviContribute allows you to configure any number of Premiums which can be offered to contributors as incentives / thank-you gifts. Define the premiums you want to offer here.\";s:10:\"adminGroup\";s:14:\"CiviContribute\";s:4:\"icon\";s:24:\"admin/small/Premiums.png\";}'),(311,1,'civicrm/admin/financial/financialType',NULL,'Financial Types','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:32:\"CRM_Financial_Page_FinancialType\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,580,1,0,NULL,'a:2:{s:4:\"desc\";s:64:\"Formerly civicrm_contribution_type merged into this table in 4.1\";s:10:\"adminGroup\";s:14:\"CiviContribute\";}'),(312,1,'civicrm/payment','action=add','New Payment','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:37:\"CRM_Contribute_Form_AdditionalPayment\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,2,NULL,NULL,NULL,0,1,1,1,NULL,'a:1:{s:9:\"component\";s:14:\"CiviContribute\";}'),(313,1,'civicrm/admin/financial/financialAccount',NULL,'Financial Accounts','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:35:\"CRM_Financial_Page_FinancialAccount\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,370,1,0,NULL,'a:3:{s:4:\"desc\";s:128:\"Financial types are used to categorize contributions for reporting and accounting purposes. These are also referred to as Funds.\";s:10:\"adminGroup\";s:14:\"CiviContribute\";s:4:\"icon\";s:34:\"admin/small/contribution_types.png\";}'),(314,1,'civicrm/admin/options/payment_instrument',NULL,'Payment Methods','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,380,1,0,NULL,'a:3:{s:4:\"desc\";s:224:\"You may choose to record the payment instrument used for each contribution. Common payment methods are installed by default (e.g. Check, Cash, Credit Card...). If your site requires additional payment methods, add them here.\";s:10:\"adminGroup\";s:14:\"CiviContribute\";s:4:\"icon\";s:35:\"admin/small/payment_instruments.png\";}'),(315,1,'civicrm/admin/options/accept_creditcard',NULL,'Accepted Credit Cards','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,395,1,0,NULL,'a:3:{s:4:\"desc\";s:94:\"Credit card options that will be offered to contributors using your Online Contribution pages.\";s:10:\"adminGroup\";s:14:\"CiviContribute\";s:4:\"icon\";s:36:\"admin/small/accepted_creditcards.png\";}'),(316,1,'civicrm/admin/options/soft_credit_type',NULL,'Soft Credit Types','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,0,NULL,'a:3:{s:4:\"desc\";s:86:\"Soft Credit Types that will be offered to contributors during soft credit contribution\";s:10:\"adminGroup\";s:14:\"CiviContribute\";s:4:\"icon\";s:32:\"admin/small/soft_credit_type.png\";}'),(317,1,'civicrm/contact/view/contribution',NULL,'Contributions','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:23:\"CRM_Contribute_Page_Tab\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(318,1,'civicrm/contact/view/contributionrecur',NULL,'Recurring Contributions','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:37:\"CRM_Contribute_Page_ContributionRecur\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(319,1,'civicrm/contact/view/contribution/additionalinfo',NULL,'Additional Info','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:34:\"CRM_Contribute_Form_AdditionalInfo\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}i:2;a:2:{s:5:\"title\";s:13:\"Contributions\";s:3:\"url\";s:42:\"/civicrm/contact/view/contribution?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(320,1,'civicrm/contribute/search',NULL,'Find Contributions','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:32:\"CRM_Contribute_Controller_Search\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,NULL,NULL,NULL,0,510,1,1,NULL,'a:0:{}'),(321,1,'civicrm/contribute/searchBatch',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:37:\"CRM_Contribute_Controller_SearchBatch\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,NULL,NULL,NULL,0,588,1,1,NULL,'a:0:{}'),(322,1,'civicrm/contribute/import',NULL,'Import Contributions','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:21:\"access CiviContribute\";i:1;s:18:\"edit contributions\";}i:1;s:3:\"and\";}','s:32:\"CRM_Contribute_Import_Controller\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,NULL,NULL,NULL,0,520,1,1,NULL,'a:0:{}'),(323,1,'civicrm/contribute/manage',NULL,'Manage Contribution Pages','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:36:\"CRM_Contribute_Page_ContributionPage\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,NULL,NULL,NULL,0,530,1,1,NULL,'a:0:{}'),(324,1,'civicrm/contribute/additionalinfo',NULL,'AdditionalInfo Form','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:34:\"CRM_Contribute_Form_AdditionalInfo\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,NULL,NULL,NULL,0,0,1,0,NULL,'a:0:{}'),(325,1,'civicrm/ajax/permlocation',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:25:\"make online contributions\";}i:1;s:3:\"and\";}','a:2:{i:0;s:27:\"CRM_Core_Page_AJAX_Location\";i:1;s:23:\"getPermissionedLocation\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(326,1,'civicrm/contribute/unsubscribe',NULL,'Cancel Subscription','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:25:\"make online contributions\";}i:1;s:3:\"and\";}','s:38:\"CRM_Contribute_Form_CancelSubscription\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(327,1,'civicrm/contribute/onbehalf',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:25:\"make online contributions\";}i:1;s:3:\"and\";}','s:43:\"CRM_Contribute_Form_Contribution_OnBehalfOf\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(328,1,'civicrm/contribute/updatebilling',NULL,'Update Billing Details','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:25:\"make online contributions\";}i:1;s:3:\"and\";}','s:33:\"CRM_Contribute_Form_UpdateBilling\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(329,1,'civicrm/contribute/updaterecur',NULL,'Update Subscription','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:25:\"make online contributions\";}i:1;s:3:\"and\";}','s:38:\"CRM_Contribute_Form_UpdateSubscription\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(330,1,'civicrm/contribute/subscriptionstatus',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:25:\"make online contributions\";}i:1;s:3:\"and\";}','s:38:\"CRM_Contribute_Page_SubscriptionStatus\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(331,1,'civicrm/admin/financial/financialType/accounts',NULL,'Financial Type Accounts','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:39:\"CRM_Financial_Page_FinancialTypeAccount\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:15:\"Financial Types\";s:3:\"url\";s:46:\"/civicrm/admin/financial/financialType?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,581,1,0,NULL,'a:0:{}'),(332,1,'civicrm/financial/batch',NULL,'Accounting Batch','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:19:\"create manual batch\";}i:1;s:3:\"and\";}','s:33:\"CRM_Financial_Page_FinancialBatch\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,585,1,0,NULL,'a:0:{}'),(333,1,'civicrm/financial/financialbatches',NULL,'Accounting Batches','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:24:\"CRM_Financial_Page_Batch\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,586,1,0,NULL,'a:0:{}'),(334,1,'civicrm/batchtransaction',NULL,'Accounting Batch','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:35:\"CRM_Financial_Page_BatchTransaction\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,600,1,0,NULL,'a:0:{}'),(335,1,'civicrm/financial/batch/export',NULL,'Accounting Batch Export','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:19:\"create manual batch\";}i:1;s:3:\"and\";}','s:25:\"CRM_Financial_Form_Export\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:16:\"Accounting Batch\";s:3:\"url\";s:32:\"/civicrm/financial/batch?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,610,1,0,NULL,'a:0:{}'),(336,1,'civicrm/payment/view','action=view','View Payment','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:31:\"CRM_Contribute_Page_PaymentInfo\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:11:\"New Payment\";s:3:\"url\";s:39:\"/civicrm/payment?reset=1&amp;action=add\";}}',NULL,NULL,2,NULL,NULL,NULL,0,1,1,1,NULL,'a:1:{s:9:\"component\";s:14:\"CiviContribute\";}'),(337,1,'civicrm/admin/setting/preferences/contribute',NULL,'CiviContribute Component Settings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:21:\"access CiviContribute\";i:1;s:18:\"administer CiviCRM\";}i:1;s:3:\"and\";}','s:37:\"CRM_Admin_Form_Preferences_Contribute\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,0,NULL,'a:2:{s:4:\"desc\";s:42:\"Configure global CiviContribute behaviors.\";s:10:\"adminGroup\";s:14:\"CiviContribute\";}'),(338,1,'civicrm/contribute/invoice',NULL,'PDF Invoice','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:20:\"checkDownloadInvoice\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','a:2:{i:0;s:32:\"CRM_Contribute_Form_Task_Invoice\";i:1;s:11:\"getPrintPDF\";}',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,NULL,NULL,NULL,0,620,1,1,NULL,'a:1:{s:9:\"component\";s:14:\"CiviContribute\";}'),(339,1,'civicrm/contribute/invoice/email',NULL,'Email Invoice','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:20:\"checkDownloadInvoice\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:32:\"CRM_Contribute_Form_Task_Invoice\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}i:2;a:2:{s:5:\"title\";s:11:\"PDF Invoice\";s:3:\"url\";s:35:\"/civicrm/contribute/invoice?reset=1\";}}',NULL,NULL,2,NULL,NULL,NULL,0,630,1,1,NULL,'a:1:{s:9:\"component\";s:14:\"CiviContribute\";}'),(340,1,'civicrm/ajax/softcontributionlist',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:24:\"CRM_Contribute_Page_AJAX\";i:1;s:23:\"getSoftContributionRows\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(341,1,'civicrm/contribute/contributionrecur-payments',NULL,'Recurring Contribution\'s Payments','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:45:\"CRM_Contribute_Page_ContributionRecurPayments\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(342,1,'civicrm/membership/recurring-contributions',NULL,'Membership Recurring Contributions','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:38:\"CRM_Member_Page_RecurringContributions\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(343,1,'civicrm/admin/contribute/pcp',NULL,'Personal Campaign Pages','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:23:\"CRM_PCP_Form_Contribute\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:25:\"Manage Contribution Pages\";s:3:\"url\";s:33:\"/civicrm/admin/contribute?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,450,1,0,NULL,'a:0:{}'),(344,1,'civicrm/contribute/campaign',NULL,'Setup a Personal Campaign Page - Account Information','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:25:\"make online contributions\";}i:1;s:3:\"and\";}','s:22:\"CRM_PCP_Controller_PCP\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,NULL,1,NULL,0,0,1,0,NULL,'a:0:{}'),(345,1,'civicrm/member',NULL,'CiviMember Dashboard','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:17:\"access CiviMember\";}i:1;s:3:\"and\";}','s:25:\"CRM_Member_Page_DashBoard\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,3,NULL,NULL,NULL,0,700,1,1,NULL,'a:1:{s:9:\"component\";s:10:\"CiviMember\";}'),(346,1,'civicrm/member/add','action=add','New Membership','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:17:\"access CiviMember\";}i:1;s:3:\"and\";}','s:19:\"CRM_Member_Page_Tab\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:20:\"CiviMember Dashboard\";s:3:\"url\";s:23:\"/civicrm/member?reset=1\";}}',NULL,NULL,3,NULL,NULL,NULL,0,1,1,0,NULL,'a:1:{s:9:\"component\";s:10:\"CiviMember\";}'),(347,1,'civicrm/admin/member/membershipType',NULL,'Membership Types','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:30:\"CRM_Member_Page_MembershipType\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,370,1,0,NULL,'a:3:{s:4:\"desc\";s:174:\"Define the types of memberships you want to offer. For each type, you can specify a \'name\' (Gold Member, Honor Society Member...), a description, duration, and a minimum fee.\";s:10:\"adminGroup\";s:10:\"CiviMember\";s:4:\"icon\";s:31:\"admin/small/membership_type.png\";}'),(348,1,'civicrm/admin/member/membershipStatus',NULL,'Membership Status Rules','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:32:\"CRM_Member_Page_MembershipStatus\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,380,1,0,NULL,'a:3:{s:4:\"desc\";s:187:\"Status \'rules\' define the current status for a membership based on that membership\'s start and end dates. You can adjust the default status options and rules as needed to meet your needs.\";s:10:\"adminGroup\";s:10:\"CiviMember\";s:4:\"icon\";s:33:\"admin/small/membership_status.png\";}'),(349,1,'civicrm/contact/view/membership','force=1,cid=%%cid%%','Memberships','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:19:\"CRM_Member_Page_Tab\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,2,1,0,NULL,'a:0:{}'),(350,1,'civicrm/membership/view',NULL,'Memberships','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:17:\"access CiviMember\";}i:1;s:3:\"and\";}','s:30:\"CRM_Member_Form_MembershipView\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,390,1,0,NULL,'a:0:{}'),(351,1,'civicrm/member/search',NULL,'Find Memberships','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:17:\"access CiviMember\";}i:1;s:3:\"and\";}','s:28:\"CRM_Member_Controller_Search\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:20:\"CiviMember Dashboard\";s:3:\"url\";s:23:\"/civicrm/member?reset=1\";}}',NULL,NULL,3,NULL,NULL,NULL,0,710,1,1,NULL,'a:0:{}'),(352,1,'civicrm/member/import',NULL,'Import Memberships','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:17:\"access CiviMember\";i:1;s:16:\"edit memberships\";}i:1;s:3:\"and\";}','s:28:\"CRM_Member_Import_Controller\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:20:\"CiviMember Dashboard\";s:3:\"url\";s:23:\"/civicrm/member?reset=1\";}}',NULL,NULL,3,NULL,NULL,NULL,0,720,1,1,NULL,'a:0:{}'),(353,1,'civicrm/ajax/memType',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:17:\"access CiviMember\";}i:1;s:3:\"and\";}','a:2:{i:0;s:20:\"CRM_Member_Page_AJAX\";i:1;s:21:\"getMemberTypeDefaults\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(354,1,'civicrm/admin/member/membershipType/add',NULL,'Membership Types','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:17:\"access CiviMember\";i:1;s:18:\"administer CiviCRM\";}i:1;s:3:\"and\";}','s:30:\"CRM_Member_Form_MembershipType\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:16:\"Membership Types\";s:3:\"url\";s:44:\"/civicrm/admin/member/membershipType?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,0,NULL,'a:0:{}'),(355,1,'civicrm/mailing',NULL,'CiviMail','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:15:\"access CiviMail\";i:1;s:15:\"create mailings\";i:2;s:8:\"send SMS\";}i:1;s:2:\"or\";}','s:23:\"CRM_Mailing_Page_Browse\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,4,NULL,NULL,NULL,0,600,1,1,NULL,'a:1:{s:9:\"component\";s:8:\"CiviMail\";}'),(356,1,'civicrm/admin/mail',NULL,'Mailer Settings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"access CiviMail\";}i:1;s:3:\"and\";}','s:27:\"CRM_Admin_Form_Setting_Mail\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,400,1,0,NULL,'a:3:{s:4:\"desc\";s:61:\"Configure spool period, throttling and other mailer settings.\";s:10:\"adminGroup\";s:8:\"CiviMail\";s:4:\"icon\";s:18:\"admin/small/07.png\";}'),(357,1,'civicrm/admin/component',NULL,'Headers, Footers, and Automated Messages','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"access CiviMail\";}i:1;s:3:\"and\";}','s:26:\"CRM_Mailing_Page_Component\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,410,1,0,NULL,'a:3:{s:4:\"desc\";s:143:\"Configure the header and footer used for mailings. Customize the content of automated Subscribe, Unsubscribe, Resubscribe and Opt-out messages.\";s:10:\"adminGroup\";s:8:\"CiviMail\";s:4:\"icon\";s:23:\"admin/small/Profile.png\";}'),(358,1,'civicrm/admin/options/from_email_address/civimail',NULL,'From Email Addresses','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:4:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}i:3;a:2:{s:5:\"title\";s:20:\"From Email Addresses\";s:3:\"url\";s:49:\"/civicrm/admin/options/from_email_address?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,415,1,0,NULL,'a:3:{s:4:\"desc\";s:74:\"List of Email Addresses which can be used when sending emails to contacts.\";s:10:\"adminGroup\";s:8:\"CiviMail\";s:4:\"icon\";s:21:\"admin/small/title.png\";}'),(359,1,'civicrm/admin/mailSettings',NULL,'Mail Accounts','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"access CiviMail\";}i:1;s:3:\"and\";}','s:27:\"CRM_Admin_Page_MailSettings\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,420,1,0,NULL,'a:3:{s:4:\"desc\";s:32:\"Configure email account setting.\";s:10:\"adminGroup\";s:8:\"CiviMail\";s:4:\"icon\";s:18:\"admin/small/07.png\";}'),(360,1,'civicrm/mailing/send',NULL,'New Mailing','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:15:\"access CiviMail\";i:1;s:15:\"create mailings\";i:2;s:17:\"schedule mailings\";}i:1;s:2:\"or\";}','s:27:\"CRM_Mailing_Controller_Send\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,NULL,NULL,NULL,0,610,1,1,NULL,'a:0:{}'),(361,1,'civicrm/mailing/browse/scheduled','scheduled=true','Find Mailings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:5:{i:0;s:15:\"access CiviMail\";i:1;s:16:\"approve mailings\";i:2;s:15:\"create mailings\";i:3;s:17:\"schedule mailings\";i:4;s:8:\"send SMS\";}i:1;s:2:\"or\";}','s:23:\"CRM_Mailing_Page_Browse\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,NULL,NULL,NULL,0,620,1,1,NULL,'a:0:{}'),(362,1,'civicrm/mailing/browse/unscheduled','scheduled=false','Find Mailings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:15:\"access CiviMail\";i:1;s:15:\"create mailings\";i:2;s:17:\"schedule mailings\";}i:1;s:2:\"or\";}','s:23:\"CRM_Mailing_Page_Browse\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,NULL,NULL,NULL,0,620,1,1,NULL,'a:0:{}'),(363,1,'civicrm/mailing/browse/archived',NULL,'Find Mailings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:15:\"access CiviMail\";i:1;s:15:\"create mailings\";}i:1;s:2:\"or\";}','s:23:\"CRM_Mailing_Page_Browse\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,NULL,NULL,NULL,0,625,1,1,NULL,'a:0:{}'),(364,1,'civicrm/mailing/component',NULL,'Headers, Footers, and Automated Messages','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:18:\"administer CiviCRM\";}i:1;s:3:\"and\";}','s:26:\"CRM_Mailing_Page_Component\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,NULL,NULL,NULL,0,630,1,1,NULL,'a:0:{}'),(365,1,'civicrm/mailing/unsubscribe',NULL,'Unsubscribe','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:43:\"access CiviMail subscribe/unsubscribe pages\";}i:1;s:3:\"and\";}','s:28:\"CRM_Mailing_Form_Unsubscribe\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,NULL,1,NULL,0,640,1,0,NULL,'a:0:{}'),(366,1,'civicrm/mailing/resubscribe',NULL,'Resubscribe','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:43:\"access CiviMail subscribe/unsubscribe pages\";}i:1;s:3:\"and\";}','s:28:\"CRM_Mailing_Page_Resubscribe\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,NULL,1,NULL,0,645,1,0,NULL,'a:0:{}'),(367,1,'civicrm/mailing/optout',NULL,'Opt-out','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:43:\"access CiviMail subscribe/unsubscribe pages\";}i:1;s:3:\"and\";}','s:23:\"CRM_Mailing_Form_Optout\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,NULL,1,NULL,0,650,1,0,NULL,'a:0:{}'),(368,1,'civicrm/mailing/confirm',NULL,'Confirm','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:43:\"access CiviMail subscribe/unsubscribe pages\";}i:1;s:3:\"and\";}','s:24:\"CRM_Mailing_Page_Confirm\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,NULL,1,NULL,0,660,1,0,NULL,'a:0:{}'),(369,1,'civicrm/mailing/subscribe',NULL,'Subscribe','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:43:\"access CiviMail subscribe/unsubscribe pages\";}i:1;s:3:\"and\";}','s:26:\"CRM_Mailing_Form_Subscribe\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,NULL,1,NULL,0,660,1,0,NULL,'a:0:{}'),(370,1,'civicrm/mailing/preview',NULL,'Preview Mailing','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:4:{i:0;s:15:\"access CiviMail\";i:1;s:16:\"approve mailings\";i:2;s:15:\"create mailings\";i:3;s:17:\"schedule mailings\";}i:1;s:2:\"or\";}','s:24:\"CRM_Mailing_Page_Preview\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,NULL,NULL,NULL,0,670,1,0,NULL,'a:0:{}'),(371,1,'civicrm/mailing/report','mid=%%mid%%','Mailing Report','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:15:\"access CiviMail\";i:1;s:15:\"create mailings\";}i:1;s:2:\"or\";}','s:23:\"CRM_Mailing_Page_Report\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,NULL,NULL,NULL,0,680,1,0,NULL,'a:0:{}'),(372,1,'civicrm/mailing/forward',NULL,'Forward Mailing','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:43:\"access CiviMail subscribe/unsubscribe pages\";}i:1;s:3:\"and\";}','s:31:\"CRM_Mailing_Form_ForwardMailing\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,NULL,1,NULL,0,685,1,0,NULL,'a:0:{}'),(373,1,'civicrm/mailing/queue',NULL,'Sending Mail','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:15:\"access CiviMail\";}i:1;s:3:\"and\";}','s:23:\"CRM_Mailing_Page_Browse\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,NULL,NULL,NULL,0,690,1,0,NULL,'a:0:{}'),(374,1,'civicrm/mailing/report/event',NULL,'Mailing Event','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:15:\"access CiviMail\";}i:1;s:3:\"and\";}','s:22:\"CRM_Mailing_Page_Event\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}i:2;a:2:{s:5:\"title\";s:14:\"Mailing Report\";s:3:\"url\";s:47:\"/civicrm/mailing/report?reset=1&amp;mid=%%mid%%\";}}',NULL,NULL,4,NULL,NULL,NULL,0,695,1,0,NULL,'a:0:{}'),(375,1,'civicrm/ajax/template',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Mailing_Page_AJAX\";i:1;s:8:\"template\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(376,1,'civicrm/mailing/view',NULL,'View Mailing','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:28:\"view public CiviMail content\";i:1;s:15:\"access CiviMail\";i:2;s:16:\"approve mailings\";}i:1;s:2:\"or\";}','s:21:\"CRM_Mailing_Page_View\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,NULL,1,NULL,0,800,1,0,NULL,'a:0:{}'),(377,1,'civicrm/mailing/approve',NULL,'Approve Mailing','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:15:\"access CiviMail\";i:1;s:16:\"approve mailings\";}i:1;s:2:\"or\";}','s:24:\"CRM_Mailing_Form_Approve\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,NULL,NULL,NULL,0,850,1,0,NULL,'a:0:{}'),(378,1,'civicrm/contact/view/mailing',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:20:\"CRM_Mailing_Page_Tab\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(379,1,'civicrm/ajax/contactmailing',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Mailing_Page_AJAX\";i:1;s:18:\"getContactMailings\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(380,1,'civicrm/grant',NULL,'CiviGrant Dashboard','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviGrant\";}i:1;s:3:\"and\";}','s:24:\"CRM_Grant_Page_DashBoard\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,5,NULL,NULL,NULL,0,1000,1,1,NULL,'a:1:{s:9:\"component\";s:9:\"CiviGrant\";}'),(381,1,'civicrm/grant/info',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviGrant\";}i:1;s:3:\"and\";}','s:24:\"CRM_Grant_Page_DashBoard\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviGrant Dashboard\";s:3:\"url\";s:22:\"/civicrm/grant?reset=1\";}}',NULL,NULL,5,NULL,NULL,NULL,0,0,1,0,NULL,'a:0:{}'),(382,1,'civicrm/grant/search',NULL,'Find Grants','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviGrant\";}i:1;s:3:\"and\";}','s:27:\"CRM_Grant_Controller_Search\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviGrant Dashboard\";s:3:\"url\";s:22:\"/civicrm/grant?reset=1\";}}',NULL,NULL,5,NULL,NULL,NULL,0,1010,1,1,NULL,'a:0:{}'),(383,1,'civicrm/grant/add','action=add','New Grant','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviGrant\";}i:1;s:3:\"and\";}','s:18:\"CRM_Grant_Page_Tab\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviGrant Dashboard\";s:3:\"url\";s:22:\"/civicrm/grant?reset=1\";}}',NULL,NULL,5,NULL,NULL,NULL,0,1,1,1,NULL,'a:1:{s:9:\"component\";s:9:\"CiviGrant\";}'),(384,1,'civicrm/contact/view/grant',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviGrant\";}i:1;s:3:\"and\";}','s:18:\"CRM_Grant_Page_Tab\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(385,1,'civicrm/pledge',NULL,'CiviPledge Dashboard','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:17:\"access CiviPledge\";}i:1;s:3:\"and\";}','s:25:\"CRM_Pledge_Page_DashBoard\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,6,NULL,NULL,NULL,0,550,1,1,NULL,'a:1:{s:9:\"component\";s:10:\"CiviPledge\";}'),(386,1,'civicrm/pledge/search',NULL,'Find Pledges','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:17:\"access CiviPledge\";}i:1;s:3:\"and\";}','s:28:\"CRM_Pledge_Controller_Search\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:20:\"CiviPledge Dashboard\";s:3:\"url\";s:23:\"/civicrm/pledge?reset=1\";}}',NULL,NULL,6,NULL,NULL,NULL,0,560,1,1,NULL,'a:0:{}'),(387,1,'civicrm/contact/view/pledge','force=1,cid=%%cid%%','Pledges','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:17:\"access CiviPledge\";}i:1;s:3:\"and\";}','s:19:\"CRM_Pledge_Page_Tab\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,570,1,0,NULL,'a:0:{}'),(388,1,'civicrm/pledge/add','action=add','New Pledge','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:17:\"access CiviPledge\";}i:1;s:3:\"and\";}','s:19:\"CRM_Pledge_Page_Tab\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:20:\"CiviPledge Dashboard\";s:3:\"url\";s:23:\"/civicrm/pledge?reset=1\";}}',NULL,NULL,6,NULL,NULL,NULL,0,1,1,1,NULL,'a:1:{s:9:\"component\";s:10:\"CiviPledge\";}'),(389,1,'civicrm/pledge/payment',NULL,'Pledge Payments','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:17:\"access CiviPledge\";}i:1;s:3:\"and\";}','s:23:\"CRM_Pledge_Page_Payment\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:20:\"CiviPledge Dashboard\";s:3:\"url\";s:23:\"/civicrm/pledge?reset=1\";}}',NULL,NULL,6,NULL,NULL,NULL,0,580,1,0,NULL,'a:0:{}'),(390,1,'civicrm/ajax/pledgeAmount',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:17:\"access CiviPledge\";i:1;s:18:\"administer CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:20:\"CRM_Pledge_Page_AJAX\";i:1;s:17:\"getPledgeDefaults\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(391,1,'civicrm/case',NULL,'CiviCase Dashboard','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:23:\"CRM_Case_Page_DashBoard\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,7,NULL,NULL,NULL,0,900,1,1,NULL,'a:1:{s:9:\"component\";s:8:\"CiviCase\";}'),(392,1,'civicrm/case/add',NULL,'Open Case','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:18:\"CRM_Case_Form_Case\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"CiviCase Dashboard\";s:3:\"url\";s:21:\"/civicrm/case?reset=1\";}}',NULL,NULL,7,NULL,NULL,NULL,0,1,1,1,NULL,'a:1:{s:9:\"component\";s:8:\"CiviCase\";}'),(393,1,'civicrm/case/search',NULL,'Find Cases','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:26:\"CRM_Case_Controller_Search\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"CiviCase Dashboard\";s:3:\"url\";s:21:\"/civicrm/case?reset=1\";}}',NULL,NULL,7,NULL,NULL,NULL,0,910,1,1,NULL,'a:0:{}'),(394,1,'civicrm/case/activity',NULL,'Case Activity','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Case_Form_Activity\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"CiviCase Dashboard\";s:3:\"url\";s:21:\"/civicrm/case?reset=1\";}}',NULL,NULL,7,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(395,1,'civicrm/case/report',NULL,'Case Activity Audit','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:31:\"access all cases and activities\";}i:1;s:3:\"and\";}','s:20:\"CRM_Case_Form_Report\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"CiviCase Dashboard\";s:3:\"url\";s:21:\"/civicrm/case?reset=1\";}}',NULL,NULL,7,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(396,1,'civicrm/case/cd/edit',NULL,'Case Custom Set','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:24:\"CRM_Case_Form_CustomData\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"CiviCase Dashboard\";s:3:\"url\";s:21:\"/civicrm/case?reset=1\";}}',NULL,NULL,7,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(397,1,'civicrm/contact/view/case',NULL,'Case','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:17:\"CRM_Case_Page_Tab\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(398,1,'civicrm/case/activity/view',NULL,'Activity View','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:26:\"CRM_Case_Form_ActivityView\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"CiviCase Dashboard\";s:3:\"url\";s:21:\"/civicrm/case?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Case Activity\";s:3:\"url\";s:30:\"/civicrm/case/activity?reset=1\";}}',NULL,NULL,7,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(399,1,'civicrm/contact/view/case/editClient',NULL,'Assign to Another Client','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:24:\"CRM_Case_Form_EditClient\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}i:2;a:2:{s:5:\"title\";s:4:\"Case\";s:3:\"url\";s:34:\"/civicrm/contact/view/case?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(400,1,'civicrm/case/addToCase',NULL,'File on Case','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:28:\"CRM_Case_Form_ActivityToCase\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"CiviCase Dashboard\";s:3:\"url\";s:21:\"/civicrm/case?reset=1\";}}',NULL,NULL,7,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(401,1,'civicrm/case/details',NULL,'Case Details','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:25:\"CRM_Case_Page_CaseDetails\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"CiviCase Dashboard\";s:3:\"url\";s:21:\"/civicrm/case?reset=1\";}}',NULL,NULL,7,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(402,1,'civicrm/admin/setting/case',NULL,'CiviCase Settings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:27:\"CRM_Admin_Form_Setting_Case\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,380,1,0,NULL,'a:2:{s:10:\"adminGroup\";s:8:\"CiviCase\";s:4:\"icon\";s:18:\"admin/small/36.png\";}'),(403,1,'civicrm/admin/options/case_type',NULL,'Case Types','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:19:\"administer CiviCase\";}i:1;s:3:\"and\";}','s:22:\"CRM_Core_Page_Redirect\";','s:24:\"url=civicrm/a/#/caseType\";','a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,390,1,0,NULL,'a:3:{s:4:\"desc\";s:137:\"List of types which can be assigned to Cases. (Enable the Cases tab from System Settings - Enable Components if you want to track cases.)\";s:10:\"adminGroup\";s:8:\"CiviCase\";s:4:\"icon\";s:25:\"admin/small/case_type.png\";}'),(404,1,'civicrm/admin/options/redaction_rule',NULL,'Redaction Rules','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:19:\"administer CiviCase\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,400,1,0,NULL,'a:3:{s:4:\"desc\";s:223:\"List of rules which can be applied to user input strings so that the redacted output can be recognized as repeated instances of the same string or can be identified as a \"semantic type of the data element\" within case data.\";s:10:\"adminGroup\";s:8:\"CiviCase\";s:4:\"icon\";s:30:\"admin/small/redaction_type.png\";}'),(405,1,'civicrm/admin/options/case_status',NULL,'Case Statuses','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:19:\"administer CiviCase\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,400,1,0,NULL,'a:3:{s:4:\"desc\";s:48:\"List of statuses that can be assigned to a case.\";s:10:\"adminGroup\";s:8:\"CiviCase\";s:4:\"icon\";s:25:\"admin/small/case_type.png\";}'),(406,1,'civicrm/admin/options/encounter_medium',NULL,'Encounter Mediums','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:19:\"administer CiviCase\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,400,1,0,NULL,'a:3:{s:4:\"desc\";s:26:\"List of encounter mediums.\";s:10:\"adminGroup\";s:8:\"CiviCase\";s:4:\"icon\";s:25:\"admin/small/case_type.png\";}'),(407,1,'civicrm/case/report/print',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:31:\"access all cases and activities\";}i:1;s:3:\"and\";}','a:2:{i:0;s:28:\"CRM_Case_XMLProcessor_Report\";i:1;s:15:\"printCaseReport\";}',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"CiviCase Dashboard\";s:3:\"url\";s:21:\"/civicrm/case?reset=1\";}i:2;a:2:{s:5:\"title\";s:19:\"Case Activity Audit\";s:3:\"url\";s:28:\"/civicrm/case/report?reset=1\";}}',NULL,NULL,7,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(408,1,'civicrm/case/ajax/addclient',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:18:\"CRM_Case_Page_AJAX\";i:1;s:9:\"addClient\";}',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"CiviCase Dashboard\";s:3:\"url\";s:21:\"/civicrm/case?reset=1\";}}',NULL,NULL,7,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(409,1,'civicrm/case/ajax/processtags',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:18:\"CRM_Case_Page_AJAX\";i:1;s:15:\"processCaseTags\";}',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"CiviCase Dashboard\";s:3:\"url\";s:21:\"/civicrm/case?reset=1\";}}',NULL,NULL,7,NULL,NULL,NULL,0,1,1,3,NULL,'a:0:{}'),(410,1,'civicrm/case/ajax/details',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:18:\"CRM_Case_Page_AJAX\";i:1;s:11:\"CaseDetails\";}',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"CiviCase Dashboard\";s:3:\"url\";s:21:\"/civicrm/case?reset=1\";}}',NULL,NULL,7,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(411,1,'civicrm/ajax/delcaserole',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:18:\"CRM_Case_Page_AJAX\";i:1;s:15:\"deleteCaseRoles\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(412,1,'civicrm/ajax/get-cases',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:18:\"CRM_Case_Page_AJAX\";i:1;s:8:\"getCases\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(413,1,'civicrm/report',NULL,'CiviReport','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:17:\"access CiviReport\";}i:1;s:3:\"and\";}','s:22:\"CRM_Report_Page_Report\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,8,NULL,NULL,NULL,0,1200,1,1,NULL,'a:1:{s:9:\"component\";s:10:\"CiviReport\";}'),(414,1,'civicrm/report/list',NULL,'CiviCRM Reports','s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:17:\"access CiviReport\";}i:1;s:3:\"and\";}','s:28:\"CRM_Report_Page_InstanceList\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"CiviReport\";s:3:\"url\";s:23:\"/civicrm/report?reset=1\";}}',NULL,NULL,8,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(415,1,'civicrm/report/template/list',NULL,'Create New Report from Template','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:18:\"administer Reports\";}i:1;s:3:\"and\";}','s:28:\"CRM_Report_Page_TemplateList\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"CiviReport\";s:3:\"url\";s:23:\"/civicrm/report?reset=1\";}}',NULL,NULL,8,NULL,NULL,NULL,0,1220,1,1,NULL,'a:0:{}'),(416,1,'civicrm/report/options/report_template',NULL,'Manage Templates','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:18:\"administer Reports\";}i:1;s:3:\"and\";}','s:23:\"CRM_Report_Page_Options\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"CiviReport\";s:3:\"url\";s:23:\"/civicrm/report?reset=1\";}}',NULL,NULL,8,NULL,NULL,NULL,0,1241,1,1,NULL,'a:0:{}'),(417,1,'civicrm/admin/report/register',NULL,'Register Report','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:18:\"administer Reports\";}i:1;s:3:\"and\";}','s:24:\"CRM_Report_Form_Register\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,0,NULL,'a:1:{s:4:\"desc\";s:30:\"Register the Report templates.\";}'),(418,1,'civicrm/report/instance',NULL,'Report','s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:17:\"access CiviReport\";}i:1;s:3:\"and\";}','s:24:\"CRM_Report_Page_Instance\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"CiviReport\";s:3:\"url\";s:23:\"/civicrm/report?reset=1\";}}',NULL,NULL,8,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(419,1,'civicrm/admin/report/template/list',NULL,'Create New Report from Template','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:17:\"access CiviReport\";}i:1;s:3:\"and\";}','s:28:\"CRM_Report_Page_TemplateList\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,0,NULL,'a:3:{s:4:\"desc\";s:49:\"Component wise listing of all available templates\";s:10:\"adminGroup\";s:10:\"CiviReport\";s:4:\"icon\";s:31:\"admin/small/report_template.gif\";}'),(420,1,'civicrm/admin/report/options/report_template',NULL,'Manage Templates','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:17:\"access CiviReport\";}i:1;s:3:\"and\";}','s:23:\"CRM_Report_Page_Options\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,0,NULL,'a:3:{s:4:\"desc\";s:45:\"Browse, Edit and Delete the Report templates.\";s:10:\"adminGroup\";s:10:\"CiviReport\";s:4:\"icon\";s:24:\"admin/small/template.png\";}'),(421,1,'civicrm/admin/report/list',NULL,'Reports Listing','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:28:\"CRM_Report_Page_InstanceList\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,0,NULL,'a:3:{s:4:\"desc\";s:60:\"Browse existing report, change report criteria and settings.\";s:10:\"adminGroup\";s:10:\"CiviReport\";s:4:\"icon\";s:27:\"admin/small/report_list.gif\";}'),(422,1,'civicrm/campaign',NULL,'Campaign Dashboard','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:23:\"administer CiviCampaign\";i:1;s:15:\"manage campaign\";}i:1;s:2:\"or\";}','s:27:\"CRM_Campaign_Page_DashBoard\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,9,NULL,NULL,NULL,0,1,1,0,NULL,'a:1:{s:9:\"component\";s:12:\"CiviCampaign\";}'),(423,1,'civicrm/campaign/add',NULL,'New Campaign','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:23:\"administer CiviCampaign\";i:1;s:15:\"manage campaign\";}i:1;s:2:\"or\";}','s:26:\"CRM_Campaign_Form_Campaign\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Campaign Dashboard\";s:3:\"url\";s:25:\"/civicrm/campaign?reset=1\";}}',NULL,NULL,9,NULL,NULL,NULL,0,1,1,0,NULL,'a:1:{s:9:\"component\";s:12:\"CiviCampaign\";}'),(424,1,'civicrm/survey/add',NULL,'New Survey','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:23:\"administer CiviCampaign\";i:1;s:15:\"manage campaign\";}i:1;s:2:\"or\";}','s:29:\"CRM_Campaign_Form_Survey_Main\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:1:{s:9:\"component\";s:12:\"CiviCampaign\";}'),(425,1,'civicrm/campaign/vote',NULL,'Conduct Survey','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:4:{i:0;s:23:\"administer CiviCampaign\";i:1;s:15:\"manage campaign\";i:2;s:25:\"reserve campaign contacts\";i:3;s:27:\"interview campaign contacts\";}i:1;s:2:\"or\";}','s:22:\"CRM_Campaign_Page_Vote\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Campaign Dashboard\";s:3:\"url\";s:25:\"/civicrm/campaign?reset=1\";}}',NULL,NULL,9,NULL,NULL,NULL,0,1,1,0,NULL,'a:1:{s:9:\"component\";s:12:\"CiviCampaign\";}'),(426,1,'civicrm/admin/campaign/surveyType',NULL,'Survey Types','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:23:\"administer CiviCampaign\";}i:1;s:3:\"and\";}','s:28:\"CRM_Campaign_Page_SurveyType\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,0,NULL,'a:3:{s:4:\"icon\";s:18:\"admin/small/05.png\";s:10:\"adminGroup\";s:12:\"CiviCampaign\";s:9:\"component\";s:12:\"CiviCampaign\";}'),(427,1,'civicrm/admin/options/campaign_type',NULL,'Campaign Types','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,2,1,0,NULL,'a:4:{s:4:\"desc\";s:47:\"categorize your campaigns using campaign types.\";s:10:\"adminGroup\";s:12:\"CiviCampaign\";s:4:\"icon\";s:18:\"admin/small/05.png\";s:9:\"component\";s:12:\"CiviCampaign\";}'),(428,1,'civicrm/admin/options/campaign_status',NULL,'Campaign Status','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,3,1,0,NULL,'a:4:{s:4:\"desc\";s:34:\"Define statuses for campaign here.\";s:10:\"adminGroup\";s:12:\"CiviCampaign\";s:4:\"icon\";s:18:\"admin/small/05.png\";s:9:\"component\";s:12:\"CiviCampaign\";}'),(429,1,'civicrm/admin/options/engagement_index',NULL,'Engagement Index','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,4,1,0,NULL,'a:4:{s:4:\"desc\";s:18:\"Engagement levels.\";s:10:\"adminGroup\";s:12:\"CiviCampaign\";s:4:\"icon\";s:18:\"admin/small/05.png\";s:9:\"component\";s:12:\"CiviCampaign\";}'),(430,1,'civicrm/survey/search','op=interview','Record Respondents Interview','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:23:\"administer CiviCampaign\";i:1;s:15:\"manage campaign\";i:2;s:27:\"interview campaign contacts\";}i:1;s:2:\"or\";}','s:30:\"CRM_Campaign_Controller_Search\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:1:{s:9:\"component\";s:12:\"CiviCampaign\";}'),(431,1,'civicrm/campaign/gotv',NULL,'GOTV (Track Voters)','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:4:{i:0;s:23:\"administer CiviCampaign\";i:1;s:15:\"manage campaign\";i:2;s:25:\"release campaign contacts\";i:3;s:22:\"gotv campaign contacts\";}i:1;s:2:\"or\";}','s:22:\"CRM_Campaign_Form_Gotv\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Campaign Dashboard\";s:3:\"url\";s:25:\"/civicrm/campaign?reset=1\";}}',NULL,NULL,9,NULL,NULL,NULL,0,1,1,0,NULL,'a:1:{s:9:\"component\";s:12:\"CiviCampaign\";}'),(432,1,'civicrm/petition/add',NULL,'New Petition','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:23:\"administer CiviCampaign\";i:1;s:15:\"manage campaign\";}i:1;s:2:\"or\";}','s:26:\"CRM_Campaign_Form_Petition\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(433,1,'civicrm/petition/sign',NULL,'Sign Petition','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"sign CiviCRM Petition\";}i:1;s:3:\"and\";}','s:36:\"CRM_Campaign_Form_Petition_Signature\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,1,NULL,0,1,1,0,NULL,'a:0:{}'),(434,1,'civicrm/petition/browse',NULL,'View Petition Signatures','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:26:\"CRM_Campaign_Page_Petition\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(435,1,'civicrm/petition/confirm',NULL,'Email address verified','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"sign CiviCRM Petition\";}i:1;s:3:\"and\";}','s:34:\"CRM_Campaign_Page_Petition_Confirm\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,1,NULL,0,1,1,0,NULL,'a:0:{}'),(436,1,'civicrm/petition/thankyou',NULL,'Thank You','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"sign CiviCRM Petition\";}i:1;s:3:\"and\";}','s:35:\"CRM_Campaign_Page_Petition_ThankYou\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,1,NULL,0,1,1,0,NULL,'a:0:{}'),(437,1,'civicrm/campaign/registerInterview',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:23:\"administer CiviCampaign\";i:1;s:15:\"manage campaign\";i:2;s:27:\"interview campaign contacts\";}i:1;s:2:\"or\";}','a:2:{i:0;s:22:\"CRM_Campaign_Page_AJAX\";i:1;s:17:\"registerInterview\";}',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Campaign Dashboard\";s:3:\"url\";s:25:\"/civicrm/campaign?reset=1\";}}',NULL,NULL,9,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(438,1,'civicrm/survey/configure/main',NULL,'Configure Survey','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:23:\"administer CiviCampaign\";i:1;s:15:\"manage campaign\";}i:1;s:2:\"or\";}','s:29:\"CRM_Campaign_Form_Survey_Main\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(439,1,'civicrm/survey/configure/questions',NULL,'Configure Survey','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:23:\"administer CiviCampaign\";i:1;s:15:\"manage campaign\";}i:1;s:2:\"or\";}','s:34:\"CRM_Campaign_Form_Survey_Questions\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(440,1,'civicrm/survey/configure/results',NULL,'Configure Survey','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:23:\"administer CiviCampaign\";i:1;s:15:\"manage campaign\";}i:1;s:2:\"or\";}','s:32:\"CRM_Campaign_Form_Survey_Results\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(441,1,'civicrm/survey/delete',NULL,'Delete Survey','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:23:\"administer CiviCampaign\";i:1;s:15:\"manage campaign\";}i:1;s:2:\"or\";}','s:31:\"CRM_Campaign_Form_Survey_Delete\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(442,1,'admin',NULL,NULL,NULL,NULL,NULL,NULL,'a:15:{s:26:\"Customize Data and Screens\";a:3:{s:12:\"component_id\";N;s:6:\"fields\";a:19:{s:26:\"{weight}.Tags (Categories)\";a:6:{s:5:\"title\";s:17:\"Tags (Categories)\";s:4:\"desc\";s:158:\"Tags are useful for segmenting the contacts in your database into categories (e.g. Staff Member, Donor, Volunteer, etc.). Create and edit available tags here.\";s:2:\"id\";s:15:\"Tags_Categories\";s:3:\"url\";s:20:\"/civicrm/tag?reset=1\";s:4:\"icon\";s:18:\"admin/small/11.png\";s:5:\"extra\";N;}s:20:\"{weight}.Custom Data\";a:6:{s:5:\"title\";s:11:\"Custom Data\";s:4:\"desc\";s:109:\"Configure custom fields to collect and store custom data which is not included in the standard CiviCRM forms.\";s:2:\"id\";s:10:\"CustomData\";s:3:\"url\";s:35:\"/civicrm/admin/custom/group?reset=1\";s:4:\"icon\";s:26:\"admin/small/custm_data.png\";s:5:\"extra\";N;}s:17:\"{weight}.Profiles\";a:6:{s:5:\"title\";s:8:\"Profiles\";s:4:\"desc\";s:151:\"Profiles allow you to aggregate groups of fields and include them in your site as input forms, contact display pages, and search and listings features.\";s:2:\"id\";s:8:\"Profiles\";s:3:\"url\";s:31:\"/civicrm/admin/uf/group?reset=1\";s:4:\"icon\";s:23:\"admin/small/Profile.png\";s:5:\"extra\";N;}s:23:\"{weight}.Activity Types\";a:6:{s:5:\"title\";s:14:\"Activity Types\";s:4:\"desc\";s:155:\"CiviCRM has several built-in activity types (meetings, phone calls, emails sent). Track other types of interactions by creating custom activity types here.\";s:2:\"id\";s:13:\"ActivityTypes\";s:3:\"url\";s:44:\"/civicrm/admin/options/activity_type?reset=1\";s:4:\"icon\";s:18:\"admin/small/05.png\";s:5:\"extra\";N;}s:27:\"{weight}.Relationship Types\";a:6:{s:5:\"title\";s:18:\"Relationship Types\";s:4:\"desc\";s:148:\"Contacts can be linked to each other through Relationships (e.g. Spouse, Employer, etc.). Define the types of relationships you want to record here.\";s:2:\"id\";s:17:\"RelationshipTypes\";s:3:\"url\";s:30:\"/civicrm/admin/reltype?reset=1\";s:4:\"icon\";s:25:\"admin/small/rela_type.png\";s:5:\"extra\";N;}s:22:\"{weight}.Contact Types\";a:6:{s:5:\"title\";s:13:\"Contact Types\";s:4:\"desc\";N;s:2:\"id\";s:12:\"ContactTypes\";s:3:\"url\";s:38:\"/civicrm/admin/options/subtype?reset=1\";s:4:\"icon\";s:18:\"admin/small/09.png\";s:5:\"extra\";N;}s:23:\"{weight}.Gender Options\";a:6:{s:5:\"title\";s:14:\"Gender Options\";s:4:\"desc\";s:79:\"Options for assigning gender to individual contacts (e.g. Male, Female, Other).\";s:2:\"id\";s:13:\"GenderOptions\";s:3:\"url\";s:37:\"/civicrm/admin/options/gender?reset=1\";s:4:\"icon\";s:18:\"admin/small/01.png\";s:5:\"extra\";N;}s:40:\"{weight}.Individual Prefixes (Ms, Mr...)\";a:6:{s:5:\"title\";s:31:\"Individual Prefixes (Ms, Mr...)\";s:4:\"desc\";s:66:\"Options for individual contact prefixes (e.g. Ms., Mr., Dr. etc.).\";s:2:\"id\";s:27:\"IndividualPrefixes_Ms_Mr...\";s:3:\"url\";s:48:\"/civicrm/admin/options/individual_prefix?reset=1\";s:4:\"icon\";s:21:\"admin/small/title.png\";s:5:\"extra\";N;}s:40:\"{weight}.Individual Suffixes (Jr, Sr...)\";a:6:{s:5:\"title\";s:31:\"Individual Suffixes (Jr, Sr...)\";s:4:\"desc\";s:61:\"Options for individual contact suffixes (e.g. Jr., Sr. etc.).\";s:2:\"id\";s:27:\"IndividualSuffixes_Jr_Sr...\";s:3:\"url\";s:48:\"/civicrm/admin/options/individual_suffix?reset=1\";s:4:\"icon\";s:18:\"admin/small/10.png\";s:5:\"extra\";N;}s:39:\"{weight}.Location Types (Home, Work...)\";a:6:{s:5:\"title\";s:30:\"Location Types (Home, Work...)\";s:4:\"desc\";s:94:\"Options for categorizing contact addresses and phone numbers (e.g. Home, Work, Billing, etc.).\";s:2:\"id\";s:26:\"LocationTypes_Home_Work...\";s:3:\"url\";s:35:\"/civicrm/admin/locationType?reset=1\";s:4:\"icon\";s:18:\"admin/small/13.png\";s:5:\"extra\";N;}s:22:\"{weight}.Website Types\";a:6:{s:5:\"title\";s:13:\"Website Types\";s:4:\"desc\";s:48:\"Options for assigning website types to contacts.\";s:2:\"id\";s:12:\"WebsiteTypes\";s:3:\"url\";s:43:\"/civicrm/admin/options/website_type?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:35:\"{weight}.Instant Messenger Services\";a:6:{s:5:\"title\";s:26:\"Instant Messenger Services\";s:4:\"desc\";s:79:\"List of IM services which can be used when recording screen-names for contacts.\";s:2:\"id\";s:24:\"InstantMessengerServices\";s:3:\"url\";s:56:\"/civicrm/admin/options/instant_messenger_service?reset=1\";s:4:\"icon\";s:18:\"admin/small/07.png\";s:5:\"extra\";N;}s:31:\"{weight}.Mobile Phone Providers\";a:6:{s:5:\"title\";s:22:\"Mobile Phone Providers\";s:4:\"desc\";s:90:\"List of mobile phone providers which can be assigned when recording contact phone numbers.\";s:2:\"id\";s:20:\"MobilePhoneProviders\";s:3:\"url\";s:46:\"/civicrm/admin/options/mobile_provider?reset=1\";s:4:\"icon\";s:18:\"admin/small/08.png\";s:5:\"extra\";N;}s:19:\"{weight}.Phone Type\";a:6:{s:5:\"title\";s:10:\"Phone Type\";s:4:\"desc\";s:80:\"Options for assigning phone type to contacts (e.g Phone,\n    Mobile, Fax, Pager)\";s:2:\"id\";s:9:\"PhoneType\";s:3:\"url\";s:41:\"/civicrm/admin/options/phone_type?reset=1\";s:4:\"icon\";s:7:\"tel.gif\";s:5:\"extra\";N;}s:28:\"{weight}.Display Preferences\";a:6:{s:5:\"title\";s:19:\"Display Preferences\";s:4:\"desc\";N;s:2:\"id\";s:18:\"DisplayPreferences\";s:3:\"url\";s:50:\"/civicrm/admin/setting/preferences/display?reset=1\";s:4:\"icon\";s:18:\"admin/small/36.png\";s:5:\"extra\";N;}s:27:\"{weight}.Search Preferences\";a:6:{s:5:\"title\";s:18:\"Search Preferences\";s:4:\"desc\";N;s:2:\"id\";s:17:\"SearchPreferences\";s:3:\"url\";s:37:\"/civicrm/admin/setting/search?reset=1\";s:4:\"icon\";s:18:\"admin/small/36.png\";s:5:\"extra\";N;}s:24:\"{weight}.Navigation Menu\";a:6:{s:5:\"title\";s:15:\"Navigation Menu\";s:4:\"desc\";s:79:\"Add or remove menu items, and modify the order of items on the navigation menu.\";s:2:\"id\";s:14:\"NavigationMenu\";s:3:\"url\";s:27:\"/civicrm/admin/menu?reset=1\";s:4:\"icon\";s:24:\"admin/small/template.png\";s:5:\"extra\";N;}s:26:\"{weight}.Word Replacements\";a:6:{s:5:\"title\";s:17:\"Word Replacements\";s:4:\"desc\";s:18:\"Word Replacements.\";s:2:\"id\";s:16:\"WordReplacements\";s:3:\"url\";s:47:\"/civicrm/admin/options/wordreplacements?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:31:\"{weight}.Manage Custom Searches\";a:6:{s:5:\"title\";s:22:\"Manage Custom Searches\";s:4:\"desc\";s:225:\"Developers and accidental techies with a bit of PHP and SQL knowledge can create new search forms to handle specific search and reporting needs which aren\'t covered by the built-in Advanced Search and Search Builder features.\";s:2:\"id\";s:20:\"ManageCustomSearches\";s:3:\"url\";s:44:\"/civicrm/admin/options/custom_search?reset=1\";s:4:\"icon\";s:24:\"admin/small/template.png\";s:5:\"extra\";N;}}s:9:\"perColumn\";d:10;}s:6:\"Manage\";a:3:{s:12:\"component_id\";N;s:6:\"fields\";a:3:{s:42:\"{weight}.Find and Merge Duplicate Contacts\";a:6:{s:5:\"title\";s:33:\"Find and Merge Duplicate Contacts\";s:4:\"desc\";s:158:\"Manage the rules used to identify potentially duplicate contact records. Scan for duplicates using a selected rule and merge duplicate contact data as needed.\";s:2:\"id\";s:29:\"FindandMergeDuplicateContacts\";s:3:\"url\";s:36:\"/civicrm/contact/deduperules?reset=1\";s:4:\"icon\";s:34:\"admin/small/duplicate_matching.png\";s:5:\"extra\";N;}s:26:\"{weight}.Dedupe Exceptions\";a:6:{s:5:\"title\";s:17:\"Dedupe Exceptions\";s:4:\"desc\";N;s:2:\"id\";s:16:\"DedupeExceptions\";s:3:\"url\";s:33:\"/civicrm/dedupe/exception?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:27:\"{weight}.Scheduled Jobs Log\";a:6:{s:5:\"title\";s:18:\"Scheduled Jobs Log\";s:4:\"desc\";s:46:\"Browsing the log of periodially running tasks.\";s:2:\"id\";s:16:\"ScheduledJobsLog\";s:3:\"url\";s:29:\"/civicrm/admin/joblog?reset=1\";s:4:\"icon\";s:18:\"admin/small/13.png\";s:5:\"extra\";N;}}s:9:\"perColumn\";d:2;}s:14:\"CiviContribute\";a:3:{s:12:\"component_id\";N;s:6:\"fields\";a:9:{s:32:\"{weight}.Personal Campaign Pages\";a:6:{s:5:\"title\";s:23:\"Personal Campaign Pages\";s:4:\"desc\";s:49:\"View and manage existing personal campaign pages.\";s:2:\"id\";s:21:\"PersonalCampaignPages\";s:3:\"url\";s:49:\"/civicrm/admin/pcp?context=contribute&amp;reset=1\";s:4:\"icon\";s:34:\"admin/small/contribution_types.png\";s:5:\"extra\";N;}s:34:\"{weight}.Manage Contribution Pages\";a:6:{s:5:\"title\";s:25:\"Manage Contribution Pages\";s:4:\"desc\";s:242:\"CiviContribute allows you to create and maintain any number of Online Contribution Pages. You can create different pages for different programs or campaigns - and customize text, amounts, types of information collected from contributors, etc.\";s:2:\"id\";s:23:\"ManageContributionPages\";s:3:\"url\";s:33:\"/civicrm/admin/contribute?reset=1\";s:4:\"icon\";s:41:\"admin/small/online_contribution_pages.png\";s:5:\"extra\";N;}s:24:\"{weight}.Manage Premiums\";a:6:{s:5:\"title\";s:15:\"Manage Premiums\";s:4:\"desc\";s:175:\"CiviContribute allows you to configure any number of Premiums which can be offered to contributors as incentives / thank-you gifts. Define the premiums you want to offer here.\";s:2:\"id\";s:14:\"ManagePremiums\";s:3:\"url\";s:48:\"/civicrm/admin/contribute/managePremiums?reset=1\";s:4:\"icon\";s:24:\"admin/small/Premiums.png\";s:5:\"extra\";N;}s:24:\"{weight}.Financial Types\";a:6:{s:5:\"title\";s:15:\"Financial Types\";s:4:\"desc\";s:64:\"Formerly civicrm_contribution_type merged into this table in 4.1\";s:2:\"id\";s:14:\"FinancialTypes\";s:3:\"url\";s:46:\"/civicrm/admin/financial/financialType?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:27:\"{weight}.Financial Accounts\";a:6:{s:5:\"title\";s:18:\"Financial Accounts\";s:4:\"desc\";s:128:\"Financial types are used to categorize contributions for reporting and accounting purposes. These are also referred to as Funds.\";s:2:\"id\";s:17:\"FinancialAccounts\";s:3:\"url\";s:49:\"/civicrm/admin/financial/financialAccount?reset=1\";s:4:\"icon\";s:34:\"admin/small/contribution_types.png\";s:5:\"extra\";N;}s:24:\"{weight}.Payment Methods\";a:6:{s:5:\"title\";s:15:\"Payment Methods\";s:4:\"desc\";s:224:\"You may choose to record the payment instrument used for each contribution. Common payment methods are installed by default (e.g. Check, Cash, Credit Card...). If your site requires additional payment methods, add them here.\";s:2:\"id\";s:14:\"PaymentMethods\";s:3:\"url\";s:49:\"/civicrm/admin/options/payment_instrument?reset=1\";s:4:\"icon\";s:35:\"admin/small/payment_instruments.png\";s:5:\"extra\";N;}s:30:\"{weight}.Accepted Credit Cards\";a:6:{s:5:\"title\";s:21:\"Accepted Credit Cards\";s:4:\"desc\";s:94:\"Credit card options that will be offered to contributors using your Online Contribution pages.\";s:2:\"id\";s:19:\"AcceptedCreditCards\";s:3:\"url\";s:48:\"/civicrm/admin/options/accept_creditcard?reset=1\";s:4:\"icon\";s:36:\"admin/small/accepted_creditcards.png\";s:5:\"extra\";N;}s:26:\"{weight}.Soft Credit Types\";a:6:{s:5:\"title\";s:17:\"Soft Credit Types\";s:4:\"desc\";s:86:\"Soft Credit Types that will be offered to contributors during soft credit contribution\";s:2:\"id\";s:15:\"SoftCreditTypes\";s:3:\"url\";s:47:\"/civicrm/admin/options/soft_credit_type?reset=1\";s:4:\"icon\";s:32:\"admin/small/soft_credit_type.png\";s:5:\"extra\";N;}s:42:\"{weight}.CiviContribute Component Settings\";a:6:{s:5:\"title\";s:33:\"CiviContribute Component Settings\";s:4:\"desc\";s:42:\"Configure global CiviContribute behaviors.\";s:2:\"id\";s:31:\"CiviContributeComponentSettings\";s:3:\"url\";s:53:\"/civicrm/admin/setting/preferences/contribute?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}}s:9:\"perColumn\";d:5;}s:14:\"Communications\";a:3:{s:12:\"component_id\";N;s:6:\"fields\";a:11:{s:46:\"{weight}.Organization Address and Contact Info\";a:6:{s:5:\"title\";s:37:\"Organization Address and Contact Info\";s:4:\"desc\";s:150:\"Configure primary contact name, email, return-path and address information. This information is used by CiviMail to identify the sending organization.\";s:2:\"id\";s:33:\"OrganizationAddressandContactInfo\";s:3:\"url\";s:47:\"/civicrm/admin/domain?action=update&amp;reset=1\";s:4:\"icon\";s:22:\"admin/small/domain.png\";s:5:\"extra\";N;}s:29:\"{weight}.From Email Addresses\";a:6:{s:5:\"title\";s:20:\"From Email Addresses\";s:4:\"desc\";s:74:\"List of Email Addresses which can be used when sending emails to contacts.\";s:2:\"id\";s:18:\"FromEmailAddresses\";s:3:\"url\";s:49:\"/civicrm/admin/options/from_email_address?reset=1\";s:4:\"icon\";s:21:\"admin/small/title.png\";s:5:\"extra\";N;}s:26:\"{weight}.Message Templates\";a:6:{s:5:\"title\";s:17:\"Message Templates\";s:4:\"desc\";s:130:\"Message templates allow you to save and re-use messages with layouts which you can use when sending email to one or more contacts.\";s:2:\"id\";s:16:\"MessageTemplates\";s:3:\"url\";s:39:\"/civicrm/admin/messageTemplates?reset=1\";s:4:\"icon\";s:24:\"admin/small/template.png\";s:5:\"extra\";N;}s:27:\"{weight}.Schedule Reminders\";a:6:{s:5:\"title\";s:18:\"Schedule Reminders\";s:4:\"desc\";s:19:\"Schedule Reminders.\";s:2:\"id\";s:17:\"ScheduleReminders\";s:3:\"url\";s:40:\"/civicrm/admin/scheduleReminders?reset=1\";s:4:\"icon\";s:24:\"admin/small/template.png\";s:5:\"extra\";N;}s:40:\"{weight}.Preferred Communication Methods\";a:6:{s:5:\"title\";s:31:\"Preferred Communication Methods\";s:4:\"desc\";s:117:\"One or more preferred methods of communication can be assigned to each contact. Customize the available options here.\";s:2:\"id\";s:29:\"PreferredCommunicationMethods\";s:3:\"url\";s:61:\"/civicrm/admin/options/preferred_communication_method?reset=1\";s:4:\"icon\";s:29:\"admin/small/communication.png\";s:5:\"extra\";N;}s:22:\"{weight}.Label Formats\";a:6:{s:5:\"title\";s:13:\"Label Formats\";s:4:\"desc\";s:67:\"Configure Label Formats that are used when creating mailing labels.\";s:2:\"id\";s:12:\"LabelFormats\";s:3:\"url\";s:35:\"/civicrm/admin/labelFormats?reset=1\";s:4:\"icon\";s:24:\"admin/small/template.png\";s:5:\"extra\";N;}s:33:\"{weight}.Print Page (PDF) Formats\";a:6:{s:5:\"title\";s:24:\"Print Page (PDF) Formats\";s:4:\"desc\";s:95:\"Configure PDF Page Formats that can be assigned to Message Templates when creating PDF letters.\";s:2:\"id\";s:20:\"PrintPage_PDFFormats\";s:3:\"url\";s:33:\"/civicrm/admin/pdfFormats?reset=1\";s:4:\"icon\";s:24:\"admin/small/template.png\";s:5:\"extra\";N;}s:36:\"{weight}.Communication Style Options\";a:6:{s:5:\"title\";s:27:\"Communication Style Options\";s:4:\"desc\";s:42:\"Options for Communication Style selection.\";s:2:\"id\";s:25:\"CommunicationStyleOptions\";s:3:\"url\";s:50:\"/civicrm/admin/options/communication_style?reset=1\";s:4:\"icon\";s:18:\"admin/small/01.png\";s:5:\"extra\";N;}s:31:\"{weight}.Email Greeting Formats\";a:6:{s:5:\"title\";s:22:\"Email Greeting Formats\";s:4:\"desc\";s:75:\"Options for assigning email greetings to individual and household contacts.\";s:2:\"id\";s:20:\"EmailGreetingFormats\";s:3:\"url\";s:45:\"/civicrm/admin/options/email_greeting?reset=1\";s:4:\"icon\";s:18:\"admin/small/01.png\";s:5:\"extra\";N;}s:32:\"{weight}.Postal Greeting Formats\";a:6:{s:5:\"title\";s:23:\"Postal Greeting Formats\";s:4:\"desc\";s:76:\"Options for assigning postal greetings to individual and household contacts.\";s:2:\"id\";s:21:\"PostalGreetingFormats\";s:3:\"url\";s:46:\"/civicrm/admin/options/postal_greeting?reset=1\";s:4:\"icon\";s:18:\"admin/small/01.png\";s:5:\"extra\";N;}s:26:\"{weight}.Addressee Formats\";a:6:{s:5:\"title\";s:17:\"Addressee Formats\";s:4:\"desc\";s:83:\"Options for assigning addressee to individual, household and organization contacts.\";s:2:\"id\";s:16:\"AddresseeFormats\";s:3:\"url\";s:40:\"/civicrm/admin/options/addressee?reset=1\";s:4:\"icon\";s:18:\"admin/small/01.png\";s:5:\"extra\";N;}}s:9:\"perColumn\";d:6;}s:12:\"Localization\";a:3:{s:12:\"component_id\";N;s:6:\"fields\";a:4:{s:39:\"{weight}.Languages, Currency, Locations\";a:6:{s:5:\"title\";s:30:\"Languages, Currency, Locations\";s:4:\"desc\";N;s:2:\"id\";s:28:\"Languages_Currency_Locations\";s:3:\"url\";s:43:\"/civicrm/admin/setting/localization?reset=1\";s:4:\"icon\";s:18:\"admin/small/36.png\";s:5:\"extra\";N;}s:25:\"{weight}.Address Settings\";a:6:{s:5:\"title\";s:16:\"Address Settings\";s:4:\"desc\";N;s:2:\"id\";s:15:\"AddressSettings\";s:3:\"url\";s:50:\"/civicrm/admin/setting/preferences/address?reset=1\";s:4:\"icon\";s:18:\"admin/small/36.png\";s:5:\"extra\";N;}s:21:\"{weight}.Date Formats\";a:6:{s:5:\"title\";s:12:\"Date Formats\";s:4:\"desc\";N;s:2:\"id\";s:11:\"DateFormats\";s:3:\"url\";s:35:\"/civicrm/admin/setting/date?reset=1\";s:4:\"icon\";s:18:\"admin/small/36.png\";s:5:\"extra\";N;}s:28:\"{weight}.Preferred Languages\";a:6:{s:5:\"title\";s:19:\"Preferred Languages\";s:4:\"desc\";s:30:\"Options for contact languages.\";s:2:\"id\";s:18:\"PreferredLanguages\";s:3:\"url\";s:40:\"/civicrm/admin/options/languages?reset=1\";s:4:\"icon\";s:18:\"admin/small/36.png\";s:5:\"extra\";N;}}s:9:\"perColumn\";d:2;}s:21:\"Users and Permissions\";a:3:{s:12:\"component_id\";N;s:6:\"fields\";a:2:{s:23:\"{weight}.Access Control\";a:6:{s:5:\"title\";s:14:\"Access Control\";s:4:\"desc\";s:73:\"Grant or deny access to actions (view, edit...), features and components.\";s:2:\"id\";s:13:\"AccessControl\";s:3:\"url\";s:29:\"/civicrm/admin/access?reset=1\";s:4:\"icon\";s:18:\"admin/small/03.png\";s:5:\"extra\";N;}s:38:\"{weight}.Synchronize Users to Contacts\";a:6:{s:5:\"title\";s:29:\"Synchronize Users to Contacts\";s:4:\"desc\";s:71:\"Automatically create a CiviCRM contact record for each CMS user record.\";s:2:\"id\";s:26:\"SynchronizeUserstoContacts\";s:3:\"url\";s:32:\"/civicrm/admin/synchUser?reset=1\";s:4:\"icon\";s:26:\"admin/small/Synch_user.png\";s:5:\"extra\";N;}}s:9:\"perColumn\";d:1;}s:15:\"System Settings\";a:3:{s:12:\"component_id\";N;s:6:\"fields\";a:18:{s:32:\"{weight}.Configuration Checklist\";a:6:{s:5:\"title\";s:23:\"Configuration Checklist\";s:4:\"desc\";s:55:\"List of configuration tasks with links to each setting.\";s:2:\"id\";s:22:\"ConfigurationChecklist\";s:3:\"url\";s:33:\"/civicrm/admin/configtask?reset=1\";s:4:\"icon\";s:9:\"check.gif\";s:5:\"extra\";N;}s:34:\"{weight}.Enable CiviCRM Components\";a:6:{s:5:\"title\";s:25:\"Enable CiviCRM Components\";s:4:\"desc\";s:269:\"Enable or disable components (e.g. CiviEvent, CiviMember, etc.) for your site based on the features you need. We recommend disabling any components not being used in order to simplify the user interface. You can easily re-enable components at any time from this screen.\";s:2:\"id\";s:23:\"EnableCiviCRMComponents\";s:3:\"url\";s:40:\"/civicrm/admin/setting/component?reset=1\";s:4:\"icon\";s:18:\"admin/small/36.png\";s:5:\"extra\";N;}s:26:\"{weight}.Manage Extensions\";a:6:{s:5:\"title\";s:17:\"Manage Extensions\";s:4:\"desc\";s:0:\"\";s:2:\"id\";s:16:\"ManageExtensions\";s:3:\"url\";s:33:\"/civicrm/admin/extensions?reset=1\";s:4:\"icon\";s:26:\"admin/small/price_sets.png\";s:5:\"extra\";N;}s:32:\"{weight}.Outbound Email Settings\";a:6:{s:5:\"title\";s:23:\"Outbound Email Settings\";s:4:\"desc\";N;s:2:\"id\";s:21:\"OutboundEmailSettings\";s:3:\"url\";s:35:\"/civicrm/admin/setting/smtp?reset=1\";s:4:\"icon\";s:18:\"admin/small/07.png\";s:5:\"extra\";N;}s:37:\"{weight}.Settings - Payment Processor\";a:6:{s:5:\"title\";s:28:\"Settings - Payment Processor\";s:4:\"desc\";s:48:\"Payment Processor setup for CiviCRM transactions\";s:2:\"id\";s:25:\"Settings-PaymentProcessor\";s:3:\"url\";s:39:\"/civicrm/admin/paymentProcessor?reset=1\";s:4:\"icon\";s:41:\"admin/small/online_contribution_pages.png\";s:5:\"extra\";N;}s:30:\"{weight}.Mapping and Geocoding\";a:6:{s:5:\"title\";s:21:\"Mapping and Geocoding\";s:4:\"desc\";N;s:2:\"id\";s:19:\"MappingandGeocoding\";s:3:\"url\";s:38:\"/civicrm/admin/setting/mapping?reset=1\";s:4:\"icon\";s:18:\"admin/small/36.png\";s:5:\"extra\";N;}s:62:\"{weight}.Misc (Undelete, PDFs, Limits, Logging, Captcha, etc.)\";a:6:{s:5:\"title\";s:53:\"Misc (Undelete, PDFs, Limits, Logging, Captcha, etc.)\";s:4:\"desc\";s:91:\"Enable undelete/move to trash feature, detailed change logging, ReCAPTCHA to protect forms.\";s:2:\"id\";s:46:\"Misc_Undelete_PDFs_Limits_Logging_Captcha_etc.\";s:3:\"url\";s:35:\"/civicrm/admin/setting/misc?reset=1\";s:4:\"icon\";s:18:\"admin/small/36.png\";s:5:\"extra\";N;}s:20:\"{weight}.Directories\";a:6:{s:5:\"title\";s:11:\"Directories\";s:4:\"desc\";N;s:2:\"id\";s:11:\"Directories\";s:3:\"url\";s:35:\"/civicrm/admin/setting/path?reset=1\";s:4:\"icon\";s:18:\"admin/small/36.png\";s:5:\"extra\";N;}s:22:\"{weight}.Resource URLs\";a:6:{s:5:\"title\";s:13:\"Resource URLs\";s:4:\"desc\";N;s:2:\"id\";s:12:\"ResourceURLs\";s:3:\"url\";s:34:\"/civicrm/admin/setting/url?reset=1\";s:4:\"icon\";s:18:\"admin/small/36.png\";s:5:\"extra\";N;}s:40:\"{weight}.Cleanup Caches and Update Paths\";a:6:{s:5:\"title\";s:31:\"Cleanup Caches and Update Paths\";s:4:\"desc\";s:157:\"Reset the Base Directory Path and Base URL settings - generally when a CiviCRM site is moved to another location in the file system and/or to another domain.\";s:2:\"id\";s:27:\"CleanupCachesandUpdatePaths\";s:3:\"url\";s:50:\"/civicrm/admin/setting/updateConfigBackend?reset=1\";s:4:\"icon\";s:26:\"admin/small/updatepath.png\";s:5:\"extra\";N;}s:33:\"{weight}.CMS Database Integration\";a:6:{s:5:\"title\";s:24:\"CMS Database Integration\";s:4:\"desc\";N;s:2:\"id\";s:22:\"CMSDatabaseIntegration\";s:3:\"url\";s:33:\"/civicrm/admin/setting/uf?reset=1\";s:4:\"icon\";s:18:\"admin/small/36.png\";s:5:\"extra\";N;}s:36:\"{weight}.Safe File Extension Options\";a:6:{s:5:\"title\";s:27:\"Safe File Extension Options\";s:4:\"desc\";s:44:\"File Extensions that can be considered safe.\";s:2:\"id\";s:24:\"SafeFileExtensionOptions\";s:3:\"url\";s:50:\"/civicrm/admin/options/safe_file_extension?reset=1\";s:4:\"icon\";s:18:\"admin/small/01.png\";s:5:\"extra\";N;}s:22:\"{weight}.Option Groups\";a:6:{s:5:\"title\";s:13:\"Option Groups\";s:4:\"desc\";s:35:\"Access all meta-data option groups.\";s:2:\"id\";s:12:\"OptionGroups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";s:4:\"icon\";s:18:\"admin/small/01.png\";s:5:\"extra\";N;}s:31:\"{weight}.Import/Export Mappings\";a:6:{s:5:\"title\";s:22:\"Import/Export Mappings\";s:4:\"desc\";s:141:\"Import and Export mappings allow you to easily run the same job multiple times. This option allows you to rename or delete existing mappings.\";s:2:\"id\";s:21:\"Import_ExportMappings\";s:3:\"url\";s:30:\"/civicrm/admin/mapping?reset=1\";s:4:\"icon\";s:33:\"admin/small/import_export_map.png\";s:5:\"extra\";N;}s:18:\"{weight}.Debugging\";a:6:{s:5:\"title\";s:9:\"Debugging\";s:4:\"desc\";N;s:2:\"id\";s:9:\"Debugging\";s:3:\"url\";s:36:\"/civicrm/admin/setting/debug?reset=1\";s:4:\"icon\";s:18:\"admin/small/36.png\";s:5:\"extra\";N;}s:28:\"{weight}.Multi Site Settings\";a:6:{s:5:\"title\";s:19:\"Multi Site Settings\";s:4:\"desc\";N;s:2:\"id\";s:17:\"MultiSiteSettings\";s:3:\"url\";s:52:\"/civicrm/admin/setting/preferences/multisite?reset=1\";s:4:\"icon\";s:18:\"admin/small/36.png\";s:5:\"extra\";N;}s:23:\"{weight}.Scheduled Jobs\";a:6:{s:5:\"title\";s:14:\"Scheduled Jobs\";s:4:\"desc\";s:35:\"Managing periodially running tasks.\";s:2:\"id\";s:13:\"ScheduledJobs\";s:3:\"url\";s:26:\"/civicrm/admin/job?reset=1\";s:4:\"icon\";s:18:\"admin/small/13.png\";s:5:\"extra\";N;}s:22:\"{weight}.Sms Providers\";a:6:{s:5:\"title\";s:13:\"Sms Providers\";s:4:\"desc\";s:27:\"To configure a sms provider\";s:2:\"id\";s:12:\"SmsProviders\";s:3:\"url\";s:35:\"/civicrm/admin/sms/provider?reset=1\";s:4:\"icon\";s:18:\"admin/small/36.png\";s:5:\"extra\";N;}}s:9:\"perColumn\";d:9;}s:12:\"CiviCampaign\";a:3:{s:12:\"component_id\";N;s:6:\"fields\";a:5:{s:40:\"{weight}.CiviCampaign Component Settings\";a:6:{s:5:\"title\";s:31:\"CiviCampaign Component Settings\";s:4:\"desc\";s:40:\"Configure global CiviCampaign behaviors.\";s:2:\"id\";s:29:\"CiviCampaignComponentSettings\";s:3:\"url\";s:51:\"/civicrm/admin/setting/preferences/campaign?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:21:\"{weight}.Survey Types\";a:6:{s:5:\"title\";s:12:\"Survey Types\";s:4:\"desc\";N;s:2:\"id\";s:11:\"SurveyTypes\";s:3:\"url\";s:42:\"/civicrm/admin/campaign/surveyType?reset=1\";s:4:\"icon\";s:18:\"admin/small/05.png\";s:5:\"extra\";N;}s:23:\"{weight}.Campaign Types\";a:6:{s:5:\"title\";s:14:\"Campaign Types\";s:4:\"desc\";s:47:\"categorize your campaigns using campaign types.\";s:2:\"id\";s:13:\"CampaignTypes\";s:3:\"url\";s:44:\"/civicrm/admin/options/campaign_type?reset=1\";s:4:\"icon\";s:18:\"admin/small/05.png\";s:5:\"extra\";N;}s:24:\"{weight}.Campaign Status\";a:6:{s:5:\"title\";s:15:\"Campaign Status\";s:4:\"desc\";s:34:\"Define statuses for campaign here.\";s:2:\"id\";s:14:\"CampaignStatus\";s:3:\"url\";s:46:\"/civicrm/admin/options/campaign_status?reset=1\";s:4:\"icon\";s:18:\"admin/small/05.png\";s:5:\"extra\";N;}s:25:\"{weight}.Engagement Index\";a:6:{s:5:\"title\";s:16:\"Engagement Index\";s:4:\"desc\";s:18:\"Engagement levels.\";s:2:\"id\";s:15:\"EngagementIndex\";s:3:\"url\";s:47:\"/civicrm/admin/options/engagement_index?reset=1\";s:4:\"icon\";s:18:\"admin/small/05.png\";s:5:\"extra\";N;}}s:9:\"perColumn\";d:3;}s:9:\"CiviEvent\";a:3:{s:12:\"component_id\";N;s:6:\"fields\";a:9:{s:37:\"{weight}.CiviEvent Component Settings\";a:6:{s:5:\"title\";s:28:\"CiviEvent Component Settings\";s:4:\"desc\";s:37:\"Configure global CiviEvent behaviors.\";s:2:\"id\";s:26:\"CiviEventComponentSettings\";s:3:\"url\";s:48:\"/civicrm/admin/setting/preferences/event?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:33:\"{weight}.Event Name Badge Layouts\";a:6:{s:5:\"title\";s:24:\"Event Name Badge Layouts\";s:4:\"desc\";s:107:\"Configure name badge layouts for event participants, including logos and what data to include on the badge.\";s:2:\"id\";s:21:\"EventNameBadgeLayouts\";s:3:\"url\";s:52:\"/civicrm/admin/badgelayout?action=browse&amp;reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:22:\"{weight}.Manage Events\";a:6:{s:5:\"title\";s:13:\"Manage Events\";s:4:\"desc\";s:136:\"Create and edit event configuration including times, locations, online registration forms, and fees. Links for iCal and RSS syndication.\";s:2:\"id\";s:12:\"ManageEvents\";s:3:\"url\";s:28:\"/civicrm/admin/event?reset=1\";s:4:\"icon\";s:28:\"admin/small/event_manage.png\";s:5:\"extra\";N;}s:24:\"{weight}.Event Templates\";a:6:{s:5:\"title\";s:15:\"Event Templates\";s:4:\"desc\";s:115:\"Administrators can create Event Templates - which are basically master event records pre-filled with default values\";s:2:\"id\";s:14:\"EventTemplates\";s:3:\"url\";s:36:\"/civicrm/admin/eventTemplate?reset=1\";s:4:\"icon\";s:24:\"admin/small/template.png\";s:5:\"extra\";N;}s:20:\"{weight}.Event Types\";a:6:{s:5:\"title\";s:11:\"Event Types\";s:4:\"desc\";s:143:\"Use Event Types to categorize your events. Event feeds can be filtered by Event Type and participant searches can use Event Type as a criteria.\";s:2:\"id\";s:10:\"EventTypes\";s:3:\"url\";s:41:\"/civicrm/admin/options/event_type?reset=1\";s:4:\"icon\";s:26:\"admin/small/event_type.png\";s:5:\"extra\";N;}s:27:\"{weight}.Participant Status\";a:6:{s:5:\"title\";s:18:\"Participant Status\";s:4:\"desc\";s:154:\"Define statuses for event participants here (e.g. Registered, Attended, Cancelled...). You can then assign statuses and search for participants by status.\";s:2:\"id\";s:17:\"ParticipantStatus\";s:3:\"url\";s:41:\"/civicrm/admin/participant_status?reset=1\";s:4:\"icon\";s:28:\"admin/small/parti_status.png\";s:5:\"extra\";N;}s:25:\"{weight}.Participant Role\";a:6:{s:5:\"title\";s:16:\"Participant Role\";s:4:\"desc\";s:138:\"Define participant roles for events here (e.g. Attendee, Host, Speaker...). You can then assign roles and search for participants by role.\";s:2:\"id\";s:15:\"ParticipantRole\";s:3:\"url\";s:47:\"/civicrm/admin/options/participant_role?reset=1\";s:4:\"icon\";s:26:\"admin/small/parti_role.png\";s:5:\"extra\";N;}s:38:\"{weight}.Participant Listing Templates\";a:6:{s:5:\"title\";s:29:\"Participant Listing Templates\";s:4:\"desc\";s:48:\"Template to control participant listing display.\";s:2:\"id\";s:27:\"ParticipantListingTemplates\";s:3:\"url\";s:50:\"/civicrm/admin/options/participant_listing?reset=1\";s:4:\"icon\";s:18:\"admin/small/01.png\";s:5:\"extra\";N;}s:31:\"{weight}.Conference Slot Labels\";a:6:{s:5:\"title\";s:22:\"Conference Slot Labels\";s:4:\"desc\";s:35:\"Define conference slots and labels.\";s:2:\"id\";s:20:\"ConferenceSlotLabels\";s:3:\"url\";s:65:\"/civicrm/admin/conference_slots?group=conference_slot&amp;reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}}s:9:\"perColumn\";d:5;}s:8:\"CiviMail\";a:3:{s:12:\"component_id\";N;s:6:\"fields\";a:5:{s:36:\"{weight}.CiviMail Component Settings\";a:6:{s:5:\"title\";s:27:\"CiviMail Component Settings\";s:4:\"desc\";s:36:\"Configure global CiviMail behaviors.\";s:2:\"id\";s:25:\"CiviMailComponentSettings\";s:3:\"url\";s:50:\"/civicrm/admin/setting/preferences/mailing?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:24:\"{weight}.Mailer Settings\";a:6:{s:5:\"title\";s:15:\"Mailer Settings\";s:4:\"desc\";s:61:\"Configure spool period, throttling and other mailer settings.\";s:2:\"id\";s:14:\"MailerSettings\";s:3:\"url\";s:27:\"/civicrm/admin/mail?reset=1\";s:4:\"icon\";s:18:\"admin/small/07.png\";s:5:\"extra\";N;}s:49:\"{weight}.Headers, Footers, and Automated Messages\";a:6:{s:5:\"title\";s:40:\"Headers, Footers, and Automated Messages\";s:4:\"desc\";s:143:\"Configure the header and footer used for mailings. Customize the content of automated Subscribe, Unsubscribe, Resubscribe and Opt-out messages.\";s:2:\"id\";s:36:\"Headers_Footers_andAutomatedMessages\";s:3:\"url\";s:32:\"/civicrm/admin/component?reset=1\";s:4:\"icon\";s:23:\"admin/small/Profile.png\";s:5:\"extra\";N;}s:29:\"{weight}.From Email Addresses\";a:6:{s:5:\"title\";s:20:\"From Email Addresses\";s:4:\"desc\";s:74:\"List of Email Addresses which can be used when sending emails to contacts.\";s:2:\"id\";s:18:\"FromEmailAddresses\";s:3:\"url\";s:58:\"/civicrm/admin/options/from_email_address/civimail?reset=1\";s:4:\"icon\";s:21:\"admin/small/title.png\";s:5:\"extra\";N;}s:22:\"{weight}.Mail Accounts\";a:6:{s:5:\"title\";s:13:\"Mail Accounts\";s:4:\"desc\";s:32:\"Configure email account setting.\";s:2:\"id\";s:12:\"MailAccounts\";s:3:\"url\";s:35:\"/civicrm/admin/mailSettings?reset=1\";s:4:\"icon\";s:18:\"admin/small/07.png\";s:5:\"extra\";N;}}s:9:\"perColumn\";d:3;}s:10:\"CiviMember\";a:3:{s:12:\"component_id\";N;s:6:\"fields\";a:3:{s:38:\"{weight}.CiviMember Component Settings\";a:6:{s:5:\"title\";s:29:\"CiviMember Component Settings\";s:4:\"desc\";s:38:\"Configure global CiviMember behaviors.\";s:2:\"id\";s:27:\"CiviMemberComponentSettings\";s:3:\"url\";s:49:\"/civicrm/admin/setting/preferences/member?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:25:\"{weight}.Membership Types\";a:6:{s:5:\"title\";s:16:\"Membership Types\";s:4:\"desc\";s:174:\"Define the types of memberships you want to offer. For each type, you can specify a \'name\' (Gold Member, Honor Society Member...), a description, duration, and a minimum fee.\";s:2:\"id\";s:15:\"MembershipTypes\";s:3:\"url\";s:44:\"/civicrm/admin/member/membershipType?reset=1\";s:4:\"icon\";s:31:\"admin/small/membership_type.png\";s:5:\"extra\";N;}s:32:\"{weight}.Membership Status Rules\";a:6:{s:5:\"title\";s:23:\"Membership Status Rules\";s:4:\"desc\";s:187:\"Status \'rules\' define the current status for a membership based on that membership\'s start and end dates. You can adjust the default status options and rules as needed to meet your needs.\";s:2:\"id\";s:21:\"MembershipStatusRules\";s:3:\"url\";s:46:\"/civicrm/admin/member/membershipStatus?reset=1\";s:4:\"icon\";s:33:\"admin/small/membership_status.png\";s:5:\"extra\";N;}}s:9:\"perColumn\";d:2;}s:12:\"Option Lists\";a:3:{s:12:\"component_id\";N;s:6:\"fields\";a:1:{s:20:\"{weight}.Grant Types\";a:6:{s:5:\"title\";s:11:\"Grant Types\";s:4:\"desc\";s:148:\"List of types which can be assigned to Grants. (Enable CiviGrant from Administer > Systme Settings > Enable Components if you want to track grants.)\";s:2:\"id\";s:10:\"GrantTypes\";s:3:\"url\";s:41:\"/civicrm/admin/options/grant_type?reset=1\";s:4:\"icon\";s:26:\"admin/small/grant_type.png\";s:5:\"extra\";N;}}s:9:\"perColumn\";d:1;}s:9:\"Customize\";a:3:{s:12:\"component_id\";N;s:6:\"fields\";a:1:{s:19:\"{weight}.Price Sets\";a:6:{s:5:\"title\";s:10:\"Price Sets\";s:4:\"desc\";s:205:\"Price sets allow you to offer multiple options with associated fees (e.g. pre-conference workshops, additional meals, etc.). Configure Price Sets for events which need more than a single set of fee levels.\";s:2:\"id\";s:9:\"PriceSets\";s:3:\"url\";s:28:\"/civicrm/admin/price?reset=1\";s:4:\"icon\";s:26:\"admin/small/price_sets.png\";s:5:\"extra\";N;}}s:9:\"perColumn\";d:1;}s:8:\"CiviCase\";a:3:{s:12:\"component_id\";N;s:6:\"fields\";a:5:{s:26:\"{weight}.CiviCase Settings\";a:6:{s:5:\"title\";s:17:\"CiviCase Settings\";s:4:\"desc\";N;s:2:\"id\";s:16:\"CiviCaseSettings\";s:3:\"url\";s:35:\"/civicrm/admin/setting/case?reset=1\";s:4:\"icon\";s:18:\"admin/small/36.png\";s:5:\"extra\";N;}s:19:\"{weight}.Case Types\";a:6:{s:5:\"title\";s:10:\"Case Types\";s:4:\"desc\";s:137:\"List of types which can be assigned to Cases. (Enable the Cases tab from System Settings - Enable Components if you want to track cases.)\";s:2:\"id\";s:9:\"CaseTypes\";s:3:\"url\";s:40:\"/civicrm/admin/options/case_type?reset=1\";s:4:\"icon\";s:25:\"admin/small/case_type.png\";s:5:\"extra\";N;}s:24:\"{weight}.Redaction Rules\";a:6:{s:5:\"title\";s:15:\"Redaction Rules\";s:4:\"desc\";s:223:\"List of rules which can be applied to user input strings so that the redacted output can be recognized as repeated instances of the same string or can be identified as a \"semantic type of the data element\" within case data.\";s:2:\"id\";s:14:\"RedactionRules\";s:3:\"url\";s:45:\"/civicrm/admin/options/redaction_rule?reset=1\";s:4:\"icon\";s:30:\"admin/small/redaction_type.png\";s:5:\"extra\";N;}s:22:\"{weight}.Case Statuses\";a:6:{s:5:\"title\";s:13:\"Case Statuses\";s:4:\"desc\";s:48:\"List of statuses that can be assigned to a case.\";s:2:\"id\";s:12:\"CaseStatuses\";s:3:\"url\";s:42:\"/civicrm/admin/options/case_status?reset=1\";s:4:\"icon\";s:25:\"admin/small/case_type.png\";s:5:\"extra\";N;}s:26:\"{weight}.Encounter Mediums\";a:6:{s:5:\"title\";s:17:\"Encounter Mediums\";s:4:\"desc\";s:26:\"List of encounter mediums.\";s:2:\"id\";s:16:\"EncounterMediums\";s:3:\"url\";s:47:\"/civicrm/admin/options/encounter_medium?reset=1\";s:4:\"icon\";s:25:\"admin/small/case_type.png\";s:5:\"extra\";N;}}s:9:\"perColumn\";d:3;}s:10:\"CiviReport\";a:3:{s:12:\"component_id\";N;s:6:\"fields\";a:3:{s:40:\"{weight}.Create New Report from Template\";a:6:{s:5:\"title\";s:31:\"Create New Report from Template\";s:4:\"desc\";s:49:\"Component wise listing of all available templates\";s:2:\"id\";s:27:\"CreateNewReportfromTemplate\";s:3:\"url\";s:43:\"/civicrm/admin/report/template/list?reset=1\";s:4:\"icon\";s:31:\"admin/small/report_template.gif\";s:5:\"extra\";N;}s:25:\"{weight}.Manage Templates\";a:6:{s:5:\"title\";s:16:\"Manage Templates\";s:4:\"desc\";s:45:\"Browse, Edit and Delete the Report templates.\";s:2:\"id\";s:15:\"ManageTemplates\";s:3:\"url\";s:53:\"/civicrm/admin/report/options/report_template?reset=1\";s:4:\"icon\";s:24:\"admin/small/template.png\";s:5:\"extra\";N;}s:24:\"{weight}.Reports Listing\";a:6:{s:5:\"title\";s:15:\"Reports Listing\";s:4:\"desc\";s:60:\"Browse existing report, change report criteria and settings.\";s:2:\"id\";s:14:\"ReportsListing\";s:3:\"url\";s:34:\"/civicrm/admin/report/list?reset=1\";s:4:\"icon\";s:27:\"admin/small/report_list.gif\";s:5:\"extra\";N;}}s:9:\"perColumn\";d:2;}}',NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,NULL,'a:0:{}');
+INSERT INTO `civicrm_menu` (`id`, `domain_id`, `path`, `path_arguments`, `title`, `access_callback`, `access_arguments`, `page_callback`, `page_arguments`, `breadcrumb`, `return_url`, `return_url_args`, `component_id`, `is_active`, `is_public`, `is_exposed`, `is_ssl`, `weight`, `type`, `page_type`, `skipBreadcrumb`, `module_data`) VALUES (1,1,'civicrm/profile',NULL,NULL,'s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:23:\"CRM_Profile_Page_Router\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,1,NULL,0,0,1,0,NULL,'a:0:{}'),(2,1,'civicrm/profile/create',NULL,'CiviCRM Profile Create','s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:23:\"CRM_Profile_Page_Router\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,1,NULL,0,0,1,0,NULL,'a:0:{}'),(3,1,'civicrm/profile/view',NULL,NULL,'s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:21:\"CRM_Profile_Page_View\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,1,NULL,0,1,1,0,NULL,'a:0:{}'),(4,1,'civicrm/ajax/api4',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:18:\"CRM_Api4_Page_AJAX\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(5,1,'civicrm/api4',NULL,'CiviCRM','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:26:\"CRM_Api4_Page_Api4Explorer\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(6,1,'civicrm/activity','action=add&context=standalone','New Activity','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:26:\"CRM_Activity_Form_Activity\";','s:14:\"attachUpload=1\";','a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(7,1,'civicrm/activity/view',NULL,'View Activity','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:30:\"CRM_Activity_Form_ActivityView\";','s:14:\"attachUpload=1\";','a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:12:\"New Activity\";s:3:\"url\";s:63:\"/civicrm/activity?reset=1&amp;action=add&amp;context=standalone\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(8,1,'civicrm/ajax/activity',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:22:\"CRM_Activity_Page_AJAX\";i:1;s:15:\"getCaseActivity\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(9,1,'civicrm/ajax/globalrelationships',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:22:\"CRM_Activity_Page_AJAX\";i:1;s:26:\"getCaseGlobalRelationships\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(10,1,'civicrm/ajax/clientrelationships',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:22:\"CRM_Activity_Page_AJAX\";i:1;s:26:\"getCaseClientRelationships\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(11,1,'civicrm/ajax/caseroles',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:22:\"CRM_Activity_Page_AJAX\";i:1;s:12:\"getCaseRoles\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(12,1,'civicrm/ajax/contactactivity',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:22:\"CRM_Activity_Page_AJAX\";i:1;s:18:\"getContactActivity\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(13,1,'civicrm/ajax/activity/convert',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:22:\"CRM_Activity_Page_AJAX\";i:1;s:21:\"convertToCaseActivity\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,3,NULL,'a:0:{}'),(14,1,'civicrm/activity/search',NULL,'Find Activities','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:30:\"CRM_Activity_Controller_Search\";','s:14:\"attachUpload=1\";','a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:12:\"New Activity\";s:3:\"url\";s:63:\"/civicrm/activity?reset=1&amp;action=add&amp;context=standalone\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(15,1,'civicrm/pcp',NULL,NULL,'s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:16:\"CRM_PCP_Form_PCP\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,1,NULL,0,1,1,0,NULL,'a:0:{}'),(16,1,'civicrm/pcp/campaign',NULL,'Setup a Personal Campaign Page - Account Information','s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:25:\"make online contributions\";}i:1;s:3:\"and\";}','s:22:\"CRM_PCP_Controller_PCP\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,1,NULL,0,0,1,0,NULL,'a:0:{}'),(17,1,'civicrm/pcp/info',NULL,NULL,'s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:20:\"CRM_PCP_Page_PCPInfo\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,1,NULL,0,1,1,0,NULL,'a:0:{}'),(18,1,'civicrm/admin/pcp','context=contribute','Personal Campaign Pages','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:16:\"CRM_PCP_Page_PCP\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,362,1,0,NULL,'a:3:{s:4:\"desc\";s:49:\"View and manage existing personal campaign pages.\";s:10:\"adminGroup\";s:14:\"CiviContribute\";s:4:\"icon\";s:34:\"admin/small/contribution_types.png\";}'),(19,1,'civicrm/upgrade',NULL,'Upgrade CiviCRM','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:24:\"CRM_Upgrade_Page_Upgrade\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(20,1,'civicrm/export',NULL,'Download Errors','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Export_BAO_Export\";i:1;s:6:\"invoke\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(21,1,'civicrm/export/contact',NULL,'Export Contacts','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Export_BAO_Export\";i:1;s:6:\"invoke\";}',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Download Errors\";s:3:\"url\";s:23:\"/civicrm/export?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,0,1,0,NULL,'a:0:{}'),(22,1,'civicrm/export/standalone',NULL,'Export','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:32:\"CRM_Export_Controller_Standalone\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Download Errors\";s:3:\"url\";s:23:\"/civicrm/export?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(23,1,'civicrm/admin/options/acl_role',NULL,'ACL Roles','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,0,NULL,'a:0:{}'),(24,1,'civicrm/acl',NULL,'Manage ACLs','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:16:\"CRM_ACL_Page_ACL\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(25,1,'civicrm/acl/entityrole',NULL,'Assign Users to ACL Roles','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:23:\"CRM_ACL_Page_EntityRole\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:11:\"Manage ACLs\";s:3:\"url\";s:20:\"/civicrm/acl?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(26,1,'civicrm/acl/basic',NULL,'ACL','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:21:\"CRM_ACL_Page_ACLBasic\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:11:\"Manage ACLs\";s:3:\"url\";s:20:\"/civicrm/acl?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(27,1,'civicrm/file',NULL,'Browse Uploaded files','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access uploaded files\";}i:1;s:3:\"and\";}','s:18:\"CRM_Core_Page_File\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(28,1,'civicrm/file/delete',NULL,'Delete File','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:17:\"CRM_Core_BAO_File\";i:1;s:16:\"deleteAttachment\";}',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:21:\"Browse Uploaded files\";s:3:\"url\";s:21:\"/civicrm/file?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(29,1,'civicrm/friend',NULL,'Tell a Friend','s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:15:\"CRM_Friend_Form\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,1,NULL,0,1,1,0,NULL,'a:0:{}'),(30,1,'civicrm/logout',NULL,'Log out','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:16:\"CRM_Utils_System\";i:1;s:6:\"logout\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,9999,1,1,NULL,'a:0:{}'),(31,1,'civicrm/i18n',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:17:\"translate CiviCRM\";}i:1;s:3:\"and\";}','s:18:\"CRM_Core_I18n_Form\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(32,1,'civicrm/ajax/attachment',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"access AJAX API\";}i:1;s:2:\"or\";}','a:2:{i:0;s:29:\"CRM_Core_Page_AJAX_Attachment\";i:1;s:10:\"attachFile\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(33,1,'civicrm/api',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Core_Page_Redirect\";','s:16:\"url=civicrm/api3\";','a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(34,1,'civicrm/api3',NULL,'CiviCRM API v3','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:26:\"CRM_Admin_Page_APIExplorer\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(35,1,'civicrm/ajax/apiexample',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:26:\"CRM_Admin_Page_APIExplorer\";i:1;s:14:\"getExampleFile\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(36,1,'civicrm/ajax/apidoc',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:26:\"CRM_Admin_Page_APIExplorer\";i:1;s:6:\"getDoc\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(37,1,'civicrm/ajax/rest',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"access AJAX API\";}i:1;s:2:\"or\";}','a:2:{i:0;s:14:\"CRM_Utils_REST\";i:1;s:4:\"ajax\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(38,1,'civicrm/api/json',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:14:\"CRM_Utils_REST\";i:1;s:8:\"ajaxJson\";}','s:16:\"url=civicrm/api3\";','a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(39,1,'civicrm/inline',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:14:\"CRM_Utils_REST\";i:1;s:12:\"loadTemplate\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(40,1,'civicrm/ajax/chart',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:38:\"CRM_Contribute_Form_ContributionCharts\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(41,1,'civicrm/asset/builder',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"*always allow*\";}i:1;s:3:\"and\";}','a:2:{i:0;s:23:\"\\Civi\\Core\\AssetBuilder\";i:1;s:7:\"pageRun\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(42,1,'civicrm/contribute/ajax/tableview',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:29:\"CRM_Contribute_Page_DashBoard\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(43,1,'civicrm/payment/ipn',NULL,NULL,'s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','a:2:{i:0;s:16:\"CRM_Core_Payment\";i:1;s:9:\"handleIPN\";}',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:11:\"New Payment\";s:3:\"url\";s:39:\"/civicrm/payment?reset=1&amp;action=add\";}}',NULL,NULL,2,NULL,1,NULL,0,1,1,0,NULL,'a:0:{}'),(44,1,'civicrm/batch',NULL,'Batch Data Entry','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:20:\"CRM_Batch_Page_Batch\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(45,1,'civicrm/batch/add',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:20:\"CRM_Batch_Form_Batch\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:16:\"Batch Data Entry\";s:3:\"url\";s:22:\"/civicrm/batch?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(46,1,'civicrm/batch/entry',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:20:\"CRM_Batch_Form_Entry\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:16:\"Batch Data Entry\";s:3:\"url\";s:22:\"/civicrm/batch?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(47,1,'civicrm/ajax/batch',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','a:2:{i:0;s:19:\"CRM_Batch_Page_AJAX\";i:1;s:9:\"batchSave\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(48,1,'civicrm/ajax/batchlist',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:19:\"CRM_Batch_Page_AJAX\";i:1;s:12:\"getBatchList\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(49,1,'civicrm/ajax/inline',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:18:\"CRM_Core_Page_AJAX\";i:1;s:3:\"run\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(50,1,'civicrm/dev/qunit',NULL,'QUnit','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:18:\"administer CiviCRM\";}i:1;s:3:\"and\";}','s:19:\"CRM_Core_Page_QUnit\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(51,1,'civicrm/profile-editor/schema',NULL,'ProfileEditor','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:25:\"CRM_UF_Page_ProfileEditor\";i:1;s:13:\"getSchemaJSON\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(52,1,'civicrm/a',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:23:\"\\Civi\\Angular\\Page\\Main\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(53,1,'civicrm/ajax/angular-modules',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"*always allow*\";}i:1;s:3:\"and\";}','s:26:\"\\Civi\\Angular\\Page\\Modules\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(54,1,'civicrm/ajax/recurringentity/update-mode',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:34:\"CRM_Core_Page_AJAX_RecurringEntity\";i:1;s:10:\"updateMode\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(55,1,'civicrm/recurringentity/preview',NULL,'Confirm dates','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:36:\"CRM_Core_Page_RecurringEntityPreview\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(56,1,'civicrm/ajax/l10n-js',NULL,NULL,'s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:18:\"CRM_Core_Resources\";i:1;s:20:\"outputLocalizationJS\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,1,NULL,0,1,1,0,NULL,'a:0:{}'),(57,1,'civicrm/shortcode',NULL,'Insert CiviCRM Content','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:23:\"CRM_Core_Form_ShortCode\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(58,1,'civicrm/task/add-to-group',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:32:\"CRM_Contact_Form_Task_AddToGroup\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(59,1,'civicrm/task/remove-from-group',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:37:\"CRM_Contact_Form_Task_RemoveFromGroup\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(60,1,'civicrm/task/add-to-tag',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:30:\"CRM_Contact_Form_Task_AddToTag\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(61,1,'civicrm/task/remove-from-tag',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:35:\"CRM_Contact_Form_Task_RemoveFromTag\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(62,1,'civicrm/task/send-email',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:27:\"CRM_Contact_Form_Task_Email\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(63,1,'civicrm/task/make-mailing-label',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:27:\"CRM_Contact_Form_Task_Label\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(64,1,'civicrm/task/pick-profile',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:33:\"CRM_Contact_Form_Task_PickProfile\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(65,1,'civicrm/task/print-document',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:25:\"CRM_Contact_Form_Task_PDF\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(66,1,'civicrm/task/unhold-email',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:28:\"CRM_Contact_Form_Task_Unhold\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(67,1,'civicrm/task/alter-contact-preference',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:38:\"CRM_Contact_Form_Task_AlterPreferences\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(68,1,'civicrm/task/delete-contact',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:28:\"CRM_Contact_Form_Task_Delete\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(69,1,'civicrm/payment/form',NULL,NULL,'s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:26:\"CRM_Financial_Form_Payment\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:11:\"New Payment\";s:3:\"url\";s:39:\"/civicrm/payment?reset=1&amp;action=add\";}}',NULL,NULL,2,NULL,1,NULL,0,0,1,0,NULL,'a:0:{}'),(70,1,'civicrm/payment/edit',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:30:\"CRM_Financial_Form_PaymentEdit\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:11:\"New Payment\";s:3:\"url\";s:39:\"/civicrm/payment?reset=1&amp;action=add\";}}',NULL,NULL,2,NULL,NULL,NULL,0,1,1,0,NULL,'a:1:{s:9:\"component\";s:14:\"CiviContribute\";}'),(71,1,'civicrm/import',NULL,'Import','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:15:\"import contacts\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:29:\"CRM_Contact_Import_Controller\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,400,1,1,NULL,'a:0:{}'),(72,1,'civicrm/import/contact',NULL,'Import Contacts','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:15:\"import contacts\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:29:\"CRM_Contact_Import_Controller\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:6:\"Import\";s:3:\"url\";s:23:\"/civicrm/import?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,410,1,1,NULL,'a:0:{}'),(73,1,'civicrm/import/activity',NULL,'Import Activities','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:15:\"import contacts\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:30:\"CRM_Activity_Import_Controller\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:6:\"Import\";s:3:\"url\";s:23:\"/civicrm/import?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,420,1,1,NULL,'a:0:{}'),(74,1,'civicrm/import/custom','id=%%id%%','Import Multi-value Custom Data','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:28:\"CRM_Custom_Import_Controller\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:6:\"Import\";s:3:\"url\";s:23:\"/civicrm/import?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,420,1,1,NULL,'a:0:{}'),(75,1,'civicrm/ajax/status',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:15:\"import contacts\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:28:\"CRM_Contact_Import_Page_AJAX\";i:1;s:6:\"status\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(76,1,'civicrm/custom/add',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:26:\"CRM_Custom_Form_CustomData\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(77,1,'civicrm/ajax/optionlist',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:20:\"CRM_Custom_Page_AJAX\";i:1;s:13:\"getOptionList\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(78,1,'civicrm/ajax/reorder',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:20:\"CRM_Custom_Page_AJAX\";i:1;s:11:\"fixOrdering\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(79,1,'civicrm/ajax/multirecordfieldlist',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:20:\"CRM_Custom_Page_AJAX\";i:1;s:23:\"getMultiRecordFieldList\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(80,1,'civicrm/admin/custom/group',NULL,'Custom Data','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:21:\"CRM_Custom_Page_Group\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,10,1,0,NULL,'a:3:{s:4:\"desc\";s:109:\"Configure custom fields to collect and store custom data which is not included in the standard CiviCRM forms.\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";s:4:\"icon\";s:26:\"admin/small/custm_data.png\";}'),(81,1,'civicrm/admin/custom/group/field',NULL,'Custom Data Fields','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:21:\"CRM_Custom_Page_Field\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:11:\"Custom Data\";s:3:\"url\";s:35:\"/civicrm/admin/custom/group?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,11,1,0,0,'a:0:{}'),(82,1,'civicrm/admin/custom/group/field/option',NULL,'Custom Field - Options','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Custom_Page_Option\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:11:\"Custom Data\";s:3:\"url\";s:35:\"/civicrm/admin/custom/group?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,0,NULL,'a:0:{}'),(83,1,'civicrm/admin/custom/group/field/add',NULL,'Custom Field - Add','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:21:\"CRM_Custom_Form_Field\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:11:\"Custom Data\";s:3:\"url\";s:35:\"/civicrm/admin/custom/group?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,0,NULL,'a:0:{}'),(84,1,'civicrm/admin/custom/group/field/update',NULL,'Custom Field - Edit','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:21:\"CRM_Custom_Form_Field\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:11:\"Custom Data\";s:3:\"url\";s:35:\"/civicrm/admin/custom/group?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,0,NULL,'a:0:{}'),(85,1,'civicrm/admin/custom/group/field/move',NULL,'Custom Field - Move','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:25:\"CRM_Custom_Form_MoveField\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:11:\"Custom Data\";s:3:\"url\";s:35:\"/civicrm/admin/custom/group?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,0,NULL,'a:0:{}'),(86,1,'civicrm/admin/custom/group/field/changetype',NULL,'Custom Field - Change Type','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:31:\"CRM_Custom_Form_ChangeFieldType\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:11:\"Custom Data\";s:3:\"url\";s:35:\"/civicrm/admin/custom/group?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,0,NULL,'a:0:{}'),(87,1,'civicrm/admin/uf/group',NULL,'Profiles','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:17:\"CRM_UF_Page_Group\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,20,1,0,NULL,'a:3:{s:4:\"desc\";s:151:\"Profiles allow you to aggregate groups of fields and include them in your site as input forms, contact display pages, and search and listings features.\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";s:4:\"icon\";s:23:\"admin/small/Profile.png\";}'),(88,1,'civicrm/admin/uf/group/field',NULL,'CiviCRM Profile Fields','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:17:\"CRM_UF_Page_Field\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:8:\"Profiles\";s:3:\"url\";s:31:\"/civicrm/admin/uf/group?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,21,1,0,0,'a:0:{}'),(89,1,'civicrm/admin/uf/group/field/add',NULL,'Add Field','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:17:\"CRM_UF_Form_Field\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:8:\"Profiles\";s:3:\"url\";s:31:\"/civicrm/admin/uf/group?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,22,1,0,NULL,'a:0:{}'),(90,1,'civicrm/admin/uf/group/field/update',NULL,'Edit Field','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:17:\"CRM_UF_Form_Field\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:8:\"Profiles\";s:3:\"url\";s:31:\"/civicrm/admin/uf/group?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,23,1,0,NULL,'a:0:{}'),(91,1,'civicrm/admin/uf/group/add',NULL,'New CiviCRM Profile','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:17:\"CRM_UF_Form_Group\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:8:\"Profiles\";s:3:\"url\";s:31:\"/civicrm/admin/uf/group?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,24,1,0,NULL,'a:0:{}'),(92,1,'civicrm/admin/uf/group/update',NULL,'Profile Settings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:17:\"CRM_UF_Form_Group\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:8:\"Profiles\";s:3:\"url\";s:31:\"/civicrm/admin/uf/group?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,25,1,0,NULL,'a:0:{}'),(93,1,'civicrm/admin/uf/group/setting',NULL,'AdditionalInfo Form','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:26:\"CRM_UF_Form_AdvanceSetting\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:8:\"Profiles\";s:3:\"url\";s:31:\"/civicrm/admin/uf/group?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,0,1,0,NULL,'a:0:{}'),(94,1,'civicrm/admin/options/activity_type',NULL,'Activity Types','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,30,1,0,NULL,'a:3:{s:4:\"desc\";s:155:\"CiviCRM has several built-in activity types (meetings, phone calls, emails sent). Track other types of interactions by creating custom activity types here.\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";s:4:\"icon\";s:18:\"admin/small/05.png\";}'),(95,1,'civicrm/admin/reltype',NULL,'Relationship Types','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:31:\"CRM_Admin_Page_RelationshipType\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,35,1,0,NULL,'a:3:{s:4:\"desc\";s:148:\"Contacts can be linked to each other through Relationships (e.g. Spouse, Employer, etc.). Define the types of relationships you want to record here.\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";s:4:\"icon\";s:25:\"admin/small/rela_type.png\";}'),(96,1,'civicrm/admin/options/subtype',NULL,'Contact Types','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:26:\"CRM_Admin_Page_ContactType\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,40,1,0,NULL,'a:2:{s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";s:4:\"icon\";s:18:\"admin/small/09.png\";}'),(97,1,'civicrm/admin/options/gender',NULL,'Gender Options','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,45,1,0,NULL,'a:3:{s:4:\"desc\";s:79:\"Options for assigning gender to individual contacts (e.g. Male, Female, Other).\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";s:4:\"icon\";s:18:\"admin/small/01.png\";}'),(98,1,'civicrm/admin/options/individual_prefix',NULL,'Individual Prefixes (Ms, Mr...)','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,50,1,0,NULL,'a:3:{s:4:\"desc\";s:66:\"Options for individual contact prefixes (e.g. Ms., Mr., Dr. etc.).\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";s:4:\"icon\";s:21:\"admin/small/title.png\";}'),(99,1,'civicrm/admin/options/individual_suffix',NULL,'Individual Suffixes (Jr, Sr...)','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,55,1,0,NULL,'a:3:{s:4:\"desc\";s:61:\"Options for individual contact suffixes (e.g. Jr., Sr. etc.).\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";s:4:\"icon\";s:18:\"admin/small/10.png\";}'),(100,1,'civicrm/admin/locationType',NULL,'Location Types (Home, Work...)','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:27:\"CRM_Admin_Page_LocationType\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,60,1,0,NULL,'a:3:{s:4:\"desc\";s:94:\"Options for categorizing contact addresses and phone numbers (e.g. Home, Work, Billing, etc.).\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";s:4:\"icon\";s:18:\"admin/small/13.png\";}'),(101,1,'civicrm/admin/options/website_type',NULL,'Website Types','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,65,1,0,NULL,'a:2:{s:4:\"desc\";s:48:\"Options for assigning website types to contacts.\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";}'),(102,1,'civicrm/admin/options/instant_messenger_service',NULL,'Instant Messenger Services','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,70,1,0,NULL,'a:3:{s:4:\"desc\";s:79:\"List of IM services which can be used when recording screen-names for contacts.\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";s:4:\"icon\";s:18:\"admin/small/07.png\";}'),(103,1,'civicrm/admin/options/mobile_provider',NULL,'Mobile Phone Providers','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,75,1,0,NULL,'a:3:{s:4:\"desc\";s:90:\"List of mobile phone providers which can be assigned when recording contact phone numbers.\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";s:4:\"icon\";s:18:\"admin/small/08.png\";}'),(104,1,'civicrm/admin/options/phone_type',NULL,'Phone Type','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,80,1,0,NULL,'a:3:{s:4:\"desc\";s:80:\"Options for assigning phone type to contacts (e.g Phone,\n    Mobile, Fax, Pager)\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";s:4:\"icon\";s:7:\"tel.gif\";}'),(105,1,'civicrm/admin/setting/preferences/display',NULL,'Display Preferences','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:34:\"CRM_Admin_Form_Preferences_Display\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,90,1,0,NULL,'a:2:{s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";s:4:\"icon\";s:18:\"admin/small/36.png\";}'),(106,1,'civicrm/admin/setting/search',NULL,'Search Preferences','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:29:\"CRM_Admin_Form_Setting_Search\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,95,1,0,NULL,'a:2:{s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";s:4:\"icon\";s:18:\"admin/small/36.png\";}'),(107,1,'civicrm/admin/setting/preferences/date',NULL,'View Date Preferences','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:30:\"CRM_Admin_Page_PreferencesDate\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,0,NULL,'a:0:{}'),(108,1,'civicrm/admin/menu',NULL,'Navigation Menu','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:25:\"CRM_Admin_Page_Navigation\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,100,1,0,NULL,'a:3:{s:4:\"desc\";s:79:\"Add or remove menu items, and modify the order of items on the navigation menu.\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";s:4:\"icon\";s:24:\"admin/small/template.png\";}'),(109,1,'civicrm/admin/options/wordreplacements',NULL,'Word Replacements','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:31:\"CRM_Admin_Form_WordReplacements\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,105,1,0,NULL,'a:2:{s:4:\"desc\";s:18:\"Word Replacements.\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";}'),(110,1,'civicrm/admin/options/custom_search',NULL,'Manage Custom Searches','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,110,1,0,NULL,'a:3:{s:4:\"desc\";s:225:\"Developers and accidental techies with a bit of PHP and SQL knowledge can create new search forms to handle specific search and reporting needs which aren\'t covered by the built-in Advanced Search and Search Builder features.\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";s:4:\"icon\";s:24:\"admin/small/template.png\";}'),(111,1,'civicrm/admin/domain','action=update','Organization Address and Contact Info','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:23:\"CRM_Contact_Form_Domain\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,10,1,0,NULL,'a:3:{s:4:\"desc\";s:150:\"Configure primary contact name, email, return-path and address information. This information is used by CiviMail to identify the sending organization.\";s:10:\"adminGroup\";s:14:\"Communications\";s:4:\"icon\";s:22:\"admin/small/domain.png\";}'),(112,1,'civicrm/admin/options/from_email_address',NULL,'From Email Addresses','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,20,1,0,NULL,'a:3:{s:4:\"desc\";s:74:\"List of Email Addresses which can be used when sending emails to contacts.\";s:10:\"adminGroup\";s:14:\"Communications\";s:4:\"icon\";s:21:\"admin/small/title.png\";}'),(113,1,'civicrm/admin/messageTemplates',NULL,'Message Templates','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:22:\"edit message templates\";i:1;s:34:\"edit user-driven message templates\";i:2;s:38:\"edit system workflow message templates\";}i:1;s:2:\"or\";}','s:31:\"CRM_Admin_Page_MessageTemplates\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,30,1,0,NULL,'a:3:{s:4:\"desc\";s:130:\"Message templates allow you to save and re-use messages with layouts which you can use when sending email to one or more contacts.\";s:10:\"adminGroup\";s:14:\"Communications\";s:4:\"icon\";s:24:\"admin/small/template.png\";}'),(114,1,'civicrm/admin/messageTemplates/add',NULL,'Message Templates','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:22:\"edit message templates\";i:1;s:34:\"edit user-driven message templates\";i:2;s:38:\"edit system workflow message templates\";}i:1;s:2:\"or\";}','s:31:\"CRM_Admin_Form_MessageTemplates\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:17:\"Message Templates\";s:3:\"url\";s:39:\"/civicrm/admin/messageTemplates?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,262,1,0,NULL,'a:1:{s:4:\"desc\";s:26:\"Add/Edit Message Templates\";}'),(115,1,'civicrm/admin/scheduleReminders',NULL,'Schedule Reminders','s:1:\"1\";','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:15:\"edit all events\";}i:1;s:2:\"or\";}','s:32:\"CRM_Admin_Page_ScheduleReminders\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,40,1,0,NULL,'a:3:{s:4:\"desc\";s:19:\"Schedule Reminders.\";s:10:\"adminGroup\";s:14:\"Communications\";s:4:\"icon\";s:24:\"admin/small/template.png\";}'),(116,1,'civicrm/admin/weight',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:16:\"CRM_Utils_Weight\";i:1;s:8:\"fixOrder\";}',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,0,NULL,'a:0:{}'),(117,1,'civicrm/admin/options/preferred_communication_method',NULL,'Preferred Communication Methods','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,50,1,0,NULL,'a:3:{s:4:\"desc\";s:117:\"One or more preferred methods of communication can be assigned to each contact. Customize the available options here.\";s:10:\"adminGroup\";s:14:\"Communications\";s:4:\"icon\";s:29:\"admin/small/communication.png\";}'),(118,1,'civicrm/admin/labelFormats',NULL,'Label Formats','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:27:\"CRM_Admin_Page_LabelFormats\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,60,1,0,NULL,'a:3:{s:4:\"desc\";s:67:\"Configure Label Formats that are used when creating mailing labels.\";s:10:\"adminGroup\";s:14:\"Communications\";s:4:\"icon\";s:24:\"admin/small/template.png\";}'),(119,1,'civicrm/admin/pdfFormats',NULL,'Print Page (PDF) Formats','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:25:\"CRM_Admin_Page_PdfFormats\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,70,1,0,NULL,'a:3:{s:4:\"desc\";s:95:\"Configure PDF Page Formats that can be assigned to Message Templates when creating PDF letters.\";s:10:\"adminGroup\";s:14:\"Communications\";s:4:\"icon\";s:24:\"admin/small/template.png\";}'),(120,1,'civicrm/admin/options/communication_style',NULL,'Communication Style Options','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,75,1,0,NULL,'a:3:{s:4:\"desc\";s:42:\"Options for Communication Style selection.\";s:10:\"adminGroup\";s:14:\"Communications\";s:4:\"icon\";s:18:\"admin/small/01.png\";}'),(121,1,'civicrm/admin/options/email_greeting',NULL,'Email Greeting Formats','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,80,1,0,NULL,'a:3:{s:4:\"desc\";s:75:\"Options for assigning email greetings to individual and household contacts.\";s:10:\"adminGroup\";s:14:\"Communications\";s:4:\"icon\";s:18:\"admin/small/01.png\";}'),(122,1,'civicrm/admin/options/postal_greeting',NULL,'Postal Greeting Formats','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,90,1,0,NULL,'a:3:{s:4:\"desc\";s:76:\"Options for assigning postal greetings to individual and household contacts.\";s:10:\"adminGroup\";s:14:\"Communications\";s:4:\"icon\";s:18:\"admin/small/01.png\";}'),(123,1,'civicrm/admin/options/addressee',NULL,'Addressee Formats','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,100,1,0,NULL,'a:3:{s:4:\"desc\";s:83:\"Options for assigning addressee to individual, household and organization contacts.\";s:10:\"adminGroup\";s:14:\"Communications\";s:4:\"icon\";s:18:\"admin/small/01.png\";}'),(124,1,'civicrm/admin/setting/localization',NULL,'Languages, Currency, Locations','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:35:\"CRM_Admin_Form_Setting_Localization\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,10,1,0,NULL,'a:2:{s:10:\"adminGroup\";s:12:\"Localization\";s:4:\"icon\";s:18:\"admin/small/36.png\";}'),(125,1,'civicrm/admin/setting/preferences/address',NULL,'Address Settings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:34:\"CRM_Admin_Form_Preferences_Address\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,20,1,0,NULL,'a:2:{s:10:\"adminGroup\";s:12:\"Localization\";s:4:\"icon\";s:18:\"admin/small/36.png\";}'),(126,1,'civicrm/admin/setting/date',NULL,'Date Formats','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:27:\"CRM_Admin_Form_Setting_Date\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,30,1,0,NULL,'a:2:{s:10:\"adminGroup\";s:12:\"Localization\";s:4:\"icon\";s:18:\"admin/small/36.png\";}'),(127,1,'civicrm/admin/options/languages',NULL,'Preferred Languages','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,40,1,0,NULL,'a:3:{s:4:\"desc\";s:30:\"Options for contact languages.\";s:10:\"adminGroup\";s:12:\"Localization\";s:4:\"icon\";s:18:\"admin/small/36.png\";}'),(128,1,'civicrm/admin/access',NULL,'Access Control','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:21:\"CRM_Admin_Page_Access\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,10,1,0,NULL,'a:3:{s:4:\"desc\";s:73:\"Grant or deny access to actions (view, edit...), features and components.\";s:10:\"adminGroup\";s:21:\"Users and Permissions\";s:4:\"icon\";s:18:\"admin/small/03.png\";}'),(129,1,'civicrm/admin/access/wp-permissions',NULL,'WordPress Access Control','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:34:\"CRM_ACL_Form_WordPress_Permissions\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:14:\"Access Control\";s:3:\"url\";s:29:\"/civicrm/admin/access?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,10,1,0,NULL,'a:1:{s:4:\"desc\";s:65:\"Grant access to CiviCRM components and other CiviCRM permissions.\";}'),(130,1,'civicrm/admin/synchUser',NULL,'Synchronize Users to Contacts','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Form_CMSUser\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,20,1,0,NULL,'a:3:{s:4:\"desc\";s:71:\"Automatically create a CiviCRM contact record for each CMS user record.\";s:10:\"adminGroup\";s:21:\"Users and Permissions\";s:4:\"icon\";s:26:\"admin/small/Synch_user.png\";}'),(131,1,'civicrm/admin/configtask',NULL,'Configuration Checklist','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:29:\"CRM_Admin_Page_ConfigTaskList\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}','civicrm/admin/configtask',NULL,NULL,NULL,NULL,NULL,1,1,1,0,NULL,'a:3:{s:4:\"desc\";s:55:\"List of configuration tasks with links to each setting.\";s:10:\"adminGroup\";s:15:\"System Settings\";s:4:\"icon\";s:9:\"check.gif\";}'),(132,1,'civicrm/admin/setting/component',NULL,'Enable CiviCRM Components','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:32:\"CRM_Admin_Form_Setting_Component\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,10,1,0,NULL,'a:3:{s:4:\"desc\";s:269:\"Enable or disable components (e.g. CiviEvent, CiviMember, etc.) for your site based on the features you need. We recommend disabling any components not being used in order to simplify the user interface. You can easily re-enable components at any time from this screen.\";s:10:\"adminGroup\";s:15:\"System Settings\";s:4:\"icon\";s:18:\"admin/small/36.png\";}'),(133,1,'civicrm/admin/extensions',NULL,'Manage Extensions','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:18:\"administer CiviCRM\";}i:1;s:3:\"and\";}','s:25:\"CRM_Admin_Page_Extensions\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,120,1,0,NULL,'a:3:{s:4:\"desc\";s:0:\"\";s:10:\"adminGroup\";s:15:\"System Settings\";s:4:\"icon\";s:26:\"admin/small/price_sets.png\";}'),(134,1,'civicrm/admin/extensions/upgrade',NULL,'Database Upgrades','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:18:\"administer CiviCRM\";}i:1;s:3:\"and\";}','s:32:\"CRM_Admin_Page_ExtensionsUpgrade\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:17:\"Manage Extensions\";s:3:\"url\";s:33:\"/civicrm/admin/extensions?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,0,NULL,'a:0:{}'),(135,1,'civicrm/admin/setting/smtp',NULL,'Outbound Email Settings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:27:\"CRM_Admin_Form_Setting_Smtp\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,20,1,0,NULL,'a:2:{s:10:\"adminGroup\";s:15:\"System Settings\";s:4:\"icon\";s:18:\"admin/small/07.png\";}'),(136,1,'civicrm/admin/paymentProcessor',NULL,'Settings - Payment Processor','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:29:\"administer payment processors\";}i:1;s:3:\"and\";}','s:31:\"CRM_Admin_Page_PaymentProcessor\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,30,1,0,NULL,'a:3:{s:4:\"desc\";s:48:\"Payment Processor setup for CiviCRM transactions\";s:10:\"adminGroup\";s:15:\"System Settings\";s:4:\"icon\";s:41:\"admin/small/online_contribution_pages.png\";}'),(137,1,'civicrm/admin/setting/mapping',NULL,'Mapping and Geocoding','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:30:\"CRM_Admin_Form_Setting_Mapping\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,40,1,0,NULL,'a:2:{s:10:\"adminGroup\";s:15:\"System Settings\";s:4:\"icon\";s:18:\"admin/small/36.png\";}'),(138,1,'civicrm/admin/setting/misc',NULL,'Misc (Undelete, PDFs, Limits, Logging, Captcha, etc.)','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:36:\"CRM_Admin_Form_Setting_Miscellaneous\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,50,1,0,NULL,'a:3:{s:4:\"desc\";s:91:\"Enable undelete/move to trash feature, detailed change logging, ReCAPTCHA to protect forms.\";s:10:\"adminGroup\";s:15:\"System Settings\";s:4:\"icon\";s:18:\"admin/small/36.png\";}'),(139,1,'civicrm/admin/setting/path',NULL,'Directories','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:27:\"CRM_Admin_Form_Setting_Path\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,60,1,0,NULL,'a:2:{s:10:\"adminGroup\";s:15:\"System Settings\";s:4:\"icon\";s:18:\"admin/small/36.png\";}'),(140,1,'civicrm/admin/setting/url',NULL,'Resource URLs','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:26:\"CRM_Admin_Form_Setting_Url\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,70,1,0,NULL,'a:2:{s:10:\"adminGroup\";s:15:\"System Settings\";s:4:\"icon\";s:18:\"admin/small/36.png\";}'),(141,1,'civicrm/admin/setting/updateConfigBackend',NULL,'Cleanup Caches and Update Paths','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:42:\"CRM_Admin_Form_Setting_UpdateConfigBackend\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,80,1,0,NULL,'a:3:{s:4:\"desc\";s:157:\"Reset the Base Directory Path and Base URL settings - generally when a CiviCRM site is moved to another location in the file system and/or to another domain.\";s:10:\"adminGroup\";s:15:\"System Settings\";s:4:\"icon\";s:26:\"admin/small/updatepath.png\";}'),(142,1,'civicrm/admin/setting/uf',NULL,'CMS Database Integration','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:25:\"CRM_Admin_Form_Setting_UF\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,90,1,0,NULL,'a:2:{s:10:\"adminGroup\";s:15:\"System Settings\";s:4:\"icon\";s:18:\"admin/small/36.png\";}'),(143,1,'civicrm/admin/options/safe_file_extension',NULL,'Safe File Extension Options','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,100,1,0,NULL,'a:3:{s:4:\"desc\";s:44:\"File Extensions that can be considered safe.\";s:10:\"adminGroup\";s:15:\"System Settings\";s:4:\"icon\";s:18:\"admin/small/01.png\";}'),(144,1,'civicrm/admin/options',NULL,'Option Groups','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,105,1,0,NULL,'a:3:{s:4:\"desc\";s:35:\"Access all meta-data option groups.\";s:10:\"adminGroup\";s:15:\"System Settings\";s:4:\"icon\";s:18:\"admin/small/01.png\";}'),(145,1,'civicrm/admin/mapping',NULL,'Import/Export Mappings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Mapping\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,110,1,0,NULL,'a:3:{s:4:\"desc\";s:141:\"Import and Export mappings allow you to easily run the same job multiple times. This option allows you to rename or delete existing mappings.\";s:10:\"adminGroup\";s:15:\"System Settings\";s:4:\"icon\";s:33:\"admin/small/import_export_map.png\";}'),(146,1,'civicrm/admin/setting/debug',NULL,'Debugging','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:32:\"CRM_Admin_Form_Setting_Debugging\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,120,1,0,NULL,'a:2:{s:10:\"adminGroup\";s:15:\"System Settings\";s:4:\"icon\";s:18:\"admin/small/36.png\";}'),(147,1,'civicrm/admin/setting/preferences/multisite',NULL,'Multi Site Settings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Form_Generic\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,130,1,0,NULL,'a:2:{s:10:\"adminGroup\";s:15:\"System Settings\";s:4:\"icon\";s:18:\"admin/small/36.png\";}'),(148,1,'civicrm/admin/setting/preferences/campaign',NULL,'CiviCampaign Component Settings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Form_Generic\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,10,1,0,NULL,'a:3:{s:4:\"desc\";s:40:\"Configure global CiviCampaign behaviors.\";s:10:\"adminGroup\";s:12:\"CiviCampaign\";s:9:\"component\";s:12:\"CiviCampaign\";}'),(149,1,'civicrm/admin/setting/preferences/event',NULL,'CiviEvent Component Settings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:16:\"access CiviEvent\";i:1;s:18:\"administer CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Form_Generic\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,420,1,0,NULL,'a:2:{s:4:\"desc\";s:37:\"Configure global CiviEvent behaviors.\";s:10:\"adminGroup\";s:9:\"CiviEvent\";}'),(150,1,'civicrm/admin/setting/preferences/mailing',NULL,'CiviMail Component Settings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:15:\"access CiviMail\";i:1;s:18:\"administer CiviCRM\";}i:1;s:3:\"and\";}','s:34:\"CRM_Admin_Form_Preferences_Mailing\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,430,1,0,NULL,'a:2:{s:4:\"desc\";s:36:\"Configure global CiviMail behaviors.\";s:10:\"adminGroup\";s:8:\"CiviMail\";}'),(151,1,'civicrm/admin/setting/preferences/member',NULL,'CiviMember Component Settings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:17:\"access CiviMember\";i:1;s:18:\"administer CiviCRM\";}i:1;s:3:\"and\";}','s:33:\"CRM_Admin_Form_Preferences_Member\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,390,1,0,NULL,'a:2:{s:4:\"desc\";s:38:\"Configure global CiviMember behaviors.\";s:10:\"adminGroup\";s:10:\"CiviMember\";}'),(152,1,'civicrm/admin/runjobs',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:18:\"administer CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:16:\"CRM_Utils_System\";i:1;s:20:\"executeScheduledJobs\";}',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,0,NULL,'a:1:{s:4:\"desc\";s:36:\"URL used for running scheduled jobs.\";}'),(153,1,'civicrm/admin/job',NULL,'Scheduled Jobs','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:18:\"administer CiviCRM\";}i:1;s:3:\"and\";}','s:18:\"CRM_Admin_Page_Job\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1370,1,0,NULL,'a:3:{s:4:\"desc\";s:35:\"Managing periodially running tasks.\";s:10:\"adminGroup\";s:15:\"System Settings\";s:4:\"icon\";s:18:\"admin/small/13.png\";}'),(154,1,'civicrm/admin/joblog',NULL,'Scheduled Jobs Log','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:18:\"administer CiviCRM\";}i:1;s:3:\"and\";}','s:21:\"CRM_Admin_Page_JobLog\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1380,1,0,NULL,'a:3:{s:4:\"desc\";s:46:\"Browsing the log of periodially running tasks.\";s:10:\"adminGroup\";s:6:\"Manage\";s:4:\"icon\";s:18:\"admin/small/13.png\";}'),(155,1,'civicrm/admin/options/grant_type',NULL,'Grant Types','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,385,1,0,NULL,'a:3:{s:4:\"desc\";s:148:\"List of types which can be assigned to Grants. (Enable CiviGrant from Administer > Systme Settings > Enable Components if you want to track grants.)\";s:10:\"adminGroup\";s:12:\"Option Lists\";s:4:\"icon\";s:26:\"admin/small/grant_type.png\";}'),(156,1,'civicrm/admin/paymentProcessorType',NULL,'Payment Processor Type','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:35:\"CRM_Admin_Page_PaymentProcessorType\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,390,1,0,NULL,'a:1:{s:4:\"desc\";s:34:\"Payment Processor type information\";}'),(157,1,'civicrm/admin',NULL,'Administer CiviCRM','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:20:\"CRM_Admin_Page_Admin\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,9000,1,1,NULL,'a:0:{}'),(158,1,'civicrm/ajax/navmenu',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:19:\"CRM_Admin_Page_AJAX\";i:1;s:7:\"navMenu\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(159,1,'civicrm/ajax/menutree',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:18:\"administer CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:19:\"CRM_Admin_Page_AJAX\";i:1;s:8:\"menuTree\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,3,NULL,'a:0:{}'),(160,1,'civicrm/ajax/statusmsg',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:19:\"CRM_Admin_Page_AJAX\";i:1;s:12:\"getStatusMsg\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(161,1,'civicrm/admin/price',NULL,'Price Sets','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:18:\"CRM_Price_Page_Set\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,380,1,0,NULL,'a:3:{s:4:\"desc\";s:205:\"Price sets allow you to offer multiple options with associated fees (e.g. pre-conference workshops, additional meals, etc.). Configure Price Sets for events which need more than a single set of fee levels.\";s:10:\"adminGroup\";s:9:\"Customize\";s:4:\"icon\";s:26:\"admin/small/price_sets.png\";}'),(162,1,'civicrm/admin/price/add','action=add','New Price Set','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:18:\"CRM_Price_Page_Set\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:10:\"Price Sets\";s:3:\"url\";s:28:\"/civicrm/admin/price?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,0,NULL,'a:1:{s:4:\"desc\";s:205:\"Price sets allow you to offer multiple options with associated fees (e.g. pre-conference workshops, additional meals, etc.). Configure Price Sets for events which need more than a single set of fee levels.\";}'),(163,1,'civicrm/admin/price/field',NULL,'Price Fields','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:20:\"CRM_Price_Page_Field\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:10:\"Price Sets\";s:3:\"url\";s:28:\"/civicrm/admin/price?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,0,0,'a:0:{}'),(164,1,'civicrm/admin/price/field/option',NULL,'Price Field Options','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:21:\"CRM_Price_Page_Option\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:10:\"Price Sets\";s:3:\"url\";s:28:\"/civicrm/admin/price?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,0,NULL,'a:0:{}'),(165,1,'civicrm/ajax/mapping',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:19:\"CRM_Admin_Page_AJAX\";i:1;s:11:\"mappingList\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(166,1,'civicrm/ajax/recipientListing',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:19:\"CRM_Admin_Page_AJAX\";i:1;s:16:\"recipientListing\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(167,1,'civicrm/admin/sms/provider',NULL,'Sms Providers','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:18:\"administer CiviCRM\";}i:1;s:3:\"and\";}','s:21:\"CRM_SMS_Page_Provider\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,500,1,0,NULL,'a:3:{s:4:\"desc\";s:27:\"To configure a sms provider\";s:10:\"adminGroup\";s:15:\"System Settings\";s:4:\"icon\";s:18:\"admin/small/36.png\";}'),(168,1,'civicrm/sms/send',NULL,'New Mass SMS','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:8:\"send SMS\";}i:1;s:3:\"and\";}','s:23:\"CRM_SMS_Controller_Send\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,610,1,1,NULL,'a:0:{}'),(169,1,'civicrm/sms/callback',NULL,NULL,'s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:21:\"CRM_SMS_Page_Callback\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,1,NULL,0,1,1,0,NULL,'a:0:{}'),(170,1,'civicrm/admin/badgelayout','action=browse','Event Name Badge Layouts','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:21:\"CRM_Badge_Page_Layout\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,399,1,0,NULL,'a:2:{s:4:\"desc\";s:107:\"Configure name badge layouts for event participants, including logos and what data to include on the badge.\";s:10:\"adminGroup\";s:9:\"CiviEvent\";}'),(171,1,'civicrm/admin/badgelayout/add',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:18:\"administer CiviCRM\";}i:1;s:3:\"and\";}','s:21:\"CRM_Badge_Form_Layout\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:24:\"Event Name Badge Layouts\";s:3:\"url\";s:52:\"/civicrm/admin/badgelayout?reset=1&amp;action=browse\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,0,NULL,'a:0:{}'),(172,1,'civicrm/admin/ckeditor',NULL,'Configure CKEditor','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:18:\"administer CiviCRM\";}i:1;s:3:\"and\";}','s:29:\"CRM_Admin_Page_CKEditorConfig\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,0,NULL,'a:0:{}'),(173,1,'civicrm',NULL,'CiviCRM','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:26:\"CRM_Contact_Page_DashBoard\";',NULL,'a:0:{}',NULL,NULL,NULL,NULL,NULL,NULL,0,0,1,0,NULL,'a:0:{}'),(174,1,'civicrm/dashboard',NULL,'CiviCRM Home','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:26:\"CRM_Contact_Page_DashBoard\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,0,1,1,NULL,'a:0:{}'),(175,1,'civicrm/dashlet',NULL,'CiviCRM Dashlets','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:24:\"CRM_Contact_Page_Dashlet\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,1,NULL,'a:0:{}'),(176,1,'civicrm/contact/search',NULL,'Find Contacts','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:29:\"CRM_Contact_Controller_Search\";','s:8:\"mode=256\";','a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,10,1,1,NULL,'a:0:{}'),(177,1,'civicrm/contact/image',NULL,'Process Uploaded Images','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access uploaded files\";}i:1;s:3:\"and\";}','a:2:{i:0;s:23:\"CRM_Contact_BAO_Contact\";i:1;s:12:\"processImage\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(178,1,'civicrm/contact/imagefile',NULL,'Get Image File','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"*always allow*\";}i:1;s:3:\"and\";}','s:26:\"CRM_Contact_Page_ImageFile\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(179,1,'civicrm/contact/search/basic',NULL,'Find Contacts','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:29:\"CRM_Contact_Controller_Search\";','s:8:\"mode=256\";','a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:13:\"Find Contacts\";s:3:\"url\";s:31:\"/civicrm/contact/search?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(180,1,'civicrm/contact/search/advanced',NULL,'Advanced Search','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:29:\"CRM_Contact_Controller_Search\";','s:8:\"mode=512\";','a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:13:\"Find Contacts\";s:3:\"url\";s:31:\"/civicrm/contact/search?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,12,1,1,NULL,'a:0:{}'),(181,1,'civicrm/contact/search/builder',NULL,'Search Builder','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:29:\"CRM_Contact_Controller_Search\";','s:9:\"mode=8192\";','a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:13:\"Find Contacts\";s:3:\"url\";s:31:\"/civicrm/contact/search?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,14,1,1,NULL,'a:0:{}'),(182,1,'civicrm/contact/search/custom',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:29:\"CRM_Contact_Controller_Search\";','s:10:\"mode=16384\";','a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:13:\"Find Contacts\";s:3:\"url\";s:31:\"/civicrm/contact/search?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(183,1,'civicrm/contact/search/custom/list',NULL,'Custom Searches','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:29:\"CRM_Contact_Page_CustomSearch\";','s:10:\"mode=16384\";','a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:13:\"Find Contacts\";s:3:\"url\";s:31:\"/civicrm/contact/search?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,16,1,1,NULL,'a:0:{}'),(184,1,'civicrm/contact/add',NULL,'New Contact','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:24:\"CRM_Contact_Form_Contact\";','s:13:\"addSequence=1\";','a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(185,1,'civicrm/contact/add/individual','ct=Individual','New Individual','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:12:\"add contacts\";}i:1;s:3:\"and\";}','s:24:\"CRM_Contact_Form_Contact\";','s:13:\"addSequence=1\";','a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:11:\"New Contact\";s:3:\"url\";s:28:\"/civicrm/contact/add?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(186,1,'civicrm/contact/add/household','ct=Household','New Household','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:12:\"add contacts\";}i:1;s:3:\"and\";}','s:24:\"CRM_Contact_Form_Contact\";','s:13:\"addSequence=1\";','a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:11:\"New Contact\";s:3:\"url\";s:28:\"/civicrm/contact/add?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(187,1,'civicrm/contact/add/organization','ct=Organization','New Organization','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:12:\"add contacts\";}i:1;s:3:\"and\";}','s:24:\"CRM_Contact_Form_Contact\";','s:13:\"addSequence=1\";','a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:11:\"New Contact\";s:3:\"url\";s:28:\"/civicrm/contact/add?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(188,1,'civicrm/contact/relatedcontact',NULL,'Edit Related Contact','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:24:\"access Contact Dashboard\";}i:1;s:3:\"and\";}','s:31:\"CRM_Contact_Form_RelatedContact\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,1,NULL,0,1,1,0,NULL,'a:0:{}'),(189,1,'civicrm/contact/merge',NULL,'Merge Contact','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:24:\"merge duplicate contacts\";}i:1;s:3:\"and\";}','s:22:\"CRM_Contact_Form_Merge\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(190,1,'civicrm/contact/email',NULL,'Email a Contact','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:27:\"CRM_Contact_Form_Task_Email\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(191,1,'civicrm/contact/map',NULL,'Map Location(s)','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:25:\"CRM_Contact_Form_Task_Map\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,1,NULL,0,1,1,0,NULL,'a:0:{}'),(192,1,'civicrm/contact/map/event',NULL,'Map Event Location','s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:31:\"CRM_Contact_Form_Task_Map_Event\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Map Location(s)\";s:3:\"url\";s:28:\"/civicrm/contact/map?reset=1\";}}',NULL,NULL,NULL,NULL,1,NULL,0,1,1,0,NULL,'a:0:{}'),(193,1,'civicrm/contact/view','cid=%%cid%%','Contact Summary','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:29:\"CRM_Contact_Page_View_Summary\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(194,1,'civicrm/contact/view/delete',NULL,'Delete Contact','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:28:\"CRM_Contact_Form_Task_Delete\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(195,1,'civicrm/contact/view/activity','show=1,cid=%%cid%%','Activities','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:21:\"CRM_Activity_Page_Tab\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(196,1,'civicrm/activity/add','action=add','Activities','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:26:\"CRM_Activity_Form_Activity\";','s:14:\"attachUpload=1\";','a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:12:\"New Activity\";s:3:\"url\";s:63:\"/civicrm/activity?reset=1&amp;action=add&amp;context=standalone\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(197,1,'civicrm/activity/email/add','action=add','Activities','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:27:\"CRM_Contact_Form_Task_Email\";','s:14:\"attachUpload=1\";','a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:12:\"New Activity\";s:3:\"url\";s:63:\"/civicrm/activity?reset=1&amp;action=add&amp;context=standalone\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(198,1,'civicrm/activity/pdf/add','action=add','Activities','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:25:\"CRM_Contact_Form_Task_PDF\";','s:14:\"attachUpload=1\";','a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:12:\"New Activity\";s:3:\"url\";s:63:\"/civicrm/activity?reset=1&amp;action=add&amp;context=standalone\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(199,1,'civicrm/contact/view/rel','cid=%%cid%%','Relationships','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:34:\"CRM_Contact_Page_View_Relationship\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(200,1,'civicrm/contact/view/group','cid=%%cid%%','Groups','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:34:\"CRM_Contact_Page_View_GroupContact\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(201,1,'civicrm/contact/view/smartgroup','cid=%%cid%%','Smart Groups','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:39:\"CRM_Contact_Page_View_ContactSmartGroup\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(202,1,'civicrm/contact/view/note','cid=%%cid%%','Notes','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:26:\"CRM_Contact_Page_View_Note\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(203,1,'civicrm/contact/view/tag','cid=%%cid%%','Tags','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:25:\"CRM_Contact_Page_View_Tag\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(204,1,'civicrm/contact/view/cd',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:32:\"CRM_Contact_Page_View_CustomData\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(205,1,'civicrm/contact/view/cd/edit',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:27:\"CRM_Contact_Form_CustomData\";','s:13:\"addSequence=1\";','a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(206,1,'civicrm/contact/view/vcard',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:27:\"CRM_Contact_Page_View_Vcard\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(207,1,'civicrm/contact/view/print',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:27:\"CRM_Contact_Page_View_Print\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(208,1,'civicrm/contact/view/log',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:25:\"CRM_Contact_Page_View_Log\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(209,1,'civicrm/user',NULL,'Contact Dashboard','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:24:\"access Contact Dashboard\";}i:1;s:3:\"and\";}','s:35:\"CRM_Contact_Page_View_UserDashBoard\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,1,NULL,0,0,1,0,NULL,'a:0:{}'),(210,1,'civicrm/dashlet/activity',NULL,'Activity Dashlet','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:25:\"CRM_Dashlet_Page_Activity\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:16:\"CiviCRM Dashlets\";s:3:\"url\";s:24:\"/civicrm/dashlet?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(211,1,'civicrm/dashlet/blog',NULL,'CiviCRM Blog','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:21:\"CRM_Dashlet_Page_Blog\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:16:\"CiviCRM Dashlets\";s:3:\"url\";s:24:\"/civicrm/dashlet?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(212,1,'civicrm/dashlet/getting-started',NULL,'CiviCRM Resources','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:31:\"CRM_Dashlet_Page_GettingStarted\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:16:\"CiviCRM Dashlets\";s:3:\"url\";s:24:\"/civicrm/dashlet?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(213,1,'civicrm/ajax/relation',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:12:\"relationship\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,3,NULL,'a:0:{}'),(214,1,'civicrm/ajax/groupTree',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:9:\"groupTree\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(215,1,'civicrm/ajax/custom',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:11:\"customField\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(216,1,'civicrm/ajax/customvalue',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:17:\"deleteCustomValue\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,3,NULL,'a:0:{}'),(217,1,'civicrm/ajax/cmsuser',NULL,NULL,'s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:13:\"checkUserName\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(218,1,'civicrm/ajax/checkemail',NULL,NULL,'s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:15:\"getContactEmail\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(219,1,'civicrm/ajax/checkphone',NULL,NULL,'s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:15:\"getContactPhone\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(220,1,'civicrm/ajax/subtype',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:13:\"buildSubTypes\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(221,1,'civicrm/ajax/dashboard',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:9:\"dashboard\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,3,NULL,'a:0:{}'),(222,1,'civicrm/ajax/signature',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:12:\"getSignature\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(223,1,'civicrm/ajax/pdfFormat',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:9:\"pdfFormat\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(224,1,'civicrm/ajax/paperSize',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:9:\"paperSize\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(225,1,'civicrm/ajax/contactref',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:31:\"access contact reference fields\";i:1;s:15:\" access CiviCRM\";}i:1;s:2:\"or\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:16:\"contactReference\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(226,1,'civicrm/dashlet/myCases',NULL,'Case Dashlet','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:24:\"CRM_Dashlet_Page_MyCases\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:16:\"CiviCRM Dashlets\";s:3:\"url\";s:24:\"/civicrm/dashlet?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(227,1,'civicrm/dashlet/allCases',NULL,'All Cases Dashlet','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:31:\"access all cases and activities\";}i:1;s:3:\"and\";}','s:25:\"CRM_Dashlet_Page_AllCases\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:16:\"CiviCRM Dashlets\";s:3:\"url\";s:24:\"/civicrm/dashlet?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(228,1,'civicrm/dashlet/casedashboard',NULL,'Case Dashboard Dashlet','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:30:\"CRM_Dashlet_Page_CaseDashboard\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:16:\"CiviCRM Dashlets\";s:3:\"url\";s:24:\"/civicrm/dashlet?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(229,1,'civicrm/contact/deduperules',NULL,'Find and Merge Duplicate Contacts','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:23:\"administer dedupe rules\";i:1;s:24:\"merge duplicate contacts\";}i:1;s:2:\"or\";}','s:28:\"CRM_Contact_Page_DedupeRules\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,105,1,0,NULL,'a:3:{s:4:\"desc\";s:158:\"Manage the rules used to identify potentially duplicate contact records. Scan for duplicates using a selected rule and merge duplicate contact data as needed.\";s:10:\"adminGroup\";s:6:\"Manage\";s:4:\"icon\";s:34:\"admin/small/duplicate_matching.png\";}'),(230,1,'civicrm/contact/dedupefind',NULL,'Find and Merge Duplicate Contacts','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:24:\"merge duplicate contacts\";}i:1;s:3:\"and\";}','s:27:\"CRM_Contact_Page_DedupeFind\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(231,1,'civicrm/ajax/dedupefind',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:24:\"merge duplicate contacts\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:10:\"getDedupes\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(232,1,'civicrm/contact/dedupemerge',NULL,'Batch Merge Duplicate Contacts','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:24:\"merge duplicate contacts\";}i:1;s:3:\"and\";}','s:28:\"CRM_Contact_Page_DedupeMerge\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(233,1,'civicrm/dedupe/exception',NULL,'Dedupe Exceptions','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:32:\"CRM_Contact_Page_DedupeException\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,110,1,0,NULL,'a:1:{s:10:\"adminGroup\";s:6:\"Manage\";}'),(234,1,'civicrm/ajax/dedupeRules',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:16:\"buildDedupeRules\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(235,1,'civicrm/contact/view/useradd','cid=%%cid%%','Add User','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:29:\"CRM_Contact_Page_View_Useradd\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(236,1,'civicrm/ajax/markSelection',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:22:\"selectUnselectContacts\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(237,1,'civicrm/ajax/toggleDedupeSelect',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:24:\"merge duplicate contacts\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:18:\"toggleDedupeSelect\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(238,1,'civicrm/ajax/flipDupePairs',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:24:\"merge duplicate contacts\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:13:\"flipDupePairs\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(239,1,'civicrm/activity/sms/add','action=add','Activities','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:8:\"send SMS\";}i:1;s:3:\"and\";}','s:25:\"CRM_Contact_Form_Task_SMS\";','s:14:\"attachUpload=1\";','a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:12:\"New Activity\";s:3:\"url\";s:63:\"/civicrm/activity?reset=1&amp;action=add&amp;context=standalone\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(240,1,'civicrm/ajax/contactrelationships',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"view my contact\";}i:1;s:2:\"or\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:23:\"getContactRelationships\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(241,1,'civicrm/ajax/jqState',NULL,NULL,'s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:27:\"CRM_Core_Page_AJAX_Location\";i:1;s:7:\"jqState\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,1,NULL,0,1,1,0,NULL,'a:0:{}'),(242,1,'civicrm/ajax/jqCounty',NULL,NULL,'s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:27:\"CRM_Core_Page_AJAX_Location\";i:1;s:8:\"jqCounty\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,1,NULL,0,1,1,0,NULL,'a:0:{}'),(243,1,'civicrm/group',NULL,'Manage Groups','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:20:\"CRM_Group_Page_Group\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,30,1,1,NULL,'a:0:{}'),(244,1,'civicrm/group/search',NULL,'Group Members','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:29:\"CRM_Contact_Controller_Search\";','s:8:\"mode=256\";','a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:13:\"Manage Groups\";s:3:\"url\";s:22:\"/civicrm/group?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:1:{s:7:\"comment\";s:164:\"Note: group search already respect ACL, so a strict permission at url level is not required. A simple/basic permission like \'access CiviCRM\' could be used. CRM-5417\";}'),(245,1,'civicrm/group/add',NULL,'New Group','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:11:\"edit groups\";}i:1;s:3:\"and\";}','s:20:\"CRM_Group_Controller\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:13:\"Manage Groups\";s:3:\"url\";s:22:\"/civicrm/group?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(246,1,'civicrm/ajax/grouplist',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:19:\"CRM_Group_Page_AJAX\";i:1;s:12:\"getGroupList\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(247,1,'civicrm/tag',NULL,'Tags (Categories)','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:11:\"manage tags\";}i:1;s:2:\"or\";}','s:16:\"CRM_Tag_Page_Tag\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,25,1,0,NULL,'a:3:{s:4:\"desc\";s:158:\"Tags are useful for segmenting the contacts in your database into categories (e.g. Staff Member, Donor, Volunteer, etc.). Create and edit available tags here.\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";s:4:\"icon\";s:18:\"admin/small/11.png\";}'),(248,1,'civicrm/tag/edit','action=add','New Tag','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:11:\"manage tags\";}i:1;s:2:\"or\";}','s:17:\"CRM_Tag_Form_Edit\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:17:\"Tags (Categories)\";s:3:\"url\";s:20:\"/civicrm/tag?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(249,1,'civicrm/tag/merge',NULL,'Merge Tags','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:11:\"manage tags\";}i:1;s:2:\"or\";}','s:18:\"CRM_Tag_Form_Merge\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:17:\"Tags (Categories)\";s:3:\"url\";s:20:\"/civicrm/tag?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(250,1,'civicrm/ajax/tagTree',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:11:\"manage tags\";}i:1;s:2:\"or\";}','a:2:{i:0;s:19:\"CRM_Admin_Page_AJAX\";i:1;s:10:\"getTagTree\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(251,1,'civicrm/custom',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:32:\"CRM_Custom_Form_CustomDataByType\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(252,1,'civicrm/event/manage/pcp',NULL,'Personal Campaign Pages','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:18:\"CRM_PCP_Form_Event\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Manage Events\";s:3:\"url\";s:29:\"/civicrm/event/manage?reset=1\";}}',NULL,NULL,1,NULL,NULL,NULL,1,540,1,1,NULL,'a:0:{}'),(253,1,'civicrm/event/pcp',NULL,NULL,'s:1:\"1\";','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:16:\"CRM_PCP_Form_PCP\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,NULL,1,NULL,0,1,1,0,NULL,'a:0:{}'),(254,1,'civicrm/event/campaign',NULL,'Setup a Personal Campaign Page - Account Information','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:25:\"make online contributions\";}i:1;s:3:\"and\";}','s:22:\"CRM_PCP_Controller_PCP\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,NULL,1,NULL,0,0,1,0,NULL,'a:0:{}'),(255,1,'civicrm/event',NULL,'CiviEvent Dashboard','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:24:\"CRM_Event_Page_DashBoard\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,1,NULL,NULL,NULL,0,800,1,1,NULL,'a:1:{s:9:\"component\";s:9:\"CiviEvent\";}'),(256,1,'civicrm/participant/add','action=add','Register New Participant','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:18:\"CRM_Event_Page_Tab\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:1:{s:9:\"component\";s:9:\"CiviEvent\";}'),(257,1,'civicrm/event/info',NULL,'Event Information','s:1:\"1\";','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:24:\"CRM_Event_Page_EventInfo\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,NULL,1,NULL,0,1,1,0,NULL,'a:0:{}'),(258,1,'civicrm/event/register',NULL,'Event Registration','s:1:\"1\";','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:33:\"CRM_Event_Controller_Registration\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,NULL,1,NULL,1,1,1,0,NULL,'a:0:{}'),(259,1,'civicrm/event/confirm',NULL,'Confirm Event Registration','s:1:\"1\";','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:46:\"CRM_Event_Form_Registration_ParticipantConfirm\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,NULL,1,NULL,1,1,1,0,NULL,'a:0:{}'),(260,1,'civicrm/event/ical',NULL,'Current and Upcoming Events','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:15:\"view event info\";}i:1;s:3:\"and\";}','s:24:\"CRM_Event_Page_ICalendar\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,NULL,1,NULL,0,0,1,0,NULL,'a:0:{}'),(261,1,'civicrm/event/participant',NULL,'Event Participants List','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:23:\"view event participants\";}i:1;s:3:\"and\";}','s:33:\"CRM_Event_Page_ParticipantListing\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,NULL,1,NULL,0,0,1,0,NULL,'a:0:{}'),(262,1,'civicrm/admin/event',NULL,'Manage Events','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:26:\"CRM_Event_Page_ManageEvent\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,370,1,0,NULL,'a:3:{s:4:\"desc\";s:136:\"Create and edit event configuration including times, locations, online registration forms, and fees. Links for iCal and RSS syndication.\";s:10:\"adminGroup\";s:9:\"CiviEvent\";s:4:\"icon\";s:28:\"admin/small/event_manage.png\";}'),(263,1,'civicrm/admin/eventTemplate',NULL,'Event Templates','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:28:\"CRM_Admin_Page_EventTemplate\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,375,1,0,NULL,'a:3:{s:4:\"desc\";s:115:\"Administrators can create Event Templates - which are basically master event records pre-filled with default values\";s:10:\"adminGroup\";s:9:\"CiviEvent\";s:4:\"icon\";s:24:\"admin/small/template.png\";}'),(264,1,'civicrm/admin/options/event_type',NULL,'Event Types','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,385,1,0,NULL,'a:3:{s:4:\"desc\";s:143:\"Use Event Types to categorize your events. Event feeds can be filtered by Event Type and participant searches can use Event Type as a criteria.\";s:10:\"adminGroup\";s:9:\"CiviEvent\";s:4:\"icon\";s:26:\"admin/small/event_type.png\";}'),(265,1,'civicrm/admin/participant_status',NULL,'Participant Status','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:36:\"CRM_Admin_Page_ParticipantStatusType\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,390,1,0,NULL,'a:3:{s:4:\"desc\";s:154:\"Define statuses for event participants here (e.g. Registered, Attended, Cancelled...). You can then assign statuses and search for participants by status.\";s:10:\"adminGroup\";s:9:\"CiviEvent\";s:4:\"icon\";s:28:\"admin/small/parti_status.png\";}'),(266,1,'civicrm/admin/options/participant_role',NULL,'Participant Role','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,395,1,0,NULL,'a:3:{s:4:\"desc\";s:138:\"Define participant roles for events here (e.g. Attendee, Host, Speaker...). You can then assign roles and search for participants by role.\";s:10:\"adminGroup\";s:9:\"CiviEvent\";s:4:\"icon\";s:26:\"admin/small/parti_role.png\";}'),(267,1,'civicrm/admin/options/participant_listing',NULL,'Participant Listing Templates','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,398,1,0,NULL,'a:3:{s:4:\"desc\";s:48:\"Template to control participant listing display.\";s:10:\"adminGroup\";s:9:\"CiviEvent\";s:4:\"icon\";s:18:\"admin/small/01.png\";}'),(268,1,'civicrm/admin/conference_slots','group=conference_slot','Conference Slot Labels','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,415,1,0,NULL,'a:2:{s:4:\"desc\";s:35:\"Define conference slots and labels.\";s:10:\"adminGroup\";s:9:\"CiviEvent\";}'),(269,1,'civicrm/event/search',NULL,'Find Participants','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:27:\"CRM_Event_Controller_Search\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,NULL,NULL,NULL,0,810,1,1,NULL,'a:0:{}'),(270,1,'civicrm/event/manage',NULL,'Manage Events','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:26:\"CRM_Event_Page_ManageEvent\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,NULL,NULL,NULL,1,820,1,1,NULL,'a:0:{}'),(271,1,'civicrm/event/badge',NULL,'Print Event Name Badge','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:25:\"CRM_Event_Form_Task_Badge\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(272,1,'civicrm/event/manage/settings',NULL,'Event Info and Settings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:36:\"CRM_Event_Form_ManageEvent_EventInfo\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Manage Events\";s:3:\"url\";s:29:\"/civicrm/event/manage?reset=1\";}}',NULL,NULL,1,NULL,NULL,NULL,1,910,1,0,NULL,'a:0:{}'),(273,1,'civicrm/event/manage/location',NULL,'Event Location','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:35:\"CRM_Event_Form_ManageEvent_Location\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Manage Events\";s:3:\"url\";s:29:\"/civicrm/event/manage?reset=1\";}}',NULL,NULL,1,NULL,NULL,NULL,1,930,1,0,NULL,'a:0:{}'),(274,1,'civicrm/event/manage/fee',NULL,'Event Fees','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:30:\"CRM_Event_Form_ManageEvent_Fee\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Manage Events\";s:3:\"url\";s:29:\"/civicrm/event/manage?reset=1\";}}',NULL,NULL,1,NULL,NULL,NULL,1,920,1,0,NULL,'a:0:{}'),(275,1,'civicrm/event/manage/registration',NULL,'Event Online Registration','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:39:\"CRM_Event_Form_ManageEvent_Registration\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Manage Events\";s:3:\"url\";s:29:\"/civicrm/event/manage?reset=1\";}}',NULL,NULL,1,NULL,NULL,NULL,1,930,1,0,NULL,'a:0:{}'),(276,1,'civicrm/event/manage/friend',NULL,'Tell a Friend','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:21:\"CRM_Friend_Form_Event\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Manage Events\";s:3:\"url\";s:29:\"/civicrm/event/manage?reset=1\";}}',NULL,NULL,1,NULL,NULL,NULL,1,940,1,0,NULL,'a:0:{}'),(277,1,'civicrm/event/manage/reminder',NULL,'Schedule Reminders','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:44:\"CRM_Event_Form_ManageEvent_ScheduleReminders\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Manage Events\";s:3:\"url\";s:29:\"/civicrm/event/manage?reset=1\";}}',NULL,NULL,1,NULL,NULL,NULL,1,950,1,0,NULL,'a:0:{}'),(278,1,'civicrm/event/manage/repeat',NULL,'Repeat Event','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:33:\"CRM_Event_Form_ManageEvent_Repeat\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Manage Events\";s:3:\"url\";s:29:\"/civicrm/event/manage?reset=1\";}}',NULL,NULL,1,NULL,NULL,NULL,1,960,1,0,NULL,'a:0:{}'),(279,1,'civicrm/event/manage/conference',NULL,'Conference Slots','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:37:\"CRM_Event_Form_ManageEvent_Conference\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Manage Events\";s:3:\"url\";s:29:\"/civicrm/event/manage?reset=1\";}}',NULL,NULL,1,NULL,NULL,NULL,1,950,1,0,NULL,'a:0:{}'),(280,1,'civicrm/event/add','action=add','New Event','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:36:\"CRM_Event_Form_ManageEvent_EventInfo\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,NULL,NULL,NULL,0,830,1,0,NULL,'a:0:{}'),(281,1,'civicrm/event/import',NULL,'Import Participants','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:16:\"access CiviEvent\";i:1;s:23:\"edit event participants\";}i:1;s:3:\"and\";}','s:27:\"CRM_Event_Import_Controller\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,NULL,NULL,NULL,0,840,1,1,NULL,'a:0:{}'),(282,1,'civicrm/event/price',NULL,'Manage Price Sets','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:18:\"CRM_Price_Page_Set\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,NULL,NULL,NULL,0,850,1,1,NULL,'a:0:{}'),(283,1,'civicrm/event/selfsvcupdate',NULL,'Self-service Registration Update','s:1:\"1\";','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:28:\"CRM_Event_Form_SelfSvcUpdate\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,NULL,1,NULL,0,880,1,1,NULL,'a:0:{}'),(284,1,'civicrm/event/selfsvctransfer',NULL,'Self-service Registration Transfer','s:1:\"1\";','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:30:\"CRM_Event_Form_SelfSvcTransfer\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,NULL,1,NULL,0,890,1,1,NULL,'a:0:{}'),(285,1,'civicrm/contact/view/participant',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:18:\"CRM_Event_Page_Tab\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,4,1,0,NULL,'a:0:{}'),(286,1,'civicrm/ajax/eventFee',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','a:2:{i:0;s:19:\"CRM_Event_Page_AJAX\";i:1;s:8:\"eventFee\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(287,1,'civicrm/ajax/locBlock',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','a:2:{i:0;s:27:\"CRM_Core_Page_AJAX_Location\";i:1;s:11:\"getLocBlock\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(288,1,'civicrm/ajax/event/add_participant_to_cart',NULL,NULL,'s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:32:\"CRM_Event_Cart_Page_CheckoutAJAX\";i:1;s:23:\"add_participant_to_cart\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,1,NULL,0,1,1,0,NULL,'a:0:{}'),(289,1,'civicrm/ajax/event/remove_participant_from_cart',NULL,NULL,'s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:32:\"CRM_Event_Cart_Page_CheckoutAJAX\";i:1;s:28:\"remove_participant_from_cart\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,1,NULL,0,1,1,0,NULL,'a:0:{}'),(290,1,'civicrm/event/add_to_cart',NULL,'Add Event To Cart','s:1:\"1\";','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:29:\"CRM_Event_Cart_Page_AddToCart\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,NULL,1,NULL,0,1,1,0,NULL,'a:0:{}'),(291,1,'civicrm/event/cart_checkout',NULL,'Cart Checkout','s:1:\"1\";','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:34:\"CRM_Event_Cart_Controller_Checkout\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,NULL,1,NULL,1,1,1,0,NULL,'a:0:{}'),(292,1,'civicrm/event/remove_from_cart',NULL,'Remove From Cart','s:1:\"1\";','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:34:\"CRM_Event_Cart_Page_RemoveFromCart\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,NULL,1,NULL,0,1,1,0,NULL,'a:0:{}'),(293,1,'civicrm/event/view_cart',NULL,'View Cart','s:1:\"1\";','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:28:\"CRM_Event_Cart_Page_ViewCart\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,NULL,1,NULL,0,1,1,0,NULL,'a:0:{}'),(294,1,'civicrm/event/participant/feeselection',NULL,'Change Registration Selections','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:38:\"CRM_Event_Form_ParticipantFeeSelection\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}i:2;a:2:{s:5:\"title\";s:23:\"Event Participants List\";s:3:\"url\";s:34:\"/civicrm/event/participant?reset=1\";}}',NULL,NULL,1,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(295,1,'civicrm/admin/contribute/pcp',NULL,'Personal Campaign Pages','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:23:\"CRM_PCP_Form_Contribute\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:25:\"Manage Contribution Pages\";s:3:\"url\";s:33:\"/civicrm/admin/contribute?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,450,1,0,NULL,'a:0:{}'),(296,1,'civicrm/contribute/campaign',NULL,'Setup a Personal Campaign Page - Account Information','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:25:\"make online contributions\";}i:1;s:3:\"and\";}','s:22:\"CRM_PCP_Controller_PCP\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,NULL,1,NULL,0,0,1,0,NULL,'a:0:{}'),(297,1,'civicrm/contribute',NULL,'CiviContribute Dashboard','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:29:\"CRM_Contribute_Page_DashBoard\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,2,NULL,NULL,NULL,0,500,1,1,NULL,'a:1:{s:9:\"component\";s:14:\"CiviContribute\";}'),(298,1,'civicrm/contribute/add','action=add','New Contribution','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:23:\"CRM_Contribute_Page_Tab\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,NULL,NULL,NULL,0,1,1,1,NULL,'a:1:{s:9:\"component\";s:14:\"CiviContribute\";}'),(299,1,'civicrm/contribute/chart',NULL,'Contribution Summary - Chart View','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:38:\"CRM_Contribute_Form_ContributionCharts\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,NULL,NULL,NULL,0,1,1,0,NULL,'a:1:{s:9:\"component\";s:14:\"CiviContribute\";}'),(300,1,'civicrm/contribute/transact',NULL,'CiviContribute','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:25:\"make online contributions\";}i:1;s:3:\"and\";}','s:38:\"CRM_Contribute_Controller_Contribution\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,NULL,1,NULL,1,0,1,0,NULL,'a:0:{}'),(301,1,'civicrm/admin/contribute',NULL,'Manage Contribution Pages','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:36:\"CRM_Contribute_Page_ContributionPage\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,360,1,0,NULL,'a:3:{s:4:\"desc\";s:242:\"CiviContribute allows you to create and maintain any number of Online Contribution Pages. You can create different pages for different programs or campaigns - and customize text, amounts, types of information collected from contributors, etc.\";s:10:\"adminGroup\";s:14:\"CiviContribute\";s:4:\"icon\";s:41:\"admin/small/online_contribution_pages.png\";}'),(302,1,'civicrm/admin/contribute/settings',NULL,'Title and Settings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:45:\"CRM_Contribute_Form_ContributionPage_Settings\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:25:\"Manage Contribution Pages\";s:3:\"url\";s:33:\"/civicrm/admin/contribute?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,400,1,0,NULL,'a:0:{}'),(303,1,'civicrm/admin/contribute/amount',NULL,'Contribution Amounts','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:43:\"CRM_Contribute_Form_ContributionPage_Amount\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:25:\"Manage Contribution Pages\";s:3:\"url\";s:33:\"/civicrm/admin/contribute?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,410,1,0,NULL,'a:0:{}'),(304,1,'civicrm/admin/contribute/membership',NULL,'Membership Section','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:31:\"CRM_Member_Form_MembershipBlock\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:25:\"Manage Contribution Pages\";s:3:\"url\";s:33:\"/civicrm/admin/contribute?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,420,1,0,NULL,'a:0:{}'),(305,1,'civicrm/admin/contribute/custom',NULL,'Include Profiles','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:43:\"CRM_Contribute_Form_ContributionPage_Custom\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:25:\"Manage Contribution Pages\";s:3:\"url\";s:33:\"/civicrm/admin/contribute?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,430,1,0,NULL,'a:0:{}'),(306,1,'civicrm/admin/contribute/thankyou',NULL,'Thank-you and Receipting','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:45:\"CRM_Contribute_Form_ContributionPage_ThankYou\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:25:\"Manage Contribution Pages\";s:3:\"url\";s:33:\"/civicrm/admin/contribute?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,430,1,0,NULL,'a:0:{}'),(307,1,'civicrm/admin/contribute/friend',NULL,'Tell a Friend','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:26:\"CRM_Friend_Form_Contribute\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:25:\"Manage Contribution Pages\";s:3:\"url\";s:33:\"/civicrm/admin/contribute?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,440,1,0,NULL,'a:0:{}'),(308,1,'civicrm/admin/contribute/widget',NULL,'Configure Widget','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:43:\"CRM_Contribute_Form_ContributionPage_Widget\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:25:\"Manage Contribution Pages\";s:3:\"url\";s:33:\"/civicrm/admin/contribute?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,460,1,0,NULL,'a:0:{}'),(309,1,'civicrm/admin/contribute/premium',NULL,'Premiums','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:44:\"CRM_Contribute_Form_ContributionPage_Premium\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:25:\"Manage Contribution Pages\";s:3:\"url\";s:33:\"/civicrm/admin/contribute?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,470,1,0,NULL,'a:0:{}'),(310,1,'civicrm/admin/contribute/addProductToPage',NULL,'Add Products to This Page','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:47:\"CRM_Contribute_Form_ContributionPage_AddProduct\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:25:\"Manage Contribution Pages\";s:3:\"url\";s:33:\"/civicrm/admin/contribute?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,480,1,0,NULL,'a:0:{}'),(311,1,'civicrm/admin/contribute/add','action=add','New Contribution Page','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:42:\"CRM_Contribute_Controller_ContributionPage\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:25:\"Manage Contribution Pages\";s:3:\"url\";s:33:\"/civicrm/admin/contribute?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,0,NULL,'a:0:{}'),(312,1,'civicrm/admin/contribute/managePremiums',NULL,'Manage Premiums','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:34:\"CRM_Contribute_Page_ManagePremiums\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:25:\"Manage Contribution Pages\";s:3:\"url\";s:33:\"/civicrm/admin/contribute?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,365,1,0,NULL,'a:3:{s:4:\"desc\";s:175:\"CiviContribute allows you to configure any number of Premiums which can be offered to contributors as incentives / thank-you gifts. Define the premiums you want to offer here.\";s:10:\"adminGroup\";s:14:\"CiviContribute\";s:4:\"icon\";s:24:\"admin/small/Premiums.png\";}'),(313,1,'civicrm/admin/financial/financialType',NULL,'Financial Types','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:32:\"CRM_Financial_Page_FinancialType\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,580,1,0,NULL,'a:2:{s:4:\"desc\";s:64:\"Formerly civicrm_contribution_type merged into this table in 4.1\";s:10:\"adminGroup\";s:14:\"CiviContribute\";}'),(314,1,'civicrm/payment','action=add','New Payment','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:37:\"CRM_Contribute_Form_AdditionalPayment\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,2,NULL,NULL,NULL,0,1,1,1,NULL,'a:1:{s:9:\"component\";s:14:\"CiviContribute\";}'),(315,1,'civicrm/admin/financial/financialAccount',NULL,'Financial Accounts','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:35:\"CRM_Financial_Page_FinancialAccount\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,370,1,0,NULL,'a:3:{s:4:\"desc\";s:128:\"Financial types are used to categorize contributions for reporting and accounting purposes. These are also referred to as Funds.\";s:10:\"adminGroup\";s:14:\"CiviContribute\";s:4:\"icon\";s:34:\"admin/small/contribution_types.png\";}'),(316,1,'civicrm/admin/options/payment_instrument',NULL,'Payment Methods','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,380,1,0,NULL,'a:3:{s:4:\"desc\";s:224:\"You may choose to record the payment instrument used for each contribution. Common payment methods are installed by default (e.g. Check, Cash, Credit Card...). If your site requires additional payment methods, add them here.\";s:10:\"adminGroup\";s:14:\"CiviContribute\";s:4:\"icon\";s:35:\"admin/small/payment_instruments.png\";}'),(317,1,'civicrm/admin/options/accept_creditcard',NULL,'Accepted Credit Cards','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,395,1,0,NULL,'a:3:{s:4:\"desc\";s:94:\"Credit card options that will be offered to contributors using your Online Contribution pages.\";s:10:\"adminGroup\";s:14:\"CiviContribute\";s:4:\"icon\";s:36:\"admin/small/accepted_creditcards.png\";}'),(318,1,'civicrm/admin/options/soft_credit_type',NULL,'Soft Credit Types','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,0,NULL,'a:3:{s:4:\"desc\";s:86:\"Soft Credit Types that will be offered to contributors during soft credit contribution\";s:10:\"adminGroup\";s:14:\"CiviContribute\";s:4:\"icon\";s:32:\"admin/small/soft_credit_type.png\";}'),(319,1,'civicrm/contact/view/contribution',NULL,'Contributions','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:23:\"CRM_Contribute_Page_Tab\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(320,1,'civicrm/contact/view/contributionrecur',NULL,'Recurring Contributions','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:37:\"CRM_Contribute_Page_ContributionRecur\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(321,1,'civicrm/contact/view/contribution/additionalinfo',NULL,'Additional Info','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:34:\"CRM_Contribute_Form_AdditionalInfo\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}i:2;a:2:{s:5:\"title\";s:13:\"Contributions\";s:3:\"url\";s:42:\"/civicrm/contact/view/contribution?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(322,1,'civicrm/contribute/search',NULL,'Find Contributions','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:32:\"CRM_Contribute_Controller_Search\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,NULL,NULL,NULL,0,510,1,1,NULL,'a:0:{}'),(323,1,'civicrm/contribute/searchBatch',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:37:\"CRM_Contribute_Controller_SearchBatch\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,NULL,NULL,NULL,0,588,1,1,NULL,'a:0:{}'),(324,1,'civicrm/contribute/import',NULL,'Import Contributions','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:21:\"access CiviContribute\";i:1;s:18:\"edit contributions\";}i:1;s:3:\"and\";}','s:32:\"CRM_Contribute_Import_Controller\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,NULL,NULL,NULL,0,520,1,1,NULL,'a:0:{}'),(325,1,'civicrm/contribute/manage',NULL,'Manage Contribution Pages','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:36:\"CRM_Contribute_Page_ContributionPage\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,NULL,NULL,NULL,0,530,1,1,NULL,'a:0:{}'),(326,1,'civicrm/contribute/additionalinfo',NULL,'AdditionalInfo Form','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:34:\"CRM_Contribute_Form_AdditionalInfo\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,NULL,NULL,NULL,0,0,1,0,NULL,'a:0:{}'),(327,1,'civicrm/ajax/permlocation',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:25:\"make online contributions\";}i:1;s:3:\"and\";}','a:2:{i:0;s:27:\"CRM_Core_Page_AJAX_Location\";i:1;s:23:\"getPermissionedLocation\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(328,1,'civicrm/contribute/unsubscribe',NULL,'Cancel Subscription','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:25:\"make online contributions\";}i:1;s:3:\"and\";}','s:38:\"CRM_Contribute_Form_CancelSubscription\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(329,1,'civicrm/contribute/onbehalf',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:25:\"make online contributions\";}i:1;s:3:\"and\";}','s:43:\"CRM_Contribute_Form_Contribution_OnBehalfOf\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(330,1,'civicrm/contribute/updatebilling',NULL,'Update Billing Details','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:25:\"make online contributions\";}i:1;s:3:\"and\";}','s:33:\"CRM_Contribute_Form_UpdateBilling\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(331,1,'civicrm/contribute/updaterecur',NULL,'Update Subscription','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:25:\"make online contributions\";}i:1;s:3:\"and\";}','s:38:\"CRM_Contribute_Form_UpdateSubscription\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(332,1,'civicrm/contribute/subscriptionstatus',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:25:\"make online contributions\";}i:1;s:3:\"and\";}','s:38:\"CRM_Contribute_Page_SubscriptionStatus\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(333,1,'civicrm/admin/financial/financialType/accounts',NULL,'Financial Type Accounts','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:39:\"CRM_Financial_Page_FinancialTypeAccount\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:15:\"Financial Types\";s:3:\"url\";s:46:\"/civicrm/admin/financial/financialType?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,581,1,0,NULL,'a:0:{}'),(334,1,'civicrm/financial/batch',NULL,'Accounting Batch','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:19:\"create manual batch\";}i:1;s:3:\"and\";}','s:33:\"CRM_Financial_Page_FinancialBatch\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,585,1,0,NULL,'a:0:{}'),(335,1,'civicrm/financial/financialbatches',NULL,'Accounting Batches','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:24:\"CRM_Financial_Page_Batch\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,586,1,0,NULL,'a:0:{}'),(336,1,'civicrm/batchtransaction',NULL,'Accounting Batch','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:35:\"CRM_Financial_Page_BatchTransaction\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,600,1,0,NULL,'a:0:{}'),(337,1,'civicrm/financial/batch/export',NULL,'Accounting Batch Export','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:19:\"create manual batch\";}i:1;s:3:\"and\";}','s:25:\"CRM_Financial_Form_Export\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:16:\"Accounting Batch\";s:3:\"url\";s:32:\"/civicrm/financial/batch?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,610,1,0,NULL,'a:0:{}'),(338,1,'civicrm/payment/view','action=view','View Payment','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:31:\"CRM_Contribute_Page_PaymentInfo\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:11:\"New Payment\";s:3:\"url\";s:39:\"/civicrm/payment?reset=1&amp;action=add\";}}',NULL,NULL,2,NULL,NULL,NULL,0,1,1,1,NULL,'a:1:{s:9:\"component\";s:14:\"CiviContribute\";}'),(339,1,'civicrm/admin/setting/preferences/contribute',NULL,'CiviContribute Component Settings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:21:\"access CiviContribute\";i:1;s:18:\"administer CiviCRM\";}i:1;s:3:\"and\";}','s:37:\"CRM_Admin_Form_Preferences_Contribute\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,0,NULL,'a:2:{s:4:\"desc\";s:42:\"Configure global CiviContribute behaviors.\";s:10:\"adminGroup\";s:14:\"CiviContribute\";}'),(340,1,'civicrm/contribute/invoice',NULL,'PDF Invoice','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:20:\"checkDownloadInvoice\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','a:2:{i:0;s:32:\"CRM_Contribute_Form_Task_Invoice\";i:1;s:11:\"getPrintPDF\";}',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,NULL,NULL,NULL,0,620,1,1,NULL,'a:1:{s:9:\"component\";s:14:\"CiviContribute\";}'),(341,1,'civicrm/contribute/invoice/email',NULL,'Email Invoice','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:20:\"checkDownloadInvoice\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:32:\"CRM_Contribute_Form_Task_Invoice\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}i:2;a:2:{s:5:\"title\";s:11:\"PDF Invoice\";s:3:\"url\";s:35:\"/civicrm/contribute/invoice?reset=1\";}}',NULL,NULL,2,NULL,NULL,NULL,0,630,1,1,NULL,'a:1:{s:9:\"component\";s:14:\"CiviContribute\";}'),(342,1,'civicrm/ajax/softcontributionlist',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:24:\"CRM_Contribute_Page_AJAX\";i:1;s:23:\"getSoftContributionRows\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(343,1,'civicrm/contribute/contributionrecur-payments',NULL,'Recurring Contribution\'s Payments','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:45:\"CRM_Contribute_Page_ContributionRecurPayments\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(344,1,'civicrm/membership/recurring-contributions',NULL,'Membership Recurring Contributions','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:38:\"CRM_Member_Page_RecurringContributions\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(345,1,'civicrm/member',NULL,'CiviMember Dashboard','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:17:\"access CiviMember\";}i:1;s:3:\"and\";}','s:25:\"CRM_Member_Page_DashBoard\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,3,NULL,NULL,NULL,0,700,1,1,NULL,'a:1:{s:9:\"component\";s:10:\"CiviMember\";}'),(346,1,'civicrm/member/add','action=add','New Membership','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:17:\"access CiviMember\";}i:1;s:3:\"and\";}','s:19:\"CRM_Member_Page_Tab\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:20:\"CiviMember Dashboard\";s:3:\"url\";s:23:\"/civicrm/member?reset=1\";}}',NULL,NULL,3,NULL,NULL,NULL,0,1,1,0,NULL,'a:1:{s:9:\"component\";s:10:\"CiviMember\";}'),(347,1,'civicrm/admin/member/membershipType',NULL,'Membership Types','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:30:\"CRM_Member_Page_MembershipType\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,370,1,0,NULL,'a:3:{s:4:\"desc\";s:174:\"Define the types of memberships you want to offer. For each type, you can specify a \'name\' (Gold Member, Honor Society Member...), a description, duration, and a minimum fee.\";s:10:\"adminGroup\";s:10:\"CiviMember\";s:4:\"icon\";s:31:\"admin/small/membership_type.png\";}'),(348,1,'civicrm/admin/member/membershipStatus',NULL,'Membership Status Rules','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:32:\"CRM_Member_Page_MembershipStatus\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,380,1,0,NULL,'a:3:{s:4:\"desc\";s:187:\"Status \'rules\' define the current status for a membership based on that membership\'s start and end dates. You can adjust the default status options and rules as needed to meet your needs.\";s:10:\"adminGroup\";s:10:\"CiviMember\";s:4:\"icon\";s:33:\"admin/small/membership_status.png\";}'),(349,1,'civicrm/contact/view/membership','force=1,cid=%%cid%%','Memberships','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:19:\"CRM_Member_Page_Tab\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,2,1,0,NULL,'a:0:{}'),(350,1,'civicrm/membership/view',NULL,'Memberships','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:17:\"access CiviMember\";}i:1;s:3:\"and\";}','s:30:\"CRM_Member_Form_MembershipView\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,390,1,0,NULL,'a:0:{}'),(351,1,'civicrm/member/search',NULL,'Find Memberships','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:17:\"access CiviMember\";}i:1;s:3:\"and\";}','s:28:\"CRM_Member_Controller_Search\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:20:\"CiviMember Dashboard\";s:3:\"url\";s:23:\"/civicrm/member?reset=1\";}}',NULL,NULL,3,NULL,NULL,NULL,0,710,1,1,NULL,'a:0:{}'),(352,1,'civicrm/member/import',NULL,'Import Memberships','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:17:\"access CiviMember\";i:1;s:16:\"edit memberships\";}i:1;s:3:\"and\";}','s:28:\"CRM_Member_Import_Controller\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:20:\"CiviMember Dashboard\";s:3:\"url\";s:23:\"/civicrm/member?reset=1\";}}',NULL,NULL,3,NULL,NULL,NULL,0,720,1,1,NULL,'a:0:{}'),(353,1,'civicrm/ajax/memType',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:17:\"access CiviMember\";}i:1;s:3:\"and\";}','a:2:{i:0;s:20:\"CRM_Member_Page_AJAX\";i:1;s:21:\"getMemberTypeDefaults\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(354,1,'civicrm/admin/member/membershipType/add',NULL,'Membership Types','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:17:\"access CiviMember\";i:1;s:18:\"administer CiviCRM\";}i:1;s:3:\"and\";}','s:30:\"CRM_Member_Form_MembershipType\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:16:\"Membership Types\";s:3:\"url\";s:44:\"/civicrm/admin/member/membershipType?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,0,NULL,'a:0:{}'),(355,1,'civicrm/mailing',NULL,'CiviMail','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:15:\"access CiviMail\";i:1;s:15:\"create mailings\";i:2;s:8:\"send SMS\";}i:1;s:2:\"or\";}','s:23:\"CRM_Mailing_Page_Browse\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,4,NULL,NULL,NULL,0,600,1,1,NULL,'a:1:{s:9:\"component\";s:8:\"CiviMail\";}'),(356,1,'civicrm/admin/mail',NULL,'Mailer Settings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"access CiviMail\";}i:1;s:3:\"and\";}','s:27:\"CRM_Admin_Form_Setting_Mail\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,400,1,0,NULL,'a:3:{s:4:\"desc\";s:61:\"Configure spool period, throttling and other mailer settings.\";s:10:\"adminGroup\";s:8:\"CiviMail\";s:4:\"icon\";s:18:\"admin/small/07.png\";}'),(357,1,'civicrm/admin/component',NULL,'Headers, Footers, and Automated Messages','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"access CiviMail\";}i:1;s:3:\"and\";}','s:26:\"CRM_Mailing_Page_Component\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,410,1,0,NULL,'a:3:{s:4:\"desc\";s:143:\"Configure the header and footer used for mailings. Customize the content of automated Subscribe, Unsubscribe, Resubscribe and Opt-out messages.\";s:10:\"adminGroup\";s:8:\"CiviMail\";s:4:\"icon\";s:23:\"admin/small/Profile.png\";}'),(358,1,'civicrm/admin/options/from_email_address/civimail',NULL,'From Email Addresses','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:4:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}i:3;a:2:{s:5:\"title\";s:20:\"From Email Addresses\";s:3:\"url\";s:49:\"/civicrm/admin/options/from_email_address?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,415,1,0,NULL,'a:3:{s:4:\"desc\";s:74:\"List of Email Addresses which can be used when sending emails to contacts.\";s:10:\"adminGroup\";s:8:\"CiviMail\";s:4:\"icon\";s:21:\"admin/small/title.png\";}'),(359,1,'civicrm/admin/mailSettings',NULL,'Mail Accounts','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"access CiviMail\";}i:1;s:3:\"and\";}','s:27:\"CRM_Admin_Page_MailSettings\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,420,1,0,NULL,'a:3:{s:4:\"desc\";s:32:\"Configure email account setting.\";s:10:\"adminGroup\";s:8:\"CiviMail\";s:4:\"icon\";s:18:\"admin/small/07.png\";}'),(360,1,'civicrm/mailing/send',NULL,'New Mailing','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:15:\"access CiviMail\";i:1;s:15:\"create mailings\";i:2;s:17:\"schedule mailings\";}i:1;s:2:\"or\";}','s:27:\"CRM_Mailing_Controller_Send\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,NULL,NULL,NULL,0,610,1,1,NULL,'a:0:{}'),(361,1,'civicrm/mailing/browse/scheduled','scheduled=true','Find Mailings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:5:{i:0;s:15:\"access CiviMail\";i:1;s:16:\"approve mailings\";i:2;s:15:\"create mailings\";i:3;s:17:\"schedule mailings\";i:4;s:8:\"send SMS\";}i:1;s:2:\"or\";}','s:23:\"CRM_Mailing_Page_Browse\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,NULL,NULL,NULL,0,620,1,1,NULL,'a:0:{}'),(362,1,'civicrm/mailing/browse/unscheduled','scheduled=false','Find Mailings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:15:\"access CiviMail\";i:1;s:15:\"create mailings\";i:2;s:17:\"schedule mailings\";}i:1;s:2:\"or\";}','s:23:\"CRM_Mailing_Page_Browse\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,NULL,NULL,NULL,0,620,1,1,NULL,'a:0:{}'),(363,1,'civicrm/mailing/browse/archived',NULL,'Find Mailings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:15:\"access CiviMail\";i:1;s:15:\"create mailings\";}i:1;s:2:\"or\";}','s:23:\"CRM_Mailing_Page_Browse\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,NULL,NULL,NULL,0,625,1,1,NULL,'a:0:{}'),(364,1,'civicrm/mailing/component',NULL,'Headers, Footers, and Automated Messages','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:18:\"administer CiviCRM\";}i:1;s:3:\"and\";}','s:26:\"CRM_Mailing_Page_Component\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,NULL,NULL,NULL,0,630,1,1,NULL,'a:0:{}'),(365,1,'civicrm/mailing/unsubscribe',NULL,'Unsubscribe','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:43:\"access CiviMail subscribe/unsubscribe pages\";}i:1;s:3:\"and\";}','s:28:\"CRM_Mailing_Form_Unsubscribe\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,NULL,1,NULL,0,640,1,0,NULL,'a:0:{}'),(366,1,'civicrm/mailing/resubscribe',NULL,'Resubscribe','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:43:\"access CiviMail subscribe/unsubscribe pages\";}i:1;s:3:\"and\";}','s:28:\"CRM_Mailing_Page_Resubscribe\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,NULL,1,NULL,0,645,1,0,NULL,'a:0:{}'),(367,1,'civicrm/mailing/optout',NULL,'Opt-out','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:43:\"access CiviMail subscribe/unsubscribe pages\";}i:1;s:3:\"and\";}','s:23:\"CRM_Mailing_Form_Optout\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,NULL,1,NULL,0,650,1,0,NULL,'a:0:{}'),(368,1,'civicrm/mailing/confirm',NULL,'Confirm','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:43:\"access CiviMail subscribe/unsubscribe pages\";}i:1;s:3:\"and\";}','s:24:\"CRM_Mailing_Page_Confirm\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,NULL,1,NULL,0,660,1,0,NULL,'a:0:{}'),(369,1,'civicrm/mailing/subscribe',NULL,'Subscribe','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:43:\"access CiviMail subscribe/unsubscribe pages\";}i:1;s:3:\"and\";}','s:26:\"CRM_Mailing_Form_Subscribe\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,NULL,1,NULL,0,660,1,0,NULL,'a:0:{}'),(370,1,'civicrm/mailing/preview',NULL,'Preview Mailing','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:4:{i:0;s:15:\"access CiviMail\";i:1;s:16:\"approve mailings\";i:2;s:15:\"create mailings\";i:3;s:17:\"schedule mailings\";}i:1;s:2:\"or\";}','s:24:\"CRM_Mailing_Page_Preview\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,NULL,NULL,NULL,0,670,1,0,NULL,'a:0:{}'),(371,1,'civicrm/mailing/report','mid=%%mid%%','Mailing Report','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:15:\"access CiviMail\";i:1;s:15:\"create mailings\";}i:1;s:2:\"or\";}','s:23:\"CRM_Mailing_Page_Report\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,NULL,NULL,NULL,0,680,1,0,NULL,'a:0:{}'),(372,1,'civicrm/mailing/forward',NULL,'Forward Mailing','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:43:\"access CiviMail subscribe/unsubscribe pages\";}i:1;s:3:\"and\";}','s:31:\"CRM_Mailing_Form_ForwardMailing\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,NULL,1,NULL,0,685,1,0,NULL,'a:0:{}'),(373,1,'civicrm/mailing/queue',NULL,'Sending Mail','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:15:\"access CiviMail\";}i:1;s:3:\"and\";}','s:23:\"CRM_Mailing_Page_Browse\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,NULL,NULL,NULL,0,690,1,0,NULL,'a:0:{}'),(374,1,'civicrm/mailing/report/event',NULL,'Mailing Event','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:15:\"access CiviMail\";}i:1;s:3:\"and\";}','s:22:\"CRM_Mailing_Page_Event\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}i:2;a:2:{s:5:\"title\";s:14:\"Mailing Report\";s:3:\"url\";s:47:\"/civicrm/mailing/report?reset=1&amp;mid=%%mid%%\";}}',NULL,NULL,4,NULL,NULL,NULL,0,695,1,0,NULL,'a:0:{}'),(375,1,'civicrm/ajax/template',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Mailing_Page_AJAX\";i:1;s:8:\"template\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(376,1,'civicrm/mailing/view',NULL,'View Mailing','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:28:\"view public CiviMail content\";i:1;s:15:\"access CiviMail\";i:2;s:16:\"approve mailings\";}i:1;s:2:\"or\";}','s:21:\"CRM_Mailing_Page_View\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,NULL,1,NULL,0,800,1,0,NULL,'a:0:{}'),(377,1,'civicrm/mailing/approve',NULL,'Approve Mailing','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:15:\"access CiviMail\";i:1;s:16:\"approve mailings\";}i:1;s:2:\"or\";}','s:24:\"CRM_Mailing_Form_Approve\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,NULL,NULL,NULL,0,850,1,0,NULL,'a:0:{}'),(378,1,'civicrm/contact/view/mailing',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:20:\"CRM_Mailing_Page_Tab\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(379,1,'civicrm/ajax/contactmailing',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Mailing_Page_AJAX\";i:1;s:18:\"getContactMailings\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(380,1,'civicrm/grant',NULL,'CiviGrant Dashboard','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviGrant\";}i:1;s:3:\"and\";}','s:24:\"CRM_Grant_Page_DashBoard\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,5,NULL,NULL,NULL,0,1000,1,1,NULL,'a:1:{s:9:\"component\";s:9:\"CiviGrant\";}'),(381,1,'civicrm/grant/info',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviGrant\";}i:1;s:3:\"and\";}','s:24:\"CRM_Grant_Page_DashBoard\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviGrant Dashboard\";s:3:\"url\";s:22:\"/civicrm/grant?reset=1\";}}',NULL,NULL,5,NULL,NULL,NULL,0,0,1,0,NULL,'a:0:{}'),(382,1,'civicrm/grant/search',NULL,'Find Grants','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviGrant\";}i:1;s:3:\"and\";}','s:27:\"CRM_Grant_Controller_Search\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviGrant Dashboard\";s:3:\"url\";s:22:\"/civicrm/grant?reset=1\";}}',NULL,NULL,5,NULL,NULL,NULL,0,1010,1,1,NULL,'a:0:{}'),(383,1,'civicrm/grant/add','action=add','New Grant','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviGrant\";}i:1;s:3:\"and\";}','s:18:\"CRM_Grant_Page_Tab\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviGrant Dashboard\";s:3:\"url\";s:22:\"/civicrm/grant?reset=1\";}}',NULL,NULL,5,NULL,NULL,NULL,0,1,1,1,NULL,'a:1:{s:9:\"component\";s:9:\"CiviGrant\";}'),(384,1,'civicrm/contact/view/grant',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviGrant\";}i:1;s:3:\"and\";}','s:18:\"CRM_Grant_Page_Tab\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(385,1,'civicrm/pledge',NULL,'CiviPledge Dashboard','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:17:\"access CiviPledge\";}i:1;s:3:\"and\";}','s:25:\"CRM_Pledge_Page_DashBoard\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,6,NULL,NULL,NULL,0,550,1,1,NULL,'a:1:{s:9:\"component\";s:10:\"CiviPledge\";}'),(386,1,'civicrm/pledge/search',NULL,'Find Pledges','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:17:\"access CiviPledge\";}i:1;s:3:\"and\";}','s:28:\"CRM_Pledge_Controller_Search\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:20:\"CiviPledge Dashboard\";s:3:\"url\";s:23:\"/civicrm/pledge?reset=1\";}}',NULL,NULL,6,NULL,NULL,NULL,0,560,1,1,NULL,'a:0:{}'),(387,1,'civicrm/contact/view/pledge','force=1,cid=%%cid%%','Pledges','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:17:\"access CiviPledge\";}i:1;s:3:\"and\";}','s:19:\"CRM_Pledge_Page_Tab\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,570,1,0,NULL,'a:0:{}'),(388,1,'civicrm/pledge/add','action=add','New Pledge','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:17:\"access CiviPledge\";}i:1;s:3:\"and\";}','s:19:\"CRM_Pledge_Page_Tab\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:20:\"CiviPledge Dashboard\";s:3:\"url\";s:23:\"/civicrm/pledge?reset=1\";}}',NULL,NULL,6,NULL,NULL,NULL,0,1,1,1,NULL,'a:1:{s:9:\"component\";s:10:\"CiviPledge\";}'),(389,1,'civicrm/pledge/payment',NULL,'Pledge Payments','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:17:\"access CiviPledge\";}i:1;s:3:\"and\";}','s:23:\"CRM_Pledge_Page_Payment\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:20:\"CiviPledge Dashboard\";s:3:\"url\";s:23:\"/civicrm/pledge?reset=1\";}}',NULL,NULL,6,NULL,NULL,NULL,0,580,1,0,NULL,'a:0:{}'),(390,1,'civicrm/ajax/pledgeAmount',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:17:\"access CiviPledge\";i:1;s:18:\"administer CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:20:\"CRM_Pledge_Page_AJAX\";i:1;s:17:\"getPledgeDefaults\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(391,1,'civicrm/case',NULL,'CiviCase Dashboard','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:23:\"CRM_Case_Page_DashBoard\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,7,NULL,NULL,NULL,0,900,1,1,NULL,'a:1:{s:9:\"component\";s:8:\"CiviCase\";}'),(392,1,'civicrm/case/add',NULL,'Open Case','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:18:\"CRM_Case_Form_Case\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"CiviCase Dashboard\";s:3:\"url\";s:21:\"/civicrm/case?reset=1\";}}',NULL,NULL,7,NULL,NULL,NULL,0,1,1,1,NULL,'a:1:{s:9:\"component\";s:8:\"CiviCase\";}'),(393,1,'civicrm/case/search',NULL,'Find Cases','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:26:\"CRM_Case_Controller_Search\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"CiviCase Dashboard\";s:3:\"url\";s:21:\"/civicrm/case?reset=1\";}}',NULL,NULL,7,NULL,NULL,NULL,0,910,1,1,NULL,'a:0:{}'),(394,1,'civicrm/case/activity',NULL,'Case Activity','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Case_Form_Activity\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"CiviCase Dashboard\";s:3:\"url\";s:21:\"/civicrm/case?reset=1\";}}',NULL,NULL,7,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(395,1,'civicrm/case/report',NULL,'Case Activity Audit','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:31:\"access all cases and activities\";}i:1;s:3:\"and\";}','s:20:\"CRM_Case_Form_Report\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"CiviCase Dashboard\";s:3:\"url\";s:21:\"/civicrm/case?reset=1\";}}',NULL,NULL,7,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(396,1,'civicrm/case/cd/edit',NULL,'Case Custom Set','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:24:\"CRM_Case_Form_CustomData\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"CiviCase Dashboard\";s:3:\"url\";s:21:\"/civicrm/case?reset=1\";}}',NULL,NULL,7,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(397,1,'civicrm/contact/view/case',NULL,'Case','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:17:\"CRM_Case_Page_Tab\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(398,1,'civicrm/case/activity/view',NULL,'Activity View','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:26:\"CRM_Case_Form_ActivityView\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"CiviCase Dashboard\";s:3:\"url\";s:21:\"/civicrm/case?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Case Activity\";s:3:\"url\";s:30:\"/civicrm/case/activity?reset=1\";}}',NULL,NULL,7,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(399,1,'civicrm/contact/view/case/editClient',NULL,'Assign to Another Client','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:24:\"CRM_Case_Form_EditClient\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}i:2;a:2:{s:5:\"title\";s:4:\"Case\";s:3:\"url\";s:34:\"/civicrm/contact/view/case?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(400,1,'civicrm/case/addToCase',NULL,'File on Case','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:28:\"CRM_Case_Form_ActivityToCase\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"CiviCase Dashboard\";s:3:\"url\";s:21:\"/civicrm/case?reset=1\";}}',NULL,NULL,7,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(401,1,'civicrm/case/details',NULL,'Case Details','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:25:\"CRM_Case_Page_CaseDetails\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"CiviCase Dashboard\";s:3:\"url\";s:21:\"/civicrm/case?reset=1\";}}',NULL,NULL,7,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(402,1,'civicrm/admin/setting/case',NULL,'CiviCase Settings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:27:\"CRM_Admin_Form_Setting_Case\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,380,1,0,NULL,'a:2:{s:10:\"adminGroup\";s:8:\"CiviCase\";s:4:\"icon\";s:18:\"admin/small/36.png\";}'),(403,1,'civicrm/admin/options/case_type',NULL,'Case Types','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:19:\"administer CiviCase\";}i:1;s:3:\"and\";}','s:22:\"CRM_Core_Page_Redirect\";','s:24:\"url=civicrm/a/#/caseType\";','a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,390,1,0,NULL,'a:3:{s:4:\"desc\";s:137:\"List of types which can be assigned to Cases. (Enable the Cases tab from System Settings - Enable Components if you want to track cases.)\";s:10:\"adminGroup\";s:8:\"CiviCase\";s:4:\"icon\";s:25:\"admin/small/case_type.png\";}'),(404,1,'civicrm/admin/options/redaction_rule',NULL,'Redaction Rules','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:19:\"administer CiviCase\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,400,1,0,NULL,'a:3:{s:4:\"desc\";s:223:\"List of rules which can be applied to user input strings so that the redacted output can be recognized as repeated instances of the same string or can be identified as a \"semantic type of the data element\" within case data.\";s:10:\"adminGroup\";s:8:\"CiviCase\";s:4:\"icon\";s:30:\"admin/small/redaction_type.png\";}'),(405,1,'civicrm/admin/options/case_status',NULL,'Case Statuses','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:19:\"administer CiviCase\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,400,1,0,NULL,'a:3:{s:4:\"desc\";s:48:\"List of statuses that can be assigned to a case.\";s:10:\"adminGroup\";s:8:\"CiviCase\";s:4:\"icon\";s:25:\"admin/small/case_type.png\";}'),(406,1,'civicrm/admin/options/encounter_medium',NULL,'Encounter Mediums','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:19:\"administer CiviCase\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,400,1,0,NULL,'a:3:{s:4:\"desc\";s:26:\"List of encounter mediums.\";s:10:\"adminGroup\";s:8:\"CiviCase\";s:4:\"icon\";s:25:\"admin/small/case_type.png\";}'),(407,1,'civicrm/case/report/print',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:31:\"access all cases and activities\";}i:1;s:3:\"and\";}','a:2:{i:0;s:28:\"CRM_Case_XMLProcessor_Report\";i:1;s:15:\"printCaseReport\";}',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"CiviCase Dashboard\";s:3:\"url\";s:21:\"/civicrm/case?reset=1\";}i:2;a:2:{s:5:\"title\";s:19:\"Case Activity Audit\";s:3:\"url\";s:28:\"/civicrm/case/report?reset=1\";}}',NULL,NULL,7,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(408,1,'civicrm/case/ajax/addclient',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:18:\"CRM_Case_Page_AJAX\";i:1;s:9:\"addClient\";}',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"CiviCase Dashboard\";s:3:\"url\";s:21:\"/civicrm/case?reset=1\";}}',NULL,NULL,7,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(409,1,'civicrm/case/ajax/processtags',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:18:\"CRM_Case_Page_AJAX\";i:1;s:15:\"processCaseTags\";}',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"CiviCase Dashboard\";s:3:\"url\";s:21:\"/civicrm/case?reset=1\";}}',NULL,NULL,7,NULL,NULL,NULL,0,1,1,3,NULL,'a:0:{}'),(410,1,'civicrm/case/ajax/details',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:18:\"CRM_Case_Page_AJAX\";i:1;s:11:\"CaseDetails\";}',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"CiviCase Dashboard\";s:3:\"url\";s:21:\"/civicrm/case?reset=1\";}}',NULL,NULL,7,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(411,1,'civicrm/ajax/delcaserole',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:18:\"CRM_Case_Page_AJAX\";i:1;s:15:\"deleteCaseRoles\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(412,1,'civicrm/ajax/get-cases',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:18:\"CRM_Case_Page_AJAX\";i:1;s:8:\"getCases\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(413,1,'civicrm/report',NULL,'CiviReport','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:17:\"access CiviReport\";}i:1;s:3:\"and\";}','s:22:\"CRM_Report_Page_Report\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,8,NULL,NULL,NULL,0,1200,1,1,NULL,'a:1:{s:9:\"component\";s:10:\"CiviReport\";}'),(414,1,'civicrm/report/list',NULL,'CiviCRM Reports','s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:17:\"access CiviReport\";}i:1;s:3:\"and\";}','s:28:\"CRM_Report_Page_InstanceList\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"CiviReport\";s:3:\"url\";s:23:\"/civicrm/report?reset=1\";}}',NULL,NULL,8,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(415,1,'civicrm/report/template/list',NULL,'Create New Report from Template','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:18:\"administer Reports\";}i:1;s:3:\"and\";}','s:28:\"CRM_Report_Page_TemplateList\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"CiviReport\";s:3:\"url\";s:23:\"/civicrm/report?reset=1\";}}',NULL,NULL,8,NULL,NULL,NULL,0,1220,1,1,NULL,'a:0:{}'),(416,1,'civicrm/report/options/report_template',NULL,'Manage Templates','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:18:\"administer Reports\";}i:1;s:3:\"and\";}','s:23:\"CRM_Report_Page_Options\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"CiviReport\";s:3:\"url\";s:23:\"/civicrm/report?reset=1\";}}',NULL,NULL,8,NULL,NULL,NULL,0,1241,1,1,NULL,'a:0:{}'),(417,1,'civicrm/admin/report/register',NULL,'Register Report','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:18:\"administer Reports\";}i:1;s:3:\"and\";}','s:24:\"CRM_Report_Form_Register\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,0,NULL,'a:1:{s:4:\"desc\";s:30:\"Register the Report templates.\";}'),(418,1,'civicrm/report/instance',NULL,'Report','s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:17:\"access CiviReport\";}i:1;s:3:\"and\";}','s:24:\"CRM_Report_Page_Instance\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"CiviReport\";s:3:\"url\";s:23:\"/civicrm/report?reset=1\";}}',NULL,NULL,8,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(419,1,'civicrm/admin/report/template/list',NULL,'Create New Report from Template','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:17:\"access CiviReport\";}i:1;s:3:\"and\";}','s:28:\"CRM_Report_Page_TemplateList\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,0,NULL,'a:3:{s:4:\"desc\";s:49:\"Component wise listing of all available templates\";s:10:\"adminGroup\";s:10:\"CiviReport\";s:4:\"icon\";s:31:\"admin/small/report_template.gif\";}'),(420,1,'civicrm/admin/report/options/report_template',NULL,'Manage Templates','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:17:\"access CiviReport\";}i:1;s:3:\"and\";}','s:23:\"CRM_Report_Page_Options\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,0,NULL,'a:3:{s:4:\"desc\";s:45:\"Browse, Edit and Delete the Report templates.\";s:10:\"adminGroup\";s:10:\"CiviReport\";s:4:\"icon\";s:24:\"admin/small/template.png\";}'),(421,1,'civicrm/admin/report/list',NULL,'Reports Listing','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:28:\"CRM_Report_Page_InstanceList\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,0,NULL,'a:3:{s:4:\"desc\";s:60:\"Browse existing report, change report criteria and settings.\";s:10:\"adminGroup\";s:10:\"CiviReport\";s:4:\"icon\";s:27:\"admin/small/report_list.gif\";}'),(422,1,'civicrm/campaign',NULL,'Campaign Dashboard','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:23:\"administer CiviCampaign\";i:1;s:15:\"manage campaign\";}i:1;s:2:\"or\";}','s:27:\"CRM_Campaign_Page_DashBoard\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,9,NULL,NULL,NULL,0,1,1,0,NULL,'a:1:{s:9:\"component\";s:12:\"CiviCampaign\";}'),(423,1,'civicrm/campaign/add',NULL,'New Campaign','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:23:\"administer CiviCampaign\";i:1;s:15:\"manage campaign\";}i:1;s:2:\"or\";}','s:26:\"CRM_Campaign_Form_Campaign\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Campaign Dashboard\";s:3:\"url\";s:25:\"/civicrm/campaign?reset=1\";}}',NULL,NULL,9,NULL,NULL,NULL,0,1,1,0,NULL,'a:1:{s:9:\"component\";s:12:\"CiviCampaign\";}'),(424,1,'civicrm/survey/add',NULL,'New Survey','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:23:\"administer CiviCampaign\";i:1;s:15:\"manage campaign\";}i:1;s:2:\"or\";}','s:29:\"CRM_Campaign_Form_Survey_Main\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:1:{s:9:\"component\";s:12:\"CiviCampaign\";}'),(425,1,'civicrm/campaign/vote',NULL,'Conduct Survey','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:4:{i:0;s:23:\"administer CiviCampaign\";i:1;s:15:\"manage campaign\";i:2;s:25:\"reserve campaign contacts\";i:3;s:27:\"interview campaign contacts\";}i:1;s:2:\"or\";}','s:22:\"CRM_Campaign_Page_Vote\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Campaign Dashboard\";s:3:\"url\";s:25:\"/civicrm/campaign?reset=1\";}}',NULL,NULL,9,NULL,NULL,NULL,0,1,1,0,NULL,'a:1:{s:9:\"component\";s:12:\"CiviCampaign\";}'),(426,1,'civicrm/admin/campaign/surveyType',NULL,'Survey Types','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:23:\"administer CiviCampaign\";}i:1;s:3:\"and\";}','s:28:\"CRM_Campaign_Page_SurveyType\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,0,NULL,'a:3:{s:4:\"icon\";s:18:\"admin/small/05.png\";s:10:\"adminGroup\";s:12:\"CiviCampaign\";s:9:\"component\";s:12:\"CiviCampaign\";}'),(427,1,'civicrm/admin/options/campaign_type',NULL,'Campaign Types','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,2,1,0,NULL,'a:4:{s:4:\"desc\";s:47:\"categorize your campaigns using campaign types.\";s:10:\"adminGroup\";s:12:\"CiviCampaign\";s:4:\"icon\";s:18:\"admin/small/05.png\";s:9:\"component\";s:12:\"CiviCampaign\";}'),(428,1,'civicrm/admin/options/campaign_status',NULL,'Campaign Status','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,3,1,0,NULL,'a:4:{s:4:\"desc\";s:34:\"Define statuses for campaign here.\";s:10:\"adminGroup\";s:12:\"CiviCampaign\";s:4:\"icon\";s:18:\"admin/small/05.png\";s:9:\"component\";s:12:\"CiviCampaign\";}'),(429,1,'civicrm/admin/options/engagement_index',NULL,'Engagement Index','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Administer CiviCRM\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,1,4,1,0,NULL,'a:4:{s:4:\"desc\";s:18:\"Engagement levels.\";s:10:\"adminGroup\";s:12:\"CiviCampaign\";s:4:\"icon\";s:18:\"admin/small/05.png\";s:9:\"component\";s:12:\"CiviCampaign\";}'),(430,1,'civicrm/survey/search','op=interview','Record Respondents Interview','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:23:\"administer CiviCampaign\";i:1;s:15:\"manage campaign\";i:2;s:27:\"interview campaign contacts\";}i:1;s:2:\"or\";}','s:30:\"CRM_Campaign_Controller_Search\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:1:{s:9:\"component\";s:12:\"CiviCampaign\";}'),(431,1,'civicrm/campaign/gotv',NULL,'GOTV (Track Voters)','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:4:{i:0;s:23:\"administer CiviCampaign\";i:1;s:15:\"manage campaign\";i:2;s:25:\"release campaign contacts\";i:3;s:22:\"gotv campaign contacts\";}i:1;s:2:\"or\";}','s:22:\"CRM_Campaign_Form_Gotv\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Campaign Dashboard\";s:3:\"url\";s:25:\"/civicrm/campaign?reset=1\";}}',NULL,NULL,9,NULL,NULL,NULL,0,1,1,0,NULL,'a:1:{s:9:\"component\";s:12:\"CiviCampaign\";}'),(432,1,'civicrm/petition/add',NULL,'New Petition','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:23:\"administer CiviCampaign\";i:1;s:15:\"manage campaign\";}i:1;s:2:\"or\";}','s:26:\"CRM_Campaign_Form_Petition\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(433,1,'civicrm/petition/sign',NULL,'Sign Petition','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"sign CiviCRM Petition\";}i:1;s:3:\"and\";}','s:36:\"CRM_Campaign_Form_Petition_Signature\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,1,NULL,0,1,1,0,NULL,'a:0:{}'),(434,1,'civicrm/petition/browse',NULL,'View Petition Signatures','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:26:\"CRM_Campaign_Page_Petition\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(435,1,'civicrm/petition/confirm',NULL,'Email address verified','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"sign CiviCRM Petition\";}i:1;s:3:\"and\";}','s:34:\"CRM_Campaign_Page_Petition_Confirm\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,1,NULL,0,1,1,0,NULL,'a:0:{}'),(436,1,'civicrm/petition/thankyou',NULL,'Thank You','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"sign CiviCRM Petition\";}i:1;s:3:\"and\";}','s:35:\"CRM_Campaign_Page_Petition_ThankYou\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,1,NULL,0,1,1,0,NULL,'a:0:{}'),(437,1,'civicrm/campaign/registerInterview',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:23:\"administer CiviCampaign\";i:1;s:15:\"manage campaign\";i:2;s:27:\"interview campaign contacts\";}i:1;s:2:\"or\";}','a:2:{i:0;s:22:\"CRM_Campaign_Page_AJAX\";i:1;s:17:\"registerInterview\";}',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Campaign Dashboard\";s:3:\"url\";s:25:\"/civicrm/campaign?reset=1\";}}',NULL,NULL,9,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(438,1,'civicrm/survey/configure/main',NULL,'Configure Survey','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:23:\"administer CiviCampaign\";i:1;s:15:\"manage campaign\";}i:1;s:2:\"or\";}','s:29:\"CRM_Campaign_Form_Survey_Main\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(439,1,'civicrm/survey/configure/questions',NULL,'Configure Survey','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:23:\"administer CiviCampaign\";i:1;s:15:\"manage campaign\";}i:1;s:2:\"or\";}','s:34:\"CRM_Campaign_Form_Survey_Questions\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(440,1,'civicrm/survey/configure/results',NULL,'Configure Survey','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:23:\"administer CiviCampaign\";i:1;s:15:\"manage campaign\";}i:1;s:2:\"or\";}','s:32:\"CRM_Campaign_Form_Survey_Results\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(441,1,'civicrm/survey/delete',NULL,'Delete Survey','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:23:\"administer CiviCampaign\";i:1;s:15:\"manage campaign\";}i:1;s:2:\"or\";}','s:31:\"CRM_Campaign_Form_Survey_Delete\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,NULL,NULL,NULL,0,1,1,0,NULL,'a:0:{}'),(442,1,'admin',NULL,NULL,NULL,NULL,NULL,NULL,'a:15:{s:14:\"CiviContribute\";a:3:{s:12:\"component_id\";N;s:6:\"fields\";a:9:{s:32:\"{weight}.Personal Campaign Pages\";a:6:{s:5:\"title\";s:23:\"Personal Campaign Pages\";s:4:\"desc\";s:49:\"View and manage existing personal campaign pages.\";s:2:\"id\";s:21:\"PersonalCampaignPages\";s:3:\"url\";s:49:\"/civicrm/admin/pcp?context=contribute&amp;reset=1\";s:4:\"icon\";s:34:\"admin/small/contribution_types.png\";s:5:\"extra\";N;}s:34:\"{weight}.Manage Contribution Pages\";a:6:{s:5:\"title\";s:25:\"Manage Contribution Pages\";s:4:\"desc\";s:242:\"CiviContribute allows you to create and maintain any number of Online Contribution Pages. You can create different pages for different programs or campaigns - and customize text, amounts, types of information collected from contributors, etc.\";s:2:\"id\";s:23:\"ManageContributionPages\";s:3:\"url\";s:33:\"/civicrm/admin/contribute?reset=1\";s:4:\"icon\";s:41:\"admin/small/online_contribution_pages.png\";s:5:\"extra\";N;}s:24:\"{weight}.Manage Premiums\";a:6:{s:5:\"title\";s:15:\"Manage Premiums\";s:4:\"desc\";s:175:\"CiviContribute allows you to configure any number of Premiums which can be offered to contributors as incentives / thank-you gifts. Define the premiums you want to offer here.\";s:2:\"id\";s:14:\"ManagePremiums\";s:3:\"url\";s:48:\"/civicrm/admin/contribute/managePremiums?reset=1\";s:4:\"icon\";s:24:\"admin/small/Premiums.png\";s:5:\"extra\";N;}s:24:\"{weight}.Financial Types\";a:6:{s:5:\"title\";s:15:\"Financial Types\";s:4:\"desc\";s:64:\"Formerly civicrm_contribution_type merged into this table in 4.1\";s:2:\"id\";s:14:\"FinancialTypes\";s:3:\"url\";s:46:\"/civicrm/admin/financial/financialType?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:27:\"{weight}.Financial Accounts\";a:6:{s:5:\"title\";s:18:\"Financial Accounts\";s:4:\"desc\";s:128:\"Financial types are used to categorize contributions for reporting and accounting purposes. These are also referred to as Funds.\";s:2:\"id\";s:17:\"FinancialAccounts\";s:3:\"url\";s:49:\"/civicrm/admin/financial/financialAccount?reset=1\";s:4:\"icon\";s:34:\"admin/small/contribution_types.png\";s:5:\"extra\";N;}s:24:\"{weight}.Payment Methods\";a:6:{s:5:\"title\";s:15:\"Payment Methods\";s:4:\"desc\";s:224:\"You may choose to record the payment instrument used for each contribution. Common payment methods are installed by default (e.g. Check, Cash, Credit Card...). If your site requires additional payment methods, add them here.\";s:2:\"id\";s:14:\"PaymentMethods\";s:3:\"url\";s:49:\"/civicrm/admin/options/payment_instrument?reset=1\";s:4:\"icon\";s:35:\"admin/small/payment_instruments.png\";s:5:\"extra\";N;}s:30:\"{weight}.Accepted Credit Cards\";a:6:{s:5:\"title\";s:21:\"Accepted Credit Cards\";s:4:\"desc\";s:94:\"Credit card options that will be offered to contributors using your Online Contribution pages.\";s:2:\"id\";s:19:\"AcceptedCreditCards\";s:3:\"url\";s:48:\"/civicrm/admin/options/accept_creditcard?reset=1\";s:4:\"icon\";s:36:\"admin/small/accepted_creditcards.png\";s:5:\"extra\";N;}s:26:\"{weight}.Soft Credit Types\";a:6:{s:5:\"title\";s:17:\"Soft Credit Types\";s:4:\"desc\";s:86:\"Soft Credit Types that will be offered to contributors during soft credit contribution\";s:2:\"id\";s:15:\"SoftCreditTypes\";s:3:\"url\";s:47:\"/civicrm/admin/options/soft_credit_type?reset=1\";s:4:\"icon\";s:32:\"admin/small/soft_credit_type.png\";s:5:\"extra\";N;}s:42:\"{weight}.CiviContribute Component Settings\";a:6:{s:5:\"title\";s:33:\"CiviContribute Component Settings\";s:4:\"desc\";s:42:\"Configure global CiviContribute behaviors.\";s:2:\"id\";s:31:\"CiviContributeComponentSettings\";s:3:\"url\";s:53:\"/civicrm/admin/setting/preferences/contribute?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}}s:9:\"perColumn\";d:5;}s:26:\"Customize Data and Screens\";a:3:{s:12:\"component_id\";N;s:6:\"fields\";a:19:{s:20:\"{weight}.Custom Data\";a:6:{s:5:\"title\";s:11:\"Custom Data\";s:4:\"desc\";s:109:\"Configure custom fields to collect and store custom data which is not included in the standard CiviCRM forms.\";s:2:\"id\";s:10:\"CustomData\";s:3:\"url\";s:35:\"/civicrm/admin/custom/group?reset=1\";s:4:\"icon\";s:26:\"admin/small/custm_data.png\";s:5:\"extra\";N;}s:17:\"{weight}.Profiles\";a:6:{s:5:\"title\";s:8:\"Profiles\";s:4:\"desc\";s:151:\"Profiles allow you to aggregate groups of fields and include them in your site as input forms, contact display pages, and search and listings features.\";s:2:\"id\";s:8:\"Profiles\";s:3:\"url\";s:31:\"/civicrm/admin/uf/group?reset=1\";s:4:\"icon\";s:23:\"admin/small/Profile.png\";s:5:\"extra\";N;}s:23:\"{weight}.Activity Types\";a:6:{s:5:\"title\";s:14:\"Activity Types\";s:4:\"desc\";s:155:\"CiviCRM has several built-in activity types (meetings, phone calls, emails sent). Track other types of interactions by creating custom activity types here.\";s:2:\"id\";s:13:\"ActivityTypes\";s:3:\"url\";s:44:\"/civicrm/admin/options/activity_type?reset=1\";s:4:\"icon\";s:18:\"admin/small/05.png\";s:5:\"extra\";N;}s:27:\"{weight}.Relationship Types\";a:6:{s:5:\"title\";s:18:\"Relationship Types\";s:4:\"desc\";s:148:\"Contacts can be linked to each other through Relationships (e.g. Spouse, Employer, etc.). Define the types of relationships you want to record here.\";s:2:\"id\";s:17:\"RelationshipTypes\";s:3:\"url\";s:30:\"/civicrm/admin/reltype?reset=1\";s:4:\"icon\";s:25:\"admin/small/rela_type.png\";s:5:\"extra\";N;}s:22:\"{weight}.Contact Types\";a:6:{s:5:\"title\";s:13:\"Contact Types\";s:4:\"desc\";N;s:2:\"id\";s:12:\"ContactTypes\";s:3:\"url\";s:38:\"/civicrm/admin/options/subtype?reset=1\";s:4:\"icon\";s:18:\"admin/small/09.png\";s:5:\"extra\";N;}s:23:\"{weight}.Gender Options\";a:6:{s:5:\"title\";s:14:\"Gender Options\";s:4:\"desc\";s:79:\"Options for assigning gender to individual contacts (e.g. Male, Female, Other).\";s:2:\"id\";s:13:\"GenderOptions\";s:3:\"url\";s:37:\"/civicrm/admin/options/gender?reset=1\";s:4:\"icon\";s:18:\"admin/small/01.png\";s:5:\"extra\";N;}s:40:\"{weight}.Individual Prefixes (Ms, Mr...)\";a:6:{s:5:\"title\";s:31:\"Individual Prefixes (Ms, Mr...)\";s:4:\"desc\";s:66:\"Options for individual contact prefixes (e.g. Ms., Mr., Dr. etc.).\";s:2:\"id\";s:27:\"IndividualPrefixes_Ms_Mr...\";s:3:\"url\";s:48:\"/civicrm/admin/options/individual_prefix?reset=1\";s:4:\"icon\";s:21:\"admin/small/title.png\";s:5:\"extra\";N;}s:40:\"{weight}.Individual Suffixes (Jr, Sr...)\";a:6:{s:5:\"title\";s:31:\"Individual Suffixes (Jr, Sr...)\";s:4:\"desc\";s:61:\"Options for individual contact suffixes (e.g. Jr., Sr. etc.).\";s:2:\"id\";s:27:\"IndividualSuffixes_Jr_Sr...\";s:3:\"url\";s:48:\"/civicrm/admin/options/individual_suffix?reset=1\";s:4:\"icon\";s:18:\"admin/small/10.png\";s:5:\"extra\";N;}s:39:\"{weight}.Location Types (Home, Work...)\";a:6:{s:5:\"title\";s:30:\"Location Types (Home, Work...)\";s:4:\"desc\";s:94:\"Options for categorizing contact addresses and phone numbers (e.g. Home, Work, Billing, etc.).\";s:2:\"id\";s:26:\"LocationTypes_Home_Work...\";s:3:\"url\";s:35:\"/civicrm/admin/locationType?reset=1\";s:4:\"icon\";s:18:\"admin/small/13.png\";s:5:\"extra\";N;}s:22:\"{weight}.Website Types\";a:6:{s:5:\"title\";s:13:\"Website Types\";s:4:\"desc\";s:48:\"Options for assigning website types to contacts.\";s:2:\"id\";s:12:\"WebsiteTypes\";s:3:\"url\";s:43:\"/civicrm/admin/options/website_type?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:35:\"{weight}.Instant Messenger Services\";a:6:{s:5:\"title\";s:26:\"Instant Messenger Services\";s:4:\"desc\";s:79:\"List of IM services which can be used when recording screen-names for contacts.\";s:2:\"id\";s:24:\"InstantMessengerServices\";s:3:\"url\";s:56:\"/civicrm/admin/options/instant_messenger_service?reset=1\";s:4:\"icon\";s:18:\"admin/small/07.png\";s:5:\"extra\";N;}s:31:\"{weight}.Mobile Phone Providers\";a:6:{s:5:\"title\";s:22:\"Mobile Phone Providers\";s:4:\"desc\";s:90:\"List of mobile phone providers which can be assigned when recording contact phone numbers.\";s:2:\"id\";s:20:\"MobilePhoneProviders\";s:3:\"url\";s:46:\"/civicrm/admin/options/mobile_provider?reset=1\";s:4:\"icon\";s:18:\"admin/small/08.png\";s:5:\"extra\";N;}s:19:\"{weight}.Phone Type\";a:6:{s:5:\"title\";s:10:\"Phone Type\";s:4:\"desc\";s:80:\"Options for assigning phone type to contacts (e.g Phone,\n    Mobile, Fax, Pager)\";s:2:\"id\";s:9:\"PhoneType\";s:3:\"url\";s:41:\"/civicrm/admin/options/phone_type?reset=1\";s:4:\"icon\";s:7:\"tel.gif\";s:5:\"extra\";N;}s:28:\"{weight}.Display Preferences\";a:6:{s:5:\"title\";s:19:\"Display Preferences\";s:4:\"desc\";N;s:2:\"id\";s:18:\"DisplayPreferences\";s:3:\"url\";s:50:\"/civicrm/admin/setting/preferences/display?reset=1\";s:4:\"icon\";s:18:\"admin/small/36.png\";s:5:\"extra\";N;}s:27:\"{weight}.Search Preferences\";a:6:{s:5:\"title\";s:18:\"Search Preferences\";s:4:\"desc\";N;s:2:\"id\";s:17:\"SearchPreferences\";s:3:\"url\";s:37:\"/civicrm/admin/setting/search?reset=1\";s:4:\"icon\";s:18:\"admin/small/36.png\";s:5:\"extra\";N;}s:24:\"{weight}.Navigation Menu\";a:6:{s:5:\"title\";s:15:\"Navigation Menu\";s:4:\"desc\";s:79:\"Add or remove menu items, and modify the order of items on the navigation menu.\";s:2:\"id\";s:14:\"NavigationMenu\";s:3:\"url\";s:27:\"/civicrm/admin/menu?reset=1\";s:4:\"icon\";s:24:\"admin/small/template.png\";s:5:\"extra\";N;}s:26:\"{weight}.Word Replacements\";a:6:{s:5:\"title\";s:17:\"Word Replacements\";s:4:\"desc\";s:18:\"Word Replacements.\";s:2:\"id\";s:16:\"WordReplacements\";s:3:\"url\";s:47:\"/civicrm/admin/options/wordreplacements?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:31:\"{weight}.Manage Custom Searches\";a:6:{s:5:\"title\";s:22:\"Manage Custom Searches\";s:4:\"desc\";s:225:\"Developers and accidental techies with a bit of PHP and SQL knowledge can create new search forms to handle specific search and reporting needs which aren\'t covered by the built-in Advanced Search and Search Builder features.\";s:2:\"id\";s:20:\"ManageCustomSearches\";s:3:\"url\";s:44:\"/civicrm/admin/options/custom_search?reset=1\";s:4:\"icon\";s:24:\"admin/small/template.png\";s:5:\"extra\";N;}s:26:\"{weight}.Tags (Categories)\";a:6:{s:5:\"title\";s:17:\"Tags (Categories)\";s:4:\"desc\";s:158:\"Tags are useful for segmenting the contacts in your database into categories (e.g. Staff Member, Donor, Volunteer, etc.). Create and edit available tags here.\";s:2:\"id\";s:15:\"Tags_Categories\";s:3:\"url\";s:20:\"/civicrm/tag?reset=1\";s:4:\"icon\";s:18:\"admin/small/11.png\";s:5:\"extra\";N;}}s:9:\"perColumn\";d:10;}s:14:\"Communications\";a:3:{s:12:\"component_id\";N;s:6:\"fields\";a:11:{s:46:\"{weight}.Organization Address and Contact Info\";a:6:{s:5:\"title\";s:37:\"Organization Address and Contact Info\";s:4:\"desc\";s:150:\"Configure primary contact name, email, return-path and address information. This information is used by CiviMail to identify the sending organization.\";s:2:\"id\";s:33:\"OrganizationAddressandContactInfo\";s:3:\"url\";s:47:\"/civicrm/admin/domain?action=update&amp;reset=1\";s:4:\"icon\";s:22:\"admin/small/domain.png\";s:5:\"extra\";N;}s:29:\"{weight}.From Email Addresses\";a:6:{s:5:\"title\";s:20:\"From Email Addresses\";s:4:\"desc\";s:74:\"List of Email Addresses which can be used when sending emails to contacts.\";s:2:\"id\";s:18:\"FromEmailAddresses\";s:3:\"url\";s:49:\"/civicrm/admin/options/from_email_address?reset=1\";s:4:\"icon\";s:21:\"admin/small/title.png\";s:5:\"extra\";N;}s:26:\"{weight}.Message Templates\";a:6:{s:5:\"title\";s:17:\"Message Templates\";s:4:\"desc\";s:130:\"Message templates allow you to save and re-use messages with layouts which you can use when sending email to one or more contacts.\";s:2:\"id\";s:16:\"MessageTemplates\";s:3:\"url\";s:39:\"/civicrm/admin/messageTemplates?reset=1\";s:4:\"icon\";s:24:\"admin/small/template.png\";s:5:\"extra\";N;}s:27:\"{weight}.Schedule Reminders\";a:6:{s:5:\"title\";s:18:\"Schedule Reminders\";s:4:\"desc\";s:19:\"Schedule Reminders.\";s:2:\"id\";s:17:\"ScheduleReminders\";s:3:\"url\";s:40:\"/civicrm/admin/scheduleReminders?reset=1\";s:4:\"icon\";s:24:\"admin/small/template.png\";s:5:\"extra\";N;}s:40:\"{weight}.Preferred Communication Methods\";a:6:{s:5:\"title\";s:31:\"Preferred Communication Methods\";s:4:\"desc\";s:117:\"One or more preferred methods of communication can be assigned to each contact. Customize the available options here.\";s:2:\"id\";s:29:\"PreferredCommunicationMethods\";s:3:\"url\";s:61:\"/civicrm/admin/options/preferred_communication_method?reset=1\";s:4:\"icon\";s:29:\"admin/small/communication.png\";s:5:\"extra\";N;}s:22:\"{weight}.Label Formats\";a:6:{s:5:\"title\";s:13:\"Label Formats\";s:4:\"desc\";s:67:\"Configure Label Formats that are used when creating mailing labels.\";s:2:\"id\";s:12:\"LabelFormats\";s:3:\"url\";s:35:\"/civicrm/admin/labelFormats?reset=1\";s:4:\"icon\";s:24:\"admin/small/template.png\";s:5:\"extra\";N;}s:33:\"{weight}.Print Page (PDF) Formats\";a:6:{s:5:\"title\";s:24:\"Print Page (PDF) Formats\";s:4:\"desc\";s:95:\"Configure PDF Page Formats that can be assigned to Message Templates when creating PDF letters.\";s:2:\"id\";s:20:\"PrintPage_PDFFormats\";s:3:\"url\";s:33:\"/civicrm/admin/pdfFormats?reset=1\";s:4:\"icon\";s:24:\"admin/small/template.png\";s:5:\"extra\";N;}s:36:\"{weight}.Communication Style Options\";a:6:{s:5:\"title\";s:27:\"Communication Style Options\";s:4:\"desc\";s:42:\"Options for Communication Style selection.\";s:2:\"id\";s:25:\"CommunicationStyleOptions\";s:3:\"url\";s:50:\"/civicrm/admin/options/communication_style?reset=1\";s:4:\"icon\";s:18:\"admin/small/01.png\";s:5:\"extra\";N;}s:31:\"{weight}.Email Greeting Formats\";a:6:{s:5:\"title\";s:22:\"Email Greeting Formats\";s:4:\"desc\";s:75:\"Options for assigning email greetings to individual and household contacts.\";s:2:\"id\";s:20:\"EmailGreetingFormats\";s:3:\"url\";s:45:\"/civicrm/admin/options/email_greeting?reset=1\";s:4:\"icon\";s:18:\"admin/small/01.png\";s:5:\"extra\";N;}s:32:\"{weight}.Postal Greeting Formats\";a:6:{s:5:\"title\";s:23:\"Postal Greeting Formats\";s:4:\"desc\";s:76:\"Options for assigning postal greetings to individual and household contacts.\";s:2:\"id\";s:21:\"PostalGreetingFormats\";s:3:\"url\";s:46:\"/civicrm/admin/options/postal_greeting?reset=1\";s:4:\"icon\";s:18:\"admin/small/01.png\";s:5:\"extra\";N;}s:26:\"{weight}.Addressee Formats\";a:6:{s:5:\"title\";s:17:\"Addressee Formats\";s:4:\"desc\";s:83:\"Options for assigning addressee to individual, household and organization contacts.\";s:2:\"id\";s:16:\"AddresseeFormats\";s:3:\"url\";s:40:\"/civicrm/admin/options/addressee?reset=1\";s:4:\"icon\";s:18:\"admin/small/01.png\";s:5:\"extra\";N;}}s:9:\"perColumn\";d:6;}s:12:\"Localization\";a:3:{s:12:\"component_id\";N;s:6:\"fields\";a:4:{s:39:\"{weight}.Languages, Currency, Locations\";a:6:{s:5:\"title\";s:30:\"Languages, Currency, Locations\";s:4:\"desc\";N;s:2:\"id\";s:28:\"Languages_Currency_Locations\";s:3:\"url\";s:43:\"/civicrm/admin/setting/localization?reset=1\";s:4:\"icon\";s:18:\"admin/small/36.png\";s:5:\"extra\";N;}s:25:\"{weight}.Address Settings\";a:6:{s:5:\"title\";s:16:\"Address Settings\";s:4:\"desc\";N;s:2:\"id\";s:15:\"AddressSettings\";s:3:\"url\";s:50:\"/civicrm/admin/setting/preferences/address?reset=1\";s:4:\"icon\";s:18:\"admin/small/36.png\";s:5:\"extra\";N;}s:21:\"{weight}.Date Formats\";a:6:{s:5:\"title\";s:12:\"Date Formats\";s:4:\"desc\";N;s:2:\"id\";s:11:\"DateFormats\";s:3:\"url\";s:35:\"/civicrm/admin/setting/date?reset=1\";s:4:\"icon\";s:18:\"admin/small/36.png\";s:5:\"extra\";N;}s:28:\"{weight}.Preferred Languages\";a:6:{s:5:\"title\";s:19:\"Preferred Languages\";s:4:\"desc\";s:30:\"Options for contact languages.\";s:2:\"id\";s:18:\"PreferredLanguages\";s:3:\"url\";s:40:\"/civicrm/admin/options/languages?reset=1\";s:4:\"icon\";s:18:\"admin/small/36.png\";s:5:\"extra\";N;}}s:9:\"perColumn\";d:2;}s:21:\"Users and Permissions\";a:3:{s:12:\"component_id\";N;s:6:\"fields\";a:2:{s:23:\"{weight}.Access Control\";a:6:{s:5:\"title\";s:14:\"Access Control\";s:4:\"desc\";s:73:\"Grant or deny access to actions (view, edit...), features and components.\";s:2:\"id\";s:13:\"AccessControl\";s:3:\"url\";s:29:\"/civicrm/admin/access?reset=1\";s:4:\"icon\";s:18:\"admin/small/03.png\";s:5:\"extra\";N;}s:38:\"{weight}.Synchronize Users to Contacts\";a:6:{s:5:\"title\";s:29:\"Synchronize Users to Contacts\";s:4:\"desc\";s:71:\"Automatically create a CiviCRM contact record for each CMS user record.\";s:2:\"id\";s:26:\"SynchronizeUserstoContacts\";s:3:\"url\";s:32:\"/civicrm/admin/synchUser?reset=1\";s:4:\"icon\";s:26:\"admin/small/Synch_user.png\";s:5:\"extra\";N;}}s:9:\"perColumn\";d:1;}s:15:\"System Settings\";a:3:{s:12:\"component_id\";N;s:6:\"fields\";a:18:{s:32:\"{weight}.Configuration Checklist\";a:6:{s:5:\"title\";s:23:\"Configuration Checklist\";s:4:\"desc\";s:55:\"List of configuration tasks with links to each setting.\";s:2:\"id\";s:22:\"ConfigurationChecklist\";s:3:\"url\";s:33:\"/civicrm/admin/configtask?reset=1\";s:4:\"icon\";s:9:\"check.gif\";s:5:\"extra\";N;}s:34:\"{weight}.Enable CiviCRM Components\";a:6:{s:5:\"title\";s:25:\"Enable CiviCRM Components\";s:4:\"desc\";s:269:\"Enable or disable components (e.g. CiviEvent, CiviMember, etc.) for your site based on the features you need. We recommend disabling any components not being used in order to simplify the user interface. You can easily re-enable components at any time from this screen.\";s:2:\"id\";s:23:\"EnableCiviCRMComponents\";s:3:\"url\";s:40:\"/civicrm/admin/setting/component?reset=1\";s:4:\"icon\";s:18:\"admin/small/36.png\";s:5:\"extra\";N;}s:26:\"{weight}.Manage Extensions\";a:6:{s:5:\"title\";s:17:\"Manage Extensions\";s:4:\"desc\";s:0:\"\";s:2:\"id\";s:16:\"ManageExtensions\";s:3:\"url\";s:33:\"/civicrm/admin/extensions?reset=1\";s:4:\"icon\";s:26:\"admin/small/price_sets.png\";s:5:\"extra\";N;}s:32:\"{weight}.Outbound Email Settings\";a:6:{s:5:\"title\";s:23:\"Outbound Email Settings\";s:4:\"desc\";N;s:2:\"id\";s:21:\"OutboundEmailSettings\";s:3:\"url\";s:35:\"/civicrm/admin/setting/smtp?reset=1\";s:4:\"icon\";s:18:\"admin/small/07.png\";s:5:\"extra\";N;}s:37:\"{weight}.Settings - Payment Processor\";a:6:{s:5:\"title\";s:28:\"Settings - Payment Processor\";s:4:\"desc\";s:48:\"Payment Processor setup for CiviCRM transactions\";s:2:\"id\";s:25:\"Settings-PaymentProcessor\";s:3:\"url\";s:39:\"/civicrm/admin/paymentProcessor?reset=1\";s:4:\"icon\";s:41:\"admin/small/online_contribution_pages.png\";s:5:\"extra\";N;}s:30:\"{weight}.Mapping and Geocoding\";a:6:{s:5:\"title\";s:21:\"Mapping and Geocoding\";s:4:\"desc\";N;s:2:\"id\";s:19:\"MappingandGeocoding\";s:3:\"url\";s:38:\"/civicrm/admin/setting/mapping?reset=1\";s:4:\"icon\";s:18:\"admin/small/36.png\";s:5:\"extra\";N;}s:62:\"{weight}.Misc (Undelete, PDFs, Limits, Logging, Captcha, etc.)\";a:6:{s:5:\"title\";s:53:\"Misc (Undelete, PDFs, Limits, Logging, Captcha, etc.)\";s:4:\"desc\";s:91:\"Enable undelete/move to trash feature, detailed change logging, ReCAPTCHA to protect forms.\";s:2:\"id\";s:46:\"Misc_Undelete_PDFs_Limits_Logging_Captcha_etc.\";s:3:\"url\";s:35:\"/civicrm/admin/setting/misc?reset=1\";s:4:\"icon\";s:18:\"admin/small/36.png\";s:5:\"extra\";N;}s:20:\"{weight}.Directories\";a:6:{s:5:\"title\";s:11:\"Directories\";s:4:\"desc\";N;s:2:\"id\";s:11:\"Directories\";s:3:\"url\";s:35:\"/civicrm/admin/setting/path?reset=1\";s:4:\"icon\";s:18:\"admin/small/36.png\";s:5:\"extra\";N;}s:22:\"{weight}.Resource URLs\";a:6:{s:5:\"title\";s:13:\"Resource URLs\";s:4:\"desc\";N;s:2:\"id\";s:12:\"ResourceURLs\";s:3:\"url\";s:34:\"/civicrm/admin/setting/url?reset=1\";s:4:\"icon\";s:18:\"admin/small/36.png\";s:5:\"extra\";N;}s:40:\"{weight}.Cleanup Caches and Update Paths\";a:6:{s:5:\"title\";s:31:\"Cleanup Caches and Update Paths\";s:4:\"desc\";s:157:\"Reset the Base Directory Path and Base URL settings - generally when a CiviCRM site is moved to another location in the file system and/or to another domain.\";s:2:\"id\";s:27:\"CleanupCachesandUpdatePaths\";s:3:\"url\";s:50:\"/civicrm/admin/setting/updateConfigBackend?reset=1\";s:4:\"icon\";s:26:\"admin/small/updatepath.png\";s:5:\"extra\";N;}s:33:\"{weight}.CMS Database Integration\";a:6:{s:5:\"title\";s:24:\"CMS Database Integration\";s:4:\"desc\";N;s:2:\"id\";s:22:\"CMSDatabaseIntegration\";s:3:\"url\";s:33:\"/civicrm/admin/setting/uf?reset=1\";s:4:\"icon\";s:18:\"admin/small/36.png\";s:5:\"extra\";N;}s:36:\"{weight}.Safe File Extension Options\";a:6:{s:5:\"title\";s:27:\"Safe File Extension Options\";s:4:\"desc\";s:44:\"File Extensions that can be considered safe.\";s:2:\"id\";s:24:\"SafeFileExtensionOptions\";s:3:\"url\";s:50:\"/civicrm/admin/options/safe_file_extension?reset=1\";s:4:\"icon\";s:18:\"admin/small/01.png\";s:5:\"extra\";N;}s:22:\"{weight}.Option Groups\";a:6:{s:5:\"title\";s:13:\"Option Groups\";s:4:\"desc\";s:35:\"Access all meta-data option groups.\";s:2:\"id\";s:12:\"OptionGroups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";s:4:\"icon\";s:18:\"admin/small/01.png\";s:5:\"extra\";N;}s:31:\"{weight}.Import/Export Mappings\";a:6:{s:5:\"title\";s:22:\"Import/Export Mappings\";s:4:\"desc\";s:141:\"Import and Export mappings allow you to easily run the same job multiple times. This option allows you to rename or delete existing mappings.\";s:2:\"id\";s:21:\"Import_ExportMappings\";s:3:\"url\";s:30:\"/civicrm/admin/mapping?reset=1\";s:4:\"icon\";s:33:\"admin/small/import_export_map.png\";s:5:\"extra\";N;}s:18:\"{weight}.Debugging\";a:6:{s:5:\"title\";s:9:\"Debugging\";s:4:\"desc\";N;s:2:\"id\";s:9:\"Debugging\";s:3:\"url\";s:36:\"/civicrm/admin/setting/debug?reset=1\";s:4:\"icon\";s:18:\"admin/small/36.png\";s:5:\"extra\";N;}s:28:\"{weight}.Multi Site Settings\";a:6:{s:5:\"title\";s:19:\"Multi Site Settings\";s:4:\"desc\";N;s:2:\"id\";s:17:\"MultiSiteSettings\";s:3:\"url\";s:52:\"/civicrm/admin/setting/preferences/multisite?reset=1\";s:4:\"icon\";s:18:\"admin/small/36.png\";s:5:\"extra\";N;}s:23:\"{weight}.Scheduled Jobs\";a:6:{s:5:\"title\";s:14:\"Scheduled Jobs\";s:4:\"desc\";s:35:\"Managing periodially running tasks.\";s:2:\"id\";s:13:\"ScheduledJobs\";s:3:\"url\";s:26:\"/civicrm/admin/job?reset=1\";s:4:\"icon\";s:18:\"admin/small/13.png\";s:5:\"extra\";N;}s:22:\"{weight}.Sms Providers\";a:6:{s:5:\"title\";s:13:\"Sms Providers\";s:4:\"desc\";s:27:\"To configure a sms provider\";s:2:\"id\";s:12:\"SmsProviders\";s:3:\"url\";s:35:\"/civicrm/admin/sms/provider?reset=1\";s:4:\"icon\";s:18:\"admin/small/36.png\";s:5:\"extra\";N;}}s:9:\"perColumn\";d:9;}s:12:\"CiviCampaign\";a:3:{s:12:\"component_id\";N;s:6:\"fields\";a:5:{s:40:\"{weight}.CiviCampaign Component Settings\";a:6:{s:5:\"title\";s:31:\"CiviCampaign Component Settings\";s:4:\"desc\";s:40:\"Configure global CiviCampaign behaviors.\";s:2:\"id\";s:29:\"CiviCampaignComponentSettings\";s:3:\"url\";s:51:\"/civicrm/admin/setting/preferences/campaign?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:21:\"{weight}.Survey Types\";a:6:{s:5:\"title\";s:12:\"Survey Types\";s:4:\"desc\";N;s:2:\"id\";s:11:\"SurveyTypes\";s:3:\"url\";s:42:\"/civicrm/admin/campaign/surveyType?reset=1\";s:4:\"icon\";s:18:\"admin/small/05.png\";s:5:\"extra\";N;}s:23:\"{weight}.Campaign Types\";a:6:{s:5:\"title\";s:14:\"Campaign Types\";s:4:\"desc\";s:47:\"categorize your campaigns using campaign types.\";s:2:\"id\";s:13:\"CampaignTypes\";s:3:\"url\";s:44:\"/civicrm/admin/options/campaign_type?reset=1\";s:4:\"icon\";s:18:\"admin/small/05.png\";s:5:\"extra\";N;}s:24:\"{weight}.Campaign Status\";a:6:{s:5:\"title\";s:15:\"Campaign Status\";s:4:\"desc\";s:34:\"Define statuses for campaign here.\";s:2:\"id\";s:14:\"CampaignStatus\";s:3:\"url\";s:46:\"/civicrm/admin/options/campaign_status?reset=1\";s:4:\"icon\";s:18:\"admin/small/05.png\";s:5:\"extra\";N;}s:25:\"{weight}.Engagement Index\";a:6:{s:5:\"title\";s:16:\"Engagement Index\";s:4:\"desc\";s:18:\"Engagement levels.\";s:2:\"id\";s:15:\"EngagementIndex\";s:3:\"url\";s:47:\"/civicrm/admin/options/engagement_index?reset=1\";s:4:\"icon\";s:18:\"admin/small/05.png\";s:5:\"extra\";N;}}s:9:\"perColumn\";d:3;}s:9:\"CiviEvent\";a:3:{s:12:\"component_id\";N;s:6:\"fields\";a:9:{s:37:\"{weight}.CiviEvent Component Settings\";a:6:{s:5:\"title\";s:28:\"CiviEvent Component Settings\";s:4:\"desc\";s:37:\"Configure global CiviEvent behaviors.\";s:2:\"id\";s:26:\"CiviEventComponentSettings\";s:3:\"url\";s:48:\"/civicrm/admin/setting/preferences/event?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:33:\"{weight}.Event Name Badge Layouts\";a:6:{s:5:\"title\";s:24:\"Event Name Badge Layouts\";s:4:\"desc\";s:107:\"Configure name badge layouts for event participants, including logos and what data to include on the badge.\";s:2:\"id\";s:21:\"EventNameBadgeLayouts\";s:3:\"url\";s:52:\"/civicrm/admin/badgelayout?action=browse&amp;reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:22:\"{weight}.Manage Events\";a:6:{s:5:\"title\";s:13:\"Manage Events\";s:4:\"desc\";s:136:\"Create and edit event configuration including times, locations, online registration forms, and fees. Links for iCal and RSS syndication.\";s:2:\"id\";s:12:\"ManageEvents\";s:3:\"url\";s:28:\"/civicrm/admin/event?reset=1\";s:4:\"icon\";s:28:\"admin/small/event_manage.png\";s:5:\"extra\";N;}s:24:\"{weight}.Event Templates\";a:6:{s:5:\"title\";s:15:\"Event Templates\";s:4:\"desc\";s:115:\"Administrators can create Event Templates - which are basically master event records pre-filled with default values\";s:2:\"id\";s:14:\"EventTemplates\";s:3:\"url\";s:36:\"/civicrm/admin/eventTemplate?reset=1\";s:4:\"icon\";s:24:\"admin/small/template.png\";s:5:\"extra\";N;}s:20:\"{weight}.Event Types\";a:6:{s:5:\"title\";s:11:\"Event Types\";s:4:\"desc\";s:143:\"Use Event Types to categorize your events. Event feeds can be filtered by Event Type and participant searches can use Event Type as a criteria.\";s:2:\"id\";s:10:\"EventTypes\";s:3:\"url\";s:41:\"/civicrm/admin/options/event_type?reset=1\";s:4:\"icon\";s:26:\"admin/small/event_type.png\";s:5:\"extra\";N;}s:27:\"{weight}.Participant Status\";a:6:{s:5:\"title\";s:18:\"Participant Status\";s:4:\"desc\";s:154:\"Define statuses for event participants here (e.g. Registered, Attended, Cancelled...). You can then assign statuses and search for participants by status.\";s:2:\"id\";s:17:\"ParticipantStatus\";s:3:\"url\";s:41:\"/civicrm/admin/participant_status?reset=1\";s:4:\"icon\";s:28:\"admin/small/parti_status.png\";s:5:\"extra\";N;}s:25:\"{weight}.Participant Role\";a:6:{s:5:\"title\";s:16:\"Participant Role\";s:4:\"desc\";s:138:\"Define participant roles for events here (e.g. Attendee, Host, Speaker...). You can then assign roles and search for participants by role.\";s:2:\"id\";s:15:\"ParticipantRole\";s:3:\"url\";s:47:\"/civicrm/admin/options/participant_role?reset=1\";s:4:\"icon\";s:26:\"admin/small/parti_role.png\";s:5:\"extra\";N;}s:38:\"{weight}.Participant Listing Templates\";a:6:{s:5:\"title\";s:29:\"Participant Listing Templates\";s:4:\"desc\";s:48:\"Template to control participant listing display.\";s:2:\"id\";s:27:\"ParticipantListingTemplates\";s:3:\"url\";s:50:\"/civicrm/admin/options/participant_listing?reset=1\";s:4:\"icon\";s:18:\"admin/small/01.png\";s:5:\"extra\";N;}s:31:\"{weight}.Conference Slot Labels\";a:6:{s:5:\"title\";s:22:\"Conference Slot Labels\";s:4:\"desc\";s:35:\"Define conference slots and labels.\";s:2:\"id\";s:20:\"ConferenceSlotLabels\";s:3:\"url\";s:65:\"/civicrm/admin/conference_slots?group=conference_slot&amp;reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}}s:9:\"perColumn\";d:5;}s:8:\"CiviMail\";a:3:{s:12:\"component_id\";N;s:6:\"fields\";a:5:{s:36:\"{weight}.CiviMail Component Settings\";a:6:{s:5:\"title\";s:27:\"CiviMail Component Settings\";s:4:\"desc\";s:36:\"Configure global CiviMail behaviors.\";s:2:\"id\";s:25:\"CiviMailComponentSettings\";s:3:\"url\";s:50:\"/civicrm/admin/setting/preferences/mailing?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:24:\"{weight}.Mailer Settings\";a:6:{s:5:\"title\";s:15:\"Mailer Settings\";s:4:\"desc\";s:61:\"Configure spool period, throttling and other mailer settings.\";s:2:\"id\";s:14:\"MailerSettings\";s:3:\"url\";s:27:\"/civicrm/admin/mail?reset=1\";s:4:\"icon\";s:18:\"admin/small/07.png\";s:5:\"extra\";N;}s:49:\"{weight}.Headers, Footers, and Automated Messages\";a:6:{s:5:\"title\";s:40:\"Headers, Footers, and Automated Messages\";s:4:\"desc\";s:143:\"Configure the header and footer used for mailings. Customize the content of automated Subscribe, Unsubscribe, Resubscribe and Opt-out messages.\";s:2:\"id\";s:36:\"Headers_Footers_andAutomatedMessages\";s:3:\"url\";s:32:\"/civicrm/admin/component?reset=1\";s:4:\"icon\";s:23:\"admin/small/Profile.png\";s:5:\"extra\";N;}s:29:\"{weight}.From Email Addresses\";a:6:{s:5:\"title\";s:20:\"From Email Addresses\";s:4:\"desc\";s:74:\"List of Email Addresses which can be used when sending emails to contacts.\";s:2:\"id\";s:18:\"FromEmailAddresses\";s:3:\"url\";s:58:\"/civicrm/admin/options/from_email_address/civimail?reset=1\";s:4:\"icon\";s:21:\"admin/small/title.png\";s:5:\"extra\";N;}s:22:\"{weight}.Mail Accounts\";a:6:{s:5:\"title\";s:13:\"Mail Accounts\";s:4:\"desc\";s:32:\"Configure email account setting.\";s:2:\"id\";s:12:\"MailAccounts\";s:3:\"url\";s:35:\"/civicrm/admin/mailSettings?reset=1\";s:4:\"icon\";s:18:\"admin/small/07.png\";s:5:\"extra\";N;}}s:9:\"perColumn\";d:3;}s:10:\"CiviMember\";a:3:{s:12:\"component_id\";N;s:6:\"fields\";a:3:{s:38:\"{weight}.CiviMember Component Settings\";a:6:{s:5:\"title\";s:29:\"CiviMember Component Settings\";s:4:\"desc\";s:38:\"Configure global CiviMember behaviors.\";s:2:\"id\";s:27:\"CiviMemberComponentSettings\";s:3:\"url\";s:49:\"/civicrm/admin/setting/preferences/member?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:25:\"{weight}.Membership Types\";a:6:{s:5:\"title\";s:16:\"Membership Types\";s:4:\"desc\";s:174:\"Define the types of memberships you want to offer. For each type, you can specify a \'name\' (Gold Member, Honor Society Member...), a description, duration, and a minimum fee.\";s:2:\"id\";s:15:\"MembershipTypes\";s:3:\"url\";s:44:\"/civicrm/admin/member/membershipType?reset=1\";s:4:\"icon\";s:31:\"admin/small/membership_type.png\";s:5:\"extra\";N;}s:32:\"{weight}.Membership Status Rules\";a:6:{s:5:\"title\";s:23:\"Membership Status Rules\";s:4:\"desc\";s:187:\"Status \'rules\' define the current status for a membership based on that membership\'s start and end dates. You can adjust the default status options and rules as needed to meet your needs.\";s:2:\"id\";s:21:\"MembershipStatusRules\";s:3:\"url\";s:46:\"/civicrm/admin/member/membershipStatus?reset=1\";s:4:\"icon\";s:33:\"admin/small/membership_status.png\";s:5:\"extra\";N;}}s:9:\"perColumn\";d:2;}s:6:\"Manage\";a:3:{s:12:\"component_id\";N;s:6:\"fields\";a:3:{s:27:\"{weight}.Scheduled Jobs Log\";a:6:{s:5:\"title\";s:18:\"Scheduled Jobs Log\";s:4:\"desc\";s:46:\"Browsing the log of periodially running tasks.\";s:2:\"id\";s:16:\"ScheduledJobsLog\";s:3:\"url\";s:29:\"/civicrm/admin/joblog?reset=1\";s:4:\"icon\";s:18:\"admin/small/13.png\";s:5:\"extra\";N;}s:42:\"{weight}.Find and Merge Duplicate Contacts\";a:6:{s:5:\"title\";s:33:\"Find and Merge Duplicate Contacts\";s:4:\"desc\";s:158:\"Manage the rules used to identify potentially duplicate contact records. Scan for duplicates using a selected rule and merge duplicate contact data as needed.\";s:2:\"id\";s:29:\"FindandMergeDuplicateContacts\";s:3:\"url\";s:36:\"/civicrm/contact/deduperules?reset=1\";s:4:\"icon\";s:34:\"admin/small/duplicate_matching.png\";s:5:\"extra\";N;}s:26:\"{weight}.Dedupe Exceptions\";a:6:{s:5:\"title\";s:17:\"Dedupe Exceptions\";s:4:\"desc\";N;s:2:\"id\";s:16:\"DedupeExceptions\";s:3:\"url\";s:33:\"/civicrm/dedupe/exception?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}}s:9:\"perColumn\";d:2;}s:12:\"Option Lists\";a:3:{s:12:\"component_id\";N;s:6:\"fields\";a:1:{s:20:\"{weight}.Grant Types\";a:6:{s:5:\"title\";s:11:\"Grant Types\";s:4:\"desc\";s:148:\"List of types which can be assigned to Grants. (Enable CiviGrant from Administer > Systme Settings > Enable Components if you want to track grants.)\";s:2:\"id\";s:10:\"GrantTypes\";s:3:\"url\";s:41:\"/civicrm/admin/options/grant_type?reset=1\";s:4:\"icon\";s:26:\"admin/small/grant_type.png\";s:5:\"extra\";N;}}s:9:\"perColumn\";d:1;}s:9:\"Customize\";a:3:{s:12:\"component_id\";N;s:6:\"fields\";a:1:{s:19:\"{weight}.Price Sets\";a:6:{s:5:\"title\";s:10:\"Price Sets\";s:4:\"desc\";s:205:\"Price sets allow you to offer multiple options with associated fees (e.g. pre-conference workshops, additional meals, etc.). Configure Price Sets for events which need more than a single set of fee levels.\";s:2:\"id\";s:9:\"PriceSets\";s:3:\"url\";s:28:\"/civicrm/admin/price?reset=1\";s:4:\"icon\";s:26:\"admin/small/price_sets.png\";s:5:\"extra\";N;}}s:9:\"perColumn\";d:1;}s:8:\"CiviCase\";a:3:{s:12:\"component_id\";N;s:6:\"fields\";a:5:{s:26:\"{weight}.CiviCase Settings\";a:6:{s:5:\"title\";s:17:\"CiviCase Settings\";s:4:\"desc\";N;s:2:\"id\";s:16:\"CiviCaseSettings\";s:3:\"url\";s:35:\"/civicrm/admin/setting/case?reset=1\";s:4:\"icon\";s:18:\"admin/small/36.png\";s:5:\"extra\";N;}s:19:\"{weight}.Case Types\";a:6:{s:5:\"title\";s:10:\"Case Types\";s:4:\"desc\";s:137:\"List of types which can be assigned to Cases. (Enable the Cases tab from System Settings - Enable Components if you want to track cases.)\";s:2:\"id\";s:9:\"CaseTypes\";s:3:\"url\";s:40:\"/civicrm/admin/options/case_type?reset=1\";s:4:\"icon\";s:25:\"admin/small/case_type.png\";s:5:\"extra\";N;}s:24:\"{weight}.Redaction Rules\";a:6:{s:5:\"title\";s:15:\"Redaction Rules\";s:4:\"desc\";s:223:\"List of rules which can be applied to user input strings so that the redacted output can be recognized as repeated instances of the same string or can be identified as a \"semantic type of the data element\" within case data.\";s:2:\"id\";s:14:\"RedactionRules\";s:3:\"url\";s:45:\"/civicrm/admin/options/redaction_rule?reset=1\";s:4:\"icon\";s:30:\"admin/small/redaction_type.png\";s:5:\"extra\";N;}s:22:\"{weight}.Case Statuses\";a:6:{s:5:\"title\";s:13:\"Case Statuses\";s:4:\"desc\";s:48:\"List of statuses that can be assigned to a case.\";s:2:\"id\";s:12:\"CaseStatuses\";s:3:\"url\";s:42:\"/civicrm/admin/options/case_status?reset=1\";s:4:\"icon\";s:25:\"admin/small/case_type.png\";s:5:\"extra\";N;}s:26:\"{weight}.Encounter Mediums\";a:6:{s:5:\"title\";s:17:\"Encounter Mediums\";s:4:\"desc\";s:26:\"List of encounter mediums.\";s:2:\"id\";s:16:\"EncounterMediums\";s:3:\"url\";s:47:\"/civicrm/admin/options/encounter_medium?reset=1\";s:4:\"icon\";s:25:\"admin/small/case_type.png\";s:5:\"extra\";N;}}s:9:\"perColumn\";d:3;}s:10:\"CiviReport\";a:3:{s:12:\"component_id\";N;s:6:\"fields\";a:3:{s:40:\"{weight}.Create New Report from Template\";a:6:{s:5:\"title\";s:31:\"Create New Report from Template\";s:4:\"desc\";s:49:\"Component wise listing of all available templates\";s:2:\"id\";s:27:\"CreateNewReportfromTemplate\";s:3:\"url\";s:43:\"/civicrm/admin/report/template/list?reset=1\";s:4:\"icon\";s:31:\"admin/small/report_template.gif\";s:5:\"extra\";N;}s:25:\"{weight}.Manage Templates\";a:6:{s:5:\"title\";s:16:\"Manage Templates\";s:4:\"desc\";s:45:\"Browse, Edit and Delete the Report templates.\";s:2:\"id\";s:15:\"ManageTemplates\";s:3:\"url\";s:53:\"/civicrm/admin/report/options/report_template?reset=1\";s:4:\"icon\";s:24:\"admin/small/template.png\";s:5:\"extra\";N;}s:24:\"{weight}.Reports Listing\";a:6:{s:5:\"title\";s:15:\"Reports Listing\";s:4:\"desc\";s:60:\"Browse existing report, change report criteria and settings.\";s:2:\"id\";s:14:\"ReportsListing\";s:3:\"url\";s:34:\"/civicrm/admin/report/list?reset=1\";s:4:\"icon\";s:27:\"admin/small/report_list.gif\";s:5:\"extra\";N;}}s:9:\"perColumn\";d:2;}}',NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,1,1,NULL,'a:0:{}');
 /*!40000 ALTER TABLE `civicrm_menu` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -966,7 +966,7 @@ UNLOCK TABLES;
 
 LOCK TABLES `civicrm_msg_template` WRITE;
 /*!40000 ALTER TABLE `civicrm_msg_template` DISABLE KEYS */;
-INSERT INTO `civicrm_msg_template` (`id`, `msg_title`, `msg_subject`, `msg_text`, `msg_html`, `is_active`, `workflow_id`, `is_default`, `is_reserved`, `is_sms`, `pdf_format_id`) VALUES (1,'Cases - Send Copy of an Activity','{if $idHash}[case #{$idHash}]{/if} {$activitySubject}\n','===========================================================\n{ts}Activity Summary{/ts} - {$activityTypeName}\n===========================================================\n{if $isCaseActivity}\n{ts}Your Case Role(s){/ts} : {$contact.role}\n{if $manageCaseURL}\n{ts}Manage Case{/ts} : {$manageCaseURL}\n{/if}\n{/if}\n\n{if $editActURL}\n{ts}Edit activity{/ts} : {$editActURL}\n{/if}\n{if $viewActURL}\n{ts}View activity{/ts} : {$viewActURL}\n{/if}\n\n{foreach from=$activity.fields item=field}\n{if $field.type eq \'Date\'}\n{$field.label}{if $field.category}({$field.category}){/if} : {$field.value|crmDate:$config->dateformatDatetime}\n{else}\n{$field.label}{if $field.category}({$field.category}){/if} : {$field.value}\n{/if}\n{/foreach}\n\n{foreach from=$activity.customGroups key=customGroupName item=customGroup}\n==========================================================\n{$customGroupName}\n==========================================================\n{foreach from=$customGroup item=field}\n{if $field.type eq \'Date\'}\n{$field.label} : {$field.value|crmDate:$config->dateformatDatetime}\n{else}\n{$field.label} : {$field.value}\n{/if}\n{/foreach}\n\n{/foreach}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Activity Summary{/ts} - {$activityTypeName}\n      </th>\n     </tr>\n     {if $isCaseActivity}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Your Case Role(s){/ts}\n       </td>\n       <td {$valueStyle}>\n        {$contact.role}\n       </td>\n      </tr>\n      {if $manageCaseURL}\n       <tr>\n       <td colspan=\"2\" {$valueStyle}>\n     <a href=\"{$manageCaseURL}\" title=\"{ts}Manage Case{/ts}\">{ts}Manage Case{/ts}</a>\n       </td>\n       </tr>\n      {/if}\n     {/if}\n     {if $editActURL}\n     <tr>\n       <td colspan=\"2\" {$valueStyle}>\n   <a href=\"{$editActURL}\" title=\"{ts}Edit activity{/ts}\">{ts}Edit activity{/ts}</a>\n       </td>\n     </tr>\n     {/if}\n     {if $viewActURL}\n     <tr>\n       <td colspan=\"2\" {$valueStyle}>\n   <a href=\"{$viewActURL}\" title=\"{ts}View activity{/ts}\">{ts}View activity{/ts}</a>\n       </td>\n     </tr>\n     {/if}\n     {foreach from=$activity.fields item=field}\n      <tr>\n       <td {$labelStyle}>\n        {$field.label}{if $field.category}({$field.category}){/if}\n       </td>\n       <td {$valueStyle}>\n        {if $field.type eq \'Date\'}\n         {$field.value|crmDate:$config->dateformatDatetime}\n        {else}\n         {$field.value}\n        {/if}\n       </td>\n      </tr>\n     {/foreach}\n\n     {foreach from=$activity.customGroups key=customGroupName item=customGroup}\n      <tr>\n       <th {$headerStyle}>\n        {$customGroupName}\n       </th>\n      </tr>\n      {foreach from=$customGroup item=field}\n       <tr>\n        <td {$labelStyle}>\n         {$field.label}\n        </td>\n        <td {$valueStyle}>\n         {if $field.type eq \'Date\'}\n          {$field.value|crmDate:$config->dateformatDatetime}\n         {else}\n          {$field.value}\n         {/if}\n        </td>\n       </tr>\n      {/foreach}\n     {/foreach}\n    </table>\n   </td>\n  </tr>\n </table>\n</center>\n\n</body>\n</html>\n',1,819,1,0,0,NULL),(2,'Cases - Send Copy of an Activity','{if $idHash}[case #{$idHash}]{/if} {$activitySubject}\n','===========================================================\n{ts}Activity Summary{/ts} - {$activityTypeName}\n===========================================================\n{if $isCaseActivity}\n{ts}Your Case Role(s){/ts} : {$contact.role}\n{if $manageCaseURL}\n{ts}Manage Case{/ts} : {$manageCaseURL}\n{/if}\n{/if}\n\n{if $editActURL}\n{ts}Edit activity{/ts} : {$editActURL}\n{/if}\n{if $viewActURL}\n{ts}View activity{/ts} : {$viewActURL}\n{/if}\n\n{foreach from=$activity.fields item=field}\n{if $field.type eq \'Date\'}\n{$field.label}{if $field.category}({$field.category}){/if} : {$field.value|crmDate:$config->dateformatDatetime}\n{else}\n{$field.label}{if $field.category}({$field.category}){/if} : {$field.value}\n{/if}\n{/foreach}\n\n{foreach from=$activity.customGroups key=customGroupName item=customGroup}\n==========================================================\n{$customGroupName}\n==========================================================\n{foreach from=$customGroup item=field}\n{if $field.type eq \'Date\'}\n{$field.label} : {$field.value|crmDate:$config->dateformatDatetime}\n{else}\n{$field.label} : {$field.value}\n{/if}\n{/foreach}\n\n{/foreach}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Activity Summary{/ts} - {$activityTypeName}\n      </th>\n     </tr>\n     {if $isCaseActivity}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Your Case Role(s){/ts}\n       </td>\n       <td {$valueStyle}>\n        {$contact.role}\n       </td>\n      </tr>\n      {if $manageCaseURL}\n       <tr>\n       <td colspan=\"2\" {$valueStyle}>\n     <a href=\"{$manageCaseURL}\" title=\"{ts}Manage Case{/ts}\">{ts}Manage Case{/ts}</a>\n       </td>\n       </tr>\n      {/if}\n     {/if}\n     {if $editActURL}\n     <tr>\n       <td colspan=\"2\" {$valueStyle}>\n   <a href=\"{$editActURL}\" title=\"{ts}Edit activity{/ts}\">{ts}Edit activity{/ts}</a>\n       </td>\n     </tr>\n     {/if}\n     {if $viewActURL}\n     <tr>\n       <td colspan=\"2\" {$valueStyle}>\n   <a href=\"{$viewActURL}\" title=\"{ts}View activity{/ts}\">{ts}View activity{/ts}</a>\n       </td>\n     </tr>\n     {/if}\n     {foreach from=$activity.fields item=field}\n      <tr>\n       <td {$labelStyle}>\n        {$field.label}{if $field.category}({$field.category}){/if}\n       </td>\n       <td {$valueStyle}>\n        {if $field.type eq \'Date\'}\n         {$field.value|crmDate:$config->dateformatDatetime}\n        {else}\n         {$field.value}\n        {/if}\n       </td>\n      </tr>\n     {/foreach}\n\n     {foreach from=$activity.customGroups key=customGroupName item=customGroup}\n      <tr>\n       <th {$headerStyle}>\n        {$customGroupName}\n       </th>\n      </tr>\n      {foreach from=$customGroup item=field}\n       <tr>\n        <td {$labelStyle}>\n         {$field.label}\n        </td>\n        <td {$valueStyle}>\n         {if $field.type eq \'Date\'}\n          {$field.value|crmDate:$config->dateformatDatetime}\n         {else}\n          {$field.value}\n         {/if}\n        </td>\n       </tr>\n      {/foreach}\n     {/foreach}\n    </table>\n   </td>\n  </tr>\n </table>\n</center>\n\n</body>\n</html>\n',1,819,0,1,0,NULL),(3,'Contributions - Duplicate Organization Alert','{ts}CiviContribute Alert: Possible Duplicate Contact Record{/ts} - {contact.display_name}\n','{ts}A contribution / membership signup was made on behalf of the organization listed below.{/ts}\n{ts}The information provided matched multiple existing database records based on the configured Duplicate Matching Rules for your site.{/ts}\n\n{ts}Organization Name{/ts}: {$onBehalfName}\n{ts}Organization Email{/ts}: {$onBehalfEmail}\n{ts}Organization Contact ID{/ts}: {$onBehalfID}\n\n{ts}If you think this may be a duplicate contact which should be merged with an existing record - Go to \"Contacts >> Find and Merge Duplicate Contacts\". Use the strict rule for Organizations to find the potential duplicates and merge them if appropriate.{/ts}\n\n{if $receiptMessage}\n###########################################################\n{ts}Copy of Contribution Receipt{/ts}\n\n###########################################################\n{$receiptMessage}\n\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    <p>{ts}A contribution / membership signup was made on behalf of the organization listed below.{/ts}</p>\n    <p>{ts}The information provided matched multiple existing database records based on the configured Duplicate Matching Rules for your site.{/ts}</p>\n   </td>\n  </tr>\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <td {$labelStyle}>\n       {ts}Organization Name{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$onBehalfName}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Organization Email{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$onBehalfEmail}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Organization Contact ID{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$onBehalfID}\n      </td>\n     </tr>\n    </table>\n   </td>\n  </tr>\n  <tr>\n   <td>\n    <p>{ts}If you think this may be a duplicate contact which should be merged with an existing record - Go to \"Contacts >> Find and Merge Duplicate Contacts\". Use the strict rule for Organizations to find the potential duplicates and merge them if appropriate.{/ts}</p>\n   </td>\n  </tr>\n  {if $receiptMessage}\n   <tr>\n    <td>\n     <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n      <tr>\n       <th {$headerStyle}>\n        {ts}Copy of Contribution Receipt{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {* FIXME: the below is most probably not HTML-ised *}\n        {$receiptMessage}\n       </td>\n      </tr>\n     </table>\n    </td>\n   </tr>\n  {/if}\n </table>\n</center>\n\n</body>\n</html>\n',1,820,1,0,0,NULL),(4,'Contributions - Duplicate Organization Alert','{ts}CiviContribute Alert: Possible Duplicate Contact Record{/ts} - {contact.display_name}\n','{ts}A contribution / membership signup was made on behalf of the organization listed below.{/ts}\n{ts}The information provided matched multiple existing database records based on the configured Duplicate Matching Rules for your site.{/ts}\n\n{ts}Organization Name{/ts}: {$onBehalfName}\n{ts}Organization Email{/ts}: {$onBehalfEmail}\n{ts}Organization Contact ID{/ts}: {$onBehalfID}\n\n{ts}If you think this may be a duplicate contact which should be merged with an existing record - Go to \"Contacts >> Find and Merge Duplicate Contacts\". Use the strict rule for Organizations to find the potential duplicates and merge them if appropriate.{/ts}\n\n{if $receiptMessage}\n###########################################################\n{ts}Copy of Contribution Receipt{/ts}\n\n###########################################################\n{$receiptMessage}\n\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    <p>{ts}A contribution / membership signup was made on behalf of the organization listed below.{/ts}</p>\n    <p>{ts}The information provided matched multiple existing database records based on the configured Duplicate Matching Rules for your site.{/ts}</p>\n   </td>\n  </tr>\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <td {$labelStyle}>\n       {ts}Organization Name{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$onBehalfName}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Organization Email{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$onBehalfEmail}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Organization Contact ID{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$onBehalfID}\n      </td>\n     </tr>\n    </table>\n   </td>\n  </tr>\n  <tr>\n   <td>\n    <p>{ts}If you think this may be a duplicate contact which should be merged with an existing record - Go to \"Contacts >> Find and Merge Duplicate Contacts\". Use the strict rule for Organizations to find the potential duplicates and merge them if appropriate.{/ts}</p>\n   </td>\n  </tr>\n  {if $receiptMessage}\n   <tr>\n    <td>\n     <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n      <tr>\n       <th {$headerStyle}>\n        {ts}Copy of Contribution Receipt{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {* FIXME: the below is most probably not HTML-ised *}\n        {$receiptMessage}\n       </td>\n      </tr>\n     </table>\n    </td>\n   </tr>\n  {/if}\n </table>\n</center>\n\n</body>\n</html>\n',1,820,0,1,0,NULL),(5,'Contributions - Receipt (off-line)','{ts}Contribution Receipt{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{if $formValues.receipt_text}\n{$formValues.receipt_text}\n{else}{ts}Below you will find a receipt for this contribution.{/ts}{/if}\n\n===========================================================\n{ts}Contribution Information{/ts}\n\n===========================================================\n{ts}Financial Type{/ts}: {$formValues.contributionType_name}\n{if $lineItem}\n{foreach from=$lineItem item=value key=priceset}\n---------------------------------------------------------\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_qty}{ts}Qty{/ts}{/capture}\n{capture assign=ts_each}{ts}Each{/ts}{/capture}\n{if $getTaxDetails}\n{capture assign=ts_subtotal}{ts}Subtotal{/ts}{/capture}\n{capture assign=ts_taxRate}{ts}Tax Rate{/ts}{/capture}\n{capture assign=ts_taxAmount}{ts}Tax Amount{/ts}{/capture}\n{/if}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_qty|string_format:\"%5s\"} {$ts_each|string_format:\"%10s\"} {if $getTaxDetails} {$ts_subtotal|string_format:\"%10s\"} {$ts_taxRate} {$ts_taxAmount|string_format:\"%10s\"} {/if} {$ts_total|string_format:\"%10s\"}\n----------------------------------------------------------\n{foreach from=$value item=line}\n{capture assign=ts_item}{if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description} {$line.description}{/if}{/capture}{$ts_item|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.qty|string_format:\"%5s\"} {$line.unit_price|crmMoney:$currency|string_format:\"%10s\"} {if $getTaxDetails}{$line.unit_price*$line.qty|crmMoney:$currency|string_format:\"%10s\"} {if $line.tax_rate != \"\" || $line.tax_amount != \"\"} {$line.tax_rate|string_format:\"%.2f\"} %   {$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"} {else}                  {/if} {/if}   {$line.line_total+$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"}\n{/foreach}\n{/foreach}\n{/if}\n\n{if $getTaxDetails && $dataArray}\n{ts}Amount before Tax{/ts} : {$formValues.total_amount-$totalTaxAmount|crmMoney:$currency}\n\n{foreach from=$dataArray item=value key=priceset}\n{if $priceset ||  $priceset == 0 || $value != \'\'}\n{$taxTerm} {$priceset|string_format:\"%.2f\"}% : {$value|crmMoney:$currency}\n{else}\n{ts}No{/ts} {$taxTerm} : {$value|crmMoney:$currency}\n{/if}\n{/foreach}\n{/if}\n\n{if isset($totalTaxAmount) && $totalTaxAmount !== \'null\'}\n{ts}Total Tax Amount{/ts} : {$totalTaxAmount|crmMoney:$currency}\n{/if}\n{ts}Total Amount{/ts} : {$formValues.total_amount|crmMoney:$currency}\n{if $receive_date}\n{ts}Date Received{/ts}: {$receive_date|truncate:10:\'\'|crmDate}\n{/if}\n{if $receipt_date}\n{ts}Receipt Date{/ts}: {$receipt_date|truncate:10:\'\'|crmDate}\n{/if}\n{if $formValues.paidBy and !$formValues.hidden_CreditCard}\n{ts}Paid By{/ts}: {$formValues.paidBy}\n{if $formValues.check_number}\n{ts}Check Number{/ts}: {$formValues.check_number}\n{/if}\n{/if}\n{if $formValues.trxn_id}\n{ts}Transaction ID{/ts}: {$formValues.trxn_id}\n{/if}\n\n{if $ccContribution}\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billingName}\n{$address}\n\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n{if $customGroup}\n{foreach from=$customGroup item=value key=customName}\n===========================================================\n{$customName}\n===========================================================\n{foreach from=$value item=v key=n}\n{$n}: {$v}\n{/foreach}\n{/foreach}\n{/if}\n\n{if $softCreditTypes and $softCredits}\n{foreach from=$softCreditTypes item=softCreditType key=n}\n===========================================================\n{$softCreditType}\n===========================================================\n{foreach from=$softCredits.$n item=value key=label}\n{$label}: {$value}\n{/foreach}\n{/foreach}\n{/if}\n\n{if $formValues.product_name}\n===========================================================\n{ts}Premium Information{/ts}\n\n===========================================================\n{$formValues.product_name}\n{if $formValues.product_option}\n{ts}Option{/ts}: {$formValues.product_option}\n{/if}\n{if $formValues.product_sku}\n{ts}SKU{/ts}: {$formValues.product_sku}\n{/if}\n{if $fulfilled_date}\n{ts}Sent{/ts}: {$fulfilled_date|crmDate}\n{/if}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    {if $formValues.receipt_text}\n     <p>{$formValues.receipt_text|htmlize}</p>\n    {else}\n     <p>{ts}Below you will find a receipt for this contribution.{/ts}</p>\n    {/if}\n   </td>\n  </tr>\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Contribution Information{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Financial Type{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$formValues.contributionType_name}\n      </td>\n     </tr>\n\n     {if $lineItem and !$is_quick_config}\n      {foreach from=$lineItem item=value key=priceset}\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         <table> {* FIXME: style this table so that it looks like the text version (justification, etc.) *}\n          <tr>\n           <th>{ts}Item{/ts}</th>\n           <th>{ts}Qty{/ts}</th>\n           <th>{ts}Each{/ts}</th>\n           {if $getTaxDetails}\n             <th>{ts}Subtotal{/ts}</th>\n             <th>{ts}Tax Rate{/ts}</th>\n             <th>{ts}Tax Amount{/ts}</th>\n           {/if}\n           <th>{ts}Total{/ts}</th>\n          </tr>\n          {foreach from=$value item=line}\n           <tr>\n            <td>\n            {if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description}<div>{$line.description|truncate:30:\"...\"}</div>{/if}\n            </td>\n            <td>\n             {$line.qty}\n            </td>\n            <td>\n             {$line.unit_price|crmMoney:$currency}\n            </td>\n            {if $getTaxDetails}\n              <td>\n                {$line.unit_price*$line.qty|crmMoney:$currency}\n              </td>\n              {if $line.tax_rate != \"\" || $line.tax_amount != \"\"}\n                <td>\n                  {$line.tax_rate|string_format:\"%.2f\"}%\n                </td>\n                <td>\n                  {$line.tax_amount|crmMoney:$currency}\n                </td>\n              {else}\n                <td></td>\n                <td></td>\n              {/if}\n            {/if}\n            <td>\n             {$line.line_total+$line.tax_amount|crmMoney:$currency}\n            </td>\n           </tr>\n          {/foreach}\n         </table>\n        </td>\n       </tr>\n      {/foreach}\n     {/if}\n     {if $getTaxDetails && $dataArray}\n       <tr>\n         <td {$labelStyle}>\n           {ts} Amount before Tax : {/ts}\n         </td>\n         <td {$valueStyle}>\n           {$formValues.total_amount-$totalTaxAmount|crmMoney:$currency}\n         </td>\n       </tr>\n\n      {foreach from=$dataArray item=value key=priceset}\n        <tr>\n        {if $priceset ||  $priceset == 0 || $value != \'\'}\n          <td>&nbsp;{$taxTerm} {$priceset|string_format:\"%.2f\"}%</td>\n          <td>&nbsp;{$value|crmMoney:$currency}</td>\n        {else}\n          <td>&nbsp;{ts}No{/ts} {$taxTerm}</td>\n          <td>&nbsp;{$value|crmMoney:$currency}</td>\n        {/if}\n        </tr>\n      {/foreach}\n     {/if}\n\n     {if isset($totalTaxAmount) && $totalTaxAmount !== \'null\'}\n      <tr>\n        <td {$labelStyle}>\n          {ts}Total Tax Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n          {$totalTaxAmount|crmMoney:$currency}\n        </td>\n      </tr>\n     {/if}\n\n     <tr>\n      <td {$labelStyle}>\n       {ts}Total Amount{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$formValues.total_amount|crmMoney:$currency}\n      </td>\n     </tr>\n\n     {if $receive_date}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Date Received{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$receive_date|truncate:10:\'\'|crmDate}\n       </td>\n      </tr>\n     {/if}\n\n      {if $receipt_date}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Receipt Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$receipt_date|truncate:10:\'\'|crmDate}\n       </td>\n      </tr>\n     {/if}\n\n     {if $formValues.paidBy and !$formValues.hidden_CreditCard}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Paid By{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$formValues.paidBy}\n       </td>\n      </tr>\n      {if $formValues.check_number}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Check Number{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$formValues.check_number}\n        </td>\n       </tr>\n      {/if}\n     {/if}\n\n     {if $formValues.trxn_id}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Transaction ID{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$formValues.trxn_id}\n       </td>\n      </tr>\n     {/if}\n\n     {if $ccContribution}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Billing Name and Address{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$billingName}<br />\n        {$address|nl2br}\n       </td>\n      </tr>\n      <tr>\n       <th {$headerStyle}>\n        {ts}Credit Card Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$credit_card_type}<br />\n        {$credit_card_number}<br />\n        {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n       </td>\n      </tr>\n     {/if}\n\n     {if $softCreditTypes and $softCredits}\n      {foreach from=$softCreditTypes item=softCreditType key=n}\n       <tr>\n        <th {$headerStyle}>\n         {$softCreditType}\n        </th>\n       </tr>\n       {foreach from=$softCredits.$n item=value key=label}\n         <tr>\n          <td {$labelStyle}>\n           {$label}\n          </td>\n          <td {$valueStyle}>\n           {$value}\n          </td>\n         </tr>\n        {/foreach}\n       {/foreach}\n     {/if}\n\n     {if $customGroup}\n      {foreach from=$customGroup item=value key=customName}\n       <tr>\n        <th {$headerStyle}>\n         {$customName}\n        </th>\n       </tr>\n       {foreach from=$value item=v key=n}\n        <tr>\n         <td {$labelStyle}>\n          {$n}\n         </td>\n         <td {$valueStyle}>\n          {$v}\n         </td>\n        </tr>\n       {/foreach}\n      {/foreach}\n     {/if}\n\n     {if $formValues.product_name}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Premium Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n        {$formValues.product_name}\n       </td>\n      </tr>\n      {if $formValues.product_option}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Option{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$formValues.product_option}\n        </td>\n       </tr>\n      {/if}\n      {if $formValues.product_sku}\n       <tr>\n        <td {$labelStyle}>\n         {ts}SKU{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$formValues.product_sku}\n        </td>\n       </tr>\n      {/if}\n      {if $fulfilled_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Sent{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$fulfilled_date|truncate:10:\'\'|crmDate}\n        </td>\n       </tr>\n      {/if}\n     {/if}\n\n    </table>\n   </td>\n  </tr>\n\n </table>\n</center>\n\n</body>\n</html>\n',1,821,1,0,0,NULL),(6,'Contributions - Receipt (off-line)','{ts}Contribution Receipt{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{if $formValues.receipt_text}\n{$formValues.receipt_text}\n{else}{ts}Below you will find a receipt for this contribution.{/ts}{/if}\n\n===========================================================\n{ts}Contribution Information{/ts}\n\n===========================================================\n{ts}Financial Type{/ts}: {$formValues.contributionType_name}\n{if $lineItem}\n{foreach from=$lineItem item=value key=priceset}\n---------------------------------------------------------\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_qty}{ts}Qty{/ts}{/capture}\n{capture assign=ts_each}{ts}Each{/ts}{/capture}\n{if $getTaxDetails}\n{capture assign=ts_subtotal}{ts}Subtotal{/ts}{/capture}\n{capture assign=ts_taxRate}{ts}Tax Rate{/ts}{/capture}\n{capture assign=ts_taxAmount}{ts}Tax Amount{/ts}{/capture}\n{/if}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_qty|string_format:\"%5s\"} {$ts_each|string_format:\"%10s\"} {if $getTaxDetails} {$ts_subtotal|string_format:\"%10s\"} {$ts_taxRate} {$ts_taxAmount|string_format:\"%10s\"} {/if} {$ts_total|string_format:\"%10s\"}\n----------------------------------------------------------\n{foreach from=$value item=line}\n{capture assign=ts_item}{if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description} {$line.description}{/if}{/capture}{$ts_item|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.qty|string_format:\"%5s\"} {$line.unit_price|crmMoney:$currency|string_format:\"%10s\"} {if $getTaxDetails}{$line.unit_price*$line.qty|crmMoney:$currency|string_format:\"%10s\"} {if $line.tax_rate != \"\" || $line.tax_amount != \"\"} {$line.tax_rate|string_format:\"%.2f\"} %   {$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"} {else}                  {/if} {/if}   {$line.line_total+$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"}\n{/foreach}\n{/foreach}\n{/if}\n\n{if $getTaxDetails && $dataArray}\n{ts}Amount before Tax{/ts} : {$formValues.total_amount-$totalTaxAmount|crmMoney:$currency}\n\n{foreach from=$dataArray item=value key=priceset}\n{if $priceset ||  $priceset == 0 || $value != \'\'}\n{$taxTerm} {$priceset|string_format:\"%.2f\"}% : {$value|crmMoney:$currency}\n{else}\n{ts}No{/ts} {$taxTerm} : {$value|crmMoney:$currency}\n{/if}\n{/foreach}\n{/if}\n\n{if isset($totalTaxAmount) && $totalTaxAmount !== \'null\'}\n{ts}Total Tax Amount{/ts} : {$totalTaxAmount|crmMoney:$currency}\n{/if}\n{ts}Total Amount{/ts} : {$formValues.total_amount|crmMoney:$currency}\n{if $receive_date}\n{ts}Date Received{/ts}: {$receive_date|truncate:10:\'\'|crmDate}\n{/if}\n{if $receipt_date}\n{ts}Receipt Date{/ts}: {$receipt_date|truncate:10:\'\'|crmDate}\n{/if}\n{if $formValues.paidBy and !$formValues.hidden_CreditCard}\n{ts}Paid By{/ts}: {$formValues.paidBy}\n{if $formValues.check_number}\n{ts}Check Number{/ts}: {$formValues.check_number}\n{/if}\n{/if}\n{if $formValues.trxn_id}\n{ts}Transaction ID{/ts}: {$formValues.trxn_id}\n{/if}\n\n{if $ccContribution}\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billingName}\n{$address}\n\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n{if $customGroup}\n{foreach from=$customGroup item=value key=customName}\n===========================================================\n{$customName}\n===========================================================\n{foreach from=$value item=v key=n}\n{$n}: {$v}\n{/foreach}\n{/foreach}\n{/if}\n\n{if $softCreditTypes and $softCredits}\n{foreach from=$softCreditTypes item=softCreditType key=n}\n===========================================================\n{$softCreditType}\n===========================================================\n{foreach from=$softCredits.$n item=value key=label}\n{$label}: {$value}\n{/foreach}\n{/foreach}\n{/if}\n\n{if $formValues.product_name}\n===========================================================\n{ts}Premium Information{/ts}\n\n===========================================================\n{$formValues.product_name}\n{if $formValues.product_option}\n{ts}Option{/ts}: {$formValues.product_option}\n{/if}\n{if $formValues.product_sku}\n{ts}SKU{/ts}: {$formValues.product_sku}\n{/if}\n{if $fulfilled_date}\n{ts}Sent{/ts}: {$fulfilled_date|crmDate}\n{/if}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    {if $formValues.receipt_text}\n     <p>{$formValues.receipt_text|htmlize}</p>\n    {else}\n     <p>{ts}Below you will find a receipt for this contribution.{/ts}</p>\n    {/if}\n   </td>\n  </tr>\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Contribution Information{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Financial Type{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$formValues.contributionType_name}\n      </td>\n     </tr>\n\n     {if $lineItem and !$is_quick_config}\n      {foreach from=$lineItem item=value key=priceset}\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         <table> {* FIXME: style this table so that it looks like the text version (justification, etc.) *}\n          <tr>\n           <th>{ts}Item{/ts}</th>\n           <th>{ts}Qty{/ts}</th>\n           <th>{ts}Each{/ts}</th>\n           {if $getTaxDetails}\n             <th>{ts}Subtotal{/ts}</th>\n             <th>{ts}Tax Rate{/ts}</th>\n             <th>{ts}Tax Amount{/ts}</th>\n           {/if}\n           <th>{ts}Total{/ts}</th>\n          </tr>\n          {foreach from=$value item=line}\n           <tr>\n            <td>\n            {if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description}<div>{$line.description|truncate:30:\"...\"}</div>{/if}\n            </td>\n            <td>\n             {$line.qty}\n            </td>\n            <td>\n             {$line.unit_price|crmMoney:$currency}\n            </td>\n            {if $getTaxDetails}\n              <td>\n                {$line.unit_price*$line.qty|crmMoney:$currency}\n              </td>\n              {if $line.tax_rate != \"\" || $line.tax_amount != \"\"}\n                <td>\n                  {$line.tax_rate|string_format:\"%.2f\"}%\n                </td>\n                <td>\n                  {$line.tax_amount|crmMoney:$currency}\n                </td>\n              {else}\n                <td></td>\n                <td></td>\n              {/if}\n            {/if}\n            <td>\n             {$line.line_total+$line.tax_amount|crmMoney:$currency}\n            </td>\n           </tr>\n          {/foreach}\n         </table>\n        </td>\n       </tr>\n      {/foreach}\n     {/if}\n     {if $getTaxDetails && $dataArray}\n       <tr>\n         <td {$labelStyle}>\n           {ts} Amount before Tax : {/ts}\n         </td>\n         <td {$valueStyle}>\n           {$formValues.total_amount-$totalTaxAmount|crmMoney:$currency}\n         </td>\n       </tr>\n\n      {foreach from=$dataArray item=value key=priceset}\n        <tr>\n        {if $priceset ||  $priceset == 0 || $value != \'\'}\n          <td>&nbsp;{$taxTerm} {$priceset|string_format:\"%.2f\"}%</td>\n          <td>&nbsp;{$value|crmMoney:$currency}</td>\n        {else}\n          <td>&nbsp;{ts}No{/ts} {$taxTerm}</td>\n          <td>&nbsp;{$value|crmMoney:$currency}</td>\n        {/if}\n        </tr>\n      {/foreach}\n     {/if}\n\n     {if isset($totalTaxAmount) && $totalTaxAmount !== \'null\'}\n      <tr>\n        <td {$labelStyle}>\n          {ts}Total Tax Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n          {$totalTaxAmount|crmMoney:$currency}\n        </td>\n      </tr>\n     {/if}\n\n     <tr>\n      <td {$labelStyle}>\n       {ts}Total Amount{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$formValues.total_amount|crmMoney:$currency}\n      </td>\n     </tr>\n\n     {if $receive_date}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Date Received{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$receive_date|truncate:10:\'\'|crmDate}\n       </td>\n      </tr>\n     {/if}\n\n      {if $receipt_date}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Receipt Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$receipt_date|truncate:10:\'\'|crmDate}\n       </td>\n      </tr>\n     {/if}\n\n     {if $formValues.paidBy and !$formValues.hidden_CreditCard}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Paid By{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$formValues.paidBy}\n       </td>\n      </tr>\n      {if $formValues.check_number}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Check Number{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$formValues.check_number}\n        </td>\n       </tr>\n      {/if}\n     {/if}\n\n     {if $formValues.trxn_id}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Transaction ID{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$formValues.trxn_id}\n       </td>\n      </tr>\n     {/if}\n\n     {if $ccContribution}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Billing Name and Address{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$billingName}<br />\n        {$address|nl2br}\n       </td>\n      </tr>\n      <tr>\n       <th {$headerStyle}>\n        {ts}Credit Card Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$credit_card_type}<br />\n        {$credit_card_number}<br />\n        {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n       </td>\n      </tr>\n     {/if}\n\n     {if $softCreditTypes and $softCredits}\n      {foreach from=$softCreditTypes item=softCreditType key=n}\n       <tr>\n        <th {$headerStyle}>\n         {$softCreditType}\n        </th>\n       </tr>\n       {foreach from=$softCredits.$n item=value key=label}\n         <tr>\n          <td {$labelStyle}>\n           {$label}\n          </td>\n          <td {$valueStyle}>\n           {$value}\n          </td>\n         </tr>\n        {/foreach}\n       {/foreach}\n     {/if}\n\n     {if $customGroup}\n      {foreach from=$customGroup item=value key=customName}\n       <tr>\n        <th {$headerStyle}>\n         {$customName}\n        </th>\n       </tr>\n       {foreach from=$value item=v key=n}\n        <tr>\n         <td {$labelStyle}>\n          {$n}\n         </td>\n         <td {$valueStyle}>\n          {$v}\n         </td>\n        </tr>\n       {/foreach}\n      {/foreach}\n     {/if}\n\n     {if $formValues.product_name}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Premium Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n        {$formValues.product_name}\n       </td>\n      </tr>\n      {if $formValues.product_option}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Option{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$formValues.product_option}\n        </td>\n       </tr>\n      {/if}\n      {if $formValues.product_sku}\n       <tr>\n        <td {$labelStyle}>\n         {ts}SKU{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$formValues.product_sku}\n        </td>\n       </tr>\n      {/if}\n      {if $fulfilled_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Sent{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$fulfilled_date|truncate:10:\'\'|crmDate}\n        </td>\n       </tr>\n      {/if}\n     {/if}\n\n    </table>\n   </td>\n  </tr>\n\n </table>\n</center>\n\n</body>\n</html>\n',1,821,0,1,0,NULL),(7,'Contributions - Receipt (on-line)','{if $is_pay_later}{ts}Invoice{/ts}{else}{ts}Receipt{/ts}{/if} - {$title} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n{if $receipt_text}\n{$receipt_text}\n{/if}\n{if $is_pay_later}\n\n===========================================================\n{$pay_later_receipt}\n===========================================================\n{/if}\n\n{if $amount}\n===========================================================\n{ts}Contribution Information{/ts}\n\n===========================================================\n{if $lineItem and $priceSetID and !$is_quick_config}\n{foreach from=$lineItem item=value key=priceset}\n---------------------------------------------------------\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_qty}{ts}Qty{/ts}{/capture}\n{capture assign=ts_each}{ts}Each{/ts}{/capture}\n{if $dataArray}\n{capture assign=ts_subtotal}{ts}Subtotal{/ts}{/capture}\n{capture assign=ts_taxRate}{ts}Tax Rate{/ts}{/capture}\n{capture assign=ts_taxAmount}{ts}Tax Amount{/ts}{/capture}\n{/if}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_qty|string_format:\"%5s\"} {$ts_each|string_format:\"%10s\"} {if $dataArray} {$ts_subtotal|string_format:\"%10s\"} {$ts_taxRate} {$ts_taxAmount|string_format:\"%10s\"} {/if} {$ts_total|string_format:\"%10s\"}\n----------------------------------------------------------\n{foreach from=$value item=line}\n{capture assign=ts_item}{if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description} {$line.description}{/if}{/capture}{$ts_item|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.qty|string_format:\"%5s\"} {$line.unit_price|crmMoney:$currency|string_format:\"%10s\"} {if $dataArray}{$line.unit_price*$line.qty|crmMoney:$currency|string_format:\"%10s\"} {if $line.tax_rate != \"\" || $line.tax_amount != \"\"}  {$line.tax_rate|string_format:\"%.2f\"} %  {$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"} {else}                  {/if}  {/if} {$line.line_total+$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"}\n{/foreach}\n{/foreach}\n\n{if $dataArray}\n{ts}Amount before Tax{/ts}: {$amount-$totalTaxAmount|crmMoney:$currency}\n\n{foreach from=$dataArray item=value key=priceset}\n{if $priceset || $priceset == 0}\n{$taxTerm} {$priceset|string_format:\"%.2f\"}%: {$value|crmMoney:$currency}\n{else}\n{ts}No{/ts} {$taxTerm}: {$value|crmMoney:$currency}\n{/if}\n{/foreach}\n{/if}\n\n{if $totalTaxAmount}\n{ts}Total Tax Amount{/ts}: {$totalTaxAmount|crmMoney:$currency}\n{/if}\n\n{ts}Total Amount{/ts}: {$amount|crmMoney:$currency}\n{else}\n{ts}Amount{/ts}: {$amount|crmMoney:$currency} {if $amount_level } - {$amount_level} {/if}\n{/if}\n{/if}\n{if $receive_date}\n\n{ts}Date{/ts}: {$receive_date|crmDate}\n{/if}\n{if $is_monetary and $trxn_id}\n{ts}Transaction #{/ts}: {$trxn_id}\n{/if}\n\n{if $is_recur}\n{ts}This is a recurring contribution.{/ts}\n\n{if $cancelSubscriptionUrl}\n{ts}You can cancel future contributions at:{/ts}\n\n{$cancelSubscriptionUrl}\n\n{/if}\n\n{if $updateSubscriptionBillingUrl}\n{ts}You can update billing details for this recurring contribution at:{/ts}\n\n{$updateSubscriptionBillingUrl}\n\n{/if}\n\n{if $updateSubscriptionUrl}\n{ts}You can update recurring contribution amount or change the number of installments for this recurring contribution at:{/ts}\n\n{$updateSubscriptionUrl}\n\n{/if}\n{/if}\n\n{if $honor_block_is_active}\n===========================================================\n{$soft_credit_type}\n===========================================================\n{foreach from=$honoreeProfile item=value key=label}\n{$label}: {$value}\n{/foreach}\n{elseif $softCreditTypes and $softCredits}\n{foreach from=$softCreditTypes item=softCreditType key=n}\n===========================================================\n{$softCreditType}\n===========================================================\n{foreach from=$softCredits.$n item=value key=label}\n{$label}: {$value}\n{/foreach}\n{/foreach}\n{/if}\n{if $pcpBlock}\n===========================================================\n{ts}Personal Campaign Page{/ts}\n\n===========================================================\n{ts}Display In Honor Roll{/ts}: {if $pcp_display_in_roll}{ts}Yes{/ts}{else}{ts}No{/ts}{/if}\n\n{if $pcp_roll_nickname}{ts}Nickname{/ts}: {$pcp_roll_nickname}{/if}\n\n{if $pcp_personal_note}{ts}Personal Note{/ts}: {$pcp_personal_note}{/if}\n\n{/if}\n{if $onBehalfProfile}\n===========================================================\n{ts}On Behalf Of{/ts}\n\n===========================================================\n{foreach from=$onBehalfProfile item=onBehalfValue key=onBehalfName}\n{$onBehalfName}: {$onBehalfValue}\n{/foreach}\n{/if}\n\n{if $billingName}\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billingName}\n{$address}\n\n{$email}\n{elseif $email}\n===========================================================\n{ts}Registered Email{/ts}\n\n===========================================================\n{$email}\n{/if} {* End billingName or Email*}\n{if $credit_card_type}\n\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n\n{if $selectPremium }\n===========================================================\n{ts}Premium Information{/ts}\n\n===========================================================\n{$product_name}\n{if $option}\n{ts}Option{/ts}: {$option}\n{/if}\n{if $sku}\n{ts}SKU{/ts}: {$sku}\n{/if}\n{if $start_date}\n{ts}Start Date{/ts}: {$start_date|crmDate}\n{/if}\n{if $end_date}\n{ts}End Date{/ts}: {$end_date|crmDate}\n{/if}\n{if $contact_email OR $contact_phone}\n\n{ts}For information about this premium, contact:{/ts}\n\n{if $contact_email}\n  {$contact_email}\n{/if}\n{if $contact_phone}\n  {$contact_phone}\n{/if}\n{/if}\n{if $is_deductible AND $price}\n\n{ts 1=$price|crmMoney:$currency}The value of this premium is %1. This may affect the amount of the tax deduction you can claim. Consult your tax advisor for more information.{/ts}{/if}\n{/if}\n\n{if $customPre}\n===========================================================\n{$customPre_grouptitle}\n\n===========================================================\n{foreach from=$customPre item=customValue key=customName}\n{if ( $trackingFields and ! in_array( $customName, $trackingFields ) ) or ! $trackingFields}\n {$customName}: {$customValue}\n{/if}\n{/foreach}\n{/if}\n\n\n{if $customPost}\n===========================================================\n{$customPost_grouptitle}\n\n===========================================================\n{foreach from=$customPost item=customValue key=customName}\n{if ( $trackingFields and ! in_array( $customName, $trackingFields ) ) or ! $trackingFields}\n {$customName}: {$customValue}\n{/if}\n{/foreach}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n     {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    {if $receipt_text}\n     <p>{$receipt_text|htmlize}</p>\n    {/if}\n\n    {if $is_pay_later}\n     <p>{$pay_later_receipt}</p> {* FIXME: this might be text rather than HTML *}\n    {/if}\n\n   </td>\n  </tr>\n  </table>\n  <table style=\"width:100%; max-width:500px; border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse;\">\n\n     {if $amount}\n\n\n      <tr>\n       <th {$headerStyle}>\n        {ts}Contribution Information{/ts}\n       </th>\n      </tr>\n\n      {if $lineItem and $priceSetID and !$is_quick_config}\n\n       {foreach from=$lineItem item=value key=priceset}\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          <table> {* FIXME: style this table so that it looks like the text version (justification, etc.) *}\n           <tr>\n            <th>{ts}Item{/ts}</th>\n            <th>{ts}Qty{/ts}</th>\n            <th>{ts}Each{/ts}</th>\n            {if $dataArray}\n             <th>{ts}Subtotal{/ts}</th>\n             <th>{ts}Tax Rate{/ts}</th>\n             <th>{ts}Tax Amount{/ts}</th>\n            {/if}\n            <th>{ts}Total{/ts}</th>\n           </tr>\n           {foreach from=$value item=line}\n            <tr>\n             <td>\n             {if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description}<div>{$line.description|truncate:30:\"...\"}</div>{/if}\n             </td>\n             <td>\n              {$line.qty}\n             </td>\n             <td>\n              {$line.unit_price|crmMoney:$currency}\n             </td>\n             {if $getTaxDetails}\n              <td>\n               {$line.unit_price*$line.qty|crmMoney:$currency}\n              </td>\n              {if $line.tax_rate != \"\" || $line.tax_amount != \"\"}\n               <td>\n                {$line.tax_rate|string_format:\"%.2f\"}%\n               </td>\n               <td>\n                {$line.tax_amount|crmMoney:$currency}\n               </td>\n              {else}\n               <td></td>\n               <td></td>\n              {/if}\n             {/if}\n             <td>\n              {$line.line_total+$line.tax_amount|crmMoney:$currency}\n             </td>\n            </tr>\n           {/foreach}\n          </table>\n         </td>\n        </tr>\n       {/foreach}\n       {if $dataArray}\n        <tr>\n         <td {$labelStyle}>\n          {ts} Amount before Tax : {/ts}\n         </td>\n         <td {$valueStyle}>\n          {$amount-$totalTaxAmount|crmMoney:$currency}\n         </td>\n        </tr>\n\n        {foreach from=$dataArray item=value key=priceset}\n         <tr>\n          {if $priceset || $priceset == 0}\n           <td>&nbsp;{$taxTerm} {$priceset|string_format:\"%.2f\"}%</td>\n           <td>&nbsp;{$value|crmMoney:$currency}</td>\n          {else}\n           <td>&nbsp;{ts}No{/ts} {$taxTerm}</td>\n           <td>&nbsp;{$value|crmMoney:$currency}</td>\n          {/if}\n         </tr>\n        {/foreach}\n\n       {/if}\n       {if $totalTaxAmount}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Total Tax{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$totalTaxAmount|crmMoney:$currency}\n         </td>\n        </tr>\n       {/if}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Total Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$amount|crmMoney:$currency}\n        </td>\n       </tr>\n\n      {else}\n\n      {if $totalTaxAmount}\n         <tr>\n           <td {$labelStyle}>\n             {ts}Total Tax Amount{/ts}\n           </td>\n           <td {$valueStyle}>\n             {$totalTaxAmount|crmMoney:$currency}\n           </td>\n         </tr>\n       {/if}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$amount|crmMoney:$currency} {if $amount_level} - {$amount_level}{/if}\n        </td>\n       </tr>\n\n      {/if}\n\n     {/if}\n\n\n     {if $receive_date}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$receive_date|crmDate}\n       </td>\n      </tr>\n     {/if}\n\n     {if $is_monetary and $trxn_id}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Transaction #{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$trxn_id}\n       </td>\n      </tr>\n     {/if}\n\n    {if $is_recur}\n      <tr>\n        <td  colspan=\"2\" {$labelStyle}>\n          {ts}This is a recurring contribution.{/ts}\n          {if $cancelSubscriptionUrl}\n            {ts 1=$cancelSubscriptionUrl}You can cancel future contributions by <a href=\"%1\">visiting this web page</a>.{/ts}\n          {/if}\n        </td>\n      </tr>\n      {if $updateSubscriptionBillingUrl}\n        <tr>\n          <td colspan=\"2\" {$labelStyle}>\n            {ts 1=$updateSubscriptionBillingUrl}You can update billing details for this recurring contribution by <a href=\"%1\">visiting this web page</a>.{/ts}\n          </td>\n        </tr>\n      {/if}\n      {if $updateSubscriptionUrl}\n        <tr>\n          <td colspan=\"2\" {$labelStyle}>\n            {ts 1=$updateSubscriptionUrl}You can update recurring contribution amount or change the number of installments for this recurring contribution by <a href=\"%1\">visiting this web page</a>.{/ts}\n          </td>\n        </tr>\n      {/if}\n    {/if}\n\n     {if $honor_block_is_active}\n      <tr>\n       <th {$headerStyle}>\n        {$soft_credit_type}\n       </th>\n      </tr>\n      {foreach from=$honoreeProfile item=value key=label}\n        <tr>\n         <td {$labelStyle}>\n          {$label}\n         </td>\n         <td {$valueStyle}>\n          {$value}\n         </td>\n        </tr>\n      {/foreach}\n      {elseif $softCreditTypes and $softCredits}\n      {foreach from=$softCreditTypes item=softCreditType key=n}\n       <tr>\n        <th {$headerStyle}>\n         {$softCreditType}\n        </th>\n       </tr>\n       {foreach from=$softCredits.$n item=value key=label}\n         <tr>\n          <td {$labelStyle}>\n           {$label}\n          </td>\n          <td {$valueStyle}>\n           {$value}\n          </td>\n         </tr>\n        {/foreach}\n       {/foreach}\n     {/if}\n\n     {if $pcpBlock}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Personal Campaign Page{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td {$labelStyle}>\n        {ts}Display In Honor Roll{/ts}\n       </td>\n       <td {$valueStyle}>\n        {if $pcp_display_in_roll}{ts}Yes{/ts}{else}{ts}No{/ts}{/if}\n       </td>\n      </tr>\n      {if $pcp_roll_nickname}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Nickname{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$pcp_roll_nickname}\n        </td>\n       </tr>\n      {/if}\n      {if $pcp_personal_note}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Personal Note{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$pcp_personal_note}\n        </td>\n       </tr>\n      {/if}\n     {/if}\n\n     {if $onBehalfProfile}\n      <tr>\n       <th {$headerStyle}>\n        {$onBehalfProfile_grouptitle}\n       </th>\n      </tr>\n      {foreach from=$onBehalfProfile item=onBehalfValue key=onBehalfName}\n        <tr>\n         <td {$labelStyle}>\n          {$onBehalfName}\n         </td>\n         <td {$valueStyle}>\n          {$onBehalfValue}\n         </td>\n        </tr>\n      {/foreach}\n     {/if}\n\n     {if $isShare}\n      <tr>\n        <td colspan=\"2\" {$valueStyle}>\n            {capture assign=contributionUrl}{crmURL p=\'civicrm/contribute/transact\' q=\"reset=1&id=`$contributionPageId`\" a=true fe=1 h=1}{/capture}\n            {include file=\"CRM/common/SocialNetwork.tpl\" emailMode=true url=$contributionUrl title=$title pageURL=$contributionUrl}\n        </td>\n      </tr>\n     {/if}\n\n     {if $billingName}\n       <tr>\n        <th {$headerStyle}>\n         {ts}Billing Name and Address{/ts}\n        </th>\n       </tr>\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         {$billingName}<br />\n         {$address|nl2br}<br />\n         {$email}\n        </td>\n       </tr>\n     {elseif $email}\n       <tr>\n        <th {$headerStyle}>\n         {ts}Registered Email{/ts}\n        </th>\n       </tr>\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         {$email}\n        </td>\n       </tr>\n     {/if}\n\n     {if $credit_card_type}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Credit Card Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$credit_card_type}<br />\n        {$credit_card_number}<br />\n        {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}<br />\n       </td>\n      </tr>\n     {/if}\n\n     {if $selectPremium}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Premium Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n        {$product_name}\n       </td>\n      </tr>\n      {if $option}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Option{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$option}\n        </td>\n       </tr>\n      {/if}\n      {if $sku}\n       <tr>\n        <td {$labelStyle}>\n         {ts}SKU{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$sku}\n        </td>\n       </tr>\n      {/if}\n      {if $start_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Start Date{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$start_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n      {if $end_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}End Date{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$end_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n      {if $contact_email OR $contact_phone}\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         <p>{ts}For information about this premium, contact:{/ts}</p>\n         {if $contact_email}\n          <p>{$contact_email}</p>\n         {/if}\n         {if $contact_phone}\n          <p>{$contact_phone}</p>\n         {/if}\n        </td>\n       </tr>\n      {/if}\n      {if $is_deductible AND $price}\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          <p>{ts 1=$price|crmMoney:$currency}The value of this premium is %1. This may affect the amount of the tax deduction you can claim. Consult your tax advisor for more information.{/ts}</p>\n         </td>\n        </tr>\n      {/if}\n     {/if}\n\n     {if $customPre}\n      <tr>\n       <th {$headerStyle}>\n        {$customPre_grouptitle}\n       </th>\n      </tr>\n      {foreach from=$customPre item=customValue key=customName}\n       {if ($trackingFields and ! in_array($customName, $trackingFields)) or ! $trackingFields}\n        <tr>\n         <td {$labelStyle}>\n          {$customName}\n         </td>\n         <td {$valueStyle}>\n          {$customValue}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n     {if $customPost}\n      <tr>\n       <th {$headerStyle}>\n        {$customPost_grouptitle}\n       </th>\n      </tr>\n      {foreach from=$customPost item=customValue key=customName}\n       {if ($trackingFields and ! in_array($customName, $trackingFields)) or ! $trackingFields}\n        <tr>\n         <td {$labelStyle}>\n          {$customName}\n         </td>\n         <td {$valueStyle}>\n          {$customValue}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n  </table>\n</center>\n\n</body>\n</html>\n',1,822,1,0,0,NULL),(8,'Contributions - Receipt (on-line)','{if $is_pay_later}{ts}Invoice{/ts}{else}{ts}Receipt{/ts}{/if} - {$title} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n{if $receipt_text}\n{$receipt_text}\n{/if}\n{if $is_pay_later}\n\n===========================================================\n{$pay_later_receipt}\n===========================================================\n{/if}\n\n{if $amount}\n===========================================================\n{ts}Contribution Information{/ts}\n\n===========================================================\n{if $lineItem and $priceSetID and !$is_quick_config}\n{foreach from=$lineItem item=value key=priceset}\n---------------------------------------------------------\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_qty}{ts}Qty{/ts}{/capture}\n{capture assign=ts_each}{ts}Each{/ts}{/capture}\n{if $dataArray}\n{capture assign=ts_subtotal}{ts}Subtotal{/ts}{/capture}\n{capture assign=ts_taxRate}{ts}Tax Rate{/ts}{/capture}\n{capture assign=ts_taxAmount}{ts}Tax Amount{/ts}{/capture}\n{/if}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_qty|string_format:\"%5s\"} {$ts_each|string_format:\"%10s\"} {if $dataArray} {$ts_subtotal|string_format:\"%10s\"} {$ts_taxRate} {$ts_taxAmount|string_format:\"%10s\"} {/if} {$ts_total|string_format:\"%10s\"}\n----------------------------------------------------------\n{foreach from=$value item=line}\n{capture assign=ts_item}{if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description} {$line.description}{/if}{/capture}{$ts_item|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.qty|string_format:\"%5s\"} {$line.unit_price|crmMoney:$currency|string_format:\"%10s\"} {if $dataArray}{$line.unit_price*$line.qty|crmMoney:$currency|string_format:\"%10s\"} {if $line.tax_rate != \"\" || $line.tax_amount != \"\"}  {$line.tax_rate|string_format:\"%.2f\"} %  {$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"} {else}                  {/if}  {/if} {$line.line_total+$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"}\n{/foreach}\n{/foreach}\n\n{if $dataArray}\n{ts}Amount before Tax{/ts}: {$amount-$totalTaxAmount|crmMoney:$currency}\n\n{foreach from=$dataArray item=value key=priceset}\n{if $priceset || $priceset == 0}\n{$taxTerm} {$priceset|string_format:\"%.2f\"}%: {$value|crmMoney:$currency}\n{else}\n{ts}No{/ts} {$taxTerm}: {$value|crmMoney:$currency}\n{/if}\n{/foreach}\n{/if}\n\n{if $totalTaxAmount}\n{ts}Total Tax Amount{/ts}: {$totalTaxAmount|crmMoney:$currency}\n{/if}\n\n{ts}Total Amount{/ts}: {$amount|crmMoney:$currency}\n{else}\n{ts}Amount{/ts}: {$amount|crmMoney:$currency} {if $amount_level } - {$amount_level} {/if}\n{/if}\n{/if}\n{if $receive_date}\n\n{ts}Date{/ts}: {$receive_date|crmDate}\n{/if}\n{if $is_monetary and $trxn_id}\n{ts}Transaction #{/ts}: {$trxn_id}\n{/if}\n\n{if $is_recur}\n{ts}This is a recurring contribution.{/ts}\n\n{if $cancelSubscriptionUrl}\n{ts}You can cancel future contributions at:{/ts}\n\n{$cancelSubscriptionUrl}\n\n{/if}\n\n{if $updateSubscriptionBillingUrl}\n{ts}You can update billing details for this recurring contribution at:{/ts}\n\n{$updateSubscriptionBillingUrl}\n\n{/if}\n\n{if $updateSubscriptionUrl}\n{ts}You can update recurring contribution amount or change the number of installments for this recurring contribution at:{/ts}\n\n{$updateSubscriptionUrl}\n\n{/if}\n{/if}\n\n{if $honor_block_is_active}\n===========================================================\n{$soft_credit_type}\n===========================================================\n{foreach from=$honoreeProfile item=value key=label}\n{$label}: {$value}\n{/foreach}\n{elseif $softCreditTypes and $softCredits}\n{foreach from=$softCreditTypes item=softCreditType key=n}\n===========================================================\n{$softCreditType}\n===========================================================\n{foreach from=$softCredits.$n item=value key=label}\n{$label}: {$value}\n{/foreach}\n{/foreach}\n{/if}\n{if $pcpBlock}\n===========================================================\n{ts}Personal Campaign Page{/ts}\n\n===========================================================\n{ts}Display In Honor Roll{/ts}: {if $pcp_display_in_roll}{ts}Yes{/ts}{else}{ts}No{/ts}{/if}\n\n{if $pcp_roll_nickname}{ts}Nickname{/ts}: {$pcp_roll_nickname}{/if}\n\n{if $pcp_personal_note}{ts}Personal Note{/ts}: {$pcp_personal_note}{/if}\n\n{/if}\n{if $onBehalfProfile}\n===========================================================\n{ts}On Behalf Of{/ts}\n\n===========================================================\n{foreach from=$onBehalfProfile item=onBehalfValue key=onBehalfName}\n{$onBehalfName}: {$onBehalfValue}\n{/foreach}\n{/if}\n\n{if $billingName}\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billingName}\n{$address}\n\n{$email}\n{elseif $email}\n===========================================================\n{ts}Registered Email{/ts}\n\n===========================================================\n{$email}\n{/if} {* End billingName or Email*}\n{if $credit_card_type}\n\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n\n{if $selectPremium }\n===========================================================\n{ts}Premium Information{/ts}\n\n===========================================================\n{$product_name}\n{if $option}\n{ts}Option{/ts}: {$option}\n{/if}\n{if $sku}\n{ts}SKU{/ts}: {$sku}\n{/if}\n{if $start_date}\n{ts}Start Date{/ts}: {$start_date|crmDate}\n{/if}\n{if $end_date}\n{ts}End Date{/ts}: {$end_date|crmDate}\n{/if}\n{if $contact_email OR $contact_phone}\n\n{ts}For information about this premium, contact:{/ts}\n\n{if $contact_email}\n  {$contact_email}\n{/if}\n{if $contact_phone}\n  {$contact_phone}\n{/if}\n{/if}\n{if $is_deductible AND $price}\n\n{ts 1=$price|crmMoney:$currency}The value of this premium is %1. This may affect the amount of the tax deduction you can claim. Consult your tax advisor for more information.{/ts}{/if}\n{/if}\n\n{if $customPre}\n===========================================================\n{$customPre_grouptitle}\n\n===========================================================\n{foreach from=$customPre item=customValue key=customName}\n{if ( $trackingFields and ! in_array( $customName, $trackingFields ) ) or ! $trackingFields}\n {$customName}: {$customValue}\n{/if}\n{/foreach}\n{/if}\n\n\n{if $customPost}\n===========================================================\n{$customPost_grouptitle}\n\n===========================================================\n{foreach from=$customPost item=customValue key=customName}\n{if ( $trackingFields and ! in_array( $customName, $trackingFields ) ) or ! $trackingFields}\n {$customName}: {$customValue}\n{/if}\n{/foreach}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n     {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    {if $receipt_text}\n     <p>{$receipt_text|htmlize}</p>\n    {/if}\n\n    {if $is_pay_later}\n     <p>{$pay_later_receipt}</p> {* FIXME: this might be text rather than HTML *}\n    {/if}\n\n   </td>\n  </tr>\n  </table>\n  <table style=\"width:100%; max-width:500px; border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse;\">\n\n     {if $amount}\n\n\n      <tr>\n       <th {$headerStyle}>\n        {ts}Contribution Information{/ts}\n       </th>\n      </tr>\n\n      {if $lineItem and $priceSetID and !$is_quick_config}\n\n       {foreach from=$lineItem item=value key=priceset}\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          <table> {* FIXME: style this table so that it looks like the text version (justification, etc.) *}\n           <tr>\n            <th>{ts}Item{/ts}</th>\n            <th>{ts}Qty{/ts}</th>\n            <th>{ts}Each{/ts}</th>\n            {if $dataArray}\n             <th>{ts}Subtotal{/ts}</th>\n             <th>{ts}Tax Rate{/ts}</th>\n             <th>{ts}Tax Amount{/ts}</th>\n            {/if}\n            <th>{ts}Total{/ts}</th>\n           </tr>\n           {foreach from=$value item=line}\n            <tr>\n             <td>\n             {if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description}<div>{$line.description|truncate:30:\"...\"}</div>{/if}\n             </td>\n             <td>\n              {$line.qty}\n             </td>\n             <td>\n              {$line.unit_price|crmMoney:$currency}\n             </td>\n             {if $getTaxDetails}\n              <td>\n               {$line.unit_price*$line.qty|crmMoney:$currency}\n              </td>\n              {if $line.tax_rate != \"\" || $line.tax_amount != \"\"}\n               <td>\n                {$line.tax_rate|string_format:\"%.2f\"}%\n               </td>\n               <td>\n                {$line.tax_amount|crmMoney:$currency}\n               </td>\n              {else}\n               <td></td>\n               <td></td>\n              {/if}\n             {/if}\n             <td>\n              {$line.line_total+$line.tax_amount|crmMoney:$currency}\n             </td>\n            </tr>\n           {/foreach}\n          </table>\n         </td>\n        </tr>\n       {/foreach}\n       {if $dataArray}\n        <tr>\n         <td {$labelStyle}>\n          {ts} Amount before Tax : {/ts}\n         </td>\n         <td {$valueStyle}>\n          {$amount-$totalTaxAmount|crmMoney:$currency}\n         </td>\n        </tr>\n\n        {foreach from=$dataArray item=value key=priceset}\n         <tr>\n          {if $priceset || $priceset == 0}\n           <td>&nbsp;{$taxTerm} {$priceset|string_format:\"%.2f\"}%</td>\n           <td>&nbsp;{$value|crmMoney:$currency}</td>\n          {else}\n           <td>&nbsp;{ts}No{/ts} {$taxTerm}</td>\n           <td>&nbsp;{$value|crmMoney:$currency}</td>\n          {/if}\n         </tr>\n        {/foreach}\n\n       {/if}\n       {if $totalTaxAmount}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Total Tax{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$totalTaxAmount|crmMoney:$currency}\n         </td>\n        </tr>\n       {/if}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Total Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$amount|crmMoney:$currency}\n        </td>\n       </tr>\n\n      {else}\n\n      {if $totalTaxAmount}\n         <tr>\n           <td {$labelStyle}>\n             {ts}Total Tax Amount{/ts}\n           </td>\n           <td {$valueStyle}>\n             {$totalTaxAmount|crmMoney:$currency}\n           </td>\n         </tr>\n       {/if}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$amount|crmMoney:$currency} {if $amount_level} - {$amount_level}{/if}\n        </td>\n       </tr>\n\n      {/if}\n\n     {/if}\n\n\n     {if $receive_date}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$receive_date|crmDate}\n       </td>\n      </tr>\n     {/if}\n\n     {if $is_monetary and $trxn_id}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Transaction #{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$trxn_id}\n       </td>\n      </tr>\n     {/if}\n\n    {if $is_recur}\n      <tr>\n        <td  colspan=\"2\" {$labelStyle}>\n          {ts}This is a recurring contribution.{/ts}\n          {if $cancelSubscriptionUrl}\n            {ts 1=$cancelSubscriptionUrl}You can cancel future contributions by <a href=\"%1\">visiting this web page</a>.{/ts}\n          {/if}\n        </td>\n      </tr>\n      {if $updateSubscriptionBillingUrl}\n        <tr>\n          <td colspan=\"2\" {$labelStyle}>\n            {ts 1=$updateSubscriptionBillingUrl}You can update billing details for this recurring contribution by <a href=\"%1\">visiting this web page</a>.{/ts}\n          </td>\n        </tr>\n      {/if}\n      {if $updateSubscriptionUrl}\n        <tr>\n          <td colspan=\"2\" {$labelStyle}>\n            {ts 1=$updateSubscriptionUrl}You can update recurring contribution amount or change the number of installments for this recurring contribution by <a href=\"%1\">visiting this web page</a>.{/ts}\n          </td>\n        </tr>\n      {/if}\n    {/if}\n\n     {if $honor_block_is_active}\n      <tr>\n       <th {$headerStyle}>\n        {$soft_credit_type}\n       </th>\n      </tr>\n      {foreach from=$honoreeProfile item=value key=label}\n        <tr>\n         <td {$labelStyle}>\n          {$label}\n         </td>\n         <td {$valueStyle}>\n          {$value}\n         </td>\n        </tr>\n      {/foreach}\n      {elseif $softCreditTypes and $softCredits}\n      {foreach from=$softCreditTypes item=softCreditType key=n}\n       <tr>\n        <th {$headerStyle}>\n         {$softCreditType}\n        </th>\n       </tr>\n       {foreach from=$softCredits.$n item=value key=label}\n         <tr>\n          <td {$labelStyle}>\n           {$label}\n          </td>\n          <td {$valueStyle}>\n           {$value}\n          </td>\n         </tr>\n        {/foreach}\n       {/foreach}\n     {/if}\n\n     {if $pcpBlock}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Personal Campaign Page{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td {$labelStyle}>\n        {ts}Display In Honor Roll{/ts}\n       </td>\n       <td {$valueStyle}>\n        {if $pcp_display_in_roll}{ts}Yes{/ts}{else}{ts}No{/ts}{/if}\n       </td>\n      </tr>\n      {if $pcp_roll_nickname}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Nickname{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$pcp_roll_nickname}\n        </td>\n       </tr>\n      {/if}\n      {if $pcp_personal_note}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Personal Note{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$pcp_personal_note}\n        </td>\n       </tr>\n      {/if}\n     {/if}\n\n     {if $onBehalfProfile}\n      <tr>\n       <th {$headerStyle}>\n        {$onBehalfProfile_grouptitle}\n       </th>\n      </tr>\n      {foreach from=$onBehalfProfile item=onBehalfValue key=onBehalfName}\n        <tr>\n         <td {$labelStyle}>\n          {$onBehalfName}\n         </td>\n         <td {$valueStyle}>\n          {$onBehalfValue}\n         </td>\n        </tr>\n      {/foreach}\n     {/if}\n\n     {if $isShare}\n      <tr>\n        <td colspan=\"2\" {$valueStyle}>\n            {capture assign=contributionUrl}{crmURL p=\'civicrm/contribute/transact\' q=\"reset=1&id=`$contributionPageId`\" a=true fe=1 h=1}{/capture}\n            {include file=\"CRM/common/SocialNetwork.tpl\" emailMode=true url=$contributionUrl title=$title pageURL=$contributionUrl}\n        </td>\n      </tr>\n     {/if}\n\n     {if $billingName}\n       <tr>\n        <th {$headerStyle}>\n         {ts}Billing Name and Address{/ts}\n        </th>\n       </tr>\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         {$billingName}<br />\n         {$address|nl2br}<br />\n         {$email}\n        </td>\n       </tr>\n     {elseif $email}\n       <tr>\n        <th {$headerStyle}>\n         {ts}Registered Email{/ts}\n        </th>\n       </tr>\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         {$email}\n        </td>\n       </tr>\n     {/if}\n\n     {if $credit_card_type}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Credit Card Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$credit_card_type}<br />\n        {$credit_card_number}<br />\n        {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}<br />\n       </td>\n      </tr>\n     {/if}\n\n     {if $selectPremium}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Premium Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n        {$product_name}\n       </td>\n      </tr>\n      {if $option}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Option{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$option}\n        </td>\n       </tr>\n      {/if}\n      {if $sku}\n       <tr>\n        <td {$labelStyle}>\n         {ts}SKU{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$sku}\n        </td>\n       </tr>\n      {/if}\n      {if $start_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Start Date{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$start_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n      {if $end_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}End Date{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$end_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n      {if $contact_email OR $contact_phone}\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         <p>{ts}For information about this premium, contact:{/ts}</p>\n         {if $contact_email}\n          <p>{$contact_email}</p>\n         {/if}\n         {if $contact_phone}\n          <p>{$contact_phone}</p>\n         {/if}\n        </td>\n       </tr>\n      {/if}\n      {if $is_deductible AND $price}\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          <p>{ts 1=$price|crmMoney:$currency}The value of this premium is %1. This may affect the amount of the tax deduction you can claim. Consult your tax advisor for more information.{/ts}</p>\n         </td>\n        </tr>\n      {/if}\n     {/if}\n\n     {if $customPre}\n      <tr>\n       <th {$headerStyle}>\n        {$customPre_grouptitle}\n       </th>\n      </tr>\n      {foreach from=$customPre item=customValue key=customName}\n       {if ($trackingFields and ! in_array($customName, $trackingFields)) or ! $trackingFields}\n        <tr>\n         <td {$labelStyle}>\n          {$customName}\n         </td>\n         <td {$valueStyle}>\n          {$customValue}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n     {if $customPost}\n      <tr>\n       <th {$headerStyle}>\n        {$customPost_grouptitle}\n       </th>\n      </tr>\n      {foreach from=$customPost item=customValue key=customName}\n       {if ($trackingFields and ! in_array($customName, $trackingFields)) or ! $trackingFields}\n        <tr>\n         <td {$labelStyle}>\n          {$customName}\n         </td>\n         <td {$valueStyle}>\n          {$customValue}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n  </table>\n</center>\n\n</body>\n</html>\n',1,822,0,1,0,NULL),(9,'Contributions - Invoice','{if $title}\n  {if $component}\n    {if $component == \'event\'}\n      {ts 1=$title}Event Registration Invoice: %1{/ts}\n    {else}\n      {ts 1=$title}Contribution Invoice: %1{/ts}\n    {/if}\n  {/if}\n{else}\n  {ts}Invoice{/ts}\n{/if}\n - {contact.display_name}\n','{ts}Contribution Invoice{/ts}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns = \"http://www.w3.org/1999/xhtml\">\n  <head>\n    <meta http-equiv = \"Content-Type\" content=\"text/html; charset=UTF-8\" />\n      <title></title>\n  </head>\n  <body>\n    <table style = \"margin-top:2px;padding-left:7px;\">\n      <tr>\n        <td><img src = \"{$resourceBase}/i/civi99.png\" height = \"34px\" width = \"99px\"></td>\n      </tr>\n    </table>\n    <center>\n      <table style = \"padding-right:19px;font-family: Arial, Verdana, sans-serif;\" width = \"500\" height = \"100\" border = \"0\" cellpadding = \"2\" cellspacing = \"1\">\n        <tr>\n          <td style = \"padding-left:15px;\" ><b><font size = \"4\" align = \"center\">{ts}INVOICE{/ts}</font></b></td>\n          <td colspan = \"1\"></td>\n          <td style = \"padding-left:70px;\"><b><font size = \"1\" align = \"center\" >{ts}Invoice Date:{/ts}</font></b></td>\n          <td><font size = \"1\" align = \"right\">{$domain_organization}</font></td>\n        </tr>\n        <tr>\n          {if $organization_name}\n            <td style = \"padding-left:17px;\"><font size = \"1\" align = \"center\" >{$display_name}  ({$organization_name})</font></td>\n          {else}\n            <td style = \"padding-left:15px;\"><font size = \"1\" align = \"center\" >{$display_name}</font></td>\n          {/if}\n          <td colspan = \"1\"></td>\n          <td style = \"padding-left:70px;\"><font size = \"1\" align = \"right\">{$invoice_date}</font></td>\n          <td>\n            <font size = \"1\" align = \"right\">\n              {if $domain_street_address }{$domain_street_address}{/if}\n              {if $domain_supplemental_address_1 }{$domain_supplemental_address_1}{/if}\n            </font>\n          </td>\n        </tr>\n        <tr>\n          <td style = \"padding-left:17px;\"><font size = \"1\" align = \"center\">{$street_address}   {$supplemental_address_1}</font></td>\n          <td colspan = \"1\"></td>\n          <td style = \"padding-left:70px;\"><b><font size = \"1\" align = \"right\">{ts}Invoice Number:{/ts}</font></b></td>\n          <td>\n            <font size = \"1\" align = \"right\">\n              {if $domain_supplemental_address_2 }{$domain_supplemental_address_2}{/if}\n              {if $domain_state }{$domain_state}{/if}\n            </font>\n          </td>\n        </tr>\n        <tr>\n          <td style = \"padding-left:17px;\"><font size = \"1\" align = \"center\">{$supplemental_address_2}  {$stateProvinceAbbreviation}</font></td>\n          <td colspan=\"1\"></td>\n          <td style = \"padding-left:70px;\"><font size = \"1\" align = \"right\">{$invoice_number}</font></td>\n          <td>\n            <font size = \"1\" align = \"right\">\n              {if $domain_city}{$domain_city}{/if}\n              {if $domain_postal_code }{$domain_postal_code}{/if}\n            </font>\n          </td>\n        </tr>\n        <tr>\n          <td style = \"padding-left:17px;\"><font size = \"1\" align = \"right\">{$city}  {$postal_code}</font></td>\n          <td colspan=\"1\"></td>\n          <td height = \"10\" style = \"padding-left:70px;\"><b><font size = \"1\"align = \"right\">{ts}Reference:{/ts}</font></b></td>\n          <td><font size = \"1\" align = \"right\"> {if $domain_country}{$domain_country}{/if}</font></td>\n        </tr>\n        <tr>\n          <td></td>\n          <td></td>\n          <td style = \"padding-left:70px;\"><font size = \"1\"align = \"right\">{$source}</font></td>\n          <td><font size = \"1\" align = \"right\"> {if $domain_phone}{$domain_phone}{/if}</font> </td>\n        </tr>\n        <tr>\n          <td></td>\n          <td></td>\n          <td></td>\n          <td><font size = \"1\" align = \"right\"> {if $domain_email}{$domain_email}{/if}</font> </td>\n        </tr>\n      </table>\n      <table style = \"margin-top:75px;font-family: Arial, Verdana, sans-serif\" width = \"590\" border = \"0\"cellpadding = \"-5\" cellspacing = \"19\" id = \"desc\">\n        <tr>\n          <td colspan = \"2\" {$valueStyle}>\n            <table> {* FIXME: style this table so that it looks like the text version (justification, etc.) *}\n              <tr>\n                <th style = \"padding-right:34px;text-align:left;font-weight:bold;width:200px;\"><font size = \"1\">{ts}Description{/ts}</font></th>\n                <th style = \"padding-left:34px;text-align:right;font-weight:bold;\" ><font size = \"1\">{ts}Quantity{/ts}</font></th>\n                <th style = \"padding-left:34px;text-align:right;font-weight:bold;\"><font size = \"1\">{ts}Unit Price{/ts}</font></th>\n                <th style = \"padding-left:34px;text-align:right;font-weight:bold;width:20px;\"><font size = \"1\">{$taxTerm} </font></th>\n                <th style = \"padding-left:34px;text-align:right;font-weight:bold;\"><font size = \"1\">{ts 1=$defaultCurrency}Amount %1{/ts}</font></th>\n              </tr>\n              {foreach from=$lineItem item=value key=priceset name=taxpricevalue}\n                {if $smarty.foreach.taxpricevalue.index eq 0}\n                  <tr>\n                    <td colspan = \"5\" ><hr size=\"3\" style = \"color:#000;\"></hr></td>\n                  </tr>\n                {else}\n                  <tr>\n                    <td  colspan = \"5\" style = \"color:#F5F5F5;\"><hr></hr></td>\n                  </tr>\n                {/if}\n                <tr>\n                  <td style=\"text-align:left;\" ><font size = \"1\">\n                    {if $value.html_type eq \'Text\'}\n                      {$value.label}\n                    {else}\n                      {$value.field_title} - {$value.label}\n                    {/if}\n                    {if $value.description}\n                      <div>{$value.description|truncate:30:\"...\"}</div>\n                    {/if}\n                    </font>\n                  </td>\n                  <td style = \"padding-left:34px;text-align:right;\"><font size = \"1\"> {$value.qty}</font></td>\n                  <td style = \"padding-left:34px;text-align:right;\"><font size = \"1\"> {$value.unit_price|crmMoney:$currency}</font></td>\n                  {if $value.tax_amount != \'\'}\n                    <td style = \"padding-left:34px;text-align:right;width:20px;\"><font size = \"1\"> {$value.tax_rate}%</font></td>\n                  {else}\n                    <td style = \"padding-left:34px;text-align:right;width:20px;\"><font size = \"1\">{ts 1=$taxTerm}No %1{/ts}</font></td>\n                  {/if}\n                  <td style = \"padding-left:34px;text-align:right;\"><font size = \"1\">{$value.subTotal|crmMoney:$currency}</font></td>\n                </tr>\n              {/foreach}\n              <tr><td  colspan = \"5\" style = \"color:#F5F5F5;\"><hr></hr></td></tr>\n              <tr>\n                <td colspan = \"3\"></td>\n                <td style = \"padding-left:20px;text-align:right;\"><font size = \"1\">{ts}Sub Total{/ts}</font></td>\n                <td style = \"padding-left:34px;text-align:right;\"><font size = \"1\"> {$subTotal|crmMoney:$currency}</font></td>\n              </tr>\n              {foreach from = $dataArray item = value key = priceset}\n                <tr>\n                  <td colspan = \"3\"></td>\n                    {if $priceset}\n                      <td style = \"padding-left:20px;text-align:right;\"><font size = \"1\"> {ts 1=$taxTerm 2=$priceset}TOTAL %1 %2%{/ts}</font></td>\n                      <td style = \"padding-left:34px;text-align:right\"><font size = \"1\" align = \"right\">{$value|crmMoney:$currency}</font> </td>\n                    {elseif $priceset == 0}\n                      <td style = \"padding-left:20px;text-align:right;\"><font size = \"1\">{ts 1=$taxTerm}TOTAL NO %1{/ts}</font></td>\n                      <td style = \"padding-left:34px;text-align:right\"><font size = \"1\" align = \"right\">{$value|crmMoney:$currency}</font> </td>\n                </tr>\n              {/if}\n              {/foreach}\n              <tr>\n                <td colspan = \"3\"></td>\n                <td colspan = \"2\"><hr></hr></td>\n              </tr>\n              <tr>\n                <td colspan = \"3\"></td>\n                <td style = \"padding-left:20px;text-align:right;\"><b><font size = \"1\">{ts 1=$defaultCurrency}TOTAL %1{/ts}</font></b></td>\n                <td style = \"padding-left:34px;text-align:right;\"><font size = \"1\">{$amount|crmMoney:$currency}</font></td>\n                <td style = \"padding-left:34px;\"><font size = \"1\" align = \"right\"></font></td>\n              </tr>\n              {if $is_pay_later == 0}\n                <tr>\n                  <td colspan = \"3\"></td>\n                  <td style = \"padding-left:20px;text-align:right;\"><font size = \"1\">\n                    {if $contribution_status_id == $refundedStatusId}\n                      {ts}LESS Amount Credited{/ts}\n                    {else}\n                      {ts}LESS Amount Paid{/ts}\n                    {/if}\n                    </font>\n                  </td>\n                  <td style = \"padding-left:34px;text-align:right;\"><font size = \"1\">{$amountPaid|crmMoney:$currency}</font></td>\n                </tr>\n                <tr>\n                  <td colspan = \"3\"></td>\n                  <td colspan = \"2\" ><hr></hr></td>\n                </tr>\n                <tr>\n                  <td colspan = \"3\"></td>\n                  <td style = \"padding-left:20px;text-align:right;\"><b><font size = \"1\">{ts}AMOUNT DUE:{/ts} </font></b></td>\n                  <td style = \"padding-left:34px;text-align:right;\"><b><font size = \"1\">{$amountDue|crmMoney:$currency}</font></b></td>\n                  <td style = \"padding-left:34px;\"><font size = \"1\" align = \"right\"></font></td>\n                </tr>\n              {/if}\n              <br/><br/><br/>\n              <tr>\n                <td colspan = \"3\"></td>\n              </tr>\n              {if $contribution_status_id == $pendingStatusId && $is_pay_later == 1}\n                <tr>\n                  <td><b><font size = \"1\" align = \"center\">{ts 1=$dueDate}DUE DATE: %1{/ts}</font></b></td>\n                  <td colspan = \"3\"></td>\n                </tr>\n              {/if}\n            </table>\n          </td>\n        </tr>\n      </table>\n      {if $contribution_status_id == $pendingStatusId && $is_pay_later == 1}\n        <table style = \"margin-top:5px;padding-right:45px;\">\n          <tr>\n            <td><img src = \"{$resourceBase}/i/contribute/cut_line.png\" height = \"15\" width = \"630\"></td>\n          </tr>\n        </table>\n        <table style = \"margin-top:6px;padding-right:20px;font-family: Arial, Verdana, sans-serif\" width = \"480\" border = \"0\"cellpadding = \"-5\" cellspacing=\"19\" id = \"desc\">\n          <tr>\n            <td width=\"60%\"><b><font size = \"4\" align = \"right\">{ts}PAYMENT ADVICE{/ts}</font></b> <br/><br/> <font size = \"1\" align = \"right\"><b>{ts}To: {/ts}</b><div style=\"width:17em;word-wrap:break-word;\">\n              {$domain_organization} <br />\n              {$domain_street_address} {$domain_supplemental_address_1} <br />\n              {$domain_supplemental_address_2} {$domain_state} <br />\n              {$domain_city} {$domain_postal_code} <br />\n              {$domain_country} <br />\n              {$domain_phone} <br />\n              {$domain_email}</div>\n              </font><br/><br/><font size=\"1\" align=\"right\">{$notes}</font>\n            </td>\n            <td width=\"40%\">\n              <table  cellpadding = \"-10\" cellspacing = \"22\"  align=\"right\" >\n                <tr>\n                  <td colspan = \"2\"></td>\n                  <td><font size = \"1\" align = \"right\" style=\"font-weight:bold;\">{ts}Customer: {/ts}</font></td>\n                  <td ><font size = \"1\" align = \"right\">{$display_name}</font></td>\n                </tr>\n                <tr>\n                  <td colspan = \"2\"></td>\n                  <td><font size = \"1\" align = \"right\" style=\"font-weight:bold;\">{ts}Invoice Number: {/ts}</font></td>\n                  <td><font size = \"1\" align = \"right\">{$invoice_number}</font></td>\n                </tr>\n                <tr><td colspan = \"5\"style = \"color:#F5F5F5;\"><hr></hr></td></tr>\n                {if $is_pay_later == 1}\n                  <tr>\n                    <td colspan = \"2\"></td>\n                    <td><font size = \"1\" align = \"right\" style=\"font-weight:bold;\">{ts}Amount Due:{/ts}</font></td>\n                    <td><font size = \"1\" align = \"right\" style=\"font-weight:bold;\">{$amount|crmMoney:$currency}</font></td>\n                  </tr>\n                {else}\n                  <tr>\n                    <td colspan = \"2\"></td>\n                    <td><font size = \"1\" align = \"right\" style=\"font-weight:bold;\">{ts}Amount Due: {/ts}</font></td>\n                    <td><font size = \"1\" align = \"right\" style=\"font-weight:bold;\">{$amountDue|crmMoney:$currency}</font></td>\n                  </tr>\n                {/if}\n                <tr>\n                  <td colspan = \"2\"></td>\n                  <td><font size = \"1\" align = \"right\" style=\"font-weight:bold;\">{ts}Due Date:  {/ts}</font></td>\n                  <td><font size = \"1\" align = \"right\">{$dueDate}</font></td>\n                </tr>\n                <tr>\n                  <td colspan = \"5\" style = \"color:#F5F5F5;\"><hr></hr></td>\n                </tr>\n              </table>\n            </td>\n          </tr>\n        </table>\n      {/if}\n\n      {if $contribution_status_id == $refundedStatusId || $contribution_status_id == $cancelledStatusId}\n        <table style = \"margin-top:2px;padding-left:7px;page-break-before: always;\">\n          <tr>\n            <td><img src = \"{$resourceBase}/i/civi99.png\" height = \"34px\" width = \"99px\"></td>\n          </tr>\n        </table>\n    <center>\n\n      <table style = \"padding-right:19px;font-family: Arial, Verdana, sans-serif\" width = \"500\" height = \"100\" border = \"0\" cellpadding = \"2\" cellspacing = \"1\">\n        <tr>\n          <td style = \"padding-left:15px;\" ><b><font size = \"4\" align = \"center\">{ts}CREDIT NOTE{/ts}</font></b></td>\n          <td colspan = \"1\"></td>\n          <td style = \"padding-left:70px;\"><b><font size = \"1\" align = \"right\">{ts}Date:{/ts}</font></b></td>\n          <td><font size = \"1\" align = \"right\">{$domain_organization}</font></td>\n        </tr>\n        <tr>\n          {if $organization_name}\n            <td style = \"padding-left:17px;\"><font size = \"1\" align = \"center\">{$display_name}  ({$organization_name})</font></td>\n          {else}\n            <td style = \"padding-left:17px;\"><font size = \"1\" align = \"center\">{$display_name}</font></td>\n          {/if}\n          <td colspan = \"1\"></td>\n          <td style = \"padding-left:70px;\"><font size = \"1\" align = \"right\">{$invoice_date}</font></td>\n          <td>\n            <font size = \"1\" align = \"right\">\n              {if $domain_street_address }{$domain_street_address}{/if}\n              {if $domain_supplemental_address_1 }{$domain_supplemental_address_1}{/if}\n            </font>\n          </td>\n        </tr>\n        <tr>\n          <td style = \"padding-left:17px;\"><font size = \"1\" align = \"center\">{$street_address}   {$supplemental_address_1}</font></td>\n          <td colspan = \"1\"></td>\n          <td style = \"padding-left:70px;\"><b><font size = \"1\" align = \"right\">{ts}Credit Note Number:{/ts}</font></b></td>\n          <td>\n            <font size = \"1\" align = \"right\">\n              {if $domain_supplemental_address_2 }{$domain_supplemental_address_2}{/if}\n              {if $domain_state }{$domain_state}{/if}\n            </font>\n          </td>\n        </tr>\n        <tr>\n          <td style = \"padding-left:17px;\"><font size = \"1\" align = \"center\">{$supplemental_address_2}  {$stateProvinceAbbreviation}</font></td>\n          <td colspan=\"1\"></td>\n          <td style = \"padding-left:70px;\"><font size = \"1\" align = \"right\">{$creditnote_id}</font></td>\n          <td>\n            <font size = \"1\" align = \"right\">\n              {if $domain_city}{$domain_city}{/if}\n              {if $domain_postal_code }{$domain_postal_code}{/if}\n            </font>\n          </td>\n        </tr>\n        <tr>\n          <td style = \"padding-left:17px;\"><font size = \"1\" align = \"right\">{$city}  {$postal_code}</font></td>\n          <td colspan=\"1\"></td>\n          <td height = \"10\" style = \"padding-left:70px;\"><b><font size = \"1\"align = \"right\">{ts}Reference:{/ts}</font></b></td>\n          <td>\n            <font size = \"1\" align = \"right\">\n              {if $domain_country}{$domain_country}{/if}\n            </font>\n          </td>\n        </tr>\n        <tr>\n          <td></td>\n          <td></td>\n          <td style = \"padding-left:70px;\"><font size = \"1\"align = \"right\">{$source}</font></td>\n          <td>\n            <font size = \"1\" align = \"right\">\n              {if $domain_phone}{$domain_phone}{/if}\n            </font>\n          </td>\n        </tr>\n        <tr>\n          <td></td>\n          <td></td>\n          <td></td>\n          <td>\n            <font size = \"1\" align = \"right\">\n              {if $domain_email}{$domain_email}{/if}\n            </font>\n          </td>\n        </tr>\n      </table>\n\n      <table style = \"margin-top:75px;font-family: Arial, Verdana, sans-serif\" width = \"590\" border = \"0\"cellpadding = \"-5\" cellspacing = \"19\" id = \"desc\">\n        <tr>\n          <td colspan = \"2\" {$valueStyle}>\n            <table> {* FIXME: style this table so that it looks like the text version (justification, etc.) *}\n              <tr>\n                <th style = \"padding-right:28px;text-align:left;font-weight:bold;width:200px;\"><font size = \"1\">{ts}Description{/ts}</font></th>\n                <th style = \"padding-left:28px;text-align:right;font-weight:bold;\"><font size = \"1\">{ts}Quantity{/ts}</font></th>\n                <th style = \"padding-left:28px;text-align:right;font-weight:bold;\"><font size = \"1\">{ts}Unit Price{/ts}</font></th>\n                <th style = \"padding-left:28px;text-align:right;font-weight:bold;\"><font size = \"1\">{$taxTerm} </font></th>\n                <th style = \"padding-left:28px;text-align:right;font-weight:bold;\"><font size = \"1\">{ts 1=$defaultCurrency}Amount %1{/ts}</font></th>\n              </tr>\n              {foreach from=$lineItem item=value key=priceset name=pricevalue}\n                {if $smarty.foreach.pricevalue.index eq 0}\n                  <tr><td  colspan = \"5\" ><hr size=\"3\" style = \"color:#000;\"></hr></td></tr>\n                {else}\n                  <tr><td  colspan = \"5\" style = \"color:#F5F5F5;\"><hr></hr></td></tr>\n                {/if}\n                <tr>\n                  <td style =\"text-align:left;\"  >\n                    <font size = \"1\">\n                      {if $value.html_type eq \'Text\'}\n                        {$value.label}\n                      {else}\n                        {$value.field_title} - {$value.label}\n                      {/if}\n                      {if $value.description}\n                        <div>{$value.description|truncate:30:\"...\"}</div>\n                      {/if}\n                    </font>\n                  </td>\n                  <td style = \"padding-left:28px;text-align:right;\"><font size = \"1\"> {$value.qty}</font></td>\n                  <td style = \"padding-left:28px;text-align:right;\"><font size = \"1\"> {$value.unit_price|crmMoney:$currency}</font></td>\n                  {if $value.tax_amount != \'\'}\n                    <td style = \"padding-left:28px;text-align:right;\"><font size = \"1\"> {$value.tax_rate}%</font></td>\n                  {else}\n                    <td style = \"padding-left:28px;text-align:right\"><font size = \"1\" >{ts 1=$taxTerm}No %1{/ts}</font></td>\n                  {/if}\n                  <td style = \"padding-left:28px;text-align:right;\"><font size = \"1\" >{$value.subTotal|crmMoney:$currency}</font></td>\n                </tr>\n              {/foreach}\n              <tr><td  colspan = \"5\" style = \"color:#F5F5F5;\"><hr></hr></td></tr>\n              <tr>\n                <td colspan = \"3\"></td>\n                <td style = \"padding-left:28px;text-align:right;\"><font size = \"1\">{ts}Sub Total{/ts}</font></td>\n                <td style = \"padding-left:28px;text-align:right;\"><font size = \"1\"> {$subTotal|crmMoney:$currency}</font></td>\n              </tr>\n              {foreach from = $dataArray item = value key = priceset}\n                <tr>\n                  <td colspan = \"3\"></td>\n                  {if $priceset}\n                    <td style = \"padding-left:28px;text-align:right;\"><font size = \"1\"> {ts 1=$taxTerm 2=$priceset}TOTAL %1 %2%{/ts}</font></td>\n                    <td style = \"padding-left:28px;text-align:right;\"><font size = \"1\" align = \"right\">{$value|crmMoney:$currency}</font> </td>\n                  {elseif $priceset == 0}\n                    <td style = \"padding-left:28px;text-align:right;\"><font size = \"1\">{ts 1=$taxTerm}TOTAL NO %1{/ts}</font></td>\n                    <td style = \"padding-left:28px;text-align:right;\"><font size = \"1\" align = \"right\">{$value|crmMoney:$currency}</font> </td>\n                </tr>\n                {/if}\n              {/foreach}\n              <tr>\n                <td colspan = \"3\"></td>\n                <td colspan = \"2\"><hr></hr></td>\n              </tr>\n              <tr>\n                <td colspan = \"3\"></td>\n                <td style = \"padding-left:28px;text-align:right;\"><b><font size = \"1\">{ts 1=$defaultCurrency}TOTAL %1{/ts}</font></b></td>\n                <td style = \"padding-left:28px;text-align:right;\"><font size = \"1\">{$amount|crmMoney:$currency}</font></td>\n              </tr>\n              {if $is_pay_later == 0}\n                <tr>\n                  <td colspan = \"3\"></td>\n                  <td style = \"padding-left:28px;text-align:right;\"><font size = \"1\" >{ts}LESS Credit to invoice(s){/ts}</font></td>\n                  <td style = \"padding-left:28px;text-align:right;\"><font size = \"1\">{$amount|crmMoney:$currency}</font></td>\n                </tr>\n                <tr>\n                  <td colspan = \"3\"></td>\n                  <td colspan = \"2\" ><hr></hr></td>\n                </tr>\n                <tr>\n                  <td colspan = \"3\"></td>\n                  <td style = \"padding-left:28px;text-align:right;\"><b><font size = \"1\">{ts}REMAINING CREDIT{/ts}</font></b></td>\n                  <td style = \"padding-left:28px;text-align:right;\"><b><font size = \"1\">{$amountDue|crmMoney:$currency}</font></b></td>\n                  <td style = \"padding-left:28px;\"><font size = \"1\" align = \"right\"></font></td>\n                </tr>\n              {/if}\n              <br/><br/><br/>\n              <tr>\n                <td colspan = \"3\"></td>\n              </tr>\n              <tr>\n                <td></td>\n                <td colspan = \"3\"></td>\n              </tr>\n            </table>\n          </td>\n        </tr>\n      </table>\n      <table style = \"margin-top:5px;padding-right:45px;\">\n        <tr>\n          <td><img src = \"{$resourceBase}/i/contribute/cut_line.png\" height = \"15\" width = \"630\"></td>\n        </tr>\n      </table>\n\n      <table style = \"margin-top:6px;padding-right:20px;font-family: Arial, Verdana, sans-serif\" width = \"507\" border = \"0\"cellpadding = \"-5\" cellspacing=\"19\" id = \"desc\">\n        <tr>\n          <td width=\"60%\"><font size = \"4\" align = \"right\"><b>{ts}CREDIT ADVICE{/ts}</b><br/><br /><div  style=\"font-size:10px;max-width:300px;\">{ts}Please do not pay on this advice. Deduct the amount of this Credit Note from your next payment to us{/ts}</div><br/></font></td>\n          <td width=\"40%\">\n            <table    align=\"right\" >\n              <tr>\n                <td colspan = \"2\"></td>\n                <td><font size = \"1\" align = \"right\" style=\"font-weight:bold;\">{ts}Customer:{/ts} </font></td>\n                <td><font size = \"1\" align = \"right\" >{$display_name}</font></td>\n              </tr>\n              <tr>\n                <td colspan = \"2\"></td>\n                <td><font size = \"1\" align = \"right\" style=\"font-weight:bold;\">{ts}Credit Note#:{/ts} </font></td>\n                <td><font size = \"1\" align = \"right\">{$creditnote_id}</font></td>\n              </tr>\n              <tr><td  colspan = \"5\"style = \"color:#F5F5F5;\"><hr></hr></td></tr>\n              <tr>\n                <td colspan = \"2\"></td>\n                <td><font size = \"1\" align = \"right\" style=\"font-weight:bold;\">{ts}Credit Amount:{/ts}</font></td>\n                <td width=\'50px\'><font size = \"1\" align = \"right\" style=\"font-weight:bold;\">{$amount|crmMoney:$currency}</font></td>\n              </tr>\n            </table>\n          </td>\n        </tr>\n      </table>\n    {/if}\n    </center>\n  </body>\n</html>\n',1,823,1,0,0,NULL),(10,'Contributions - Invoice','{if $title}\n  {if $component}\n    {if $component == \'event\'}\n      {ts 1=$title}Event Registration Invoice: %1{/ts}\n    {else}\n      {ts 1=$title}Contribution Invoice: %1{/ts}\n    {/if}\n  {/if}\n{else}\n  {ts}Invoice{/ts}\n{/if}\n - {contact.display_name}\n','{ts}Contribution Invoice{/ts}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns = \"http://www.w3.org/1999/xhtml\">\n  <head>\n    <meta http-equiv = \"Content-Type\" content=\"text/html; charset=UTF-8\" />\n      <title></title>\n  </head>\n  <body>\n    <table style = \"margin-top:2px;padding-left:7px;\">\n      <tr>\n        <td><img src = \"{$resourceBase}/i/civi99.png\" height = \"34px\" width = \"99px\"></td>\n      </tr>\n    </table>\n    <center>\n      <table style = \"padding-right:19px;font-family: Arial, Verdana, sans-serif;\" width = \"500\" height = \"100\" border = \"0\" cellpadding = \"2\" cellspacing = \"1\">\n        <tr>\n          <td style = \"padding-left:15px;\" ><b><font size = \"4\" align = \"center\">{ts}INVOICE{/ts}</font></b></td>\n          <td colspan = \"1\"></td>\n          <td style = \"padding-left:70px;\"><b><font size = \"1\" align = \"center\" >{ts}Invoice Date:{/ts}</font></b></td>\n          <td><font size = \"1\" align = \"right\">{$domain_organization}</font></td>\n        </tr>\n        <tr>\n          {if $organization_name}\n            <td style = \"padding-left:17px;\"><font size = \"1\" align = \"center\" >{$display_name}  ({$organization_name})</font></td>\n          {else}\n            <td style = \"padding-left:15px;\"><font size = \"1\" align = \"center\" >{$display_name}</font></td>\n          {/if}\n          <td colspan = \"1\"></td>\n          <td style = \"padding-left:70px;\"><font size = \"1\" align = \"right\">{$invoice_date}</font></td>\n          <td>\n            <font size = \"1\" align = \"right\">\n              {if $domain_street_address }{$domain_street_address}{/if}\n              {if $domain_supplemental_address_1 }{$domain_supplemental_address_1}{/if}\n            </font>\n          </td>\n        </tr>\n        <tr>\n          <td style = \"padding-left:17px;\"><font size = \"1\" align = \"center\">{$street_address}   {$supplemental_address_1}</font></td>\n          <td colspan = \"1\"></td>\n          <td style = \"padding-left:70px;\"><b><font size = \"1\" align = \"right\">{ts}Invoice Number:{/ts}</font></b></td>\n          <td>\n            <font size = \"1\" align = \"right\">\n              {if $domain_supplemental_address_2 }{$domain_supplemental_address_2}{/if}\n              {if $domain_state }{$domain_state}{/if}\n            </font>\n          </td>\n        </tr>\n        <tr>\n          <td style = \"padding-left:17px;\"><font size = \"1\" align = \"center\">{$supplemental_address_2}  {$stateProvinceAbbreviation}</font></td>\n          <td colspan=\"1\"></td>\n          <td style = \"padding-left:70px;\"><font size = \"1\" align = \"right\">{$invoice_number}</font></td>\n          <td>\n            <font size = \"1\" align = \"right\">\n              {if $domain_city}{$domain_city}{/if}\n              {if $domain_postal_code }{$domain_postal_code}{/if}\n            </font>\n          </td>\n        </tr>\n        <tr>\n          <td style = \"padding-left:17px;\"><font size = \"1\" align = \"right\">{$city}  {$postal_code}</font></td>\n          <td colspan=\"1\"></td>\n          <td height = \"10\" style = \"padding-left:70px;\"><b><font size = \"1\"align = \"right\">{ts}Reference:{/ts}</font></b></td>\n          <td><font size = \"1\" align = \"right\"> {if $domain_country}{$domain_country}{/if}</font></td>\n        </tr>\n        <tr>\n          <td></td>\n          <td></td>\n          <td style = \"padding-left:70px;\"><font size = \"1\"align = \"right\">{$source}</font></td>\n          <td><font size = \"1\" align = \"right\"> {if $domain_phone}{$domain_phone}{/if}</font> </td>\n        </tr>\n        <tr>\n          <td></td>\n          <td></td>\n          <td></td>\n          <td><font size = \"1\" align = \"right\"> {if $domain_email}{$domain_email}{/if}</font> </td>\n        </tr>\n      </table>\n      <table style = \"margin-top:75px;font-family: Arial, Verdana, sans-serif\" width = \"590\" border = \"0\"cellpadding = \"-5\" cellspacing = \"19\" id = \"desc\">\n        <tr>\n          <td colspan = \"2\" {$valueStyle}>\n            <table> {* FIXME: style this table so that it looks like the text version (justification, etc.) *}\n              <tr>\n                <th style = \"padding-right:34px;text-align:left;font-weight:bold;width:200px;\"><font size = \"1\">{ts}Description{/ts}</font></th>\n                <th style = \"padding-left:34px;text-align:right;font-weight:bold;\" ><font size = \"1\">{ts}Quantity{/ts}</font></th>\n                <th style = \"padding-left:34px;text-align:right;font-weight:bold;\"><font size = \"1\">{ts}Unit Price{/ts}</font></th>\n                <th style = \"padding-left:34px;text-align:right;font-weight:bold;width:20px;\"><font size = \"1\">{$taxTerm} </font></th>\n                <th style = \"padding-left:34px;text-align:right;font-weight:bold;\"><font size = \"1\">{ts 1=$defaultCurrency}Amount %1{/ts}</font></th>\n              </tr>\n              {foreach from=$lineItem item=value key=priceset name=taxpricevalue}\n                {if $smarty.foreach.taxpricevalue.index eq 0}\n                  <tr>\n                    <td colspan = \"5\" ><hr size=\"3\" style = \"color:#000;\"></hr></td>\n                  </tr>\n                {else}\n                  <tr>\n                    <td  colspan = \"5\" style = \"color:#F5F5F5;\"><hr></hr></td>\n                  </tr>\n                {/if}\n                <tr>\n                  <td style=\"text-align:left;\" ><font size = \"1\">\n                    {if $value.html_type eq \'Text\'}\n                      {$value.label}\n                    {else}\n                      {$value.field_title} - {$value.label}\n                    {/if}\n                    {if $value.description}\n                      <div>{$value.description|truncate:30:\"...\"}</div>\n                    {/if}\n                    </font>\n                  </td>\n                  <td style = \"padding-left:34px;text-align:right;\"><font size = \"1\"> {$value.qty}</font></td>\n                  <td style = \"padding-left:34px;text-align:right;\"><font size = \"1\"> {$value.unit_price|crmMoney:$currency}</font></td>\n                  {if $value.tax_amount != \'\'}\n                    <td style = \"padding-left:34px;text-align:right;width:20px;\"><font size = \"1\"> {$value.tax_rate}%</font></td>\n                  {else}\n                    <td style = \"padding-left:34px;text-align:right;width:20px;\"><font size = \"1\">{ts 1=$taxTerm}No %1{/ts}</font></td>\n                  {/if}\n                  <td style = \"padding-left:34px;text-align:right;\"><font size = \"1\">{$value.subTotal|crmMoney:$currency}</font></td>\n                </tr>\n              {/foreach}\n              <tr><td  colspan = \"5\" style = \"color:#F5F5F5;\"><hr></hr></td></tr>\n              <tr>\n                <td colspan = \"3\"></td>\n                <td style = \"padding-left:20px;text-align:right;\"><font size = \"1\">{ts}Sub Total{/ts}</font></td>\n                <td style = \"padding-left:34px;text-align:right;\"><font size = \"1\"> {$subTotal|crmMoney:$currency}</font></td>\n              </tr>\n              {foreach from = $dataArray item = value key = priceset}\n                <tr>\n                  <td colspan = \"3\"></td>\n                    {if $priceset}\n                      <td style = \"padding-left:20px;text-align:right;\"><font size = \"1\"> {ts 1=$taxTerm 2=$priceset}TOTAL %1 %2%{/ts}</font></td>\n                      <td style = \"padding-left:34px;text-align:right\"><font size = \"1\" align = \"right\">{$value|crmMoney:$currency}</font> </td>\n                    {elseif $priceset == 0}\n                      <td style = \"padding-left:20px;text-align:right;\"><font size = \"1\">{ts 1=$taxTerm}TOTAL NO %1{/ts}</font></td>\n                      <td style = \"padding-left:34px;text-align:right\"><font size = \"1\" align = \"right\">{$value|crmMoney:$currency}</font> </td>\n                </tr>\n              {/if}\n              {/foreach}\n              <tr>\n                <td colspan = \"3\"></td>\n                <td colspan = \"2\"><hr></hr></td>\n              </tr>\n              <tr>\n                <td colspan = \"3\"></td>\n                <td style = \"padding-left:20px;text-align:right;\"><b><font size = \"1\">{ts 1=$defaultCurrency}TOTAL %1{/ts}</font></b></td>\n                <td style = \"padding-left:34px;text-align:right;\"><font size = \"1\">{$amount|crmMoney:$currency}</font></td>\n                <td style = \"padding-left:34px;\"><font size = \"1\" align = \"right\"></font></td>\n              </tr>\n              {if $is_pay_later == 0}\n                <tr>\n                  <td colspan = \"3\"></td>\n                  <td style = \"padding-left:20px;text-align:right;\"><font size = \"1\">\n                    {if $contribution_status_id == $refundedStatusId}\n                      {ts}LESS Amount Credited{/ts}\n                    {else}\n                      {ts}LESS Amount Paid{/ts}\n                    {/if}\n                    </font>\n                  </td>\n                  <td style = \"padding-left:34px;text-align:right;\"><font size = \"1\">{$amountPaid|crmMoney:$currency}</font></td>\n                </tr>\n                <tr>\n                  <td colspan = \"3\"></td>\n                  <td colspan = \"2\" ><hr></hr></td>\n                </tr>\n                <tr>\n                  <td colspan = \"3\"></td>\n                  <td style = \"padding-left:20px;text-align:right;\"><b><font size = \"1\">{ts}AMOUNT DUE:{/ts} </font></b></td>\n                  <td style = \"padding-left:34px;text-align:right;\"><b><font size = \"1\">{$amountDue|crmMoney:$currency}</font></b></td>\n                  <td style = \"padding-left:34px;\"><font size = \"1\" align = \"right\"></font></td>\n                </tr>\n              {/if}\n              <br/><br/><br/>\n              <tr>\n                <td colspan = \"3\"></td>\n              </tr>\n              {if $contribution_status_id == $pendingStatusId && $is_pay_later == 1}\n                <tr>\n                  <td><b><font size = \"1\" align = \"center\">{ts 1=$dueDate}DUE DATE: %1{/ts}</font></b></td>\n                  <td colspan = \"3\"></td>\n                </tr>\n              {/if}\n            </table>\n          </td>\n        </tr>\n      </table>\n      {if $contribution_status_id == $pendingStatusId && $is_pay_later == 1}\n        <table style = \"margin-top:5px;padding-right:45px;\">\n          <tr>\n            <td><img src = \"{$resourceBase}/i/contribute/cut_line.png\" height = \"15\" width = \"630\"></td>\n          </tr>\n        </table>\n        <table style = \"margin-top:6px;padding-right:20px;font-family: Arial, Verdana, sans-serif\" width = \"480\" border = \"0\"cellpadding = \"-5\" cellspacing=\"19\" id = \"desc\">\n          <tr>\n            <td width=\"60%\"><b><font size = \"4\" align = \"right\">{ts}PAYMENT ADVICE{/ts}</font></b> <br/><br/> <font size = \"1\" align = \"right\"><b>{ts}To: {/ts}</b><div style=\"width:17em;word-wrap:break-word;\">\n              {$domain_organization} <br />\n              {$domain_street_address} {$domain_supplemental_address_1} <br />\n              {$domain_supplemental_address_2} {$domain_state} <br />\n              {$domain_city} {$domain_postal_code} <br />\n              {$domain_country} <br />\n              {$domain_phone} <br />\n              {$domain_email}</div>\n              </font><br/><br/><font size=\"1\" align=\"right\">{$notes}</font>\n            </td>\n            <td width=\"40%\">\n              <table  cellpadding = \"-10\" cellspacing = \"22\"  align=\"right\" >\n                <tr>\n                  <td colspan = \"2\"></td>\n                  <td><font size = \"1\" align = \"right\" style=\"font-weight:bold;\">{ts}Customer: {/ts}</font></td>\n                  <td ><font size = \"1\" align = \"right\">{$display_name}</font></td>\n                </tr>\n                <tr>\n                  <td colspan = \"2\"></td>\n                  <td><font size = \"1\" align = \"right\" style=\"font-weight:bold;\">{ts}Invoice Number: {/ts}</font></td>\n                  <td><font size = \"1\" align = \"right\">{$invoice_number}</font></td>\n                </tr>\n                <tr><td colspan = \"5\"style = \"color:#F5F5F5;\"><hr></hr></td></tr>\n                {if $is_pay_later == 1}\n                  <tr>\n                    <td colspan = \"2\"></td>\n                    <td><font size = \"1\" align = \"right\" style=\"font-weight:bold;\">{ts}Amount Due:{/ts}</font></td>\n                    <td><font size = \"1\" align = \"right\" style=\"font-weight:bold;\">{$amount|crmMoney:$currency}</font></td>\n                  </tr>\n                {else}\n                  <tr>\n                    <td colspan = \"2\"></td>\n                    <td><font size = \"1\" align = \"right\" style=\"font-weight:bold;\">{ts}Amount Due: {/ts}</font></td>\n                    <td><font size = \"1\" align = \"right\" style=\"font-weight:bold;\">{$amountDue|crmMoney:$currency}</font></td>\n                  </tr>\n                {/if}\n                <tr>\n                  <td colspan = \"2\"></td>\n                  <td><font size = \"1\" align = \"right\" style=\"font-weight:bold;\">{ts}Due Date:  {/ts}</font></td>\n                  <td><font size = \"1\" align = \"right\">{$dueDate}</font></td>\n                </tr>\n                <tr>\n                  <td colspan = \"5\" style = \"color:#F5F5F5;\"><hr></hr></td>\n                </tr>\n              </table>\n            </td>\n          </tr>\n        </table>\n      {/if}\n\n      {if $contribution_status_id == $refundedStatusId || $contribution_status_id == $cancelledStatusId}\n        <table style = \"margin-top:2px;padding-left:7px;page-break-before: always;\">\n          <tr>\n            <td><img src = \"{$resourceBase}/i/civi99.png\" height = \"34px\" width = \"99px\"></td>\n          </tr>\n        </table>\n    <center>\n\n      <table style = \"padding-right:19px;font-family: Arial, Verdana, sans-serif\" width = \"500\" height = \"100\" border = \"0\" cellpadding = \"2\" cellspacing = \"1\">\n        <tr>\n          <td style = \"padding-left:15px;\" ><b><font size = \"4\" align = \"center\">{ts}CREDIT NOTE{/ts}</font></b></td>\n          <td colspan = \"1\"></td>\n          <td style = \"padding-left:70px;\"><b><font size = \"1\" align = \"right\">{ts}Date:{/ts}</font></b></td>\n          <td><font size = \"1\" align = \"right\">{$domain_organization}</font></td>\n        </tr>\n        <tr>\n          {if $organization_name}\n            <td style = \"padding-left:17px;\"><font size = \"1\" align = \"center\">{$display_name}  ({$organization_name})</font></td>\n          {else}\n            <td style = \"padding-left:17px;\"><font size = \"1\" align = \"center\">{$display_name}</font></td>\n          {/if}\n          <td colspan = \"1\"></td>\n          <td style = \"padding-left:70px;\"><font size = \"1\" align = \"right\">{$invoice_date}</font></td>\n          <td>\n            <font size = \"1\" align = \"right\">\n              {if $domain_street_address }{$domain_street_address}{/if}\n              {if $domain_supplemental_address_1 }{$domain_supplemental_address_1}{/if}\n            </font>\n          </td>\n        </tr>\n        <tr>\n          <td style = \"padding-left:17px;\"><font size = \"1\" align = \"center\">{$street_address}   {$supplemental_address_1}</font></td>\n          <td colspan = \"1\"></td>\n          <td style = \"padding-left:70px;\"><b><font size = \"1\" align = \"right\">{ts}Credit Note Number:{/ts}</font></b></td>\n          <td>\n            <font size = \"1\" align = \"right\">\n              {if $domain_supplemental_address_2 }{$domain_supplemental_address_2}{/if}\n              {if $domain_state }{$domain_state}{/if}\n            </font>\n          </td>\n        </tr>\n        <tr>\n          <td style = \"padding-left:17px;\"><font size = \"1\" align = \"center\">{$supplemental_address_2}  {$stateProvinceAbbreviation}</font></td>\n          <td colspan=\"1\"></td>\n          <td style = \"padding-left:70px;\"><font size = \"1\" align = \"right\">{$creditnote_id}</font></td>\n          <td>\n            <font size = \"1\" align = \"right\">\n              {if $domain_city}{$domain_city}{/if}\n              {if $domain_postal_code }{$domain_postal_code}{/if}\n            </font>\n          </td>\n        </tr>\n        <tr>\n          <td style = \"padding-left:17px;\"><font size = \"1\" align = \"right\">{$city}  {$postal_code}</font></td>\n          <td colspan=\"1\"></td>\n          <td height = \"10\" style = \"padding-left:70px;\"><b><font size = \"1\"align = \"right\">{ts}Reference:{/ts}</font></b></td>\n          <td>\n            <font size = \"1\" align = \"right\">\n              {if $domain_country}{$domain_country}{/if}\n            </font>\n          </td>\n        </tr>\n        <tr>\n          <td></td>\n          <td></td>\n          <td style = \"padding-left:70px;\"><font size = \"1\"align = \"right\">{$source}</font></td>\n          <td>\n            <font size = \"1\" align = \"right\">\n              {if $domain_phone}{$domain_phone}{/if}\n            </font>\n          </td>\n        </tr>\n        <tr>\n          <td></td>\n          <td></td>\n          <td></td>\n          <td>\n            <font size = \"1\" align = \"right\">\n              {if $domain_email}{$domain_email}{/if}\n            </font>\n          </td>\n        </tr>\n      </table>\n\n      <table style = \"margin-top:75px;font-family: Arial, Verdana, sans-serif\" width = \"590\" border = \"0\"cellpadding = \"-5\" cellspacing = \"19\" id = \"desc\">\n        <tr>\n          <td colspan = \"2\" {$valueStyle}>\n            <table> {* FIXME: style this table so that it looks like the text version (justification, etc.) *}\n              <tr>\n                <th style = \"padding-right:28px;text-align:left;font-weight:bold;width:200px;\"><font size = \"1\">{ts}Description{/ts}</font></th>\n                <th style = \"padding-left:28px;text-align:right;font-weight:bold;\"><font size = \"1\">{ts}Quantity{/ts}</font></th>\n                <th style = \"padding-left:28px;text-align:right;font-weight:bold;\"><font size = \"1\">{ts}Unit Price{/ts}</font></th>\n                <th style = \"padding-left:28px;text-align:right;font-weight:bold;\"><font size = \"1\">{$taxTerm} </font></th>\n                <th style = \"padding-left:28px;text-align:right;font-weight:bold;\"><font size = \"1\">{ts 1=$defaultCurrency}Amount %1{/ts}</font></th>\n              </tr>\n              {foreach from=$lineItem item=value key=priceset name=pricevalue}\n                {if $smarty.foreach.pricevalue.index eq 0}\n                  <tr><td  colspan = \"5\" ><hr size=\"3\" style = \"color:#000;\"></hr></td></tr>\n                {else}\n                  <tr><td  colspan = \"5\" style = \"color:#F5F5F5;\"><hr></hr></td></tr>\n                {/if}\n                <tr>\n                  <td style =\"text-align:left;\"  >\n                    <font size = \"1\">\n                      {if $value.html_type eq \'Text\'}\n                        {$value.label}\n                      {else}\n                        {$value.field_title} - {$value.label}\n                      {/if}\n                      {if $value.description}\n                        <div>{$value.description|truncate:30:\"...\"}</div>\n                      {/if}\n                    </font>\n                  </td>\n                  <td style = \"padding-left:28px;text-align:right;\"><font size = \"1\"> {$value.qty}</font></td>\n                  <td style = \"padding-left:28px;text-align:right;\"><font size = \"1\"> {$value.unit_price|crmMoney:$currency}</font></td>\n                  {if $value.tax_amount != \'\'}\n                    <td style = \"padding-left:28px;text-align:right;\"><font size = \"1\"> {$value.tax_rate}%</font></td>\n                  {else}\n                    <td style = \"padding-left:28px;text-align:right\"><font size = \"1\" >{ts 1=$taxTerm}No %1{/ts}</font></td>\n                  {/if}\n                  <td style = \"padding-left:28px;text-align:right;\"><font size = \"1\" >{$value.subTotal|crmMoney:$currency}</font></td>\n                </tr>\n              {/foreach}\n              <tr><td  colspan = \"5\" style = \"color:#F5F5F5;\"><hr></hr></td></tr>\n              <tr>\n                <td colspan = \"3\"></td>\n                <td style = \"padding-left:28px;text-align:right;\"><font size = \"1\">{ts}Sub Total{/ts}</font></td>\n                <td style = \"padding-left:28px;text-align:right;\"><font size = \"1\"> {$subTotal|crmMoney:$currency}</font></td>\n              </tr>\n              {foreach from = $dataArray item = value key = priceset}\n                <tr>\n                  <td colspan = \"3\"></td>\n                  {if $priceset}\n                    <td style = \"padding-left:28px;text-align:right;\"><font size = \"1\"> {ts 1=$taxTerm 2=$priceset}TOTAL %1 %2%{/ts}</font></td>\n                    <td style = \"padding-left:28px;text-align:right;\"><font size = \"1\" align = \"right\">{$value|crmMoney:$currency}</font> </td>\n                  {elseif $priceset == 0}\n                    <td style = \"padding-left:28px;text-align:right;\"><font size = \"1\">{ts 1=$taxTerm}TOTAL NO %1{/ts}</font></td>\n                    <td style = \"padding-left:28px;text-align:right;\"><font size = \"1\" align = \"right\">{$value|crmMoney:$currency}</font> </td>\n                </tr>\n                {/if}\n              {/foreach}\n              <tr>\n                <td colspan = \"3\"></td>\n                <td colspan = \"2\"><hr></hr></td>\n              </tr>\n              <tr>\n                <td colspan = \"3\"></td>\n                <td style = \"padding-left:28px;text-align:right;\"><b><font size = \"1\">{ts 1=$defaultCurrency}TOTAL %1{/ts}</font></b></td>\n                <td style = \"padding-left:28px;text-align:right;\"><font size = \"1\">{$amount|crmMoney:$currency}</font></td>\n              </tr>\n              {if $is_pay_later == 0}\n                <tr>\n                  <td colspan = \"3\"></td>\n                  <td style = \"padding-left:28px;text-align:right;\"><font size = \"1\" >{ts}LESS Credit to invoice(s){/ts}</font></td>\n                  <td style = \"padding-left:28px;text-align:right;\"><font size = \"1\">{$amount|crmMoney:$currency}</font></td>\n                </tr>\n                <tr>\n                  <td colspan = \"3\"></td>\n                  <td colspan = \"2\" ><hr></hr></td>\n                </tr>\n                <tr>\n                  <td colspan = \"3\"></td>\n                  <td style = \"padding-left:28px;text-align:right;\"><b><font size = \"1\">{ts}REMAINING CREDIT{/ts}</font></b></td>\n                  <td style = \"padding-left:28px;text-align:right;\"><b><font size = \"1\">{$amountDue|crmMoney:$currency}</font></b></td>\n                  <td style = \"padding-left:28px;\"><font size = \"1\" align = \"right\"></font></td>\n                </tr>\n              {/if}\n              <br/><br/><br/>\n              <tr>\n                <td colspan = \"3\"></td>\n              </tr>\n              <tr>\n                <td></td>\n                <td colspan = \"3\"></td>\n              </tr>\n            </table>\n          </td>\n        </tr>\n      </table>\n      <table style = \"margin-top:5px;padding-right:45px;\">\n        <tr>\n          <td><img src = \"{$resourceBase}/i/contribute/cut_line.png\" height = \"15\" width = \"630\"></td>\n        </tr>\n      </table>\n\n      <table style = \"margin-top:6px;padding-right:20px;font-family: Arial, Verdana, sans-serif\" width = \"507\" border = \"0\"cellpadding = \"-5\" cellspacing=\"19\" id = \"desc\">\n        <tr>\n          <td width=\"60%\"><font size = \"4\" align = \"right\"><b>{ts}CREDIT ADVICE{/ts}</b><br/><br /><div  style=\"font-size:10px;max-width:300px;\">{ts}Please do not pay on this advice. Deduct the amount of this Credit Note from your next payment to us{/ts}</div><br/></font></td>\n          <td width=\"40%\">\n            <table    align=\"right\" >\n              <tr>\n                <td colspan = \"2\"></td>\n                <td><font size = \"1\" align = \"right\" style=\"font-weight:bold;\">{ts}Customer:{/ts} </font></td>\n                <td><font size = \"1\" align = \"right\" >{$display_name}</font></td>\n              </tr>\n              <tr>\n                <td colspan = \"2\"></td>\n                <td><font size = \"1\" align = \"right\" style=\"font-weight:bold;\">{ts}Credit Note#:{/ts} </font></td>\n                <td><font size = \"1\" align = \"right\">{$creditnote_id}</font></td>\n              </tr>\n              <tr><td  colspan = \"5\"style = \"color:#F5F5F5;\"><hr></hr></td></tr>\n              <tr>\n                <td colspan = \"2\"></td>\n                <td><font size = \"1\" align = \"right\" style=\"font-weight:bold;\">{ts}Credit Amount:{/ts}</font></td>\n                <td width=\'50px\'><font size = \"1\" align = \"right\" style=\"font-weight:bold;\">{$amount|crmMoney:$currency}</font></td>\n              </tr>\n            </table>\n          </td>\n        </tr>\n      </table>\n    {/if}\n    </center>\n  </body>\n</html>\n',1,823,0,1,0,NULL),(11,'Contributions - Recurring Start and End Notification','{ts}Recurring Contribution Notification{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{if $recur_txnType eq \'START\'}\n{if $auto_renew_membership}\n{ts}Thanks for your auto renew membership sign-up.{/ts}\n\n\n{ts 1=$recur_frequency_interval 2=$recur_frequency_unit}This membership will be automatically renewed every %1 %2(s).{/ts}\n\n{if $cancelSubscriptionUrl}\n{ts 1=$cancelSubscriptionUrl}You can cancel the auto-renewal option by <a href=\"%1\">visiting this web page</a>.{/ts}\n\n{/if}\n\n{if $updateSubscriptionBillingUrl}\n{ts 1=$updateSubscriptionBillingUrl}You can update billing details for this automatically renewed membership by <a href=\"%1\">visiting this web page</a>.{/ts}\n\n{/if}\n{else}\n{ts}Thanks for your recurring contribution sign-up.{/ts}\n\n\n{ts 1=$recur_frequency_interval 2=$recur_frequency_unit 3=$recur_installments}This recurring contribution will be automatically processed every %1 %2(s){/ts}{if $recur_installments } {ts 1=$recur_installments} for a total of %1 installment(s){/ts}{/if}.\n\n{ts}Start Date{/ts}:  {$recur_start_date|crmDate}\n\n{if $cancelSubscriptionUrl}\n{ts 1=$cancelSubscriptionUrl}You can cancel the recurring contribution option by <a href=\"%1\">visiting this web page</a>.{/ts}\n\n{/if}\n\n{if $updateSubscriptionBillingUrl}\n{ts 1=$updateSubscriptionBillingUrl}You can update billing details for this recurring contribution by <a href=\"%1\">visiting this web page</a>.{/ts}\n\n{/if}\n\n{if $updateSubscriptionUrl}\n{ts 1=$updateSubscriptionUrl}You can update recurring contribution amount or change the number of installments for this recurring contribution by <a href=\"%1\">visiting this web page</a>.{/ts}\n\n{/if}\n{/if}\n\n{elseif $recur_txnType eq \'END\'}\n{if $auto_renew_membership}\n{ts}Your auto renew membership sign-up has ended and your membership will not be automatically renewed.{/ts}\n\n\n{else}\n{ts}Your recurring contribution term has ended.{/ts}\n\n\n{ts 1=$recur_installments}You have successfully completed %1 recurring contributions. Thank you.{/ts}\n\n\n==================================================\n{ts 1=$recur_installments}Interval of Subscription for %1 installment(s){/ts}\n\n==================================================\n{ts}Start Date{/ts}: {$recur_start_date|crmDate}\n\n{ts}End Date{/ts}: {$recur_end_date|crmDate}\n\n{/if}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n   </td>\n  </tr>\n\n  <tr>\n   <td>&nbsp;</td>\n  </tr>\n\n    {if $recur_txnType eq \'START\'}\n     {if $auto_renew_membership}\n       <tr>\n        <td>\n         <p>{ts}Thanks for your auto renew membership sign-up.{/ts}</p>\n         <p>{ts 1=$recur_frequency_interval 2=$recur_frequency_unit}This membership will be automatically renewed every %1 %2(s). {/ts}</p>\n        </td>\n       </tr>\n       {if $cancelSubscriptionUrl}\n       <tr>\n         <td {$labelStyle}>\n           {ts 1=$cancelSubscriptionUrl}You can cancel the auto-renewal option by <a href=\"%1\">visiting this web page</a>.{/ts}\n         </td>\n       </tr>\n       {/if}\n       {if $updateSubscriptionBillingUrl}\n         <tr>\n          <td {$labelStyle}>\n           {ts 1=$updateSubscriptionBillingUrl}You can update billing details for this automatically renewed membership by <a href=\"%1\">visiting this web page</a>.{/ts}\n          </td>\n         </tr>\n       {/if}\n     {else}\n      <tr>\n       <td>\n        <p>{ts}Thanks for your recurring contribution sign-up.{/ts}</p>\n        <p>{ts 1=$recur_frequency_interval 2=$recur_frequency_unit}This recurring contribution will be automatically processed every %1 %2(s){/ts}{if $recur_installments }{ts 1=$recur_installments} for a total of %1 installment(s){/ts}{/if}.</p>\n        <p>{ts}Start Date{/ts}: {$recur_start_date|crmDate}</p>\n       </td>\n      </tr>\n      {if $cancelSubscriptionUrl}\n      <tr>\n        <td {$labelStyle}>\n          {ts 1=$cancelSubscriptionUrl} You can cancel the recurring contribution option by <a href=\"%1\">visiting this web page</a>.{/ts}\n        </td>\n      </tr>\n      {/if}\n      {if $updateSubscriptionBillingUrl}\n        <tr>\n          <td {$labelStyle}>\n            {ts 1=$updateSubscriptionBillingUrl}You can update billing details for this recurring contribution by <a href=\"%1\">visiting this web page</a>.{/ts}\n          </td>\n        </tr>\n      {/if}\n      {if $updateSubscriptionUrl}\n      <tr>\n        <td {$labelStyle}>\n          {ts 1=$updateSubscriptionUrl}You can update recurring contribution amount or change the number of installments details for this recurring contribution by <a href=\"%1\">visiting this web page</a>.{/ts}\n        </td>\n      </tr>\n      {/if}\n     {/if}\n\n    {elseif $recur_txnType eq \'END\'}\n\n     {if $auto_renew_membership}\n      <tr>\n       <td>\n        <p>{ts}Your auto renew membership sign-up has ended and your membership will not be automatically renewed.{/ts}</p>\n       </td>\n      </tr>\n     {else}\n      <tr>\n       <td>\n        <p>{ts}Your recurring contribution term has ended.{/ts}</p>\n        <p>{ts 1=$recur_installments}You have successfully completed %1 recurring contributions. Thank you.{/ts}</p>\n       </td>\n      </tr>\n      <tr>\n       <td>\n     <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n      <tr>\n       <th {$headerStyle}>\n        {ts 1=$recur_installments}Interval of Subscription for %1 installment(s){/ts}\n       </th>\n      </tr>\n      <tr>\n       <td {$labelStyle}>\n        {ts}Start Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$recur_start_date|crmDate}\n       </td>\n      </tr>\n      <tr>\n       <td {$labelStyle}>\n        {ts}End Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$recur_end_date|crmDate}\n       </td>\n      </tr>\n     </table>\n       </td>\n      </tr>\n\n     {/if}\n    {/if}\n\n </table>\n</center>\n\n</body>\n</html>\n',1,824,1,0,0,NULL),(12,'Contributions - Recurring Start and End Notification','{ts}Recurring Contribution Notification{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{if $recur_txnType eq \'START\'}\n{if $auto_renew_membership}\n{ts}Thanks for your auto renew membership sign-up.{/ts}\n\n\n{ts 1=$recur_frequency_interval 2=$recur_frequency_unit}This membership will be automatically renewed every %1 %2(s).{/ts}\n\n{if $cancelSubscriptionUrl}\n{ts 1=$cancelSubscriptionUrl}You can cancel the auto-renewal option by <a href=\"%1\">visiting this web page</a>.{/ts}\n\n{/if}\n\n{if $updateSubscriptionBillingUrl}\n{ts 1=$updateSubscriptionBillingUrl}You can update billing details for this automatically renewed membership by <a href=\"%1\">visiting this web page</a>.{/ts}\n\n{/if}\n{else}\n{ts}Thanks for your recurring contribution sign-up.{/ts}\n\n\n{ts 1=$recur_frequency_interval 2=$recur_frequency_unit 3=$recur_installments}This recurring contribution will be automatically processed every %1 %2(s){/ts}{if $recur_installments } {ts 1=$recur_installments} for a total of %1 installment(s){/ts}{/if}.\n\n{ts}Start Date{/ts}:  {$recur_start_date|crmDate}\n\n{if $cancelSubscriptionUrl}\n{ts 1=$cancelSubscriptionUrl}You can cancel the recurring contribution option by <a href=\"%1\">visiting this web page</a>.{/ts}\n\n{/if}\n\n{if $updateSubscriptionBillingUrl}\n{ts 1=$updateSubscriptionBillingUrl}You can update billing details for this recurring contribution by <a href=\"%1\">visiting this web page</a>.{/ts}\n\n{/if}\n\n{if $updateSubscriptionUrl}\n{ts 1=$updateSubscriptionUrl}You can update recurring contribution amount or change the number of installments for this recurring contribution by <a href=\"%1\">visiting this web page</a>.{/ts}\n\n{/if}\n{/if}\n\n{elseif $recur_txnType eq \'END\'}\n{if $auto_renew_membership}\n{ts}Your auto renew membership sign-up has ended and your membership will not be automatically renewed.{/ts}\n\n\n{else}\n{ts}Your recurring contribution term has ended.{/ts}\n\n\n{ts 1=$recur_installments}You have successfully completed %1 recurring contributions. Thank you.{/ts}\n\n\n==================================================\n{ts 1=$recur_installments}Interval of Subscription for %1 installment(s){/ts}\n\n==================================================\n{ts}Start Date{/ts}: {$recur_start_date|crmDate}\n\n{ts}End Date{/ts}: {$recur_end_date|crmDate}\n\n{/if}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n   </td>\n  </tr>\n\n  <tr>\n   <td>&nbsp;</td>\n  </tr>\n\n    {if $recur_txnType eq \'START\'}\n     {if $auto_renew_membership}\n       <tr>\n        <td>\n         <p>{ts}Thanks for your auto renew membership sign-up.{/ts}</p>\n         <p>{ts 1=$recur_frequency_interval 2=$recur_frequency_unit}This membership will be automatically renewed every %1 %2(s). {/ts}</p>\n        </td>\n       </tr>\n       {if $cancelSubscriptionUrl}\n       <tr>\n         <td {$labelStyle}>\n           {ts 1=$cancelSubscriptionUrl}You can cancel the auto-renewal option by <a href=\"%1\">visiting this web page</a>.{/ts}\n         </td>\n       </tr>\n       {/if}\n       {if $updateSubscriptionBillingUrl}\n         <tr>\n          <td {$labelStyle}>\n           {ts 1=$updateSubscriptionBillingUrl}You can update billing details for this automatically renewed membership by <a href=\"%1\">visiting this web page</a>.{/ts}\n          </td>\n         </tr>\n       {/if}\n     {else}\n      <tr>\n       <td>\n        <p>{ts}Thanks for your recurring contribution sign-up.{/ts}</p>\n        <p>{ts 1=$recur_frequency_interval 2=$recur_frequency_unit}This recurring contribution will be automatically processed every %1 %2(s){/ts}{if $recur_installments }{ts 1=$recur_installments} for a total of %1 installment(s){/ts}{/if}.</p>\n        <p>{ts}Start Date{/ts}: {$recur_start_date|crmDate}</p>\n       </td>\n      </tr>\n      {if $cancelSubscriptionUrl}\n      <tr>\n        <td {$labelStyle}>\n          {ts 1=$cancelSubscriptionUrl} You can cancel the recurring contribution option by <a href=\"%1\">visiting this web page</a>.{/ts}\n        </td>\n      </tr>\n      {/if}\n      {if $updateSubscriptionBillingUrl}\n        <tr>\n          <td {$labelStyle}>\n            {ts 1=$updateSubscriptionBillingUrl}You can update billing details for this recurring contribution by <a href=\"%1\">visiting this web page</a>.{/ts}\n          </td>\n        </tr>\n      {/if}\n      {if $updateSubscriptionUrl}\n      <tr>\n        <td {$labelStyle}>\n          {ts 1=$updateSubscriptionUrl}You can update recurring contribution amount or change the number of installments details for this recurring contribution by <a href=\"%1\">visiting this web page</a>.{/ts}\n        </td>\n      </tr>\n      {/if}\n     {/if}\n\n    {elseif $recur_txnType eq \'END\'}\n\n     {if $auto_renew_membership}\n      <tr>\n       <td>\n        <p>{ts}Your auto renew membership sign-up has ended and your membership will not be automatically renewed.{/ts}</p>\n       </td>\n      </tr>\n     {else}\n      <tr>\n       <td>\n        <p>{ts}Your recurring contribution term has ended.{/ts}</p>\n        <p>{ts 1=$recur_installments}You have successfully completed %1 recurring contributions. Thank you.{/ts}</p>\n       </td>\n      </tr>\n      <tr>\n       <td>\n     <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n      <tr>\n       <th {$headerStyle}>\n        {ts 1=$recur_installments}Interval of Subscription for %1 installment(s){/ts}\n       </th>\n      </tr>\n      <tr>\n       <td {$labelStyle}>\n        {ts}Start Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$recur_start_date|crmDate}\n       </td>\n      </tr>\n      <tr>\n       <td {$labelStyle}>\n        {ts}End Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$recur_end_date|crmDate}\n       </td>\n      </tr>\n     </table>\n       </td>\n      </tr>\n\n     {/if}\n    {/if}\n\n </table>\n</center>\n\n</body>\n</html>\n',1,824,0,1,0,NULL),(13,'Contributions - Recurring Cancellation Notification','{ts}Recurring Contribution Cancellation Notification{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$amount 2=$recur_frequency_interval 3=$recur_frequency_unit}Your recurring contribution of %1, every %2 %3 has been cancelled as requested.{/ts}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts 1=$amount 2=$recur_frequency_interval 3=$recur_frequency_unit}Your recurring contribution of %1, every %2 %3 has been cancelled as requested.{/ts}</p>\n   </td>\n  </tr>\n  <tr>\n </table>\n</center>\n\n</body>\n</html>\n',1,825,1,0,0,NULL),(14,'Contributions - Recurring Cancellation Notification','{ts}Recurring Contribution Cancellation Notification{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$amount 2=$recur_frequency_interval 3=$recur_frequency_unit}Your recurring contribution of %1, every %2 %3 has been cancelled as requested.{/ts}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts 1=$amount 2=$recur_frequency_interval 3=$recur_frequency_unit}Your recurring contribution of %1, every %2 %3 has been cancelled as requested.{/ts}</p>\n   </td>\n  </tr>\n  <tr>\n </table>\n</center>\n\n</body>\n</html>\n',1,825,0,1,0,NULL),(15,'Contributions - Recurring Billing Updates','{ts}Recurring Contribution Billing Updates{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$amount 2=$recur_frequency_interval 3=$recur_frequency_unit}Billing details for your recurring contribution of %1, every %2 %3 have been updated.{/ts}\n\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billingName}\n{$address}\n\n{$email}\n\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n\n\n{ts 1=$receipt_from_email}If you have questions please contact us at %1{/ts}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts 1=$amount 2=$recur_frequency_interval 3=$recur_frequency_unit}Billing details for your recurring contribution of %1, every %2 %3 have been updated.{/ts}</p>\n   </td>\n  </tr>\n  <tr>\n </table>\n\n  <table style=\"width:100%; max-width:500px; border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse;\">\n    <tr>\n        <th {$headerStyle}>\n         {ts}Billing Name and Address{/ts}\n        </th>\n       </tr>\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         {$billingName}<br />\n         {$address|nl2br}<br />\n         {$email}\n        </td>\n       </tr>\n        <tr>\n       <th {$headerStyle}>\n        {ts}Credit Card Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$credit_card_type}<br />\n        {$credit_card_number}<br />\n        {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}<br />\n       </td>\n      </tr>\n      <tr>\n        <td {$labelStyle}>\n            {ts 1=$receipt_from_email}If you have questions please contact us at %1{/ts}\n        </td>\n       </tr>\n  </table>\n</center>\n\n</body>\n</html>\n',1,826,1,0,0,NULL),(16,'Contributions - Recurring Billing Updates','{ts}Recurring Contribution Billing Updates{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$amount 2=$recur_frequency_interval 3=$recur_frequency_unit}Billing details for your recurring contribution of %1, every %2 %3 have been updated.{/ts}\n\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billingName}\n{$address}\n\n{$email}\n\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n\n\n{ts 1=$receipt_from_email}If you have questions please contact us at %1{/ts}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts 1=$amount 2=$recur_frequency_interval 3=$recur_frequency_unit}Billing details for your recurring contribution of %1, every %2 %3 have been updated.{/ts}</p>\n   </td>\n  </tr>\n  <tr>\n </table>\n\n  <table style=\"width:100%; max-width:500px; border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse;\">\n    <tr>\n        <th {$headerStyle}>\n         {ts}Billing Name and Address{/ts}\n        </th>\n       </tr>\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         {$billingName}<br />\n         {$address|nl2br}<br />\n         {$email}\n        </td>\n       </tr>\n        <tr>\n       <th {$headerStyle}>\n        {ts}Credit Card Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$credit_card_type}<br />\n        {$credit_card_number}<br />\n        {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}<br />\n       </td>\n      </tr>\n      <tr>\n        <td {$labelStyle}>\n            {ts 1=$receipt_from_email}If you have questions please contact us at %1{/ts}\n        </td>\n       </tr>\n  </table>\n</center>\n\n</body>\n</html>\n',1,826,0,1,0,NULL),(17,'Contributions - Recurring Updates','{ts}Recurring Contribution Update Notification{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts}Your recurring contribution has been updated as requested:{/ts}\n\n{ts 1=$amount 2=$recur_frequency_interval 3=$recur_frequency_unit}Recurring contribution is for %1, every %2 %3(s){/ts}\n{if $installments}{ts 1=$installments} for %1 installments.{/ts}{/if}\n\n{ts 1=$receipt_from_email}If you have questions please contact us at %1.{/ts}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts}Your recurring contribution has been updated as requested:{/ts}\n    <p>{ts 1=$amount 2=$recur_frequency_interval 3=$recur_frequency_unit}Recurring contribution is for %1, every %2 %3(s){/ts}{if $installments}{ts 1=$installments} for %1 installments{/ts}{/if}.</p>\n\n    <p>{ts 1=$receipt_from_email}If you have questions please contact us at %1.{/ts}</p>\n   </td>\n  </tr>\n  <tr>\n </table>\n</center>\n\n</body>\n</html>\n',1,827,1,0,0,NULL),(18,'Contributions - Recurring Updates','{ts}Recurring Contribution Update Notification{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts}Your recurring contribution has been updated as requested:{/ts}\n\n{ts 1=$amount 2=$recur_frequency_interval 3=$recur_frequency_unit}Recurring contribution is for %1, every %2 %3(s){/ts}\n{if $installments}{ts 1=$installments} for %1 installments.{/ts}{/if}\n\n{ts 1=$receipt_from_email}If you have questions please contact us at %1.{/ts}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts}Your recurring contribution has been updated as requested:{/ts}\n    <p>{ts 1=$amount 2=$recur_frequency_interval 3=$recur_frequency_unit}Recurring contribution is for %1, every %2 %3(s){/ts}{if $installments}{ts 1=$installments} for %1 installments{/ts}{/if}.</p>\n\n    <p>{ts 1=$receipt_from_email}If you have questions please contact us at %1.{/ts}</p>\n   </td>\n  </tr>\n  <tr>\n </table>\n</center>\n\n</body>\n</html>\n',1,827,0,1,0,NULL),(19,'Personal Campaign Pages - Admin Notification','{ts}Personal Campaign Page Notification{/ts} - {contact.display_name}\n','===========================================================\n{ts}Personal Campaign Page Notification{/ts}\n\n===========================================================\n{ts}Action{/ts}: {if $mode EQ \'Update\'}{ts}Updated personal campaign page{/ts}{else}{ts}New personal campaign page{/ts}{/if}\n{ts}Personal Campaign Page Title{/ts}: {$pcpTitle}\n{ts}Current Status{/ts}: {$pcpStatus}\n{capture assign=pcpURL}{crmURL p=\"civicrm/pcp/info\" q=\"reset=1&id=`$pcpId`\" h=0 a=1}{/capture}\n{ts}View Page{/ts}:\n>> {$pcpURL}\n\n{ts}Supporter{/ts}: {$supporterName}\n>> {$supporterUrl}\n\n{ts}Linked to Contribution Page{/ts}: {$contribPageTitle}\n>> {$contribPageUrl}\n\n{ts}Manage Personal Campaign Pages{/ts}:\n>> {$managePCPUrl}\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n{capture assign=pcpURL     }{crmURL p=\"civicrm/pcp/info\" q=\"reset=1&id=`$pcpId`\" h=0 a=1}{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Personal Campaign Page Notification{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Action{/ts}:\n      </td>\n      <td {$valueStyle}>\n       {if $mode EQ \'Update\'}\n        {ts}Updated personal campaign page{/ts}\n       {else}\n        {ts}New personal campaign page{/ts}\n       {/if}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Personal Campaign Page Title{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$pcpTitle}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Current Status{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$pcpStatus}\n      </td>\n     </tr>\n\n     <tr>\n      <td {$labelStyle}>\n       <a href=\"{$pcpURL}\">{ts}View Page{/ts}</a>\n      </td>\n      <td></td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Supporter{/ts}\n      </td>\n      <td {$valueStyle}>\n       <a href=\"{$supporterUrl}\">{$supporterName}</a>\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Linked to Contribution Page{/ts}\n      </td>\n      <td {$valueStyle}>\n       <a href=\"{$contribPageUrl}\">{$contribPageTitle}</a>\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       <a href=\"{$managePCPUrl}\">{ts}Manage Personal Campaign Pages{/ts}</a>\n      </td>\n      <td></td>\n     </tr>\n\n    </table>\n   </td>\n  </tr>\n </table>\n</center>\n\n</body>\n</html>\n',1,828,1,0,0,NULL),(20,'Personal Campaign Pages - Admin Notification','{ts}Personal Campaign Page Notification{/ts} - {contact.display_name}\n','===========================================================\n{ts}Personal Campaign Page Notification{/ts}\n\n===========================================================\n{ts}Action{/ts}: {if $mode EQ \'Update\'}{ts}Updated personal campaign page{/ts}{else}{ts}New personal campaign page{/ts}{/if}\n{ts}Personal Campaign Page Title{/ts}: {$pcpTitle}\n{ts}Current Status{/ts}: {$pcpStatus}\n{capture assign=pcpURL}{crmURL p=\"civicrm/pcp/info\" q=\"reset=1&id=`$pcpId`\" h=0 a=1}{/capture}\n{ts}View Page{/ts}:\n>> {$pcpURL}\n\n{ts}Supporter{/ts}: {$supporterName}\n>> {$supporterUrl}\n\n{ts}Linked to Contribution Page{/ts}: {$contribPageTitle}\n>> {$contribPageUrl}\n\n{ts}Manage Personal Campaign Pages{/ts}:\n>> {$managePCPUrl}\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n{capture assign=pcpURL     }{crmURL p=\"civicrm/pcp/info\" q=\"reset=1&id=`$pcpId`\" h=0 a=1}{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Personal Campaign Page Notification{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Action{/ts}:\n      </td>\n      <td {$valueStyle}>\n       {if $mode EQ \'Update\'}\n        {ts}Updated personal campaign page{/ts}\n       {else}\n        {ts}New personal campaign page{/ts}\n       {/if}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Personal Campaign Page Title{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$pcpTitle}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Current Status{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$pcpStatus}\n      </td>\n     </tr>\n\n     <tr>\n      <td {$labelStyle}>\n       <a href=\"{$pcpURL}\">{ts}View Page{/ts}</a>\n      </td>\n      <td></td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Supporter{/ts}\n      </td>\n      <td {$valueStyle}>\n       <a href=\"{$supporterUrl}\">{$supporterName}</a>\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Linked to Contribution Page{/ts}\n      </td>\n      <td {$valueStyle}>\n       <a href=\"{$contribPageUrl}\">{$contribPageTitle}</a>\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       <a href=\"{$managePCPUrl}\">{ts}Manage Personal Campaign Pages{/ts}</a>\n      </td>\n      <td></td>\n     </tr>\n\n    </table>\n   </td>\n  </tr>\n </table>\n</center>\n\n</body>\n</html>\n',1,828,0,1,0,NULL),(21,'Personal Campaign Pages - Supporter Status Change Notification','{ts 1=$contribPageTitle}Your Personal Campaign Page for %1{/ts} - {contact.display_name}\n','{if $pcpStatus eq \'Approved\'}\n============================\n{ts}Your Personal Campaign Page{/ts}\n\n============================\n\n{ts}Your personal campaign page has been approved and is now live.{/ts}\n\n{ts}Whenever you want to preview, update or promote your page{/ts}:\n1. {ts}Login to your account at{/ts}:\n{$loginUrl}\n\n2. {ts}Click or paste this link into your browser to go to your page{/ts}:\n{$pcpInfoURL}\n\n{ts}When you view your campaign page WHILE LOGGED IN, the page includes links to edit your page, tell friends, and update your contact info.{/ts}\n\n{if $isTellFriendEnabled}\n\n{ts}After logging in, you can use this form to promote your fundraising page{/ts}:\n{$pcpTellFriendURL}\n\n{/if}\n\n{if $pcpNotifyEmailAddress}\n{ts}Questions? Send email to{/ts}:\n{$pcpNotifyEmailAddress}\n{/if}\n\n{* Rejected message *}\n{elseif $pcpStatus eq \'Not Approved\'}\n============================\n{ts}Your Personal Campaign Page{/ts}\n\n============================\n\n{ts}Your personal campaign page has been reviewed. There were some issues with the content which prevented us from approving the page. We are sorry for any inconvenience.{/ts}\n\n{if $pcpNotifyEmailAddress}\n\n{ts}Please contact our site administrator for more information{/ts}:\n{$pcpNotifyEmailAddress}\n{/if}\n\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n\n    <h1>{ts}Your Personal Campaign Page{/ts}</h1>\n\n    {if $pcpStatus eq \'Approved\'}\n\n     <p>{ts}Your personal campaign page has been approved and is now live.{/ts}</p>\n     <p>{ts}Whenever you want to preview, update or promote your page{/ts}:</p>\n     <ol>\n      <li><a href=\"{$loginUrl}\">{ts}Login to your account{/ts}</a></li>\n      <li><a href=\"{$pcpInfoURL}\">{ts}Go to your page{/ts}</a></li>\n     </ol>\n     <p>{ts}When you view your campaign page WHILE LOGGED IN, the page includes links to edit your page, tell friends, and update your contact info.{/ts}</p>\n\n     {if $isTellFriendEnabled}\n      <p><a href=\"{$pcpTellFriendURL}\">{ts}After logging in, you can use this form to promote your fundraising page{/ts}</a></p>\n     {/if}\n\n     {if $pcpNotifyEmailAddress}\n      <p>{ts}Questions? Send email to{/ts}: {$pcpNotifyEmailAddress}</p>\n     {/if}\n\n    {elseif $pcpStatus eq \'Not Approved\'}\n\n     <p>{ts}Your personal campaign page has been reviewed. There were some issues with the content which prevented us from approving the page. We are sorry for any inconvenience.{/ts}</p>\n     {if $pcpNotifyEmailAddress}\n      <p>{ts}Please contact our site administrator for more information{/ts}: {$pcpNotifyEmailAddress}</p>\n     {/if}\n\n    {/if}\n\n   </td>\n  </tr>\n\n </table>\n</center>\n\n</body>\n</html>\n',1,829,1,0,0,NULL),(22,'Personal Campaign Pages - Supporter Status Change Notification','{ts 1=$contribPageTitle}Your Personal Campaign Page for %1{/ts} - {contact.display_name}\n','{if $pcpStatus eq \'Approved\'}\n============================\n{ts}Your Personal Campaign Page{/ts}\n\n============================\n\n{ts}Your personal campaign page has been approved and is now live.{/ts}\n\n{ts}Whenever you want to preview, update or promote your page{/ts}:\n1. {ts}Login to your account at{/ts}:\n{$loginUrl}\n\n2. {ts}Click or paste this link into your browser to go to your page{/ts}:\n{$pcpInfoURL}\n\n{ts}When you view your campaign page WHILE LOGGED IN, the page includes links to edit your page, tell friends, and update your contact info.{/ts}\n\n{if $isTellFriendEnabled}\n\n{ts}After logging in, you can use this form to promote your fundraising page{/ts}:\n{$pcpTellFriendURL}\n\n{/if}\n\n{if $pcpNotifyEmailAddress}\n{ts}Questions? Send email to{/ts}:\n{$pcpNotifyEmailAddress}\n{/if}\n\n{* Rejected message *}\n{elseif $pcpStatus eq \'Not Approved\'}\n============================\n{ts}Your Personal Campaign Page{/ts}\n\n============================\n\n{ts}Your personal campaign page has been reviewed. There were some issues with the content which prevented us from approving the page. We are sorry for any inconvenience.{/ts}\n\n{if $pcpNotifyEmailAddress}\n\n{ts}Please contact our site administrator for more information{/ts}:\n{$pcpNotifyEmailAddress}\n{/if}\n\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n\n    <h1>{ts}Your Personal Campaign Page{/ts}</h1>\n\n    {if $pcpStatus eq \'Approved\'}\n\n     <p>{ts}Your personal campaign page has been approved and is now live.{/ts}</p>\n     <p>{ts}Whenever you want to preview, update or promote your page{/ts}:</p>\n     <ol>\n      <li><a href=\"{$loginUrl}\">{ts}Login to your account{/ts}</a></li>\n      <li><a href=\"{$pcpInfoURL}\">{ts}Go to your page{/ts}</a></li>\n     </ol>\n     <p>{ts}When you view your campaign page WHILE LOGGED IN, the page includes links to edit your page, tell friends, and update your contact info.{/ts}</p>\n\n     {if $isTellFriendEnabled}\n      <p><a href=\"{$pcpTellFriendURL}\">{ts}After logging in, you can use this form to promote your fundraising page{/ts}</a></p>\n     {/if}\n\n     {if $pcpNotifyEmailAddress}\n      <p>{ts}Questions? Send email to{/ts}: {$pcpNotifyEmailAddress}</p>\n     {/if}\n\n    {elseif $pcpStatus eq \'Not Approved\'}\n\n     <p>{ts}Your personal campaign page has been reviewed. There were some issues with the content which prevented us from approving the page. We are sorry for any inconvenience.{/ts}</p>\n     {if $pcpNotifyEmailAddress}\n      <p>{ts}Please contact our site administrator for more information{/ts}: {$pcpNotifyEmailAddress}</p>\n     {/if}\n\n    {/if}\n\n   </td>\n  </tr>\n\n </table>\n</center>\n\n</body>\n</html>\n',1,829,0,1,0,NULL),(23,'Personal Campaign Pages - Supporter Welcome','{ts 1=$contribPageTitle}Your Personal Campaign Page for %1{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=\"$contribPageTitle\"}Thanks for creating a personal campaign page in support of %1.{/ts}\n\n{if $pcpStatus eq \'Approved\'}\n====================\n{ts}Promoting Your Page{/ts}\n\n====================\n{if $isTellFriendEnabled}\n\n{ts}You can begin your fundraising efforts using our \"Tell a Friend\" form{/ts}:\n\n1. {ts}Login to your account at{/ts}:\n{$loginUrl}\n\n2. {ts}Click or paste this link into your browser and follow the prompts{/ts}:\n{$pcpTellFriendURL}\n{else}\n\n{ts}Send email to family, friends and colleagues with a personal message about this campaign.{/ts}\n{ts}Include this link to your fundraising page in your emails{/ts}:\n{$pcpInfoURL}\n{/if}\n\n===================\n{ts}Managing Your Page{/ts}\n\n===================\n{ts}Whenever you want to preview, update or promote your page{/ts}:\n1. {ts}Login to your account at{/ts}:\n{$loginUrl}\n\n2. {ts}Click or paste this link into your browser to go to your page{/ts}:\n{$pcpInfoURL}\n\n{ts}When you view your campaign page WHILE LOGGED IN, the page includes links to edit your page, tell friends, and update your contact info.{/ts}\n\n\n{elseif $pcpStatus EQ \'Waiting Review\'}\n{ts}Your page requires administrator review before you can begin your fundraising efforts.{/ts}\n\n\n{ts}A notification email has been sent to the site administrator, and you will receive another notification from them as soon as the review process is complete.{/ts}\n\n\n{ts}You can still preview your page prior to approval{/ts}:\n1. {ts}Login to your account at{/ts}:\n{$loginUrl}\n\n2. {ts}Click or paste this link into your browser{/ts}:\n{$pcpInfoURL}\n\n{/if}\n{if $pcpNotifyEmailAddress}\n{ts}Questions? Send email to{/ts}:\n{$pcpNotifyEmailAddress}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts 1=\"$contribPageTitle\"}Thanks for creating a personal campaign page in support of %1.{/ts}</p>\n   </td>\n  </tr>\n\n  {if $pcpStatus eq \'Approved\'}\n\n    <tr>\n     <td>\n      <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n       <tr>\n        <th {$headerStyle}>\n         {ts}Promoting Your Page{/ts}\n        </th>\n       </tr>\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         {if $isTellFriendEnabled}\n          <p>{ts}You can begin your fundraising efforts using our \"Tell a Friend\" form{/ts}:</p>\n          <ol>\n           <li><a href=\"{$loginUrl}\">{ts}Login to your account{/ts}</a></li>\n           <li><a href=\"{$pcpTellFriendURL}\">{ts}Click this link and follow the prompts{/ts}</a></li>\n          </ol>\n         {else}\n          <p>{ts}Send email to family, friends and colleagues with a personal message about this campaign.{/ts} {ts}Include this link to your fundraising page in your emails{/ts}: {$pcpInfoURL}</p>\n         {/if}\n        </td>\n       </tr>\n       <tr>\n        <th {$headerStyle}>\n         {ts}Managing Your Page{/ts}\n        </th>\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         <p>{ts}Whenever you want to preview, update or promote your page{/ts}:</p>\n         <ol>\n          <li><a href=\"{$loginUrl}\">{ts}Login to your account{/ts}</a></li>\n          <li><a href=\"{$pcpInfoURL}\">{ts}Go to your page{/ts}</a></li>\n         </ol>\n         <p>{ts}When you view your campaign page WHILE LOGGED IN, the page includes links to edit your page, tell friends, and update your contact info.{/ts}</p>\n        </td>\n       </tr>\n       </tr>\n      </table>\n     </td>\n    </tr>\n\n   {elseif $pcpStatus EQ \'Waiting Review\'}\n\n    <tr>\n     <td>\n      <p>{ts}Your page requires administrator review before you can begin your fundraising efforts.{/ts}</p>\n      <p>{ts}A notification email has been sent to the site administrator, and you will receive another notification from them as soon as the review process is complete.{/ts}</p>\n      <p>{ts}You can still preview your page prior to approval{/ts}:</p>\n      <ol>\n       <li><a href=\"{$loginUrl}\">{ts}Login to your account{/ts}</a></li>\n       <li><a href=\"{$pcpInfoURL}\">{ts}Click this link{/ts}</a></li>\n      </ol>\n     </td>\n    </tr>\n\n   {/if}\n\n   {if $pcpNotifyEmailAddress}\n    <tr>\n     <td>\n      <p>{ts}Questions? Send email to{/ts}: {$pcpNotifyEmailAddress}</p>\n     </td>\n    </tr>\n   {/if}\n\n </table>\n</center>\n\n</body>\n</html>\n',1,830,1,0,0,NULL),(24,'Personal Campaign Pages - Supporter Welcome','{ts 1=$contribPageTitle}Your Personal Campaign Page for %1{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=\"$contribPageTitle\"}Thanks for creating a personal campaign page in support of %1.{/ts}\n\n{if $pcpStatus eq \'Approved\'}\n====================\n{ts}Promoting Your Page{/ts}\n\n====================\n{if $isTellFriendEnabled}\n\n{ts}You can begin your fundraising efforts using our \"Tell a Friend\" form{/ts}:\n\n1. {ts}Login to your account at{/ts}:\n{$loginUrl}\n\n2. {ts}Click or paste this link into your browser and follow the prompts{/ts}:\n{$pcpTellFriendURL}\n{else}\n\n{ts}Send email to family, friends and colleagues with a personal message about this campaign.{/ts}\n{ts}Include this link to your fundraising page in your emails{/ts}:\n{$pcpInfoURL}\n{/if}\n\n===================\n{ts}Managing Your Page{/ts}\n\n===================\n{ts}Whenever you want to preview, update or promote your page{/ts}:\n1. {ts}Login to your account at{/ts}:\n{$loginUrl}\n\n2. {ts}Click or paste this link into your browser to go to your page{/ts}:\n{$pcpInfoURL}\n\n{ts}When you view your campaign page WHILE LOGGED IN, the page includes links to edit your page, tell friends, and update your contact info.{/ts}\n\n\n{elseif $pcpStatus EQ \'Waiting Review\'}\n{ts}Your page requires administrator review before you can begin your fundraising efforts.{/ts}\n\n\n{ts}A notification email has been sent to the site administrator, and you will receive another notification from them as soon as the review process is complete.{/ts}\n\n\n{ts}You can still preview your page prior to approval{/ts}:\n1. {ts}Login to your account at{/ts}:\n{$loginUrl}\n\n2. {ts}Click or paste this link into your browser{/ts}:\n{$pcpInfoURL}\n\n{/if}\n{if $pcpNotifyEmailAddress}\n{ts}Questions? Send email to{/ts}:\n{$pcpNotifyEmailAddress}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts 1=\"$contribPageTitle\"}Thanks for creating a personal campaign page in support of %1.{/ts}</p>\n   </td>\n  </tr>\n\n  {if $pcpStatus eq \'Approved\'}\n\n    <tr>\n     <td>\n      <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n       <tr>\n        <th {$headerStyle}>\n         {ts}Promoting Your Page{/ts}\n        </th>\n       </tr>\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         {if $isTellFriendEnabled}\n          <p>{ts}You can begin your fundraising efforts using our \"Tell a Friend\" form{/ts}:</p>\n          <ol>\n           <li><a href=\"{$loginUrl}\">{ts}Login to your account{/ts}</a></li>\n           <li><a href=\"{$pcpTellFriendURL}\">{ts}Click this link and follow the prompts{/ts}</a></li>\n          </ol>\n         {else}\n          <p>{ts}Send email to family, friends and colleagues with a personal message about this campaign.{/ts} {ts}Include this link to your fundraising page in your emails{/ts}: {$pcpInfoURL}</p>\n         {/if}\n        </td>\n       </tr>\n       <tr>\n        <th {$headerStyle}>\n         {ts}Managing Your Page{/ts}\n        </th>\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         <p>{ts}Whenever you want to preview, update or promote your page{/ts}:</p>\n         <ol>\n          <li><a href=\"{$loginUrl}\">{ts}Login to your account{/ts}</a></li>\n          <li><a href=\"{$pcpInfoURL}\">{ts}Go to your page{/ts}</a></li>\n         </ol>\n         <p>{ts}When you view your campaign page WHILE LOGGED IN, the page includes links to edit your page, tell friends, and update your contact info.{/ts}</p>\n        </td>\n       </tr>\n       </tr>\n      </table>\n     </td>\n    </tr>\n\n   {elseif $pcpStatus EQ \'Waiting Review\'}\n\n    <tr>\n     <td>\n      <p>{ts}Your page requires administrator review before you can begin your fundraising efforts.{/ts}</p>\n      <p>{ts}A notification email has been sent to the site administrator, and you will receive another notification from them as soon as the review process is complete.{/ts}</p>\n      <p>{ts}You can still preview your page prior to approval{/ts}:</p>\n      <ol>\n       <li><a href=\"{$loginUrl}\">{ts}Login to your account{/ts}</a></li>\n       <li><a href=\"{$pcpInfoURL}\">{ts}Click this link{/ts}</a></li>\n      </ol>\n     </td>\n    </tr>\n\n   {/if}\n\n   {if $pcpNotifyEmailAddress}\n    <tr>\n     <td>\n      <p>{ts}Questions? Send email to{/ts}: {$pcpNotifyEmailAddress}</p>\n     </td>\n    </tr>\n   {/if}\n\n </table>\n</center>\n\n</body>\n</html>\n',1,830,0,1,0,NULL),(25,'Personal Campaign Pages - Owner Notification','{ts}Someone has just donated to your personal campaign page{/ts} - {contact.display_name}\n','===========================================================\n{ts}Personal Campaign Page Owner Notification{/ts}\n\n===========================================================\n{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts}You have received a donation at your personal page{/ts}: {$page_title}\n>> {$pcpInfoURL}\n\n{ts}Your fundraising total has been updated.{/ts}\n{ts}The donor\'s information is listed below.  You can choose to contact them and convey your thanks if you wish.{/ts}\n{if $is_honor_roll_enabled}\n    {ts}The donor\'s name has been added to your honor roll unless they asked not to be included.{/ts}\n{/if}\n\n{ts}Received{/ts}: {$receive_date|crmDate}\n\n{ts}Amount{/ts}: {$total_amount|crmMoney:$currency}\n\n{ts}Name{/ts}: {$donors_display_name}\n\n{ts}Email{/ts}: {$donors_email}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n  {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n  <p>{ts}You have received a donation at your personal page{/ts}: <a href=\"{$pcpInfoURL}\">{$page_title}</a></p>\n  <p>{ts}Your fundraising total has been updated.{/ts}<br/>\n    {ts}The donor\'s information is listed below.  You can choose to contact them and convey your thanks if you wish.{/ts} <br/>\n    {if $is_honor_roll_enabled}\n      {ts}The donor\'s name has been added to your honor roll unless they asked not to be included.{/ts}<br/>\n    {/if}\n  </p>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n    <tr><td>{ts}Received{/ts}:</td><td> {$receive_date|crmDate}</td></tr>\n    <tr><td>{ts}Amount{/ts}:</td><td> {$total_amount|crmMoney:$currency}</td></tr>\n    <tr><td>{ts}Name{/ts}:</td><td> {$donors_display_name}</td></tr>\n    <tr><td>{ts}Email{/ts}:</td><td> {$donors_email}</td></tr>\n  </table>\n</body>\n</html>\n',1,831,1,0,0,NULL),(26,'Personal Campaign Pages - Owner Notification','{ts}Someone has just donated to your personal campaign page{/ts} - {contact.display_name}\n','===========================================================\n{ts}Personal Campaign Page Owner Notification{/ts}\n\n===========================================================\n{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts}You have received a donation at your personal page{/ts}: {$page_title}\n>> {$pcpInfoURL}\n\n{ts}Your fundraising total has been updated.{/ts}\n{ts}The donor\'s information is listed below.  You can choose to contact them and convey your thanks if you wish.{/ts}\n{if $is_honor_roll_enabled}\n    {ts}The donor\'s name has been added to your honor roll unless they asked not to be included.{/ts}\n{/if}\n\n{ts}Received{/ts}: {$receive_date|crmDate}\n\n{ts}Amount{/ts}: {$total_amount|crmMoney:$currency}\n\n{ts}Name{/ts}: {$donors_display_name}\n\n{ts}Email{/ts}: {$donors_email}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n  {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n  <p>{ts}You have received a donation at your personal page{/ts}: <a href=\"{$pcpInfoURL}\">{$page_title}</a></p>\n  <p>{ts}Your fundraising total has been updated.{/ts}<br/>\n    {ts}The donor\'s information is listed below.  You can choose to contact them and convey your thanks if you wish.{/ts} <br/>\n    {if $is_honor_roll_enabled}\n      {ts}The donor\'s name has been added to your honor roll unless they asked not to be included.{/ts}<br/>\n    {/if}\n  </p>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n    <tr><td>{ts}Received{/ts}:</td><td> {$receive_date|crmDate}</td></tr>\n    <tr><td>{ts}Amount{/ts}:</td><td> {$total_amount|crmMoney:$currency}</td></tr>\n    <tr><td>{ts}Name{/ts}:</td><td> {$donors_display_name}</td></tr>\n    <tr><td>{ts}Email{/ts}:</td><td> {$donors_email}</td></tr>\n  </table>\n</body>\n</html>\n',1,831,0,1,0,NULL),(27,'Additional Payment Receipt or Refund Notification','{if $isRefund}{ts}Refund Notification{/ts}{else}{ts}Payment Receipt{/ts}{/if}{if $component eq \'event\'} - {$event.title}{/if} - {contact.display_name}\n','{if $emailGreeting}{$emailGreeting},\n{/if}\n\n{if $isRefund}\n{ts}A refund has been issued based on changes in your registration selections.{/ts}\n{else}\n{ts}Below you will find a receipt for this payment.{/ts}\n{/if}\n{if $paymentsComplete}\n{ts}Thank you for completing this payment.{/ts}\n{/if}\n\n{if $isRefund}\n===============================================================================\n\n{ts}Refund Details{/ts}\n\n===============================================================================\n{ts}This Refund Amount{/ts}: {$refundAmount|crmMoney}\n------------------------------------------------------------------------------------\n\n{else}\n===============================================================================\n\n{ts}Payment Details{/ts}\n\n===============================================================================\n{ts}This Payment Amount{/ts}: {$paymentAmount|crmMoney}\n------------------------------------------------------------------------------------\n{/if}\n{if $receive_date}\n{ts}Transaction Date{/ts}: {$receive_date|crmDate}\n{/if}\n{if $trxn_id}\n{ts}Transaction #{/ts}: {$trxn_id}\n{/if}\n{if $paidBy}\n{ts}Paid By{/ts}: {$paidBy}\n{/if}\n{if $checkNumber}\n{ts}Check Number{/ts}: {$checkNumber}\n{/if}\n\n===============================================================================\n\n{ts}Contribution Details{/ts}\n\n===============================================================================\n{ts}Total Fee{/ts}: {$totalAmount|crmMoney}\n{ts}Total Paid{/ts}: {$totalPaid|crmMoney}\n{ts}Balance Owed{/ts}: {$amountOwed|crmMoney} {* This will be zero after final payment. *}\n\n\n{if $billingName || $address}\n\n===============================================================================\n\n{ts}Billing Name and Address{/ts}\n\n===============================================================================\n\n{$billingName}\n{$address}\n{/if}\n\n{if $credit_card_number}\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===============================================================================\n\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n{if $component eq \'event\'}\n===============================================================================\n\n{ts}Event Information and Location{/ts}\n\n===============================================================================\n\n{$event.event_title}\n{$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n\n{if $event.participant_role}\n{ts}Participant Role{/ts}: {$event.participant_role}\n{/if}\n\n{if $isShowLocation}\n{$location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n\n{if $location.phone.1.phone || $location.email.1.email}\n\n{ts}Event Contacts:{/ts}\n{foreach from=$location.phone item=phone}\n{if $phone.phone}\n\n{if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}: {$phone.phone}{/if} {if $phone.phone_ext} {ts}ext.{/ts} {$phone.phone_ext}{/if}\n{/foreach}\n{foreach from=$location.email item=eventEmail}\n{if $eventEmail.email}\n\n{ts}Email{/ts}: {$eventEmail.email}{/if}{/foreach}\n{/if}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n{capture assign=emptyBlockStyle }style=\"padding: 10px; border-bottom: 1px solid #999;background-color: #f7f7f7;\"{/capture}\n{capture assign=emptyBlockValueStyle }style=\"padding: 10px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n  <tr>\n    <td>\n      {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n      {if $isRefund}\n        <p>{ts}A refund has been issued based on changes in your registration selections.{/ts}</p>\n      {else}\n        <p>{ts}Below you will find a receipt for this payment.{/ts}</p>\n        {if $paymentsComplete}\n          <p>{ts}Thank you for completing this contribution.{/ts}</p>\n        {/if}\n      {/if}\n    </td>\n  </tr>\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n    {if $isRefund}\n      <tr>\n        <th {$headerStyle}>{ts}Refund Details{/ts}</th>\n      </tr>\n      <tr>\n        <td {$labelStyle}>\n        {ts}This Refund Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n        {$refundAmount|crmMoney}\n        </td>\n      </tr>\n    {else}\n      <tr>\n        <th {$headerStyle}>{ts}Payment Details{/ts}</th>\n      </tr>\n      <tr>\n        <td {$labelStyle}>\n        {ts}This Payment Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n        {$paymentAmount|crmMoney}\n        </td>\n      </tr>\n    {/if}\n    {if $receive_date}\n      <tr>\n        <td {$labelStyle}>\n        {ts}Transaction Date{/ts}\n        </td>\n        <td {$valueStyle}>\n        {$receive_date|crmDate}\n        </td>\n      </tr>\n    {/if}\n    {if $trxn_id}\n      <tr>\n        <td {$labelStyle}>\n        {ts}Transaction #{/ts}\n        </td>\n        <td {$valueStyle}>\n        {$trxn_id}\n        </td>\n      </tr>\n    {/if}\n    {if $paidBy}\n      <tr>\n        <td {$labelStyle}>\n        {ts}Paid By{/ts}\n        </td>\n        <td {$valueStyle}>\n        {$paidBy}\n        </td>\n      </tr>\n    {/if}\n    {if $checkNumber}\n      <tr>\n        <td {$labelStyle}>\n        {ts}Check Number{/ts}\n        </td>\n        <td {$valueStyle}>\n        {$checkNumber}\n        </td>\n      </tr>\n    {/if}\n\n  <tr>\n    <th {$headerStyle}>{ts}Contribution Details{/ts}</th>\n  </tr>\n  <tr>\n    <td {$labelStyle}>\n      {ts}Total Fee{/ts}\n    </td>\n    <td {$valueStyle}>\n      {$totalAmount|crmMoney}\n    </td>\n  </tr>\n  <tr>\n    <td {$labelStyle}>\n      {ts}Total Paid{/ts}\n    </td>\n    <td {$valueStyle}>\n      {$totalPaid|crmMoney}\n    </td>\n  </tr>\n  <tr>\n    <td {$labelStyle}>\n      {ts}Balance Owed{/ts}\n    </td>\n    <td {$valueStyle}>\n      {$amountOwed|crmMoney}\n    </td> {* This will be zero after final payment. *}\n  </tr>\n  </table>\n\n  </td>\n  </tr>\n    <tr>\n      <td>\n  <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n    {if $billingName || $address}\n          <tr>\n            <th {$headerStyle}>\n        {ts}Billing Name and Address{/ts}\n            </th>\n          </tr>\n          <tr>\n            <td colspan=\"2\" {$valueStyle}>\n        {$billingName}<br />\n        {$address|nl2br}\n            </td>\n          </tr>\n    {/if}\n    {if $credit_card_number}\n          <tr>\n            <th {$headerStyle}>\n        {ts}Credit Card Information{/ts}\n            </th>\n          </tr>\n          <tr>\n            <td colspan=\"2\" {$valueStyle}>\n        {$credit_card_type}<br />\n        {$credit_card_number}<br />\n        {ts}Expires:{/ts} {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n            </td>\n          </tr>\n    {/if}\n    {if $component eq \'event\'}\n    <tr>\n      <th {$headerStyle}>\n        {ts}Event Information and Location{/ts}\n      </th>\n    </tr>\n    <tr>\n      <td colspan=\"2\" {$valueStyle}>\n         {$event.event_title}<br />\n        {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n      </td>\n    </tr>\n\n    {if $event.participant_role}\n    <tr>\n      <td {$labelStyle}>\n        {ts}Participant Role{/ts}\n      </td>\n      <td {$valueStyle}>\n        {$event.participant_role}\n      </td>\n    </tr>\n    {/if}\n\n    {if $isShowLocation}\n    <tr>\n      <td colspan=\"2\" {$valueStyle}>\n        {$location.address.1.display|nl2br}\n      </td>\n    </tr>\n    {/if}\n\n    {if $location.phone.1.phone || $location.email.1.email}\n    <tr>\n      <td colspan=\"2\" {$labelStyle}>\n        {ts}Event Contacts:{/ts}\n      </td>\n    </tr>\n    {foreach from=$location.phone item=phone}\n    {if $phone.phone}\n          <tr>\n            <td {$labelStyle}>\n        {if $phone.phone_type}\n        {$phone.phone_type_display}\n        {else}\n        {ts}Phone{/ts}\n        {/if}\n            </td>\n            <td {$valueStyle}>\n        {$phone.phone} {if $phone.phone_ext}&nbsp;{ts}ext.{/ts} {$phone.phone_ext}{/if}\n            </td>\n          </tr>\n    {/if}\n    {/foreach}\n    {foreach from=$location.email item=eventEmail}\n    {if $eventEmail.email}\n          <tr>\n            <td {$labelStyle}>\n        {ts}Email{/ts}\n            </td>\n            <td {$valueStyle}>\n        {$eventEmail.email}\n            </td>\n          </tr>\n    {/if}\n    {/foreach}\n    {/if} {*phone block close*}\n    {/if}\n  </table>\n      </td>\n    </tr>\n\n    </table>\n  </center>\n\n </body>\n</html>\n',1,832,1,0,0,NULL),(28,'Additional Payment Receipt or Refund Notification','{if $isRefund}{ts}Refund Notification{/ts}{else}{ts}Payment Receipt{/ts}{/if}{if $component eq \'event\'} - {$event.title}{/if} - {contact.display_name}\n','{if $emailGreeting}{$emailGreeting},\n{/if}\n\n{if $isRefund}\n{ts}A refund has been issued based on changes in your registration selections.{/ts}\n{else}\n{ts}Below you will find a receipt for this payment.{/ts}\n{/if}\n{if $paymentsComplete}\n{ts}Thank you for completing this payment.{/ts}\n{/if}\n\n{if $isRefund}\n===============================================================================\n\n{ts}Refund Details{/ts}\n\n===============================================================================\n{ts}This Refund Amount{/ts}: {$refundAmount|crmMoney}\n------------------------------------------------------------------------------------\n\n{else}\n===============================================================================\n\n{ts}Payment Details{/ts}\n\n===============================================================================\n{ts}This Payment Amount{/ts}: {$paymentAmount|crmMoney}\n------------------------------------------------------------------------------------\n{/if}\n{if $receive_date}\n{ts}Transaction Date{/ts}: {$receive_date|crmDate}\n{/if}\n{if $trxn_id}\n{ts}Transaction #{/ts}: {$trxn_id}\n{/if}\n{if $paidBy}\n{ts}Paid By{/ts}: {$paidBy}\n{/if}\n{if $checkNumber}\n{ts}Check Number{/ts}: {$checkNumber}\n{/if}\n\n===============================================================================\n\n{ts}Contribution Details{/ts}\n\n===============================================================================\n{ts}Total Fee{/ts}: {$totalAmount|crmMoney}\n{ts}Total Paid{/ts}: {$totalPaid|crmMoney}\n{ts}Balance Owed{/ts}: {$amountOwed|crmMoney} {* This will be zero after final payment. *}\n\n\n{if $billingName || $address}\n\n===============================================================================\n\n{ts}Billing Name and Address{/ts}\n\n===============================================================================\n\n{$billingName}\n{$address}\n{/if}\n\n{if $credit_card_number}\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===============================================================================\n\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n{if $component eq \'event\'}\n===============================================================================\n\n{ts}Event Information and Location{/ts}\n\n===============================================================================\n\n{$event.event_title}\n{$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n\n{if $event.participant_role}\n{ts}Participant Role{/ts}: {$event.participant_role}\n{/if}\n\n{if $isShowLocation}\n{$location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n\n{if $location.phone.1.phone || $location.email.1.email}\n\n{ts}Event Contacts:{/ts}\n{foreach from=$location.phone item=phone}\n{if $phone.phone}\n\n{if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}: {$phone.phone}{/if} {if $phone.phone_ext} {ts}ext.{/ts} {$phone.phone_ext}{/if}\n{/foreach}\n{foreach from=$location.email item=eventEmail}\n{if $eventEmail.email}\n\n{ts}Email{/ts}: {$eventEmail.email}{/if}{/foreach}\n{/if}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n{capture assign=emptyBlockStyle }style=\"padding: 10px; border-bottom: 1px solid #999;background-color: #f7f7f7;\"{/capture}\n{capture assign=emptyBlockValueStyle }style=\"padding: 10px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n  <tr>\n    <td>\n      {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n      {if $isRefund}\n        <p>{ts}A refund has been issued based on changes in your registration selections.{/ts}</p>\n      {else}\n        <p>{ts}Below you will find a receipt for this payment.{/ts}</p>\n        {if $paymentsComplete}\n          <p>{ts}Thank you for completing this contribution.{/ts}</p>\n        {/if}\n      {/if}\n    </td>\n  </tr>\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n    {if $isRefund}\n      <tr>\n        <th {$headerStyle}>{ts}Refund Details{/ts}</th>\n      </tr>\n      <tr>\n        <td {$labelStyle}>\n        {ts}This Refund Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n        {$refundAmount|crmMoney}\n        </td>\n      </tr>\n    {else}\n      <tr>\n        <th {$headerStyle}>{ts}Payment Details{/ts}</th>\n      </tr>\n      <tr>\n        <td {$labelStyle}>\n        {ts}This Payment Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n        {$paymentAmount|crmMoney}\n        </td>\n      </tr>\n    {/if}\n    {if $receive_date}\n      <tr>\n        <td {$labelStyle}>\n        {ts}Transaction Date{/ts}\n        </td>\n        <td {$valueStyle}>\n        {$receive_date|crmDate}\n        </td>\n      </tr>\n    {/if}\n    {if $trxn_id}\n      <tr>\n        <td {$labelStyle}>\n        {ts}Transaction #{/ts}\n        </td>\n        <td {$valueStyle}>\n        {$trxn_id}\n        </td>\n      </tr>\n    {/if}\n    {if $paidBy}\n      <tr>\n        <td {$labelStyle}>\n        {ts}Paid By{/ts}\n        </td>\n        <td {$valueStyle}>\n        {$paidBy}\n        </td>\n      </tr>\n    {/if}\n    {if $checkNumber}\n      <tr>\n        <td {$labelStyle}>\n        {ts}Check Number{/ts}\n        </td>\n        <td {$valueStyle}>\n        {$checkNumber}\n        </td>\n      </tr>\n    {/if}\n\n  <tr>\n    <th {$headerStyle}>{ts}Contribution Details{/ts}</th>\n  </tr>\n  <tr>\n    <td {$labelStyle}>\n      {ts}Total Fee{/ts}\n    </td>\n    <td {$valueStyle}>\n      {$totalAmount|crmMoney}\n    </td>\n  </tr>\n  <tr>\n    <td {$labelStyle}>\n      {ts}Total Paid{/ts}\n    </td>\n    <td {$valueStyle}>\n      {$totalPaid|crmMoney}\n    </td>\n  </tr>\n  <tr>\n    <td {$labelStyle}>\n      {ts}Balance Owed{/ts}\n    </td>\n    <td {$valueStyle}>\n      {$amountOwed|crmMoney}\n    </td> {* This will be zero after final payment. *}\n  </tr>\n  </table>\n\n  </td>\n  </tr>\n    <tr>\n      <td>\n  <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n    {if $billingName || $address}\n          <tr>\n            <th {$headerStyle}>\n        {ts}Billing Name and Address{/ts}\n            </th>\n          </tr>\n          <tr>\n            <td colspan=\"2\" {$valueStyle}>\n        {$billingName}<br />\n        {$address|nl2br}\n            </td>\n          </tr>\n    {/if}\n    {if $credit_card_number}\n          <tr>\n            <th {$headerStyle}>\n        {ts}Credit Card Information{/ts}\n            </th>\n          </tr>\n          <tr>\n            <td colspan=\"2\" {$valueStyle}>\n        {$credit_card_type}<br />\n        {$credit_card_number}<br />\n        {ts}Expires:{/ts} {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n            </td>\n          </tr>\n    {/if}\n    {if $component eq \'event\'}\n    <tr>\n      <th {$headerStyle}>\n        {ts}Event Information and Location{/ts}\n      </th>\n    </tr>\n    <tr>\n      <td colspan=\"2\" {$valueStyle}>\n         {$event.event_title}<br />\n        {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n      </td>\n    </tr>\n\n    {if $event.participant_role}\n    <tr>\n      <td {$labelStyle}>\n        {ts}Participant Role{/ts}\n      </td>\n      <td {$valueStyle}>\n        {$event.participant_role}\n      </td>\n    </tr>\n    {/if}\n\n    {if $isShowLocation}\n    <tr>\n      <td colspan=\"2\" {$valueStyle}>\n        {$location.address.1.display|nl2br}\n      </td>\n    </tr>\n    {/if}\n\n    {if $location.phone.1.phone || $location.email.1.email}\n    <tr>\n      <td colspan=\"2\" {$labelStyle}>\n        {ts}Event Contacts:{/ts}\n      </td>\n    </tr>\n    {foreach from=$location.phone item=phone}\n    {if $phone.phone}\n          <tr>\n            <td {$labelStyle}>\n        {if $phone.phone_type}\n        {$phone.phone_type_display}\n        {else}\n        {ts}Phone{/ts}\n        {/if}\n            </td>\n            <td {$valueStyle}>\n        {$phone.phone} {if $phone.phone_ext}&nbsp;{ts}ext.{/ts} {$phone.phone_ext}{/if}\n            </td>\n          </tr>\n    {/if}\n    {/foreach}\n    {foreach from=$location.email item=eventEmail}\n    {if $eventEmail.email}\n          <tr>\n            <td {$labelStyle}>\n        {ts}Email{/ts}\n            </td>\n            <td {$valueStyle}>\n        {$eventEmail.email}\n            </td>\n          </tr>\n    {/if}\n    {/foreach}\n    {/if} {*phone block close*}\n    {/if}\n  </table>\n      </td>\n    </tr>\n\n    </table>\n  </center>\n\n </body>\n</html>\n',1,832,0,1,0,NULL),(29,'Events - Registration Confirmation and Receipt (off-line)','{ts}Event Confirmation{/ts} - {$event.title} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n{if $event.confirm_email_text AND (not $isOnWaitlist AND not $isRequireApproval)}\n{$event.confirm_email_text}\n{/if}\n\n{if $isOnWaitlist}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{ts}You have been added to the WAIT LIST for this event.{/ts}\n\n{if $isPrimary}\n{ts}If space becomes available you will receive an email with a link to a web page where you can complete your registration.{/ts}\n\n{/if}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{elseif $isRequireApproval}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{ts}Your registration has been submitted.{/ts}\n\n{if $isPrimary}\n{ts}Once your registration has been reviewed, you will receive an email with a link to a web page where you can complete the registration process.{/ts}\n\n{/if}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{elseif $is_pay_later}\n\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{$pay_later_receipt}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{/if}\n\n\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{ts}Event Information and Location{/ts}\n\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{$event.event_title}\n{$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n\n{if $event.participant_role neq \'Attendee\' and $defaultRole}\n{ts}Participant Role{/ts}: {$event.participant_role}\n{/if}\n\n{if $isShowLocation}\n{$location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n\n{if $location.phone.1.phone || $location.email.1.email}\n\n{ts}Event Contacts:{/ts}\n{foreach from=$location.phone item=phone}\n{if $phone.phone}\n\n{if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}: {$phone.phone}{/if} {if $phone.phone_ext} {ts}ext.{/ts} {$phone.phone_ext}{/if}\n{/foreach}\n{foreach from=$location.email item=eventEmail}\n{if $eventEmail.email}\n\n{ts}Email{/ts}: {$eventEmail.email}{/if}{/foreach}\n{/if}\n\n{if $event.is_public}\n{capture assign=icalFeed}{crmURL p=\'civicrm/event/ical\' q=\"reset=1&id=`$event.id`\" h=0 a=1 fe=1}{/capture}\n{ts}Download iCalendar File:{/ts} {$icalFeed}\n{/if}\n\n{if $email}\n\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{ts}Registered Email{/ts}\n\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{$email}\n{/if}\n{if $event.is_monetary} {* This section for Paid events only.*}\n\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{$event.fee_label}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{if $lineItem}{foreach from=$lineItem item=value key=priceset}\n\n{if $value neq \'skip\'}\n{if $isPrimary}\n{if $lineItem|@count GT 1} {* Header for multi participant registration cases. *}\n{ts 1=$priceset+1}Participant %1{/ts}\n{/if}\n{/if}\n---------------------------------------------------------{if $pricesetFieldsCount }--------------------{/if}\n\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_qty}{ts}Qty{/ts}{/capture}\n{capture assign=ts_each}{ts}Each{/ts}{/capture}\n{if $dataArray}\n{capture assign=ts_subtotal}{ts}Subtotal{/ts}{/capture}\n{capture assign=ts_taxRate}{ts}Tax Rate{/ts}{/capture}\n{capture assign=ts_taxAmount}{ts}Tax Amount{/ts}{/capture}\n{/if}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{capture assign=ts_participant_total}{if $pricesetFieldsCount }{ts}Total Participants{/ts}{/if}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_qty|string_format:\"%5s\"} {$ts_each|string_format:\"%10s\"} {if $dataArray} {$ts_subtotal|string_format:\"%10s\"} {$ts_taxRate|string_format:\"%10s\"} {$ts_taxAmount|string_format:\"%10s\"} {/if} {$ts_total|string_format:\"%10s\"} {$ts_participant_total|string_format:\"%10s\"}\n----------------------------------------------------------{if $pricesetFieldsCount }--------------------{/if}\n\n{foreach from=$value item=line}\n{if $pricesetFieldsCount }{capture assign=ts_participant_count}{$line.participant_count}{/capture}{/if}\n{capture assign=ts_item}{if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description} {$line.description}{/if}{/capture}{$ts_item|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.qty|string_format:\"%5s\"} {$line.unit_price|crmMoney|string_format:\"%10s\"} {if $dataArray} {$line.unit_price*$line.qty|crmMoney:$currency|string_format:\"%10s\"} {if $line.tax_rate != \"\" || $line.tax_amount != \"\"}  {$line.tax_rate|string_format:\"%.2f\"} %  {$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"} {else}                  {/if}  {/if}  {$line.line_total+$line.tax_amount|crmMoney|string_format:\"%10s\"} {$ts_participant_count|string_format:\"%10s\"}\n{/foreach}\n{/if}\n{/foreach}\n\n{if $dataArray}\n{ts}Amount before Tax{/ts}: {$totalAmount-$totalTaxAmount|crmMoney:$currency}\n\n{foreach from=$dataArray item=value key=priceset}\n{if $priceset || $priceset == 0}\n{$taxTerm} {$priceset|string_format:\"%.2f\"}%: {$value|crmMoney:$currency}\n{else}\n{ts}No{/ts} {$taxTerm}: {$value|crmMoney:$currency}\n{/if}\n{/foreach}\n{/if}\n{/if}\n\n{if $amount && !$lineItem}\n{foreach from=$amount item=amnt key=level}{$amnt.amount|crmMoney} {$amnt.label}\n{/foreach}\n{/if}\n\n{if $totalTaxAmount}\n{ts}Total Tax Amount{/ts}: {$totalTaxAmount|crmMoney:$currency}\n{/if}\n{if $isPrimary}\n\n{if $balanceAmount}{ts}Total Paid{/ts}{else}{ts}Total Amount{/ts}{/if}: {$totalAmount|crmMoney} {if $hookDiscount.message}({$hookDiscount.message}){/if}\n\n{if $balanceAmount}\n{ts}Balance{/ts}: {$balanceAmount|crmMoney}\n{/if}\n\n{if $pricesetFieldsCount }\n      {assign var=\"count\" value= 0}\n      {foreach from=$lineItem item=pcount}\n      {assign var=\"lineItemCount\" value=0}\n      {if $pcount neq \'skip\'}\n        {foreach from=$pcount item=p_count}\n        {assign var=\"lineItemCount\" value=$lineItemCount+$p_count.participant_count}\n        {/foreach}\n        {if $lineItemCount < 1 }\n        {assign var=\"lineItemCount\" value=1}\n        {/if}\n      {assign var=\"count\" value=$count+$lineItemCount}\n      {/if}\n      {/foreach}\n\n{ts}Total Participants{/ts}: {$count}\n{/if}\n\n{if $is_pay_later }\n\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{$pay_later_receipt}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{/if}\n\n{if $register_date}\n{ts}Registration Date{/ts}: {$register_date|crmDate}\n{/if}\n{if $receive_date}\n{ts}Transaction Date{/ts}: {$receive_date|crmDate}\n{/if}\n{if $financialTypeName}\n{ts}Financial Type{/ts}: {$financialTypeName}\n{/if}\n{if $trxn_id}\n{ts}Transaction #{/ts}: {$trxn_id}\n{/if}\n{if $paidBy}\n{ts}Paid By{/ts}: {$paidBy}\n{/if}\n{if $checkNumber}\n{ts}Check Number{/ts}: {$checkNumber}\n{/if}\n{if $billingName}\n\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{ts}Billing Name and Address{/ts}\n\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{$billingName}\n{$address}\n{/if}\n\n{if $credit_card_type}\n===========================================================\n{ts}Credit Card Information{/ts}\n\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n{/if}\n{/if} {* End of conditional section for Paid events *}\n\n{if $customPre}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{$customPre_grouptitle}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{foreach from=$customPre item=value key=customName}\n{if ( $trackingFields and ! in_array( $customName, $trackingFields ) ) or ! $trackingFields}\n{$customName}: {$value}\n{/if}\n{/foreach}\n{/if}\n\n{if $customPost}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{$customPost_grouptitle}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{foreach from=$customPost item=value key=customName}\n{if ( $trackingFields and ! in_array( $customName, $trackingFields ) ) or ! $trackingFields}\n{$customName}: {$value}\n{/if}\n{/foreach}\n{/if}\n{if $customProfile}\n\n{foreach from=$customProfile item=value key=customName}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{ts 1=$customName+1}Participant Information - Participant %1{/ts}\n\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{foreach from=$value item=val key=field}\n{if $field eq \'additionalCustomPre\' or $field eq \'additionalCustomPost\' }\n{if $field eq \'additionalCustomPre\' }\n----------------------------------------------------------{if $pricesetFieldsCount }--------------------{/if}\n\n{$additionalCustomPre_grouptitle}\n----------------------------------------------------------{if $pricesetFieldsCount }--------------------{/if}\n\n{else}\n----------------------------------------------------------{if $pricesetFieldsCount }--------------------{/if}\n\n{$additionalCustomPost_grouptitle}\n----------------------------------------------------------{if $pricesetFieldsCount }--------------------{/if}\n\n{/if}\n{foreach from=$val item=v key=f}\n{$f}: {$v}\n{/foreach}\n{/if}\n{/foreach}\n{/foreach}\n{/if}\n{if $customGroup}\n{foreach from=$customGroup item=value key=customName}\n=========================================================={if $pricesetFieldsCount }===================={/if}\n\n{$customName}\n=========================================================={if $pricesetFieldsCount }===================={/if}\n\n{foreach from=$value item=v key=n}\n{$n}: {$v}\n{/foreach}\n{/foreach}\n{/if}\n\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n\n    {if $event.confirm_email_text AND (not $isOnWaitlist AND not $isRequireApproval)}\n     <p>{$event.confirm_email_text|htmlize}</p>\n    {/if}\n\n    {if $isOnWaitlist}\n     <p>{ts}You have been added to the WAIT LIST for this event.{/ts}</p>\n     {if $isPrimary}\n       <p>{ts}If space becomes available you will receive an email with a link to a web page where you can complete your registration.{/ts}</p>\n     {/if}\n    {elseif $isRequireApproval}\n     <p>{ts}Your registration has been submitted.{/ts}</p>\n     {if $isPrimary}\n      <p>{ts}Once your registration has been reviewed, you will receive an email with a link to a web page where you can complete the registration process.{/ts}</p>\n     {/if}\n    {elseif $is_pay_later}\n     <p>{$pay_later_receipt}</p> {* FIXME: this might be text rather than HTML *}\n    {/if}\n\n   </td>\n  </tr>\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Event Information and Location{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td colspan=\"2\" {$valueStyle}>\n       {$event.event_title}<br />\n       {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n      </td>\n     </tr>\n\n     {if $event.participant_role neq \'Attendee\' and $defaultRole}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Participant Role{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$event.participant_role}\n       </td>\n      </tr>\n     {/if}\n\n     {if $isShowLocation}\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$location.address.1.display|nl2br}\n       </td>\n      </tr>\n     {/if}\n\n     {if $location.phone.1.phone || $location.email.1.email}\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n        {ts}Event Contacts:{/ts}\n       </td>\n      </tr>\n      {foreach from=$location.phone item=phone}\n       {if $phone.phone}\n        <tr>\n         <td {$labelStyle}>\n          {if $phone.phone_type}\n           {$phone.phone_type_display}\n          {else}\n           {ts}Phone{/ts}\n          {/if}\n         </td>\n         <td {$valueStyle}>\n          {$phone.phone} {if $phone.phone_ext}&nbsp;{ts}ext.{/ts} {$phone.phone_ext}{/if}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n      {foreach from=$location.email item=eventEmail}\n       {if $eventEmail.email}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Email{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$eventEmail.email}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n     {if $event.is_public}\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {capture assign=icalFeed}{crmURL p=\'civicrm/event/ical\' q=\"reset=1&id=`$event.id`\" h=0 a=1 fe=1}{/capture}\n        <a href=\"{$icalFeed}\">{ts}Download iCalendar File{/ts}</a>\n       </td>\n      </tr>\n     {/if}\n\n     {if $email}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Registered Email{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$email}\n       </td>\n      </tr>\n     {/if}\n\n\n     {if $event.is_monetary}\n\n      <tr>\n       <th {$headerStyle}>\n        {$event.fee_label}\n       </th>\n      </tr>\n\n      {if $lineItem}\n       {foreach from=$lineItem item=value key=priceset}\n        {if $value neq \'skip\'}\n         {if $isPrimary}\n          {if $lineItem|@count GT 1} {* Header for multi participant registration cases. *}\n           <tr>\n            <td colspan=\"2\" {$labelStyle}>\n             {ts 1=$priceset+1}Participant %1{/ts}\n            </td>\n           </tr>\n          {/if}\n         {/if}\n         <tr>\n          <td colspan=\"2\" {$valueStyle}>\n           <table> {* FIXME: style this table so that it looks like the text version (justification, etc.) *}\n            <tr>\n             <th>{ts}Item{/ts}</th>\n             <th>{ts}Qty{/ts}</th>\n             <th>{ts}Each{/ts}</th>\n             {if $dataArray}\n              <th>{ts}SubTotal{/ts}</th>\n              <th>{ts}Tax Rate{/ts}</th>\n              <th>{ts}Tax Amount{/ts}</th>\n             {/if}\n             <th>{ts}Total{/ts}</th>\n       {if $pricesetFieldsCount }<th>{ts}Total Participants{/ts}</th>{/if}\n            </tr>\n            {foreach from=$value item=line}\n             <tr>\n              <td>\n        {if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description}<div>{$line.description|truncate:30:\"...\"}</div>{/if}\n              </td>\n              <td>\n               {$line.qty}\n              </td>\n              <td>\n               {$line.unit_price|crmMoney}\n              </td>\n              {if $dataArray}\n               <td>\n                {$line.unit_price*$line.qty|crmMoney}\n               </td>\n               {if $line.tax_rate != \"\" || $line.tax_amount != \"\"}\n                <td>\n                 {$line.tax_rate|string_format:\"%.2f\"}%\n                </td>\n                <td>\n                 {$line.tax_amount|crmMoney}\n                </td>\n               {else}\n                <td></td>\n                <td></td>\n               {/if}\n              {/if}\n              <td>\n               {$line.line_total+$line.tax_amount|crmMoney}\n              </td>\n        {if  $pricesetFieldsCount }\n        <td>\n    {$line.participant_count}\n              </td>\n        {/if}\n             </tr>\n            {/foreach}\n           </table>\n          </td>\n         </tr>\n        {/if}\n       {/foreach}\n       {if $dataArray}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Amount Before Tax:{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$totalAmount-$totalTaxAmount|crmMoney}\n         </td>\n        </tr>\n        {foreach from=$dataArray item=value key=priceset}\n          <tr>\n           {if $priceset || $priceset == 0}\n            <td>&nbsp;{$taxTerm} {$priceset|string_format:\"%.2f\"}%</td>\n            <td>&nbsp;{$value|crmMoney:$currency}</td>\n           {else}\n            <td>&nbsp;{ts}No{/ts} {$taxTerm}</td>\n            <td>&nbsp;{$value|crmMoney:$currency}</td>\n           {/if}\n          </tr>\n        {/foreach}\n       {/if}\n      {/if}\n\n      {if $amount && !$lineItem}\n       {foreach from=$amount item=amnt key=level}\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          {$amnt.amount|crmMoney} {$amnt.label}\n         </td>\n        </tr>\n       {/foreach}\n      {/if}\n      {if $totalTaxAmount}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Total Tax Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$totalTaxAmount|crmMoney:$currency}\n        </td>\n       </tr>\n      {/if}\n      {if $isPrimary}\n       <tr>\n        <td {$labelStyle}>\n        {if $balanceAmount}\n           {ts}Total Paid{/ts}\n        {else}\n           {ts}Total Amount{/ts}\n         {/if}\n        </td>\n        <td {$valueStyle}>\n         {$totalAmount|crmMoney} {if $hookDiscount.message}({$hookDiscount.message}){/if}\n        </td>\n       </tr>\n      {if $balanceAmount}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Balance{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$balanceAmount|crmMoney}\n        </td>\n       </tr>\n      {/if}\n       {if $pricesetFieldsCount }\n     <tr>\n       <td {$labelStyle}>\n   {ts}Total Participants{/ts}</td>\n       <td {$valueStyle}>\n   {assign var=\"count\" value= 0}\n         {foreach from=$lineItem item=pcount}\n         {assign var=\"lineItemCount\" value=0}\n         {if $pcount neq \'skip\'}\n           {foreach from=$pcount item=p_count}\n           {assign var=\"lineItemCount\" value=$lineItemCount+$p_count.participant_count}\n           {/foreach}\n           {if $lineItemCount < 1 }\n           assign var=\"lineItemCount\" value=1}\n           {/if}\n           {assign var=\"count\" value=$count+$lineItemCount}\n         {/if}\n         {/foreach}\n   {$count}\n       </td>\n     </tr>\n     {/if}\n       {if $is_pay_later}\n        <tr>\n         <td colspan=\"2\" {$labelStyle}>\n          {$pay_later_receipt}\n         </td>\n        </tr>\n       {/if}\n\n       {if $register_date}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Registration Date{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$register_date|crmDate}\n         </td>\n        </tr>\n       {/if}\n\n       {if $receive_date}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Transaction Date{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$receive_date|crmDate}\n         </td>\n        </tr>\n       {/if}\n\n       {if $financialTypeName}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Financial Type{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$financialTypeName}\n         </td>\n        </tr>\n       {/if}\n\n       {if $trxn_id}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Transaction #{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$trxn_id}\n         </td>\n        </tr>\n       {/if}\n\n       {if $paidBy}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Paid By{/ts}\n         </td>\n         <td {$valueStyle}>\n         {$paidBy}\n         </td>\n        </tr>\n       {/if}\n\n       {if $checkNumber}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Check Number{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$checkNumber}\n         </td>\n        </tr>\n       {/if}\n\n       {if $billingName}\n        <tr>\n         <th {$headerStyle}>\n          {ts}Billing Name and Address{/ts}\n         </th>\n        </tr>\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          {$billingName}<br />\n          {$address|nl2br}\n         </td>\n        </tr>\n       {/if}\n\n       {if $credit_card_type}\n        <tr>\n         <th {$headerStyle}>\n          {ts}Credit Card Information{/ts}\n         </th>\n        </tr>\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          {$credit_card_type}<br />\n          {$credit_card_number}<br />\n          {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n         </td>\n        </tr>\n       {/if}\n\n      {/if}\n\n     {/if} {* End of conditional section for Paid events *}\n\n     {if $customPre}\n      <tr>\n       <th {$headerStyle}>\n        {$customPre_grouptitle}\n       </th>\n      </tr>\n      {foreach from=$customPre item=value key=customName}\n       {if ( $trackingFields and ! in_array( $customName, $trackingFields ) ) or ! $trackingFields}\n        <tr>\n         <td {$labelStyle}>\n          {$customName}\n         </td>\n         <td {$valueStyle}>\n          {$value}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n     {if $customPost}\n      <tr>\n       <th {$headerStyle}>\n        {$customPost_grouptitle}\n       </th>\n      </tr>\n      {foreach from=$customPost item=value key=customName}\n       {if ( $trackingFields and ! in_array( $customName, $trackingFields ) ) or ! $trackingFields}\n        <tr>\n         <td {$labelStyle}>\n          {$customName}\n         </td>\n         <td {$valueStyle}>\n          {$value}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n     {if $customProfile}\n      {foreach from=$customProfile item=value key=customName}\n       <tr>\n        <th {$headerStyle}>\n         {ts 1=$customName+1}Participant Information - Participant %1{/ts}\n        </th>\n       </tr>\n       {foreach from=$value item=val key=field}\n        {if $field eq \'additionalCustomPre\' or $field eq \'additionalCustomPost\'}\n         <tr>\n          <td colspan=\"2\" {$labelStyle}>\n           {if $field eq \'additionalCustomPre\'}\n            {$additionalCustomPre_grouptitle}\n           {else}\n            {$additionalCustomPost_grouptitle}\n           {/if}\n          </td>\n         </tr>\n         {foreach from=$val item=v key=f}\n          <tr>\n           <td {$labelStyle}>\n            {$f}\n           </td>\n           <td {$valueStyle}>\n            {$v}\n           </td>\n          </tr>\n         {/foreach}\n        {/if}\n       {/foreach}\n      {/foreach}\n     {/if}\n\n     {if $customGroup}\n      {foreach from=$customGroup item=value key=customName}\n       <tr>\n        <th {$headerStyle}>\n         {$customName}\n        </th>\n       </tr>\n       {foreach from=$value item=v key=n}\n        <tr>\n         <td {$labelStyle}>\n          {$n}\n         </td>\n         <td {$valueStyle}>\n          {$v}\n         </td>\n        </tr>\n       {/foreach}\n      {/foreach}\n     {/if}\n\n    </table>\n   </td>\n  </tr>\n\n </table>\n</center>\n\n</body>\n</html>\n',1,833,1,0,0,NULL),(30,'Events - Registration Confirmation and Receipt (off-line)','{ts}Event Confirmation{/ts} - {$event.title} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n{if $event.confirm_email_text AND (not $isOnWaitlist AND not $isRequireApproval)}\n{$event.confirm_email_text}\n{/if}\n\n{if $isOnWaitlist}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{ts}You have been added to the WAIT LIST for this event.{/ts}\n\n{if $isPrimary}\n{ts}If space becomes available you will receive an email with a link to a web page where you can complete your registration.{/ts}\n\n{/if}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{elseif $isRequireApproval}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{ts}Your registration has been submitted.{/ts}\n\n{if $isPrimary}\n{ts}Once your registration has been reviewed, you will receive an email with a link to a web page where you can complete the registration process.{/ts}\n\n{/if}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{elseif $is_pay_later}\n\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{$pay_later_receipt}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{/if}\n\n\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{ts}Event Information and Location{/ts}\n\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{$event.event_title}\n{$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n\n{if $event.participant_role neq \'Attendee\' and $defaultRole}\n{ts}Participant Role{/ts}: {$event.participant_role}\n{/if}\n\n{if $isShowLocation}\n{$location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n\n{if $location.phone.1.phone || $location.email.1.email}\n\n{ts}Event Contacts:{/ts}\n{foreach from=$location.phone item=phone}\n{if $phone.phone}\n\n{if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}: {$phone.phone}{/if} {if $phone.phone_ext} {ts}ext.{/ts} {$phone.phone_ext}{/if}\n{/foreach}\n{foreach from=$location.email item=eventEmail}\n{if $eventEmail.email}\n\n{ts}Email{/ts}: {$eventEmail.email}{/if}{/foreach}\n{/if}\n\n{if $event.is_public}\n{capture assign=icalFeed}{crmURL p=\'civicrm/event/ical\' q=\"reset=1&id=`$event.id`\" h=0 a=1 fe=1}{/capture}\n{ts}Download iCalendar File:{/ts} {$icalFeed}\n{/if}\n\n{if $email}\n\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{ts}Registered Email{/ts}\n\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{$email}\n{/if}\n{if $event.is_monetary} {* This section for Paid events only.*}\n\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{$event.fee_label}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{if $lineItem}{foreach from=$lineItem item=value key=priceset}\n\n{if $value neq \'skip\'}\n{if $isPrimary}\n{if $lineItem|@count GT 1} {* Header for multi participant registration cases. *}\n{ts 1=$priceset+1}Participant %1{/ts}\n{/if}\n{/if}\n---------------------------------------------------------{if $pricesetFieldsCount }--------------------{/if}\n\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_qty}{ts}Qty{/ts}{/capture}\n{capture assign=ts_each}{ts}Each{/ts}{/capture}\n{if $dataArray}\n{capture assign=ts_subtotal}{ts}Subtotal{/ts}{/capture}\n{capture assign=ts_taxRate}{ts}Tax Rate{/ts}{/capture}\n{capture assign=ts_taxAmount}{ts}Tax Amount{/ts}{/capture}\n{/if}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{capture assign=ts_participant_total}{if $pricesetFieldsCount }{ts}Total Participants{/ts}{/if}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_qty|string_format:\"%5s\"} {$ts_each|string_format:\"%10s\"} {if $dataArray} {$ts_subtotal|string_format:\"%10s\"} {$ts_taxRate|string_format:\"%10s\"} {$ts_taxAmount|string_format:\"%10s\"} {/if} {$ts_total|string_format:\"%10s\"} {$ts_participant_total|string_format:\"%10s\"}\n----------------------------------------------------------{if $pricesetFieldsCount }--------------------{/if}\n\n{foreach from=$value item=line}\n{if $pricesetFieldsCount }{capture assign=ts_participant_count}{$line.participant_count}{/capture}{/if}\n{capture assign=ts_item}{if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description} {$line.description}{/if}{/capture}{$ts_item|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.qty|string_format:\"%5s\"} {$line.unit_price|crmMoney|string_format:\"%10s\"} {if $dataArray} {$line.unit_price*$line.qty|crmMoney:$currency|string_format:\"%10s\"} {if $line.tax_rate != \"\" || $line.tax_amount != \"\"}  {$line.tax_rate|string_format:\"%.2f\"} %  {$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"} {else}                  {/if}  {/if}  {$line.line_total+$line.tax_amount|crmMoney|string_format:\"%10s\"} {$ts_participant_count|string_format:\"%10s\"}\n{/foreach}\n{/if}\n{/foreach}\n\n{if $dataArray}\n{ts}Amount before Tax{/ts}: {$totalAmount-$totalTaxAmount|crmMoney:$currency}\n\n{foreach from=$dataArray item=value key=priceset}\n{if $priceset || $priceset == 0}\n{$taxTerm} {$priceset|string_format:\"%.2f\"}%: {$value|crmMoney:$currency}\n{else}\n{ts}No{/ts} {$taxTerm}: {$value|crmMoney:$currency}\n{/if}\n{/foreach}\n{/if}\n{/if}\n\n{if $amount && !$lineItem}\n{foreach from=$amount item=amnt key=level}{$amnt.amount|crmMoney} {$amnt.label}\n{/foreach}\n{/if}\n\n{if $totalTaxAmount}\n{ts}Total Tax Amount{/ts}: {$totalTaxAmount|crmMoney:$currency}\n{/if}\n{if $isPrimary}\n\n{if $balanceAmount}{ts}Total Paid{/ts}{else}{ts}Total Amount{/ts}{/if}: {$totalAmount|crmMoney} {if $hookDiscount.message}({$hookDiscount.message}){/if}\n\n{if $balanceAmount}\n{ts}Balance{/ts}: {$balanceAmount|crmMoney}\n{/if}\n\n{if $pricesetFieldsCount }\n      {assign var=\"count\" value= 0}\n      {foreach from=$lineItem item=pcount}\n      {assign var=\"lineItemCount\" value=0}\n      {if $pcount neq \'skip\'}\n        {foreach from=$pcount item=p_count}\n        {assign var=\"lineItemCount\" value=$lineItemCount+$p_count.participant_count}\n        {/foreach}\n        {if $lineItemCount < 1 }\n        {assign var=\"lineItemCount\" value=1}\n        {/if}\n      {assign var=\"count\" value=$count+$lineItemCount}\n      {/if}\n      {/foreach}\n\n{ts}Total Participants{/ts}: {$count}\n{/if}\n\n{if $is_pay_later }\n\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{$pay_later_receipt}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{/if}\n\n{if $register_date}\n{ts}Registration Date{/ts}: {$register_date|crmDate}\n{/if}\n{if $receive_date}\n{ts}Transaction Date{/ts}: {$receive_date|crmDate}\n{/if}\n{if $financialTypeName}\n{ts}Financial Type{/ts}: {$financialTypeName}\n{/if}\n{if $trxn_id}\n{ts}Transaction #{/ts}: {$trxn_id}\n{/if}\n{if $paidBy}\n{ts}Paid By{/ts}: {$paidBy}\n{/if}\n{if $checkNumber}\n{ts}Check Number{/ts}: {$checkNumber}\n{/if}\n{if $billingName}\n\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{ts}Billing Name and Address{/ts}\n\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{$billingName}\n{$address}\n{/if}\n\n{if $credit_card_type}\n===========================================================\n{ts}Credit Card Information{/ts}\n\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n{/if}\n{/if} {* End of conditional section for Paid events *}\n\n{if $customPre}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{$customPre_grouptitle}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{foreach from=$customPre item=value key=customName}\n{if ( $trackingFields and ! in_array( $customName, $trackingFields ) ) or ! $trackingFields}\n{$customName}: {$value}\n{/if}\n{/foreach}\n{/if}\n\n{if $customPost}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{$customPost_grouptitle}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{foreach from=$customPost item=value key=customName}\n{if ( $trackingFields and ! in_array( $customName, $trackingFields ) ) or ! $trackingFields}\n{$customName}: {$value}\n{/if}\n{/foreach}\n{/if}\n{if $customProfile}\n\n{foreach from=$customProfile item=value key=customName}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{ts 1=$customName+1}Participant Information - Participant %1{/ts}\n\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{foreach from=$value item=val key=field}\n{if $field eq \'additionalCustomPre\' or $field eq \'additionalCustomPost\' }\n{if $field eq \'additionalCustomPre\' }\n----------------------------------------------------------{if $pricesetFieldsCount }--------------------{/if}\n\n{$additionalCustomPre_grouptitle}\n----------------------------------------------------------{if $pricesetFieldsCount }--------------------{/if}\n\n{else}\n----------------------------------------------------------{if $pricesetFieldsCount }--------------------{/if}\n\n{$additionalCustomPost_grouptitle}\n----------------------------------------------------------{if $pricesetFieldsCount }--------------------{/if}\n\n{/if}\n{foreach from=$val item=v key=f}\n{$f}: {$v}\n{/foreach}\n{/if}\n{/foreach}\n{/foreach}\n{/if}\n{if $customGroup}\n{foreach from=$customGroup item=value key=customName}\n=========================================================={if $pricesetFieldsCount }===================={/if}\n\n{$customName}\n=========================================================={if $pricesetFieldsCount }===================={/if}\n\n{foreach from=$value item=v key=n}\n{$n}: {$v}\n{/foreach}\n{/foreach}\n{/if}\n\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n\n    {if $event.confirm_email_text AND (not $isOnWaitlist AND not $isRequireApproval)}\n     <p>{$event.confirm_email_text|htmlize}</p>\n    {/if}\n\n    {if $isOnWaitlist}\n     <p>{ts}You have been added to the WAIT LIST for this event.{/ts}</p>\n     {if $isPrimary}\n       <p>{ts}If space becomes available you will receive an email with a link to a web page where you can complete your registration.{/ts}</p>\n     {/if}\n    {elseif $isRequireApproval}\n     <p>{ts}Your registration has been submitted.{/ts}</p>\n     {if $isPrimary}\n      <p>{ts}Once your registration has been reviewed, you will receive an email with a link to a web page where you can complete the registration process.{/ts}</p>\n     {/if}\n    {elseif $is_pay_later}\n     <p>{$pay_later_receipt}</p> {* FIXME: this might be text rather than HTML *}\n    {/if}\n\n   </td>\n  </tr>\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Event Information and Location{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td colspan=\"2\" {$valueStyle}>\n       {$event.event_title}<br />\n       {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n      </td>\n     </tr>\n\n     {if $event.participant_role neq \'Attendee\' and $defaultRole}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Participant Role{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$event.participant_role}\n       </td>\n      </tr>\n     {/if}\n\n     {if $isShowLocation}\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$location.address.1.display|nl2br}\n       </td>\n      </tr>\n     {/if}\n\n     {if $location.phone.1.phone || $location.email.1.email}\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n        {ts}Event Contacts:{/ts}\n       </td>\n      </tr>\n      {foreach from=$location.phone item=phone}\n       {if $phone.phone}\n        <tr>\n         <td {$labelStyle}>\n          {if $phone.phone_type}\n           {$phone.phone_type_display}\n          {else}\n           {ts}Phone{/ts}\n          {/if}\n         </td>\n         <td {$valueStyle}>\n          {$phone.phone} {if $phone.phone_ext}&nbsp;{ts}ext.{/ts} {$phone.phone_ext}{/if}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n      {foreach from=$location.email item=eventEmail}\n       {if $eventEmail.email}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Email{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$eventEmail.email}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n     {if $event.is_public}\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {capture assign=icalFeed}{crmURL p=\'civicrm/event/ical\' q=\"reset=1&id=`$event.id`\" h=0 a=1 fe=1}{/capture}\n        <a href=\"{$icalFeed}\">{ts}Download iCalendar File{/ts}</a>\n       </td>\n      </tr>\n     {/if}\n\n     {if $email}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Registered Email{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$email}\n       </td>\n      </tr>\n     {/if}\n\n\n     {if $event.is_monetary}\n\n      <tr>\n       <th {$headerStyle}>\n        {$event.fee_label}\n       </th>\n      </tr>\n\n      {if $lineItem}\n       {foreach from=$lineItem item=value key=priceset}\n        {if $value neq \'skip\'}\n         {if $isPrimary}\n          {if $lineItem|@count GT 1} {* Header for multi participant registration cases. *}\n           <tr>\n            <td colspan=\"2\" {$labelStyle}>\n             {ts 1=$priceset+1}Participant %1{/ts}\n            </td>\n           </tr>\n          {/if}\n         {/if}\n         <tr>\n          <td colspan=\"2\" {$valueStyle}>\n           <table> {* FIXME: style this table so that it looks like the text version (justification, etc.) *}\n            <tr>\n             <th>{ts}Item{/ts}</th>\n             <th>{ts}Qty{/ts}</th>\n             <th>{ts}Each{/ts}</th>\n             {if $dataArray}\n              <th>{ts}SubTotal{/ts}</th>\n              <th>{ts}Tax Rate{/ts}</th>\n              <th>{ts}Tax Amount{/ts}</th>\n             {/if}\n             <th>{ts}Total{/ts}</th>\n       {if $pricesetFieldsCount }<th>{ts}Total Participants{/ts}</th>{/if}\n            </tr>\n            {foreach from=$value item=line}\n             <tr>\n              <td>\n        {if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description}<div>{$line.description|truncate:30:\"...\"}</div>{/if}\n              </td>\n              <td>\n               {$line.qty}\n              </td>\n              <td>\n               {$line.unit_price|crmMoney}\n              </td>\n              {if $dataArray}\n               <td>\n                {$line.unit_price*$line.qty|crmMoney}\n               </td>\n               {if $line.tax_rate != \"\" || $line.tax_amount != \"\"}\n                <td>\n                 {$line.tax_rate|string_format:\"%.2f\"}%\n                </td>\n                <td>\n                 {$line.tax_amount|crmMoney}\n                </td>\n               {else}\n                <td></td>\n                <td></td>\n               {/if}\n              {/if}\n              <td>\n               {$line.line_total+$line.tax_amount|crmMoney}\n              </td>\n        {if  $pricesetFieldsCount }\n        <td>\n    {$line.participant_count}\n              </td>\n        {/if}\n             </tr>\n            {/foreach}\n           </table>\n          </td>\n         </tr>\n        {/if}\n       {/foreach}\n       {if $dataArray}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Amount Before Tax:{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$totalAmount-$totalTaxAmount|crmMoney}\n         </td>\n        </tr>\n        {foreach from=$dataArray item=value key=priceset}\n          <tr>\n           {if $priceset || $priceset == 0}\n            <td>&nbsp;{$taxTerm} {$priceset|string_format:\"%.2f\"}%</td>\n            <td>&nbsp;{$value|crmMoney:$currency}</td>\n           {else}\n            <td>&nbsp;{ts}No{/ts} {$taxTerm}</td>\n            <td>&nbsp;{$value|crmMoney:$currency}</td>\n           {/if}\n          </tr>\n        {/foreach}\n       {/if}\n      {/if}\n\n      {if $amount && !$lineItem}\n       {foreach from=$amount item=amnt key=level}\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          {$amnt.amount|crmMoney} {$amnt.label}\n         </td>\n        </tr>\n       {/foreach}\n      {/if}\n      {if $totalTaxAmount}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Total Tax Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$totalTaxAmount|crmMoney:$currency}\n        </td>\n       </tr>\n      {/if}\n      {if $isPrimary}\n       <tr>\n        <td {$labelStyle}>\n        {if $balanceAmount}\n           {ts}Total Paid{/ts}\n        {else}\n           {ts}Total Amount{/ts}\n         {/if}\n        </td>\n        <td {$valueStyle}>\n         {$totalAmount|crmMoney} {if $hookDiscount.message}({$hookDiscount.message}){/if}\n        </td>\n       </tr>\n      {if $balanceAmount}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Balance{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$balanceAmount|crmMoney}\n        </td>\n       </tr>\n      {/if}\n       {if $pricesetFieldsCount }\n     <tr>\n       <td {$labelStyle}>\n   {ts}Total Participants{/ts}</td>\n       <td {$valueStyle}>\n   {assign var=\"count\" value= 0}\n         {foreach from=$lineItem item=pcount}\n         {assign var=\"lineItemCount\" value=0}\n         {if $pcount neq \'skip\'}\n           {foreach from=$pcount item=p_count}\n           {assign var=\"lineItemCount\" value=$lineItemCount+$p_count.participant_count}\n           {/foreach}\n           {if $lineItemCount < 1 }\n           assign var=\"lineItemCount\" value=1}\n           {/if}\n           {assign var=\"count\" value=$count+$lineItemCount}\n         {/if}\n         {/foreach}\n   {$count}\n       </td>\n     </tr>\n     {/if}\n       {if $is_pay_later}\n        <tr>\n         <td colspan=\"2\" {$labelStyle}>\n          {$pay_later_receipt}\n         </td>\n        </tr>\n       {/if}\n\n       {if $register_date}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Registration Date{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$register_date|crmDate}\n         </td>\n        </tr>\n       {/if}\n\n       {if $receive_date}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Transaction Date{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$receive_date|crmDate}\n         </td>\n        </tr>\n       {/if}\n\n       {if $financialTypeName}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Financial Type{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$financialTypeName}\n         </td>\n        </tr>\n       {/if}\n\n       {if $trxn_id}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Transaction #{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$trxn_id}\n         </td>\n        </tr>\n       {/if}\n\n       {if $paidBy}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Paid By{/ts}\n         </td>\n         <td {$valueStyle}>\n         {$paidBy}\n         </td>\n        </tr>\n       {/if}\n\n       {if $checkNumber}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Check Number{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$checkNumber}\n         </td>\n        </tr>\n       {/if}\n\n       {if $billingName}\n        <tr>\n         <th {$headerStyle}>\n          {ts}Billing Name and Address{/ts}\n         </th>\n        </tr>\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          {$billingName}<br />\n          {$address|nl2br}\n         </td>\n        </tr>\n       {/if}\n\n       {if $credit_card_type}\n        <tr>\n         <th {$headerStyle}>\n          {ts}Credit Card Information{/ts}\n         </th>\n        </tr>\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          {$credit_card_type}<br />\n          {$credit_card_number}<br />\n          {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n         </td>\n        </tr>\n       {/if}\n\n      {/if}\n\n     {/if} {* End of conditional section for Paid events *}\n\n     {if $customPre}\n      <tr>\n       <th {$headerStyle}>\n        {$customPre_grouptitle}\n       </th>\n      </tr>\n      {foreach from=$customPre item=value key=customName}\n       {if ( $trackingFields and ! in_array( $customName, $trackingFields ) ) or ! $trackingFields}\n        <tr>\n         <td {$labelStyle}>\n          {$customName}\n         </td>\n         <td {$valueStyle}>\n          {$value}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n     {if $customPost}\n      <tr>\n       <th {$headerStyle}>\n        {$customPost_grouptitle}\n       </th>\n      </tr>\n      {foreach from=$customPost item=value key=customName}\n       {if ( $trackingFields and ! in_array( $customName, $trackingFields ) ) or ! $trackingFields}\n        <tr>\n         <td {$labelStyle}>\n          {$customName}\n         </td>\n         <td {$valueStyle}>\n          {$value}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n     {if $customProfile}\n      {foreach from=$customProfile item=value key=customName}\n       <tr>\n        <th {$headerStyle}>\n         {ts 1=$customName+1}Participant Information - Participant %1{/ts}\n        </th>\n       </tr>\n       {foreach from=$value item=val key=field}\n        {if $field eq \'additionalCustomPre\' or $field eq \'additionalCustomPost\'}\n         <tr>\n          <td colspan=\"2\" {$labelStyle}>\n           {if $field eq \'additionalCustomPre\'}\n            {$additionalCustomPre_grouptitle}\n           {else}\n            {$additionalCustomPost_grouptitle}\n           {/if}\n          </td>\n         </tr>\n         {foreach from=$val item=v key=f}\n          <tr>\n           <td {$labelStyle}>\n            {$f}\n           </td>\n           <td {$valueStyle}>\n            {$v}\n           </td>\n          </tr>\n         {/foreach}\n        {/if}\n       {/foreach}\n      {/foreach}\n     {/if}\n\n     {if $customGroup}\n      {foreach from=$customGroup item=value key=customName}\n       <tr>\n        <th {$headerStyle}>\n         {$customName}\n        </th>\n       </tr>\n       {foreach from=$value item=v key=n}\n        <tr>\n         <td {$labelStyle}>\n          {$n}\n         </td>\n         <td {$valueStyle}>\n          {$v}\n         </td>\n        </tr>\n       {/foreach}\n      {/foreach}\n     {/if}\n\n    </table>\n   </td>\n  </tr>\n\n </table>\n</center>\n\n</body>\n</html>\n',1,833,0,1,0,NULL),(31,'Events - Registration Confirmation and Receipt (on-line)','{if $isOnWaitlist}{ts}Wait List Confirmation{/ts}{elseif $isRequireApproval}{ts}Registration Request Confirmation{/ts}{else}{ts}Registration Confirmation{/ts}{/if} - {$event.event_title} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n{if $event.confirm_email_text AND (not $isOnWaitlist AND not $isRequireApproval)}\n{$event.confirm_email_text}\n\n{else}\n  {ts}Thank you for your registration.{/ts}\n  {if $participant_status}{ts 1=$participant_status}This is a confirmation that your registration has been received and your status has been updated to %1.{/ts}\n  {else}{if $isOnWaitlist}{ts}This is a confirmation that your registration has been received and your status has been updated to waitlisted.{/ts}{else}{ts}This is a confirmation that your registration has been received and your status has been updated to registered.{/ts}{/if}\n  {/if}\n{/if}\n\n{if $isOnWaitlist}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{ts}You have been added to the WAIT LIST for this event.{/ts}\n\n{if $isPrimary}\n{ts}If space becomes available you will receive an email with a link to a web page where you can complete your registration.{/ts}\n{/if}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{elseif $isRequireApproval}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{ts}Your registration has been submitted.{/ts}\n\n{if $isPrimary}\n{ts}Once your registration has been reviewed, you will receive an email with a link to a web page where you can complete the registration process.{/ts}\n\n{/if}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{elseif $is_pay_later && !$isAmountzero && !$isAdditionalParticipant}\n\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{$pay_later_receipt}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{/if}\n\n\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{ts}Event Information and Location{/ts}\n\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{$event.event_title}\n{$event.event_start_date|date_format:\"%A\"} {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|date_format:\"%A\"} {$event.event_end_date|crmDate}{/if}{/if}\n{if $conference_sessions}\n\n\n{ts}Your schedule:{/ts}\n{assign var=\'group_by_day\' value=\'NA\'}\n{foreach from=$conference_sessions item=session}\n{if $session.start_date|date_format:\"%Y/%m/%d\" != $group_by_day|date_format:\"%Y/%m/%d\"}\n{assign var=\'group_by_day\' value=$session.start_date}\n\n{$group_by_day|date_format:\"%m/%d/%Y\"}\n\n\n{/if}\n{$session.start_date|crmDate:0:1}{if $session.end_date}-{$session.end_date|crmDate:0:1}{/if} {$session.title}\n{if $session.location}    {$session.location}{/if}\n{/foreach}\n{/if}\n\n{if $event.participant_role neq \'Attendee\' and $defaultRole}\n{ts}Participant Role{/ts}: {$event.participant_role}\n{/if}\n\n{if $isShowLocation}\n{$location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n\n{if $location.phone.1.phone || $location.email.1.email}\n\n{ts}Event Contacts:{/ts}\n{foreach from=$location.phone item=phone}\n{if $phone.phone}\n\n{if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}: {$phone.phone}{/if} {if $phone.phone_ext} {ts}ext.{/ts} {$phone.phone_ext}{/if}\n{/foreach}\n{foreach from=$location.email item=eventEmail}\n{if $eventEmail.email}\n\n{ts}Email{/ts}: {$eventEmail.email}{/if}{/foreach}\n{/if}\n\n{if $event.is_public}\n{capture assign=icalFeed}{crmURL p=\'civicrm/event/ical\' q=\"reset=1&id=`$event.id`\" h=0 a=1 fe=1}{/capture}\n{ts}Download iCalendar File:{/ts} {$icalFeed}\n{/if}\n\n{if $payer.name}\nYou were registered by: {$payer.name}\n{/if}\n{if $event.is_monetary and not $isRequireApproval} {* This section for Paid events only.*}\n\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{$event.fee_label}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{if $lineItem}{foreach from=$lineItem item=value key=priceset}\n\n{if $value neq \'skip\'}\n{if $isPrimary}\n{if $lineItem|@count GT 1} {* Header for multi participant registration cases. *}\n{ts 1=$priceset+1}Participant %1{/ts} {$part.$priceset.info}\n\n{/if}\n{/if}\n-----------------------------------------------------------{if $pricesetFieldsCount }-----------------------------------------------------{/if}\n\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_qty}{ts}Qty{/ts}{/capture}\n{capture assign=ts_each}{ts}Each{/ts}{/capture}\n{if $dataArray}\n{capture assign=ts_subtotal}{ts}Subtotal{/ts}{/capture}\n{capture assign=ts_taxRate}{ts}Tax Rate{/ts}{/capture}\n{capture assign=ts_taxAmount}{ts}Tax Amount{/ts}{/capture}\n{/if}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{if $pricesetFieldsCount }{capture assign=ts_participant_total}{ts}Total Participants{/ts}{/capture}{/if}\n{$ts_item|string_format:\"%-30s\"} {$ts_qty|string_format:\"%5s\"} {$ts_each|string_format:\"%10s\"} {if $dataArray} {$ts_subtotal|string_format:\"%10s\"} {$ts_taxRate|string_format:\"%10s\"} {$ts_taxAmount|string_format:\"%10s\"} {/if} {$ts_total|string_format:\"%10s\"} {$ts_participant_total|string_format:\"%10s\"}\n-----------------------------------------------------------{if $pricesetFieldsCount }-----------------------------------------------------{/if}\n\n{foreach from=$value item=line}\n{if $pricesetFieldsCount }{capture assign=ts_participant_count}{$line.participant_count}{/capture}{/if}\n{capture assign=ts_item}{if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description} {$line.description}{/if}{/capture}{$ts_item|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.qty|string_format:\"%5s\"} {$line.unit_price|crmMoney:$currency|string_format:\"%10s\"} {if $dataArray} {$line.unit_price*$line.qty|crmMoney:$currency|string_format:\"%10s\"} {if $line.tax_rate != \"\" || $line.tax_amount != \"\"}  {$line.tax_rate|string_format:\"%.2f\"} %  {$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"} {else}                  {/if}  {/if} {$line.line_total+$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"}{$ts_participant_count|string_format:\"%10s\"}\n{/foreach}\n----------------------------------------------------------------------------------------------------------------\n{if $individual}{ts}Participant Total{/ts} {$individual.$priceset.totalAmtWithTax-$individual.$priceset.totalTaxAmt|crmMoney:$currency|string_format:\"%29s\"} {$individual.$priceset.totalTaxAmt|crmMoney:$currency|string_format:\"%33s\"} {$individual.$priceset.totalAmtWithTax|crmMoney:$currency|string_format:\"%12s\"}{/if}\n{/if}\n{\"\"|string_format:\"%120s\"}\n{/foreach}\n{\"\"|string_format:\"%120s\"}\n\n{if $dataArray}\n{ts}Amount before Tax{/ts}: {$totalAmount-$totalTaxAmount|crmMoney:$currency}\n\n{foreach from=$dataArray item=value key=priceset}\n{if $priceset || $priceset == 0}\n{$taxTerm} {$priceset|string_format:\"%.2f\"}%: {$value|crmMoney:$currency}\n{else}\n{ts}No{/ts} {$taxTerm}: {$value|crmMoney:$currency}\n{/if}\n{/foreach}\n{/if}\n{/if}\n\n{if $amounts && !$lineItem}\n{foreach from=$amounts item=amnt key=level}{$amnt.amount|crmMoney:$currency} {$amnt.label}\n{/foreach}\n{/if}\n\n{if $totalTaxAmount}\n{ts}Total Tax Amount{/ts}: {$totalTaxAmount|crmMoney:$currency}\n{/if}\n{if $isPrimary }\n\n{ts}Total Amount{/ts}: {$totalAmount|crmMoney:$currency} {if $hookDiscount.message}({$hookDiscount.message}){/if}\n\n{if $pricesetFieldsCount }\n      {assign var=\"count\" value= 0}\n      {foreach from=$lineItem item=pcount}\n      {assign var=\"lineItemCount\" value=0}\n      {if $pcount neq \'skip\'}\n        {foreach from=$pcount item=p_count}\n        {assign var=\"lineItemCount\" value=$lineItemCount+$p_count.participant_count}\n        {/foreach}\n      {if $lineItemCount < 1 }\n        {assign var=\"lineItemCount\" value=1}\n      {/if}\n      {assign var=\"count\" value=$count+$lineItemCount}\n      {/if}\n      {/foreach}\n\n{ts}Total Participants{/ts}: {$count}\n{/if}\n\n{if $register_date}\n{ts}Registration Date{/ts}: {$register_date|crmDate}\n{/if}\n{if $receive_date}\n{ts}Transaction Date{/ts}: {$receive_date|crmDate}\n{/if}\n{if $financialTypeName}\n{ts}Financial Type{/ts}: {$financialTypeName}\n{/if}\n{if $trxn_id}\n{ts}Transaction #{/ts}: {$trxn_id}\n{/if}\n{if $paidBy}\n{ts}Paid By{/ts}: {$paidBy}\n{/if}\n{if $checkNumber}\n{ts}Check Number{/ts}: {$checkNumber}\n{/if}\n{if $billingName}\n\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{ts}Billing Name and Address{/ts}\n\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{$billingName}\n{$address}\n{/if}\n\n{if $credit_card_type}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{ts}Credit Card Information{/ts}\n\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n{/if}\n{/if} {* End of conditional section for Paid events *}\n\n{if $customPre}\n{foreach from=$customPre item=customPr key=i}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{$customPre_grouptitle.$i}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{foreach from=$customPr item=customValue key=customName}\n{if ( $trackingFields and ! in_array( $customName, $trackingFields ) ) or ! $trackingFields}\n {$customName}: {$customValue}\n{/if}\n{/foreach}\n{/foreach}\n{/if}\n\n{if $customPost}\n{foreach from=$customPost item=customPos key=j}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{$customPost_grouptitle.$j}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{foreach from=$customPos item=customValue key=customName}\n{if ( $trackingFields and ! in_array( $customName, $trackingFields ) ) or ! $trackingFields}\n {$customName}: {$customValue}\n{/if}\n{/foreach}\n{/foreach}\n{/if}\n{if $customProfile}\n\n{foreach from=$customProfile.profile item=eachParticipant key=participantID}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{ts 1=$participantID+2}Participant Information - Participant %1{/ts}\n\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{foreach from=$eachParticipant item=eachProfile key=pid}\n----------------------------------------------------------{if $pricesetFieldsCount }--------------------{/if}\n\n{$customProfile.title.$pid}\n----------------------------------------------------------{if $pricesetFieldsCount }--------------------{/if}\n\n{foreach from=$eachProfile item=val key=field}\n{foreach from=$val item=v key=f}\n{$field}: {$v}\n{/foreach}\n{/foreach}\n{/foreach}\n{/foreach}\n{/if}\n{if $customGroup}\n{foreach from=$customGroup item=value key=customName}\n=========================================================={if $pricesetFieldsCount }===================={/if}\n\n{$customName}\n=========================================================={if $pricesetFieldsCount }===================={/if}\n\n{foreach from=$value item=v key=n}\n{$n}: {$v}\n{/foreach}\n{/foreach}\n{/if}\n\n{if $event.allow_selfcancelxfer }\n{ts 1=$event.selfcancelxfer_time}You may transfer your registration to another participant or cancel your registration up to %1 hours before the event.{/ts} {if $totalAmount}{ts}Cancellations are not refundable.{/ts}{/if}\n   {capture assign=selfService}{crmURL p=\'civicrm/event/selfsvcupdate\' q=\"reset=1&pid=`$participant.id`&{contact.checksum}\"  h=0 a=1 fe=1}{/capture}\n{ts}Transfer or cancel your registration:{/ts} {$selfService}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n{capture assign=tdfirstStyle}style=\"width: 180px; padding-bottom: 15px;\"{/capture}\n{capture assign=tdStyle}style=\"width: 100px;\"{/capture}\n{capture assign=participantTotal}style=\"margin: 0.5em 0 0.5em;padding: 0.5em;background-color: #999999;font-weight: bold;color: #FAFAFA;border-radius: 2px;\"{/capture}\n\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n     {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n\n    {if $event.confirm_email_text AND (not $isOnWaitlist AND not $isRequireApproval)}\n     <p>{$event.confirm_email_text|htmlize}</p>\n\n    {else}\n     <p>{ts}Thank you for your registration.{/ts}\n     {if $participant_status}{ts 1=$participant_status}This is a confirmation that your registration has been received and your status has been updated to <strong> %1</strong>.{/ts}\n     {else}{if $isOnWaitlist}{ts}This is a confirmation that your registration has been received and your status has been updated to <strong>waitlisted</strong>.{/ts}{else}{ts}This is a confirmation that your registration has been received and your status has been updated to <strong>registered<strong>.{/ts}{/if}{/if}</p>\n\n    {/if}\n\n    <p>\n    {if $isOnWaitlist}\n     <p>{ts}You have been added to the WAIT LIST for this event.{/ts}</p>\n     {if $isPrimary}\n       <p>{ts}If space becomes available you will receive an email with a link to a web page where you can complete your registration.{/ts}</p>\n     {/if}\n    {elseif $isRequireApproval}\n     <p>{ts}Your registration has been submitted.{/ts}</p>\n     {if $isPrimary}\n      <p>{ts}Once your registration has been reviewed, you will receive an email with a link to a web page where you can complete the registration process.{/ts}</p>\n     {/if}\n    {elseif $is_pay_later && !$isAmountzero && !$isAdditionalParticipant}\n     <p>{$pay_later_receipt}</p> {* FIXME: this might be text rather than HTML *}\n    {/if}\n\n   </td>\n  </tr>\n  <tr>\n   <td>\n    <table style=\"width:100%; max-width:700px; border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Event Information and Location{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td colspan=\"2\" {$valueStyle}>\n       {$event.event_title}<br />\n       {$event.event_start_date|date_format:\"%A\"} {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|date_format:\"%A\"} {$event.event_end_date|crmDate}{/if}{/if}\n      </td>\n     </tr>\n\n\n     {if $conference_sessions}\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n  {ts}Your schedule:{/ts}\n       </td>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n  {assign var=\'group_by_day\' value=\'NA\'}\n  {foreach from=$conference_sessions item=session}\n   {if $session.start_date|date_format:\"%Y/%m/%d\" != $group_by_day|date_format:\"%Y/%m/%d\"}\n    {assign var=\'group_by_day\' value=$session.start_date}\n          <em>{$group_by_day|date_format:\"%m/%d/%Y\"}</em><br />\n   {/if}\n   {$session.start_date|crmDate:0:1}{if $session.end_date}-{$session.end_date|crmDate:0:1}{/if} {$session.title}<br />\n   {if $session.location}&nbsp;&nbsp;&nbsp;&nbsp;{$session.location}<br />{/if}\n  {/foreach}\n       </td>\n      </tr>\n     {/if}\n\n     {if $event.participant_role neq \'Attendee\' and $defaultRole}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Participant Role{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$event.participant_role}\n       </td>\n      </tr>\n     {/if}\n\n     {if $isShowLocation}\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$location.address.1.display|nl2br}\n       </td>\n      </tr>\n     {/if}\n\n     {if $location.phone.1.phone || $location.email.1.email}\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n        {ts}Event Contacts:{/ts}\n       </td>\n      </tr>\n      {foreach from=$location.phone item=phone}\n       {if $phone.phone}\n        <tr>\n         <td {$labelStyle}>\n          {if $phone.phone_type}\n           {$phone.phone_type_display}\n          {else}\n           {ts}Phone{/ts}\n          {/if}\n         </td>\n         <td {$valueStyle}>\n          {$phone.phone} {if $phone.phone_ext}&nbsp;{ts}ext.{/ts} {$phone.phone_ext}{/if}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n      {foreach from=$location.email item=eventEmail}\n       {if $eventEmail.email}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Email{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$eventEmail.email}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n     {if $event.is_public}\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {capture assign=icalFeed}{crmURL p=\'civicrm/event/ical\' q=\"reset=1&id=`$event.id`\" h=0 a=1 fe=1}{/capture}\n        <a href=\"{$icalFeed}\">{ts}Download iCalendar File{/ts}</a>\n       </td>\n      </tr>\n     {/if}\n\n    {if $event.is_share}\n        <tr>\n            <td colspan=\"2\" {$valueStyle}>\n                {capture assign=eventUrl}{crmURL p=\'civicrm/event/info\' q=\"id=`$event.id`&reset=1\" a=true fe=1 h=1}{/capture}\n                {include file=\"CRM/common/SocialNetwork.tpl\" emailMode=true url=$eventUrl title=$event.title pageURL=$eventUrl}\n            </td>\n        </tr>\n    {/if}\n    {if $payer.name}\n     <tr>\n       <th {$headerStyle}>\n         {ts}You were registered by:{/ts}\n       </th>\n     </tr>\n     <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$payer.name}\n       </td>\n     </tr>\n    {/if}\n    {if $event.is_monetary and not $isRequireApproval}\n\n      <tr>\n       <th {$headerStyle}>\n        {$event.fee_label}\n       </th>\n      </tr>\n\n      {if $lineItem}\n       {foreach from=$lineItem item=value key=priceset}\n        {if $value neq \'skip\'}\n         {if $isPrimary}\n          {if $lineItem|@count GT 1} {* Header for multi participant registration cases. *}\n           <tr>\n            <td colspan=\"2\" {$labelStyle}>\n             {ts 1=$priceset+1}Participant %1{/ts} {$part.$priceset.info}\n            </td>\n           </tr>\n          {/if}\n         {/if}\n         <tr>\n          <td colspan=\"2\" {$valueStyle}>\n           <table> {* FIXME: style this table so that it looks like the text version (justification, etc.) *}\n            <tr>\n             <th>{ts}Item{/ts}</th>\n             <th>{ts}Qty{/ts}</th>\n             <th>{ts}Each{/ts}</th>\n             {if $dataArray}\n              <th>{ts}SubTotal{/ts}</th>\n              <th>{ts}Tax Rate{/ts}</th>\n              <th>{ts}Tax Amount{/ts}</th>\n             {/if}\n             <th>{ts}Total{/ts}</th>\n       {if  $pricesetFieldsCount }<th>{ts}Total Participants{/ts}</th>{/if}\n            </tr>\n            {foreach from=$value item=line}\n             <tr>\n              <td {$tdfirstStyle}>\n              {if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description}<div>{$line.description|truncate:30:\"...\"}</div>{/if}\n              </td>\n              <td {$tdStyle} align=\"middle\">\n               {$line.qty}\n              </td>\n              <td {$tdStyle}>\n               {$line.unit_price|crmMoney:$currency}\n              </td>\n              {if $dataArray}\n               <td {$tdStyle}>\n                {$line.unit_price*$line.qty|crmMoney}\n               </td>\n               {if $line.tax_rate != \"\" || $line.tax_amount != \"\"}\n                <td {$tdStyle}>\n                 {$line.tax_rate|string_format:\"%.2f\"}%\n                </td>\n                <td {$tdStyle}>\n                 {$line.tax_amount|crmMoney}\n                </td>\n               {else}\n                <td></td>\n                <td></td>\n               {/if}\n              {/if}\n              <td {$tdStyle}>\n               {$line.line_total+$line.tax_amount|crmMoney:$currency}\n              </td>\n        {if $pricesetFieldsCount }<td {$tdStyle}>{$line.participant_count}</td> {/if}\n             </tr>\n            {/foreach}\n            {if $individual}\n              <tr {$participantTotal}>\n                <td colspan=3>{ts}Participant Total{/ts}</td>\n                <td colspan=2>{$individual.$priceset.totalAmtWithTax-$individual.$priceset.totalTaxAmt|crmMoney}</td>\n                <td colspan=1>{$individual.$priceset.totalTaxAmt|crmMoney}</td>\n                <td colspan=2>{$individual.$priceset.totalAmtWithTax|crmMoney}</td>\n              </tr>\n            {/if}\n           </table>\n          </td>\n         </tr>\n        {/if}\n       {/foreach}\n       {if $dataArray}\n        <tr>\n         <td {$labelStyle}>\n          {ts} Amount Before Tax: {/ts}\n         </td>\n         <td {$valueStyle}>\n          {$totalAmount-$totalTaxAmount|crmMoney}\n         </td>\n        </tr>\n        {foreach from=$dataArray item=value key=priceset}\n         <tr>\n          {if $priceset || $priceset == 0}\n           <td>&nbsp;{$taxTerm} {$priceset|string_format:\"%.2f\"}%</td>\n           <td>&nbsp;{$value|crmMoney:$currency}</td>\n          {else}\n           <td>&nbsp;{ts}No{/ts} {$taxTerm}</td>\n           <td>&nbsp;{$value|crmMoney:$currency}</td>\n          {/if}\n         </tr>\n        {/foreach}\n       {/if}\n      {/if}\n\n      {if $amounts && !$lineItem}\n       {foreach from=$amounts item=amnt key=level}\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          {$amnt.amount|crmMoney:$currency} {$amnt.label}\n         </td>\n        </tr>\n       {/foreach}\n      {/if}\n\n    {if $totalTaxAmount}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Total Tax Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$totalTaxAmount|crmMoney:$currency}\n        </td>\n       </tr>\n      {/if}\n      {if $isPrimary}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Total Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$totalAmount|crmMoney:$currency} {if $hookDiscount.message}({$hookDiscount.message}){/if}\n        </td>\n       </tr>\n       {if $pricesetFieldsCount }\n     <tr>\n       <td {$labelStyle}>\n      {ts}Total Participants{/ts}</td>\n      <td {$valueStyle}>\n      {assign var=\"count\" value= 0}\n      {foreach from=$lineItem item=pcount}\n      {assign var=\"lineItemCount\" value=0}\n      {if $pcount neq \'skip\'}\n        {foreach from=$pcount item=p_count}\n        {assign var=\"lineItemCount\" value=$lineItemCount+$p_count.participant_count}\n        {/foreach}\n      {if $lineItemCount < 1 }\n        {assign var=\"lineItemCount\" value=1}\n      {/if}\n      {assign var=\"count\" value=$count+$lineItemCount}\n      {/if}\n      {/foreach}\n     {$count}\n     </td> </tr>\n      {/if}\n\n       {if $register_date}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Registration Date{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$register_date|crmDate}\n         </td>\n        </tr>\n       {/if}\n\n       {if $receive_date}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Transaction Date{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$receive_date|crmDate}\n         </td>\n        </tr>\n       {/if}\n\n       {if $financialTypeName}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Financial Type{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$financialTypeName}\n         </td>\n        </tr>\n       {/if}\n\n       {if $trxn_id}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Transaction #{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$trxn_id}\n         </td>\n        </tr>\n       {/if}\n\n       {if $paidBy}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Paid By{/ts}\n         </td>\n         <td {$valueStyle}>\n         {$paidBy}\n         </td>\n        </tr>\n       {/if}\n\n       {if $checkNumber}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Check Number{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$checkNumber}\n         </td>\n        </tr>\n       {/if}\n\n       {if $billingName}\n        <tr>\n         <th {$headerStyle}>\n          {ts}Billing Name and Address{/ts}\n         </th>\n        </tr>\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          {$billingName}<br />\n          {$address|nl2br}\n         </td>\n        </tr>\n       {/if}\n\n       {if $credit_card_type}\n        <tr>\n         <th {$headerStyle}>\n          {ts}Credit Card Information{/ts}\n         </th>\n        </tr>\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          {$credit_card_type}<br />\n          {$credit_card_number}<br />\n          {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n         </td>\n        </tr>\n       {/if}\n\n      {/if}\n\n     {/if} {* End of conditional section for Paid events *}\n\n\n{if $customPre}\n{foreach from=$customPre item=customPr key=i}\n   <tr> <th {$headerStyle}>{$customPre_grouptitle.$i}</th></tr>\n   {foreach from=$customPr item=customValue key=customName}\n   {if ( $trackingFields and ! in_array( $customName, $trackingFields ) ) or ! $trackingFields}\n     <tr>\n         <td {$labelStyle}>{$customName}</td>\n         <td {$valueStyle}>{$customValue}</td>\n     </tr>\n   {/if}\n   {/foreach}\n{/foreach}\n{/if}\n\n{if $customPost}\n{foreach from=$customPost item=customPos key=j}\n   <tr> <th {$headerStyle}>{$customPost_grouptitle.$j}</th></tr>\n   {foreach from=$customPos item=customValue key=customName}\n   {if ( $trackingFields and ! in_array( $customName, $trackingFields ) ) or ! $trackingFields}\n     <tr>\n         <td {$labelStyle}>{$customName}</td>\n         <td {$valueStyle}>{$customValue}</td>\n     </tr>\n{/if}\n{/foreach}\n{/foreach}\n{/if}\n\n{if $customProfile}\n{foreach from=$customProfile.profile item=eachParticipant key=participantID}\n     <tr><th {$headerStyle}>{ts 1=$participantID+2}Participant %1{/ts} </th></tr>\n     {foreach from=$eachParticipant item=eachProfile key=pid}\n     <tr><th {$headerStyle}>{$customProfile.title.$pid}</th></tr>\n     {foreach from=$eachProfile item=val key=field}\n     <tr>{foreach from=$val item=v key=f}\n         <td {$labelStyle}>{$field}</td>\n         <td {$valueStyle}>{$v}</td>\n         {/foreach}\n     </tr>\n     {/foreach}\n{/foreach}\n{/foreach}\n{/if}\n\n    {if $customGroup}\n      {foreach from=$customGroup item=value key=customName}\n       <tr>\n        <th {$headerStyle}>\n         {$customName}\n        </th>\n       </tr>\n       {foreach from=$value item=v key=n}\n        <tr>\n         <td {$labelStyle}>\n          {$n}\n         </td>\n         <td {$valueStyle}>\n          {$v}\n         </td>\n        </tr>\n       {/foreach}\n      {/foreach}\n     {/if}\n    </table>\n    {if $event.allow_selfcancelxfer }\n     <tr>\n      <td colspan=\"2\" {$valueStyle}>\n        {ts 1=$event.selfcancelxfer_time}You may transfer your registration to another participant or cancel your registration up to %1 hours before the event.{/ts} {if $totalAmount}{ts}Cancellations are not refundable.{/ts}{/if}<br />\n        {capture assign=selfService}{crmURL p=\'civicrm/event/selfsvcupdate\' q=\"reset=1&pid=`$participant.id`&{contact.checksum}\"  h=0 a=1 fe=1}{/capture}\n        <a href=\"{$selfService}\">{ts}Click here to transfer or cancel your registration.{/ts}</a>\n      </td>\n     </tr>\n    {/if}\n </table>\n</center>\n\n</body>\n</html>\n',1,834,1,0,0,NULL),(32,'Events - Registration Confirmation and Receipt (on-line)','{if $isOnWaitlist}{ts}Wait List Confirmation{/ts}{elseif $isRequireApproval}{ts}Registration Request Confirmation{/ts}{else}{ts}Registration Confirmation{/ts}{/if} - {$event.event_title} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n{if $event.confirm_email_text AND (not $isOnWaitlist AND not $isRequireApproval)}\n{$event.confirm_email_text}\n\n{else}\n  {ts}Thank you for your registration.{/ts}\n  {if $participant_status}{ts 1=$participant_status}This is a confirmation that your registration has been received and your status has been updated to %1.{/ts}\n  {else}{if $isOnWaitlist}{ts}This is a confirmation that your registration has been received and your status has been updated to waitlisted.{/ts}{else}{ts}This is a confirmation that your registration has been received and your status has been updated to registered.{/ts}{/if}\n  {/if}\n{/if}\n\n{if $isOnWaitlist}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{ts}You have been added to the WAIT LIST for this event.{/ts}\n\n{if $isPrimary}\n{ts}If space becomes available you will receive an email with a link to a web page where you can complete your registration.{/ts}\n{/if}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{elseif $isRequireApproval}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{ts}Your registration has been submitted.{/ts}\n\n{if $isPrimary}\n{ts}Once your registration has been reviewed, you will receive an email with a link to a web page where you can complete the registration process.{/ts}\n\n{/if}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{elseif $is_pay_later && !$isAmountzero && !$isAdditionalParticipant}\n\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{$pay_later_receipt}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{/if}\n\n\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{ts}Event Information and Location{/ts}\n\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{$event.event_title}\n{$event.event_start_date|date_format:\"%A\"} {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|date_format:\"%A\"} {$event.event_end_date|crmDate}{/if}{/if}\n{if $conference_sessions}\n\n\n{ts}Your schedule:{/ts}\n{assign var=\'group_by_day\' value=\'NA\'}\n{foreach from=$conference_sessions item=session}\n{if $session.start_date|date_format:\"%Y/%m/%d\" != $group_by_day|date_format:\"%Y/%m/%d\"}\n{assign var=\'group_by_day\' value=$session.start_date}\n\n{$group_by_day|date_format:\"%m/%d/%Y\"}\n\n\n{/if}\n{$session.start_date|crmDate:0:1}{if $session.end_date}-{$session.end_date|crmDate:0:1}{/if} {$session.title}\n{if $session.location}    {$session.location}{/if}\n{/foreach}\n{/if}\n\n{if $event.participant_role neq \'Attendee\' and $defaultRole}\n{ts}Participant Role{/ts}: {$event.participant_role}\n{/if}\n\n{if $isShowLocation}\n{$location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n\n{if $location.phone.1.phone || $location.email.1.email}\n\n{ts}Event Contacts:{/ts}\n{foreach from=$location.phone item=phone}\n{if $phone.phone}\n\n{if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}: {$phone.phone}{/if} {if $phone.phone_ext} {ts}ext.{/ts} {$phone.phone_ext}{/if}\n{/foreach}\n{foreach from=$location.email item=eventEmail}\n{if $eventEmail.email}\n\n{ts}Email{/ts}: {$eventEmail.email}{/if}{/foreach}\n{/if}\n\n{if $event.is_public}\n{capture assign=icalFeed}{crmURL p=\'civicrm/event/ical\' q=\"reset=1&id=`$event.id`\" h=0 a=1 fe=1}{/capture}\n{ts}Download iCalendar File:{/ts} {$icalFeed}\n{/if}\n\n{if $payer.name}\nYou were registered by: {$payer.name}\n{/if}\n{if $event.is_monetary and not $isRequireApproval} {* This section for Paid events only.*}\n\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{$event.fee_label}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{if $lineItem}{foreach from=$lineItem item=value key=priceset}\n\n{if $value neq \'skip\'}\n{if $isPrimary}\n{if $lineItem|@count GT 1} {* Header for multi participant registration cases. *}\n{ts 1=$priceset+1}Participant %1{/ts} {$part.$priceset.info}\n\n{/if}\n{/if}\n-----------------------------------------------------------{if $pricesetFieldsCount }-----------------------------------------------------{/if}\n\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_qty}{ts}Qty{/ts}{/capture}\n{capture assign=ts_each}{ts}Each{/ts}{/capture}\n{if $dataArray}\n{capture assign=ts_subtotal}{ts}Subtotal{/ts}{/capture}\n{capture assign=ts_taxRate}{ts}Tax Rate{/ts}{/capture}\n{capture assign=ts_taxAmount}{ts}Tax Amount{/ts}{/capture}\n{/if}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{if $pricesetFieldsCount }{capture assign=ts_participant_total}{ts}Total Participants{/ts}{/capture}{/if}\n{$ts_item|string_format:\"%-30s\"} {$ts_qty|string_format:\"%5s\"} {$ts_each|string_format:\"%10s\"} {if $dataArray} {$ts_subtotal|string_format:\"%10s\"} {$ts_taxRate|string_format:\"%10s\"} {$ts_taxAmount|string_format:\"%10s\"} {/if} {$ts_total|string_format:\"%10s\"} {$ts_participant_total|string_format:\"%10s\"}\n-----------------------------------------------------------{if $pricesetFieldsCount }-----------------------------------------------------{/if}\n\n{foreach from=$value item=line}\n{if $pricesetFieldsCount }{capture assign=ts_participant_count}{$line.participant_count}{/capture}{/if}\n{capture assign=ts_item}{if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description} {$line.description}{/if}{/capture}{$ts_item|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.qty|string_format:\"%5s\"} {$line.unit_price|crmMoney:$currency|string_format:\"%10s\"} {if $dataArray} {$line.unit_price*$line.qty|crmMoney:$currency|string_format:\"%10s\"} {if $line.tax_rate != \"\" || $line.tax_amount != \"\"}  {$line.tax_rate|string_format:\"%.2f\"} %  {$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"} {else}                  {/if}  {/if} {$line.line_total+$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"}{$ts_participant_count|string_format:\"%10s\"}\n{/foreach}\n----------------------------------------------------------------------------------------------------------------\n{if $individual}{ts}Participant Total{/ts} {$individual.$priceset.totalAmtWithTax-$individual.$priceset.totalTaxAmt|crmMoney:$currency|string_format:\"%29s\"} {$individual.$priceset.totalTaxAmt|crmMoney:$currency|string_format:\"%33s\"} {$individual.$priceset.totalAmtWithTax|crmMoney:$currency|string_format:\"%12s\"}{/if}\n{/if}\n{\"\"|string_format:\"%120s\"}\n{/foreach}\n{\"\"|string_format:\"%120s\"}\n\n{if $dataArray}\n{ts}Amount before Tax{/ts}: {$totalAmount-$totalTaxAmount|crmMoney:$currency}\n\n{foreach from=$dataArray item=value key=priceset}\n{if $priceset || $priceset == 0}\n{$taxTerm} {$priceset|string_format:\"%.2f\"}%: {$value|crmMoney:$currency}\n{else}\n{ts}No{/ts} {$taxTerm}: {$value|crmMoney:$currency}\n{/if}\n{/foreach}\n{/if}\n{/if}\n\n{if $amounts && !$lineItem}\n{foreach from=$amounts item=amnt key=level}{$amnt.amount|crmMoney:$currency} {$amnt.label}\n{/foreach}\n{/if}\n\n{if $totalTaxAmount}\n{ts}Total Tax Amount{/ts}: {$totalTaxAmount|crmMoney:$currency}\n{/if}\n{if $isPrimary }\n\n{ts}Total Amount{/ts}: {$totalAmount|crmMoney:$currency} {if $hookDiscount.message}({$hookDiscount.message}){/if}\n\n{if $pricesetFieldsCount }\n      {assign var=\"count\" value= 0}\n      {foreach from=$lineItem item=pcount}\n      {assign var=\"lineItemCount\" value=0}\n      {if $pcount neq \'skip\'}\n        {foreach from=$pcount item=p_count}\n        {assign var=\"lineItemCount\" value=$lineItemCount+$p_count.participant_count}\n        {/foreach}\n      {if $lineItemCount < 1 }\n        {assign var=\"lineItemCount\" value=1}\n      {/if}\n      {assign var=\"count\" value=$count+$lineItemCount}\n      {/if}\n      {/foreach}\n\n{ts}Total Participants{/ts}: {$count}\n{/if}\n\n{if $register_date}\n{ts}Registration Date{/ts}: {$register_date|crmDate}\n{/if}\n{if $receive_date}\n{ts}Transaction Date{/ts}: {$receive_date|crmDate}\n{/if}\n{if $financialTypeName}\n{ts}Financial Type{/ts}: {$financialTypeName}\n{/if}\n{if $trxn_id}\n{ts}Transaction #{/ts}: {$trxn_id}\n{/if}\n{if $paidBy}\n{ts}Paid By{/ts}: {$paidBy}\n{/if}\n{if $checkNumber}\n{ts}Check Number{/ts}: {$checkNumber}\n{/if}\n{if $billingName}\n\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{ts}Billing Name and Address{/ts}\n\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{$billingName}\n{$address}\n{/if}\n\n{if $credit_card_type}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{ts}Credit Card Information{/ts}\n\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n{/if}\n{/if} {* End of conditional section for Paid events *}\n\n{if $customPre}\n{foreach from=$customPre item=customPr key=i}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{$customPre_grouptitle.$i}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{foreach from=$customPr item=customValue key=customName}\n{if ( $trackingFields and ! in_array( $customName, $trackingFields ) ) or ! $trackingFields}\n {$customName}: {$customValue}\n{/if}\n{/foreach}\n{/foreach}\n{/if}\n\n{if $customPost}\n{foreach from=$customPost item=customPos key=j}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{$customPost_grouptitle.$j}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{foreach from=$customPos item=customValue key=customName}\n{if ( $trackingFields and ! in_array( $customName, $trackingFields ) ) or ! $trackingFields}\n {$customName}: {$customValue}\n{/if}\n{/foreach}\n{/foreach}\n{/if}\n{if $customProfile}\n\n{foreach from=$customProfile.profile item=eachParticipant key=participantID}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{ts 1=$participantID+2}Participant Information - Participant %1{/ts}\n\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{foreach from=$eachParticipant item=eachProfile key=pid}\n----------------------------------------------------------{if $pricesetFieldsCount }--------------------{/if}\n\n{$customProfile.title.$pid}\n----------------------------------------------------------{if $pricesetFieldsCount }--------------------{/if}\n\n{foreach from=$eachProfile item=val key=field}\n{foreach from=$val item=v key=f}\n{$field}: {$v}\n{/foreach}\n{/foreach}\n{/foreach}\n{/foreach}\n{/if}\n{if $customGroup}\n{foreach from=$customGroup item=value key=customName}\n=========================================================={if $pricesetFieldsCount }===================={/if}\n\n{$customName}\n=========================================================={if $pricesetFieldsCount }===================={/if}\n\n{foreach from=$value item=v key=n}\n{$n}: {$v}\n{/foreach}\n{/foreach}\n{/if}\n\n{if $event.allow_selfcancelxfer }\n{ts 1=$event.selfcancelxfer_time}You may transfer your registration to another participant or cancel your registration up to %1 hours before the event.{/ts} {if $totalAmount}{ts}Cancellations are not refundable.{/ts}{/if}\n   {capture assign=selfService}{crmURL p=\'civicrm/event/selfsvcupdate\' q=\"reset=1&pid=`$participant.id`&{contact.checksum}\"  h=0 a=1 fe=1}{/capture}\n{ts}Transfer or cancel your registration:{/ts} {$selfService}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n{capture assign=tdfirstStyle}style=\"width: 180px; padding-bottom: 15px;\"{/capture}\n{capture assign=tdStyle}style=\"width: 100px;\"{/capture}\n{capture assign=participantTotal}style=\"margin: 0.5em 0 0.5em;padding: 0.5em;background-color: #999999;font-weight: bold;color: #FAFAFA;border-radius: 2px;\"{/capture}\n\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n     {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n\n    {if $event.confirm_email_text AND (not $isOnWaitlist AND not $isRequireApproval)}\n     <p>{$event.confirm_email_text|htmlize}</p>\n\n    {else}\n     <p>{ts}Thank you for your registration.{/ts}\n     {if $participant_status}{ts 1=$participant_status}This is a confirmation that your registration has been received and your status has been updated to <strong> %1</strong>.{/ts}\n     {else}{if $isOnWaitlist}{ts}This is a confirmation that your registration has been received and your status has been updated to <strong>waitlisted</strong>.{/ts}{else}{ts}This is a confirmation that your registration has been received and your status has been updated to <strong>registered<strong>.{/ts}{/if}{/if}</p>\n\n    {/if}\n\n    <p>\n    {if $isOnWaitlist}\n     <p>{ts}You have been added to the WAIT LIST for this event.{/ts}</p>\n     {if $isPrimary}\n       <p>{ts}If space becomes available you will receive an email with a link to a web page where you can complete your registration.{/ts}</p>\n     {/if}\n    {elseif $isRequireApproval}\n     <p>{ts}Your registration has been submitted.{/ts}</p>\n     {if $isPrimary}\n      <p>{ts}Once your registration has been reviewed, you will receive an email with a link to a web page where you can complete the registration process.{/ts}</p>\n     {/if}\n    {elseif $is_pay_later && !$isAmountzero && !$isAdditionalParticipant}\n     <p>{$pay_later_receipt}</p> {* FIXME: this might be text rather than HTML *}\n    {/if}\n\n   </td>\n  </tr>\n  <tr>\n   <td>\n    <table style=\"width:100%; max-width:700px; border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Event Information and Location{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td colspan=\"2\" {$valueStyle}>\n       {$event.event_title}<br />\n       {$event.event_start_date|date_format:\"%A\"} {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|date_format:\"%A\"} {$event.event_end_date|crmDate}{/if}{/if}\n      </td>\n     </tr>\n\n\n     {if $conference_sessions}\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n  {ts}Your schedule:{/ts}\n       </td>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n  {assign var=\'group_by_day\' value=\'NA\'}\n  {foreach from=$conference_sessions item=session}\n   {if $session.start_date|date_format:\"%Y/%m/%d\" != $group_by_day|date_format:\"%Y/%m/%d\"}\n    {assign var=\'group_by_day\' value=$session.start_date}\n          <em>{$group_by_day|date_format:\"%m/%d/%Y\"}</em><br />\n   {/if}\n   {$session.start_date|crmDate:0:1}{if $session.end_date}-{$session.end_date|crmDate:0:1}{/if} {$session.title}<br />\n   {if $session.location}&nbsp;&nbsp;&nbsp;&nbsp;{$session.location}<br />{/if}\n  {/foreach}\n       </td>\n      </tr>\n     {/if}\n\n     {if $event.participant_role neq \'Attendee\' and $defaultRole}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Participant Role{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$event.participant_role}\n       </td>\n      </tr>\n     {/if}\n\n     {if $isShowLocation}\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$location.address.1.display|nl2br}\n       </td>\n      </tr>\n     {/if}\n\n     {if $location.phone.1.phone || $location.email.1.email}\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n        {ts}Event Contacts:{/ts}\n       </td>\n      </tr>\n      {foreach from=$location.phone item=phone}\n       {if $phone.phone}\n        <tr>\n         <td {$labelStyle}>\n          {if $phone.phone_type}\n           {$phone.phone_type_display}\n          {else}\n           {ts}Phone{/ts}\n          {/if}\n         </td>\n         <td {$valueStyle}>\n          {$phone.phone} {if $phone.phone_ext}&nbsp;{ts}ext.{/ts} {$phone.phone_ext}{/if}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n      {foreach from=$location.email item=eventEmail}\n       {if $eventEmail.email}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Email{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$eventEmail.email}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n     {if $event.is_public}\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {capture assign=icalFeed}{crmURL p=\'civicrm/event/ical\' q=\"reset=1&id=`$event.id`\" h=0 a=1 fe=1}{/capture}\n        <a href=\"{$icalFeed}\">{ts}Download iCalendar File{/ts}</a>\n       </td>\n      </tr>\n     {/if}\n\n    {if $event.is_share}\n        <tr>\n            <td colspan=\"2\" {$valueStyle}>\n                {capture assign=eventUrl}{crmURL p=\'civicrm/event/info\' q=\"id=`$event.id`&reset=1\" a=true fe=1 h=1}{/capture}\n                {include file=\"CRM/common/SocialNetwork.tpl\" emailMode=true url=$eventUrl title=$event.title pageURL=$eventUrl}\n            </td>\n        </tr>\n    {/if}\n    {if $payer.name}\n     <tr>\n       <th {$headerStyle}>\n         {ts}You were registered by:{/ts}\n       </th>\n     </tr>\n     <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$payer.name}\n       </td>\n     </tr>\n    {/if}\n    {if $event.is_monetary and not $isRequireApproval}\n\n      <tr>\n       <th {$headerStyle}>\n        {$event.fee_label}\n       </th>\n      </tr>\n\n      {if $lineItem}\n       {foreach from=$lineItem item=value key=priceset}\n        {if $value neq \'skip\'}\n         {if $isPrimary}\n          {if $lineItem|@count GT 1} {* Header for multi participant registration cases. *}\n           <tr>\n            <td colspan=\"2\" {$labelStyle}>\n             {ts 1=$priceset+1}Participant %1{/ts} {$part.$priceset.info}\n            </td>\n           </tr>\n          {/if}\n         {/if}\n         <tr>\n          <td colspan=\"2\" {$valueStyle}>\n           <table> {* FIXME: style this table so that it looks like the text version (justification, etc.) *}\n            <tr>\n             <th>{ts}Item{/ts}</th>\n             <th>{ts}Qty{/ts}</th>\n             <th>{ts}Each{/ts}</th>\n             {if $dataArray}\n              <th>{ts}SubTotal{/ts}</th>\n              <th>{ts}Tax Rate{/ts}</th>\n              <th>{ts}Tax Amount{/ts}</th>\n             {/if}\n             <th>{ts}Total{/ts}</th>\n       {if  $pricesetFieldsCount }<th>{ts}Total Participants{/ts}</th>{/if}\n            </tr>\n            {foreach from=$value item=line}\n             <tr>\n              <td {$tdfirstStyle}>\n              {if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description}<div>{$line.description|truncate:30:\"...\"}</div>{/if}\n              </td>\n              <td {$tdStyle} align=\"middle\">\n               {$line.qty}\n              </td>\n              <td {$tdStyle}>\n               {$line.unit_price|crmMoney:$currency}\n              </td>\n              {if $dataArray}\n               <td {$tdStyle}>\n                {$line.unit_price*$line.qty|crmMoney}\n               </td>\n               {if $line.tax_rate != \"\" || $line.tax_amount != \"\"}\n                <td {$tdStyle}>\n                 {$line.tax_rate|string_format:\"%.2f\"}%\n                </td>\n                <td {$tdStyle}>\n                 {$line.tax_amount|crmMoney}\n                </td>\n               {else}\n                <td></td>\n                <td></td>\n               {/if}\n              {/if}\n              <td {$tdStyle}>\n               {$line.line_total+$line.tax_amount|crmMoney:$currency}\n              </td>\n        {if $pricesetFieldsCount }<td {$tdStyle}>{$line.participant_count}</td> {/if}\n             </tr>\n            {/foreach}\n            {if $individual}\n              <tr {$participantTotal}>\n                <td colspan=3>{ts}Participant Total{/ts}</td>\n                <td colspan=2>{$individual.$priceset.totalAmtWithTax-$individual.$priceset.totalTaxAmt|crmMoney}</td>\n                <td colspan=1>{$individual.$priceset.totalTaxAmt|crmMoney}</td>\n                <td colspan=2>{$individual.$priceset.totalAmtWithTax|crmMoney}</td>\n              </tr>\n            {/if}\n           </table>\n          </td>\n         </tr>\n        {/if}\n       {/foreach}\n       {if $dataArray}\n        <tr>\n         <td {$labelStyle}>\n          {ts} Amount Before Tax: {/ts}\n         </td>\n         <td {$valueStyle}>\n          {$totalAmount-$totalTaxAmount|crmMoney}\n         </td>\n        </tr>\n        {foreach from=$dataArray item=value key=priceset}\n         <tr>\n          {if $priceset || $priceset == 0}\n           <td>&nbsp;{$taxTerm} {$priceset|string_format:\"%.2f\"}%</td>\n           <td>&nbsp;{$value|crmMoney:$currency}</td>\n          {else}\n           <td>&nbsp;{ts}No{/ts} {$taxTerm}</td>\n           <td>&nbsp;{$value|crmMoney:$currency}</td>\n          {/if}\n         </tr>\n        {/foreach}\n       {/if}\n      {/if}\n\n      {if $amounts && !$lineItem}\n       {foreach from=$amounts item=amnt key=level}\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          {$amnt.amount|crmMoney:$currency} {$amnt.label}\n         </td>\n        </tr>\n       {/foreach}\n      {/if}\n\n    {if $totalTaxAmount}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Total Tax Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$totalTaxAmount|crmMoney:$currency}\n        </td>\n       </tr>\n      {/if}\n      {if $isPrimary}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Total Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$totalAmount|crmMoney:$currency} {if $hookDiscount.message}({$hookDiscount.message}){/if}\n        </td>\n       </tr>\n       {if $pricesetFieldsCount }\n     <tr>\n       <td {$labelStyle}>\n      {ts}Total Participants{/ts}</td>\n      <td {$valueStyle}>\n      {assign var=\"count\" value= 0}\n      {foreach from=$lineItem item=pcount}\n      {assign var=\"lineItemCount\" value=0}\n      {if $pcount neq \'skip\'}\n        {foreach from=$pcount item=p_count}\n        {assign var=\"lineItemCount\" value=$lineItemCount+$p_count.participant_count}\n        {/foreach}\n      {if $lineItemCount < 1 }\n        {assign var=\"lineItemCount\" value=1}\n      {/if}\n      {assign var=\"count\" value=$count+$lineItemCount}\n      {/if}\n      {/foreach}\n     {$count}\n     </td> </tr>\n      {/if}\n\n       {if $register_date}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Registration Date{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$register_date|crmDate}\n         </td>\n        </tr>\n       {/if}\n\n       {if $receive_date}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Transaction Date{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$receive_date|crmDate}\n         </td>\n        </tr>\n       {/if}\n\n       {if $financialTypeName}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Financial Type{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$financialTypeName}\n         </td>\n        </tr>\n       {/if}\n\n       {if $trxn_id}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Transaction #{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$trxn_id}\n         </td>\n        </tr>\n       {/if}\n\n       {if $paidBy}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Paid By{/ts}\n         </td>\n         <td {$valueStyle}>\n         {$paidBy}\n         </td>\n        </tr>\n       {/if}\n\n       {if $checkNumber}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Check Number{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$checkNumber}\n         </td>\n        </tr>\n       {/if}\n\n       {if $billingName}\n        <tr>\n         <th {$headerStyle}>\n          {ts}Billing Name and Address{/ts}\n         </th>\n        </tr>\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          {$billingName}<br />\n          {$address|nl2br}\n         </td>\n        </tr>\n       {/if}\n\n       {if $credit_card_type}\n        <tr>\n         <th {$headerStyle}>\n          {ts}Credit Card Information{/ts}\n         </th>\n        </tr>\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          {$credit_card_type}<br />\n          {$credit_card_number}<br />\n          {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n         </td>\n        </tr>\n       {/if}\n\n      {/if}\n\n     {/if} {* End of conditional section for Paid events *}\n\n\n{if $customPre}\n{foreach from=$customPre item=customPr key=i}\n   <tr> <th {$headerStyle}>{$customPre_grouptitle.$i}</th></tr>\n   {foreach from=$customPr item=customValue key=customName}\n   {if ( $trackingFields and ! in_array( $customName, $trackingFields ) ) or ! $trackingFields}\n     <tr>\n         <td {$labelStyle}>{$customName}</td>\n         <td {$valueStyle}>{$customValue}</td>\n     </tr>\n   {/if}\n   {/foreach}\n{/foreach}\n{/if}\n\n{if $customPost}\n{foreach from=$customPost item=customPos key=j}\n   <tr> <th {$headerStyle}>{$customPost_grouptitle.$j}</th></tr>\n   {foreach from=$customPos item=customValue key=customName}\n   {if ( $trackingFields and ! in_array( $customName, $trackingFields ) ) or ! $trackingFields}\n     <tr>\n         <td {$labelStyle}>{$customName}</td>\n         <td {$valueStyle}>{$customValue}</td>\n     </tr>\n{/if}\n{/foreach}\n{/foreach}\n{/if}\n\n{if $customProfile}\n{foreach from=$customProfile.profile item=eachParticipant key=participantID}\n     <tr><th {$headerStyle}>{ts 1=$participantID+2}Participant %1{/ts} </th></tr>\n     {foreach from=$eachParticipant item=eachProfile key=pid}\n     <tr><th {$headerStyle}>{$customProfile.title.$pid}</th></tr>\n     {foreach from=$eachProfile item=val key=field}\n     <tr>{foreach from=$val item=v key=f}\n         <td {$labelStyle}>{$field}</td>\n         <td {$valueStyle}>{$v}</td>\n         {/foreach}\n     </tr>\n     {/foreach}\n{/foreach}\n{/foreach}\n{/if}\n\n    {if $customGroup}\n      {foreach from=$customGroup item=value key=customName}\n       <tr>\n        <th {$headerStyle}>\n         {$customName}\n        </th>\n       </tr>\n       {foreach from=$value item=v key=n}\n        <tr>\n         <td {$labelStyle}>\n          {$n}\n         </td>\n         <td {$valueStyle}>\n          {$v}\n         </td>\n        </tr>\n       {/foreach}\n      {/foreach}\n     {/if}\n    </table>\n    {if $event.allow_selfcancelxfer }\n     <tr>\n      <td colspan=\"2\" {$valueStyle}>\n        {ts 1=$event.selfcancelxfer_time}You may transfer your registration to another participant or cancel your registration up to %1 hours before the event.{/ts} {if $totalAmount}{ts}Cancellations are not refundable.{/ts}{/if}<br />\n        {capture assign=selfService}{crmURL p=\'civicrm/event/selfsvcupdate\' q=\"reset=1&pid=`$participant.id`&{contact.checksum}\"  h=0 a=1 fe=1}{/capture}\n        <a href=\"{$selfService}\">{ts}Click here to transfer or cancel your registration.{/ts}</a>\n      </td>\n     </tr>\n    {/if}\n </table>\n</center>\n\n</body>\n</html>\n',1,834,0,1,0,NULL),(33,'Events - Receipt only','Receipt for {if $events_in_cart} Event Registration{/if} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{if $is_pay_later}\n  This is being sent to you as an acknowledgement that you have registered one or more members for the following workshop, event or purchase. Please note, however, that the status of your payment is pending, and the registration for this event will not be completed until your payment is received.\n{else}\n  This is being sent to you as a {if $is_refund}confirmation of refund{else}receipt of payment made{/if} for the following workshop, event registration or purchase.\n{/if}\n\n{if $is_pay_later}\n  {$pay_later_receipt}\n{/if}\n\n  Your order number is #{$transaction_id}. {if $line_items && !$is_refund} Information about the workshops will be sent separately to each participant.{/if}\n Here\'s a summary of your transaction placed on {$transaction_date|date_format:\"%D %I:%M %p %Z\"}:\n\n{if $billing_name}\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billing_name}\n\n{$billing_street_address}\n\n{$billing_city}, {$billing_state} {$billing_postal_code}\n\n{$email}\n{/if}\n\n{if $source}\n{$source}\n{/if}\n\n\n{foreach from=$line_items item=line_item}\n{$line_item.event->title} ({$line_item.event->start_date|date_format:\"%D\"})\n{if $line_item.event->is_show_location}\n  {$line_item.location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n{$line_item.event->start_date|date_format:\"%D %I:%M %p\"} - {$line_item.event->end_date|date_format:\"%I:%M %p\"}\n\n  Quantity: {$line_item.num_participants}\n\n{if $line_item.num_participants > 0}\n  {foreach from=$line_item.participants item=participant}\n    {$participant.display_name}\n  {/foreach}\n{/if}\n{if $line_item.num_waiting_participants > 0}\n  Waitlisted:\n    {foreach from=$line_item.waiting_participants item=participant}\n      {$participant.display_name}\n    {/foreach}\n{/if}\nCost: {$line_item.cost|crmMoney:$currency|string_format:\"%10s\"}\nTotal For This Event: {$line_item.amount|crmMoney:$currency|string_format:\"%10s\"}\n\n{/foreach}\n\n{if $discounts}\nSubtotal: {$sub_total|crmMoney:$currency|string_format:\"%10s\"}\n--------------------------------------\nDiscounts\n{foreach from=$discounts key=myId item=i}\n  {$i.title}: -{$i.amount|crmMoney:$currency|string_format:\"%10s\"}\n{/foreach}\n{/if}\n======================================\nTotal: {$total|crmMoney:$currency|string_format:\"%10s\"}\n\n{if $credit_card_type}\n===========================================================\n{ts}Payment Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date.M}/{$credit_card_exp_date.Y}\n{/if}\n\n  If you have questions about the status of your registration or purchase please feel free to contact us.\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n  <head>\n    <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n    <title></title>\n  </head>\n  <body>\n    {capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n    {capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n    {capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    {if $is_pay_later}\n      <p>\n        This is being sent to you as an acknowledgement that you have registered one or more members for the following workshop, event or purchase. Please note, however, that the status of your payment is pending, and the registration for this event will not be completed until your payment is received.\n      </p>\n    {else}\n      <p>\n        This is being sent to you as a {if $is_refund}confirmation of refund{else}receipt of payment made{/if} for the following workshop, event registration or purchase.\n      </p>\n    {/if}\n\n    {if $is_pay_later}\n      <p>{$pay_later_receipt}</p>\n    {/if}\n\n    <p>Your order number is #{$transaction_id}. {if $line_items && !$is_refund} Information about the workshops will be sent separately to each participant.{/if}\n  Here\'s a summary of your transaction placed on {$transaction_date|date_format:\"%D %I:%M %p %Z\"}:</p>\n\n{if $billing_name}\n  <table class=\"billing-info\">\n      <tr>\n    <th style=\"text-align: left;\">\n      {ts}Billing Name and Address{/ts}\n    </th>\n      </tr>\n      <tr>\n    <td>\n      {$billing_name}<br />\n      {$billing_street_address}<br />\n      {$billing_city}, {$billing_state} {$billing_postal_code}<br/>\n      <br/>\n      {$email}\n    </td>\n    </tr>\n    </table>\n{/if}\n{if $credit_card_type}\n  <p>&nbsp;</p>\n  <table class=\"billing-info\">\n      <tr>\n    <th style=\"text-align: left;\">\n      {ts}Credit Card Information{/ts}\n    </th>\n      </tr>\n      <tr>\n    <td>\n      {$credit_card_type}<br />\n      {$credit_card_number}<br />\n      {ts}Expires{/ts}: {$credit_card_exp_date.M}/{$credit_card_exp_date.Y}\n    </td>\n    </tr>\n    </table>\n{/if}\n{if $source}\n    <p>&nbsp;</p>\n    {$source}\n{/if}\n    <p>&nbsp;</p>\n    <table width=\"700\">\n      <thead>\n    <tr>\n{if $line_items}\n      <th style=\"text-align: left;\">\n      Event\n      </th>\n      <th style=\"text-align: left;\">\n      Participants\n      </th>\n{/if}\n      <th style=\"text-align: left;\">\n      Price\n      </th>\n      <th style=\"text-align: left;\">\n      Total\n      </th>\n    </tr>\n    </thead>\n      <tbody>\n  {foreach from=$line_items item=line_item}\n  <tr>\n    <td style=\"width: 220px\">\n      {$line_item.event->title} ({$line_item.event->start_date|date_format:\"%D\"})<br />\n      {if $line_item.event->is_show_location}\n        {$line_item.location.address.1.display|nl2br}\n      {/if}{*End of isShowLocation condition*}<br /><br />\n      {$line_item.event->start_date|date_format:\"%D %I:%M %p\"} - {$line_item.event->end_date|date_format:\"%I:%M %p\"}\n    </td>\n    <td style=\"width: 180px\">\n    {$line_item.num_participants}\n      {if $line_item.num_participants > 0}\n      <div class=\"participants\" style=\"padding-left: 10px;\">\n        {foreach from=$line_item.participants item=participant}\n        {$participant.display_name}<br />\n        {/foreach}\n      </div>\n      {/if}\n      {if $line_item.num_waiting_participants > 0}\n      Waitlisted:<br/>\n      <div class=\"participants\" style=\"padding-left: 10px;\">\n        {foreach from=$line_item.waiting_participants item=participant}\n        {$participant.display_name}<br />\n        {/foreach}\n      </div>\n      {/if}\n    </td>\n    <td style=\"width: 100px\">\n      {$line_item.cost|crmMoney:$currency|string_format:\"%10s\"}\n    </td>\n    <td style=\"width: 100px\">\n      &nbsp;{$line_item.amount|crmMoney:$currency|string_format:\"%10s\"}\n    </td>\n  </tr>\n  {/foreach}\n      </tbody>\n      <tfoot>\n  {if $discounts}\n  <tr>\n    <td>\n    </td>\n    <td>\n    </td>\n    <td>\n      Subtotal:\n    </td>\n    <td>\n      &nbsp;{$sub_total|crmMoney:$currency|string_format:\"%10s\"}\n    </td>\n  </tr>\n  {foreach from=$discounts key=myId item=i}\n  <tr>\n    <td>\n      {$i.title}\n    </td>\n    <td>\n    </td>\n    <td>\n    </td>\n    <td>\n      -{$i.amount}\n    </td>\n  </tr>\n  {/foreach}\n  {/if}\n  <tr>\n{if $line_items}\n    <td>\n    </td>\n    <td>\n    </td>\n{/if}\n    <td>\n      <strong>Total:</strong>\n    </td>\n    <td>\n      <strong>&nbsp;{$total|crmMoney:$currency|string_format:\"%10s\"}</strong>\n    </td>\n  </tr>\n      </tfoot>\n    </table>\n\n    If you have questions about the status of your registration or purchase please feel free to contact us.\n  </body>\n</html>\n',1,835,1,0,0,NULL),(34,'Events - Receipt only','Receipt for {if $events_in_cart} Event Registration{/if} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{if $is_pay_later}\n  This is being sent to you as an acknowledgement that you have registered one or more members for the following workshop, event or purchase. Please note, however, that the status of your payment is pending, and the registration for this event will not be completed until your payment is received.\n{else}\n  This is being sent to you as a {if $is_refund}confirmation of refund{else}receipt of payment made{/if} for the following workshop, event registration or purchase.\n{/if}\n\n{if $is_pay_later}\n  {$pay_later_receipt}\n{/if}\n\n  Your order number is #{$transaction_id}. {if $line_items && !$is_refund} Information about the workshops will be sent separately to each participant.{/if}\n Here\'s a summary of your transaction placed on {$transaction_date|date_format:\"%D %I:%M %p %Z\"}:\n\n{if $billing_name}\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billing_name}\n\n{$billing_street_address}\n\n{$billing_city}, {$billing_state} {$billing_postal_code}\n\n{$email}\n{/if}\n\n{if $source}\n{$source}\n{/if}\n\n\n{foreach from=$line_items item=line_item}\n{$line_item.event->title} ({$line_item.event->start_date|date_format:\"%D\"})\n{if $line_item.event->is_show_location}\n  {$line_item.location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n{$line_item.event->start_date|date_format:\"%D %I:%M %p\"} - {$line_item.event->end_date|date_format:\"%I:%M %p\"}\n\n  Quantity: {$line_item.num_participants}\n\n{if $line_item.num_participants > 0}\n  {foreach from=$line_item.participants item=participant}\n    {$participant.display_name}\n  {/foreach}\n{/if}\n{if $line_item.num_waiting_participants > 0}\n  Waitlisted:\n    {foreach from=$line_item.waiting_participants item=participant}\n      {$participant.display_name}\n    {/foreach}\n{/if}\nCost: {$line_item.cost|crmMoney:$currency|string_format:\"%10s\"}\nTotal For This Event: {$line_item.amount|crmMoney:$currency|string_format:\"%10s\"}\n\n{/foreach}\n\n{if $discounts}\nSubtotal: {$sub_total|crmMoney:$currency|string_format:\"%10s\"}\n--------------------------------------\nDiscounts\n{foreach from=$discounts key=myId item=i}\n  {$i.title}: -{$i.amount|crmMoney:$currency|string_format:\"%10s\"}\n{/foreach}\n{/if}\n======================================\nTotal: {$total|crmMoney:$currency|string_format:\"%10s\"}\n\n{if $credit_card_type}\n===========================================================\n{ts}Payment Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date.M}/{$credit_card_exp_date.Y}\n{/if}\n\n  If you have questions about the status of your registration or purchase please feel free to contact us.\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n  <head>\n    <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n    <title></title>\n  </head>\n  <body>\n    {capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n    {capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n    {capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    {if $is_pay_later}\n      <p>\n        This is being sent to you as an acknowledgement that you have registered one or more members for the following workshop, event or purchase. Please note, however, that the status of your payment is pending, and the registration for this event will not be completed until your payment is received.\n      </p>\n    {else}\n      <p>\n        This is being sent to you as a {if $is_refund}confirmation of refund{else}receipt of payment made{/if} for the following workshop, event registration or purchase.\n      </p>\n    {/if}\n\n    {if $is_pay_later}\n      <p>{$pay_later_receipt}</p>\n    {/if}\n\n    <p>Your order number is #{$transaction_id}. {if $line_items && !$is_refund} Information about the workshops will be sent separately to each participant.{/if}\n  Here\'s a summary of your transaction placed on {$transaction_date|date_format:\"%D %I:%M %p %Z\"}:</p>\n\n{if $billing_name}\n  <table class=\"billing-info\">\n      <tr>\n    <th style=\"text-align: left;\">\n      {ts}Billing Name and Address{/ts}\n    </th>\n      </tr>\n      <tr>\n    <td>\n      {$billing_name}<br />\n      {$billing_street_address}<br />\n      {$billing_city}, {$billing_state} {$billing_postal_code}<br/>\n      <br/>\n      {$email}\n    </td>\n    </tr>\n    </table>\n{/if}\n{if $credit_card_type}\n  <p>&nbsp;</p>\n  <table class=\"billing-info\">\n      <tr>\n    <th style=\"text-align: left;\">\n      {ts}Credit Card Information{/ts}\n    </th>\n      </tr>\n      <tr>\n    <td>\n      {$credit_card_type}<br />\n      {$credit_card_number}<br />\n      {ts}Expires{/ts}: {$credit_card_exp_date.M}/{$credit_card_exp_date.Y}\n    </td>\n    </tr>\n    </table>\n{/if}\n{if $source}\n    <p>&nbsp;</p>\n    {$source}\n{/if}\n    <p>&nbsp;</p>\n    <table width=\"700\">\n      <thead>\n    <tr>\n{if $line_items}\n      <th style=\"text-align: left;\">\n      Event\n      </th>\n      <th style=\"text-align: left;\">\n      Participants\n      </th>\n{/if}\n      <th style=\"text-align: left;\">\n      Price\n      </th>\n      <th style=\"text-align: left;\">\n      Total\n      </th>\n    </tr>\n    </thead>\n      <tbody>\n  {foreach from=$line_items item=line_item}\n  <tr>\n    <td style=\"width: 220px\">\n      {$line_item.event->title} ({$line_item.event->start_date|date_format:\"%D\"})<br />\n      {if $line_item.event->is_show_location}\n        {$line_item.location.address.1.display|nl2br}\n      {/if}{*End of isShowLocation condition*}<br /><br />\n      {$line_item.event->start_date|date_format:\"%D %I:%M %p\"} - {$line_item.event->end_date|date_format:\"%I:%M %p\"}\n    </td>\n    <td style=\"width: 180px\">\n    {$line_item.num_participants}\n      {if $line_item.num_participants > 0}\n      <div class=\"participants\" style=\"padding-left: 10px;\">\n        {foreach from=$line_item.participants item=participant}\n        {$participant.display_name}<br />\n        {/foreach}\n      </div>\n      {/if}\n      {if $line_item.num_waiting_participants > 0}\n      Waitlisted:<br/>\n      <div class=\"participants\" style=\"padding-left: 10px;\">\n        {foreach from=$line_item.waiting_participants item=participant}\n        {$participant.display_name}<br />\n        {/foreach}\n      </div>\n      {/if}\n    </td>\n    <td style=\"width: 100px\">\n      {$line_item.cost|crmMoney:$currency|string_format:\"%10s\"}\n    </td>\n    <td style=\"width: 100px\">\n      &nbsp;{$line_item.amount|crmMoney:$currency|string_format:\"%10s\"}\n    </td>\n  </tr>\n  {/foreach}\n      </tbody>\n      <tfoot>\n  {if $discounts}\n  <tr>\n    <td>\n    </td>\n    <td>\n    </td>\n    <td>\n      Subtotal:\n    </td>\n    <td>\n      &nbsp;{$sub_total|crmMoney:$currency|string_format:\"%10s\"}\n    </td>\n  </tr>\n  {foreach from=$discounts key=myId item=i}\n  <tr>\n    <td>\n      {$i.title}\n    </td>\n    <td>\n    </td>\n    <td>\n    </td>\n    <td>\n      -{$i.amount}\n    </td>\n  </tr>\n  {/foreach}\n  {/if}\n  <tr>\n{if $line_items}\n    <td>\n    </td>\n    <td>\n    </td>\n{/if}\n    <td>\n      <strong>Total:</strong>\n    </td>\n    <td>\n      <strong>&nbsp;{$total|crmMoney:$currency|string_format:\"%10s\"}</strong>\n    </td>\n  </tr>\n      </tfoot>\n    </table>\n\n    If you have questions about the status of your registration or purchase please feel free to contact us.\n  </body>\n</html>\n',1,835,0,1,0,NULL),(35,'Events - Registration Cancellation Notice','{ts 1=$event.event_title}Event Registration Cancelled for %1{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts}Your Event Registration has been cancelled.{/ts}\n\n\n===========================================================\n{ts}Event Information and Location{/ts}\n\n===========================================================\n{$event.event_title}\n{$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n\n{ts}Participant Role{/ts}: {$participant.role}\n\n{if $isShowLocation}\n{$event.location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n\n{if $event.location.phone.1.phone || $event.location.email.1.email}\n\n{ts}Event Contacts:{/ts}\n{foreach from=$event.location.phone item=phone}\n{if $phone.phone}\n\n{if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}: {$phone.phone}{/if}\n{/foreach}\n{foreach from=$event.location.email item=eventEmail}\n{if $eventEmail.email}\n\n{ts}Email{/ts}: {$eventEmail.email}{/if}{/foreach}\n{/if}\n\n{if $contact.email}\n\n===========================================================\n{ts}Registered Email{/ts}\n\n===========================================================\n{$contact.email}\n{/if}\n\n{if $register_date}\n{ts}Registration Date{/ts}: {$participant.register_date|crmDate}\n{/if}\n\n{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions.{/ts}\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts}Your Event Registration has been cancelled.{/ts}</p>\n   </td>\n  </tr>\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Event Information and Location{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td colspan=\"2\" {$valueStyle}>\n       {$event.event_title}<br />\n       {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Participant Role{/ts}:\n      </td>\n      <td {$valueStyle}>\n       {$participant.role}\n      </td>\n     </tr>\n\n     {if $isShowLocation}\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$event.location.address.1.display|nl2br}\n       </td>\n      </tr>\n     {/if}\n\n     {if $event.location.phone.1.phone || $event.location.email.1.email}\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n        {ts}Event Contacts:{/ts}\n       </td>\n      </tr>\n      {foreach from=$event.location.phone item=phone}\n       {if $phone.phone}\n        <tr>\n         <td {$labelStyle}>\n          {if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}\n         </td>\n         <td {$valueStyle}>\n          {$phone.phone}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n      {foreach from=$event.location.email item=eventEmail}\n       {if $eventEmail.email}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Email{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$eventEmail.email}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n     {if $contact.email}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Registered Email{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$contact.email}\n       </td>\n      </tr>\n     {/if}\n\n     {if $register_date}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Registration Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$participant.register_date|crmDate}\n       </td>\n      </tr>\n     {/if}\n\n    </table>\n   </td>\n  </tr>\n\n  <tr>\n   <td>\n    <p>{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions.{/ts}</p>\n   </td>\n  </tr>\n\n </table>\n</center>\n\n</body>\n</html>\n',1,836,1,0,0,NULL),(36,'Events - Registration Cancellation Notice','{ts 1=$event.event_title}Event Registration Cancelled for %1{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts}Your Event Registration has been cancelled.{/ts}\n\n\n===========================================================\n{ts}Event Information and Location{/ts}\n\n===========================================================\n{$event.event_title}\n{$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n\n{ts}Participant Role{/ts}: {$participant.role}\n\n{if $isShowLocation}\n{$event.location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n\n{if $event.location.phone.1.phone || $event.location.email.1.email}\n\n{ts}Event Contacts:{/ts}\n{foreach from=$event.location.phone item=phone}\n{if $phone.phone}\n\n{if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}: {$phone.phone}{/if}\n{/foreach}\n{foreach from=$event.location.email item=eventEmail}\n{if $eventEmail.email}\n\n{ts}Email{/ts}: {$eventEmail.email}{/if}{/foreach}\n{/if}\n\n{if $contact.email}\n\n===========================================================\n{ts}Registered Email{/ts}\n\n===========================================================\n{$contact.email}\n{/if}\n\n{if $register_date}\n{ts}Registration Date{/ts}: {$participant.register_date|crmDate}\n{/if}\n\n{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions.{/ts}\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts}Your Event Registration has been cancelled.{/ts}</p>\n   </td>\n  </tr>\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Event Information and Location{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td colspan=\"2\" {$valueStyle}>\n       {$event.event_title}<br />\n       {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Participant Role{/ts}:\n      </td>\n      <td {$valueStyle}>\n       {$participant.role}\n      </td>\n     </tr>\n\n     {if $isShowLocation}\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$event.location.address.1.display|nl2br}\n       </td>\n      </tr>\n     {/if}\n\n     {if $event.location.phone.1.phone || $event.location.email.1.email}\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n        {ts}Event Contacts:{/ts}\n       </td>\n      </tr>\n      {foreach from=$event.location.phone item=phone}\n       {if $phone.phone}\n        <tr>\n         <td {$labelStyle}>\n          {if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}\n         </td>\n         <td {$valueStyle}>\n          {$phone.phone}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n      {foreach from=$event.location.email item=eventEmail}\n       {if $eventEmail.email}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Email{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$eventEmail.email}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n     {if $contact.email}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Registered Email{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$contact.email}\n       </td>\n      </tr>\n     {/if}\n\n     {if $register_date}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Registration Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$participant.register_date|crmDate}\n       </td>\n      </tr>\n     {/if}\n\n    </table>\n   </td>\n  </tr>\n\n  <tr>\n   <td>\n    <p>{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions.{/ts}</p>\n   </td>\n  </tr>\n\n </table>\n</center>\n\n</body>\n</html>\n',1,836,0,1,0,NULL),(37,'Events - Registration Confirmation Invite','{ts 1=$event.event_title}Confirm your registration for %1{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts}This is an invitation to complete your registration that was initially waitlisted.{/ts}\n\n{if !$isAdditional and $participant.id}\n\n===========================================================\n{ts}Confirm Your Registration{/ts}\n\n===========================================================\n{capture assign=confirmUrl}{crmURL p=\'civicrm/event/confirm\' q=\"reset=1&participantId=`$participant.id`&cs=`$checksumValue`\" a=true h=0 fe=1}{/capture}\nClick this link to go to a web page where you can confirm your registration online:\n{$confirmUrl}\n{/if}\n{if $event.allow_selfcancelxfer }\n{ts 1=$event.selfcancelxfer_time}You may transfer your registration to another participant or cancel your registration up to %1 hours before the event.{/ts} {if $totalAmount}{ts}Cancellations are not refundable.{/ts}{/if}\n   {capture assign=selfService}{crmURL p=\'civicrm/event/selfsvcupdate\' q=\"reset=1&pid=`$participant.id`&{contact.checksum}\"  h=0 a=1 fe=1}{/capture}\n{ts}Transfer or cancel your registration:{/ts} {$selfService}\n{/if}\n===========================================================\n{ts}Event Information and Location{/ts}\n\n===========================================================\n{$event.event_title}\n{$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n{if $conference_sessions}\n\n\n{ts}Your schedule:{/ts}\n{assign var=\'group_by_day\' value=\'NA\'}\n{foreach from=$conference_sessions item=session}\n{if $session.start_date|date_format:\"%Y/%m/%d\" != $group_by_day|date_format:\"%Y/%m/%d\"}\n{assign var=\'group_by_day\' value=$session.start_date}\n\n{$group_by_day|date_format:\"%m/%d/%Y\"}\n\n\n{/if}\n{$session.start_date|crmDate:0:1}{if $session.end_date}-{$session.end_date|crmDate:0:1}{/if} {$session.title}\n{if $session.location}    {$session.location}{/if}\n{/foreach}\n{/if}\n\n\n{ts}Participant Role{/ts}: {$participant.role}\n\n{if $isShowLocation}\n{$event.location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n\n{if $event.location.phone.1.phone || $event.location.email.1.email}\n\n{ts}Event Contacts:{/ts}\n{foreach from=$event.location.phone item=phone}\n{if $phone.phone}\n\n{if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}: {$phone.phone}{/if}\n{/foreach}\n{foreach from=$event.location.email item=eventEmail}\n{if $eventEmail.email}\n\n{ts}Email{/ts}: {$eventEmail.email}{/if}{/foreach}\n{/if}\n\n{if $event.is_public}\n{capture assign=icalFeed}{crmURL p=\'civicrm/event/ical\' q=\"reset=1&id=`$event.id`\" h=0 a=1 fe=1}{/capture}\n{ts}Download iCalendar File:{/ts} {$icalFeed}\n{/if}\n\n{if $contact.email}\n\n===========================================================\n{ts}Registered Email{/ts}\n\n===========================================================\n{$contact.email}\n{/if}\n\n{if $register_date}\n{ts}Registration Date{/ts}: {$participant.register_date|crmDate}\n{/if}\n\n{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions.{/ts}\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts}This is an invitation to complete your registration that was initially waitlisted.{/ts}</p>\n   </td>\n  </tr>\n  {if !$isAdditional and $participant.id}\n   <tr>\n    <th {$headerStyle}>\n     {ts}Confirm Your Registration{/ts}\n    </th>\n   </tr>\n   <tr>\n    <td colspan=\"2\" {$valueStyle}>\n     {capture assign=confirmUrl}{crmURL p=\'civicrm/event/confirm\' q=\"reset=1&participantId=`$participant.id`&cs=`$checksumValue`\" a=true h=0 fe=1}{/capture}\n     <a href=\"{$confirmUrl}\">{ts}Click here to confirm and complete your registration{/ts}</a>\n    </td>\n   </tr>\n  {/if}\n  {if $event.allow_selfcancelxfer }\n  {ts}This event allows for{/ts}\n  {capture assign=selfService}{crmURL p=\'civicrm/event/selfsvcupdate\' q=\"reset=1&pid=`$participantID`&{contact.checksum}\" h=0 a=1 fe=1}{/capture}\n       <a href=\"{$selfService}\"> {ts}self service cancel or transfer{/ts}</a>\n  {/if}\n\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Event Information and Location{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td colspan=\"2\" {$valueStyle}>\n       {$event.event_title}<br />\n       {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n      </td>\n     </tr>\n     {if $conference_sessions}\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n  {ts}Your schedule:{/ts}\n       </td>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n  {assign var=\'group_by_day\' value=\'NA\'}\n  {foreach from=$conference_sessions item=session}\n   {if $session.start_date|date_format:\"%Y/%m/%d\" != $group_by_day|date_format:\"%Y/%m/%d\"}\n    {assign var=\'group_by_day\' value=$session.start_date}\n          <em>{$group_by_day|date_format:\"%m/%d/%Y\"}</em><br />\n   {/if}\n   {$session.start_date|crmDate:0:1}{if $session.end_date}-{$session.end_date|crmDate:0:1}{/if} {$session.title}<br />\n   {if $session.location}&nbsp;&nbsp;&nbsp;&nbsp;{$session.location}<br />{/if}\n  {/foreach}\n       </td>\n      </tr>\n     {/if}\n     <tr>\n      <td {$labelStyle}>\n       {ts}Participant Role{/ts}:\n      </td>\n      <td {$valueStyle}>\n       {$participant.role}\n      </td>\n     </tr>\n\n     {if $isShowLocation}\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$event.location.address.1.display|nl2br}\n       </td>\n      </tr>\n     {/if}\n\n     {if $event.location.phone.1.phone || $event.location.email.1.email}\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n        {ts}Event Contacts:{/ts}\n       </td>\n      </tr>\n      {foreach from=$event.location.phone item=phone}\n       {if $phone.phone}\n        <tr>\n         <td {$labelStyle}>\n          {if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}\n         </td>\n         <td {$valueStyle}>\n          {$phone.phone}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n      {foreach from=$event.location.email item=eventEmail}\n       {if $eventEmail.email}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Email{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$eventEmail.email}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n     {if $event.is_public}\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {capture assign=icalFeed}{crmURL p=\'civicrm/event/ical\' q=\"reset=1&id=`$event.id`\" h=0 a=1 fe=1}{/capture}\n        <a href=\"{$icalFeed}\">{ts}Download iCalendar File{/ts}</a>\n       </td>\n      </tr>\n     {/if}\n\n     {if $contact.email}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Registered Email{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$contact.email}\n       </td>\n      </tr>\n     {/if}\n\n     {if $register_date}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Registration Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$participant.register_date|crmDate}\n       </td>\n      </tr>\n     {/if}\n\n    </table>\n   </td>\n  </tr>\n  {if $event.allow_selfcancelxfer }\n   <tr>\n     <td colspan=\"2\" {$valueStyle}>\n       {ts 1=$event.selfcancelxfer_time}You may transfer your registration to another participant or cancel your registration up to %1 hours before the event.{/ts} {if $totalAmount}{ts}Cancellations are not refundable.{/ts}{/if}<br />\n         {capture assign=selfService}{crmURL p=\'civicrm/event/selfsvcupdate\' q=\"reset=1&pid=`$participant.id`&{contact.checksum}\"  h=0 a=1 fe=1}{/capture}\n       <a href=\"{$selfService}\">{ts}Click here to transfer or cancel your registration.{/ts}</a>\n     </td>\n   </tr>\n  {/if}\n  <tr>\n   <td colspan=\"2\" {$valueStyle}>\n    <p>{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions.{/ts}</p>\n   </td>\n  </tr>\n\n </table>\n</center>\n\n</body>\n</html>\n',1,837,1,0,0,NULL),(38,'Events - Registration Confirmation Invite','{ts 1=$event.event_title}Confirm your registration for %1{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts}This is an invitation to complete your registration that was initially waitlisted.{/ts}\n\n{if !$isAdditional and $participant.id}\n\n===========================================================\n{ts}Confirm Your Registration{/ts}\n\n===========================================================\n{capture assign=confirmUrl}{crmURL p=\'civicrm/event/confirm\' q=\"reset=1&participantId=`$participant.id`&cs=`$checksumValue`\" a=true h=0 fe=1}{/capture}\nClick this link to go to a web page where you can confirm your registration online:\n{$confirmUrl}\n{/if}\n{if $event.allow_selfcancelxfer }\n{ts 1=$event.selfcancelxfer_time}You may transfer your registration to another participant or cancel your registration up to %1 hours before the event.{/ts} {if $totalAmount}{ts}Cancellations are not refundable.{/ts}{/if}\n   {capture assign=selfService}{crmURL p=\'civicrm/event/selfsvcupdate\' q=\"reset=1&pid=`$participant.id`&{contact.checksum}\"  h=0 a=1 fe=1}{/capture}\n{ts}Transfer or cancel your registration:{/ts} {$selfService}\n{/if}\n===========================================================\n{ts}Event Information and Location{/ts}\n\n===========================================================\n{$event.event_title}\n{$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n{if $conference_sessions}\n\n\n{ts}Your schedule:{/ts}\n{assign var=\'group_by_day\' value=\'NA\'}\n{foreach from=$conference_sessions item=session}\n{if $session.start_date|date_format:\"%Y/%m/%d\" != $group_by_day|date_format:\"%Y/%m/%d\"}\n{assign var=\'group_by_day\' value=$session.start_date}\n\n{$group_by_day|date_format:\"%m/%d/%Y\"}\n\n\n{/if}\n{$session.start_date|crmDate:0:1}{if $session.end_date}-{$session.end_date|crmDate:0:1}{/if} {$session.title}\n{if $session.location}    {$session.location}{/if}\n{/foreach}\n{/if}\n\n\n{ts}Participant Role{/ts}: {$participant.role}\n\n{if $isShowLocation}\n{$event.location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n\n{if $event.location.phone.1.phone || $event.location.email.1.email}\n\n{ts}Event Contacts:{/ts}\n{foreach from=$event.location.phone item=phone}\n{if $phone.phone}\n\n{if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}: {$phone.phone}{/if}\n{/foreach}\n{foreach from=$event.location.email item=eventEmail}\n{if $eventEmail.email}\n\n{ts}Email{/ts}: {$eventEmail.email}{/if}{/foreach}\n{/if}\n\n{if $event.is_public}\n{capture assign=icalFeed}{crmURL p=\'civicrm/event/ical\' q=\"reset=1&id=`$event.id`\" h=0 a=1 fe=1}{/capture}\n{ts}Download iCalendar File:{/ts} {$icalFeed}\n{/if}\n\n{if $contact.email}\n\n===========================================================\n{ts}Registered Email{/ts}\n\n===========================================================\n{$contact.email}\n{/if}\n\n{if $register_date}\n{ts}Registration Date{/ts}: {$participant.register_date|crmDate}\n{/if}\n\n{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions.{/ts}\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts}This is an invitation to complete your registration that was initially waitlisted.{/ts}</p>\n   </td>\n  </tr>\n  {if !$isAdditional and $participant.id}\n   <tr>\n    <th {$headerStyle}>\n     {ts}Confirm Your Registration{/ts}\n    </th>\n   </tr>\n   <tr>\n    <td colspan=\"2\" {$valueStyle}>\n     {capture assign=confirmUrl}{crmURL p=\'civicrm/event/confirm\' q=\"reset=1&participantId=`$participant.id`&cs=`$checksumValue`\" a=true h=0 fe=1}{/capture}\n     <a href=\"{$confirmUrl}\">{ts}Click here to confirm and complete your registration{/ts}</a>\n    </td>\n   </tr>\n  {/if}\n  {if $event.allow_selfcancelxfer }\n  {ts}This event allows for{/ts}\n  {capture assign=selfService}{crmURL p=\'civicrm/event/selfsvcupdate\' q=\"reset=1&pid=`$participantID`&{contact.checksum}\" h=0 a=1 fe=1}{/capture}\n       <a href=\"{$selfService}\"> {ts}self service cancel or transfer{/ts}</a>\n  {/if}\n\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Event Information and Location{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td colspan=\"2\" {$valueStyle}>\n       {$event.event_title}<br />\n       {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n      </td>\n     </tr>\n     {if $conference_sessions}\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n  {ts}Your schedule:{/ts}\n       </td>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n  {assign var=\'group_by_day\' value=\'NA\'}\n  {foreach from=$conference_sessions item=session}\n   {if $session.start_date|date_format:\"%Y/%m/%d\" != $group_by_day|date_format:\"%Y/%m/%d\"}\n    {assign var=\'group_by_day\' value=$session.start_date}\n          <em>{$group_by_day|date_format:\"%m/%d/%Y\"}</em><br />\n   {/if}\n   {$session.start_date|crmDate:0:1}{if $session.end_date}-{$session.end_date|crmDate:0:1}{/if} {$session.title}<br />\n   {if $session.location}&nbsp;&nbsp;&nbsp;&nbsp;{$session.location}<br />{/if}\n  {/foreach}\n       </td>\n      </tr>\n     {/if}\n     <tr>\n      <td {$labelStyle}>\n       {ts}Participant Role{/ts}:\n      </td>\n      <td {$valueStyle}>\n       {$participant.role}\n      </td>\n     </tr>\n\n     {if $isShowLocation}\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$event.location.address.1.display|nl2br}\n       </td>\n      </tr>\n     {/if}\n\n     {if $event.location.phone.1.phone || $event.location.email.1.email}\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n        {ts}Event Contacts:{/ts}\n       </td>\n      </tr>\n      {foreach from=$event.location.phone item=phone}\n       {if $phone.phone}\n        <tr>\n         <td {$labelStyle}>\n          {if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}\n         </td>\n         <td {$valueStyle}>\n          {$phone.phone}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n      {foreach from=$event.location.email item=eventEmail}\n       {if $eventEmail.email}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Email{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$eventEmail.email}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n     {if $event.is_public}\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {capture assign=icalFeed}{crmURL p=\'civicrm/event/ical\' q=\"reset=1&id=`$event.id`\" h=0 a=1 fe=1}{/capture}\n        <a href=\"{$icalFeed}\">{ts}Download iCalendar File{/ts}</a>\n       </td>\n      </tr>\n     {/if}\n\n     {if $contact.email}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Registered Email{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$contact.email}\n       </td>\n      </tr>\n     {/if}\n\n     {if $register_date}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Registration Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$participant.register_date|crmDate}\n       </td>\n      </tr>\n     {/if}\n\n    </table>\n   </td>\n  </tr>\n  {if $event.allow_selfcancelxfer }\n   <tr>\n     <td colspan=\"2\" {$valueStyle}>\n       {ts 1=$event.selfcancelxfer_time}You may transfer your registration to another participant or cancel your registration up to %1 hours before the event.{/ts} {if $totalAmount}{ts}Cancellations are not refundable.{/ts}{/if}<br />\n         {capture assign=selfService}{crmURL p=\'civicrm/event/selfsvcupdate\' q=\"reset=1&pid=`$participant.id`&{contact.checksum}\"  h=0 a=1 fe=1}{/capture}\n       <a href=\"{$selfService}\">{ts}Click here to transfer or cancel your registration.{/ts}</a>\n     </td>\n   </tr>\n  {/if}\n  <tr>\n   <td colspan=\"2\" {$valueStyle}>\n    <p>{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions.{/ts}</p>\n   </td>\n  </tr>\n\n </table>\n</center>\n\n</body>\n</html>\n',1,837,0,1,0,NULL),(39,'Events - Pending Registration Expiration Notice','{ts 1=$event.event_title}Event registration has expired for %1{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$event.event_title}Your pending event registration for %1 has expired\nbecause you did not confirm your registration.{/ts}\n\n\n{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions\nor want to inquire about reinstating your registration for this event.{/ts}\n\n===========================================================\n{ts}Event Information and Location{/ts}\n\n===========================================================\n{$event.event_title}\n{$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n\n{ts}Participant Role{/ts}: {$participant.role}\n\n{if $isShowLocation}\n{$event.location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n\n{if $event.location.phone.1.phone || $event.location.email.1.email}\n\n{ts}Event Contacts:{/ts}\n{foreach from=$event.location.phone item=phone}\n{if $phone.phone}\n\n{if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}: {$phone.phone}{/if}\n{/foreach}\n{foreach from=$event.location.email item=eventEmail}\n{if $eventEmail.email}\n\n{ts}Email{/ts}: {$eventEmail.email}{/if}{/foreach}\n{/if}\n\n{if $contact.email}\n\n===========================================================\n{ts}Registered Email{/ts}\n\n===========================================================\n{$contact.email}\n{/if}\n\n{if $register_date}\n{ts}Registration Date{/ts}: {$participant.register_date|crmDate}\n{/if}\n\n{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions.{/ts}\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts 1=$event.event_title}Your pending event registration for %1 has expired\nbecause you did not confirm your registration.{/ts}</p>\n    <p>{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions\nor want to inquire about reinstating your registration for this event.{/ts}</p>\n   </td>\n  </tr>\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Event Information and Location{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td colspan=\"2\" {$valueStyle}>\n       {$event.event_title}<br />\n       {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Participant Role{/ts}:\n      </td>\n      <td {$valueStyle}>\n       {$participant.role}\n      </td>\n     </tr>\n\n     {if $isShowLocation}\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$event.location.address.1.display|nl2br}\n       </td>\n      </tr>\n     {/if}\n\n     {if $event.location.phone.1.phone || $event.location.email.1.email}\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n        {ts}Event Contacts:{/ts}\n       </td>\n      </tr>\n      {foreach from=$event.location.phone item=phone}\n       {if $phone.phone}\n        <tr>\n         <td {$labelStyle}>\n          {if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}\n         </td>\n         <td {$valueStyle}>\n          {$phone.phone}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n      {foreach from=$event.location.email item=eventEmail}\n       {if $eventEmail.email}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Email{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$eventEmail.email}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n     {if $contact.email}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Registered Email{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$contact.email}\n       </td>\n      </tr>\n     {/if}\n\n     {if $register_date}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Registration Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$participant.register_date|crmDate}\n       </td>\n      </tr>\n     {/if}\n\n    </table>\n   </td>\n  </tr>\n\n  <tr>\n   <td>\n    <p>{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions.{/ts}</p>\n   </td>\n  </tr>\n\n </table>\n</center>\n\n</body>\n</html>\n',1,838,1,0,0,NULL),(40,'Events - Pending Registration Expiration Notice','{ts 1=$event.event_title}Event registration has expired for %1{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$event.event_title}Your pending event registration for %1 has expired\nbecause you did not confirm your registration.{/ts}\n\n\n{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions\nor want to inquire about reinstating your registration for this event.{/ts}\n\n===========================================================\n{ts}Event Information and Location{/ts}\n\n===========================================================\n{$event.event_title}\n{$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n\n{ts}Participant Role{/ts}: {$participant.role}\n\n{if $isShowLocation}\n{$event.location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n\n{if $event.location.phone.1.phone || $event.location.email.1.email}\n\n{ts}Event Contacts:{/ts}\n{foreach from=$event.location.phone item=phone}\n{if $phone.phone}\n\n{if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}: {$phone.phone}{/if}\n{/foreach}\n{foreach from=$event.location.email item=eventEmail}\n{if $eventEmail.email}\n\n{ts}Email{/ts}: {$eventEmail.email}{/if}{/foreach}\n{/if}\n\n{if $contact.email}\n\n===========================================================\n{ts}Registered Email{/ts}\n\n===========================================================\n{$contact.email}\n{/if}\n\n{if $register_date}\n{ts}Registration Date{/ts}: {$participant.register_date|crmDate}\n{/if}\n\n{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions.{/ts}\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts 1=$event.event_title}Your pending event registration for %1 has expired\nbecause you did not confirm your registration.{/ts}</p>\n    <p>{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions\nor want to inquire about reinstating your registration for this event.{/ts}</p>\n   </td>\n  </tr>\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Event Information and Location{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td colspan=\"2\" {$valueStyle}>\n       {$event.event_title}<br />\n       {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Participant Role{/ts}:\n      </td>\n      <td {$valueStyle}>\n       {$participant.role}\n      </td>\n     </tr>\n\n     {if $isShowLocation}\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$event.location.address.1.display|nl2br}\n       </td>\n      </tr>\n     {/if}\n\n     {if $event.location.phone.1.phone || $event.location.email.1.email}\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n        {ts}Event Contacts:{/ts}\n       </td>\n      </tr>\n      {foreach from=$event.location.phone item=phone}\n       {if $phone.phone}\n        <tr>\n         <td {$labelStyle}>\n          {if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}\n         </td>\n         <td {$valueStyle}>\n          {$phone.phone}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n      {foreach from=$event.location.email item=eventEmail}\n       {if $eventEmail.email}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Email{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$eventEmail.email}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n     {if $contact.email}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Registered Email{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$contact.email}\n       </td>\n      </tr>\n     {/if}\n\n     {if $register_date}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Registration Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$participant.register_date|crmDate}\n       </td>\n      </tr>\n     {/if}\n\n    </table>\n   </td>\n  </tr>\n\n  <tr>\n   <td>\n    <p>{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions.{/ts}</p>\n   </td>\n  </tr>\n\n </table>\n</center>\n\n</body>\n</html>\n',1,838,0,1,0,NULL),(41,'Events - Registration Transferred Notice','{ts 1=$event.event_title}Event Registration Transferred for %1{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$to_participant}Your Event Registration has been transferred to %1.{/ts}\n\n===========================================================\n{ts}Event Information and Location{/ts}\n\n===========================================================\n{$event.event_title}\n{$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n\n{ts}Participant Role{/ts}: {$participant.role}\n\n{if $isShowLocation}\n{$event.location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n\n{if $event.location.phone.1.phone || $event.location.email.1.email}\n\n{ts}Event Contacts:{/ts}\n{foreach from=$event.location.phone item=phone}\n{if $phone.phone}\n\n{if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}: {$phone.phone}{/if}\n{/foreach}\n{foreach from=$event.location.email item=eventEmail}\n{if $eventEmail.email}\n\n{ts}Email{/ts}: {$eventEmail.email}{/if}{/foreach}\n{/if}\n\n{if $contact.email}\n\n===========================================================\n{ts}Registered Email{/ts}\n\n===========================================================\n{$contact.email}\n{/if}\n\n{if $register_date}\n{ts}Registration Date{/ts}: {$participant.register_date|crmDate}\n{/if}\n\n{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions.{/ts}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts 1=$to_participant}Your Event Registration has been Transferred to %1.{/ts}</p>\n   </td>\n  </tr>\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Event Information and Location{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td colspan=\"2\" {$valueStyle}>\n       {$event.event_title}<br />\n       {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Participant Role{/ts}:\n      </td>\n      <td {$valueStyle}>\n       {$participant.role}\n      </td>\n     </tr>\n\n     {if $isShowLocation}\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$event.location.address.1.display|nl2br}\n       </td>\n      </tr>\n     {/if}\n\n     {if $event.location.phone.1.phone || $event.location.email.1.email}\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n        {ts}Event Contacts:{/ts}\n       </td>\n      </tr>\n      {foreach from=$event.location.phone item=phone}\n       {if $phone.phone}\n        <tr>\n         <td {$labelStyle}>\n          {if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}\n         </td>\n         <td {$valueStyle}>\n          {$phone.phone}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n      {foreach from=$event.location.email item=eventEmail}\n       {if $eventEmail.email}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Email{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$eventEmail.email}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n     {if $contact.email}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Registered Email{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$contact.email}\n       </td>\n      </tr>\n     {/if}\n\n     {if $register_date}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Registration Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$participant.register_date|crmDate}\n       </td>\n      </tr>\n     {/if}\n\n    </table>\n   </td>\n  </tr>\n\n  <tr>\n   <td>\n    <p>{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions.{/ts}</p>\n   </td>\n  </tr>\n\n </table>\n</center>\n\n</body>\n</html>\n',1,839,1,0,0,NULL),(42,'Events - Registration Transferred Notice','{ts 1=$event.event_title}Event Registration Transferred for %1{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$to_participant}Your Event Registration has been transferred to %1.{/ts}\n\n===========================================================\n{ts}Event Information and Location{/ts}\n\n===========================================================\n{$event.event_title}\n{$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n\n{ts}Participant Role{/ts}: {$participant.role}\n\n{if $isShowLocation}\n{$event.location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n\n{if $event.location.phone.1.phone || $event.location.email.1.email}\n\n{ts}Event Contacts:{/ts}\n{foreach from=$event.location.phone item=phone}\n{if $phone.phone}\n\n{if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}: {$phone.phone}{/if}\n{/foreach}\n{foreach from=$event.location.email item=eventEmail}\n{if $eventEmail.email}\n\n{ts}Email{/ts}: {$eventEmail.email}{/if}{/foreach}\n{/if}\n\n{if $contact.email}\n\n===========================================================\n{ts}Registered Email{/ts}\n\n===========================================================\n{$contact.email}\n{/if}\n\n{if $register_date}\n{ts}Registration Date{/ts}: {$participant.register_date|crmDate}\n{/if}\n\n{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions.{/ts}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts 1=$to_participant}Your Event Registration has been Transferred to %1.{/ts}</p>\n   </td>\n  </tr>\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Event Information and Location{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td colspan=\"2\" {$valueStyle}>\n       {$event.event_title}<br />\n       {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Participant Role{/ts}:\n      </td>\n      <td {$valueStyle}>\n       {$participant.role}\n      </td>\n     </tr>\n\n     {if $isShowLocation}\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$event.location.address.1.display|nl2br}\n       </td>\n      </tr>\n     {/if}\n\n     {if $event.location.phone.1.phone || $event.location.email.1.email}\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n        {ts}Event Contacts:{/ts}\n       </td>\n      </tr>\n      {foreach from=$event.location.phone item=phone}\n       {if $phone.phone}\n        <tr>\n         <td {$labelStyle}>\n          {if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}\n         </td>\n         <td {$valueStyle}>\n          {$phone.phone}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n      {foreach from=$event.location.email item=eventEmail}\n       {if $eventEmail.email}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Email{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$eventEmail.email}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n     {if $contact.email}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Registered Email{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$contact.email}\n       </td>\n      </tr>\n     {/if}\n\n     {if $register_date}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Registration Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$participant.register_date|crmDate}\n       </td>\n      </tr>\n     {/if}\n\n    </table>\n   </td>\n  </tr>\n\n  <tr>\n   <td>\n    <p>{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions.{/ts}</p>\n   </td>\n  </tr>\n\n </table>\n</center>\n\n</body>\n</html>\n',1,839,0,1,0,NULL),(43,'Tell-a-Friend Email','{ts 1=$senderContactName 2=$title}%1 wants you to know about %2{/ts}\n','{$senderMessage}\n\n{if $generalLink}{ts}For more information, visit:{/ts}\n>> {$generalLink}\n\n{/if}\n{if $contribute}{ts}To make a contribution, go to:{/ts}\n>> {$pageURL}\n\n{/if}\n{if $event}{ts}To find out more about this event, go to:{/ts}\n>> {$pageURL}\n{/if}\n\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    <p>{$senderMessage}</p>\n    {if $generalLink}\n     <p><a href=\"{$generalLink}\">{ts}More information{/ts}</a></p>\n    {/if}\n    {if $contribute}\n     <p><a href=\"{$pageURL}\">{ts}Make a contribution{/ts}</a></p>\n    {/if}\n    {if $event}\n     <p><a href=\"{$pageURL}\">{ts}Find out more about this event{/ts}</a></p>\n    {/if}\n   </td>\n  </tr>\n </table>\n</center>\n\n</body>\n</html>\n',1,840,1,0,0,NULL),(44,'Tell-a-Friend Email','{ts 1=$senderContactName 2=$title}%1 wants you to know about %2{/ts}\n','{$senderMessage}\n\n{if $generalLink}{ts}For more information, visit:{/ts}\n>> {$generalLink}\n\n{/if}\n{if $contribute}{ts}To make a contribution, go to:{/ts}\n>> {$pageURL}\n\n{/if}\n{if $event}{ts}To find out more about this event, go to:{/ts}\n>> {$pageURL}\n{/if}\n\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    <p>{$senderMessage}</p>\n    {if $generalLink}\n     <p><a href=\"{$generalLink}\">{ts}More information{/ts}</a></p>\n    {/if}\n    {if $contribute}\n     <p><a href=\"{$pageURL}\">{ts}Make a contribution{/ts}</a></p>\n    {/if}\n    {if $event}\n     <p><a href=\"{$pageURL}\">{ts}Find out more about this event{/ts}</a></p>\n    {/if}\n   </td>\n  </tr>\n </table>\n</center>\n\n</body>\n</html>\n',1,840,0,1,0,NULL),(45,'Memberships - Signup and Renewal Receipts (off-line)','{if $receiptType EQ \'membership signup\'}\n{ts}Membership Confirmation and Receipt{/ts}\n{elseif $receiptType EQ \'membership renewal\'}\n{ts}Membership Renewal Confirmation and Receipt{/ts}\n{/if} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{if $formValues.receipt_text_signup}\n{$formValues.receipt_text_signup}\n{elseif $formValues.receipt_text_renewal}\n{$formValues.receipt_text_renewal}\n{else}{ts}Thank you for this contribution.{/ts}{/if}\n\n{if !$lineItem}\n===========================================================\n{ts}Membership Information{/ts}\n\n===========================================================\n{ts}Membership Type{/ts}: {$membership_name}\n{/if}\n{if ! $cancelled}\n{if !$lineItem}\n{ts}Membership Start Date{/ts}: {$mem_start_date}\n{ts}Membership End Date{/ts}: {$mem_end_date}\n{/if}\n\n{if $formValues.total_amount OR $formValues.total_amount eq 0 }\n===========================================================\n{ts}Membership Fee{/ts}\n\n===========================================================\n{if $formValues.contributionType_name}\n{ts}Financial Type{/ts}: {$formValues.contributionType_name}\n{/if}\n{if $lineItem}\n{foreach from=$lineItem item=value key=priceset}\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_total}{ts}Fee{/ts}{/capture}\n{if $dataArray}\n{capture assign=ts_subtotal}{ts}Subtotal{/ts}{/capture}\n{capture assign=ts_taxRate}{ts}Tax Rate{/ts}{/capture}\n{capture assign=ts_taxAmount}{ts}Tax Amount{/ts}{/capture}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{/if}\n{capture assign=ts_start_date}{ts}Membership Start Date{/ts}{/capture}\n{capture assign=ts_end_date}{ts}Membership End Date{/ts}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_total|string_format:\"%10s\"} {if $dataArray} {$ts_subtotal|string_format:\"%10s\"} {$ts_taxRate|string_format:\"%10s\"} {$ts_taxAmount|string_format:\"%10s\"} {$ts_total|string_format:\"%10s\"} {/if} {$ts_start_date|string_format:\"%20s\"} {$ts_end_date|string_format:\"%20s\"}\n--------------------------------------------------------------------------------------------------\n\n{foreach from=$value item=line}\n{capture assign=ts_item}{if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description} {$line.description}{/if}{/capture}{$ts_item|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.line_total|crmMoney|string_format:\"%10s\"}  {if $dataArray} {$line.unit_price*$line.qty|crmMoney:$currency|string_format:\"%10s\"} {if $line.tax_rate != \"\" || $line.tax_amount != \"\"}  {$line.tax_rate|string_format:\"%.2f\"} %  {$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"}  {else}                  {/if}   {$line.line_total+$line.tax_amount|crmMoney|string_format:\"%10s\"} {/if} {$line.start_date|string_format:\"%20s\"} {$line.end_date|string_format:\"%20s\"}\n{/foreach}\n{/foreach}\n\n{if $dataArray}\n{ts}Amount before Tax{/ts}: {$formValues.total_amount-$totalTaxAmount|crmMoney:$currency}\n\n{foreach from=$dataArray item=value key=priceset}\n{if $priceset}\n{$taxTerm} {$priceset|string_format:\"%.2f\"} %: {$value|crmMoney:$currency}\n{elseif  $priceset == 0}\n{ts}No{/ts} {$taxTerm}: {$value|crmMoney:$currency}\n{/if}\n{/foreach}\n{/if}\n--------------------------------------------------------------------------------------------------\n{/if}\n\n{if isset($totalTaxAmount)}\n{ts}Total Tax Amount{/ts}: {$totalTaxAmount|crmMoney:$currency}\n{/if}\n\n{ts}Amount{/ts}: {$formValues.total_amount|crmMoney}\n{if $receive_date}\n{ts}Date Received{/ts}: {$receive_date|truncate:10:\'\'|crmDate}\n{/if}\n{if $formValues.paidBy}\n{ts}Paid By{/ts}: {$formValues.paidBy}\n{if $formValues.check_number}\n{ts}Check Number{/ts}: {$formValues.check_number}\n{/if}\n{/if}\n{/if}\n{/if}\n\n{if $isPrimary }\n{if $billingName}\n\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billingName}\n{$address}\n{/if}\n\n{if $credit_card_type}\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n{/if}\n\n{if $customValues}\n===========================================================\n{ts}Membership Options{/ts}\n\n===========================================================\n{foreach from=$customValues item=value key=customName}\n {$customName} : {$value}\n{/foreach}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    {if $formValues.receipt_text_signup}\n     <p>{$formValues.receipt_text_signup|htmlize}</p>\n    {elseif $formValues.receipt_text_renewal}\n     <p>{$formValues.receipt_text_renewal|htmlize}</p>\n    {else}\n     <p>{ts}Thank you for this contribution.{/ts}</p>\n    {/if}\n   </td>\n  </tr>\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     {if !$lineItem}\n     <tr>\n      <th {$headerStyle}>\n       {ts}Membership Information{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Membership Type{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$membership_name}\n      </td>\n     </tr>\n     {/if}\n     {if ! $cancelled}\n     {if !$lineItem}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Membership Start Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$mem_start_date}\n       </td>\n      </tr>\n      <tr>\n       <td {$labelStyle}>\n        {ts}Membership End Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$mem_end_date}\n       </td>\n      </tr>\n      {/if}\n      {if $formValues.total_amount OR $formValues.total_amount eq 0 }\n       <tr>\n        <th {$headerStyle}>\n         {ts}Membership Fee{/ts}\n        </th>\n       </tr>\n       {if $formValues.contributionType_name}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Financial Type{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$formValues.contributionType_name}\n         </td>\n        </tr>\n       {/if}\n\n       {if $lineItem}\n       {foreach from=$lineItem item=value key=priceset}\n         <tr>\n          <td colspan=\"2\" {$valueStyle}>\n           <table> {* FIXME: style this table so that it looks like the text version (justification, etc.) *}\n            <tr>\n             <th>{ts}Item{/ts}</th>\n             <th>{ts}Fee{/ts}</th>\n             {if $dataArray}\n              <th>{ts}SubTotal{/ts}</th>\n              <th>{ts}Tax Rate{/ts}</th>\n              <th>{ts}Tax Amount{/ts}</th>\n              <th>{ts}Total{/ts}</th>\n             {/if}\n       <th>{ts}Membership Start Date{/ts}</th>\n       <th>{ts}Membership End Date{/ts}</th>\n            </tr>\n            {foreach from=$value item=line}\n             <tr>\n              <td>\n        {if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description}<div>{$line.description|truncate:30:\"...\"}</div>{/if}\n              </td>\n              <td>\n               {$line.line_total|crmMoney}\n              </td>\n              {if $dataArray}\n               <td>\n                {$line.unit_price*$line.qty|crmMoney}\n               </td>\n               {if $line.tax_rate != \"\" || $line.tax_amount != \"\"}\n                <td>\n                 {$line.tax_rate|string_format:\"%.2f\"}%\n                </td>\n                <td>\n                 {$line.tax_amount|crmMoney}\n                </td>\n               {else}\n                <td></td>\n                <td></td>\n               {/if}\n               <td>\n                {$line.line_total+$line.tax_amount|crmMoney}\n               </td>\n              {/if}\n              <td>\n               {$line.start_date}\n              </td>\n        <td>\n               {$line.end_date}\n              </td>\n             </tr>\n            {/foreach}\n           </table>\n          </td>\n         </tr>\n       {/foreach}\n       {if $dataArray}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Amount Before Tax:{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$formValues.total_amount-$totalTaxAmount|crmMoney}\n         </td>\n        </tr>\n       {foreach from=$dataArray item=value key=priceset}\n        <tr>\n        {if $priceset}\n         <td>&nbsp;{$taxTerm} {$priceset|string_format:\"%.2f\"}%</td>\n         <td>&nbsp;{$value|crmMoney:$currency}</td>\n        {elseif  $priceset == 0}\n         <td>&nbsp;{ts}No{/ts} {$taxTerm}</td>\n         <td>&nbsp;{$value|crmMoney:$currency}</td>\n        {/if}\n        </tr>\n       {/foreach}\n      {/if}\n      {/if}\n      {if isset($totalTaxAmount)}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Total Tax Amount{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$totalTaxAmount|crmMoney:$currency}\n         </td>\n        </tr>\n       {/if}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$formValues.total_amount|crmMoney}\n        </td>\n       </tr>\n       {if $receive_date}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Date Received{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$receive_date|truncate:10:\'\'|crmDate}\n         </td>\n        </tr>\n       {/if}\n       {if $formValues.paidBy}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Paid By{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$formValues.paidBy}\n         </td>\n        </tr>\n        {if $formValues.check_number}\n         <tr>\n          <td {$labelStyle}>\n           {ts}Check Number{/ts}\n          </td>\n          <td {$valueStyle}>\n           {$formValues.check_number}\n          </td>\n         </tr>\n        {/if}\n       {/if}\n      {/if}\n     {/if}\n    </table>\n   </td>\n  </tr>\n\n  {if $isPrimary}\n   <tr>\n    <td>\n     <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n\n      {if $billingName}\n       <tr>\n        <th {$headerStyle}>\n         {ts}Billing Name and Address{/ts}\n        </th>\n       </tr>\n       <tr>\n        <td {$labelStyle}>\n         {$billingName}<br />\n         {$address}\n        </td>\n       </tr>\n      {/if}\n\n      {if $credit_card_type}\n       <tr>\n        <th {$headerStyle}>\n         {ts}Credit Card Information{/ts}\n        </th>\n       </tr>\n       <tr>\n        <td {$valueStyle}>\n         {$credit_card_type}<br />\n         {$credit_card_number}\n        </td>\n       </tr>\n       <tr>\n        <td {$labelStyle}>\n         {ts}Expires{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n        </td>\n       </tr>\n      {/if}\n\n     </table>\n    </td>\n   </tr>\n  {/if}\n\n  {if $customValues}\n   <tr>\n    <td>\n     <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n      <tr>\n       <th {$headerStyle}>\n        {ts}Membership Options{/ts}\n       </th>\n      </tr>\n      {foreach from=$customValues item=value key=customName}\n       <tr>\n        <td {$labelStyle}>\n         {$customName}\n        </td>\n        <td {$valueStyle}>\n         {$value}\n        </td>\n       </tr>\n      {/foreach}\n     </table>\n    </td>\n   </tr>\n  {/if}\n\n </table>\n</center>\n\n</body>\n</html>\n',1,841,1,0,0,NULL),(46,'Memberships - Signup and Renewal Receipts (off-line)','{if $receiptType EQ \'membership signup\'}\n{ts}Membership Confirmation and Receipt{/ts}\n{elseif $receiptType EQ \'membership renewal\'}\n{ts}Membership Renewal Confirmation and Receipt{/ts}\n{/if} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{if $formValues.receipt_text_signup}\n{$formValues.receipt_text_signup}\n{elseif $formValues.receipt_text_renewal}\n{$formValues.receipt_text_renewal}\n{else}{ts}Thank you for this contribution.{/ts}{/if}\n\n{if !$lineItem}\n===========================================================\n{ts}Membership Information{/ts}\n\n===========================================================\n{ts}Membership Type{/ts}: {$membership_name}\n{/if}\n{if ! $cancelled}\n{if !$lineItem}\n{ts}Membership Start Date{/ts}: {$mem_start_date}\n{ts}Membership End Date{/ts}: {$mem_end_date}\n{/if}\n\n{if $formValues.total_amount OR $formValues.total_amount eq 0 }\n===========================================================\n{ts}Membership Fee{/ts}\n\n===========================================================\n{if $formValues.contributionType_name}\n{ts}Financial Type{/ts}: {$formValues.contributionType_name}\n{/if}\n{if $lineItem}\n{foreach from=$lineItem item=value key=priceset}\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_total}{ts}Fee{/ts}{/capture}\n{if $dataArray}\n{capture assign=ts_subtotal}{ts}Subtotal{/ts}{/capture}\n{capture assign=ts_taxRate}{ts}Tax Rate{/ts}{/capture}\n{capture assign=ts_taxAmount}{ts}Tax Amount{/ts}{/capture}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{/if}\n{capture assign=ts_start_date}{ts}Membership Start Date{/ts}{/capture}\n{capture assign=ts_end_date}{ts}Membership End Date{/ts}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_total|string_format:\"%10s\"} {if $dataArray} {$ts_subtotal|string_format:\"%10s\"} {$ts_taxRate|string_format:\"%10s\"} {$ts_taxAmount|string_format:\"%10s\"} {$ts_total|string_format:\"%10s\"} {/if} {$ts_start_date|string_format:\"%20s\"} {$ts_end_date|string_format:\"%20s\"}\n--------------------------------------------------------------------------------------------------\n\n{foreach from=$value item=line}\n{capture assign=ts_item}{if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description} {$line.description}{/if}{/capture}{$ts_item|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.line_total|crmMoney|string_format:\"%10s\"}  {if $dataArray} {$line.unit_price*$line.qty|crmMoney:$currency|string_format:\"%10s\"} {if $line.tax_rate != \"\" || $line.tax_amount != \"\"}  {$line.tax_rate|string_format:\"%.2f\"} %  {$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"}  {else}                  {/if}   {$line.line_total+$line.tax_amount|crmMoney|string_format:\"%10s\"} {/if} {$line.start_date|string_format:\"%20s\"} {$line.end_date|string_format:\"%20s\"}\n{/foreach}\n{/foreach}\n\n{if $dataArray}\n{ts}Amount before Tax{/ts}: {$formValues.total_amount-$totalTaxAmount|crmMoney:$currency}\n\n{foreach from=$dataArray item=value key=priceset}\n{if $priceset}\n{$taxTerm} {$priceset|string_format:\"%.2f\"} %: {$value|crmMoney:$currency}\n{elseif  $priceset == 0}\n{ts}No{/ts} {$taxTerm}: {$value|crmMoney:$currency}\n{/if}\n{/foreach}\n{/if}\n--------------------------------------------------------------------------------------------------\n{/if}\n\n{if isset($totalTaxAmount)}\n{ts}Total Tax Amount{/ts}: {$totalTaxAmount|crmMoney:$currency}\n{/if}\n\n{ts}Amount{/ts}: {$formValues.total_amount|crmMoney}\n{if $receive_date}\n{ts}Date Received{/ts}: {$receive_date|truncate:10:\'\'|crmDate}\n{/if}\n{if $formValues.paidBy}\n{ts}Paid By{/ts}: {$formValues.paidBy}\n{if $formValues.check_number}\n{ts}Check Number{/ts}: {$formValues.check_number}\n{/if}\n{/if}\n{/if}\n{/if}\n\n{if $isPrimary }\n{if $billingName}\n\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billingName}\n{$address}\n{/if}\n\n{if $credit_card_type}\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n{/if}\n\n{if $customValues}\n===========================================================\n{ts}Membership Options{/ts}\n\n===========================================================\n{foreach from=$customValues item=value key=customName}\n {$customName} : {$value}\n{/foreach}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    {if $formValues.receipt_text_signup}\n     <p>{$formValues.receipt_text_signup|htmlize}</p>\n    {elseif $formValues.receipt_text_renewal}\n     <p>{$formValues.receipt_text_renewal|htmlize}</p>\n    {else}\n     <p>{ts}Thank you for this contribution.{/ts}</p>\n    {/if}\n   </td>\n  </tr>\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     {if !$lineItem}\n     <tr>\n      <th {$headerStyle}>\n       {ts}Membership Information{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Membership Type{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$membership_name}\n      </td>\n     </tr>\n     {/if}\n     {if ! $cancelled}\n     {if !$lineItem}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Membership Start Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$mem_start_date}\n       </td>\n      </tr>\n      <tr>\n       <td {$labelStyle}>\n        {ts}Membership End Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$mem_end_date}\n       </td>\n      </tr>\n      {/if}\n      {if $formValues.total_amount OR $formValues.total_amount eq 0 }\n       <tr>\n        <th {$headerStyle}>\n         {ts}Membership Fee{/ts}\n        </th>\n       </tr>\n       {if $formValues.contributionType_name}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Financial Type{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$formValues.contributionType_name}\n         </td>\n        </tr>\n       {/if}\n\n       {if $lineItem}\n       {foreach from=$lineItem item=value key=priceset}\n         <tr>\n          <td colspan=\"2\" {$valueStyle}>\n           <table> {* FIXME: style this table so that it looks like the text version (justification, etc.) *}\n            <tr>\n             <th>{ts}Item{/ts}</th>\n             <th>{ts}Fee{/ts}</th>\n             {if $dataArray}\n              <th>{ts}SubTotal{/ts}</th>\n              <th>{ts}Tax Rate{/ts}</th>\n              <th>{ts}Tax Amount{/ts}</th>\n              <th>{ts}Total{/ts}</th>\n             {/if}\n       <th>{ts}Membership Start Date{/ts}</th>\n       <th>{ts}Membership End Date{/ts}</th>\n            </tr>\n            {foreach from=$value item=line}\n             <tr>\n              <td>\n        {if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description}<div>{$line.description|truncate:30:\"...\"}</div>{/if}\n              </td>\n              <td>\n               {$line.line_total|crmMoney}\n              </td>\n              {if $dataArray}\n               <td>\n                {$line.unit_price*$line.qty|crmMoney}\n               </td>\n               {if $line.tax_rate != \"\" || $line.tax_amount != \"\"}\n                <td>\n                 {$line.tax_rate|string_format:\"%.2f\"}%\n                </td>\n                <td>\n                 {$line.tax_amount|crmMoney}\n                </td>\n               {else}\n                <td></td>\n                <td></td>\n               {/if}\n               <td>\n                {$line.line_total+$line.tax_amount|crmMoney}\n               </td>\n              {/if}\n              <td>\n               {$line.start_date}\n              </td>\n        <td>\n               {$line.end_date}\n              </td>\n             </tr>\n            {/foreach}\n           </table>\n          </td>\n         </tr>\n       {/foreach}\n       {if $dataArray}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Amount Before Tax:{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$formValues.total_amount-$totalTaxAmount|crmMoney}\n         </td>\n        </tr>\n       {foreach from=$dataArray item=value key=priceset}\n        <tr>\n        {if $priceset}\n         <td>&nbsp;{$taxTerm} {$priceset|string_format:\"%.2f\"}%</td>\n         <td>&nbsp;{$value|crmMoney:$currency}</td>\n        {elseif  $priceset == 0}\n         <td>&nbsp;{ts}No{/ts} {$taxTerm}</td>\n         <td>&nbsp;{$value|crmMoney:$currency}</td>\n        {/if}\n        </tr>\n       {/foreach}\n      {/if}\n      {/if}\n      {if isset($totalTaxAmount)}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Total Tax Amount{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$totalTaxAmount|crmMoney:$currency}\n         </td>\n        </tr>\n       {/if}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$formValues.total_amount|crmMoney}\n        </td>\n       </tr>\n       {if $receive_date}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Date Received{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$receive_date|truncate:10:\'\'|crmDate}\n         </td>\n        </tr>\n       {/if}\n       {if $formValues.paidBy}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Paid By{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$formValues.paidBy}\n         </td>\n        </tr>\n        {if $formValues.check_number}\n         <tr>\n          <td {$labelStyle}>\n           {ts}Check Number{/ts}\n          </td>\n          <td {$valueStyle}>\n           {$formValues.check_number}\n          </td>\n         </tr>\n        {/if}\n       {/if}\n      {/if}\n     {/if}\n    </table>\n   </td>\n  </tr>\n\n  {if $isPrimary}\n   <tr>\n    <td>\n     <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n\n      {if $billingName}\n       <tr>\n        <th {$headerStyle}>\n         {ts}Billing Name and Address{/ts}\n        </th>\n       </tr>\n       <tr>\n        <td {$labelStyle}>\n         {$billingName}<br />\n         {$address}\n        </td>\n       </tr>\n      {/if}\n\n      {if $credit_card_type}\n       <tr>\n        <th {$headerStyle}>\n         {ts}Credit Card Information{/ts}\n        </th>\n       </tr>\n       <tr>\n        <td {$valueStyle}>\n         {$credit_card_type}<br />\n         {$credit_card_number}\n        </td>\n       </tr>\n       <tr>\n        <td {$labelStyle}>\n         {ts}Expires{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n        </td>\n       </tr>\n      {/if}\n\n     </table>\n    </td>\n   </tr>\n  {/if}\n\n  {if $customValues}\n   <tr>\n    <td>\n     <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n      <tr>\n       <th {$headerStyle}>\n        {ts}Membership Options{/ts}\n       </th>\n      </tr>\n      {foreach from=$customValues item=value key=customName}\n       <tr>\n        <td {$labelStyle}>\n         {$customName}\n        </td>\n        <td {$valueStyle}>\n         {$value}\n        </td>\n       </tr>\n      {/foreach}\n     </table>\n    </td>\n   </tr>\n  {/if}\n\n </table>\n</center>\n\n</body>\n</html>\n',1,841,0,1,0,NULL),(47,'Memberships - Receipt (on-line)','{if $is_pay_later}{ts}Invoice{/ts}{else}{ts}Receipt{/ts}{/if} - {$title} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n{if $receipt_text}\n{$receipt_text}\n{/if}\n{if $is_pay_later}\n\n===========================================================\n{$pay_later_receipt}\n===========================================================\n{/if}\n\n{if $membership_assign && !$useForMember}\n===========================================================\n{ts}Membership Information{/ts}\n\n===========================================================\n{ts}Membership Type{/ts}: {$membership_name}\n{if $mem_start_date}{ts}Membership Start Date{/ts}: {$mem_start_date|crmDate}\n{/if}\n{if $mem_end_date}{ts}Membership End Date{/ts}: {$mem_end_date|crmDate}\n{/if}\n\n{/if}\n{if $amount}\n===========================================================\n{ts}Membership Fee{/ts}\n\n===========================================================\n{if !$useForMember && $membership_amount && $is_quick_config}\n{ts 1=$membership_name}%1 Membership{/ts}: {$membership_amount|crmMoney}\n{if $amount && !$is_separate_payment }\n{ts}Contribution Amount{/ts}: {$amount|crmMoney}\n-------------------------------------------\n{ts}Total{/ts}: {$amount+$membership_amount|crmMoney}\n{/if}\n{elseif !$useForMember && $lineItem and $priceSetID & !$is_quick_config}\n{foreach from=$lineItem item=value key=priceset}\n---------------------------------------------------------\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_qty}{ts}Qty{/ts}{/capture}\n{capture assign=ts_each}{ts}Each{/ts}{/capture}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_qty|string_format:\"%5s\"} {$ts_each|string_format:\"%10s\"} {$ts_total|string_format:\"%10s\"}\n----------------------------------------------------------\n{foreach from=$value item=line}\n{$line.description|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.qty|string_format:\"%5s\"} {$line.unit_price|crmMoney|string_format:\"%10s\"} {$line.line_total|crmMoney|string_format:\"%10s\"}\n{/foreach}\n{/foreach}\n\n{ts}Total Amount{/ts}: {$amount|crmMoney}\n{else}\n{if $useForMember && $lineItem && !$is_quick_config}\n{foreach from=$lineItem item=value key=priceset}\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_total}{ts}Fee{/ts}{/capture}\n{if $dataArray}\n{capture assign=ts_subtotal}{ts}Subtotal{/ts}{/capture}\n{capture assign=ts_taxRate}{ts}Tax Rate{/ts}{/capture}\n{capture assign=ts_taxAmount}{ts}Tax Amount{/ts}{/capture}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{/if}\n{capture assign=ts_start_date}{ts}Membership Start Date{/ts}{/capture}\n{capture assign=ts_end_date}{ts}Membership End Date{/ts}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_total|string_format:\"%10s\"} {if $dataArray} {$ts_subtotal|string_format:\"%10s\"} {$ts_taxRate|string_format:\"%10s\"} {$ts_taxAmount|string_format:\"%10s\"} {$ts_total|string_format:\"%10s\"} {/if} {$ts_start_date|string_format:\"%20s\"} {$ts_end_date|string_format:\"%20s\"}\n--------------------------------------------------------------------------------------------------\n\n{foreach from=$value item=line}\n{capture assign=ts_item}{if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description} {$line.description}{/if}{/capture}{$ts_item|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.line_total|crmMoney|string_format:\"%10s\"}  {if $dataArray} {$line.unit_price*$line.qty|crmMoney:$currency|string_format:\"%10s\"} {if $line.tax_rate != \"\" || $line.tax_amount != \"\"}  {$line.tax_rate|string_format:\"%.2f\"} %  {$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"} {else}                  {/if}   {$line.line_total+$line.tax_amount|crmMoney|string_format:\"%10s\"} {/if} {$line.start_date|string_format:\"%20s\"} {$line.end_date|string_format:\"%20s\"}\n{/foreach}\n{/foreach}\n\n{if $dataArray}\n{ts}Amount before Tax{/ts}: {$amount-$totalTaxAmount|crmMoney:$currency}\n\n{foreach from=$dataArray item=value key=priceset}\n{if $priceset || $priceset == 0}\n{$taxTerm} {$priceset|string_format:\"%.2f\"}%: {$value|crmMoney:$currency}\n{else}\n{ts}No{/ts} {$taxTerm}: {$value|crmMoney:$currency}\n{/if}\n{/foreach}\n{/if}\n--------------------------------------------------------------------------------------------------\n{/if}\n\n{if $totalTaxAmount}\n{ts}Total Tax Amount{/ts}: {$totalTaxAmount|crmMoney:$currency}\n{/if}\n\n{ts}Amount{/ts}: {$amount|crmMoney} {if $amount_level } - {$amount_level} {/if}\n{/if}\n{elseif $membership_amount}\n===========================================================\n{ts}Membership Fee{/ts}\n\n===========================================================\n{ts 1=$membership_name}%1 Membership{/ts}: {$membership_amount|crmMoney}\n{/if}\n\n{if $receive_date}\n\n{ts}Date{/ts}: {$receive_date|crmDate}\n{/if}\n{if $is_monetary and $trxn_id}\n{ts}Transaction #{/ts}: {$trxn_id}\n\n{/if}\n{if $membership_trx_id}\n{ts}Membership Transaction #{/ts}: {$membership_trx_id}\n\n{/if}\n{if $is_recur}\n{ts}This membership will be renewed automatically.{/ts}\n{if $cancelSubscriptionUrl}\n\n{ts 1=$cancelSubscriptionUrl}You can cancel the auto-renewal option by visiting this web page: %1.{/ts}\n\n{/if}\n\n{if $updateSubscriptionBillingUrl}\n\n{ts 1=$updateSubscriptionBillingUrl}You can update billing details for this automatically renewed membership by <a href=\"%1\">visiting this web page</a>.{/ts}\n{/if}\n{/if}\n\n{if $honor_block_is_active }\n===========================================================\n{$soft_credit_type}\n===========================================================\n{foreach from=$honoreeProfile item=value key=label}\n{$label}: {$value}\n{/foreach}\n\n{/if}\n{if $pcpBlock}\n===========================================================\n{ts}Personal Campaign Page{/ts}\n\n===========================================================\n{ts}Display In Honor Roll{/ts}: {if $pcp_display_in_roll}{ts}Yes{/ts}{else}{ts}No{/ts}{/if}\n\n{if $pcp_roll_nickname}{ts}Nickname{/ts}: {$pcp_roll_nickname}{/if}\n\n{if $pcp_personal_note}{ts}Personal Note{/ts}: {$pcp_personal_note}{/if}\n\n{/if}\n{if $onBehalfProfile}\n===========================================================\n{ts}On Behalf Of{/ts}\n\n===========================================================\n{foreach from=$onBehalfProfile item=onBehalfValue key=onBehalfName}\n{$onBehalfName}: {$onBehalfValue}\n{/foreach}\n{/if}\n\n{if $billingName}\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billingName}\n{$address}\n\n{$email}\n{elseif $email}\n===========================================================\n{ts}Registered Email{/ts}\n\n===========================================================\n{$email}\n{/if} {* End billingName or email *}\n{if $credit_card_type}\n\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n\n{if $selectPremium }\n===========================================================\n{ts}Premium Information{/ts}\n\n===========================================================\n{$product_name}\n{if $option}\n{ts}Option{/ts}: {$option}\n{/if}\n{if $sku}\n{ts}SKU{/ts}: {$sku}\n{/if}\n{if $start_date}\n{ts}Start Date{/ts}: {$start_date|crmDate}\n{/if}\n{if $end_date}\n{ts}End Date{/ts}: {$end_date|crmDate}\n{/if}\n{if $contact_email OR $contact_phone}\n\n{ts}For information about this premium, contact:{/ts}\n\n{if $contact_email}\n  {$contact_email}\n{/if}\n{if $contact_phone}\n  {$contact_phone}\n{/if}\n{/if}\n{if $is_deductible AND $price}\n\n{ts 1=$price|crmMoney}The value of this premium is %1. This may affect the amount of the tax deduction you can claim. Consult your tax advisor for more information.{/ts}{/if}\n{/if}\n\n{if $customPre}\n===========================================================\n{$customPre_grouptitle}\n\n===========================================================\n{foreach from=$customPre item=customValue key=customName}\n{if ( $trackingFields and ! in_array( $customName, $trackingFields ) ) or ! $trackingFields}\n {$customName}: {$customValue}\n{/if}\n{/foreach}\n{/if}\n\n\n{if $customPost}\n===========================================================\n{$customPost_grouptitle}\n\n===========================================================\n{foreach from=$customPost item=customValue key=customName}\n{if ( $trackingFields and ! in_array( $customName, $trackingFields ) ) or ! $trackingFields}\n {$customName}: {$customValue}\n{/if}\n{/foreach}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n     {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    {if $receipt_text}\n     <p>{$receipt_text|htmlize}</p>\n    {/if}\n\n    {if $is_pay_later}\n     <p>{$pay_later_receipt}</p> {* FIXME: this might be text rather than HTML *}\n    {/if}\n\n   </td>\n  </tr>\n  </table>\n  <table style=\"width:100%; max-width:500px; border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse;\">\n\n     {if $membership_assign && !$useForMember}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Membership Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td {$labelStyle}>\n        {ts}Membership Type{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$membership_name}\n       </td>\n      </tr>\n      {if $mem_start_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Membership Start Date{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$mem_start_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n      {if $mem_end_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Membership End Date{/ts}\n        </td>\n        <td {$valueStyle}>\n          {$mem_end_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n     {/if}\n\n\n     {if $amount}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Membership Fee{/ts}\n       </th>\n      </tr>\n\n      {if !$useForMember and $membership_amount and $is_quick_config}\n\n       <tr>\n        <td {$labelStyle}>\n         {ts 1=$membership_name}%1 Membership{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$membership_amount|crmMoney}\n        </td>\n       </tr>\n       {if $amount && !$is_separate_payment }\n         <tr>\n          <td {$labelStyle}>\n           {ts}Contribution Amount{/ts}\n          </td>\n          <td {$valueStyle}>\n           {$amount|crmMoney}\n          </td>\n         </tr>\n         <tr>\n           <td {$labelStyle}>\n           {ts}Total{/ts}\n            </td>\n            <td {$valueStyle}>\n            {$amount+$membership_amount|crmMoney}\n           </td>\n         </tr>\n       {/if}\n\n      {elseif !$useForMember && $lineItem and $priceSetID and !$is_quick_config}\n\n       {foreach from=$lineItem item=value key=priceset}\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          <table> {* FIXME: style this table so that it looks like the text version (justification, etc.) *}\n           <tr>\n            <th>{ts}Item{/ts}</th>\n            <th>{ts}Qty{/ts}</th>\n            <th>{ts}Each{/ts}</th>\n            <th>{ts}Total{/ts}</th>\n           </tr>\n           {foreach from=$value item=line}\n            <tr>\n             <td>\n              {$line.description|truncate:30:\"...\"}\n             </td>\n             <td>\n              {$line.qty}\n             </td>\n             <td>\n              {$line.unit_price|crmMoney}\n             </td>\n             <td>\n              {$line.line_total|crmMoney}\n             </td>\n            </tr>\n           {/foreach}\n          </table>\n         </td>\n        </tr>\n       {/foreach}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Total Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$amount|crmMoney}\n        </td>\n       </tr>\n\n      {else}\n       {if $useForMember && $lineItem and !$is_quick_config}\n       {foreach from=$lineItem item=value key=priceset}\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          <table> {* FIXME: style this table so that it looks like the text version (justification, etc.) *}\n           <tr>\n            <th>{ts}Item{/ts}</th>\n            <th>{ts}Fee{/ts}</th>\n            {if $dataArray}\n              <th>{ts}SubTotal{/ts}</th>\n              <th>{ts}Tax Rate{/ts}</th>\n              <th>{ts}Tax Amount{/ts}</th>\n              <th>{ts}Total{/ts}</th>\n            {/if}\n      <th>{ts}Membership Start Date{/ts}</th>\n      <th>{ts}Membership End Date{/ts}</th>\n           </tr>\n           {foreach from=$value item=line}\n            <tr>\n             <td>\n             {if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description}<div>{$line.description|truncate:30:\"...\"}</div>{/if}\n             </td>\n             <td>\n              {$line.line_total|crmMoney}\n             </td>\n             {if $dataArray}\n              <td>\n               {$line.unit_price*$line.qty|crmMoney}\n              </td>\n              {if $line.tax_rate != \"\" || $line.tax_amount != \"\"}\n               <td>\n                {$line.tax_rate|string_format:\"%.2f\"}%\n               </td>\n               <td>\n                {$line.tax_amount|crmMoney}\n               </td>\n              {else}\n               <td></td>\n               <td></td>\n              {/if}\n              <td>\n               {$line.line_total+$line.tax_amount|crmMoney}\n              </td>\n             {/if}\n             <td>\n              {$line.start_date}\n             </td>\n       <td>\n              {$line.end_date}\n             </td>\n            </tr>\n           {/foreach}\n          </table>\n         </td>\n        </tr>\n       {/foreach}\n       {if $dataArray}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Amount Before Tax:{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$amount-$totalTaxAmount|crmMoney}\n         </td>\n        </tr>\n        {foreach from=$dataArray item=value key=priceset}\n         <tr>\n         {if $priceset || $priceset == 0}\n           <td>&nbsp;{$taxTerm} {$priceset|string_format:\"%.2f\"}%</td>\n           <td>&nbsp;{$value|crmMoney:$currency}</td>\n         {else}\n           <td>&nbsp;{ts}NO{/ts} {$taxTerm}</td>\n           <td>&nbsp;{$value|crmMoney:$currency}</td>\n         {/if}\n         </tr>\n        {/foreach}\n       {/if}\n       {/if}\n       {if $totalTaxAmount}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Total Tax Amount{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$totalTaxAmount|crmMoney:$currency}\n         </td>\n        </tr>\n       {/if}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$amount|crmMoney} {if $amount_level} - {$amount_level}{/if}\n        </td>\n       </tr>\n\n      {/if}\n\n\n     {elseif $membership_amount}\n\n\n      <tr>\n       <th {$headerStyle}>\n        {ts}Membership Fee{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td {$labelStyle}>\n        {ts 1=$membership_name}%1 Membership{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$membership_amount|crmMoney}\n       </td>\n      </tr>\n\n\n     {/if}\n\n     {if $receive_date}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$receive_date|crmDate}\n       </td>\n      </tr>\n     {/if}\n\n     {if $is_monetary and $trxn_id}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Transaction #{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$trxn_id}\n       </td>\n      </tr>\n     {/if}\n\n     {if $membership_trx_id}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Membership Transaction #{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$membership_trx_id}\n       </td>\n      </tr>\n     {/if}\n     {if $is_recur}\n       <tr>\n        <td colspan=\"2\" {$labelStyle}>\n         {ts}This membership will be renewed automatically.{/ts}\n         {if $cancelSubscriptionUrl}\n           {ts 1=$cancelSubscriptionUrl}You can cancel the auto-renewal option by <a href=\"%1\">visiting this web page</a>.{/ts}\n         {/if}\n        </td>\n       </tr>\n       {if $updateSubscriptionBillingUrl}\n         <tr>\n          <td colspan=\"2\" {$labelStyle}>\n           {ts 1=$updateSubscriptionBillingUrl}You can update billing details for this automatically renewed membership by <a href=\"%1\">visiting this web page</a>.{/ts}\n          </td>\n         </tr>\n       {/if}\n     {/if}\n\n     {if $honor_block_is_active}\n      <tr>\n       <th {$headerStyle}>\n        {$soft_credit_type}\n       </th>\n      </tr>\n      {foreach from=$honoreeProfile item=value key=label}\n        <tr>\n         <td {$labelStyle}>\n          {$label}\n         </td>\n         <td {$valueStyle}>\n          {$value}\n         </td>\n        </tr>\n      {/foreach}\n     {/if}\n\n     {if $pcpBlock}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Personal Campaign Page{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td {$labelStyle}>\n        {ts}Display In Honor Roll{/ts}\n       </td>\n       <td {$valueStyle}>\n        {if $pcp_display_in_roll}{ts}Yes{/ts}{else}{ts}No{/ts}{/if}\n       </td>\n      </tr>\n      {if $pcp_roll_nickname}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Nickname{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$pcp_roll_nickname}\n        </td>\n       </tr>\n      {/if}\n      {if $pcp_personal_note}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Personal Note{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$pcp_personal_note}\n        </td>\n       </tr>\n      {/if}\n     {/if}\n\n     {if $onBehalfProfile}\n      <tr>\n       <th {$headerStyle}>\n        {$onBehalfProfile_grouptitle}\n       </th>\n      </tr>\n      {foreach from=$onBehalfProfile item=onBehalfValue key=onBehalfName}\n        <tr>\n         <td {$labelStyle}>\n          {$onBehalfName}\n         </td>\n         <td {$valueStyle}>\n          {$onBehalfValue}\n         </td>\n        </tr>\n      {/foreach}\n     {/if}\n\n     {if $billingName}\n       <tr>\n         <th {$headerStyle}>\n           {ts}Billing Name and Address{/ts}\n         </th>\n      </tr>\n      <tr>\n        <td colspan=\"2\" {$valueStyle}>\n          {$billingName}<br />\n          {$address|nl2br}<br />\n          {$email}\n        </td>\n      </tr>\n    {elseif $email}}\n      <tr>\n        <th {$headerStyle}>\n          {ts}Registered Email{/ts}\n        </th>\n      </tr>\n      <tr>\n        <td colspan=\"2\" {$valueStyle}>\n          {$email}\n        </td>\n      </tr>\n    {/if}\n\n     {if $credit_card_type}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Credit Card Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$credit_card_type}<br />\n        {$credit_card_number}<br />\n        {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}<br />\n       </td>\n      </tr>\n     {/if}\n\n     {if $selectPremium}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Premium Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n        {$product_name}\n       </td>\n      </tr>\n      {if $option}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Option{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$option}\n        </td>\n       </tr>\n      {/if}\n      {if $sku}\n       <tr>\n        <td {$labelStyle}>\n         {ts}SKU{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$sku}\n        </td>\n       </tr>\n      {/if}\n      {if $start_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Start Date{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$start_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n      {if $end_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}End Date{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$end_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n      {if $contact_email OR $contact_phone}\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         <p>{ts}For information about this premium, contact:{/ts}</p>\n         {if $contact_email}\n          <p>{$contact_email}</p>\n         {/if}\n         {if $contact_phone}\n          <p>{$contact_phone}</p>\n         {/if}\n        </td>\n       </tr>\n      {/if}\n      {if $is_deductible AND $price}\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          <p>{ts 1=$price|crmMoney}The value of this premium is %1. This may affect the amount of the tax deduction you can claim. Consult your tax advisor for more information.{/ts}</p>\n         </td>\n        </tr>\n      {/if}\n     {/if}\n\n     {if $customPre}\n      <tr>\n       <th {$headerStyle}>\n        {$customPre_grouptitle}\n       </th>\n      </tr>\n      {foreach from=$customPre item=customValue key=customName}\n       {if ($trackingFields and ! in_array($customName, $trackingFields)) or ! $trackingFields}\n        <tr>\n         <td {$labelStyle}>\n          {$customName}\n         </td>\n         <td {$valueStyle}>\n          {$customValue}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n     {if $customPost}\n      <tr>\n       <th {$headerStyle}>\n        {$customPost_grouptitle}\n       </th>\n      </tr>\n      {foreach from=$customPost item=customValue key=customName}\n       {if ($trackingFields and ! in_array($customName, $trackingFields)) or ! $trackingFields}\n        <tr>\n         <td {$labelStyle}>\n          {$customName}\n         </td>\n         <td {$valueStyle}>\n          {$customValue}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n  </table>\n</center>\n\n</body>\n</html>\n',1,842,1,0,0,NULL),(48,'Memberships - Receipt (on-line)','{if $is_pay_later}{ts}Invoice{/ts}{else}{ts}Receipt{/ts}{/if} - {$title} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n{if $receipt_text}\n{$receipt_text}\n{/if}\n{if $is_pay_later}\n\n===========================================================\n{$pay_later_receipt}\n===========================================================\n{/if}\n\n{if $membership_assign && !$useForMember}\n===========================================================\n{ts}Membership Information{/ts}\n\n===========================================================\n{ts}Membership Type{/ts}: {$membership_name}\n{if $mem_start_date}{ts}Membership Start Date{/ts}: {$mem_start_date|crmDate}\n{/if}\n{if $mem_end_date}{ts}Membership End Date{/ts}: {$mem_end_date|crmDate}\n{/if}\n\n{/if}\n{if $amount}\n===========================================================\n{ts}Membership Fee{/ts}\n\n===========================================================\n{if !$useForMember && $membership_amount && $is_quick_config}\n{ts 1=$membership_name}%1 Membership{/ts}: {$membership_amount|crmMoney}\n{if $amount && !$is_separate_payment }\n{ts}Contribution Amount{/ts}: {$amount|crmMoney}\n-------------------------------------------\n{ts}Total{/ts}: {$amount+$membership_amount|crmMoney}\n{/if}\n{elseif !$useForMember && $lineItem and $priceSetID & !$is_quick_config}\n{foreach from=$lineItem item=value key=priceset}\n---------------------------------------------------------\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_qty}{ts}Qty{/ts}{/capture}\n{capture assign=ts_each}{ts}Each{/ts}{/capture}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_qty|string_format:\"%5s\"} {$ts_each|string_format:\"%10s\"} {$ts_total|string_format:\"%10s\"}\n----------------------------------------------------------\n{foreach from=$value item=line}\n{$line.description|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.qty|string_format:\"%5s\"} {$line.unit_price|crmMoney|string_format:\"%10s\"} {$line.line_total|crmMoney|string_format:\"%10s\"}\n{/foreach}\n{/foreach}\n\n{ts}Total Amount{/ts}: {$amount|crmMoney}\n{else}\n{if $useForMember && $lineItem && !$is_quick_config}\n{foreach from=$lineItem item=value key=priceset}\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_total}{ts}Fee{/ts}{/capture}\n{if $dataArray}\n{capture assign=ts_subtotal}{ts}Subtotal{/ts}{/capture}\n{capture assign=ts_taxRate}{ts}Tax Rate{/ts}{/capture}\n{capture assign=ts_taxAmount}{ts}Tax Amount{/ts}{/capture}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{/if}\n{capture assign=ts_start_date}{ts}Membership Start Date{/ts}{/capture}\n{capture assign=ts_end_date}{ts}Membership End Date{/ts}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_total|string_format:\"%10s\"} {if $dataArray} {$ts_subtotal|string_format:\"%10s\"} {$ts_taxRate|string_format:\"%10s\"} {$ts_taxAmount|string_format:\"%10s\"} {$ts_total|string_format:\"%10s\"} {/if} {$ts_start_date|string_format:\"%20s\"} {$ts_end_date|string_format:\"%20s\"}\n--------------------------------------------------------------------------------------------------\n\n{foreach from=$value item=line}\n{capture assign=ts_item}{if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description} {$line.description}{/if}{/capture}{$ts_item|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.line_total|crmMoney|string_format:\"%10s\"}  {if $dataArray} {$line.unit_price*$line.qty|crmMoney:$currency|string_format:\"%10s\"} {if $line.tax_rate != \"\" || $line.tax_amount != \"\"}  {$line.tax_rate|string_format:\"%.2f\"} %  {$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"} {else}                  {/if}   {$line.line_total+$line.tax_amount|crmMoney|string_format:\"%10s\"} {/if} {$line.start_date|string_format:\"%20s\"} {$line.end_date|string_format:\"%20s\"}\n{/foreach}\n{/foreach}\n\n{if $dataArray}\n{ts}Amount before Tax{/ts}: {$amount-$totalTaxAmount|crmMoney:$currency}\n\n{foreach from=$dataArray item=value key=priceset}\n{if $priceset || $priceset == 0}\n{$taxTerm} {$priceset|string_format:\"%.2f\"}%: {$value|crmMoney:$currency}\n{else}\n{ts}No{/ts} {$taxTerm}: {$value|crmMoney:$currency}\n{/if}\n{/foreach}\n{/if}\n--------------------------------------------------------------------------------------------------\n{/if}\n\n{if $totalTaxAmount}\n{ts}Total Tax Amount{/ts}: {$totalTaxAmount|crmMoney:$currency}\n{/if}\n\n{ts}Amount{/ts}: {$amount|crmMoney} {if $amount_level } - {$amount_level} {/if}\n{/if}\n{elseif $membership_amount}\n===========================================================\n{ts}Membership Fee{/ts}\n\n===========================================================\n{ts 1=$membership_name}%1 Membership{/ts}: {$membership_amount|crmMoney}\n{/if}\n\n{if $receive_date}\n\n{ts}Date{/ts}: {$receive_date|crmDate}\n{/if}\n{if $is_monetary and $trxn_id}\n{ts}Transaction #{/ts}: {$trxn_id}\n\n{/if}\n{if $membership_trx_id}\n{ts}Membership Transaction #{/ts}: {$membership_trx_id}\n\n{/if}\n{if $is_recur}\n{ts}This membership will be renewed automatically.{/ts}\n{if $cancelSubscriptionUrl}\n\n{ts 1=$cancelSubscriptionUrl}You can cancel the auto-renewal option by visiting this web page: %1.{/ts}\n\n{/if}\n\n{if $updateSubscriptionBillingUrl}\n\n{ts 1=$updateSubscriptionBillingUrl}You can update billing details for this automatically renewed membership by <a href=\"%1\">visiting this web page</a>.{/ts}\n{/if}\n{/if}\n\n{if $honor_block_is_active }\n===========================================================\n{$soft_credit_type}\n===========================================================\n{foreach from=$honoreeProfile item=value key=label}\n{$label}: {$value}\n{/foreach}\n\n{/if}\n{if $pcpBlock}\n===========================================================\n{ts}Personal Campaign Page{/ts}\n\n===========================================================\n{ts}Display In Honor Roll{/ts}: {if $pcp_display_in_roll}{ts}Yes{/ts}{else}{ts}No{/ts}{/if}\n\n{if $pcp_roll_nickname}{ts}Nickname{/ts}: {$pcp_roll_nickname}{/if}\n\n{if $pcp_personal_note}{ts}Personal Note{/ts}: {$pcp_personal_note}{/if}\n\n{/if}\n{if $onBehalfProfile}\n===========================================================\n{ts}On Behalf Of{/ts}\n\n===========================================================\n{foreach from=$onBehalfProfile item=onBehalfValue key=onBehalfName}\n{$onBehalfName}: {$onBehalfValue}\n{/foreach}\n{/if}\n\n{if $billingName}\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billingName}\n{$address}\n\n{$email}\n{elseif $email}\n===========================================================\n{ts}Registered Email{/ts}\n\n===========================================================\n{$email}\n{/if} {* End billingName or email *}\n{if $credit_card_type}\n\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n\n{if $selectPremium }\n===========================================================\n{ts}Premium Information{/ts}\n\n===========================================================\n{$product_name}\n{if $option}\n{ts}Option{/ts}: {$option}\n{/if}\n{if $sku}\n{ts}SKU{/ts}: {$sku}\n{/if}\n{if $start_date}\n{ts}Start Date{/ts}: {$start_date|crmDate}\n{/if}\n{if $end_date}\n{ts}End Date{/ts}: {$end_date|crmDate}\n{/if}\n{if $contact_email OR $contact_phone}\n\n{ts}For information about this premium, contact:{/ts}\n\n{if $contact_email}\n  {$contact_email}\n{/if}\n{if $contact_phone}\n  {$contact_phone}\n{/if}\n{/if}\n{if $is_deductible AND $price}\n\n{ts 1=$price|crmMoney}The value of this premium is %1. This may affect the amount of the tax deduction you can claim. Consult your tax advisor for more information.{/ts}{/if}\n{/if}\n\n{if $customPre}\n===========================================================\n{$customPre_grouptitle}\n\n===========================================================\n{foreach from=$customPre item=customValue key=customName}\n{if ( $trackingFields and ! in_array( $customName, $trackingFields ) ) or ! $trackingFields}\n {$customName}: {$customValue}\n{/if}\n{/foreach}\n{/if}\n\n\n{if $customPost}\n===========================================================\n{$customPost_grouptitle}\n\n===========================================================\n{foreach from=$customPost item=customValue key=customName}\n{if ( $trackingFields and ! in_array( $customName, $trackingFields ) ) or ! $trackingFields}\n {$customName}: {$customValue}\n{/if}\n{/foreach}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n     {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    {if $receipt_text}\n     <p>{$receipt_text|htmlize}</p>\n    {/if}\n\n    {if $is_pay_later}\n     <p>{$pay_later_receipt}</p> {* FIXME: this might be text rather than HTML *}\n    {/if}\n\n   </td>\n  </tr>\n  </table>\n  <table style=\"width:100%; max-width:500px; border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse;\">\n\n     {if $membership_assign && !$useForMember}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Membership Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td {$labelStyle}>\n        {ts}Membership Type{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$membership_name}\n       </td>\n      </tr>\n      {if $mem_start_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Membership Start Date{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$mem_start_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n      {if $mem_end_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Membership End Date{/ts}\n        </td>\n        <td {$valueStyle}>\n          {$mem_end_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n     {/if}\n\n\n     {if $amount}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Membership Fee{/ts}\n       </th>\n      </tr>\n\n      {if !$useForMember and $membership_amount and $is_quick_config}\n\n       <tr>\n        <td {$labelStyle}>\n         {ts 1=$membership_name}%1 Membership{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$membership_amount|crmMoney}\n        </td>\n       </tr>\n       {if $amount && !$is_separate_payment }\n         <tr>\n          <td {$labelStyle}>\n           {ts}Contribution Amount{/ts}\n          </td>\n          <td {$valueStyle}>\n           {$amount|crmMoney}\n          </td>\n         </tr>\n         <tr>\n           <td {$labelStyle}>\n           {ts}Total{/ts}\n            </td>\n            <td {$valueStyle}>\n            {$amount+$membership_amount|crmMoney}\n           </td>\n         </tr>\n       {/if}\n\n      {elseif !$useForMember && $lineItem and $priceSetID and !$is_quick_config}\n\n       {foreach from=$lineItem item=value key=priceset}\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          <table> {* FIXME: style this table so that it looks like the text version (justification, etc.) *}\n           <tr>\n            <th>{ts}Item{/ts}</th>\n            <th>{ts}Qty{/ts}</th>\n            <th>{ts}Each{/ts}</th>\n            <th>{ts}Total{/ts}</th>\n           </tr>\n           {foreach from=$value item=line}\n            <tr>\n             <td>\n              {$line.description|truncate:30:\"...\"}\n             </td>\n             <td>\n              {$line.qty}\n             </td>\n             <td>\n              {$line.unit_price|crmMoney}\n             </td>\n             <td>\n              {$line.line_total|crmMoney}\n             </td>\n            </tr>\n           {/foreach}\n          </table>\n         </td>\n        </tr>\n       {/foreach}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Total Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$amount|crmMoney}\n        </td>\n       </tr>\n\n      {else}\n       {if $useForMember && $lineItem and !$is_quick_config}\n       {foreach from=$lineItem item=value key=priceset}\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          <table> {* FIXME: style this table so that it looks like the text version (justification, etc.) *}\n           <tr>\n            <th>{ts}Item{/ts}</th>\n            <th>{ts}Fee{/ts}</th>\n            {if $dataArray}\n              <th>{ts}SubTotal{/ts}</th>\n              <th>{ts}Tax Rate{/ts}</th>\n              <th>{ts}Tax Amount{/ts}</th>\n              <th>{ts}Total{/ts}</th>\n            {/if}\n      <th>{ts}Membership Start Date{/ts}</th>\n      <th>{ts}Membership End Date{/ts}</th>\n           </tr>\n           {foreach from=$value item=line}\n            <tr>\n             <td>\n             {if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description}<div>{$line.description|truncate:30:\"...\"}</div>{/if}\n             </td>\n             <td>\n              {$line.line_total|crmMoney}\n             </td>\n             {if $dataArray}\n              <td>\n               {$line.unit_price*$line.qty|crmMoney}\n              </td>\n              {if $line.tax_rate != \"\" || $line.tax_amount != \"\"}\n               <td>\n                {$line.tax_rate|string_format:\"%.2f\"}%\n               </td>\n               <td>\n                {$line.tax_amount|crmMoney}\n               </td>\n              {else}\n               <td></td>\n               <td></td>\n              {/if}\n              <td>\n               {$line.line_total+$line.tax_amount|crmMoney}\n              </td>\n             {/if}\n             <td>\n              {$line.start_date}\n             </td>\n       <td>\n              {$line.end_date}\n             </td>\n            </tr>\n           {/foreach}\n          </table>\n         </td>\n        </tr>\n       {/foreach}\n       {if $dataArray}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Amount Before Tax:{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$amount-$totalTaxAmount|crmMoney}\n         </td>\n        </tr>\n        {foreach from=$dataArray item=value key=priceset}\n         <tr>\n         {if $priceset || $priceset == 0}\n           <td>&nbsp;{$taxTerm} {$priceset|string_format:\"%.2f\"}%</td>\n           <td>&nbsp;{$value|crmMoney:$currency}</td>\n         {else}\n           <td>&nbsp;{ts}NO{/ts} {$taxTerm}</td>\n           <td>&nbsp;{$value|crmMoney:$currency}</td>\n         {/if}\n         </tr>\n        {/foreach}\n       {/if}\n       {/if}\n       {if $totalTaxAmount}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Total Tax Amount{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$totalTaxAmount|crmMoney:$currency}\n         </td>\n        </tr>\n       {/if}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$amount|crmMoney} {if $amount_level} - {$amount_level}{/if}\n        </td>\n       </tr>\n\n      {/if}\n\n\n     {elseif $membership_amount}\n\n\n      <tr>\n       <th {$headerStyle}>\n        {ts}Membership Fee{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td {$labelStyle}>\n        {ts 1=$membership_name}%1 Membership{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$membership_amount|crmMoney}\n       </td>\n      </tr>\n\n\n     {/if}\n\n     {if $receive_date}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$receive_date|crmDate}\n       </td>\n      </tr>\n     {/if}\n\n     {if $is_monetary and $trxn_id}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Transaction #{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$trxn_id}\n       </td>\n      </tr>\n     {/if}\n\n     {if $membership_trx_id}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Membership Transaction #{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$membership_trx_id}\n       </td>\n      </tr>\n     {/if}\n     {if $is_recur}\n       <tr>\n        <td colspan=\"2\" {$labelStyle}>\n         {ts}This membership will be renewed automatically.{/ts}\n         {if $cancelSubscriptionUrl}\n           {ts 1=$cancelSubscriptionUrl}You can cancel the auto-renewal option by <a href=\"%1\">visiting this web page</a>.{/ts}\n         {/if}\n        </td>\n       </tr>\n       {if $updateSubscriptionBillingUrl}\n         <tr>\n          <td colspan=\"2\" {$labelStyle}>\n           {ts 1=$updateSubscriptionBillingUrl}You can update billing details for this automatically renewed membership by <a href=\"%1\">visiting this web page</a>.{/ts}\n          </td>\n         </tr>\n       {/if}\n     {/if}\n\n     {if $honor_block_is_active}\n      <tr>\n       <th {$headerStyle}>\n        {$soft_credit_type}\n       </th>\n      </tr>\n      {foreach from=$honoreeProfile item=value key=label}\n        <tr>\n         <td {$labelStyle}>\n          {$label}\n         </td>\n         <td {$valueStyle}>\n          {$value}\n         </td>\n        </tr>\n      {/foreach}\n     {/if}\n\n     {if $pcpBlock}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Personal Campaign Page{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td {$labelStyle}>\n        {ts}Display In Honor Roll{/ts}\n       </td>\n       <td {$valueStyle}>\n        {if $pcp_display_in_roll}{ts}Yes{/ts}{else}{ts}No{/ts}{/if}\n       </td>\n      </tr>\n      {if $pcp_roll_nickname}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Nickname{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$pcp_roll_nickname}\n        </td>\n       </tr>\n      {/if}\n      {if $pcp_personal_note}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Personal Note{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$pcp_personal_note}\n        </td>\n       </tr>\n      {/if}\n     {/if}\n\n     {if $onBehalfProfile}\n      <tr>\n       <th {$headerStyle}>\n        {$onBehalfProfile_grouptitle}\n       </th>\n      </tr>\n      {foreach from=$onBehalfProfile item=onBehalfValue key=onBehalfName}\n        <tr>\n         <td {$labelStyle}>\n          {$onBehalfName}\n         </td>\n         <td {$valueStyle}>\n          {$onBehalfValue}\n         </td>\n        </tr>\n      {/foreach}\n     {/if}\n\n     {if $billingName}\n       <tr>\n         <th {$headerStyle}>\n           {ts}Billing Name and Address{/ts}\n         </th>\n      </tr>\n      <tr>\n        <td colspan=\"2\" {$valueStyle}>\n          {$billingName}<br />\n          {$address|nl2br}<br />\n          {$email}\n        </td>\n      </tr>\n    {elseif $email}}\n      <tr>\n        <th {$headerStyle}>\n          {ts}Registered Email{/ts}\n        </th>\n      </tr>\n      <tr>\n        <td colspan=\"2\" {$valueStyle}>\n          {$email}\n        </td>\n      </tr>\n    {/if}\n\n     {if $credit_card_type}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Credit Card Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$credit_card_type}<br />\n        {$credit_card_number}<br />\n        {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}<br />\n       </td>\n      </tr>\n     {/if}\n\n     {if $selectPremium}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Premium Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n        {$product_name}\n       </td>\n      </tr>\n      {if $option}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Option{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$option}\n        </td>\n       </tr>\n      {/if}\n      {if $sku}\n       <tr>\n        <td {$labelStyle}>\n         {ts}SKU{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$sku}\n        </td>\n       </tr>\n      {/if}\n      {if $start_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Start Date{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$start_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n      {if $end_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}End Date{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$end_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n      {if $contact_email OR $contact_phone}\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         <p>{ts}For information about this premium, contact:{/ts}</p>\n         {if $contact_email}\n          <p>{$contact_email}</p>\n         {/if}\n         {if $contact_phone}\n          <p>{$contact_phone}</p>\n         {/if}\n        </td>\n       </tr>\n      {/if}\n      {if $is_deductible AND $price}\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          <p>{ts 1=$price|crmMoney}The value of this premium is %1. This may affect the amount of the tax deduction you can claim. Consult your tax advisor for more information.{/ts}</p>\n         </td>\n        </tr>\n      {/if}\n     {/if}\n\n     {if $customPre}\n      <tr>\n       <th {$headerStyle}>\n        {$customPre_grouptitle}\n       </th>\n      </tr>\n      {foreach from=$customPre item=customValue key=customName}\n       {if ($trackingFields and ! in_array($customName, $trackingFields)) or ! $trackingFields}\n        <tr>\n         <td {$labelStyle}>\n          {$customName}\n         </td>\n         <td {$valueStyle}>\n          {$customValue}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n     {if $customPost}\n      <tr>\n       <th {$headerStyle}>\n        {$customPost_grouptitle}\n       </th>\n      </tr>\n      {foreach from=$customPost item=customValue key=customName}\n       {if ($trackingFields and ! in_array($customName, $trackingFields)) or ! $trackingFields}\n        <tr>\n         <td {$labelStyle}>\n          {$customName}\n         </td>\n         <td {$valueStyle}>\n          {$customValue}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n  </table>\n</center>\n\n</body>\n</html>\n',1,842,0,1,0,NULL),(49,'Memberships - Auto-renew Cancellation Notification','{ts}Autorenew Membership Cancellation Notification{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$membershipType}The automatic renewal of your %1 membership has been cancelled as requested. This does not affect the status of your membership - you will receive a separate notification when your membership is up for renewal.{/ts}\n\n===========================================================\n{ts}Membership Information{/ts}\n\n===========================================================\n{ts}Membership Status{/ts}: {$membership_status}\n{if $mem_start_date}{ts}Membership Start Date{/ts}: {$mem_start_date|crmDate}\n{/if}\n{if $mem_end_date}{ts}Membership End Date{/ts}: {$mem_end_date|crmDate}\n{/if}\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts 1=$membershipType}The automatic renewal of your %1 membership has been cancelled as requested. This does not affect the status of your membership - you will receive a separate notification when your membership is up for renewal.{/ts}</p>\n\n   </td>\n  </tr>\n </table>\n <table style=\"width:100%; max-width:500px; border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse;\">\n\n      <tr>\n       <th {$headerStyle}>\n        {ts}Membership Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td {$labelStyle}>\n        {ts}Membership Status{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$membership_status}\n       </td>\n      </tr>\n      {if $mem_start_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Membership Start Date{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$mem_start_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n      {if $mem_end_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Membership End Date{/ts}\n        </td>\n        <td {$valueStyle}>\n          {$mem_end_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n\n </table>\n</center>\n\n</body>\n</html>\n',1,843,1,0,0,NULL),(50,'Memberships - Auto-renew Cancellation Notification','{ts}Autorenew Membership Cancellation Notification{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$membershipType}The automatic renewal of your %1 membership has been cancelled as requested. This does not affect the status of your membership - you will receive a separate notification when your membership is up for renewal.{/ts}\n\n===========================================================\n{ts}Membership Information{/ts}\n\n===========================================================\n{ts}Membership Status{/ts}: {$membership_status}\n{if $mem_start_date}{ts}Membership Start Date{/ts}: {$mem_start_date|crmDate}\n{/if}\n{if $mem_end_date}{ts}Membership End Date{/ts}: {$mem_end_date|crmDate}\n{/if}\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts 1=$membershipType}The automatic renewal of your %1 membership has been cancelled as requested. This does not affect the status of your membership - you will receive a separate notification when your membership is up for renewal.{/ts}</p>\n\n   </td>\n  </tr>\n </table>\n <table style=\"width:100%; max-width:500px; border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse;\">\n\n      <tr>\n       <th {$headerStyle}>\n        {ts}Membership Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td {$labelStyle}>\n        {ts}Membership Status{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$membership_status}\n       </td>\n      </tr>\n      {if $mem_start_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Membership Start Date{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$mem_start_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n      {if $mem_end_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Membership End Date{/ts}\n        </td>\n        <td {$valueStyle}>\n          {$mem_end_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n\n </table>\n</center>\n\n</body>\n</html>\n',1,843,0,1,0,NULL),(51,'Memberships - Auto-renew Billing Updates','{ts}Membership Autorenewal Billing Updates{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$membershipType}Billing details for your automatically renewed %1 membership have been updated.{/ts}\n\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billingName}\n{$address}\n\n{$email}\n\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n\n\n{ts 1=$receipt_from_email}If you have questions please contact us at %1{/ts}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts 1=$membershipType}Billing details for your automatically renewed %1 membership have been updated.{/ts}</p>\n   </td>\n  </tr>\n  <tr>\n </table>\n\n  <table style=\"width:100%; max-width:500px; border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse;\">\n   <tr>\n        <th {$headerStyle}>\n         {ts}Billing Name and Address{/ts}\n        </th>\n       </tr>\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         {$billingName}<br />\n         {$address|nl2br}<br />\n         {$email}\n        </td>\n       </tr>\n        <tr>\n       <th {$headerStyle}>\n        {ts}Credit Card Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$credit_card_type}<br />\n        {$credit_card_number}<br />\n        {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}<br />\n       </td>\n      </tr>\n      <tr>\n        <td {$labelStyle}>\n         {ts 1=$receipt_from_email}If you have questions please contact us at %1{/ts}\n        </td>\n      </tr>\n\n  </table>\n</center>\n\n</body>\n</html>\n',1,844,1,0,0,NULL),(52,'Memberships - Auto-renew Billing Updates','{ts}Membership Autorenewal Billing Updates{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$membershipType}Billing details for your automatically renewed %1 membership have been updated.{/ts}\n\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billingName}\n{$address}\n\n{$email}\n\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n\n\n{ts 1=$receipt_from_email}If you have questions please contact us at %1{/ts}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts 1=$membershipType}Billing details for your automatically renewed %1 membership have been updated.{/ts}</p>\n   </td>\n  </tr>\n  <tr>\n </table>\n\n  <table style=\"width:100%; max-width:500px; border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse;\">\n   <tr>\n        <th {$headerStyle}>\n         {ts}Billing Name and Address{/ts}\n        </th>\n       </tr>\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         {$billingName}<br />\n         {$address|nl2br}<br />\n         {$email}\n        </td>\n       </tr>\n        <tr>\n       <th {$headerStyle}>\n        {ts}Credit Card Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$credit_card_type}<br />\n        {$credit_card_number}<br />\n        {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}<br />\n       </td>\n      </tr>\n      <tr>\n        <td {$labelStyle}>\n         {ts 1=$receipt_from_email}If you have questions please contact us at %1{/ts}\n        </td>\n      </tr>\n\n  </table>\n</center>\n\n</body>\n</html>\n',1,844,0,1,0,NULL),(53,'Test-drive - Receipt Header','[TEST]\n','***********************************************************\n\n{ts}Test-drive Email / Receipt{/ts}\n\n{ts}This is a test-drive email. No live financial transaction has occurred.{/ts}\n\n***********************************************************\n','<center>\n <table id=\"crm-event_receipt_test\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n  <tr>\n   <td>\n    <p>{ts}Test-drive Email / Receipt{/ts}</p>\n    <p>{ts}This is a test-drive email. No live financial transaction has occurred.{/ts}</p>\n   </td>\n  </tr>\n </table>\n</center>\n',1,845,1,0,0,NULL),(54,'Test-drive - Receipt Header','[TEST]\n','***********************************************************\n\n{ts}Test-drive Email / Receipt{/ts}\n\n{ts}This is a test-drive email. No live financial transaction has occurred.{/ts}\n\n***********************************************************\n','<center>\n <table id=\"crm-event_receipt_test\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n  <tr>\n   <td>\n    <p>{ts}Test-drive Email / Receipt{/ts}</p>\n    <p>{ts}This is a test-drive email. No live financial transaction has occurred.{/ts}</p>\n   </td>\n  </tr>\n </table>\n</center>\n',1,845,0,1,0,NULL),(55,'Pledges - Acknowledgement','{ts}Thank you for your Pledge{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n\n{ts}Thank you for your generous pledge.{/ts}\n\n===========================================================\n{ts}Pledge Information{/ts}\n\n===========================================================\n{ts}Pledge Received{/ts}: {$create_date|truncate:10:\'\'|crmDate}\n{ts}Total Pledge Amount{/ts}: {$total_pledge_amount|crmMoney:$currency}\n\n===========================================================\n{ts}Payment Schedule{/ts}\n\n===========================================================\n{ts 1=$scheduled_amount|crmMoney:$currency 2=$frequency_interval 3=$frequency_unit 4=$installments}%1 every %2 %3 for %4 installments.{/ts}\n\n{if $frequency_day}\n\n{ts 1=$frequency_day 2=$frequency_unit}Payments are due on day %1 of the %2.{/ts}\n{/if}\n\n{if $payments}\n{assign var=\"count\" value=\"1\"}\n{foreach from=$payments item=payment}\n\n{ts 1=$count}Payment %1{/ts}: {$payment.amount|crmMoney:$currency} {if $payment.status eq 1}{ts}paid{/ts} {$payment.receive_date|truncate:10:\'\'|crmDate}{else}{ts}due{/ts} {$payment.due_date|truncate:10:\'\'|crmDate}{/if}\n{assign var=\"count\" value=`$count+1`}\n{/foreach}\n{/if}\n\n\n{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions\nor need to modify your payment schedule.{/ts}\n\n{if $customGroup}\n{foreach from=$customGroup item=value key=customName}\n===========================================================\n{$customName}\n===========================================================\n{foreach from=$value item=v key=n}\n{$n}: {$v}\n{/foreach}\n{/foreach}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts}Thank you for your generous pledge.{/ts}</p>\n   </td>\n  </tr>\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Pledge Information{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Pledge Received{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$create_date|truncate:10:\'\'|crmDate}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Total Pledge Amount{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$total_pledge_amount|crmMoney:$currency}\n      </td>\n     </tr>\n     <tr>\n      <th {$headerStyle}>\n       {ts}Payment Schedule{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td colspan=\"2\" {$valueStyle}>\n       <p>{ts 1=$scheduled_amount|crmMoney:$currency 2=$frequency_interval 3=$frequency_unit 4=$installments}%1 every %2 %3 for %4 installments.{/ts}</p>\n\n       {if $frequency_day}\n        <p>{ts 1=$frequency_day 2=$frequency_unit}Payments are due on day %1 of the %2.{/ts}</p>\n       {/if}\n      </td>\n     </tr>\n\n     {if $payments}\n      {assign var=\"count\" value=\"1\"}\n      {foreach from=$payments item=payment}\n       <tr>\n        <td {$labelStyle}>\n         {ts 1=$count}Payment %1{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$payment.amount|crmMoney:$currency} {if $payment.status eq 1}{ts}paid{/ts} {$payment.receive_date|truncate:10:\'\'|crmDate}{else}{ts}due{/ts} {$payment.due_date|truncate:10:\'\'|crmDate}{/if}\n        </td>\n       </tr>\n       {assign var=\"count\" value=`$count+1`}\n      {/foreach}\n     {/if}\n\n     <tr>\n      <td colspan=\"2\" {$valueStyle}>\n       <p>{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions\nor need to modify your payment schedule.{/ts}</p>\n      </td>\n     </tr>\n\n     {if $customGroup}\n      {foreach from=$customGroup item=value key=customName}\n       <tr>\n        <th {$headerStyle}>\n         {$customName}\n        </th>\n       </tr>\n       {foreach from=$value item=v key=n}\n        <tr>\n         <td {$labelStyle}>\n          {$n}\n         </td>\n         <td {$valueStyle}>\n          {$v}\n         </td>\n        </tr>\n       {/foreach}\n      {/foreach}\n     {/if}\n\n    </table>\n   </td>\n  </tr>\n\n </table>\n</center>\n\n</body>\n</html>\n',1,846,1,0,0,NULL),(56,'Pledges - Acknowledgement','{ts}Thank you for your Pledge{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n\n{ts}Thank you for your generous pledge.{/ts}\n\n===========================================================\n{ts}Pledge Information{/ts}\n\n===========================================================\n{ts}Pledge Received{/ts}: {$create_date|truncate:10:\'\'|crmDate}\n{ts}Total Pledge Amount{/ts}: {$total_pledge_amount|crmMoney:$currency}\n\n===========================================================\n{ts}Payment Schedule{/ts}\n\n===========================================================\n{ts 1=$scheduled_amount|crmMoney:$currency 2=$frequency_interval 3=$frequency_unit 4=$installments}%1 every %2 %3 for %4 installments.{/ts}\n\n{if $frequency_day}\n\n{ts 1=$frequency_day 2=$frequency_unit}Payments are due on day %1 of the %2.{/ts}\n{/if}\n\n{if $payments}\n{assign var=\"count\" value=\"1\"}\n{foreach from=$payments item=payment}\n\n{ts 1=$count}Payment %1{/ts}: {$payment.amount|crmMoney:$currency} {if $payment.status eq 1}{ts}paid{/ts} {$payment.receive_date|truncate:10:\'\'|crmDate}{else}{ts}due{/ts} {$payment.due_date|truncate:10:\'\'|crmDate}{/if}\n{assign var=\"count\" value=`$count+1`}\n{/foreach}\n{/if}\n\n\n{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions\nor need to modify your payment schedule.{/ts}\n\n{if $customGroup}\n{foreach from=$customGroup item=value key=customName}\n===========================================================\n{$customName}\n===========================================================\n{foreach from=$value item=v key=n}\n{$n}: {$v}\n{/foreach}\n{/foreach}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts}Thank you for your generous pledge.{/ts}</p>\n   </td>\n  </tr>\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Pledge Information{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Pledge Received{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$create_date|truncate:10:\'\'|crmDate}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Total Pledge Amount{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$total_pledge_amount|crmMoney:$currency}\n      </td>\n     </tr>\n     <tr>\n      <th {$headerStyle}>\n       {ts}Payment Schedule{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td colspan=\"2\" {$valueStyle}>\n       <p>{ts 1=$scheduled_amount|crmMoney:$currency 2=$frequency_interval 3=$frequency_unit 4=$installments}%1 every %2 %3 for %4 installments.{/ts}</p>\n\n       {if $frequency_day}\n        <p>{ts 1=$frequency_day 2=$frequency_unit}Payments are due on day %1 of the %2.{/ts}</p>\n       {/if}\n      </td>\n     </tr>\n\n     {if $payments}\n      {assign var=\"count\" value=\"1\"}\n      {foreach from=$payments item=payment}\n       <tr>\n        <td {$labelStyle}>\n         {ts 1=$count}Payment %1{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$payment.amount|crmMoney:$currency} {if $payment.status eq 1}{ts}paid{/ts} {$payment.receive_date|truncate:10:\'\'|crmDate}{else}{ts}due{/ts} {$payment.due_date|truncate:10:\'\'|crmDate}{/if}\n        </td>\n       </tr>\n       {assign var=\"count\" value=`$count+1`}\n      {/foreach}\n     {/if}\n\n     <tr>\n      <td colspan=\"2\" {$valueStyle}>\n       <p>{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions\nor need to modify your payment schedule.{/ts}</p>\n      </td>\n     </tr>\n\n     {if $customGroup}\n      {foreach from=$customGroup item=value key=customName}\n       <tr>\n        <th {$headerStyle}>\n         {$customName}\n        </th>\n       </tr>\n       {foreach from=$value item=v key=n}\n        <tr>\n         <td {$labelStyle}>\n          {$n}\n         </td>\n         <td {$valueStyle}>\n          {$v}\n         </td>\n        </tr>\n       {/foreach}\n      {/foreach}\n     {/if}\n\n    </table>\n   </td>\n  </tr>\n\n </table>\n</center>\n\n</body>\n</html>\n',1,846,0,1,0,NULL),(57,'Pledges - Payment Reminder','{ts}Pledge Payment Reminder{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$next_payment|truncate:10:\'\'|crmDate}This is a reminder that the next payment on your pledge is due on %1.{/ts}\n\n===========================================================\n{ts}Payment Due{/ts}\n\n===========================================================\n{ts}Amount Due{/ts}: {$amount_due|crmMoney:$currency}\n{ts}Due Date{/ts}: {$scheduled_payment_date|truncate:10:\'\'|crmDate}\n\n{if $contribution_page_id}\n{capture assign=contributionUrl}{crmURL p=\'civicrm/contribute/transact\' q=\"reset=1&id=`$contribution_page_id`&cid=`$contact.contact_id`&pledgeId=`$pledge_id`&cs=`$checksumValue`\" a=true h=0}{/capture}\nClick this link to go to a web page where you can make your payment online:\n{$contributionUrl}\n{else}\n{ts}Please mail your payment to{/ts}:\n{$domain.address}\n{/if}\n\n===========================================================\n{ts}Pledge Information{/ts}\n\n===========================================================\n{ts}Pledge Received{/ts}: {$create_date|truncate:10:\'\'|crmDate}\n{ts}Total Pledge Amount{/ts}: {$amount|crmMoney:$currency}\n{ts}Total Paid{/ts}: {$amount_paid|crmMoney:$currency}\n\n{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions\nor need to modify your payment schedule.{/ts}\n\n\n{ts}Thank your for your generous support.{/ts}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts 1=$next_payment|truncate:10:\'\'|crmDate}This is a reminder that the next payment on your pledge is due on %1.{/ts}</p>\n   </td>\n  </tr>\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Payment Due{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Amount Due{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$amount_due|crmMoney:$currency}\n      </td>\n     </tr>\n    </table>\n   </td>\n  </tr>\n\n  <tr>\n   <td>\n    {if $contribution_page_id}\n     {capture assign=contributionUrl}{crmURL p=\'civicrm/contribute/transact\' q=\"reset=1&id=`$contribution_page_id`&cid=`$contact.contact_id`&pledgeId=`$pledge_id`&cs=`$checksumValue`\" a=true h=0}{/capture}\n     <p><a href=\"{$contributionUrl}\">{ts}Go to a web page where you can make your payment online{/ts}</a></p>\n    {else}\n     <p>{ts}Please mail your payment to{/ts}: {$domain.address}</p>\n    {/if}\n   </td>\n  </tr>\n\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Pledge Information{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Pledge Received{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$create_date|truncate:10:\'\'|crmDate}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Total Pledge Amount{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$amount|crmMoney:$currency}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Total Paid{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$amount_paid|crmMoney:$currency}\n      </td>\n     </tr>\n    </table>\n   </td>\n  </tr>\n\n  <tr>\n   <td>\n    <p>{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions\nor need to modify your payment schedule.{/ts}</p>\n    <p>{ts}Thank your for your generous support.{/ts}</p>\n   </td>\n  </tr>\n\n </table>\n</center>\n\n</body>\n</html>\n',1,847,1,0,0,NULL),(58,'Pledges - Payment Reminder','{ts}Pledge Payment Reminder{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$next_payment|truncate:10:\'\'|crmDate}This is a reminder that the next payment on your pledge is due on %1.{/ts}\n\n===========================================================\n{ts}Payment Due{/ts}\n\n===========================================================\n{ts}Amount Due{/ts}: {$amount_due|crmMoney:$currency}\n{ts}Due Date{/ts}: {$scheduled_payment_date|truncate:10:\'\'|crmDate}\n\n{if $contribution_page_id}\n{capture assign=contributionUrl}{crmURL p=\'civicrm/contribute/transact\' q=\"reset=1&id=`$contribution_page_id`&cid=`$contact.contact_id`&pledgeId=`$pledge_id`&cs=`$checksumValue`\" a=true h=0}{/capture}\nClick this link to go to a web page where you can make your payment online:\n{$contributionUrl}\n{else}\n{ts}Please mail your payment to{/ts}:\n{$domain.address}\n{/if}\n\n===========================================================\n{ts}Pledge Information{/ts}\n\n===========================================================\n{ts}Pledge Received{/ts}: {$create_date|truncate:10:\'\'|crmDate}\n{ts}Total Pledge Amount{/ts}: {$amount|crmMoney:$currency}\n{ts}Total Paid{/ts}: {$amount_paid|crmMoney:$currency}\n\n{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions\nor need to modify your payment schedule.{/ts}\n\n\n{ts}Thank your for your generous support.{/ts}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts 1=$next_payment|truncate:10:\'\'|crmDate}This is a reminder that the next payment on your pledge is due on %1.{/ts}</p>\n   </td>\n  </tr>\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Payment Due{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Amount Due{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$amount_due|crmMoney:$currency}\n      </td>\n     </tr>\n    </table>\n   </td>\n  </tr>\n\n  <tr>\n   <td>\n    {if $contribution_page_id}\n     {capture assign=contributionUrl}{crmURL p=\'civicrm/contribute/transact\' q=\"reset=1&id=`$contribution_page_id`&cid=`$contact.contact_id`&pledgeId=`$pledge_id`&cs=`$checksumValue`\" a=true h=0}{/capture}\n     <p><a href=\"{$contributionUrl}\">{ts}Go to a web page where you can make your payment online{/ts}</a></p>\n    {else}\n     <p>{ts}Please mail your payment to{/ts}: {$domain.address}</p>\n    {/if}\n   </td>\n  </tr>\n\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Pledge Information{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Pledge Received{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$create_date|truncate:10:\'\'|crmDate}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Total Pledge Amount{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$amount|crmMoney:$currency}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Total Paid{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$amount_paid|crmMoney:$currency}\n      </td>\n     </tr>\n    </table>\n   </td>\n  </tr>\n\n  <tr>\n   <td>\n    <p>{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions\nor need to modify your payment schedule.{/ts}</p>\n    <p>{ts}Thank your for your generous support.{/ts}</p>\n   </td>\n  </tr>\n\n </table>\n</center>\n\n</body>\n</html>\n',1,847,0,1,0,NULL),(59,'Profiles - Admin Notification','{$grouptitle} {ts 1=$displayName}Submitted by %1{/ts} - {contact.display_name}\n','{ts}Submitted For:{/ts} {$displayName}\n{ts}Date:{/ts} {$currentDate}\n{ts}Contact Summary:{/ts} {$contactLink}\n\n===========================================================\n{$grouptitle}\n\n===========================================================\n{foreach from=$values item=value key=valueName}\n{$valueName}: {$value}\n{/foreach}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <td {$labelStyle}>\n       {ts}Submitted For{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$displayName}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Date{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$currentDate}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Contact Summary{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$contactLink}\n      </td>\n     </tr>\n\n     <tr>\n      <th {$headerStyle}>\n       {$grouptitle}\n      </th>\n     </tr>\n\n     {foreach from=$values item=value key=valueName}\n      <tr>\n       <td {$labelStyle}>\n        {$valueName}\n       </td>\n       <td {$valueStyle}>\n        {$value}\n       </td>\n      </tr>\n     {/foreach}\n    </table>\n   </td>\n  </tr>\n\n </table>\n</center>\n\n</body>\n</html>\n',1,848,1,0,0,NULL),(60,'Profiles - Admin Notification','{$grouptitle} {ts 1=$displayName}Submitted by %1{/ts} - {contact.display_name}\n','{ts}Submitted For:{/ts} {$displayName}\n{ts}Date:{/ts} {$currentDate}\n{ts}Contact Summary:{/ts} {$contactLink}\n\n===========================================================\n{$grouptitle}\n\n===========================================================\n{foreach from=$values item=value key=valueName}\n{$valueName}: {$value}\n{/foreach}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <td {$labelStyle}>\n       {ts}Submitted For{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$displayName}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Date{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$currentDate}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Contact Summary{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$contactLink}\n      </td>\n     </tr>\n\n     <tr>\n      <th {$headerStyle}>\n       {$grouptitle}\n      </th>\n     </tr>\n\n     {foreach from=$values item=value key=valueName}\n      <tr>\n       <td {$labelStyle}>\n        {$valueName}\n       </td>\n       <td {$valueStyle}>\n        {$value}\n       </td>\n      </tr>\n     {/foreach}\n    </table>\n   </td>\n  </tr>\n\n </table>\n</center>\n\n</body>\n</html>\n',1,848,0,1,0,NULL),(61,'Petition - signature added','Thank you for signing {$petition.title} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\nThank you for signing {$petition.title}.\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n\n<p>Thank you for signing {$petition.title}.</p>\n\n{include file=\"CRM/Campaign/Page/Petition/SocialNetwork.tpl\" petition_id=$survey_id noscript=true emailMode=true}\n',1,849,1,0,0,NULL),(62,'Petition - signature added','Thank you for signing {$petition.title} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\nThank you for signing {$petition.title}.\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n\n<p>Thank you for signing {$petition.title}.</p>\n\n{include file=\"CRM/Campaign/Page/Petition/SocialNetwork.tpl\" petition_id=$survey_id noscript=true emailMode=true}\n',1,849,0,1,0,NULL),(63,'Petition - need verification','Confirmation of signature needed for {$petition.title} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\nThank you for signing {$petition.title}.\n\nIn order to complete your signature, we must confirm your e-mail.\nPlease do so by visiting the following email confirmation web page:\n\n{$petition.confirmUrlPlainText}\n\nIf you did not sign this petition, please ignore this message.\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n\n<p>Thank you for signing {$petition.title}.</p>\n\n<p>In order to <b>complete your signature</b>, we must confirm your e-mail.\n<br />\nPlease do so by visiting the following web page by clicking\non the link below or pasting the link into your browser.\n<br /><br />\nEmail confirmation page: <a href=\"{$petition.confirmUrl} \">{$petition.confirmUrl}</a></p>\n\n<p>If you did not sign this petition, please ignore this message.</p>\n',1,850,1,0,0,NULL),(64,'Petition - need verification','Confirmation of signature needed for {$petition.title} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\nThank you for signing {$petition.title}.\n\nIn order to complete your signature, we must confirm your e-mail.\nPlease do so by visiting the following email confirmation web page:\n\n{$petition.confirmUrlPlainText}\n\nIf you did not sign this petition, please ignore this message.\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n\n<p>Thank you for signing {$petition.title}.</p>\n\n<p>In order to <b>complete your signature</b>, we must confirm your e-mail.\n<br />\nPlease do so by visiting the following web page by clicking\non the link below or pasting the link into your browser.\n<br /><br />\nEmail confirmation page: <a href=\"{$petition.confirmUrl} \">{$petition.confirmUrl}</a></p>\n\n<p>If you did not sign this petition, please ignore this message.</p>\n',1,850,0,1,0,NULL),(65,'Sample CiviMail Newsletter Template','Sample CiviMail Newsletter','','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n<table width=612 cellpadding=0 cellspacing=0 bgcolor=\"#ffffff\">\n  <tr>\n    <td colspan=\"2\" bgcolor=\"#ffffff\" valign=\"middle\" >\n      <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" >\n        <tr>\n          <td>\n          <a href=\"https://civicrm.org\"><img src=\"https://civicrm.org/sites/civicrm.org/files/top-logo_2.png\" border=0 alt=\"Replace this logo with the URL to your own\"></a>\n          </td>\n          <td>&nbsp; &nbsp;</td>\n          <td>\n          <a href=\"https://civicrm.org\" style=\"text-decoration: none;\"><font size=5 face=\"Arial, Verdana, sans-serif\" color=\"#8bc539\">Your Newsletter Title</font></a>\n          </td>\n        </tr>\n      </table>\n    </td>\n  </tr>\n  <tr>\n    <td valign=\"top\" width=\"70%\">\n      <!-- left column -->\n      <table cellpadding=\"10\" cellspacing=\"0\" border=\"0\">\n      <tr>\n        <td style=\"font-family: Arial, Verdana, sans-serif; font-size: 12px;\" >\n        <font face=\"Arial, Verdana, sans-serif\" size=\"2\" >\n        Greetings {contact.display_name},\n        <br /><br />\n        This is a sample template designed to help you get started creating and sending your own CiviMail messages. This template uses an HTML layout that is generally compatible with the wide variety of email clients that your recipients might be using (e.g. Gmail, Outlook, Yahoo, etc.).\n        <br /><br />You can select this \"Sample CiviMail Newsletter Template\" from the \"Use Template\" drop-down in Step 3 of creating a mailing, and customize it to your needs. Then check the \"Save as New Template\" box on the bottom the page to save your customized version for use in future mailings.\n        <br /><br />The logo you use must be uploaded to your server.  Copy and paste the URL path to the logo into the &lt;img src= tag in the HTML at the top.  Click \"Source\" or the Image button if you are using the text editor.\n        <br /><br />\n        Edit the color of the links and headers using the color button or by editing the HTML.\n        <br /><br />\n        Your newsletter message and donation appeal can go here.  Click the link button to <a href=\"#\">create links</a> - remember to use a fully qualified URL starting with http:// in all your links!\n        <br /><br />\n        To use CiviMail:\n        <ul>\n          <li><a href=\"http://book.civicrm.org/user/advanced-configuration/email-system-configuration/\">Configure your Email System</a>.</li>\n          <li>Make sure your web hosting provider allows outgoing bulk mail, and see if they have a restriction on quantity.  If they don\'t allow bulk mail, consider <a href=\"https://civicrm.org/providers/hosting\">finding a new host</a>.</li>\n        </ul>\n        Sincerely,\n        <br /><br />\n        Your Team\n        <br /><br />\n        </font>\n        </td>\n      </tr>\n      </table>\n    </td>\n\n    <td valign=\"top\" width=\"30%\" bgcolor=\"#ffffff\" style=\"border: 1px solid #056085;\">\n      <!-- right column -->\n      <table cellpadding=10 cellspacing=0 border=0>\n      <tr>\n        <td bgcolor=\"#056085\"><font face=\"Arial, Verdana, sans-serif\" size=\"4\" color=\"#ffffff\">News and Events</font></td>\n      </tr>\n      <tr>\n        <td style=\"color: #000; font-family: Arial, Verdana, sans-serif; font-size: 12px;\" >\n        <font face=\"Arial, Verdana, sans-serif\" size=\"2\" >\n        <font color=\"#056085\"><strong>Featured Events</strong> </font><br />\n        Fundraising Dinner<br />\n        Training Meeting<br />\n        Board of Directors Annual Meeting<br />\n\n        <br /><br />\n        <font color=\"#056085\"><strong>Community Events</strong></font><br />\n        Bake Sale<br />\n        Charity Auction<br />\n        Art Exhibit<br />\n\n        <br /><br />\n        <font color=\"#056085\"><strong>Important Dates</strong></font><br />\n        Tuesday August 27<br />\n        Wednesday September 8<br />\n        Thursday September 29<br />\n        Saturday October 1<br />\n        Sunday October 20<br />\n        </font>\n        </td>\n      </tr>\n      </table>\n    </td>\n  </tr>\n\n  <tr>\n    <td colspan=\"2\">\n      <table cellpadding=\"10\" cellspacing=\"0\" border=\"0\">\n      <tr>\n        <td>\n        <font face=\"Arial, Verdana, sans-serif\" size=\"2\" >\n        <font color=\"#7dc857\"><strong>Helpful Tips</strong></font>\n        <br /><br />\n        <font color=\"#3b5187\">Tokens</font><br />\n        Click \"Insert Tokens\" to dynamically insert names, addresses, and other contact data of your recipients.\n        <br /><br />\n        <font color=\"#3b5187\">Plain Text Version</font><br />\n        Some people refuse HTML emails altogether.  We recommend sending a plain-text version of your important communications to accommodate them.  Luckily, CiviCRM accommodates for this!  Just click \"Plain Text\" and copy and paste in some text.  Line breaks (carriage returns) and fully qualified URLs like http://www.example.com are all you get, no HTML here!\n        <br /><br />\n        <font color=\"#3b5187\">Play by the Rules</font><br />\n        The address of the sender is required by the Can Spam Act law.  This is an available token called domain.address.  An unsubscribe or opt-out link is also required.  There are several available tokens for this. <em>{action.optOutUrl}</em> creates a link for recipients to click if they want to opt out of receiving  emails from your organization. <em>{action.unsubscribeUrl}</em> creates a link to unsubscribe from the specific mailing list used to send this message. Click on \"Insert Tokens\" to find these and look for tokens named \"Domain\" or \"Unsubscribe\".  This sample template includes both required tokens at the bottom of the message. You can also configure a default Mailing Footer containing these tokens.\n        <br /><br />\n        <font color=\"#3b5187\">Composing Offline</font><br />\n        If you prefer to compose an HTML email offline in your own text editor, you can upload this HTML content into CiviMail or simply click \"Source\" and then copy and paste the HTML in.\n        <br /><br />\n        <font color=\"#3b5187\">Images</font><br />\n        Most email clients these days (Outlook, Gmail, etc) block image loading by default.  This is to protect their users from annoying or harmful email.  Not much we can do about this, so encourage recipients to add you to their contacts or \"whitelist\".  Also use images sparingly, do not rely on images to convey vital information, and always use HTML \"alt\" tags which describe the image content.\n        </td>\n      </tr>\n      </table>\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" style=\"color: #000; font-family: Arial, Verdana, sans-serif; font-size: 10px;\">\n      <font face=\"Arial, Verdana, sans-serif\" size=\"2\" >\n      <hr />\n      <a href=\"{action.unsubscribeUrl}\" title=\"click to unsubscribe\">Click here</a> to unsubscribe from this mailing list.<br /><br />\n      Our mailing address is:<br />\n      {domain.address}\n    </td>\n  </tr>\n  </table>\n\n</body>\n</html>\n',1,NULL,1,0,0,NULL),(66,'Sample Responsive Design Newsletter - Single Column Template','Sample Responsive Design Newsletter - Single Column','','<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<meta content=\"text/html; charset=utf-8\" http-equiv=\"Content-Type\" />\n  <meta content=\"width=device-width, initial-scale=1.0\" name=\"viewport\" />\n  <title></title>\n\n  <style type=\"text/css\">\n    {literal}\n    /* Client-specific Styles */\n    #outlook a {padding:0;} /* Force Outlook to provide a \"view in browser\" menu link. */\n    body{width:100% !important; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%; margin:0; padding:0;}\n\n    /* Prevent Webkit and Windows Mobile platforms from changing default font sizes, while not breaking desktop design. */\n    .ExternalClass {width:100%;} /* Force Hotmail to display emails at full width */\n    .ExternalClass, .ExternalClass p, .ExternalClass span, .ExternalClass font, .ExternalClass td, .ExternalClass div {line-height: 100%;} /* Force Hotmail to display normal line spacing. */\n    #backgroundTable {margin:0; padding:0; width:100% !important; line-height: 100% !important;}\n    img {outline:none; text-decoration:none;border:none; -ms-interpolation-mode: bicubic;}\n    a img {border:none;}\n    .image_fix {display:block;}\n    p {margin: 0px 0px !important;}\n    table td {border-collapse: collapse;}\n    table { border-collapse:collapse; mso-table-lspace:0pt; mso-table-rspace:0pt; }\n    a {text-decoration: none;text-decoration:none;}\n\n    /*STYLES*/\n    table[class=full] { width: 100%; clear: both; }\n\n    /*IPAD STYLES*/\n    @media only screen and (max-width: 640px) {\n    a[href^=\"tel\"], a[href^=\"sms\"] {text-decoration: none;color:#136388;pointer-events: none;cursor: default;}\n    .mobile_link a[href^=\"tel\"], .mobile_link a[href^=\"sms\"] {text-decoration: default;color:#136388;pointer-events: auto;cursor: default;}\n    table[class=devicewidth] {width: 440px!important;text-align:center!important;}\n    table[class=devicewidthmob] {width: 416px!important;text-align:center!important;}\n    table[class=devicewidthinner] {width: 416px!important;text-align:center!important;}\n    img[class=banner] {width: 440px!important;auto!important;}\n    img[class=col2img] {width: 440px!important;height:auto!important;}\n    table[class=\"cols3inner\"] {width: 100px!important;}\n    table[class=\"col3img\"] {width: 131px!important;}\n    img[class=\"col3img\"] {width: 131px!important;height: auto!important;}\n    table[class=\"removeMobile\"]{width:10px!important;}\n    img[class=\"blog\"] {width: 440px!important;height: auto!important;}\n    }\n\n    /*IPHONE STYLES*/\n    @media only screen and (max-width: 480px) {\n    a[href^=\"tel\"], a[href^=\"sms\"] {text-decoration: none;color: #136388;pointer-events: none;cursor: default;}\n    .mobile_link a[href^=\"tel\"], .mobile_link a[href^=\"sms\"] {text-decoration: none;color:#136388;pointer-events: auto;cursor: default;}\n\n    table[class=devicewidth] {width: 280px!important;text-align:center!important;}\n    table[class=devicewidthmob] {width: 260px!important;text-align:center!important;}\n    table[class=devicewidthinner] {width: 260px!important;text-align:center!important;}\n    img[class=banner] {width: 280px!important;height:100px!important;}\n    img[class=col2img] {width: 280px!important;height:auto!important;}\n    table[class=\"cols3inner\"] {width: 260px!important;}\n    img[class=\"col3img\"] {width: 280px!important;height: auto!important;}\n    table[class=\"col3img\"] {width: 280px!important;}\n    img[class=\"blog\"] {width: 280px!important;auto!important;}\n    td[class=\"padding-top-right15\"]{padding:15px 15px 0 0 !important;}\n    td[class=\"padding-right15\"]{padding-right:15px !important;}\n    }\n\n    @media only screen and (max-device-width: 800px)\n    {td[class=\"padding-top-right15\"]{padding:15px 15px 0 0 !important;}\n    td[class=\"padding-right15\"]{padding-right:15px !important;}}\n    @media only screen and (max-device-width: 769px) {\n    .devicewidthmob {font-size:16px;}\n    }\n\n    @media only screen and (max-width: 640px) {\n    .desktop-spacer {display:none !important;}\n }\n  {/literal}\n  </style>\n\n<body>\n  <!-- Start of preheader --><!-- Start of preheader -->\n  <table bgcolor=\"#89c66b\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" id=\"backgroundTable\" width=\"100%\">\n  	<tbody>\n  		<tr>\n  			<td>\n  			<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"650\">\n  				<tbody>\n  					<tr>\n  						<td width=\"100%\">\n  						<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"650\">\n  							<tbody><!-- Spacing -->\n  								<tr>\n  									<td height=\"20\" width=\"100%\">&nbsp;</td>\n  								</tr>\n  								<!-- Spacing -->\n  								<tr>\n  									<td>\n  									<table align=\"left\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidthinner\" width=\"310\">\n  										<tbody>\n  											<tr>\n  												<td align=\"left\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 16px; line-height:120%; color: #f8f8f8;padding-left:15px; padding-bottom:5px;\" valign=\"middle\">Organization or Program Name Here</td>\n  											</tr>\n  										</tbody>\n  									</table>\n\n  									<table align=\"right\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"emhide\" width=\"310\">\n  										<tbody>\n  											<tr>\n                          <td align=\"right\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 16px;color: #f8f8f8;padding-right:15px; text-align:right;\" valign=\"middle\">Month and Year</td>\n  											</tr>\n  										</tbody>\n  									</table>\n  									</td>\n  								</tr>\n  								<!-- Spacing -->\n  								<tr>\n  									<td height=\"20\" width=\"100%\">&nbsp;</td>\n  								</tr>\n  								<!-- Spacing -->\n  							</tbody>\n  						</table>\n  						</td>\n  					</tr>\n  				</tbody>\n  			</table>\n  			</td>\n  		</tr>\n  	</tbody>\n  </table>\n  <!-- End of main-banner-->\n\n  <table bgcolor=\"#d8d8d8\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" id=\"backgroundTable\" st-sortable=\"left-image\" width=\"100%\">\n  	<tbody>\n  		<tr>\n  			<td>\n  			<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"650\">\n  				<tbody>\n  					<tr>\n  						<td width=\"100%\">\n  						<table align=\"center\" bgcolor=\"#ffffff\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"650\">\n  							<tbody><!-- Spacing -->\n  								<tr>\n  									<td height=\"20\" width=\"100%\">\n  									<table align=\"center\" border=\"0\" cellpadding=\"2\" cellspacing=\"0\" width=\"93%\">\n  										<tbody>\n  											<tr>\n                          <td rowspan=\"2\" style=\"padding-top:10px; padding-bottom:10px;\" width=\"38%\"><img src=\"https://civicrm.org/sites/default/files/civicrm/custom/images/civicrm-logo-transparent.png\" alt=\"Replace with your own logo\" width=\"220\" border=\"0\" /></td>\n  												<td align=\"right\" width=\"62%\">\n  												<h6 class=\"collapse\">&nbsp;</h6>\n  												</td>\n  											</tr>\n  											<tr>\n  												<td align=\"right\">\n  												<h5 style=\"font-family: Gill Sans, Gill Sans MT, Myriad Pro, DejaVu Sans Condensed, Helvetica, Arial, sans-serif; color:#136388;\">&nbsp;</h5>\n  												</td>\n  											</tr>\n  										</tbody>\n  									</table>\n  									</td>\n  								</tr>\n  								<tr>\n  									<td>\n  									<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"650\">\n  										<tbody>\n  											<tr>\n  												<td width=\"100%\">\n  												<table align=\"center\" bgcolor=\"#ffffff\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"650\">\n  													<tbody><!-- /Spacing -->\n  														<tr>\n  															<td style=\"font-family: Helvetica, arial, sans-serif; font-size: 23px; color:#f8f8f8; text-align:left; line-height: 32px; padding:5px 15px; background-color:#136388;\">Headline Here</td>\n  														</tr>\n  														<!-- Spacing -->\n  														<tr>\n  															<td>\n  															<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidthinner\" width=\"650\">\n  																<tbody><!-- hero story -->\n  																	<tr>\n  																		<td align=\"center\" class=\"devicewidthinner\" width=\"100%\">\n  																		<div class=\"imgpop\"><a href=\"#\"><img alt=\"\" border=\"0\" class=\"blog\" height=\"auto\" src=\"https://civicrm.org/sites/default/files/civicrm/custom/images/650x396.png\" style=\"display:block; border:none; outline:none; text-decoration:none; padding:0; line-height:0;\" width=\"650\" /></a></div>\n  																		</td>\n  																	</tr>\n  																	<!-- /hero image --><!-- Spacing -->\n  																	<tr>\n  																		<td height=\"15\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\" width=\"100%\">&nbsp;</td>\n  																	</tr>\n  																	<!-- /Spacing -->\n  																	<tr>\n  																		<td style=\"font-family: Helvetica, arial, sans-serif; font-size: 18px;  text-align:left; line-height: 26px; padding:0 15px; color:#89c66b;\"><a href=\"#\" style=\"color:#89c66b;\">Your Heading Here</a></td>\n  																	</tr>\n  																	<!-- Spacing -->\n  																	<tr>\n  																		<td height=\"15\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\" width=\"100%\">&nbsp;</td>\n  																	</tr>\n  																	<!-- /Spacing --><!-- content -->\n  																	<tr>\n  																		<td style=\"padding:0 15px;\">\n  																		<p style=\"font-family: Helvetica, arial, sans-serif; font-size: 16px; color: #7a6e67; text-align:left; line-height: 26px; padding-bottom:10px;\">{contact.email_greeting},																		</p>\n  																		<p style=\"font-family: Helvetica, arial, sans-serif; font-size: 16px; color: #7a6e67; text-align:left; line-height: 26px; padding-bottom:10px;\"><span class=\"padding-right15\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 14px; color: #7a6e67; text-align:left; line-height: 24px;\">Replace with your text and images, and remember to link the facebook and twitter links in the footer to your pages. Have fun!</span></p>\n  																		</td>\n  																	</tr>\n  																	<tr>\n  																		<td class=\"padding-right15\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 16px; font-weight:bold; color: #333333; text-align:left;line-height: 24px; padding-top:10px; padding-left:15px;\"><a href=\"#\" style=\"color:#136388;text-decoration:none;font-weight:bold;\" target=\"_blank\" title=\"read more\">Read More</a></td>\n  																	</tr>\n  																	<!-- /button --><!-- Spacing -->\n  																	<tr>\n  																		<td height=\"20\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\">&nbsp;</td>\n  																	</tr>\n  																	<!-- Spacing --><!-- end of content -->\n  																</tbody>\n  															</table>\n  															</td>\n  														</tr>\n  													</tbody>\n  												</table>\n  												</td>\n  											</tr>\n  										</tbody>\n  									</table>\n  									</td>\n  								</tr>\n  							</tbody>\n  						</table>\n  						</td>\n  					</tr>\n  				</tbody>\n  			</table>\n  			</td>\n  		</tr>\n  	</tbody>\n  </table>\n  <!-- end of hero image and story --><!-- story 1 -->\n\n  <table bgcolor=\"#d8d8d8\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" id=\"backgroundTable\" st-sortable=\"left-image\" width=\"100%\">\n  	<tbody>\n  		<tr>\n  			<td>\n  			<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"650\">\n  				<tbody>\n  					<tr>\n  						<td width=\"100%\">\n  						<table align=\"center\" bgcolor=\"#ffffff\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"650\">\n  							<tbody><!-- Spacing -->\n  								<tr>\n  									<td>\n  									<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"650\">\n  										<tbody>\n  											<tr>\n  												<td width=\"100%\">\n  												<table align=\"center\" bgcolor=\"#ffffff\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"650\">\n  													<tbody>\n  														<tr>\n  															<td>\n  															<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidthinner\" width=\"650\">\n  																<tbody><!-- image -->\n  																	<tr>\n  																		<td align=\"center\" class=\"devicewidthinner\" width=\"100%\">\n  																		<div class=\"imgpop\"><a href=\"#\" target=\"_blank\"><img alt=\"\" border=\"0\" class=\"blog\" height=\"250\" src=\"https://civicrm.org/sites/default/files/civicrm/custom/images/banner-image-650-250.png\" style=\"display:block; border:none; outline:none; text-decoration:none; padding:0; line-height:0;\" width=\"650\" /></a></div>\n  																		</td>\n  																	</tr>\n  																	<!-- /image --><!-- Spacing -->\n  																	<tr>\n  																		<td height=\"15\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\" width=\"100%\">&nbsp;</td>\n  																	</tr>\n  																	<!-- /Spacing -->\n  																	<tr>\n  																		<td style=\"font-family: Helvetica, arial, sans-serif; font-size: 18px;  text-align:left; line-height: 26px; padding:0 15px;\"><a href=\"#\" style=\"color:#89c66b;\">Your Heading  Here</a></td>\n  																	</tr>\n  																	<!-- Spacing -->\n  																	<tr>\n  																		<td height=\"15\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\" width=\"100%\">&nbsp;</td>\n  																	</tr>\n  																	<!-- /Spacing --><!-- content -->\n  																	<tr>\n  																		<td style=\"padding:0 15px;\">\n  																		<p style=\"font-family: Helvetica, arial, sans-serif; font-size: 16px; color: #7a6e67; text-align:left; line-height: 26px; padding-bottom:10px;\">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna </p>\n  																		</td>\n  																	</tr>\n  																	<tr>\n  																		<td class=\"padding-right15\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 16px; font-weight:bold; color: #333333; text-align:left;line-height: 24px; padding-top:10px; padding-left:15px;\"><a href=\"#\" style=\"color:#136388;text-decoration:none;font-weight:bold;\" target=\"_blank\" title=\"read more\">Read More</a></td>\n  																	</tr>\n  																	<!-- /button --><!-- Spacing -->\n  																	<tr>\n  																		<td height=\"20\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\">&nbsp;</td>\n  																	</tr>\n  																	<!-- Spacing --><!-- end of content -->\n  																</tbody>\n  															</table>\n  															</td>\n  														</tr>\n  													</tbody>\n  												</table>\n  												</td>\n  											</tr>\n  										</tbody>\n  									</table>\n  									</td>\n  								</tr>\n  							</tbody>\n  						</table>\n  						</td>\n  					</tr>\n  				</tbody>\n  			</table>\n  			</td>\n  		</tr>\n  	</tbody>\n  </table>\n  <!-- /story 2--><!-- banner1 -->\n\n  <table bgcolor=\"#d8d8d8\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" id=\"backgroundTable\" st-sortable=\"left-image\" width=\"100%\">\n  	<tbody>\n  		<tr>\n  			<td>\n  			<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"650\">\n  				<tbody>\n  					<tr>\n  						<td width=\"100%\">\n  						<table align=\"center\" bgcolor=\"#ffffff\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"650\">\n  							<tbody><!-- Spacing -->\n  								<tr>\n  									<td>\n  									<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"650\">\n  										<tbody>\n  											<tr>\n  												<td width=\"100%\">\n  												<table align=\"center\" bgcolor=\"#89c66b\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"650\">\n  													<tbody>\n  														<tr>\n  															<td>\n  															<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidthinner\" width=\"650\">\n  																<tbody><!-- image -->\n  																	<tr>\n  																		<td align=\"center\" class=\"devicewidthinner\" width=\"100%\">\n  																		<div class=\"imgpop\"><a href=\"#\" target=\"_blank\"><img alt=\"\" border=\"0\" class=\"blog\" height=\"auto\" src=\"https://civicrm.org/sites/default/files/civicrm/custom/images/banner-image-650-250.png\" style=\"display:block; border:none; outline:none; text-decoration:none; padding:0; line-height:0;\" width=\"650\" /></a></div>\n  																		</td>\n  																	</tr>\n  																	<!-- /image --><!-- content --><!-- Spacing -->\n  																	<tr>\n  																		<td height=\"15\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\" width=\"100%\">&nbsp;</td>\n  																	</tr>\n  																	<!-- /Spacing -->\n  																	<tr>\n  																		<td style=\"padding:15px;\">\n  																		<p style=\"font-family: Helvetica, arial, sans-serif; font-size: 16px; color: #f0f0f0; text-align:left; line-height: 26px; padding-bottom:10px;\">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna </p>\n  																		</td>\n  																	</tr>\n  																	<!-- /button --><!-- white button -->\n  																	<!-- /button --><!-- Spacing --><!-- end of content -->\n  																</tbody>\n  															</table>\n  															</td>\n  														</tr>\n  													</tbody>\n  												</table>\n  												</td>\n  											</tr>\n  										</tbody>\n  									</table>\n  									</td>\n  								</tr>\n  							</tbody>\n  						</table>\n  						</td>\n  					</tr>\n  				</tbody>\n  			</table>\n  			</td>\n  		</tr>\n  	</tbody>\n  </table>\n  <!-- /banner 1--><!-- banner 2 -->\n\n  <table bgcolor=\"#d8d8d8\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" id=\"backgroundTable\" st-sortable=\"left-image\" width=\"100%\">\n  	<tbody>\n  		<tr>\n  			<td>\n  			<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"650\">\n  				<tbody>\n  					<tr>\n  						<td width=\"100%\">\n  						<table align=\"center\" bgcolor=\"#ffffff\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"650\">\n  							<tbody><!-- Spacing -->\n  								<tr>\n  									<td>\n  									<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"650\">\n  										<tbody>\n  											<tr>\n  												<td width=\"100%\">\n  												<table align=\"center\" bgcolor=\"#136388\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"650\">\n  													<tbody>\n  														<tr>\n  															<td>\n  															<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidthinner\" width=\"650\">\n  																<tbody><!-- image -->\n  																	<tr>\n  																		<td align=\"center\" class=\"devicewidthinner\" width=\"100%\">\n  																		<div class=\"imgpop\"><a href=\"#\" target=\"_blank\"><img alt=\"\" border=\"0\" class=\"blog\" height=\"auto\" src=\"https://civicrm.org/sites/default/files/civicrm/custom/images/banner-image-650-250.png\" style=\"display:block; border:none; outline:none; text-decoration:none; padding:0; line-height:0;\" width=\"650\" /></a></div>\n  																		</td>\n  																	</tr>\n  																	<!-- /image --><!-- content --><!-- Spacing -->\n  																	<tr>\n  																		<td height=\"15\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\" width=\"100%\">&nbsp;</td>\n  																	</tr>\n  																	<!-- /Spacing -->\n  																	<tr>\n  																		<td style=\"padding: 15px;\">\n  																		<p style=\"font-family: Helvetica, arial, sans-serif; font-size: 16px; color: #f0f0f0; text-align:left; line-height: 26px; padding-bottom:10px;\">Remember to link the facebook and twitter links below to your pages!</p>\n  																		</td>\n  																	</tr>\n  																	<!-- /button --><!-- white button -->\n  																	<tr>\n  																		<td class=\"padding-right15\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 16px; font-weight:bold; color: #333333; text-align:left;line-height: 24px; padding-top:10px; padding-bottom:10px; padding-left:15px;\"><a href=\"#\" style=\"color:#ffffff;text-decoration:none;font-weight:bold;\" target=\"_blank\" title=\"read more\">Read More</a></td>\n  																	</tr>\n  																	<!-- /button --><!-- Spacing --><!-- end of content -->\n  																</tbody>\n  															</table>\n  															</td>\n  														</tr>\n  													</tbody>\n  												</table>\n  												</td>\n  											</tr>\n  										</tbody>\n  									</table>\n  									</td>\n  								</tr>\n  							</tbody>\n  						</table>\n  						</td>\n  					</tr>\n  				</tbody>\n  			</table>\n  			</td>\n  		</tr>\n  	</tbody>\n  </table>\n  <!-- /banner2 --><!-- footer -->\n\n  <table bgcolor=\"#d8d8d8\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" id=\"backgroundTable\" st-sortable=\"footer\" width=\"100%\">\n  	<tbody>\n  		<tr>\n  			<td>\n  			<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"650\">\n  				<tbody>\n  					<tr>\n  						<td width=\"100%\">\n  						<table align=\"center\" bgcolor=\"#89c66b\"  border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"650\">\n  							<tbody><!-- Spacing -->\n  								<tr>\n  									<td height=\"10\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\">&nbsp;</td>\n  								</tr>\n  								<!-- Spacing -->\n  								<tr>\n  									<td><!-- logo -->\n  									<table align=\"left\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"250\">\n  										<tbody>\n  											<tr>\n  												<td width=\"20\">&nbsp;</td>\n  												<td align=\"left\" height=\"40\" width=\"250\"><span style=\"font-family: Helvetica, arial, sans-serif; font-size: 13px; text-align:left; line-height: 26px; padding-bottom:10px;\"><a href=\"{action.unsubscribeUrl}\" style=\"color: #f0f0f0; \">Unsubscribe | </a><a href=\"{action.subscribeUrl}\"  style=\"color: #f0f0f0;\">Subscribe |</a> <a href=\"{action.optOutUrl}\" style=\"color: #f0f0f0;\">Opt out</a></span></td>\n  											</tr>\n  											<tr>\n  												<td width=\"20\">&nbsp;</td>\n  												<td align=\"left\" height=\"40\" width=\"250\"><span style=\"font-family: Helvetica, arial, sans-serif; font-size: 13px; text-align:left; line-height: 26px; padding-bottom:10px; color: #f0f0f0;\">{domain.address}</span></td>\n  											</tr>\n  										</tbody>\n  									</table>\n  									<!-- end of logo --><!-- start of social icons -->\n\n  									<table align=\"right\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" height=\"40\" vaalign=\"middle\" width=\"60\">\n  										<tbody>\n  											<tr>\n  												<td align=\"left\" height=\"22\" width=\"22\">\n  												<div class=\"imgpop\"><a href=\"#\" target=\"_blank\"><img alt=\"\" border=\"0\" height=\"22\" src=\"https://civicrm.org/sites/default/files/civicrm/custom/images/facebook.png\" style=\"display:block; border:none; outline:none; text-decoration:none;\" width=\"22\" /> </a></div>\n  												</td>\n  												<td align=\"left\" style=\"font-size:1px; line-height:1px;\" width=\"10\">&nbsp;</td>\n  												<td align=\"right\" height=\"22\" width=\"22\">\n  												<div class=\"imgpop\"><a href=\"#\" target=\"_blank\"><img alt=\"\" border=\"0\" height=\"22\" src=\"https://civicrm.org/sites/default/files/civicrm/custom/images/twitter.png\" style=\"display:block; border:none; outline:none; text-decoration:none;\" width=\"22\" /> </a></div>\n  												</td>\n  												<td align=\"left\" style=\"font-size:1px; line-height:1px;\" width=\"20\">&nbsp;</td>\n  											</tr>\n  										</tbody>\n  									</table>\n  									<!-- end of social icons --></td>\n  								</tr>\n  								<!-- Spacing -->\n  								<tr>\n  									<td height=\"10\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\">&nbsp;</td>\n  								</tr>\n  								<!-- Spacing -->\n  							</tbody>\n  						</table>\n  						</td>\n  					</tr>\n  				</tbody>\n  			</table>\n  			</td>\n  		</tr>\n  	</tbody>\n  </table>\n\n</body>\n</html>\n',1,NULL,1,0,0,NULL),(67,'Sample Responsive Design Newsletter - Two Column Template','Sample Responsive Design Newsletter - Two Column','','<html xmlns=\"http://www.w3.org/1999/xhtml\">\n  <meta content=\"text/html; charset=utf-8\" http-equiv=\"Content-Type\" />\n  <meta content=\"width=device-width, initial-scale=1.0\" name=\"viewport\" />\n  <title></title>\n  <style type=\"text/css\">\n     {literal}\n     img {height: auto !important;}\n     /* Client-specific Styles */\n     #outlook a {padding:0;} /* Force Outlook to provide a \"view in browser\" menu link. */\n     body{width:100% !important; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%; margin:0; padding:0;}\n\n     /* Prevent Webkit and Windows Mobile platforms from changing default font sizes, while not breaking desktop design. */\n     .ExternalClass {width:100%;} /* Force Hotmail to display emails at full width */\n     .ExternalClass, .ExternalClass p, .ExternalClass span, .ExternalClass font, .ExternalClass td, .ExternalClass div {line-height: 100%;} /* Force Hotmail to display normal line spacing. */\n     #backgroundTable {margin:0; padding:0; width:100% !important; line-height: 100% !important;}\n     img {outline:none; text-decoration:none;border:none; -ms-interpolation-mode: bicubic;}\n     a img {border:none;}\n     .image_fix {display:block;}\n     p {margin: 0px 0px !important;}\n     table td {border-collapse: collapse;}\n     table { border-collapse:collapse; mso-table-lspace:0pt; mso-table-rspace:0pt; }\n     a {/*color: #33b9ff;*/text-decoration: none;text-decoration:none!important;}\n\n\n     /*STYLES*/\n     table[class=full] { width: 100%; clear: both; }\n\n     /*IPAD STYLES*/\n     @media only screen and (max-width: 640px) {\n     a[href^=\"tel\"], a[href^=\"sms\"] {text-decoration: none;color: #0a8cce;pointer-events: none;cursor: default;}\n     .mobile_link a[href^=\"tel\"], .mobile_link a[href^=\"sms\"] {text-decoration: default;color: #0a8cce !important;pointer-events: auto;cursor: default;}\n     table[class=devicewidth] {width: 440px!important;text-align:center!important;}\n     table[class=devicewidthmob] {width: 414px!important;text-align:center!important;}\n     table[class=devicewidthinner] {width: 414px!important;text-align:center!important;}\n     img[class=banner] {width: 440px!important;auto!important;}\n     img[class=col2img] {width: 440px!important;height:auto!important;}\n     table[class=\"cols3inner\"] {width: 100px!important;}\n     table[class=\"col3img\"] {width: 131px!important;}\n     img[class=\"col3img\"] {width: 131px!important;height: auto!important;}\n     table[class=\"removeMobile\"]{width:10px!important;}\n     img[class=\"blog\"] {width: 440px!important;height: auto!important;}\n     }\n\n     /*IPHONE STYLES*/\n     @media only screen and (max-width: 480px) {\n     a[href^=\"tel\"], a[href^=\"sms\"] {text-decoration: none;color: #0a8cce;pointer-events: none;cursor: default;}\n     .mobile_link a[href^=\"tel\"], .mobile_link a[href^=\"sms\"] {text-decoration: default;color: #0a8cce !important; pointer-events: auto;cursor: default;}\n     table[class=devicewidth] {width: 280px!important;text-align:center!important;}\n     table[class=devicewidthmob] {width: 260px!important;text-align:center!important;}\n     table[class=devicewidthinner] {width: 260px!important;text-align:center!important;}\n     img[class=banner] {width: 280px!important;height:100px!important;}\n     img[class=col2img] {width: 280px!important;height:auto!important;}\n     table[class=\"cols3inner\"] {width: 260px!important;}\n     img[class=\"col3img\"] {width: 280px!important;height: auto!important;}\n     table[class=\"col3img\"] {width: 280px!important;}\n     img[class=\"blog\"] {width: 280px!important;auto!important;}\n     td[class=\"padding-top-right15\"]{padding:15px 15px 0 0 !important;}\n     td[class=\"padding-right15\"]{padding-right:15px !important;}\n     }\n\n     @media only screen and (max-device-width: 800px)\n     {td[class=\"padding-top-right15\"]{padding:15px 15px 0 0 !important;}\n     td[class=\"padding-right15\"]{padding-right:15px !important;}}\n     @media only screen and (max-device-width: 769px) {.devicewidthmob {font-size:14px;}}\n\n     @media only screen and (max-width: 640px) {.desktop-spacer {display:none !important;}\n	   }\n     {/literal}\n  </style>\n  <body>\n    <!-- Start of preheader --><!-- Start of preheader -->\n    <table bgcolor=\"#0B4151\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" id=\"backgroundTable\" width=\"100%\">\n    	<tbody>\n    		<tr>\n    			<td>\n    			<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"700\">\n    				<tbody>\n    					<tr>\n    						<td width=\"100%\">\n    						<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"700\">\n    							<tbody><!-- Spacing -->\n    								<tr>\n    									<td height=\"20\" width=\"100%\">&nbsp;</td>\n    								</tr>\n    								<!-- Spacing -->\n    								<tr>\n    									<td>\n    									<table align=\"left\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidthinner\" width=\"360\">\n    										<tbody>\n    											<tr>\n    												<td align=\"left\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 14px; line-height:120%; color: #f8f8f8;padding-left:15px;\" valign=\"middle\">Organization or Program Name Here</td>\n    											</tr>\n    										</tbody>\n    									</table>\n\n    									<table align=\"right\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"emhide\" width=\"320\">\n    										<tbody>\n    											<tr>\n    												<td align=\"right\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 16px;color: #f8f8f8;padding-right:15px;\" valign=\"middle\">Month Year</td>\n    											</tr>\n    										</tbody>\n    									</table>\n    									</td>\n    								</tr>\n    								<!-- Spacing -->\n    								<tr>\n    									<td height=\"20\" width=\"100%\">&nbsp;</td>\n    								</tr>\n    								<!-- Spacing -->\n    							</tbody>\n    						</table>\n    						</td>\n    					</tr>\n    				</tbody>\n    			</table>\n    			</td>\n    		</tr>\n    	</tbody>\n    </table>\n    <!-- End of preheader --><!-- start of logo -->\n\n    <table bgcolor=\"#d8d8d8\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" id=\"backgroundTable\" st-sortable=\"left-image\" width=\"100%\">\n    	<tbody>\n    		<tr>\n    			<td>\n    			<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidthmob\" width=\"700\">\n    				<tbody>\n    					<tr>\n    						<td width=\"100%\">\n    						<table align=\"center\" bgcolor=\"#ffffff\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"700\">\n    							<tbody><!-- Spacing -->\n    								<tr>\n    									<td height=\"20\" width=\"100%\">\n    									<table align=\"center\" border=\"0\" cellpadding=\"2\" cellspacing=\"0\" width=\"93%\">\n    										<tbody>\n    											<tr>\n                             <td rowspan=\"2\" width=\"330\"><a href=\"#\"> <div class=\"imgpop\"><img src=\"https://civicrm.org/sites/default/files/civicrm/custom/images/civicrm-logo-transparent.png\" alt=\"Replace with your own logo\" width=\"220\" border=\"0\" style=\"display:block;\"/></div></a></td>\n                            <td align=\"right\" >\n    												<h6 class=\"collapse\">&nbsp;</h6>\n    												</td>\n    											</tr>\n    											<tr>\n    												<td align=\"right\">\n\n    												</td>\n    											</tr>\n    										</tbody>\n    									</table>\n    									</td>\n    								</tr>\n\n    							</tbody>\n    						</table>\n    						</td>\n    					</tr>\n    				</tbody>\n    			</table>\n    			</td>\n    		</tr>\n    	</tbody>\n    </table>\n    <!-- end of logo --> <!-- hero story 1 -->\n\n    <table bgcolor=\"#d8d8d8\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" id=\"backgroundTable\" st-sortable=\"left-image\" width=\"101%\">\n    	<tbody>\n    		<tr>\n    			<td>\n    			<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"700\">\n    				<tbody>\n    					<tr>\n    						<td width=\"100%\">\n    						<table align=\"center\" bgcolor=\"#f8f8f8\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"700\">\n    							<tbody>\n    								<tr>\n    									<td>\n    									<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"700\">\n    										<tbody>\n    											<tr>\n    												<td width=\"100%\">\n    												<table align=\"center\" bgcolor=\"#f8f8f8\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"700\">\n    													<tbody><!-- /Spacing -->\n    														<tr>\n    															<td style=\"font-family: Helvetica, arial, sans-serif; font-size: 24px; color:#f8f8f8; text-align:left; line-height: 26px; padding:5px 15px; background-color: #80C457\">Hero Story Heading</td>\n    														</tr>\n    														<!-- Spacing -->\n    														<tr>\n    															<td>\n    															<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidthinner\" width=\"700\">\n    																<tbody><!-- image -->\n    																	<tr>\n    																		<td align=\"center\" class=\"devicewidthinner\" width=\"100%\">\n    																		<div class=\"imgpop\"><a href=\"#\" target=\"_blank\"><img alt=\"\" border=\"0\" class=\"blog\" height=\"396\" src=\"https://civicrm.org/sites/default/files/civicrm/custom/images/700x396.png\" style=\"display:block; border:none; outline:none; text-decoration:none; padding:0; line-height:0;\" width=\"700\" /></a></div>\n    																		</td>\n    																	</tr>\n    																	<!-- /image --><!-- Spacing -->\n    																	<tr>\n    																		<td height=\"15\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\" width=\"100%\">&nbsp;</td>\n    																	</tr>\n    																	<!-- /Spacing --><!-- hero story -->\n    																	<tr>\n    																		<td style=\"font-family: Helvetica, arial, sans-serif; font-size: 18px;  text-align:left; line-height: 26px; padding:0 15px;\"><a href=\"#\" style=\"color:#076187; text-decoration:none; \" target=\"_blank\">Subheading Here</a></td>\n    																	</tr>\n    																	<!-- Spacing -->\n    																	<tr>\n    																		<td height=\"15\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\" width=\"100%\">&nbsp;</td>\n    																	</tr><!-- /Spacing -->\n    																	<tr>\n    																		<td style=\"font-family: Helvetica, arial, sans-serif; font-size: 14px; color: #7a6e67; text-align:left; line-height: 26px; padding:0 15px;\"><span class=\"padding-right15\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 14px; color: #7a6e67; text-align:left; line-height: 24px;\">Replace with your text and images, and remember to link the facebook and twitter links in the footer to your pages. Have fun!</span></td>\n    																	</tr>\n\n    <!-- Spacing -->\n    																	<tr>\n    																		<td height=\"15\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\" width=\"100%\">&nbsp;</td>\n    																	</tr><!-- /Spacing -->\n\n              <!-- /Spacing --><!-- /hero story -->\n\n    																	<!-- Spacing -->                                                            <!-- Spacing -->\n\n\n\n    																	<!-- Spacing --><!-- end of content -->\n    																</tbody>\n    															</table>\n    															</td>\n    														</tr>\n    													</tbody>\n    												</table>\n    												</td>\n    											</tr>\n    										</tbody>\n    									</table>\n    									</td>\n    								</tr>\n    								<!-- Section Heading -->\n    								<tr>\n    									<td style=\"font-family: Helvetica, arial, sans-serif; font-size: 24px; color:#f8f8f8; text-align:left; line-height: 26px; padding:5px 15px; background-color: #80C457\">Section Heading Here</td>\n    								</tr>\n    								<!-- /Section Heading -->\n    							</tbody>\n    						</table>\n    						</td>\n    					</tr>\n    				</tbody>\n    			</table>\n    			</td>\n    		</tr>\n    	</tbody>\n    </table>\n    <!-- /hero story 1 --><!-- story one -->\n\n    <table bgcolor=\"#d8d8d8\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" id=\"backgroundTable\" st-sortable=\"left-image\" width=\"100%\">\n    	<tbody>\n    		<tr>\n    			<td>\n    			<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"700\">\n    				<tbody>\n    					<tr>\n    						<td width=\"100%\">\n    						<table align=\"center\" bgcolor=\"#ffffff\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"700\">\n    							<tbody><!-- Spacing -->\n    								<tr>\n    									<td class=\"desktop-spacer\" height=\"20\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\">&nbsp;</td>\n    								</tr>\n    								<!-- Spacing -->\n    								<tr>\n    									<td>\n    									<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"660\">\n    										<tbody>\n    											<tr>\n    												<td><!-- Start of left column -->\n    												<table align=\"left\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"330\">\n    													<tbody><!-- image -->\n    														<tr>\n    															<td align=\"center\" class=\"devicewidth\" height=\"150\" valign=\"top\" width=\"330\"><a href=\"#\"><img alt=\"\" border=\"0\" class=\"col2img\" src=\"https://civicrm.org/sites/default/files/civicrm/custom/images/330x150.png\" style=\"display:block; border:none; outline:none; text-decoration:none; display:block;\" width=\"330\" /></a></td>\n    														</tr>\n    														<!-- /image -->\n    													</tbody>\n    												</table>\n    												<!-- end of left column --><!-- spacing for mobile devices-->\n\n    												<table align=\"left\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"mobilespacing\">\n    													<tbody>\n    														<tr>\n    															<td height=\"15\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\" width=\"100%\">&nbsp;</td>\n    														</tr>\n    													</tbody>\n    												</table>\n    												<!-- end of for mobile devices--><!-- start of right column -->\n\n    												<table align=\"right\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidthmob\" width=\"310\">\n    													<tbody>\n    														<tr>\n    															<td class=\"padding-top-right15\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 18px; text-align:left; line-height: 24px;\"><a href=\"#\" style=\"color:#076187; text-decoration:none; \" target=\"_blank\">Heading Here</a><a href=\"#\" style=\"color:#076187; text-decoration:none;\" target=\"_blank\" title=\"CiviCRM helps keep the “City Beautiful” Movement”going strong\"></a></td>\n    														</tr>\n    														<!-- end of title --><!-- Spacing -->\n    														<tr>\n    															<td height=\"15\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\" width=\"100%\">&nbsp;</td>\n    														</tr>\n    														<!-- /Spacing --><!-- content -->\n    														<tr>\n    															<td class=\"padding-right15\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 14px; color: #7a6e67; text-align:left; line-height: 24px;\"><span class=\"padding-right15\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 14px; color: #7a6e67; text-align:left; line-height: 24px;\">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod\n                                                                tempor incididunt ut labore et dolore magna </span></td>\n    														</tr>\n    														<tr>\n    															<td class=\"padding-right15\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 14px; font-weight:bold; color: #333333; text-align:left;line-height: 24px; padding-top:10px;\"><a href=\"#\" style=\"color:#80C457;text-decoration:none;font-weight:bold;\" target=\"_blank\" title=\"CiviCRM helps keep the “City Beautiful” Movement”going strong\">Read More</a></td>\n    														</tr>\n    														<!-- /button --><!-- end of content -->\n    													</tbody>\n    												</table>\n    												<!-- end of right column --></td>\n    											</tr>\n    										</tbody>\n    									</table>\n    									</td>\n    								</tr>\n    								<!-- Spacing -->\n    								<tr>\n    									<td height=\"20\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\">&nbsp;</td>\n    								</tr>\n    							</tbody>\n    						</table>\n    						</td>\n    					</tr>\n    				</tbody>\n    			</table>\n    			</td>\n    		</tr>\n    	</tbody>\n    </table>\n    <!-- /story one -->\n    <!-- story two -->\n\n    <table bgcolor=\"#d8d8d8\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" id=\"backgroundTable\" st-sortable=\"left-image\" width=\"100%\">\n    	<tbody>\n    		<tr>\n    			<td>\n    			<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"700\">\n    				<tbody>\n    					<tr>\n    						<td width=\"100%\">\n    						<table align=\"center\" bgcolor=\"#ffffff\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"700\">\n    							<tbody><!-- Spacing -->\n    								<tr>\n    									<td bgcolor=\"#076187\" height=\"0\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\">&nbsp;</td>\n    								</tr>\n    								<!-- Spacing --><!-- Spacing -->\n    								<tr>\n    									<td class=\"desktop-spacer\" height=\"20\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\">&nbsp;</td>\n    								</tr>\n    								<!-- Spacing -->\n    								<tr>\n    									<td>\n    									<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"660\">\n    										<tbody>\n    											<tr>\n    												<td><!-- Start of left column -->\n    												<table align=\"left\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"330\">\n    													<tbody><!-- image -->\n    														<tr>\n    															<td align=\"center\" class=\"devicewidth\" height=\"150\" valign=\"top\" width=\"330\"><a href=\"#\"><img alt=\"\" border=\"0\" class=\"col2img\" src=\"https://civicrm.org/sites/default/files/civicrm/custom/images/330x150.png\" style=\"display:block; border:none; outline:none; text-decoration:none; display:block;\" width=\"330\" /></a></td>\n    														</tr>\n    														<!-- /image -->\n    													</tbody>\n    												</table>\n    												<!-- end of left column --><!-- spacing for mobile devices-->\n\n    												<table align=\"left\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"mobilespacing\">\n    													<tbody>\n    														<tr>\n    															<td height=\"15\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\" width=\"100%\">&nbsp;</td>\n    														</tr>\n    													</tbody>\n    												</table>\n    												<!-- end of for mobile devices--><!-- start of right column -->\n\n    												<table align=\"right\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidthmob\" width=\"310\">\n    													<tbody>\n    														<tr>\n    															<td class=\"padding-top-right15\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 18px; text-align:left; line-height: 24px;\"><a href=\"#\" style=\"color:#076187; text-decoration:none; \" target=\"_blank\">Heading Here</a><a href=\"#\" style=\"color:#076187; text-decoration:none;\" target=\"_blank\" title=\"How CiviCRM will take Tribodar Eco Learning Center to another level\"></a></td>\n    														</tr>\n    														<!-- end of title --><!-- Spacing -->\n    														<tr>\n    															<td height=\"15\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\" width=\"100%\">&nbsp;</td>\n    														</tr>\n    														<!-- /Spacing --><!-- content -->\n    														<tr>\n    															<td class=\"padding-right15\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 14px; color: #7a6e67; text-align:left; line-height: 24px;\"><span class=\"padding-right15\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 14px; color: #7a6e67; text-align:left; line-height: 24px;\">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod\n                                                                tempor incididunt ut labore et dolore magna </span></td>\n    														</tr>\n    														<tr>\n    															<td class=\"padding-right15\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 14px; font-weight:bold; color: #333333; text-align:left;line-height: 24px; padding-top:10px;\"><a href=\"#\" style=\"color:#80C457;text-decoration:none;font-weight:bold;\" target=\"_blank\" title=\"How CiviCRM will take Tribodar Eco Learning Center to another level\">Read More</a></td>\n    														</tr>\n    														<!-- /button --><!-- end of content -->\n    													</tbody>\n    												</table>\n    												<!-- end of right column --></td>\n    											</tr>\n    										</tbody>\n    									</table>\n    									</td>\n    								</tr>\n    								<!-- Spacing -->\n    								<tr>\n    									<td height=\"20\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\">&nbsp;</td>\n    								</tr>\n    							</tbody>\n    						</table>\n    						</td>\n    					</tr>\n    				</tbody>\n    			</table>\n    			</td>\n    		</tr>\n    	</tbody>\n    </table>\n    <!-- /story two --><!-- story three -->\n\n    <table bgcolor=\"#d8d8d8\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" id=\"backgroundTable\" st-sortable=\"left-image\" width=\"100%\">\n    	<tbody>\n    		<tr>\n    			<td>\n    			<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"700\">\n    				<tbody>\n    					<tr>\n    						<td width=\"100%\">\n    						<table align=\"center\" bgcolor=\"#ffffff\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"700\">\n    							<tbody><!-- Spacing -->\n    								<tr>\n    									<td bgcolor=\"#076187\" height=\"0\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\">&nbsp;</td>\n    								</tr>\n    								<!-- Spacing --><!-- Spacing -->\n    								<tr>\n    									<td height=\"20\" class=\"desktop-spacer\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\">&nbsp;</td>\n    								</tr>\n    								<!-- Spacing -->\n    								<tr>\n    									<td>\n    									<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"660\">\n    										<tbody>\n    											<tr>\n    												<td><!-- Start of left column -->\n    												<table align=\"left\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"330\">\n    													<tbody><!-- image -->\n    														<tr>\n    															<td align=\"center\" class=\"devicewidth\" height=\"150\" valign=\"top\" width=\"330\"><a href=\"#\"><img alt=\"\" border=\"0\" class=\"col2img\" src=\"https://civicrm.org/sites/default/files/civicrm/custom/images/330x150.png\" style=\"display:block; border:none; outline:none; text-decoration:none; display:block;\" width=\"330\" /></a></td>\n    														</tr>\n    														<!-- /image -->\n    													</tbody>\n    												</table>\n    												<!-- end of left column --><!-- spacing for mobile devices-->\n\n    												<table align=\"left\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"mobilespacing\">\n    													<tbody>\n    														<tr>\n    															<td height=\"15\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\" width=\"100%\">&nbsp;</td>\n    														</tr>\n    													</tbody>\n    												</table>\n    												<!-- end of for mobile devices--><!-- start of right column -->\n\n    												<table align=\"right\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidthmob\" width=\"310\">\n    													<tbody>\n    														<tr>\n    															<td class=\"padding-top-right15\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 18px;  text-align:left; line-height: 24px;\"><a href=\"#\" style=\"color:#076187; text-decoration:none; \" target=\"_blank\">Heading Here</a><a href=\"#\" style=\"color:#076187; text-decoration:none;\" target=\"_blank\" title=\"CiviCRM provides a soup-to-nuts open-source solution for Friends of the San Pedro River\"></a></td>\n    														</tr>\n    														<!-- end of title --><!-- Spacing -->\n    														<tr>\n    															<td height=\"15\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\" width=\"100%\">&nbsp;</td>\n    														</tr>\n    														<!-- /Spacing --><!-- content -->\n    														<tr>\n    															<td class=\"padding-right15\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 14px; color: #7a6e67; text-align:left; line-height: 24px;\"><span class=\"padding-right15\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 14px; color: #7a6e67; text-align:left; line-height: 24px;\">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod\n                                                                tempor incididunt ut labore et dolore magna </span></td>\n    														</tr>\n    														<tr>\n    															<td style=\"font-family: Helvetica, arial, sans-serif; font-size: 14px; font-weight:bold; color: #333333; text-align:left;line-height: 24px; padding-top:10px;\"><a href=\"#\" style=\"color:#80C457;text-decoration:none;font-weight:bold;\" target=\"_blank\" title=\"CiviCRM provides a soup-to-nuts open-source solution for Friends of the San Pedro River\">Read More</a></td>\n    														</tr>\n    														<!-- /button --><!-- end of content -->\n    													</tbody>\n    												</table>\n    												<!-- end of right column --></td>\n    											</tr>\n    										</tbody>\n    									</table>\n    									</td>\n    								</tr>\n    								<!-- Spacing -->\n    								<tr>\n    									<td height=\"20\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\">&nbsp;</td>\n    								</tr>\n    								<!-- Spacing -->\n    							</tbody>\n    						</table>\n    						</td>\n    					</tr>\n    				</tbody>\n    			</table>\n    			</td>\n    		</tr>\n    	</tbody>\n    </table>\n    <!-- /story three -->\n\n\n\n\n\n    <!-- story four -->\n    <table bgcolor=\"#d8d8d8\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" id=\"backgroundTable\" st-sortable=\"left-image\" width=\"100%\">\n    	<tbody>\n    		<tr>\n    			<td>\n    			<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"700\">\n    				<tbody>\n    					<tr>\n    						<td width=\"100%\">\n    						<table align=\"center\" bgcolor=\"#ffffff\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"700\">\n    							<tbody>\n                                <!-- Spacing -->\n    								<tr>\n    									<td bgcolor=\"#076187\" height=\"0\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\">&nbsp;</td>\n    								</tr>\n    								<!-- Spacing -->\n                                <!-- Spacing -->\n    								<tr>\n    									<td class=\"desktop-spacer\" height=\"20\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\">&nbsp;</td>\n    								</tr>\n    								<!-- Spacing -->\n    								<tr>\n    									<td>\n    									<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"660\">\n    										<tbody>\n    											<tr>\n    												<td><!-- Start of left column -->\n    												<table align=\"left\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"330\">\n    													<tbody><!-- image -->\n    														<tr>\n    															<td align=\"center\" class=\"devicewidth\" height=\"150\" valign=\"top\" width=\"330\"><a href=\"#\"><img alt=\"\" border=\"0\" class=\"col2img\" src=\"https://civicrm.org/sites/default/files/civicrm/custom/images/330x150.png\" style=\"display:block; border:none; outline:none; text-decoration:none; display:block;\" width=\"330\" /></a></td>\n    														</tr>\n    														<!-- /image -->\n    													</tbody>\n    												</table>\n    												<!-- end of left column --><!-- spacing for mobile devices-->\n\n    												<table align=\"left\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"mobilespacing\">\n    													<tbody>\n    														<tr>\n    															<td height=\"15\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\" width=\"100%\">&nbsp;</td>\n    														</tr>\n    													</tbody>\n    												</table>\n    												<!-- end of for mobile devices--><!-- start of right column -->\n\n    												<table align=\"right\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidthmob\" width=\"310\">\n    													<tbody>\n    														<tr>\n    															<td class=\"padding-top-right15\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 18px;text-align:left; line-height: 24px;\"><a href=\"#\" style=\"color:#076187; text-decoration:none; \" target=\"_blank\">Heading Here</a><a href=\"#\" style=\"color:#076187; text-decoration:none;\" target=\"_blank\" title=\"Google Summer of Code\"></a></td>\n    														</tr>\n    														<!-- end of title --><!-- Spacing -->\n    														<tr>\n    															<td height=\"15\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\" width=\"100%\">&nbsp;</td>\n    														</tr>\n    														<!-- /Spacing --><!-- content -->\n    														<tr>\n    															<td class=\"padding-right15\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 14px; color: #7a6e67; text-align:left; line-height: 24px;\"><span class=\"padding-right15\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 14px; color: #7a6e67; text-align:left; line-height: 24px;\">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod\n                                                                tempor incididunt ut labore et dolore magna </span></td>\n    														</tr>\n    														<tr>\n    															<td style=\"font-family: Helvetica, arial, sans-serif; font-size: 14px; font-weight:bold; color: #333333; text-align:left;line-height: 24px; padding-top:10px;\"><a href=\"#\" style=\"color:#80C457;text-decoration:none;font-weight:bold;\" target=\"_blank\" title=\"Google Summer of Code\">Read More</a></td>\n    														</tr>\n    														<!-- /button --><!-- end of content -->\n    													</tbody>\n    												</table>\n    												<!-- end of right column --></td>\n    											</tr>\n    										</tbody>\n    									</table>\n    									</td>\n    								</tr>\n    								<!-- Spacing -->\n    								<tr>\n                       <td height=\"15\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\" width=\"100%\">&nbsp;</td>\n                    </tr>\n                    <!-- /Spacing -->\n                    <tr>\n                      <td style=\"padding: 15px;\">\n                      <p style=\"font-family: Helvetica, arial, sans-serif; font-size: 16px; color:#076187; text-align:left; line-height: 26px; padding-bottom:10px;\">Remember to link the facebook and twitter links below to your pages!</p>\n                      </td>\n    								</tr>\n    								<!-- Spacing -->\n    							</tbody>\n    						</table>\n    						</td>\n    					</tr>\n    				</tbody>\n    			</table>\n    			</td>\n    		</tr>\n    	</tbody>\n    </table>\n    <!-- /story four -->\n\n    <!-- footer -->\n\n    <!-- End of footer --><!-- Start of postfooter -->\n    <table bgcolor=\"#d8d8d8\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" id=\"backgroundTable\" st-sortable=\"footer\" width=\"100%\">\n    	<tbody>\n    		<tr>\n    			<td>\n    			<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"700\">\n            <tbody>\n              <tr>\n                <td width=\"100%\">\n                  <table align=\"center\" bgcolor=\"#89c66b\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"700\">\n    				        <tbody><!-- Spacing -->\n    					        <tr>\n                        <td height=\"10\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\">&nbsp;</td>\n    					        </tr>\n    					        <!-- Spacing -->\n    					        <tr>\n                        <td><!-- logo -->\n                        <table align=\"left\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"250\">\n            							<tbody>\n            								<tr>\n                               <td width=\"20\">&nbsp;</td>\n                              <td align=\"left\" height=\"40\" width=\"250\"><span style=\"font-family: Helvetica, arial, sans-serif; font-size: 13px; text-align:left; line-height: 26px; padding-bottom:10px;\"><a href=\"{action.unsubscribeUrl}\" style=\"color: #f0f0f0;\">Unsubscribe | </a><a href=\"{action.subscribeUrl}\" style=\"color: #f0f0f0;\">Subscribe |</a> <a href=\"{action.optOutUrl}\" style=\"color: #f0f0f0;\">Opt out</a></span></td>\n                            </tr>\n      											<tr>\n      												<td width=\"20\">&nbsp;</td>\n      												<td align=\"left\" height=\"40\" width=\"250\"><span style=\"font-family: Helvetica, arial, sans-serif; font-size: 13px; text-align:left; line-height: 26px; padding-bottom:10px; color: #f0f0f0;\">{domain.address}</span></td>\n      											</tr>\n                          </tbody>\n                        </table>\n                        <!-- end of logo --><!-- start of social icons -->\n      									<table align=\"right\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" height=\"40\" vaalign=\"middle\" width=\"60\">\n      										<tbody>\n      											<tr>\n      												<td align=\"left\" height=\"22\" width=\"22\">\n                                <div class=\"imgpop\"><a href=\"#\" target=\"_blank\"><img alt=\"\" border=\"0\" height=\"22\" src=\"https://civicrm.org/sites/default/files/civicrm/custom/images/facebook.png\" style=\"display:block; border:none; outline:none; text-decoration:none;\" width=\"22\" /> </a></div>      											  </td>\n      												<td align=\"left\" style=\"font-size:1px; line-height:1px;\" width=\"10\">&nbsp;</td>\n      												<td align=\"right\" height=\"22\" width=\"22\">\n      												<div class=\"imgpop\"><a href=\"#\" target=\"_blank\"><img alt=\"\" border=\"0\" height=\"22\" src=\"https://civicrm.org/sites/default/files/civicrm/custom/images/twitter.png\" style=\"display:block; border:none; outline:none; text-decoration:none;\" width=\"22\" /> </a></div>\n      												</td>\n      												<td align=\"left\" style=\"font-size:1px; line-height:1px;\" width=\"20\">&nbsp;</td>\n      											</tr>\n      										</tbody>\n      									</table>\n    									<!-- end of social icons --></td>\n    								</tr>\n    								<!-- Spacing -->\n    								<tr>\n    									<td height=\"10\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\">&nbsp;</td>\n    								</tr>\n    								<!-- Spacing -->\n    								<tr>\n    									<td bgcolor=\"#80C457\" height=\"10\" width=\"100%\">&nbsp;</td>\n    								</tr>\n    								<!-- Spacing -->\n    							</tbody>\n    						</table>\n    						</td>\n    					</tr>\n    				</tbody>\n    			</table>\n    			</td>\n    		</tr>\n    	</tbody>\n    </table>\n    <!-- End of footer -->\n  </body>\n</html>\n',1,NULL,1,0,0,NULL);
+INSERT INTO `civicrm_msg_template` (`id`, `msg_title`, `msg_subject`, `msg_text`, `msg_html`, `is_active`, `workflow_id`, `is_default`, `is_reserved`, `is_sms`, `pdf_format_id`) VALUES (1,'Cases - Send Copy of an Activity','{if $idHash}[case #{$idHash}]{/if} {$activitySubject}\n','===========================================================\n{ts}Activity Summary{/ts} - {$activityTypeName}\n===========================================================\n{if $isCaseActivity}\n{ts}Your Case Role(s){/ts} : {$contact.role}\n{if $manageCaseURL}\n{ts}Manage Case{/ts} : {$manageCaseURL}\n{/if}\n{/if}\n\n{if $editActURL}\n{ts}Edit activity{/ts} : {$editActURL}\n{/if}\n{if $viewActURL}\n{ts}View activity{/ts} : {$viewActURL}\n{/if}\n\n{foreach from=$activity.fields item=field}\n{if $field.type eq \'Date\'}\n{$field.label}{if $field.category}({$field.category}){/if} : {$field.value|crmDate:$config->dateformatDatetime}\n{else}\n{$field.label}{if $field.category}({$field.category}){/if} : {$field.value}\n{/if}\n{/foreach}\n\n{foreach from=$activity.customGroups key=customGroupName item=customGroup}\n==========================================================\n{$customGroupName}\n==========================================================\n{foreach from=$customGroup item=field}\n{if $field.type eq \'Date\'}\n{$field.label} : {$field.value|crmDate:$config->dateformatDatetime}\n{else}\n{$field.label} : {$field.value}\n{/if}\n{/foreach}\n\n{/foreach}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Activity Summary{/ts} - {$activityTypeName}\n      </th>\n     </tr>\n     {if $isCaseActivity}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Your Case Role(s){/ts}\n       </td>\n       <td {$valueStyle}>\n        {$contact.role}\n       </td>\n      </tr>\n      {if $manageCaseURL}\n       <tr>\n       <td colspan=\"2\" {$valueStyle}>\n     <a href=\"{$manageCaseURL}\" title=\"{ts}Manage Case{/ts}\">{ts}Manage Case{/ts}</a>\n       </td>\n       </tr>\n      {/if}\n     {/if}\n     {if $editActURL}\n     <tr>\n       <td colspan=\"2\" {$valueStyle}>\n   <a href=\"{$editActURL}\" title=\"{ts}Edit activity{/ts}\">{ts}Edit activity{/ts}</a>\n       </td>\n     </tr>\n     {/if}\n     {if $viewActURL}\n     <tr>\n       <td colspan=\"2\" {$valueStyle}>\n   <a href=\"{$viewActURL}\" title=\"{ts}View activity{/ts}\">{ts}View activity{/ts}</a>\n       </td>\n     </tr>\n     {/if}\n     {foreach from=$activity.fields item=field}\n      <tr>\n       <td {$labelStyle}>\n        {$field.label}{if $field.category}({$field.category}){/if}\n       </td>\n       <td {$valueStyle}>\n        {if $field.type eq \'Date\'}\n         {$field.value|crmDate:$config->dateformatDatetime}\n        {else}\n         {$field.value}\n        {/if}\n       </td>\n      </tr>\n     {/foreach}\n\n     {foreach from=$activity.customGroups key=customGroupName item=customGroup}\n      <tr>\n       <th {$headerStyle}>\n        {$customGroupName}\n       </th>\n      </tr>\n      {foreach from=$customGroup item=field}\n       <tr>\n        <td {$labelStyle}>\n         {$field.label}\n        </td>\n        <td {$valueStyle}>\n         {if $field.type eq \'Date\'}\n          {$field.value|crmDate:$config->dateformatDatetime}\n         {else}\n          {$field.value}\n         {/if}\n        </td>\n       </tr>\n      {/foreach}\n     {/foreach}\n    </table>\n   </td>\n  </tr>\n </table>\n</center>\n\n</body>\n</html>\n',1,819,1,0,0,NULL),(2,'Cases - Send Copy of an Activity','{if $idHash}[case #{$idHash}]{/if} {$activitySubject}\n','===========================================================\n{ts}Activity Summary{/ts} - {$activityTypeName}\n===========================================================\n{if $isCaseActivity}\n{ts}Your Case Role(s){/ts} : {$contact.role}\n{if $manageCaseURL}\n{ts}Manage Case{/ts} : {$manageCaseURL}\n{/if}\n{/if}\n\n{if $editActURL}\n{ts}Edit activity{/ts} : {$editActURL}\n{/if}\n{if $viewActURL}\n{ts}View activity{/ts} : {$viewActURL}\n{/if}\n\n{foreach from=$activity.fields item=field}\n{if $field.type eq \'Date\'}\n{$field.label}{if $field.category}({$field.category}){/if} : {$field.value|crmDate:$config->dateformatDatetime}\n{else}\n{$field.label}{if $field.category}({$field.category}){/if} : {$field.value}\n{/if}\n{/foreach}\n\n{foreach from=$activity.customGroups key=customGroupName item=customGroup}\n==========================================================\n{$customGroupName}\n==========================================================\n{foreach from=$customGroup item=field}\n{if $field.type eq \'Date\'}\n{$field.label} : {$field.value|crmDate:$config->dateformatDatetime}\n{else}\n{$field.label} : {$field.value}\n{/if}\n{/foreach}\n\n{/foreach}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Activity Summary{/ts} - {$activityTypeName}\n      </th>\n     </tr>\n     {if $isCaseActivity}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Your Case Role(s){/ts}\n       </td>\n       <td {$valueStyle}>\n        {$contact.role}\n       </td>\n      </tr>\n      {if $manageCaseURL}\n       <tr>\n       <td colspan=\"2\" {$valueStyle}>\n     <a href=\"{$manageCaseURL}\" title=\"{ts}Manage Case{/ts}\">{ts}Manage Case{/ts}</a>\n       </td>\n       </tr>\n      {/if}\n     {/if}\n     {if $editActURL}\n     <tr>\n       <td colspan=\"2\" {$valueStyle}>\n   <a href=\"{$editActURL}\" title=\"{ts}Edit activity{/ts}\">{ts}Edit activity{/ts}</a>\n       </td>\n     </tr>\n     {/if}\n     {if $viewActURL}\n     <tr>\n       <td colspan=\"2\" {$valueStyle}>\n   <a href=\"{$viewActURL}\" title=\"{ts}View activity{/ts}\">{ts}View activity{/ts}</a>\n       </td>\n     </tr>\n     {/if}\n     {foreach from=$activity.fields item=field}\n      <tr>\n       <td {$labelStyle}>\n        {$field.label}{if $field.category}({$field.category}){/if}\n       </td>\n       <td {$valueStyle}>\n        {if $field.type eq \'Date\'}\n         {$field.value|crmDate:$config->dateformatDatetime}\n        {else}\n         {$field.value}\n        {/if}\n       </td>\n      </tr>\n     {/foreach}\n\n     {foreach from=$activity.customGroups key=customGroupName item=customGroup}\n      <tr>\n       <th {$headerStyle}>\n        {$customGroupName}\n       </th>\n      </tr>\n      {foreach from=$customGroup item=field}\n       <tr>\n        <td {$labelStyle}>\n         {$field.label}\n        </td>\n        <td {$valueStyle}>\n         {if $field.type eq \'Date\'}\n          {$field.value|crmDate:$config->dateformatDatetime}\n         {else}\n          {$field.value}\n         {/if}\n        </td>\n       </tr>\n      {/foreach}\n     {/foreach}\n    </table>\n   </td>\n  </tr>\n </table>\n</center>\n\n</body>\n</html>\n',1,819,0,1,0,NULL),(3,'Contributions - Duplicate Organization Alert','{ts}CiviContribute Alert: Possible Duplicate Contact Record{/ts} - {contact.display_name}\n','{ts}A contribution / membership signup was made on behalf of the organization listed below.{/ts}\n{ts}The information provided matched multiple existing database records based on the configured Duplicate Matching Rules for your site.{/ts}\n\n{ts}Organization Name{/ts}: {$onBehalfName}\n{ts}Organization Email{/ts}: {$onBehalfEmail}\n{ts}Organization Contact ID{/ts}: {$onBehalfID}\n\n{ts}If you think this may be a duplicate contact which should be merged with an existing record - Go to \"Contacts >> Find and Merge Duplicate Contacts\". Use the strict rule for Organizations to find the potential duplicates and merge them if appropriate.{/ts}\n\n{if $receiptMessage}\n###########################################################\n{ts}Copy of Contribution Receipt{/ts}\n\n###########################################################\n{$receiptMessage}\n\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    <p>{ts}A contribution / membership signup was made on behalf of the organization listed below.{/ts}</p>\n    <p>{ts}The information provided matched multiple existing database records based on the configured Duplicate Matching Rules for your site.{/ts}</p>\n   </td>\n  </tr>\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <td {$labelStyle}>\n       {ts}Organization Name{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$onBehalfName}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Organization Email{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$onBehalfEmail}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Organization Contact ID{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$onBehalfID}\n      </td>\n     </tr>\n    </table>\n   </td>\n  </tr>\n  <tr>\n   <td>\n    <p>{ts}If you think this may be a duplicate contact which should be merged with an existing record - Go to \"Contacts >> Find and Merge Duplicate Contacts\". Use the strict rule for Organizations to find the potential duplicates and merge them if appropriate.{/ts}</p>\n   </td>\n  </tr>\n  {if $receiptMessage}\n   <tr>\n    <td>\n     <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n      <tr>\n       <th {$headerStyle}>\n        {ts}Copy of Contribution Receipt{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {* FIXME: the below is most probably not HTML-ised *}\n        {$receiptMessage}\n       </td>\n      </tr>\n     </table>\n    </td>\n   </tr>\n  {/if}\n </table>\n</center>\n\n</body>\n</html>\n',1,820,1,0,0,NULL),(4,'Contributions - Duplicate Organization Alert','{ts}CiviContribute Alert: Possible Duplicate Contact Record{/ts} - {contact.display_name}\n','{ts}A contribution / membership signup was made on behalf of the organization listed below.{/ts}\n{ts}The information provided matched multiple existing database records based on the configured Duplicate Matching Rules for your site.{/ts}\n\n{ts}Organization Name{/ts}: {$onBehalfName}\n{ts}Organization Email{/ts}: {$onBehalfEmail}\n{ts}Organization Contact ID{/ts}: {$onBehalfID}\n\n{ts}If you think this may be a duplicate contact which should be merged with an existing record - Go to \"Contacts >> Find and Merge Duplicate Contacts\". Use the strict rule for Organizations to find the potential duplicates and merge them if appropriate.{/ts}\n\n{if $receiptMessage}\n###########################################################\n{ts}Copy of Contribution Receipt{/ts}\n\n###########################################################\n{$receiptMessage}\n\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    <p>{ts}A contribution / membership signup was made on behalf of the organization listed below.{/ts}</p>\n    <p>{ts}The information provided matched multiple existing database records based on the configured Duplicate Matching Rules for your site.{/ts}</p>\n   </td>\n  </tr>\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <td {$labelStyle}>\n       {ts}Organization Name{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$onBehalfName}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Organization Email{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$onBehalfEmail}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Organization Contact ID{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$onBehalfID}\n      </td>\n     </tr>\n    </table>\n   </td>\n  </tr>\n  <tr>\n   <td>\n    <p>{ts}If you think this may be a duplicate contact which should be merged with an existing record - Go to \"Contacts >> Find and Merge Duplicate Contacts\". Use the strict rule for Organizations to find the potential duplicates and merge them if appropriate.{/ts}</p>\n   </td>\n  </tr>\n  {if $receiptMessage}\n   <tr>\n    <td>\n     <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n      <tr>\n       <th {$headerStyle}>\n        {ts}Copy of Contribution Receipt{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {* FIXME: the below is most probably not HTML-ised *}\n        {$receiptMessage}\n       </td>\n      </tr>\n     </table>\n    </td>\n   </tr>\n  {/if}\n </table>\n</center>\n\n</body>\n</html>\n',1,820,0,1,0,NULL),(5,'Contributions - Receipt (off-line)','{ts}Contribution Receipt{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{if $formValues.receipt_text}\n{$formValues.receipt_text}\n{else}{ts}Below you will find a receipt for this contribution.{/ts}{/if}\n\n===========================================================\n{ts}Contribution Information{/ts}\n\n===========================================================\n{ts}Financial Type{/ts}: {$formValues.contributionType_name}\n{if $lineItem}\n{foreach from=$lineItem item=value key=priceset}\n---------------------------------------------------------\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_qty}{ts}Qty{/ts}{/capture}\n{capture assign=ts_each}{ts}Each{/ts}{/capture}\n{if $getTaxDetails}\n{capture assign=ts_subtotal}{ts}Subtotal{/ts}{/capture}\n{capture assign=ts_taxRate}{ts}Tax Rate{/ts}{/capture}\n{capture assign=ts_taxAmount}{ts}Tax Amount{/ts}{/capture}\n{/if}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_qty|string_format:\"%5s\"} {$ts_each|string_format:\"%10s\"} {if $getTaxDetails} {$ts_subtotal|string_format:\"%10s\"} {$ts_taxRate} {$ts_taxAmount|string_format:\"%10s\"} {/if} {$ts_total|string_format:\"%10s\"}\n----------------------------------------------------------\n{foreach from=$value item=line}\n{capture assign=ts_item}{if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description} {$line.description}{/if}{/capture}{$ts_item|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.qty|string_format:\"%5s\"} {$line.unit_price|crmMoney:$currency|string_format:\"%10s\"} {if $getTaxDetails}{$line.unit_price*$line.qty|crmMoney:$currency|string_format:\"%10s\"} {if $line.tax_rate != \"\" || $line.tax_amount != \"\"} {$line.tax_rate|string_format:\"%.2f\"} %   {$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"} {else}                  {/if} {/if}   {$line.line_total+$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"}\n{/foreach}\n{/foreach}\n{/if}\n\n{if $getTaxDetails && $dataArray}\n{ts}Amount before Tax{/ts} : {$formValues.total_amount-$totalTaxAmount|crmMoney:$currency}\n\n{foreach from=$dataArray item=value key=priceset}\n{if $priceset ||  $priceset == 0 || $value != \'\'}\n{$taxTerm} {$priceset|string_format:\"%.2f\"}% : {$value|crmMoney:$currency}\n{else}\n{ts}No{/ts} {$taxTerm} : {$value|crmMoney:$currency}\n{/if}\n{/foreach}\n{/if}\n\n{if isset($totalTaxAmount) && $totalTaxAmount !== \'null\'}\n{ts}Total Tax Amount{/ts} : {$totalTaxAmount|crmMoney:$currency}\n{/if}\n{ts}Total Amount{/ts} : {$formValues.total_amount|crmMoney:$currency}\n{if $receive_date}\n{ts}Date Received{/ts}: {$receive_date|truncate:10:\'\'|crmDate}\n{/if}\n{if $receipt_date}\n{ts}Receipt Date{/ts}: {$receipt_date|truncate:10:\'\'|crmDate}\n{/if}\n{if $formValues.paidBy and !$formValues.hidden_CreditCard}\n{ts}Paid By{/ts}: {$formValues.paidBy}\n{if $formValues.check_number}\n{ts}Check Number{/ts}: {$formValues.check_number}\n{/if}\n{/if}\n{if $formValues.trxn_id}\n{ts}Transaction ID{/ts}: {$formValues.trxn_id}\n{/if}\n\n{if $ccContribution}\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billingName}\n{$address}\n\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n{if $customGroup}\n{foreach from=$customGroup item=value key=customName}\n===========================================================\n{$customName}\n===========================================================\n{foreach from=$value item=v key=n}\n{$n}: {$v}\n{/foreach}\n{/foreach}\n{/if}\n\n{if $softCreditTypes and $softCredits}\n{foreach from=$softCreditTypes item=softCreditType key=n}\n===========================================================\n{$softCreditType}\n===========================================================\n{foreach from=$softCredits.$n item=value key=label}\n{$label}: {$value}\n{/foreach}\n{/foreach}\n{/if}\n\n{if $formValues.product_name}\n===========================================================\n{ts}Premium Information{/ts}\n\n===========================================================\n{$formValues.product_name}\n{if $formValues.product_option}\n{ts}Option{/ts}: {$formValues.product_option}\n{/if}\n{if $formValues.product_sku}\n{ts}SKU{/ts}: {$formValues.product_sku}\n{/if}\n{if $fulfilled_date}\n{ts}Sent{/ts}: {$fulfilled_date|crmDate}\n{/if}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    {if $formValues.receipt_text}\n     <p>{$formValues.receipt_text|htmlize}</p>\n    {else}\n     <p>{ts}Below you will find a receipt for this contribution.{/ts}</p>\n    {/if}\n   </td>\n  </tr>\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Contribution Information{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Financial Type{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$formValues.contributionType_name}\n      </td>\n     </tr>\n\n     {if $lineItem and !$is_quick_config}\n      {foreach from=$lineItem item=value key=priceset}\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         <table> {* FIXME: style this table so that it looks like the text version (justification, etc.) *}\n          <tr>\n           <th>{ts}Item{/ts}</th>\n           <th>{ts}Qty{/ts}</th>\n           <th>{ts}Each{/ts}</th>\n           {if $getTaxDetails}\n             <th>{ts}Subtotal{/ts}</th>\n             <th>{ts}Tax Rate{/ts}</th>\n             <th>{ts}Tax Amount{/ts}</th>\n           {/if}\n           <th>{ts}Total{/ts}</th>\n          </tr>\n          {foreach from=$value item=line}\n           <tr>\n            <td>\n            {if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description}<div>{$line.description|truncate:30:\"...\"}</div>{/if}\n            </td>\n            <td>\n             {$line.qty}\n            </td>\n            <td>\n             {$line.unit_price|crmMoney:$currency}\n            </td>\n            {if $getTaxDetails}\n              <td>\n                {$line.unit_price*$line.qty|crmMoney:$currency}\n              </td>\n              {if $line.tax_rate != \"\" || $line.tax_amount != \"\"}\n                <td>\n                  {$line.tax_rate|string_format:\"%.2f\"}%\n                </td>\n                <td>\n                  {$line.tax_amount|crmMoney:$currency}\n                </td>\n              {else}\n                <td></td>\n                <td></td>\n              {/if}\n            {/if}\n            <td>\n             {$line.line_total+$line.tax_amount|crmMoney:$currency}\n            </td>\n           </tr>\n          {/foreach}\n         </table>\n        </td>\n       </tr>\n      {/foreach}\n     {/if}\n     {if $getTaxDetails && $dataArray}\n       <tr>\n         <td {$labelStyle}>\n           {ts} Amount before Tax : {/ts}\n         </td>\n         <td {$valueStyle}>\n           {$formValues.total_amount-$totalTaxAmount|crmMoney:$currency}\n         </td>\n       </tr>\n\n      {foreach from=$dataArray item=value key=priceset}\n        <tr>\n        {if $priceset ||  $priceset == 0 || $value != \'\'}\n          <td>&nbsp;{$taxTerm} {$priceset|string_format:\"%.2f\"}%</td>\n          <td>&nbsp;{$value|crmMoney:$currency}</td>\n        {else}\n          <td>&nbsp;{ts}No{/ts} {$taxTerm}</td>\n          <td>&nbsp;{$value|crmMoney:$currency}</td>\n        {/if}\n        </tr>\n      {/foreach}\n     {/if}\n\n     {if isset($totalTaxAmount) && $totalTaxAmount !== \'null\'}\n      <tr>\n        <td {$labelStyle}>\n          {ts}Total Tax Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n          {$totalTaxAmount|crmMoney:$currency}\n        </td>\n      </tr>\n     {/if}\n\n     <tr>\n      <td {$labelStyle}>\n       {ts}Total Amount{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$formValues.total_amount|crmMoney:$currency}\n      </td>\n     </tr>\n\n     {if $receive_date}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Date Received{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$receive_date|truncate:10:\'\'|crmDate}\n       </td>\n      </tr>\n     {/if}\n\n      {if $receipt_date}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Receipt Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$receipt_date|truncate:10:\'\'|crmDate}\n       </td>\n      </tr>\n     {/if}\n\n     {if $formValues.paidBy and !$formValues.hidden_CreditCard}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Paid By{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$formValues.paidBy}\n       </td>\n      </tr>\n      {if $formValues.check_number}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Check Number{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$formValues.check_number}\n        </td>\n       </tr>\n      {/if}\n     {/if}\n\n     {if $formValues.trxn_id}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Transaction ID{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$formValues.trxn_id}\n       </td>\n      </tr>\n     {/if}\n\n     {if $ccContribution}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Billing Name and Address{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$billingName}<br />\n        {$address|nl2br}\n       </td>\n      </tr>\n      <tr>\n       <th {$headerStyle}>\n        {ts}Credit Card Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$credit_card_type}<br />\n        {$credit_card_number}<br />\n        {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n       </td>\n      </tr>\n     {/if}\n\n     {if $softCreditTypes and $softCredits}\n      {foreach from=$softCreditTypes item=softCreditType key=n}\n       <tr>\n        <th {$headerStyle}>\n         {$softCreditType}\n        </th>\n       </tr>\n       {foreach from=$softCredits.$n item=value key=label}\n         <tr>\n          <td {$labelStyle}>\n           {$label}\n          </td>\n          <td {$valueStyle}>\n           {$value}\n          </td>\n         </tr>\n        {/foreach}\n       {/foreach}\n     {/if}\n\n     {if $customGroup}\n      {foreach from=$customGroup item=value key=customName}\n       <tr>\n        <th {$headerStyle}>\n         {$customName}\n        </th>\n       </tr>\n       {foreach from=$value item=v key=n}\n        <tr>\n         <td {$labelStyle}>\n          {$n}\n         </td>\n         <td {$valueStyle}>\n          {$v}\n         </td>\n        </tr>\n       {/foreach}\n      {/foreach}\n     {/if}\n\n     {if $formValues.product_name}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Premium Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n        {$formValues.product_name}\n       </td>\n      </tr>\n      {if $formValues.product_option}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Option{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$formValues.product_option}\n        </td>\n       </tr>\n      {/if}\n      {if $formValues.product_sku}\n       <tr>\n        <td {$labelStyle}>\n         {ts}SKU{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$formValues.product_sku}\n        </td>\n       </tr>\n      {/if}\n      {if $fulfilled_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Sent{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$fulfilled_date|truncate:10:\'\'|crmDate}\n        </td>\n       </tr>\n      {/if}\n     {/if}\n\n    </table>\n   </td>\n  </tr>\n\n </table>\n</center>\n\n</body>\n</html>\n',1,821,1,0,0,NULL),(6,'Contributions - Receipt (off-line)','{ts}Contribution Receipt{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{if $formValues.receipt_text}\n{$formValues.receipt_text}\n{else}{ts}Below you will find a receipt for this contribution.{/ts}{/if}\n\n===========================================================\n{ts}Contribution Information{/ts}\n\n===========================================================\n{ts}Financial Type{/ts}: {$formValues.contributionType_name}\n{if $lineItem}\n{foreach from=$lineItem item=value key=priceset}\n---------------------------------------------------------\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_qty}{ts}Qty{/ts}{/capture}\n{capture assign=ts_each}{ts}Each{/ts}{/capture}\n{if $getTaxDetails}\n{capture assign=ts_subtotal}{ts}Subtotal{/ts}{/capture}\n{capture assign=ts_taxRate}{ts}Tax Rate{/ts}{/capture}\n{capture assign=ts_taxAmount}{ts}Tax Amount{/ts}{/capture}\n{/if}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_qty|string_format:\"%5s\"} {$ts_each|string_format:\"%10s\"} {if $getTaxDetails} {$ts_subtotal|string_format:\"%10s\"} {$ts_taxRate} {$ts_taxAmount|string_format:\"%10s\"} {/if} {$ts_total|string_format:\"%10s\"}\n----------------------------------------------------------\n{foreach from=$value item=line}\n{capture assign=ts_item}{if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description} {$line.description}{/if}{/capture}{$ts_item|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.qty|string_format:\"%5s\"} {$line.unit_price|crmMoney:$currency|string_format:\"%10s\"} {if $getTaxDetails}{$line.unit_price*$line.qty|crmMoney:$currency|string_format:\"%10s\"} {if $line.tax_rate != \"\" || $line.tax_amount != \"\"} {$line.tax_rate|string_format:\"%.2f\"} %   {$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"} {else}                  {/if} {/if}   {$line.line_total+$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"}\n{/foreach}\n{/foreach}\n{/if}\n\n{if $getTaxDetails && $dataArray}\n{ts}Amount before Tax{/ts} : {$formValues.total_amount-$totalTaxAmount|crmMoney:$currency}\n\n{foreach from=$dataArray item=value key=priceset}\n{if $priceset ||  $priceset == 0 || $value != \'\'}\n{$taxTerm} {$priceset|string_format:\"%.2f\"}% : {$value|crmMoney:$currency}\n{else}\n{ts}No{/ts} {$taxTerm} : {$value|crmMoney:$currency}\n{/if}\n{/foreach}\n{/if}\n\n{if isset($totalTaxAmount) && $totalTaxAmount !== \'null\'}\n{ts}Total Tax Amount{/ts} : {$totalTaxAmount|crmMoney:$currency}\n{/if}\n{ts}Total Amount{/ts} : {$formValues.total_amount|crmMoney:$currency}\n{if $receive_date}\n{ts}Date Received{/ts}: {$receive_date|truncate:10:\'\'|crmDate}\n{/if}\n{if $receipt_date}\n{ts}Receipt Date{/ts}: {$receipt_date|truncate:10:\'\'|crmDate}\n{/if}\n{if $formValues.paidBy and !$formValues.hidden_CreditCard}\n{ts}Paid By{/ts}: {$formValues.paidBy}\n{if $formValues.check_number}\n{ts}Check Number{/ts}: {$formValues.check_number}\n{/if}\n{/if}\n{if $formValues.trxn_id}\n{ts}Transaction ID{/ts}: {$formValues.trxn_id}\n{/if}\n\n{if $ccContribution}\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billingName}\n{$address}\n\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n{if $customGroup}\n{foreach from=$customGroup item=value key=customName}\n===========================================================\n{$customName}\n===========================================================\n{foreach from=$value item=v key=n}\n{$n}: {$v}\n{/foreach}\n{/foreach}\n{/if}\n\n{if $softCreditTypes and $softCredits}\n{foreach from=$softCreditTypes item=softCreditType key=n}\n===========================================================\n{$softCreditType}\n===========================================================\n{foreach from=$softCredits.$n item=value key=label}\n{$label}: {$value}\n{/foreach}\n{/foreach}\n{/if}\n\n{if $formValues.product_name}\n===========================================================\n{ts}Premium Information{/ts}\n\n===========================================================\n{$formValues.product_name}\n{if $formValues.product_option}\n{ts}Option{/ts}: {$formValues.product_option}\n{/if}\n{if $formValues.product_sku}\n{ts}SKU{/ts}: {$formValues.product_sku}\n{/if}\n{if $fulfilled_date}\n{ts}Sent{/ts}: {$fulfilled_date|crmDate}\n{/if}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    {if $formValues.receipt_text}\n     <p>{$formValues.receipt_text|htmlize}</p>\n    {else}\n     <p>{ts}Below you will find a receipt for this contribution.{/ts}</p>\n    {/if}\n   </td>\n  </tr>\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Contribution Information{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Financial Type{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$formValues.contributionType_name}\n      </td>\n     </tr>\n\n     {if $lineItem and !$is_quick_config}\n      {foreach from=$lineItem item=value key=priceset}\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         <table> {* FIXME: style this table so that it looks like the text version (justification, etc.) *}\n          <tr>\n           <th>{ts}Item{/ts}</th>\n           <th>{ts}Qty{/ts}</th>\n           <th>{ts}Each{/ts}</th>\n           {if $getTaxDetails}\n             <th>{ts}Subtotal{/ts}</th>\n             <th>{ts}Tax Rate{/ts}</th>\n             <th>{ts}Tax Amount{/ts}</th>\n           {/if}\n           <th>{ts}Total{/ts}</th>\n          </tr>\n          {foreach from=$value item=line}\n           <tr>\n            <td>\n            {if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description}<div>{$line.description|truncate:30:\"...\"}</div>{/if}\n            </td>\n            <td>\n             {$line.qty}\n            </td>\n            <td>\n             {$line.unit_price|crmMoney:$currency}\n            </td>\n            {if $getTaxDetails}\n              <td>\n                {$line.unit_price*$line.qty|crmMoney:$currency}\n              </td>\n              {if $line.tax_rate != \"\" || $line.tax_amount != \"\"}\n                <td>\n                  {$line.tax_rate|string_format:\"%.2f\"}%\n                </td>\n                <td>\n                  {$line.tax_amount|crmMoney:$currency}\n                </td>\n              {else}\n                <td></td>\n                <td></td>\n              {/if}\n            {/if}\n            <td>\n             {$line.line_total+$line.tax_amount|crmMoney:$currency}\n            </td>\n           </tr>\n          {/foreach}\n         </table>\n        </td>\n       </tr>\n      {/foreach}\n     {/if}\n     {if $getTaxDetails && $dataArray}\n       <tr>\n         <td {$labelStyle}>\n           {ts} Amount before Tax : {/ts}\n         </td>\n         <td {$valueStyle}>\n           {$formValues.total_amount-$totalTaxAmount|crmMoney:$currency}\n         </td>\n       </tr>\n\n      {foreach from=$dataArray item=value key=priceset}\n        <tr>\n        {if $priceset ||  $priceset == 0 || $value != \'\'}\n          <td>&nbsp;{$taxTerm} {$priceset|string_format:\"%.2f\"}%</td>\n          <td>&nbsp;{$value|crmMoney:$currency}</td>\n        {else}\n          <td>&nbsp;{ts}No{/ts} {$taxTerm}</td>\n          <td>&nbsp;{$value|crmMoney:$currency}</td>\n        {/if}\n        </tr>\n      {/foreach}\n     {/if}\n\n     {if isset($totalTaxAmount) && $totalTaxAmount !== \'null\'}\n      <tr>\n        <td {$labelStyle}>\n          {ts}Total Tax Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n          {$totalTaxAmount|crmMoney:$currency}\n        </td>\n      </tr>\n     {/if}\n\n     <tr>\n      <td {$labelStyle}>\n       {ts}Total Amount{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$formValues.total_amount|crmMoney:$currency}\n      </td>\n     </tr>\n\n     {if $receive_date}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Date Received{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$receive_date|truncate:10:\'\'|crmDate}\n       </td>\n      </tr>\n     {/if}\n\n      {if $receipt_date}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Receipt Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$receipt_date|truncate:10:\'\'|crmDate}\n       </td>\n      </tr>\n     {/if}\n\n     {if $formValues.paidBy and !$formValues.hidden_CreditCard}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Paid By{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$formValues.paidBy}\n       </td>\n      </tr>\n      {if $formValues.check_number}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Check Number{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$formValues.check_number}\n        </td>\n       </tr>\n      {/if}\n     {/if}\n\n     {if $formValues.trxn_id}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Transaction ID{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$formValues.trxn_id}\n       </td>\n      </tr>\n     {/if}\n\n     {if $ccContribution}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Billing Name and Address{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$billingName}<br />\n        {$address|nl2br}\n       </td>\n      </tr>\n      <tr>\n       <th {$headerStyle}>\n        {ts}Credit Card Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$credit_card_type}<br />\n        {$credit_card_number}<br />\n        {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n       </td>\n      </tr>\n     {/if}\n\n     {if $softCreditTypes and $softCredits}\n      {foreach from=$softCreditTypes item=softCreditType key=n}\n       <tr>\n        <th {$headerStyle}>\n         {$softCreditType}\n        </th>\n       </tr>\n       {foreach from=$softCredits.$n item=value key=label}\n         <tr>\n          <td {$labelStyle}>\n           {$label}\n          </td>\n          <td {$valueStyle}>\n           {$value}\n          </td>\n         </tr>\n        {/foreach}\n       {/foreach}\n     {/if}\n\n     {if $customGroup}\n      {foreach from=$customGroup item=value key=customName}\n       <tr>\n        <th {$headerStyle}>\n         {$customName}\n        </th>\n       </tr>\n       {foreach from=$value item=v key=n}\n        <tr>\n         <td {$labelStyle}>\n          {$n}\n         </td>\n         <td {$valueStyle}>\n          {$v}\n         </td>\n        </tr>\n       {/foreach}\n      {/foreach}\n     {/if}\n\n     {if $formValues.product_name}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Premium Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n        {$formValues.product_name}\n       </td>\n      </tr>\n      {if $formValues.product_option}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Option{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$formValues.product_option}\n        </td>\n       </tr>\n      {/if}\n      {if $formValues.product_sku}\n       <tr>\n        <td {$labelStyle}>\n         {ts}SKU{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$formValues.product_sku}\n        </td>\n       </tr>\n      {/if}\n      {if $fulfilled_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Sent{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$fulfilled_date|truncate:10:\'\'|crmDate}\n        </td>\n       </tr>\n      {/if}\n     {/if}\n\n    </table>\n   </td>\n  </tr>\n\n </table>\n</center>\n\n</body>\n</html>\n',1,821,0,1,0,NULL),(7,'Contributions - Receipt (on-line)','{if $is_pay_later}{ts}Invoice{/ts}{else}{ts}Receipt{/ts}{/if} - {$title} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n{if $receipt_text}\n{$receipt_text}\n{/if}\n{if $is_pay_later}\n\n===========================================================\n{$pay_later_receipt}\n===========================================================\n{/if}\n\n{if $amount}\n===========================================================\n{ts}Contribution Information{/ts}\n\n===========================================================\n{if $lineItem and $priceSetID and !$is_quick_config}\n{foreach from=$lineItem item=value key=priceset}\n---------------------------------------------------------\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_qty}{ts}Qty{/ts}{/capture}\n{capture assign=ts_each}{ts}Each{/ts}{/capture}\n{if $dataArray}\n{capture assign=ts_subtotal}{ts}Subtotal{/ts}{/capture}\n{capture assign=ts_taxRate}{ts}Tax Rate{/ts}{/capture}\n{capture assign=ts_taxAmount}{ts}Tax Amount{/ts}{/capture}\n{/if}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_qty|string_format:\"%5s\"} {$ts_each|string_format:\"%10s\"} {if $dataArray} {$ts_subtotal|string_format:\"%10s\"} {$ts_taxRate} {$ts_taxAmount|string_format:\"%10s\"} {/if} {$ts_total|string_format:\"%10s\"}\n----------------------------------------------------------\n{foreach from=$value item=line}\n{capture assign=ts_item}{if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description} {$line.description}{/if}{/capture}{$ts_item|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.qty|string_format:\"%5s\"} {$line.unit_price|crmMoney:$currency|string_format:\"%10s\"} {if $dataArray}{$line.unit_price*$line.qty|crmMoney:$currency|string_format:\"%10s\"} {if $line.tax_rate != \"\" || $line.tax_amount != \"\"}  {$line.tax_rate|string_format:\"%.2f\"} %  {$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"} {else}                  {/if}  {/if} {$line.line_total+$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"}\n{/foreach}\n{/foreach}\n\n{if $dataArray}\n{ts}Amount before Tax{/ts}: {$amount-$totalTaxAmount|crmMoney:$currency}\n\n{foreach from=$dataArray item=value key=priceset}\n{if $priceset || $priceset == 0}\n{$taxTerm} {$priceset|string_format:\"%.2f\"}%: {$value|crmMoney:$currency}\n{else}\n{ts}No{/ts} {$taxTerm}: {$value|crmMoney:$currency}\n{/if}\n{/foreach}\n{/if}\n\n{if $totalTaxAmount}\n{ts}Total Tax Amount{/ts}: {$totalTaxAmount|crmMoney:$currency}\n{/if}\n\n{ts}Total Amount{/ts}: {$amount|crmMoney:$currency}\n{else}\n{ts}Amount{/ts}: {$amount|crmMoney:$currency} {if $amount_level } - {$amount_level} {/if}\n{/if}\n{/if}\n{if $receive_date}\n\n{ts}Date{/ts}: {$receive_date|crmDate}\n{/if}\n{if $is_monetary and $trxn_id}\n{ts}Transaction #{/ts}: {$trxn_id}\n{/if}\n\n{if $is_recur}\n{ts}This is a recurring contribution.{/ts}\n\n{if $cancelSubscriptionUrl}\n{ts}You can cancel future contributions at:{/ts}\n\n{$cancelSubscriptionUrl}\n\n{/if}\n\n{if $updateSubscriptionBillingUrl}\n{ts}You can update billing details for this recurring contribution at:{/ts}\n\n{$updateSubscriptionBillingUrl}\n\n{/if}\n\n{if $updateSubscriptionUrl}\n{ts}You can update recurring contribution amount or change the number of installments for this recurring contribution at:{/ts}\n\n{$updateSubscriptionUrl}\n\n{/if}\n{/if}\n\n{if $honor_block_is_active}\n===========================================================\n{$soft_credit_type}\n===========================================================\n{foreach from=$honoreeProfile item=value key=label}\n{$label}: {$value}\n{/foreach}\n{elseif $softCreditTypes and $softCredits}\n{foreach from=$softCreditTypes item=softCreditType key=n}\n===========================================================\n{$softCreditType}\n===========================================================\n{foreach from=$softCredits.$n item=value key=label}\n{$label}: {$value}\n{/foreach}\n{/foreach}\n{/if}\n{if $pcpBlock}\n===========================================================\n{ts}Personal Campaign Page{/ts}\n\n===========================================================\n{ts}Display In Honor Roll{/ts}: {if $pcp_display_in_roll}{ts}Yes{/ts}{else}{ts}No{/ts}{/if}\n\n{if $pcp_roll_nickname}{ts}Nickname{/ts}: {$pcp_roll_nickname}{/if}\n\n{if $pcp_personal_note}{ts}Personal Note{/ts}: {$pcp_personal_note}{/if}\n\n{/if}\n{if $onBehalfProfile}\n===========================================================\n{ts}On Behalf Of{/ts}\n\n===========================================================\n{foreach from=$onBehalfProfile item=onBehalfValue key=onBehalfName}\n{$onBehalfName}: {$onBehalfValue}\n{/foreach}\n{/if}\n\n{if $billingName}\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billingName}\n{$address}\n\n{$email}\n{elseif $email}\n===========================================================\n{ts}Registered Email{/ts}\n\n===========================================================\n{$email}\n{/if} {* End billingName or Email*}\n{if $credit_card_type}\n\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n\n{if $selectPremium }\n===========================================================\n{ts}Premium Information{/ts}\n\n===========================================================\n{$product_name}\n{if $option}\n{ts}Option{/ts}: {$option}\n{/if}\n{if $sku}\n{ts}SKU{/ts}: {$sku}\n{/if}\n{if $start_date}\n{ts}Start Date{/ts}: {$start_date|crmDate}\n{/if}\n{if $end_date}\n{ts}End Date{/ts}: {$end_date|crmDate}\n{/if}\n{if $contact_email OR $contact_phone}\n\n{ts}For information about this premium, contact:{/ts}\n\n{if $contact_email}\n  {$contact_email}\n{/if}\n{if $contact_phone}\n  {$contact_phone}\n{/if}\n{/if}\n{if $is_deductible AND $price}\n\n{ts 1=$price|crmMoney:$currency}The value of this premium is %1. This may affect the amount of the tax deduction you can claim. Consult your tax advisor for more information.{/ts}{/if}\n{/if}\n\n{if $customPre}\n===========================================================\n{$customPre_grouptitle}\n\n===========================================================\n{foreach from=$customPre item=customValue key=customName}\n{if ( $trackingFields and ! in_array( $customName, $trackingFields ) ) or ! $trackingFields}\n {$customName}: {$customValue}\n{/if}\n{/foreach}\n{/if}\n\n\n{if $customPost}\n===========================================================\n{$customPost_grouptitle}\n\n===========================================================\n{foreach from=$customPost item=customValue key=customName}\n{if ( $trackingFields and ! in_array( $customName, $trackingFields ) ) or ! $trackingFields}\n {$customName}: {$customValue}\n{/if}\n{/foreach}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n     {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    {if $receipt_text}\n     <p>{$receipt_text|htmlize}</p>\n    {/if}\n\n    {if $is_pay_later}\n     <p>{$pay_later_receipt}</p> {* FIXME: this might be text rather than HTML *}\n    {/if}\n\n   </td>\n  </tr>\n  </table>\n  <table style=\"width:100%; max-width:500px; border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse;\">\n\n     {if $amount}\n\n\n      <tr>\n       <th {$headerStyle}>\n        {ts}Contribution Information{/ts}\n       </th>\n      </tr>\n\n      {if $lineItem and $priceSetID and !$is_quick_config}\n\n       {foreach from=$lineItem item=value key=priceset}\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          <table> {* FIXME: style this table so that it looks like the text version (justification, etc.) *}\n           <tr>\n            <th>{ts}Item{/ts}</th>\n            <th>{ts}Qty{/ts}</th>\n            <th>{ts}Each{/ts}</th>\n            {if $dataArray}\n             <th>{ts}Subtotal{/ts}</th>\n             <th>{ts}Tax Rate{/ts}</th>\n             <th>{ts}Tax Amount{/ts}</th>\n            {/if}\n            <th>{ts}Total{/ts}</th>\n           </tr>\n           {foreach from=$value item=line}\n            <tr>\n             <td>\n             {if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description}<div>{$line.description|truncate:30:\"...\"}</div>{/if}\n             </td>\n             <td>\n              {$line.qty}\n             </td>\n             <td>\n              {$line.unit_price|crmMoney:$currency}\n             </td>\n             {if $getTaxDetails}\n              <td>\n               {$line.unit_price*$line.qty|crmMoney:$currency}\n              </td>\n              {if $line.tax_rate != \"\" || $line.tax_amount != \"\"}\n               <td>\n                {$line.tax_rate|string_format:\"%.2f\"}%\n               </td>\n               <td>\n                {$line.tax_amount|crmMoney:$currency}\n               </td>\n              {else}\n               <td></td>\n               <td></td>\n              {/if}\n             {/if}\n             <td>\n              {$line.line_total+$line.tax_amount|crmMoney:$currency}\n             </td>\n            </tr>\n           {/foreach}\n          </table>\n         </td>\n        </tr>\n       {/foreach}\n       {if $dataArray}\n        <tr>\n         <td {$labelStyle}>\n          {ts} Amount before Tax : {/ts}\n         </td>\n         <td {$valueStyle}>\n          {$amount-$totalTaxAmount|crmMoney:$currency}\n         </td>\n        </tr>\n\n        {foreach from=$dataArray item=value key=priceset}\n         <tr>\n          {if $priceset || $priceset == 0}\n           <td>&nbsp;{$taxTerm} {$priceset|string_format:\"%.2f\"}%</td>\n           <td>&nbsp;{$value|crmMoney:$currency}</td>\n          {else}\n           <td>&nbsp;{ts}No{/ts} {$taxTerm}</td>\n           <td>&nbsp;{$value|crmMoney:$currency}</td>\n          {/if}\n         </tr>\n        {/foreach}\n\n       {/if}\n       {if $totalTaxAmount}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Total Tax{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$totalTaxAmount|crmMoney:$currency}\n         </td>\n        </tr>\n       {/if}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Total Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$amount|crmMoney:$currency}\n        </td>\n       </tr>\n\n      {else}\n\n      {if $totalTaxAmount}\n         <tr>\n           <td {$labelStyle}>\n             {ts}Total Tax Amount{/ts}\n           </td>\n           <td {$valueStyle}>\n             {$totalTaxAmount|crmMoney:$currency}\n           </td>\n         </tr>\n       {/if}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$amount|crmMoney:$currency} {if $amount_level} - {$amount_level}{/if}\n        </td>\n       </tr>\n\n      {/if}\n\n     {/if}\n\n\n     {if $receive_date}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$receive_date|crmDate}\n       </td>\n      </tr>\n     {/if}\n\n     {if $is_monetary and $trxn_id}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Transaction #{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$trxn_id}\n       </td>\n      </tr>\n     {/if}\n\n    {if $is_recur}\n      <tr>\n        <td  colspan=\"2\" {$labelStyle}>\n          {ts}This is a recurring contribution.{/ts}\n          {if $cancelSubscriptionUrl}\n            {ts 1=$cancelSubscriptionUrl}You can cancel future contributions by <a href=\"%1\">visiting this web page</a>.{/ts}\n          {/if}\n        </td>\n      </tr>\n      {if $updateSubscriptionBillingUrl}\n        <tr>\n          <td colspan=\"2\" {$labelStyle}>\n            {ts 1=$updateSubscriptionBillingUrl}You can update billing details for this recurring contribution by <a href=\"%1\">visiting this web page</a>.{/ts}\n          </td>\n        </tr>\n      {/if}\n      {if $updateSubscriptionUrl}\n        <tr>\n          <td colspan=\"2\" {$labelStyle}>\n            {ts 1=$updateSubscriptionUrl}You can update recurring contribution amount or change the number of installments for this recurring contribution by <a href=\"%1\">visiting this web page</a>.{/ts}\n          </td>\n        </tr>\n      {/if}\n    {/if}\n\n     {if $honor_block_is_active}\n      <tr>\n       <th {$headerStyle}>\n        {$soft_credit_type}\n       </th>\n      </tr>\n      {foreach from=$honoreeProfile item=value key=label}\n        <tr>\n         <td {$labelStyle}>\n          {$label}\n         </td>\n         <td {$valueStyle}>\n          {$value}\n         </td>\n        </tr>\n      {/foreach}\n      {elseif $softCreditTypes and $softCredits}\n      {foreach from=$softCreditTypes item=softCreditType key=n}\n       <tr>\n        <th {$headerStyle}>\n         {$softCreditType}\n        </th>\n       </tr>\n       {foreach from=$softCredits.$n item=value key=label}\n         <tr>\n          <td {$labelStyle}>\n           {$label}\n          </td>\n          <td {$valueStyle}>\n           {$value}\n          </td>\n         </tr>\n        {/foreach}\n       {/foreach}\n     {/if}\n\n     {if $pcpBlock}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Personal Campaign Page{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td {$labelStyle}>\n        {ts}Display In Honor Roll{/ts}\n       </td>\n       <td {$valueStyle}>\n        {if $pcp_display_in_roll}{ts}Yes{/ts}{else}{ts}No{/ts}{/if}\n       </td>\n      </tr>\n      {if $pcp_roll_nickname}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Nickname{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$pcp_roll_nickname}\n        </td>\n       </tr>\n      {/if}\n      {if $pcp_personal_note}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Personal Note{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$pcp_personal_note}\n        </td>\n       </tr>\n      {/if}\n     {/if}\n\n     {if $onBehalfProfile}\n      <tr>\n       <th {$headerStyle}>\n        {$onBehalfProfile_grouptitle}\n       </th>\n      </tr>\n      {foreach from=$onBehalfProfile item=onBehalfValue key=onBehalfName}\n        <tr>\n         <td {$labelStyle}>\n          {$onBehalfName}\n         </td>\n         <td {$valueStyle}>\n          {$onBehalfValue}\n         </td>\n        </tr>\n      {/foreach}\n     {/if}\n\n     {if $isShare}\n      <tr>\n        <td colspan=\"2\" {$valueStyle}>\n            {capture assign=contributionUrl}{crmURL p=\'civicrm/contribute/transact\' q=\"reset=1&id=`$contributionPageId`\" a=true fe=1 h=1}{/capture}\n            {include file=\"CRM/common/SocialNetwork.tpl\" emailMode=true url=$contributionUrl title=$title pageURL=$contributionUrl}\n        </td>\n      </tr>\n     {/if}\n\n     {if $billingName}\n       <tr>\n        <th {$headerStyle}>\n         {ts}Billing Name and Address{/ts}\n        </th>\n       </tr>\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         {$billingName}<br />\n         {$address|nl2br}<br />\n         {$email}\n        </td>\n       </tr>\n     {elseif $email}\n       <tr>\n        <th {$headerStyle}>\n         {ts}Registered Email{/ts}\n        </th>\n       </tr>\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         {$email}\n        </td>\n       </tr>\n     {/if}\n\n     {if $credit_card_type}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Credit Card Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$credit_card_type}<br />\n        {$credit_card_number}<br />\n        {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}<br />\n       </td>\n      </tr>\n     {/if}\n\n     {if $selectPremium}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Premium Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n        {$product_name}\n       </td>\n      </tr>\n      {if $option}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Option{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$option}\n        </td>\n       </tr>\n      {/if}\n      {if $sku}\n       <tr>\n        <td {$labelStyle}>\n         {ts}SKU{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$sku}\n        </td>\n       </tr>\n      {/if}\n      {if $start_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Start Date{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$start_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n      {if $end_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}End Date{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$end_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n      {if $contact_email OR $contact_phone}\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         <p>{ts}For information about this premium, contact:{/ts}</p>\n         {if $contact_email}\n          <p>{$contact_email}</p>\n         {/if}\n         {if $contact_phone}\n          <p>{$contact_phone}</p>\n         {/if}\n        </td>\n       </tr>\n      {/if}\n      {if $is_deductible AND $price}\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          <p>{ts 1=$price|crmMoney:$currency}The value of this premium is %1. This may affect the amount of the tax deduction you can claim. Consult your tax advisor for more information.{/ts}</p>\n         </td>\n        </tr>\n      {/if}\n     {/if}\n\n     {if $customPre}\n      <tr>\n       <th {$headerStyle}>\n        {$customPre_grouptitle}\n       </th>\n      </tr>\n      {foreach from=$customPre item=customValue key=customName}\n       {if ($trackingFields and ! in_array($customName, $trackingFields)) or ! $trackingFields}\n        <tr>\n         <td {$labelStyle}>\n          {$customName}\n         </td>\n         <td {$valueStyle}>\n          {$customValue}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n     {if $customPost}\n      <tr>\n       <th {$headerStyle}>\n        {$customPost_grouptitle}\n       </th>\n      </tr>\n      {foreach from=$customPost item=customValue key=customName}\n       {if ($trackingFields and ! in_array($customName, $trackingFields)) or ! $trackingFields}\n        <tr>\n         <td {$labelStyle}>\n          {$customName}\n         </td>\n         <td {$valueStyle}>\n          {$customValue}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n  </table>\n</center>\n\n</body>\n</html>\n',1,822,1,0,0,NULL),(8,'Contributions - Receipt (on-line)','{if $is_pay_later}{ts}Invoice{/ts}{else}{ts}Receipt{/ts}{/if} - {$title} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n{if $receipt_text}\n{$receipt_text}\n{/if}\n{if $is_pay_later}\n\n===========================================================\n{$pay_later_receipt}\n===========================================================\n{/if}\n\n{if $amount}\n===========================================================\n{ts}Contribution Information{/ts}\n\n===========================================================\n{if $lineItem and $priceSetID and !$is_quick_config}\n{foreach from=$lineItem item=value key=priceset}\n---------------------------------------------------------\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_qty}{ts}Qty{/ts}{/capture}\n{capture assign=ts_each}{ts}Each{/ts}{/capture}\n{if $dataArray}\n{capture assign=ts_subtotal}{ts}Subtotal{/ts}{/capture}\n{capture assign=ts_taxRate}{ts}Tax Rate{/ts}{/capture}\n{capture assign=ts_taxAmount}{ts}Tax Amount{/ts}{/capture}\n{/if}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_qty|string_format:\"%5s\"} {$ts_each|string_format:\"%10s\"} {if $dataArray} {$ts_subtotal|string_format:\"%10s\"} {$ts_taxRate} {$ts_taxAmount|string_format:\"%10s\"} {/if} {$ts_total|string_format:\"%10s\"}\n----------------------------------------------------------\n{foreach from=$value item=line}\n{capture assign=ts_item}{if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description} {$line.description}{/if}{/capture}{$ts_item|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.qty|string_format:\"%5s\"} {$line.unit_price|crmMoney:$currency|string_format:\"%10s\"} {if $dataArray}{$line.unit_price*$line.qty|crmMoney:$currency|string_format:\"%10s\"} {if $line.tax_rate != \"\" || $line.tax_amount != \"\"}  {$line.tax_rate|string_format:\"%.2f\"} %  {$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"} {else}                  {/if}  {/if} {$line.line_total+$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"}\n{/foreach}\n{/foreach}\n\n{if $dataArray}\n{ts}Amount before Tax{/ts}: {$amount-$totalTaxAmount|crmMoney:$currency}\n\n{foreach from=$dataArray item=value key=priceset}\n{if $priceset || $priceset == 0}\n{$taxTerm} {$priceset|string_format:\"%.2f\"}%: {$value|crmMoney:$currency}\n{else}\n{ts}No{/ts} {$taxTerm}: {$value|crmMoney:$currency}\n{/if}\n{/foreach}\n{/if}\n\n{if $totalTaxAmount}\n{ts}Total Tax Amount{/ts}: {$totalTaxAmount|crmMoney:$currency}\n{/if}\n\n{ts}Total Amount{/ts}: {$amount|crmMoney:$currency}\n{else}\n{ts}Amount{/ts}: {$amount|crmMoney:$currency} {if $amount_level } - {$amount_level} {/if}\n{/if}\n{/if}\n{if $receive_date}\n\n{ts}Date{/ts}: {$receive_date|crmDate}\n{/if}\n{if $is_monetary and $trxn_id}\n{ts}Transaction #{/ts}: {$trxn_id}\n{/if}\n\n{if $is_recur}\n{ts}This is a recurring contribution.{/ts}\n\n{if $cancelSubscriptionUrl}\n{ts}You can cancel future contributions at:{/ts}\n\n{$cancelSubscriptionUrl}\n\n{/if}\n\n{if $updateSubscriptionBillingUrl}\n{ts}You can update billing details for this recurring contribution at:{/ts}\n\n{$updateSubscriptionBillingUrl}\n\n{/if}\n\n{if $updateSubscriptionUrl}\n{ts}You can update recurring contribution amount or change the number of installments for this recurring contribution at:{/ts}\n\n{$updateSubscriptionUrl}\n\n{/if}\n{/if}\n\n{if $honor_block_is_active}\n===========================================================\n{$soft_credit_type}\n===========================================================\n{foreach from=$honoreeProfile item=value key=label}\n{$label}: {$value}\n{/foreach}\n{elseif $softCreditTypes and $softCredits}\n{foreach from=$softCreditTypes item=softCreditType key=n}\n===========================================================\n{$softCreditType}\n===========================================================\n{foreach from=$softCredits.$n item=value key=label}\n{$label}: {$value}\n{/foreach}\n{/foreach}\n{/if}\n{if $pcpBlock}\n===========================================================\n{ts}Personal Campaign Page{/ts}\n\n===========================================================\n{ts}Display In Honor Roll{/ts}: {if $pcp_display_in_roll}{ts}Yes{/ts}{else}{ts}No{/ts}{/if}\n\n{if $pcp_roll_nickname}{ts}Nickname{/ts}: {$pcp_roll_nickname}{/if}\n\n{if $pcp_personal_note}{ts}Personal Note{/ts}: {$pcp_personal_note}{/if}\n\n{/if}\n{if $onBehalfProfile}\n===========================================================\n{ts}On Behalf Of{/ts}\n\n===========================================================\n{foreach from=$onBehalfProfile item=onBehalfValue key=onBehalfName}\n{$onBehalfName}: {$onBehalfValue}\n{/foreach}\n{/if}\n\n{if $billingName}\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billingName}\n{$address}\n\n{$email}\n{elseif $email}\n===========================================================\n{ts}Registered Email{/ts}\n\n===========================================================\n{$email}\n{/if} {* End billingName or Email*}\n{if $credit_card_type}\n\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n\n{if $selectPremium }\n===========================================================\n{ts}Premium Information{/ts}\n\n===========================================================\n{$product_name}\n{if $option}\n{ts}Option{/ts}: {$option}\n{/if}\n{if $sku}\n{ts}SKU{/ts}: {$sku}\n{/if}\n{if $start_date}\n{ts}Start Date{/ts}: {$start_date|crmDate}\n{/if}\n{if $end_date}\n{ts}End Date{/ts}: {$end_date|crmDate}\n{/if}\n{if $contact_email OR $contact_phone}\n\n{ts}For information about this premium, contact:{/ts}\n\n{if $contact_email}\n  {$contact_email}\n{/if}\n{if $contact_phone}\n  {$contact_phone}\n{/if}\n{/if}\n{if $is_deductible AND $price}\n\n{ts 1=$price|crmMoney:$currency}The value of this premium is %1. This may affect the amount of the tax deduction you can claim. Consult your tax advisor for more information.{/ts}{/if}\n{/if}\n\n{if $customPre}\n===========================================================\n{$customPre_grouptitle}\n\n===========================================================\n{foreach from=$customPre item=customValue key=customName}\n{if ( $trackingFields and ! in_array( $customName, $trackingFields ) ) or ! $trackingFields}\n {$customName}: {$customValue}\n{/if}\n{/foreach}\n{/if}\n\n\n{if $customPost}\n===========================================================\n{$customPost_grouptitle}\n\n===========================================================\n{foreach from=$customPost item=customValue key=customName}\n{if ( $trackingFields and ! in_array( $customName, $trackingFields ) ) or ! $trackingFields}\n {$customName}: {$customValue}\n{/if}\n{/foreach}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n     {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    {if $receipt_text}\n     <p>{$receipt_text|htmlize}</p>\n    {/if}\n\n    {if $is_pay_later}\n     <p>{$pay_later_receipt}</p> {* FIXME: this might be text rather than HTML *}\n    {/if}\n\n   </td>\n  </tr>\n  </table>\n  <table style=\"width:100%; max-width:500px; border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse;\">\n\n     {if $amount}\n\n\n      <tr>\n       <th {$headerStyle}>\n        {ts}Contribution Information{/ts}\n       </th>\n      </tr>\n\n      {if $lineItem and $priceSetID and !$is_quick_config}\n\n       {foreach from=$lineItem item=value key=priceset}\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          <table> {* FIXME: style this table so that it looks like the text version (justification, etc.) *}\n           <tr>\n            <th>{ts}Item{/ts}</th>\n            <th>{ts}Qty{/ts}</th>\n            <th>{ts}Each{/ts}</th>\n            {if $dataArray}\n             <th>{ts}Subtotal{/ts}</th>\n             <th>{ts}Tax Rate{/ts}</th>\n             <th>{ts}Tax Amount{/ts}</th>\n            {/if}\n            <th>{ts}Total{/ts}</th>\n           </tr>\n           {foreach from=$value item=line}\n            <tr>\n             <td>\n             {if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description}<div>{$line.description|truncate:30:\"...\"}</div>{/if}\n             </td>\n             <td>\n              {$line.qty}\n             </td>\n             <td>\n              {$line.unit_price|crmMoney:$currency}\n             </td>\n             {if $getTaxDetails}\n              <td>\n               {$line.unit_price*$line.qty|crmMoney:$currency}\n              </td>\n              {if $line.tax_rate != \"\" || $line.tax_amount != \"\"}\n               <td>\n                {$line.tax_rate|string_format:\"%.2f\"}%\n               </td>\n               <td>\n                {$line.tax_amount|crmMoney:$currency}\n               </td>\n              {else}\n               <td></td>\n               <td></td>\n              {/if}\n             {/if}\n             <td>\n              {$line.line_total+$line.tax_amount|crmMoney:$currency}\n             </td>\n            </tr>\n           {/foreach}\n          </table>\n         </td>\n        </tr>\n       {/foreach}\n       {if $dataArray}\n        <tr>\n         <td {$labelStyle}>\n          {ts} Amount before Tax : {/ts}\n         </td>\n         <td {$valueStyle}>\n          {$amount-$totalTaxAmount|crmMoney:$currency}\n         </td>\n        </tr>\n\n        {foreach from=$dataArray item=value key=priceset}\n         <tr>\n          {if $priceset || $priceset == 0}\n           <td>&nbsp;{$taxTerm} {$priceset|string_format:\"%.2f\"}%</td>\n           <td>&nbsp;{$value|crmMoney:$currency}</td>\n          {else}\n           <td>&nbsp;{ts}No{/ts} {$taxTerm}</td>\n           <td>&nbsp;{$value|crmMoney:$currency}</td>\n          {/if}\n         </tr>\n        {/foreach}\n\n       {/if}\n       {if $totalTaxAmount}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Total Tax{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$totalTaxAmount|crmMoney:$currency}\n         </td>\n        </tr>\n       {/if}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Total Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$amount|crmMoney:$currency}\n        </td>\n       </tr>\n\n      {else}\n\n      {if $totalTaxAmount}\n         <tr>\n           <td {$labelStyle}>\n             {ts}Total Tax Amount{/ts}\n           </td>\n           <td {$valueStyle}>\n             {$totalTaxAmount|crmMoney:$currency}\n           </td>\n         </tr>\n       {/if}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$amount|crmMoney:$currency} {if $amount_level} - {$amount_level}{/if}\n        </td>\n       </tr>\n\n      {/if}\n\n     {/if}\n\n\n     {if $receive_date}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$receive_date|crmDate}\n       </td>\n      </tr>\n     {/if}\n\n     {if $is_monetary and $trxn_id}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Transaction #{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$trxn_id}\n       </td>\n      </tr>\n     {/if}\n\n    {if $is_recur}\n      <tr>\n        <td  colspan=\"2\" {$labelStyle}>\n          {ts}This is a recurring contribution.{/ts}\n          {if $cancelSubscriptionUrl}\n            {ts 1=$cancelSubscriptionUrl}You can cancel future contributions by <a href=\"%1\">visiting this web page</a>.{/ts}\n          {/if}\n        </td>\n      </tr>\n      {if $updateSubscriptionBillingUrl}\n        <tr>\n          <td colspan=\"2\" {$labelStyle}>\n            {ts 1=$updateSubscriptionBillingUrl}You can update billing details for this recurring contribution by <a href=\"%1\">visiting this web page</a>.{/ts}\n          </td>\n        </tr>\n      {/if}\n      {if $updateSubscriptionUrl}\n        <tr>\n          <td colspan=\"2\" {$labelStyle}>\n            {ts 1=$updateSubscriptionUrl}You can update recurring contribution amount or change the number of installments for this recurring contribution by <a href=\"%1\">visiting this web page</a>.{/ts}\n          </td>\n        </tr>\n      {/if}\n    {/if}\n\n     {if $honor_block_is_active}\n      <tr>\n       <th {$headerStyle}>\n        {$soft_credit_type}\n       </th>\n      </tr>\n      {foreach from=$honoreeProfile item=value key=label}\n        <tr>\n         <td {$labelStyle}>\n          {$label}\n         </td>\n         <td {$valueStyle}>\n          {$value}\n         </td>\n        </tr>\n      {/foreach}\n      {elseif $softCreditTypes and $softCredits}\n      {foreach from=$softCreditTypes item=softCreditType key=n}\n       <tr>\n        <th {$headerStyle}>\n         {$softCreditType}\n        </th>\n       </tr>\n       {foreach from=$softCredits.$n item=value key=label}\n         <tr>\n          <td {$labelStyle}>\n           {$label}\n          </td>\n          <td {$valueStyle}>\n           {$value}\n          </td>\n         </tr>\n        {/foreach}\n       {/foreach}\n     {/if}\n\n     {if $pcpBlock}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Personal Campaign Page{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td {$labelStyle}>\n        {ts}Display In Honor Roll{/ts}\n       </td>\n       <td {$valueStyle}>\n        {if $pcp_display_in_roll}{ts}Yes{/ts}{else}{ts}No{/ts}{/if}\n       </td>\n      </tr>\n      {if $pcp_roll_nickname}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Nickname{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$pcp_roll_nickname}\n        </td>\n       </tr>\n      {/if}\n      {if $pcp_personal_note}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Personal Note{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$pcp_personal_note}\n        </td>\n       </tr>\n      {/if}\n     {/if}\n\n     {if $onBehalfProfile}\n      <tr>\n       <th {$headerStyle}>\n        {$onBehalfProfile_grouptitle}\n       </th>\n      </tr>\n      {foreach from=$onBehalfProfile item=onBehalfValue key=onBehalfName}\n        <tr>\n         <td {$labelStyle}>\n          {$onBehalfName}\n         </td>\n         <td {$valueStyle}>\n          {$onBehalfValue}\n         </td>\n        </tr>\n      {/foreach}\n     {/if}\n\n     {if $isShare}\n      <tr>\n        <td colspan=\"2\" {$valueStyle}>\n            {capture assign=contributionUrl}{crmURL p=\'civicrm/contribute/transact\' q=\"reset=1&id=`$contributionPageId`\" a=true fe=1 h=1}{/capture}\n            {include file=\"CRM/common/SocialNetwork.tpl\" emailMode=true url=$contributionUrl title=$title pageURL=$contributionUrl}\n        </td>\n      </tr>\n     {/if}\n\n     {if $billingName}\n       <tr>\n        <th {$headerStyle}>\n         {ts}Billing Name and Address{/ts}\n        </th>\n       </tr>\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         {$billingName}<br />\n         {$address|nl2br}<br />\n         {$email}\n        </td>\n       </tr>\n     {elseif $email}\n       <tr>\n        <th {$headerStyle}>\n         {ts}Registered Email{/ts}\n        </th>\n       </tr>\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         {$email}\n        </td>\n       </tr>\n     {/if}\n\n     {if $credit_card_type}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Credit Card Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$credit_card_type}<br />\n        {$credit_card_number}<br />\n        {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}<br />\n       </td>\n      </tr>\n     {/if}\n\n     {if $selectPremium}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Premium Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n        {$product_name}\n       </td>\n      </tr>\n      {if $option}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Option{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$option}\n        </td>\n       </tr>\n      {/if}\n      {if $sku}\n       <tr>\n        <td {$labelStyle}>\n         {ts}SKU{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$sku}\n        </td>\n       </tr>\n      {/if}\n      {if $start_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Start Date{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$start_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n      {if $end_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}End Date{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$end_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n      {if $contact_email OR $contact_phone}\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         <p>{ts}For information about this premium, contact:{/ts}</p>\n         {if $contact_email}\n          <p>{$contact_email}</p>\n         {/if}\n         {if $contact_phone}\n          <p>{$contact_phone}</p>\n         {/if}\n        </td>\n       </tr>\n      {/if}\n      {if $is_deductible AND $price}\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          <p>{ts 1=$price|crmMoney:$currency}The value of this premium is %1. This may affect the amount of the tax deduction you can claim. Consult your tax advisor for more information.{/ts}</p>\n         </td>\n        </tr>\n      {/if}\n     {/if}\n\n     {if $customPre}\n      <tr>\n       <th {$headerStyle}>\n        {$customPre_grouptitle}\n       </th>\n      </tr>\n      {foreach from=$customPre item=customValue key=customName}\n       {if ($trackingFields and ! in_array($customName, $trackingFields)) or ! $trackingFields}\n        <tr>\n         <td {$labelStyle}>\n          {$customName}\n         </td>\n         <td {$valueStyle}>\n          {$customValue}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n     {if $customPost}\n      <tr>\n       <th {$headerStyle}>\n        {$customPost_grouptitle}\n       </th>\n      </tr>\n      {foreach from=$customPost item=customValue key=customName}\n       {if ($trackingFields and ! in_array($customName, $trackingFields)) or ! $trackingFields}\n        <tr>\n         <td {$labelStyle}>\n          {$customName}\n         </td>\n         <td {$valueStyle}>\n          {$customValue}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n  </table>\n</center>\n\n</body>\n</html>\n',1,822,0,1,0,NULL),(9,'Contributions - Invoice','{if $title}\n  {if $component}\n    {if $component == \'event\'}\n      {ts 1=$title}Event Registration Invoice: %1{/ts}\n    {else}\n      {ts 1=$title}Contribution Invoice: %1{/ts}\n    {/if}\n  {/if}\n{else}\n  {ts}Invoice{/ts}\n{/if}\n - {contact.display_name}\n','{ts}Contribution Invoice{/ts}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns = \"http://www.w3.org/1999/xhtml\">\n  <head>\n    <meta http-equiv = \"Content-Type\" content=\"text/html; charset=UTF-8\" />\n      <title></title>\n  </head>\n  <body>\n    <table style = \"margin-top:2px;padding-left:7px;\">\n      <tr>\n        <td><img src = \"{$resourceBase}/i/civi99.png\" height = \"34px\" width = \"99px\"></td>\n      </tr>\n    </table>\n    <center>\n      <table style = \"padding-right:19px;font-family: Arial, Verdana, sans-serif;\" width = \"500\" height = \"100\" border = \"0\" cellpadding = \"2\" cellspacing = \"1\">\n        <tr>\n          <td style = \"padding-left:15px;\" ><b><font size = \"4\" align = \"center\">{ts}INVOICE{/ts}</font></b></td>\n          <td colspan = \"1\"></td>\n          <td style = \"padding-left:70px;\"><b><font size = \"1\" align = \"center\" >{ts}Invoice Date:{/ts}</font></b></td>\n          <td><font size = \"1\" align = \"right\">{$domain_organization}</font></td>\n        </tr>\n        <tr>\n          {if $organization_name}\n            <td style = \"padding-left:17px;\"><font size = \"1\" align = \"center\" >{$display_name}  ({$organization_name})</font></td>\n          {else}\n            <td style = \"padding-left:15px;\"><font size = \"1\" align = \"center\" >{$display_name}</font></td>\n          {/if}\n          <td colspan = \"1\"></td>\n          <td style = \"padding-left:70px;\"><font size = \"1\" align = \"right\">{$invoice_date}</font></td>\n          <td>\n            <font size = \"1\" align = \"right\">\n              {if $domain_street_address }{$domain_street_address}{/if}\n              {if $domain_supplemental_address_1 }{$domain_supplemental_address_1}{/if}\n            </font>\n          </td>\n        </tr>\n        <tr>\n          <td style = \"padding-left:17px;\"><font size = \"1\" align = \"center\">{$street_address}   {$supplemental_address_1}</font></td>\n          <td colspan = \"1\"></td>\n          <td style = \"padding-left:70px;\"><b><font size = \"1\" align = \"right\">{ts}Invoice Number:{/ts}</font></b></td>\n          <td>\n            <font size = \"1\" align = \"right\">\n              {if $domain_supplemental_address_2 }{$domain_supplemental_address_2}{/if}\n              {if $domain_state }{$domain_state}{/if}\n            </font>\n          </td>\n        </tr>\n        <tr>\n          <td style = \"padding-left:17px;\"><font size = \"1\" align = \"center\">{$supplemental_address_2}  {$stateProvinceAbbreviation}</font></td>\n          <td colspan=\"1\"></td>\n          <td style = \"padding-left:70px;\"><font size = \"1\" align = \"right\">{$invoice_number}</font></td>\n          <td>\n            <font size = \"1\" align = \"right\">\n              {if $domain_city}{$domain_city}{/if}\n              {if $domain_postal_code }{$domain_postal_code}{/if}\n            </font>\n          </td>\n        </tr>\n        <tr>\n          <td style = \"padding-left:17px;\"><font size = \"1\" align = \"right\">{$city}  {$postal_code}</font></td>\n          <td colspan=\"1\"></td>\n          <td height = \"10\" style = \"padding-left:70px;\"><b><font size = \"1\"align = \"right\">{ts}Reference:{/ts}</font></b></td>\n          <td><font size = \"1\" align = \"right\"> {if $domain_country}{$domain_country}{/if}</font></td>\n        </tr>\n        <tr>\n          <td></td>\n          <td></td>\n          <td style = \"padding-left:70px;\"><font size = \"1\"align = \"right\">{$source}</font></td>\n          <td><font size = \"1\" align = \"right\"> {if $domain_phone}{$domain_phone}{/if}</font> </td>\n        </tr>\n        <tr>\n          <td></td>\n          <td></td>\n          <td></td>\n          <td><font size = \"1\" align = \"right\"> {if $domain_email}{$domain_email}{/if}</font> </td>\n        </tr>\n      </table>\n      <table style = \"margin-top:75px;font-family: Arial, Verdana, sans-serif\" width = \"590\" border = \"0\"cellpadding = \"-5\" cellspacing = \"19\" id = \"desc\">\n        <tr>\n          <td colspan = \"2\" {$valueStyle}>\n            <table> {* FIXME: style this table so that it looks like the text version (justification, etc.) *}\n              <tr>\n                <th style = \"padding-right:34px;text-align:left;font-weight:bold;width:200px;\"><font size = \"1\">{ts}Description{/ts}</font></th>\n                <th style = \"padding-left:34px;text-align:right;font-weight:bold;\" ><font size = \"1\">{ts}Quantity{/ts}</font></th>\n                <th style = \"padding-left:34px;text-align:right;font-weight:bold;\"><font size = \"1\">{ts}Unit Price{/ts}</font></th>\n                <th style = \"padding-left:34px;text-align:right;font-weight:bold;width:20px;\"><font size = \"1\">{$taxTerm} </font></th>\n                <th style = \"padding-left:34px;text-align:right;font-weight:bold;\"><font size = \"1\">{ts 1=$defaultCurrency}Amount %1{/ts}</font></th>\n              </tr>\n              {foreach from=$lineItem item=value key=priceset name=taxpricevalue}\n                {if $smarty.foreach.taxpricevalue.index eq 0}\n                  <tr>\n                    <td colspan = \"5\" ><hr size=\"3\" style = \"color:#000;\"></hr></td>\n                  </tr>\n                {else}\n                  <tr>\n                    <td  colspan = \"5\" style = \"color:#F5F5F5;\"><hr></hr></td>\n                  </tr>\n                {/if}\n                <tr>\n                  <td style=\"text-align:left;\" ><font size = \"1\">\n                    {if $value.html_type eq \'Text\'}\n                      {$value.label}\n                    {else}\n                      {$value.field_title} - {$value.label}\n                    {/if}\n                    {if $value.description}\n                      <div>{$value.description|truncate:30:\"...\"}</div>\n                    {/if}\n                    </font>\n                  </td>\n                  <td style = \"padding-left:34px;text-align:right;\"><font size = \"1\"> {$value.qty}</font></td>\n                  <td style = \"padding-left:34px;text-align:right;\"><font size = \"1\"> {$value.unit_price|crmMoney:$currency}</font></td>\n                  {if $value.tax_amount != \'\'}\n                    <td style = \"padding-left:34px;text-align:right;width:20px;\"><font size = \"1\"> {$value.tax_rate}%</font></td>\n                  {else}\n                    <td style = \"padding-left:34px;text-align:right;width:20px;\"><font size = \"1\">{ts 1=$taxTerm}No %1{/ts}</font></td>\n                  {/if}\n                  <td style = \"padding-left:34px;text-align:right;\"><font size = \"1\">{$value.subTotal|crmMoney:$currency}</font></td>\n                </tr>\n              {/foreach}\n              <tr><td  colspan = \"5\" style = \"color:#F5F5F5;\"><hr></hr></td></tr>\n              <tr>\n                <td colspan = \"3\"></td>\n                <td style = \"padding-left:20px;text-align:right;\"><font size = \"1\">{ts}Sub Total{/ts}</font></td>\n                <td style = \"padding-left:34px;text-align:right;\"><font size = \"1\"> {$subTotal|crmMoney:$currency}</font></td>\n              </tr>\n              {foreach from = $dataArray item = value key = priceset}\n                <tr>\n                  <td colspan = \"3\"></td>\n                    {if $priceset}\n                      <td style = \"padding-left:20px;text-align:right;\"><font size = \"1\"> {ts 1=$taxTerm 2=$priceset}TOTAL %1 %2%{/ts}</font></td>\n                      <td style = \"padding-left:34px;text-align:right\"><font size = \"1\" align = \"right\">{$value|crmMoney:$currency}</font> </td>\n                    {elseif $priceset == 0}\n                      <td style = \"padding-left:20px;text-align:right;\"><font size = \"1\">{ts 1=$taxTerm}TOTAL NO %1{/ts}</font></td>\n                      <td style = \"padding-left:34px;text-align:right\"><font size = \"1\" align = \"right\">{$value|crmMoney:$currency}</font> </td>\n                </tr>\n              {/if}\n              {/foreach}\n              <tr>\n                <td colspan = \"3\"></td>\n                <td colspan = \"2\"><hr></hr></td>\n              </tr>\n              <tr>\n                <td colspan = \"3\"></td>\n                <td style = \"padding-left:20px;text-align:right;\"><b><font size = \"1\">{ts 1=$defaultCurrency}TOTAL %1{/ts}</font></b></td>\n                <td style = \"padding-left:34px;text-align:right;\"><font size = \"1\">{$amount|crmMoney:$currency}</font></td>\n                <td style = \"padding-left:34px;\"><font size = \"1\" align = \"right\"></font></td>\n              </tr>\n              {if $is_pay_later == 0}\n                <tr>\n                  <td colspan = \"3\"></td>\n                  <td style = \"padding-left:20px;text-align:right;\"><font size = \"1\">\n                    {if $contribution_status_id == $refundedStatusId}\n                      {ts}LESS Amount Credited{/ts}\n                    {else}\n                      {ts}LESS Amount Paid{/ts}\n                    {/if}\n                    </font>\n                  </td>\n                  <td style = \"padding-left:34px;text-align:right;\"><font size = \"1\">{$amountPaid|crmMoney:$currency}</font></td>\n                </tr>\n                <tr>\n                  <td colspan = \"3\"></td>\n                  <td colspan = \"2\" ><hr></hr></td>\n                </tr>\n                <tr>\n                  <td colspan = \"3\"></td>\n                  <td style = \"padding-left:20px;text-align:right;\"><b><font size = \"1\">{ts}AMOUNT DUE:{/ts} </font></b></td>\n                  <td style = \"padding-left:34px;text-align:right;\"><b><font size = \"1\">{$amountDue|crmMoney:$currency}</font></b></td>\n                  <td style = \"padding-left:34px;\"><font size = \"1\" align = \"right\"></font></td>\n                </tr>\n              {/if}\n              <br/><br/><br/>\n              <tr>\n                <td colspan = \"3\"></td>\n              </tr>\n              {if $contribution_status_id == $pendingStatusId && $is_pay_later == 1}\n                <tr>\n                  <td><b><font size = \"1\" align = \"center\">{ts 1=$dueDate}DUE DATE: %1{/ts}</font></b></td>\n                  <td colspan = \"3\"></td>\n                </tr>\n              {/if}\n            </table>\n          </td>\n        </tr>\n      </table>\n      {if $contribution_status_id == $pendingStatusId && $is_pay_later == 1}\n        <table style = \"margin-top:5px;padding-right:45px;\">\n          <tr>\n            <td><img src = \"{$resourceBase}/i/contribute/cut_line.png\" height = \"15\" width = \"630\"></td>\n          </tr>\n        </table>\n        <table style = \"margin-top:6px;padding-right:20px;font-family: Arial, Verdana, sans-serif\" width = \"480\" border = \"0\"cellpadding = \"-5\" cellspacing=\"19\" id = \"desc\">\n          <tr>\n            <td width=\"60%\"><b><font size = \"4\" align = \"right\">{ts}PAYMENT ADVICE{/ts}</font></b> <br/><br/> <font size = \"1\" align = \"right\"><b>{ts}To: {/ts}</b><div style=\"width:17em;word-wrap:break-word;\">\n              {$domain_organization} <br />\n              {$domain_street_address} {$domain_supplemental_address_1} <br />\n              {$domain_supplemental_address_2} {$domain_state} <br />\n              {$domain_city} {$domain_postal_code} <br />\n              {$domain_country} <br />\n              {$domain_phone} <br />\n              {$domain_email}</div>\n              </font><br/><br/><font size=\"1\" align=\"right\">{$notes}</font>\n            </td>\n            <td width=\"40%\">\n              <table  cellpadding = \"-10\" cellspacing = \"22\"  align=\"right\" >\n                <tr>\n                  <td colspan = \"2\"></td>\n                  <td><font size = \"1\" align = \"right\" style=\"font-weight:bold;\">{ts}Customer: {/ts}</font></td>\n                  <td ><font size = \"1\" align = \"right\">{$display_name}</font></td>\n                </tr>\n                <tr>\n                  <td colspan = \"2\"></td>\n                  <td><font size = \"1\" align = \"right\" style=\"font-weight:bold;\">{ts}Invoice Number: {/ts}</font></td>\n                  <td><font size = \"1\" align = \"right\">{$invoice_number}</font></td>\n                </tr>\n                <tr><td colspan = \"5\"style = \"color:#F5F5F5;\"><hr></hr></td></tr>\n                {if $is_pay_later == 1}\n                  <tr>\n                    <td colspan = \"2\"></td>\n                    <td><font size = \"1\" align = \"right\" style=\"font-weight:bold;\">{ts}Amount Due:{/ts}</font></td>\n                    <td><font size = \"1\" align = \"right\" style=\"font-weight:bold;\">{$amount|crmMoney:$currency}</font></td>\n                  </tr>\n                {else}\n                  <tr>\n                    <td colspan = \"2\"></td>\n                    <td><font size = \"1\" align = \"right\" style=\"font-weight:bold;\">{ts}Amount Due: {/ts}</font></td>\n                    <td><font size = \"1\" align = \"right\" style=\"font-weight:bold;\">{$amountDue|crmMoney:$currency}</font></td>\n                  </tr>\n                {/if}\n                <tr>\n                  <td colspan = \"2\"></td>\n                  <td><font size = \"1\" align = \"right\" style=\"font-weight:bold;\">{ts}Due Date:  {/ts}</font></td>\n                  <td><font size = \"1\" align = \"right\">{$dueDate}</font></td>\n                </tr>\n                <tr>\n                  <td colspan = \"5\" style = \"color:#F5F5F5;\"><hr></hr></td>\n                </tr>\n              </table>\n            </td>\n          </tr>\n        </table>\n      {/if}\n\n      {if $contribution_status_id == $refundedStatusId || $contribution_status_id == $cancelledStatusId}\n        <table style = \"margin-top:2px;padding-left:7px;page-break-before: always;\">\n          <tr>\n            <td><img src = \"{$resourceBase}/i/civi99.png\" height = \"34px\" width = \"99px\"></td>\n          </tr>\n        </table>\n    <center>\n\n      <table style = \"padding-right:19px;font-family: Arial, Verdana, sans-serif\" width = \"500\" height = \"100\" border = \"0\" cellpadding = \"2\" cellspacing = \"1\">\n        <tr>\n          <td style = \"padding-left:15px;\" ><b><font size = \"4\" align = \"center\">{ts}CREDIT NOTE{/ts}</font></b></td>\n          <td colspan = \"1\"></td>\n          <td style = \"padding-left:70px;\"><b><font size = \"1\" align = \"right\">{ts}Date:{/ts}</font></b></td>\n          <td><font size = \"1\" align = \"right\">{$domain_organization}</font></td>\n        </tr>\n        <tr>\n          {if $organization_name}\n            <td style = \"padding-left:17px;\"><font size = \"1\" align = \"center\">{$display_name}  ({$organization_name})</font></td>\n          {else}\n            <td style = \"padding-left:17px;\"><font size = \"1\" align = \"center\">{$display_name}</font></td>\n          {/if}\n          <td colspan = \"1\"></td>\n          <td style = \"padding-left:70px;\"><font size = \"1\" align = \"right\">{$invoice_date}</font></td>\n          <td>\n            <font size = \"1\" align = \"right\">\n              {if $domain_street_address }{$domain_street_address}{/if}\n              {if $domain_supplemental_address_1 }{$domain_supplemental_address_1}{/if}\n            </font>\n          </td>\n        </tr>\n        <tr>\n          <td style = \"padding-left:17px;\"><font size = \"1\" align = \"center\">{$street_address}   {$supplemental_address_1}</font></td>\n          <td colspan = \"1\"></td>\n          <td style = \"padding-left:70px;\"><b><font size = \"1\" align = \"right\">{ts}Credit Note Number:{/ts}</font></b></td>\n          <td>\n            <font size = \"1\" align = \"right\">\n              {if $domain_supplemental_address_2 }{$domain_supplemental_address_2}{/if}\n              {if $domain_state }{$domain_state}{/if}\n            </font>\n          </td>\n        </tr>\n        <tr>\n          <td style = \"padding-left:17px;\"><font size = \"1\" align = \"center\">{$supplemental_address_2}  {$stateProvinceAbbreviation}</font></td>\n          <td colspan=\"1\"></td>\n          <td style = \"padding-left:70px;\"><font size = \"1\" align = \"right\">{$creditnote_id}</font></td>\n          <td>\n            <font size = \"1\" align = \"right\">\n              {if $domain_city}{$domain_city}{/if}\n              {if $domain_postal_code }{$domain_postal_code}{/if}\n            </font>\n          </td>\n        </tr>\n        <tr>\n          <td style = \"padding-left:17px;\"><font size = \"1\" align = \"right\">{$city}  {$postal_code}</font></td>\n          <td colspan=\"1\"></td>\n          <td height = \"10\" style = \"padding-left:70px;\"><b><font size = \"1\"align = \"right\">{ts}Reference:{/ts}</font></b></td>\n          <td>\n            <font size = \"1\" align = \"right\">\n              {if $domain_country}{$domain_country}{/if}\n            </font>\n          </td>\n        </tr>\n        <tr>\n          <td></td>\n          <td></td>\n          <td style = \"padding-left:70px;\"><font size = \"1\"align = \"right\">{$source}</font></td>\n          <td>\n            <font size = \"1\" align = \"right\">\n              {if $domain_phone}{$domain_phone}{/if}\n            </font>\n          </td>\n        </tr>\n        <tr>\n          <td></td>\n          <td></td>\n          <td></td>\n          <td>\n            <font size = \"1\" align = \"right\">\n              {if $domain_email}{$domain_email}{/if}\n            </font>\n          </td>\n        </tr>\n      </table>\n\n      <table style = \"margin-top:75px;font-family: Arial, Verdana, sans-serif\" width = \"590\" border = \"0\"cellpadding = \"-5\" cellspacing = \"19\" id = \"desc\">\n        <tr>\n          <td colspan = \"2\" {$valueStyle}>\n            <table> {* FIXME: style this table so that it looks like the text version (justification, etc.) *}\n              <tr>\n                <th style = \"padding-right:28px;text-align:left;font-weight:bold;width:200px;\"><font size = \"1\">{ts}Description{/ts}</font></th>\n                <th style = \"padding-left:28px;text-align:right;font-weight:bold;\"><font size = \"1\">{ts}Quantity{/ts}</font></th>\n                <th style = \"padding-left:28px;text-align:right;font-weight:bold;\"><font size = \"1\">{ts}Unit Price{/ts}</font></th>\n                <th style = \"padding-left:28px;text-align:right;font-weight:bold;\"><font size = \"1\">{$taxTerm} </font></th>\n                <th style = \"padding-left:28px;text-align:right;font-weight:bold;\"><font size = \"1\">{ts 1=$defaultCurrency}Amount %1{/ts}</font></th>\n              </tr>\n              {foreach from=$lineItem item=value key=priceset name=pricevalue}\n                {if $smarty.foreach.pricevalue.index eq 0}\n                  <tr><td  colspan = \"5\" ><hr size=\"3\" style = \"color:#000;\"></hr></td></tr>\n                {else}\n                  <tr><td  colspan = \"5\" style = \"color:#F5F5F5;\"><hr></hr></td></tr>\n                {/if}\n                <tr>\n                  <td style =\"text-align:left;\"  >\n                    <font size = \"1\">\n                      {if $value.html_type eq \'Text\'}\n                        {$value.label}\n                      {else}\n                        {$value.field_title} - {$value.label}\n                      {/if}\n                      {if $value.description}\n                        <div>{$value.description|truncate:30:\"...\"}</div>\n                      {/if}\n                    </font>\n                  </td>\n                  <td style = \"padding-left:28px;text-align:right;\"><font size = \"1\"> {$value.qty}</font></td>\n                  <td style = \"padding-left:28px;text-align:right;\"><font size = \"1\"> {$value.unit_price|crmMoney:$currency}</font></td>\n                  {if $value.tax_amount != \'\'}\n                    <td style = \"padding-left:28px;text-align:right;\"><font size = \"1\"> {$value.tax_rate}%</font></td>\n                  {else}\n                    <td style = \"padding-left:28px;text-align:right\"><font size = \"1\" >{ts 1=$taxTerm}No %1{/ts}</font></td>\n                  {/if}\n                  <td style = \"padding-left:28px;text-align:right;\"><font size = \"1\" >{$value.subTotal|crmMoney:$currency}</font></td>\n                </tr>\n              {/foreach}\n              <tr><td  colspan = \"5\" style = \"color:#F5F5F5;\"><hr></hr></td></tr>\n              <tr>\n                <td colspan = \"3\"></td>\n                <td style = \"padding-left:28px;text-align:right;\"><font size = \"1\">{ts}Sub Total{/ts}</font></td>\n                <td style = \"padding-left:28px;text-align:right;\"><font size = \"1\"> {$subTotal|crmMoney:$currency}</font></td>\n              </tr>\n              {foreach from = $dataArray item = value key = priceset}\n                <tr>\n                  <td colspan = \"3\"></td>\n                  {if $priceset}\n                    <td style = \"padding-left:28px;text-align:right;\"><font size = \"1\"> {ts 1=$taxTerm 2=$priceset}TOTAL %1 %2%{/ts}</font></td>\n                    <td style = \"padding-left:28px;text-align:right;\"><font size = \"1\" align = \"right\">{$value|crmMoney:$currency}</font> </td>\n                  {elseif $priceset == 0}\n                    <td style = \"padding-left:28px;text-align:right;\"><font size = \"1\">{ts 1=$taxTerm}TOTAL NO %1{/ts}</font></td>\n                    <td style = \"padding-left:28px;text-align:right;\"><font size = \"1\" align = \"right\">{$value|crmMoney:$currency}</font> </td>\n                </tr>\n                {/if}\n              {/foreach}\n              <tr>\n                <td colspan = \"3\"></td>\n                <td colspan = \"2\"><hr></hr></td>\n              </tr>\n              <tr>\n                <td colspan = \"3\"></td>\n                <td style = \"padding-left:28px;text-align:right;\"><b><font size = \"1\">{ts 1=$defaultCurrency}TOTAL %1{/ts}</font></b></td>\n                <td style = \"padding-left:28px;text-align:right;\"><font size = \"1\">{$amount|crmMoney:$currency}</font></td>\n              </tr>\n              {if $is_pay_later == 0}\n                <tr>\n                  <td colspan = \"3\"></td>\n                  <td style = \"padding-left:28px;text-align:right;\"><font size = \"1\" >{ts}LESS Credit to invoice(s){/ts}</font></td>\n                  <td style = \"padding-left:28px;text-align:right;\"><font size = \"1\">{$amount|crmMoney:$currency}</font></td>\n                </tr>\n                <tr>\n                  <td colspan = \"3\"></td>\n                  <td colspan = \"2\" ><hr></hr></td>\n                </tr>\n                <tr>\n                  <td colspan = \"3\"></td>\n                  <td style = \"padding-left:28px;text-align:right;\"><b><font size = \"1\">{ts}REMAINING CREDIT{/ts}</font></b></td>\n                  <td style = \"padding-left:28px;text-align:right;\"><b><font size = \"1\">{$amountDue|crmMoney:$currency}</font></b></td>\n                  <td style = \"padding-left:28px;\"><font size = \"1\" align = \"right\"></font></td>\n                </tr>\n              {/if}\n              <br/><br/><br/>\n              <tr>\n                <td colspan = \"3\"></td>\n              </tr>\n              <tr>\n                <td></td>\n                <td colspan = \"3\"></td>\n              </tr>\n            </table>\n          </td>\n        </tr>\n      </table>\n      <table style = \"margin-top:5px;padding-right:45px;\">\n        <tr>\n          <td><img src = \"{$resourceBase}/i/contribute/cut_line.png\" height = \"15\" width = \"630\"></td>\n        </tr>\n      </table>\n\n      <table style = \"margin-top:6px;padding-right:20px;font-family: Arial, Verdana, sans-serif\" width = \"507\" border = \"0\"cellpadding = \"-5\" cellspacing=\"19\" id = \"desc\">\n        <tr>\n          <td width=\"60%\"><font size = \"4\" align = \"right\"><b>{ts}CREDIT ADVICE{/ts}</b><br/><br /><div  style=\"font-size:10px;max-width:300px;\">{ts}Please do not pay on this advice. Deduct the amount of this Credit Note from your next payment to us{/ts}</div><br/></font></td>\n          <td width=\"40%\">\n            <table    align=\"right\" >\n              <tr>\n                <td colspan = \"2\"></td>\n                <td><font size = \"1\" align = \"right\" style=\"font-weight:bold;\">{ts}Customer:{/ts} </font></td>\n                <td><font size = \"1\" align = \"right\" >{$display_name}</font></td>\n              </tr>\n              <tr>\n                <td colspan = \"2\"></td>\n                <td><font size = \"1\" align = \"right\" style=\"font-weight:bold;\">{ts}Credit Note#:{/ts} </font></td>\n                <td><font size = \"1\" align = \"right\">{$creditnote_id}</font></td>\n              </tr>\n              <tr><td  colspan = \"5\"style = \"color:#F5F5F5;\"><hr></hr></td></tr>\n              <tr>\n                <td colspan = \"2\"></td>\n                <td><font size = \"1\" align = \"right\" style=\"font-weight:bold;\">{ts}Credit Amount:{/ts}</font></td>\n                <td width=\'50px\'><font size = \"1\" align = \"right\" style=\"font-weight:bold;\">{$amount|crmMoney:$currency}</font></td>\n              </tr>\n            </table>\n          </td>\n        </tr>\n      </table>\n    {/if}\n    </center>\n  </body>\n</html>\n',1,823,1,0,0,NULL),(10,'Contributions - Invoice','{if $title}\n  {if $component}\n    {if $component == \'event\'}\n      {ts 1=$title}Event Registration Invoice: %1{/ts}\n    {else}\n      {ts 1=$title}Contribution Invoice: %1{/ts}\n    {/if}\n  {/if}\n{else}\n  {ts}Invoice{/ts}\n{/if}\n - {contact.display_name}\n','{ts}Contribution Invoice{/ts}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns = \"http://www.w3.org/1999/xhtml\">\n  <head>\n    <meta http-equiv = \"Content-Type\" content=\"text/html; charset=UTF-8\" />\n      <title></title>\n  </head>\n  <body>\n    <table style = \"margin-top:2px;padding-left:7px;\">\n      <tr>\n        <td><img src = \"{$resourceBase}/i/civi99.png\" height = \"34px\" width = \"99px\"></td>\n      </tr>\n    </table>\n    <center>\n      <table style = \"padding-right:19px;font-family: Arial, Verdana, sans-serif;\" width = \"500\" height = \"100\" border = \"0\" cellpadding = \"2\" cellspacing = \"1\">\n        <tr>\n          <td style = \"padding-left:15px;\" ><b><font size = \"4\" align = \"center\">{ts}INVOICE{/ts}</font></b></td>\n          <td colspan = \"1\"></td>\n          <td style = \"padding-left:70px;\"><b><font size = \"1\" align = \"center\" >{ts}Invoice Date:{/ts}</font></b></td>\n          <td><font size = \"1\" align = \"right\">{$domain_organization}</font></td>\n        </tr>\n        <tr>\n          {if $organization_name}\n            <td style = \"padding-left:17px;\"><font size = \"1\" align = \"center\" >{$display_name}  ({$organization_name})</font></td>\n          {else}\n            <td style = \"padding-left:15px;\"><font size = \"1\" align = \"center\" >{$display_name}</font></td>\n          {/if}\n          <td colspan = \"1\"></td>\n          <td style = \"padding-left:70px;\"><font size = \"1\" align = \"right\">{$invoice_date}</font></td>\n          <td>\n            <font size = \"1\" align = \"right\">\n              {if $domain_street_address }{$domain_street_address}{/if}\n              {if $domain_supplemental_address_1 }{$domain_supplemental_address_1}{/if}\n            </font>\n          </td>\n        </tr>\n        <tr>\n          <td style = \"padding-left:17px;\"><font size = \"1\" align = \"center\">{$street_address}   {$supplemental_address_1}</font></td>\n          <td colspan = \"1\"></td>\n          <td style = \"padding-left:70px;\"><b><font size = \"1\" align = \"right\">{ts}Invoice Number:{/ts}</font></b></td>\n          <td>\n            <font size = \"1\" align = \"right\">\n              {if $domain_supplemental_address_2 }{$domain_supplemental_address_2}{/if}\n              {if $domain_state }{$domain_state}{/if}\n            </font>\n          </td>\n        </tr>\n        <tr>\n          <td style = \"padding-left:17px;\"><font size = \"1\" align = \"center\">{$supplemental_address_2}  {$stateProvinceAbbreviation}</font></td>\n          <td colspan=\"1\"></td>\n          <td style = \"padding-left:70px;\"><font size = \"1\" align = \"right\">{$invoice_number}</font></td>\n          <td>\n            <font size = \"1\" align = \"right\">\n              {if $domain_city}{$domain_city}{/if}\n              {if $domain_postal_code }{$domain_postal_code}{/if}\n            </font>\n          </td>\n        </tr>\n        <tr>\n          <td style = \"padding-left:17px;\"><font size = \"1\" align = \"right\">{$city}  {$postal_code}</font></td>\n          <td colspan=\"1\"></td>\n          <td height = \"10\" style = \"padding-left:70px;\"><b><font size = \"1\"align = \"right\">{ts}Reference:{/ts}</font></b></td>\n          <td><font size = \"1\" align = \"right\"> {if $domain_country}{$domain_country}{/if}</font></td>\n        </tr>\n        <tr>\n          <td></td>\n          <td></td>\n          <td style = \"padding-left:70px;\"><font size = \"1\"align = \"right\">{$source}</font></td>\n          <td><font size = \"1\" align = \"right\"> {if $domain_phone}{$domain_phone}{/if}</font> </td>\n        </tr>\n        <tr>\n          <td></td>\n          <td></td>\n          <td></td>\n          <td><font size = \"1\" align = \"right\"> {if $domain_email}{$domain_email}{/if}</font> </td>\n        </tr>\n      </table>\n      <table style = \"margin-top:75px;font-family: Arial, Verdana, sans-serif\" width = \"590\" border = \"0\"cellpadding = \"-5\" cellspacing = \"19\" id = \"desc\">\n        <tr>\n          <td colspan = \"2\" {$valueStyle}>\n            <table> {* FIXME: style this table so that it looks like the text version (justification, etc.) *}\n              <tr>\n                <th style = \"padding-right:34px;text-align:left;font-weight:bold;width:200px;\"><font size = \"1\">{ts}Description{/ts}</font></th>\n                <th style = \"padding-left:34px;text-align:right;font-weight:bold;\" ><font size = \"1\">{ts}Quantity{/ts}</font></th>\n                <th style = \"padding-left:34px;text-align:right;font-weight:bold;\"><font size = \"1\">{ts}Unit Price{/ts}</font></th>\n                <th style = \"padding-left:34px;text-align:right;font-weight:bold;width:20px;\"><font size = \"1\">{$taxTerm} </font></th>\n                <th style = \"padding-left:34px;text-align:right;font-weight:bold;\"><font size = \"1\">{ts 1=$defaultCurrency}Amount %1{/ts}</font></th>\n              </tr>\n              {foreach from=$lineItem item=value key=priceset name=taxpricevalue}\n                {if $smarty.foreach.taxpricevalue.index eq 0}\n                  <tr>\n                    <td colspan = \"5\" ><hr size=\"3\" style = \"color:#000;\"></hr></td>\n                  </tr>\n                {else}\n                  <tr>\n                    <td  colspan = \"5\" style = \"color:#F5F5F5;\"><hr></hr></td>\n                  </tr>\n                {/if}\n                <tr>\n                  <td style=\"text-align:left;\" ><font size = \"1\">\n                    {if $value.html_type eq \'Text\'}\n                      {$value.label}\n                    {else}\n                      {$value.field_title} - {$value.label}\n                    {/if}\n                    {if $value.description}\n                      <div>{$value.description|truncate:30:\"...\"}</div>\n                    {/if}\n                    </font>\n                  </td>\n                  <td style = \"padding-left:34px;text-align:right;\"><font size = \"1\"> {$value.qty}</font></td>\n                  <td style = \"padding-left:34px;text-align:right;\"><font size = \"1\"> {$value.unit_price|crmMoney:$currency}</font></td>\n                  {if $value.tax_amount != \'\'}\n                    <td style = \"padding-left:34px;text-align:right;width:20px;\"><font size = \"1\"> {$value.tax_rate}%</font></td>\n                  {else}\n                    <td style = \"padding-left:34px;text-align:right;width:20px;\"><font size = \"1\">{ts 1=$taxTerm}No %1{/ts}</font></td>\n                  {/if}\n                  <td style = \"padding-left:34px;text-align:right;\"><font size = \"1\">{$value.subTotal|crmMoney:$currency}</font></td>\n                </tr>\n              {/foreach}\n              <tr><td  colspan = \"5\" style = \"color:#F5F5F5;\"><hr></hr></td></tr>\n              <tr>\n                <td colspan = \"3\"></td>\n                <td style = \"padding-left:20px;text-align:right;\"><font size = \"1\">{ts}Sub Total{/ts}</font></td>\n                <td style = \"padding-left:34px;text-align:right;\"><font size = \"1\"> {$subTotal|crmMoney:$currency}</font></td>\n              </tr>\n              {foreach from = $dataArray item = value key = priceset}\n                <tr>\n                  <td colspan = \"3\"></td>\n                    {if $priceset}\n                      <td style = \"padding-left:20px;text-align:right;\"><font size = \"1\"> {ts 1=$taxTerm 2=$priceset}TOTAL %1 %2%{/ts}</font></td>\n                      <td style = \"padding-left:34px;text-align:right\"><font size = \"1\" align = \"right\">{$value|crmMoney:$currency}</font> </td>\n                    {elseif $priceset == 0}\n                      <td style = \"padding-left:20px;text-align:right;\"><font size = \"1\">{ts 1=$taxTerm}TOTAL NO %1{/ts}</font></td>\n                      <td style = \"padding-left:34px;text-align:right\"><font size = \"1\" align = \"right\">{$value|crmMoney:$currency}</font> </td>\n                </tr>\n              {/if}\n              {/foreach}\n              <tr>\n                <td colspan = \"3\"></td>\n                <td colspan = \"2\"><hr></hr></td>\n              </tr>\n              <tr>\n                <td colspan = \"3\"></td>\n                <td style = \"padding-left:20px;text-align:right;\"><b><font size = \"1\">{ts 1=$defaultCurrency}TOTAL %1{/ts}</font></b></td>\n                <td style = \"padding-left:34px;text-align:right;\"><font size = \"1\">{$amount|crmMoney:$currency}</font></td>\n                <td style = \"padding-left:34px;\"><font size = \"1\" align = \"right\"></font></td>\n              </tr>\n              {if $is_pay_later == 0}\n                <tr>\n                  <td colspan = \"3\"></td>\n                  <td style = \"padding-left:20px;text-align:right;\"><font size = \"1\">\n                    {if $contribution_status_id == $refundedStatusId}\n                      {ts}LESS Amount Credited{/ts}\n                    {else}\n                      {ts}LESS Amount Paid{/ts}\n                    {/if}\n                    </font>\n                  </td>\n                  <td style = \"padding-left:34px;text-align:right;\"><font size = \"1\">{$amountPaid|crmMoney:$currency}</font></td>\n                </tr>\n                <tr>\n                  <td colspan = \"3\"></td>\n                  <td colspan = \"2\" ><hr></hr></td>\n                </tr>\n                <tr>\n                  <td colspan = \"3\"></td>\n                  <td style = \"padding-left:20px;text-align:right;\"><b><font size = \"1\">{ts}AMOUNT DUE:{/ts} </font></b></td>\n                  <td style = \"padding-left:34px;text-align:right;\"><b><font size = \"1\">{$amountDue|crmMoney:$currency}</font></b></td>\n                  <td style = \"padding-left:34px;\"><font size = \"1\" align = \"right\"></font></td>\n                </tr>\n              {/if}\n              <br/><br/><br/>\n              <tr>\n                <td colspan = \"3\"></td>\n              </tr>\n              {if $contribution_status_id == $pendingStatusId && $is_pay_later == 1}\n                <tr>\n                  <td><b><font size = \"1\" align = \"center\">{ts 1=$dueDate}DUE DATE: %1{/ts}</font></b></td>\n                  <td colspan = \"3\"></td>\n                </tr>\n              {/if}\n            </table>\n          </td>\n        </tr>\n      </table>\n      {if $contribution_status_id == $pendingStatusId && $is_pay_later == 1}\n        <table style = \"margin-top:5px;padding-right:45px;\">\n          <tr>\n            <td><img src = \"{$resourceBase}/i/contribute/cut_line.png\" height = \"15\" width = \"630\"></td>\n          </tr>\n        </table>\n        <table style = \"margin-top:6px;padding-right:20px;font-family: Arial, Verdana, sans-serif\" width = \"480\" border = \"0\"cellpadding = \"-5\" cellspacing=\"19\" id = \"desc\">\n          <tr>\n            <td width=\"60%\"><b><font size = \"4\" align = \"right\">{ts}PAYMENT ADVICE{/ts}</font></b> <br/><br/> <font size = \"1\" align = \"right\"><b>{ts}To: {/ts}</b><div style=\"width:17em;word-wrap:break-word;\">\n              {$domain_organization} <br />\n              {$domain_street_address} {$domain_supplemental_address_1} <br />\n              {$domain_supplemental_address_2} {$domain_state} <br />\n              {$domain_city} {$domain_postal_code} <br />\n              {$domain_country} <br />\n              {$domain_phone} <br />\n              {$domain_email}</div>\n              </font><br/><br/><font size=\"1\" align=\"right\">{$notes}</font>\n            </td>\n            <td width=\"40%\">\n              <table  cellpadding = \"-10\" cellspacing = \"22\"  align=\"right\" >\n                <tr>\n                  <td colspan = \"2\"></td>\n                  <td><font size = \"1\" align = \"right\" style=\"font-weight:bold;\">{ts}Customer: {/ts}</font></td>\n                  <td ><font size = \"1\" align = \"right\">{$display_name}</font></td>\n                </tr>\n                <tr>\n                  <td colspan = \"2\"></td>\n                  <td><font size = \"1\" align = \"right\" style=\"font-weight:bold;\">{ts}Invoice Number: {/ts}</font></td>\n                  <td><font size = \"1\" align = \"right\">{$invoice_number}</font></td>\n                </tr>\n                <tr><td colspan = \"5\"style = \"color:#F5F5F5;\"><hr></hr></td></tr>\n                {if $is_pay_later == 1}\n                  <tr>\n                    <td colspan = \"2\"></td>\n                    <td><font size = \"1\" align = \"right\" style=\"font-weight:bold;\">{ts}Amount Due:{/ts}</font></td>\n                    <td><font size = \"1\" align = \"right\" style=\"font-weight:bold;\">{$amount|crmMoney:$currency}</font></td>\n                  </tr>\n                {else}\n                  <tr>\n                    <td colspan = \"2\"></td>\n                    <td><font size = \"1\" align = \"right\" style=\"font-weight:bold;\">{ts}Amount Due: {/ts}</font></td>\n                    <td><font size = \"1\" align = \"right\" style=\"font-weight:bold;\">{$amountDue|crmMoney:$currency}</font></td>\n                  </tr>\n                {/if}\n                <tr>\n                  <td colspan = \"2\"></td>\n                  <td><font size = \"1\" align = \"right\" style=\"font-weight:bold;\">{ts}Due Date:  {/ts}</font></td>\n                  <td><font size = \"1\" align = \"right\">{$dueDate}</font></td>\n                </tr>\n                <tr>\n                  <td colspan = \"5\" style = \"color:#F5F5F5;\"><hr></hr></td>\n                </tr>\n              </table>\n            </td>\n          </tr>\n        </table>\n      {/if}\n\n      {if $contribution_status_id == $refundedStatusId || $contribution_status_id == $cancelledStatusId}\n        <table style = \"margin-top:2px;padding-left:7px;page-break-before: always;\">\n          <tr>\n            <td><img src = \"{$resourceBase}/i/civi99.png\" height = \"34px\" width = \"99px\"></td>\n          </tr>\n        </table>\n    <center>\n\n      <table style = \"padding-right:19px;font-family: Arial, Verdana, sans-serif\" width = \"500\" height = \"100\" border = \"0\" cellpadding = \"2\" cellspacing = \"1\">\n        <tr>\n          <td style = \"padding-left:15px;\" ><b><font size = \"4\" align = \"center\">{ts}CREDIT NOTE{/ts}</font></b></td>\n          <td colspan = \"1\"></td>\n          <td style = \"padding-left:70px;\"><b><font size = \"1\" align = \"right\">{ts}Date:{/ts}</font></b></td>\n          <td><font size = \"1\" align = \"right\">{$domain_organization}</font></td>\n        </tr>\n        <tr>\n          {if $organization_name}\n            <td style = \"padding-left:17px;\"><font size = \"1\" align = \"center\">{$display_name}  ({$organization_name})</font></td>\n          {else}\n            <td style = \"padding-left:17px;\"><font size = \"1\" align = \"center\">{$display_name}</font></td>\n          {/if}\n          <td colspan = \"1\"></td>\n          <td style = \"padding-left:70px;\"><font size = \"1\" align = \"right\">{$invoice_date}</font></td>\n          <td>\n            <font size = \"1\" align = \"right\">\n              {if $domain_street_address }{$domain_street_address}{/if}\n              {if $domain_supplemental_address_1 }{$domain_supplemental_address_1}{/if}\n            </font>\n          </td>\n        </tr>\n        <tr>\n          <td style = \"padding-left:17px;\"><font size = \"1\" align = \"center\">{$street_address}   {$supplemental_address_1}</font></td>\n          <td colspan = \"1\"></td>\n          <td style = \"padding-left:70px;\"><b><font size = \"1\" align = \"right\">{ts}Credit Note Number:{/ts}</font></b></td>\n          <td>\n            <font size = \"1\" align = \"right\">\n              {if $domain_supplemental_address_2 }{$domain_supplemental_address_2}{/if}\n              {if $domain_state }{$domain_state}{/if}\n            </font>\n          </td>\n        </tr>\n        <tr>\n          <td style = \"padding-left:17px;\"><font size = \"1\" align = \"center\">{$supplemental_address_2}  {$stateProvinceAbbreviation}</font></td>\n          <td colspan=\"1\"></td>\n          <td style = \"padding-left:70px;\"><font size = \"1\" align = \"right\">{$creditnote_id}</font></td>\n          <td>\n            <font size = \"1\" align = \"right\">\n              {if $domain_city}{$domain_city}{/if}\n              {if $domain_postal_code }{$domain_postal_code}{/if}\n            </font>\n          </td>\n        </tr>\n        <tr>\n          <td style = \"padding-left:17px;\"><font size = \"1\" align = \"right\">{$city}  {$postal_code}</font></td>\n          <td colspan=\"1\"></td>\n          <td height = \"10\" style = \"padding-left:70px;\"><b><font size = \"1\"align = \"right\">{ts}Reference:{/ts}</font></b></td>\n          <td>\n            <font size = \"1\" align = \"right\">\n              {if $domain_country}{$domain_country}{/if}\n            </font>\n          </td>\n        </tr>\n        <tr>\n          <td></td>\n          <td></td>\n          <td style = \"padding-left:70px;\"><font size = \"1\"align = \"right\">{$source}</font></td>\n          <td>\n            <font size = \"1\" align = \"right\">\n              {if $domain_phone}{$domain_phone}{/if}\n            </font>\n          </td>\n        </tr>\n        <tr>\n          <td></td>\n          <td></td>\n          <td></td>\n          <td>\n            <font size = \"1\" align = \"right\">\n              {if $domain_email}{$domain_email}{/if}\n            </font>\n          </td>\n        </tr>\n      </table>\n\n      <table style = \"margin-top:75px;font-family: Arial, Verdana, sans-serif\" width = \"590\" border = \"0\"cellpadding = \"-5\" cellspacing = \"19\" id = \"desc\">\n        <tr>\n          <td colspan = \"2\" {$valueStyle}>\n            <table> {* FIXME: style this table so that it looks like the text version (justification, etc.) *}\n              <tr>\n                <th style = \"padding-right:28px;text-align:left;font-weight:bold;width:200px;\"><font size = \"1\">{ts}Description{/ts}</font></th>\n                <th style = \"padding-left:28px;text-align:right;font-weight:bold;\"><font size = \"1\">{ts}Quantity{/ts}</font></th>\n                <th style = \"padding-left:28px;text-align:right;font-weight:bold;\"><font size = \"1\">{ts}Unit Price{/ts}</font></th>\n                <th style = \"padding-left:28px;text-align:right;font-weight:bold;\"><font size = \"1\">{$taxTerm} </font></th>\n                <th style = \"padding-left:28px;text-align:right;font-weight:bold;\"><font size = \"1\">{ts 1=$defaultCurrency}Amount %1{/ts}</font></th>\n              </tr>\n              {foreach from=$lineItem item=value key=priceset name=pricevalue}\n                {if $smarty.foreach.pricevalue.index eq 0}\n                  <tr><td  colspan = \"5\" ><hr size=\"3\" style = \"color:#000;\"></hr></td></tr>\n                {else}\n                  <tr><td  colspan = \"5\" style = \"color:#F5F5F5;\"><hr></hr></td></tr>\n                {/if}\n                <tr>\n                  <td style =\"text-align:left;\"  >\n                    <font size = \"1\">\n                      {if $value.html_type eq \'Text\'}\n                        {$value.label}\n                      {else}\n                        {$value.field_title} - {$value.label}\n                      {/if}\n                      {if $value.description}\n                        <div>{$value.description|truncate:30:\"...\"}</div>\n                      {/if}\n                    </font>\n                  </td>\n                  <td style = \"padding-left:28px;text-align:right;\"><font size = \"1\"> {$value.qty}</font></td>\n                  <td style = \"padding-left:28px;text-align:right;\"><font size = \"1\"> {$value.unit_price|crmMoney:$currency}</font></td>\n                  {if $value.tax_amount != \'\'}\n                    <td style = \"padding-left:28px;text-align:right;\"><font size = \"1\"> {$value.tax_rate}%</font></td>\n                  {else}\n                    <td style = \"padding-left:28px;text-align:right\"><font size = \"1\" >{ts 1=$taxTerm}No %1{/ts}</font></td>\n                  {/if}\n                  <td style = \"padding-left:28px;text-align:right;\"><font size = \"1\" >{$value.subTotal|crmMoney:$currency}</font></td>\n                </tr>\n              {/foreach}\n              <tr><td  colspan = \"5\" style = \"color:#F5F5F5;\"><hr></hr></td></tr>\n              <tr>\n                <td colspan = \"3\"></td>\n                <td style = \"padding-left:28px;text-align:right;\"><font size = \"1\">{ts}Sub Total{/ts}</font></td>\n                <td style = \"padding-left:28px;text-align:right;\"><font size = \"1\"> {$subTotal|crmMoney:$currency}</font></td>\n              </tr>\n              {foreach from = $dataArray item = value key = priceset}\n                <tr>\n                  <td colspan = \"3\"></td>\n                  {if $priceset}\n                    <td style = \"padding-left:28px;text-align:right;\"><font size = \"1\"> {ts 1=$taxTerm 2=$priceset}TOTAL %1 %2%{/ts}</font></td>\n                    <td style = \"padding-left:28px;text-align:right;\"><font size = \"1\" align = \"right\">{$value|crmMoney:$currency}</font> </td>\n                  {elseif $priceset == 0}\n                    <td style = \"padding-left:28px;text-align:right;\"><font size = \"1\">{ts 1=$taxTerm}TOTAL NO %1{/ts}</font></td>\n                    <td style = \"padding-left:28px;text-align:right;\"><font size = \"1\" align = \"right\">{$value|crmMoney:$currency}</font> </td>\n                </tr>\n                {/if}\n              {/foreach}\n              <tr>\n                <td colspan = \"3\"></td>\n                <td colspan = \"2\"><hr></hr></td>\n              </tr>\n              <tr>\n                <td colspan = \"3\"></td>\n                <td style = \"padding-left:28px;text-align:right;\"><b><font size = \"1\">{ts 1=$defaultCurrency}TOTAL %1{/ts}</font></b></td>\n                <td style = \"padding-left:28px;text-align:right;\"><font size = \"1\">{$amount|crmMoney:$currency}</font></td>\n              </tr>\n              {if $is_pay_later == 0}\n                <tr>\n                  <td colspan = \"3\"></td>\n                  <td style = \"padding-left:28px;text-align:right;\"><font size = \"1\" >{ts}LESS Credit to invoice(s){/ts}</font></td>\n                  <td style = \"padding-left:28px;text-align:right;\"><font size = \"1\">{$amount|crmMoney:$currency}</font></td>\n                </tr>\n                <tr>\n                  <td colspan = \"3\"></td>\n                  <td colspan = \"2\" ><hr></hr></td>\n                </tr>\n                <tr>\n                  <td colspan = \"3\"></td>\n                  <td style = \"padding-left:28px;text-align:right;\"><b><font size = \"1\">{ts}REMAINING CREDIT{/ts}</font></b></td>\n                  <td style = \"padding-left:28px;text-align:right;\"><b><font size = \"1\">{$amountDue|crmMoney:$currency}</font></b></td>\n                  <td style = \"padding-left:28px;\"><font size = \"1\" align = \"right\"></font></td>\n                </tr>\n              {/if}\n              <br/><br/><br/>\n              <tr>\n                <td colspan = \"3\"></td>\n              </tr>\n              <tr>\n                <td></td>\n                <td colspan = \"3\"></td>\n              </tr>\n            </table>\n          </td>\n        </tr>\n      </table>\n      <table style = \"margin-top:5px;padding-right:45px;\">\n        <tr>\n          <td><img src = \"{$resourceBase}/i/contribute/cut_line.png\" height = \"15\" width = \"630\"></td>\n        </tr>\n      </table>\n\n      <table style = \"margin-top:6px;padding-right:20px;font-family: Arial, Verdana, sans-serif\" width = \"507\" border = \"0\"cellpadding = \"-5\" cellspacing=\"19\" id = \"desc\">\n        <tr>\n          <td width=\"60%\"><font size = \"4\" align = \"right\"><b>{ts}CREDIT ADVICE{/ts}</b><br/><br /><div  style=\"font-size:10px;max-width:300px;\">{ts}Please do not pay on this advice. Deduct the amount of this Credit Note from your next payment to us{/ts}</div><br/></font></td>\n          <td width=\"40%\">\n            <table    align=\"right\" >\n              <tr>\n                <td colspan = \"2\"></td>\n                <td><font size = \"1\" align = \"right\" style=\"font-weight:bold;\">{ts}Customer:{/ts} </font></td>\n                <td><font size = \"1\" align = \"right\" >{$display_name}</font></td>\n              </tr>\n              <tr>\n                <td colspan = \"2\"></td>\n                <td><font size = \"1\" align = \"right\" style=\"font-weight:bold;\">{ts}Credit Note#:{/ts} </font></td>\n                <td><font size = \"1\" align = \"right\">{$creditnote_id}</font></td>\n              </tr>\n              <tr><td  colspan = \"5\"style = \"color:#F5F5F5;\"><hr></hr></td></tr>\n              <tr>\n                <td colspan = \"2\"></td>\n                <td><font size = \"1\" align = \"right\" style=\"font-weight:bold;\">{ts}Credit Amount:{/ts}</font></td>\n                <td width=\'50px\'><font size = \"1\" align = \"right\" style=\"font-weight:bold;\">{$amount|crmMoney:$currency}</font></td>\n              </tr>\n            </table>\n          </td>\n        </tr>\n      </table>\n    {/if}\n    </center>\n  </body>\n</html>\n',1,823,0,1,0,NULL),(11,'Contributions - Recurring Start and End Notification','{ts}Recurring Contribution Notification{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{if $recur_txnType eq \'START\'}\n{if $auto_renew_membership}\n{ts}Thanks for your auto renew membership sign-up.{/ts}\n\n\n{ts 1=$recur_frequency_interval 2=$recur_frequency_unit}This membership will be automatically renewed every %1 %2(s).{/ts}\n\n{if $cancelSubscriptionUrl}\n{ts 1=$cancelSubscriptionUrl}You can cancel the auto-renewal option by <a href=\"%1\">visiting this web page</a>.{/ts}\n\n{/if}\n\n{if $updateSubscriptionBillingUrl}\n{ts 1=$updateSubscriptionBillingUrl}You can update billing details for this automatically renewed membership by <a href=\"%1\">visiting this web page</a>.{/ts}\n\n{/if}\n{else}\n{ts}Thanks for your recurring contribution sign-up.{/ts}\n\n\n{ts 1=$recur_frequency_interval 2=$recur_frequency_unit 3=$recur_installments}This recurring contribution will be automatically processed every %1 %2(s){/ts}{if $recur_installments } {ts 1=$recur_installments} for a total of %1 installment(s){/ts}{/if}.\n\n{ts}Start Date{/ts}:  {$recur_start_date|crmDate}\n\n{if $cancelSubscriptionUrl}\n{ts 1=$cancelSubscriptionUrl}You can cancel the recurring contribution option by <a href=\"%1\">visiting this web page</a>.{/ts}\n\n{/if}\n\n{if $updateSubscriptionBillingUrl}\n{ts 1=$updateSubscriptionBillingUrl}You can update billing details for this recurring contribution by <a href=\"%1\">visiting this web page</a>.{/ts}\n\n{/if}\n\n{if $updateSubscriptionUrl}\n{ts 1=$updateSubscriptionUrl}You can update recurring contribution amount or change the number of installments for this recurring contribution by <a href=\"%1\">visiting this web page</a>.{/ts}\n\n{/if}\n{/if}\n\n{elseif $recur_txnType eq \'END\'}\n{if $auto_renew_membership}\n{ts}Your auto renew membership sign-up has ended and your membership will not be automatically renewed.{/ts}\n\n\n{else}\n{ts}Your recurring contribution term has ended.{/ts}\n\n\n{ts 1=$recur_installments}You have successfully completed %1 recurring contributions. Thank you.{/ts}\n\n\n==================================================\n{ts 1=$recur_installments}Interval of Subscription for %1 installment(s){/ts}\n\n==================================================\n{ts}Start Date{/ts}: {$recur_start_date|crmDate}\n\n{ts}End Date{/ts}: {$recur_end_date|crmDate}\n\n{/if}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n   </td>\n  </tr>\n\n  <tr>\n   <td>&nbsp;</td>\n  </tr>\n\n    {if $recur_txnType eq \'START\'}\n     {if $auto_renew_membership}\n       <tr>\n        <td>\n         <p>{ts}Thanks for your auto renew membership sign-up.{/ts}</p>\n         <p>{ts 1=$recur_frequency_interval 2=$recur_frequency_unit}This membership will be automatically renewed every %1 %2(s). {/ts}</p>\n        </td>\n       </tr>\n       {if $cancelSubscriptionUrl}\n       <tr>\n         <td {$labelStyle}>\n           {ts 1=$cancelSubscriptionUrl}You can cancel the auto-renewal option by <a href=\"%1\">visiting this web page</a>.{/ts}\n         </td>\n       </tr>\n       {/if}\n       {if $updateSubscriptionBillingUrl}\n         <tr>\n          <td {$labelStyle}>\n           {ts 1=$updateSubscriptionBillingUrl}You can update billing details for this automatically renewed membership by <a href=\"%1\">visiting this web page</a>.{/ts}\n          </td>\n         </tr>\n       {/if}\n     {else}\n      <tr>\n       <td>\n        <p>{ts}Thanks for your recurring contribution sign-up.{/ts}</p>\n        <p>{ts 1=$recur_frequency_interval 2=$recur_frequency_unit}This recurring contribution will be automatically processed every %1 %2(s){/ts}{if $recur_installments }{ts 1=$recur_installments} for a total of %1 installment(s){/ts}{/if}.</p>\n        <p>{ts}Start Date{/ts}: {$recur_start_date|crmDate}</p>\n       </td>\n      </tr>\n      {if $cancelSubscriptionUrl}\n      <tr>\n        <td {$labelStyle}>\n          {ts 1=$cancelSubscriptionUrl} You can cancel the recurring contribution option by <a href=\"%1\">visiting this web page</a>.{/ts}\n        </td>\n      </tr>\n      {/if}\n      {if $updateSubscriptionBillingUrl}\n        <tr>\n          <td {$labelStyle}>\n            {ts 1=$updateSubscriptionBillingUrl}You can update billing details for this recurring contribution by <a href=\"%1\">visiting this web page</a>.{/ts}\n          </td>\n        </tr>\n      {/if}\n      {if $updateSubscriptionUrl}\n      <tr>\n        <td {$labelStyle}>\n          {ts 1=$updateSubscriptionUrl}You can update recurring contribution amount or change the number of installments details for this recurring contribution by <a href=\"%1\">visiting this web page</a>.{/ts}\n        </td>\n      </tr>\n      {/if}\n     {/if}\n\n    {elseif $recur_txnType eq \'END\'}\n\n     {if $auto_renew_membership}\n      <tr>\n       <td>\n        <p>{ts}Your auto renew membership sign-up has ended and your membership will not be automatically renewed.{/ts}</p>\n       </td>\n      </tr>\n     {else}\n      <tr>\n       <td>\n        <p>{ts}Your recurring contribution term has ended.{/ts}</p>\n        <p>{ts 1=$recur_installments}You have successfully completed %1 recurring contributions. Thank you.{/ts}</p>\n       </td>\n      </tr>\n      <tr>\n       <td>\n     <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n      <tr>\n       <th {$headerStyle}>\n        {ts 1=$recur_installments}Interval of Subscription for %1 installment(s){/ts}\n       </th>\n      </tr>\n      <tr>\n       <td {$labelStyle}>\n        {ts}Start Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$recur_start_date|crmDate}\n       </td>\n      </tr>\n      <tr>\n       <td {$labelStyle}>\n        {ts}End Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$recur_end_date|crmDate}\n       </td>\n      </tr>\n     </table>\n       </td>\n      </tr>\n\n     {/if}\n    {/if}\n\n </table>\n</center>\n\n</body>\n</html>\n',1,824,1,0,0,NULL),(12,'Contributions - Recurring Start and End Notification','{ts}Recurring Contribution Notification{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{if $recur_txnType eq \'START\'}\n{if $auto_renew_membership}\n{ts}Thanks for your auto renew membership sign-up.{/ts}\n\n\n{ts 1=$recur_frequency_interval 2=$recur_frequency_unit}This membership will be automatically renewed every %1 %2(s).{/ts}\n\n{if $cancelSubscriptionUrl}\n{ts 1=$cancelSubscriptionUrl}You can cancel the auto-renewal option by <a href=\"%1\">visiting this web page</a>.{/ts}\n\n{/if}\n\n{if $updateSubscriptionBillingUrl}\n{ts 1=$updateSubscriptionBillingUrl}You can update billing details for this automatically renewed membership by <a href=\"%1\">visiting this web page</a>.{/ts}\n\n{/if}\n{else}\n{ts}Thanks for your recurring contribution sign-up.{/ts}\n\n\n{ts 1=$recur_frequency_interval 2=$recur_frequency_unit 3=$recur_installments}This recurring contribution will be automatically processed every %1 %2(s){/ts}{if $recur_installments } {ts 1=$recur_installments} for a total of %1 installment(s){/ts}{/if}.\n\n{ts}Start Date{/ts}:  {$recur_start_date|crmDate}\n\n{if $cancelSubscriptionUrl}\n{ts 1=$cancelSubscriptionUrl}You can cancel the recurring contribution option by <a href=\"%1\">visiting this web page</a>.{/ts}\n\n{/if}\n\n{if $updateSubscriptionBillingUrl}\n{ts 1=$updateSubscriptionBillingUrl}You can update billing details for this recurring contribution by <a href=\"%1\">visiting this web page</a>.{/ts}\n\n{/if}\n\n{if $updateSubscriptionUrl}\n{ts 1=$updateSubscriptionUrl}You can update recurring contribution amount or change the number of installments for this recurring contribution by <a href=\"%1\">visiting this web page</a>.{/ts}\n\n{/if}\n{/if}\n\n{elseif $recur_txnType eq \'END\'}\n{if $auto_renew_membership}\n{ts}Your auto renew membership sign-up has ended and your membership will not be automatically renewed.{/ts}\n\n\n{else}\n{ts}Your recurring contribution term has ended.{/ts}\n\n\n{ts 1=$recur_installments}You have successfully completed %1 recurring contributions. Thank you.{/ts}\n\n\n==================================================\n{ts 1=$recur_installments}Interval of Subscription for %1 installment(s){/ts}\n\n==================================================\n{ts}Start Date{/ts}: {$recur_start_date|crmDate}\n\n{ts}End Date{/ts}: {$recur_end_date|crmDate}\n\n{/if}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n   </td>\n  </tr>\n\n  <tr>\n   <td>&nbsp;</td>\n  </tr>\n\n    {if $recur_txnType eq \'START\'}\n     {if $auto_renew_membership}\n       <tr>\n        <td>\n         <p>{ts}Thanks for your auto renew membership sign-up.{/ts}</p>\n         <p>{ts 1=$recur_frequency_interval 2=$recur_frequency_unit}This membership will be automatically renewed every %1 %2(s). {/ts}</p>\n        </td>\n       </tr>\n       {if $cancelSubscriptionUrl}\n       <tr>\n         <td {$labelStyle}>\n           {ts 1=$cancelSubscriptionUrl}You can cancel the auto-renewal option by <a href=\"%1\">visiting this web page</a>.{/ts}\n         </td>\n       </tr>\n       {/if}\n       {if $updateSubscriptionBillingUrl}\n         <tr>\n          <td {$labelStyle}>\n           {ts 1=$updateSubscriptionBillingUrl}You can update billing details for this automatically renewed membership by <a href=\"%1\">visiting this web page</a>.{/ts}\n          </td>\n         </tr>\n       {/if}\n     {else}\n      <tr>\n       <td>\n        <p>{ts}Thanks for your recurring contribution sign-up.{/ts}</p>\n        <p>{ts 1=$recur_frequency_interval 2=$recur_frequency_unit}This recurring contribution will be automatically processed every %1 %2(s){/ts}{if $recur_installments }{ts 1=$recur_installments} for a total of %1 installment(s){/ts}{/if}.</p>\n        <p>{ts}Start Date{/ts}: {$recur_start_date|crmDate}</p>\n       </td>\n      </tr>\n      {if $cancelSubscriptionUrl}\n      <tr>\n        <td {$labelStyle}>\n          {ts 1=$cancelSubscriptionUrl} You can cancel the recurring contribution option by <a href=\"%1\">visiting this web page</a>.{/ts}\n        </td>\n      </tr>\n      {/if}\n      {if $updateSubscriptionBillingUrl}\n        <tr>\n          <td {$labelStyle}>\n            {ts 1=$updateSubscriptionBillingUrl}You can update billing details for this recurring contribution by <a href=\"%1\">visiting this web page</a>.{/ts}\n          </td>\n        </tr>\n      {/if}\n      {if $updateSubscriptionUrl}\n      <tr>\n        <td {$labelStyle}>\n          {ts 1=$updateSubscriptionUrl}You can update recurring contribution amount or change the number of installments details for this recurring contribution by <a href=\"%1\">visiting this web page</a>.{/ts}\n        </td>\n      </tr>\n      {/if}\n     {/if}\n\n    {elseif $recur_txnType eq \'END\'}\n\n     {if $auto_renew_membership}\n      <tr>\n       <td>\n        <p>{ts}Your auto renew membership sign-up has ended and your membership will not be automatically renewed.{/ts}</p>\n       </td>\n      </tr>\n     {else}\n      <tr>\n       <td>\n        <p>{ts}Your recurring contribution term has ended.{/ts}</p>\n        <p>{ts 1=$recur_installments}You have successfully completed %1 recurring contributions. Thank you.{/ts}</p>\n       </td>\n      </tr>\n      <tr>\n       <td>\n     <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n      <tr>\n       <th {$headerStyle}>\n        {ts 1=$recur_installments}Interval of Subscription for %1 installment(s){/ts}\n       </th>\n      </tr>\n      <tr>\n       <td {$labelStyle}>\n        {ts}Start Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$recur_start_date|crmDate}\n       </td>\n      </tr>\n      <tr>\n       <td {$labelStyle}>\n        {ts}End Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$recur_end_date|crmDate}\n       </td>\n      </tr>\n     </table>\n       </td>\n      </tr>\n\n     {/if}\n    {/if}\n\n </table>\n</center>\n\n</body>\n</html>\n',1,824,0,1,0,NULL),(13,'Contributions - Recurring Cancellation Notification','{ts}Recurring Contribution Cancellation Notification{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$amount 2=$recur_frequency_interval 3=$recur_frequency_unit}Your recurring contribution of %1, every %2 %3 has been cancelled as requested.{/ts}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts 1=$amount 2=$recur_frequency_interval 3=$recur_frequency_unit}Your recurring contribution of %1, every %2 %3 has been cancelled as requested.{/ts}</p>\n   </td>\n  </tr>\n  <tr>\n </table>\n</center>\n\n</body>\n</html>\n',1,825,1,0,0,NULL),(14,'Contributions - Recurring Cancellation Notification','{ts}Recurring Contribution Cancellation Notification{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$amount 2=$recur_frequency_interval 3=$recur_frequency_unit}Your recurring contribution of %1, every %2 %3 has been cancelled as requested.{/ts}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts 1=$amount 2=$recur_frequency_interval 3=$recur_frequency_unit}Your recurring contribution of %1, every %2 %3 has been cancelled as requested.{/ts}</p>\n   </td>\n  </tr>\n  <tr>\n </table>\n</center>\n\n</body>\n</html>\n',1,825,0,1,0,NULL),(15,'Contributions - Recurring Billing Updates','{ts}Recurring Contribution Billing Updates{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$amount 2=$recur_frequency_interval 3=$recur_frequency_unit}Billing details for your recurring contribution of %1, every %2 %3 have been updated.{/ts}\n\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billingName}\n{$address}\n\n{$email}\n\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n\n\n{ts 1=$receipt_from_email}If you have questions please contact us at %1{/ts}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts 1=$amount 2=$recur_frequency_interval 3=$recur_frequency_unit}Billing details for your recurring contribution of %1, every %2 %3 have been updated.{/ts}</p>\n   </td>\n  </tr>\n  <tr>\n </table>\n\n  <table style=\"width:100%; max-width:500px; border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse;\">\n    <tr>\n        <th {$headerStyle}>\n         {ts}Billing Name and Address{/ts}\n        </th>\n       </tr>\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         {$billingName}<br />\n         {$address|nl2br}<br />\n         {$email}\n        </td>\n       </tr>\n        <tr>\n       <th {$headerStyle}>\n        {ts}Credit Card Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$credit_card_type}<br />\n        {$credit_card_number}<br />\n        {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}<br />\n       </td>\n      </tr>\n      <tr>\n        <td {$labelStyle}>\n            {ts 1=$receipt_from_email}If you have questions please contact us at %1{/ts}\n        </td>\n       </tr>\n  </table>\n</center>\n\n</body>\n</html>\n',1,826,1,0,0,NULL),(16,'Contributions - Recurring Billing Updates','{ts}Recurring Contribution Billing Updates{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$amount 2=$recur_frequency_interval 3=$recur_frequency_unit}Billing details for your recurring contribution of %1, every %2 %3 have been updated.{/ts}\n\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billingName}\n{$address}\n\n{$email}\n\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n\n\n{ts 1=$receipt_from_email}If you have questions please contact us at %1{/ts}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts 1=$amount 2=$recur_frequency_interval 3=$recur_frequency_unit}Billing details for your recurring contribution of %1, every %2 %3 have been updated.{/ts}</p>\n   </td>\n  </tr>\n  <tr>\n </table>\n\n  <table style=\"width:100%; max-width:500px; border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse;\">\n    <tr>\n        <th {$headerStyle}>\n         {ts}Billing Name and Address{/ts}\n        </th>\n       </tr>\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         {$billingName}<br />\n         {$address|nl2br}<br />\n         {$email}\n        </td>\n       </tr>\n        <tr>\n       <th {$headerStyle}>\n        {ts}Credit Card Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$credit_card_type}<br />\n        {$credit_card_number}<br />\n        {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}<br />\n       </td>\n      </tr>\n      <tr>\n        <td {$labelStyle}>\n            {ts 1=$receipt_from_email}If you have questions please contact us at %1{/ts}\n        </td>\n       </tr>\n  </table>\n</center>\n\n</body>\n</html>\n',1,826,0,1,0,NULL),(17,'Contributions - Recurring Updates','{ts}Recurring Contribution Update Notification{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts}Your recurring contribution has been updated as requested:{/ts}\n\n{ts 1=$amount 2=$recur_frequency_interval 3=$recur_frequency_unit}Recurring contribution is for %1, every %2 %3(s){/ts}\n{if $installments}{ts 1=$installments} for %1 installments.{/ts}{/if}\n\n{ts 1=$receipt_from_email}If you have questions please contact us at %1.{/ts}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts}Your recurring contribution has been updated as requested:{/ts}\n    <p>{ts 1=$amount 2=$recur_frequency_interval 3=$recur_frequency_unit}Recurring contribution is for %1, every %2 %3(s){/ts}{if $installments}{ts 1=$installments} for %1 installments{/ts}{/if}.</p>\n\n    <p>{ts 1=$receipt_from_email}If you have questions please contact us at %1.{/ts}</p>\n   </td>\n  </tr>\n  <tr>\n </table>\n</center>\n\n</body>\n</html>\n',1,827,1,0,0,NULL),(18,'Contributions - Recurring Updates','{ts}Recurring Contribution Update Notification{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts}Your recurring contribution has been updated as requested:{/ts}\n\n{ts 1=$amount 2=$recur_frequency_interval 3=$recur_frequency_unit}Recurring contribution is for %1, every %2 %3(s){/ts}\n{if $installments}{ts 1=$installments} for %1 installments.{/ts}{/if}\n\n{ts 1=$receipt_from_email}If you have questions please contact us at %1.{/ts}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts}Your recurring contribution has been updated as requested:{/ts}\n    <p>{ts 1=$amount 2=$recur_frequency_interval 3=$recur_frequency_unit}Recurring contribution is for %1, every %2 %3(s){/ts}{if $installments}{ts 1=$installments} for %1 installments{/ts}{/if}.</p>\n\n    <p>{ts 1=$receipt_from_email}If you have questions please contact us at %1.{/ts}</p>\n   </td>\n  </tr>\n  <tr>\n </table>\n</center>\n\n</body>\n</html>\n',1,827,0,1,0,NULL),(19,'Personal Campaign Pages - Admin Notification','{ts}Personal Campaign Page Notification{/ts} - {contact.display_name}\n','===========================================================\n{ts}Personal Campaign Page Notification{/ts}\n\n===========================================================\n{ts}Action{/ts}: {if $mode EQ \'Update\'}{ts}Updated personal campaign page{/ts}{else}{ts}New personal campaign page{/ts}{/if}\n{ts}Personal Campaign Page Title{/ts}: {$pcpTitle}\n{ts}Current Status{/ts}: {$pcpStatus}\n{capture assign=pcpURL}{crmURL p=\"civicrm/pcp/info\" q=\"reset=1&id=`$pcpId`\" h=0 a=1}{/capture}\n{ts}View Page{/ts}:\n>> {$pcpURL}\n\n{ts}Supporter{/ts}: {$supporterName}\n>> {$supporterUrl}\n\n{ts}Linked to Contribution Page{/ts}: {$contribPageTitle}\n>> {$contribPageUrl}\n\n{ts}Manage Personal Campaign Pages{/ts}:\n>> {$managePCPUrl}\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n{capture assign=pcpURL     }{crmURL p=\"civicrm/pcp/info\" q=\"reset=1&id=`$pcpId`\" h=0 a=1}{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Personal Campaign Page Notification{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Action{/ts}:\n      </td>\n      <td {$valueStyle}>\n       {if $mode EQ \'Update\'}\n        {ts}Updated personal campaign page{/ts}\n       {else}\n        {ts}New personal campaign page{/ts}\n       {/if}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Personal Campaign Page Title{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$pcpTitle}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Current Status{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$pcpStatus}\n      </td>\n     </tr>\n\n     <tr>\n      <td {$labelStyle}>\n       <a href=\"{$pcpURL}\">{ts}View Page{/ts}</a>\n      </td>\n      <td></td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Supporter{/ts}\n      </td>\n      <td {$valueStyle}>\n       <a href=\"{$supporterUrl}\">{$supporterName}</a>\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Linked to Contribution Page{/ts}\n      </td>\n      <td {$valueStyle}>\n       <a href=\"{$contribPageUrl}\">{$contribPageTitle}</a>\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       <a href=\"{$managePCPUrl}\">{ts}Manage Personal Campaign Pages{/ts}</a>\n      </td>\n      <td></td>\n     </tr>\n\n    </table>\n   </td>\n  </tr>\n </table>\n</center>\n\n</body>\n</html>\n',1,828,1,0,0,NULL),(20,'Personal Campaign Pages - Admin Notification','{ts}Personal Campaign Page Notification{/ts} - {contact.display_name}\n','===========================================================\n{ts}Personal Campaign Page Notification{/ts}\n\n===========================================================\n{ts}Action{/ts}: {if $mode EQ \'Update\'}{ts}Updated personal campaign page{/ts}{else}{ts}New personal campaign page{/ts}{/if}\n{ts}Personal Campaign Page Title{/ts}: {$pcpTitle}\n{ts}Current Status{/ts}: {$pcpStatus}\n{capture assign=pcpURL}{crmURL p=\"civicrm/pcp/info\" q=\"reset=1&id=`$pcpId`\" h=0 a=1}{/capture}\n{ts}View Page{/ts}:\n>> {$pcpURL}\n\n{ts}Supporter{/ts}: {$supporterName}\n>> {$supporterUrl}\n\n{ts}Linked to Contribution Page{/ts}: {$contribPageTitle}\n>> {$contribPageUrl}\n\n{ts}Manage Personal Campaign Pages{/ts}:\n>> {$managePCPUrl}\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n{capture assign=pcpURL     }{crmURL p=\"civicrm/pcp/info\" q=\"reset=1&id=`$pcpId`\" h=0 a=1}{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Personal Campaign Page Notification{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Action{/ts}:\n      </td>\n      <td {$valueStyle}>\n       {if $mode EQ \'Update\'}\n        {ts}Updated personal campaign page{/ts}\n       {else}\n        {ts}New personal campaign page{/ts}\n       {/if}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Personal Campaign Page Title{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$pcpTitle}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Current Status{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$pcpStatus}\n      </td>\n     </tr>\n\n     <tr>\n      <td {$labelStyle}>\n       <a href=\"{$pcpURL}\">{ts}View Page{/ts}</a>\n      </td>\n      <td></td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Supporter{/ts}\n      </td>\n      <td {$valueStyle}>\n       <a href=\"{$supporterUrl}\">{$supporterName}</a>\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Linked to Contribution Page{/ts}\n      </td>\n      <td {$valueStyle}>\n       <a href=\"{$contribPageUrl}\">{$contribPageTitle}</a>\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       <a href=\"{$managePCPUrl}\">{ts}Manage Personal Campaign Pages{/ts}</a>\n      </td>\n      <td></td>\n     </tr>\n\n    </table>\n   </td>\n  </tr>\n </table>\n</center>\n\n</body>\n</html>\n',1,828,0,1,0,NULL),(21,'Personal Campaign Pages - Supporter Status Change Notification','{ts 1=$contribPageTitle}Your Personal Campaign Page for %1{/ts} - {contact.display_name}\n','{if $pcpStatus eq \'Approved\'}\n============================\n{ts}Your Personal Campaign Page{/ts}\n\n============================\n\n{ts}Your personal campaign page has been approved and is now live.{/ts}\n\n{ts}Whenever you want to preview, update or promote your page{/ts}:\n1. {ts}Login to your account at{/ts}:\n{$loginUrl}\n\n2. {ts}Click or paste this link into your browser to go to your page{/ts}:\n{$pcpInfoURL}\n\n{ts}When you view your campaign page WHILE LOGGED IN, the page includes links to edit your page, tell friends, and update your contact info.{/ts}\n\n{if $isTellFriendEnabled}\n\n{ts}After logging in, you can use this form to promote your fundraising page{/ts}:\n{$pcpTellFriendURL}\n\n{/if}\n\n{if $pcpNotifyEmailAddress}\n{ts}Questions? Send email to{/ts}:\n{$pcpNotifyEmailAddress}\n{/if}\n\n{* Rejected message *}\n{elseif $pcpStatus eq \'Not Approved\'}\n============================\n{ts}Your Personal Campaign Page{/ts}\n\n============================\n\n{ts}Your personal campaign page has been reviewed. There were some issues with the content which prevented us from approving the page. We are sorry for any inconvenience.{/ts}\n\n{if $pcpNotifyEmailAddress}\n\n{ts}Please contact our site administrator for more information{/ts}:\n{$pcpNotifyEmailAddress}\n{/if}\n\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n\n    <h1>{ts}Your Personal Campaign Page{/ts}</h1>\n\n    {if $pcpStatus eq \'Approved\'}\n\n     <p>{ts}Your personal campaign page has been approved and is now live.{/ts}</p>\n     <p>{ts}Whenever you want to preview, update or promote your page{/ts}:</p>\n     <ol>\n      <li><a href=\"{$loginUrl}\">{ts}Login to your account{/ts}</a></li>\n      <li><a href=\"{$pcpInfoURL}\">{ts}Go to your page{/ts}</a></li>\n     </ol>\n     <p>{ts}When you view your campaign page WHILE LOGGED IN, the page includes links to edit your page, tell friends, and update your contact info.{/ts}</p>\n\n     {if $isTellFriendEnabled}\n      <p><a href=\"{$pcpTellFriendURL}\">{ts}After logging in, you can use this form to promote your fundraising page{/ts}</a></p>\n     {/if}\n\n     {if $pcpNotifyEmailAddress}\n      <p>{ts}Questions? Send email to{/ts}: {$pcpNotifyEmailAddress}</p>\n     {/if}\n\n    {elseif $pcpStatus eq \'Not Approved\'}\n\n     <p>{ts}Your personal campaign page has been reviewed. There were some issues with the content which prevented us from approving the page. We are sorry for any inconvenience.{/ts}</p>\n     {if $pcpNotifyEmailAddress}\n      <p>{ts}Please contact our site administrator for more information{/ts}: {$pcpNotifyEmailAddress}</p>\n     {/if}\n\n    {/if}\n\n   </td>\n  </tr>\n\n </table>\n</center>\n\n</body>\n</html>\n',1,829,1,0,0,NULL),(22,'Personal Campaign Pages - Supporter Status Change Notification','{ts 1=$contribPageTitle}Your Personal Campaign Page for %1{/ts} - {contact.display_name}\n','{if $pcpStatus eq \'Approved\'}\n============================\n{ts}Your Personal Campaign Page{/ts}\n\n============================\n\n{ts}Your personal campaign page has been approved and is now live.{/ts}\n\n{ts}Whenever you want to preview, update or promote your page{/ts}:\n1. {ts}Login to your account at{/ts}:\n{$loginUrl}\n\n2. {ts}Click or paste this link into your browser to go to your page{/ts}:\n{$pcpInfoURL}\n\n{ts}When you view your campaign page WHILE LOGGED IN, the page includes links to edit your page, tell friends, and update your contact info.{/ts}\n\n{if $isTellFriendEnabled}\n\n{ts}After logging in, you can use this form to promote your fundraising page{/ts}:\n{$pcpTellFriendURL}\n\n{/if}\n\n{if $pcpNotifyEmailAddress}\n{ts}Questions? Send email to{/ts}:\n{$pcpNotifyEmailAddress}\n{/if}\n\n{* Rejected message *}\n{elseif $pcpStatus eq \'Not Approved\'}\n============================\n{ts}Your Personal Campaign Page{/ts}\n\n============================\n\n{ts}Your personal campaign page has been reviewed. There were some issues with the content which prevented us from approving the page. We are sorry for any inconvenience.{/ts}\n\n{if $pcpNotifyEmailAddress}\n\n{ts}Please contact our site administrator for more information{/ts}:\n{$pcpNotifyEmailAddress}\n{/if}\n\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n\n    <h1>{ts}Your Personal Campaign Page{/ts}</h1>\n\n    {if $pcpStatus eq \'Approved\'}\n\n     <p>{ts}Your personal campaign page has been approved and is now live.{/ts}</p>\n     <p>{ts}Whenever you want to preview, update or promote your page{/ts}:</p>\n     <ol>\n      <li><a href=\"{$loginUrl}\">{ts}Login to your account{/ts}</a></li>\n      <li><a href=\"{$pcpInfoURL}\">{ts}Go to your page{/ts}</a></li>\n     </ol>\n     <p>{ts}When you view your campaign page WHILE LOGGED IN, the page includes links to edit your page, tell friends, and update your contact info.{/ts}</p>\n\n     {if $isTellFriendEnabled}\n      <p><a href=\"{$pcpTellFriendURL}\">{ts}After logging in, you can use this form to promote your fundraising page{/ts}</a></p>\n     {/if}\n\n     {if $pcpNotifyEmailAddress}\n      <p>{ts}Questions? Send email to{/ts}: {$pcpNotifyEmailAddress}</p>\n     {/if}\n\n    {elseif $pcpStatus eq \'Not Approved\'}\n\n     <p>{ts}Your personal campaign page has been reviewed. There were some issues with the content which prevented us from approving the page. We are sorry for any inconvenience.{/ts}</p>\n     {if $pcpNotifyEmailAddress}\n      <p>{ts}Please contact our site administrator for more information{/ts}: {$pcpNotifyEmailAddress}</p>\n     {/if}\n\n    {/if}\n\n   </td>\n  </tr>\n\n </table>\n</center>\n\n</body>\n</html>\n',1,829,0,1,0,NULL),(23,'Personal Campaign Pages - Supporter Welcome','{ts 1=$contribPageTitle}Your Personal Campaign Page for %1{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=\"$contribPageTitle\"}Thanks for creating a personal campaign page in support of %1.{/ts}\n\n{if $pcpStatus eq \'Approved\'}\n====================\n{ts}Promoting Your Page{/ts}\n\n====================\n{if $isTellFriendEnabled}\n\n{ts}You can begin your fundraising efforts using our \"Tell a Friend\" form{/ts}:\n\n1. {ts}Login to your account at{/ts}:\n{$loginUrl}\n\n2. {ts}Click or paste this link into your browser and follow the prompts{/ts}:\n{$pcpTellFriendURL}\n{else}\n\n{ts}Send email to family, friends and colleagues with a personal message about this campaign.{/ts}\n{ts}Include this link to your fundraising page in your emails{/ts}:\n{$pcpInfoURL}\n{/if}\n\n===================\n{ts}Managing Your Page{/ts}\n\n===================\n{ts}Whenever you want to preview, update or promote your page{/ts}:\n1. {ts}Login to your account at{/ts}:\n{$loginUrl}\n\n2. {ts}Click or paste this link into your browser to go to your page{/ts}:\n{$pcpInfoURL}\n\n{ts}When you view your campaign page WHILE LOGGED IN, the page includes links to edit your page, tell friends, and update your contact info.{/ts}\n\n\n{elseif $pcpStatus EQ \'Waiting Review\'}\n{ts}Your page requires administrator review before you can begin your fundraising efforts.{/ts}\n\n\n{ts}A notification email has been sent to the site administrator, and you will receive another notification from them as soon as the review process is complete.{/ts}\n\n\n{ts}You can still preview your page prior to approval{/ts}:\n1. {ts}Login to your account at{/ts}:\n{$loginUrl}\n\n2. {ts}Click or paste this link into your browser{/ts}:\n{$pcpInfoURL}\n\n{/if}\n{if $pcpNotifyEmailAddress}\n{ts}Questions? Send email to{/ts}:\n{$pcpNotifyEmailAddress}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts 1=\"$contribPageTitle\"}Thanks for creating a personal campaign page in support of %1.{/ts}</p>\n   </td>\n  </tr>\n\n  {if $pcpStatus eq \'Approved\'}\n\n    <tr>\n     <td>\n      <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n       <tr>\n        <th {$headerStyle}>\n         {ts}Promoting Your Page{/ts}\n        </th>\n       </tr>\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         {if $isTellFriendEnabled}\n          <p>{ts}You can begin your fundraising efforts using our \"Tell a Friend\" form{/ts}:</p>\n          <ol>\n           <li><a href=\"{$loginUrl}\">{ts}Login to your account{/ts}</a></li>\n           <li><a href=\"{$pcpTellFriendURL}\">{ts}Click this link and follow the prompts{/ts}</a></li>\n          </ol>\n         {else}\n          <p>{ts}Send email to family, friends and colleagues with a personal message about this campaign.{/ts} {ts}Include this link to your fundraising page in your emails{/ts}: {$pcpInfoURL}</p>\n         {/if}\n        </td>\n       </tr>\n       <tr>\n        <th {$headerStyle}>\n         {ts}Managing Your Page{/ts}\n        </th>\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         <p>{ts}Whenever you want to preview, update or promote your page{/ts}:</p>\n         <ol>\n          <li><a href=\"{$loginUrl}\">{ts}Login to your account{/ts}</a></li>\n          <li><a href=\"{$pcpInfoURL}\">{ts}Go to your page{/ts}</a></li>\n         </ol>\n         <p>{ts}When you view your campaign page WHILE LOGGED IN, the page includes links to edit your page, tell friends, and update your contact info.{/ts}</p>\n        </td>\n       </tr>\n       </tr>\n      </table>\n     </td>\n    </tr>\n\n   {elseif $pcpStatus EQ \'Waiting Review\'}\n\n    <tr>\n     <td>\n      <p>{ts}Your page requires administrator review before you can begin your fundraising efforts.{/ts}</p>\n      <p>{ts}A notification email has been sent to the site administrator, and you will receive another notification from them as soon as the review process is complete.{/ts}</p>\n      <p>{ts}You can still preview your page prior to approval{/ts}:</p>\n      <ol>\n       <li><a href=\"{$loginUrl}\">{ts}Login to your account{/ts}</a></li>\n       <li><a href=\"{$pcpInfoURL}\">{ts}Click this link{/ts}</a></li>\n      </ol>\n     </td>\n    </tr>\n\n   {/if}\n\n   {if $pcpNotifyEmailAddress}\n    <tr>\n     <td>\n      <p>{ts}Questions? Send email to{/ts}: {$pcpNotifyEmailAddress}</p>\n     </td>\n    </tr>\n   {/if}\n\n </table>\n</center>\n\n</body>\n</html>\n',1,830,1,0,0,NULL),(24,'Personal Campaign Pages - Supporter Welcome','{ts 1=$contribPageTitle}Your Personal Campaign Page for %1{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=\"$contribPageTitle\"}Thanks for creating a personal campaign page in support of %1.{/ts}\n\n{if $pcpStatus eq \'Approved\'}\n====================\n{ts}Promoting Your Page{/ts}\n\n====================\n{if $isTellFriendEnabled}\n\n{ts}You can begin your fundraising efforts using our \"Tell a Friend\" form{/ts}:\n\n1. {ts}Login to your account at{/ts}:\n{$loginUrl}\n\n2. {ts}Click or paste this link into your browser and follow the prompts{/ts}:\n{$pcpTellFriendURL}\n{else}\n\n{ts}Send email to family, friends and colleagues with a personal message about this campaign.{/ts}\n{ts}Include this link to your fundraising page in your emails{/ts}:\n{$pcpInfoURL}\n{/if}\n\n===================\n{ts}Managing Your Page{/ts}\n\n===================\n{ts}Whenever you want to preview, update or promote your page{/ts}:\n1. {ts}Login to your account at{/ts}:\n{$loginUrl}\n\n2. {ts}Click or paste this link into your browser to go to your page{/ts}:\n{$pcpInfoURL}\n\n{ts}When you view your campaign page WHILE LOGGED IN, the page includes links to edit your page, tell friends, and update your contact info.{/ts}\n\n\n{elseif $pcpStatus EQ \'Waiting Review\'}\n{ts}Your page requires administrator review before you can begin your fundraising efforts.{/ts}\n\n\n{ts}A notification email has been sent to the site administrator, and you will receive another notification from them as soon as the review process is complete.{/ts}\n\n\n{ts}You can still preview your page prior to approval{/ts}:\n1. {ts}Login to your account at{/ts}:\n{$loginUrl}\n\n2. {ts}Click or paste this link into your browser{/ts}:\n{$pcpInfoURL}\n\n{/if}\n{if $pcpNotifyEmailAddress}\n{ts}Questions? Send email to{/ts}:\n{$pcpNotifyEmailAddress}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts 1=\"$contribPageTitle\"}Thanks for creating a personal campaign page in support of %1.{/ts}</p>\n   </td>\n  </tr>\n\n  {if $pcpStatus eq \'Approved\'}\n\n    <tr>\n     <td>\n      <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n       <tr>\n        <th {$headerStyle}>\n         {ts}Promoting Your Page{/ts}\n        </th>\n       </tr>\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         {if $isTellFriendEnabled}\n          <p>{ts}You can begin your fundraising efforts using our \"Tell a Friend\" form{/ts}:</p>\n          <ol>\n           <li><a href=\"{$loginUrl}\">{ts}Login to your account{/ts}</a></li>\n           <li><a href=\"{$pcpTellFriendURL}\">{ts}Click this link and follow the prompts{/ts}</a></li>\n          </ol>\n         {else}\n          <p>{ts}Send email to family, friends and colleagues with a personal message about this campaign.{/ts} {ts}Include this link to your fundraising page in your emails{/ts}: {$pcpInfoURL}</p>\n         {/if}\n        </td>\n       </tr>\n       <tr>\n        <th {$headerStyle}>\n         {ts}Managing Your Page{/ts}\n        </th>\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         <p>{ts}Whenever you want to preview, update or promote your page{/ts}:</p>\n         <ol>\n          <li><a href=\"{$loginUrl}\">{ts}Login to your account{/ts}</a></li>\n          <li><a href=\"{$pcpInfoURL}\">{ts}Go to your page{/ts}</a></li>\n         </ol>\n         <p>{ts}When you view your campaign page WHILE LOGGED IN, the page includes links to edit your page, tell friends, and update your contact info.{/ts}</p>\n        </td>\n       </tr>\n       </tr>\n      </table>\n     </td>\n    </tr>\n\n   {elseif $pcpStatus EQ \'Waiting Review\'}\n\n    <tr>\n     <td>\n      <p>{ts}Your page requires administrator review before you can begin your fundraising efforts.{/ts}</p>\n      <p>{ts}A notification email has been sent to the site administrator, and you will receive another notification from them as soon as the review process is complete.{/ts}</p>\n      <p>{ts}You can still preview your page prior to approval{/ts}:</p>\n      <ol>\n       <li><a href=\"{$loginUrl}\">{ts}Login to your account{/ts}</a></li>\n       <li><a href=\"{$pcpInfoURL}\">{ts}Click this link{/ts}</a></li>\n      </ol>\n     </td>\n    </tr>\n\n   {/if}\n\n   {if $pcpNotifyEmailAddress}\n    <tr>\n     <td>\n      <p>{ts}Questions? Send email to{/ts}: {$pcpNotifyEmailAddress}</p>\n     </td>\n    </tr>\n   {/if}\n\n </table>\n</center>\n\n</body>\n</html>\n',1,830,0,1,0,NULL),(25,'Personal Campaign Pages - Owner Notification','{ts}Someone has just donated to your personal campaign page{/ts} - {contact.display_name}\n','===========================================================\n{ts}Personal Campaign Page Owner Notification{/ts}\n\n===========================================================\n{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts}You have received a donation at your personal page{/ts}: {$page_title}\n>> {$pcpInfoURL}\n\n{ts}Your fundraising total has been updated.{/ts}\n{ts}The donor\'s information is listed below.  You can choose to contact them and convey your thanks if you wish.{/ts}\n{if $is_honor_roll_enabled}\n    {ts}The donor\'s name has been added to your honor roll unless they asked not to be included.{/ts}\n{/if}\n\n{ts}Received{/ts}: {$receive_date|crmDate}\n\n{ts}Amount{/ts}: {$total_amount|crmMoney:$currency}\n\n{ts}Name{/ts}: {$donors_display_name}\n\n{ts}Email{/ts}: {$donors_email}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n  {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n  <p>{ts}You have received a donation at your personal page{/ts}: <a href=\"{$pcpInfoURL}\">{$page_title}</a></p>\n  <p>{ts}Your fundraising total has been updated.{/ts}<br/>\n    {ts}The donor\'s information is listed below.  You can choose to contact them and convey your thanks if you wish.{/ts} <br/>\n    {if $is_honor_roll_enabled}\n      {ts}The donor\'s name has been added to your honor roll unless they asked not to be included.{/ts}<br/>\n    {/if}\n  </p>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n    <tr><td>{ts}Received{/ts}:</td><td> {$receive_date|crmDate}</td></tr>\n    <tr><td>{ts}Amount{/ts}:</td><td> {$total_amount|crmMoney:$currency}</td></tr>\n    <tr><td>{ts}Name{/ts}:</td><td> {$donors_display_name}</td></tr>\n    <tr><td>{ts}Email{/ts}:</td><td> {$donors_email}</td></tr>\n  </table>\n</body>\n</html>\n',1,831,1,0,0,NULL),(26,'Personal Campaign Pages - Owner Notification','{ts}Someone has just donated to your personal campaign page{/ts} - {contact.display_name}\n','===========================================================\n{ts}Personal Campaign Page Owner Notification{/ts}\n\n===========================================================\n{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts}You have received a donation at your personal page{/ts}: {$page_title}\n>> {$pcpInfoURL}\n\n{ts}Your fundraising total has been updated.{/ts}\n{ts}The donor\'s information is listed below.  You can choose to contact them and convey your thanks if you wish.{/ts}\n{if $is_honor_roll_enabled}\n    {ts}The donor\'s name has been added to your honor roll unless they asked not to be included.{/ts}\n{/if}\n\n{ts}Received{/ts}: {$receive_date|crmDate}\n\n{ts}Amount{/ts}: {$total_amount|crmMoney:$currency}\n\n{ts}Name{/ts}: {$donors_display_name}\n\n{ts}Email{/ts}: {$donors_email}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n  {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n  <p>{ts}You have received a donation at your personal page{/ts}: <a href=\"{$pcpInfoURL}\">{$page_title}</a></p>\n  <p>{ts}Your fundraising total has been updated.{/ts}<br/>\n    {ts}The donor\'s information is listed below.  You can choose to contact them and convey your thanks if you wish.{/ts} <br/>\n    {if $is_honor_roll_enabled}\n      {ts}The donor\'s name has been added to your honor roll unless they asked not to be included.{/ts}<br/>\n    {/if}\n  </p>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n    <tr><td>{ts}Received{/ts}:</td><td> {$receive_date|crmDate}</td></tr>\n    <tr><td>{ts}Amount{/ts}:</td><td> {$total_amount|crmMoney:$currency}</td></tr>\n    <tr><td>{ts}Name{/ts}:</td><td> {$donors_display_name}</td></tr>\n    <tr><td>{ts}Email{/ts}:</td><td> {$donors_email}</td></tr>\n  </table>\n</body>\n</html>\n',1,831,0,1,0,NULL),(27,'Additional Payment Receipt or Refund Notification','{if $isRefund}{ts}Refund Notification{/ts}{else}{ts}Payment Receipt{/ts}{/if}{if $component eq \'event\'} - {$event.title}{/if} - {contact.display_name}\n','{if $emailGreeting}{$emailGreeting},\n{/if}\n\n{if $isRefund}\n{ts}A refund has been issued based on changes in your registration selections.{/ts}\n{else}\n{ts}Below you will find a receipt for this payment.{/ts}\n{/if}\n{if $paymentsComplete}\n{ts}Thank you for completing this payment.{/ts}\n{/if}\n\n{if $isRefund}\n===============================================================================\n\n{ts}Refund Details{/ts}\n\n===============================================================================\n{ts}This Refund Amount{/ts}: {$refundAmount|crmMoney}\n------------------------------------------------------------------------------------\n\n{else}\n===============================================================================\n\n{ts}Payment Details{/ts}\n\n===============================================================================\n{ts}This Payment Amount{/ts}: {$paymentAmount|crmMoney}\n------------------------------------------------------------------------------------\n{/if}\n{if $receive_date}\n{ts}Transaction Date{/ts}: {$receive_date|crmDate}\n{/if}\n{if $trxn_id}\n{ts}Transaction #{/ts}: {$trxn_id}\n{/if}\n{if $paidBy}\n{ts}Paid By{/ts}: {$paidBy}\n{/if}\n{if $checkNumber}\n{ts}Check Number{/ts}: {$checkNumber}\n{/if}\n\n===============================================================================\n\n{ts}Contribution Details{/ts}\n\n===============================================================================\n{ts}Total Fee{/ts}: {$totalAmount|crmMoney}\n{ts}Total Paid{/ts}: {$totalPaid|crmMoney}\n{ts}Balance Owed{/ts}: {$amountOwed|crmMoney} {* This will be zero after final payment. *}\n\n\n{if $billingName || $address}\n\n===============================================================================\n\n{ts}Billing Name and Address{/ts}\n\n===============================================================================\n\n{$billingName}\n{$address}\n{/if}\n\n{if $credit_card_number}\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===============================================================================\n\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n{if $component eq \'event\'}\n===============================================================================\n\n{ts}Event Information and Location{/ts}\n\n===============================================================================\n\n{$event.event_title}\n{$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n\n{if $event.participant_role}\n{ts}Participant Role{/ts}: {$event.participant_role}\n{/if}\n\n{if $isShowLocation}\n{$location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n\n{if $location.phone.1.phone || $location.email.1.email}\n\n{ts}Event Contacts:{/ts}\n{foreach from=$location.phone item=phone}\n{if $phone.phone}\n\n{if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}: {$phone.phone}{/if} {if $phone.phone_ext} {ts}ext.{/ts} {$phone.phone_ext}{/if}\n{/foreach}\n{foreach from=$location.email item=eventEmail}\n{if $eventEmail.email}\n\n{ts}Email{/ts}: {$eventEmail.email}{/if}{/foreach}\n{/if}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n{capture assign=emptyBlockStyle }style=\"padding: 10px; border-bottom: 1px solid #999;background-color: #f7f7f7;\"{/capture}\n{capture assign=emptyBlockValueStyle }style=\"padding: 10px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n  <tr>\n    <td>\n      {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n      {if $isRefund}\n        <p>{ts}A refund has been issued based on changes in your registration selections.{/ts}</p>\n      {else}\n        <p>{ts}Below you will find a receipt for this payment.{/ts}</p>\n        {if $paymentsComplete}\n          <p>{ts}Thank you for completing this contribution.{/ts}</p>\n        {/if}\n      {/if}\n    </td>\n  </tr>\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n    {if $isRefund}\n      <tr>\n        <th {$headerStyle}>{ts}Refund Details{/ts}</th>\n      </tr>\n      <tr>\n        <td {$labelStyle}>\n        {ts}This Refund Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n        {$refundAmount|crmMoney}\n        </td>\n      </tr>\n    {else}\n      <tr>\n        <th {$headerStyle}>{ts}Payment Details{/ts}</th>\n      </tr>\n      <tr>\n        <td {$labelStyle}>\n        {ts}This Payment Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n        {$paymentAmount|crmMoney}\n        </td>\n      </tr>\n    {/if}\n    {if $receive_date}\n      <tr>\n        <td {$labelStyle}>\n        {ts}Transaction Date{/ts}\n        </td>\n        <td {$valueStyle}>\n        {$receive_date|crmDate}\n        </td>\n      </tr>\n    {/if}\n    {if $trxn_id}\n      <tr>\n        <td {$labelStyle}>\n        {ts}Transaction #{/ts}\n        </td>\n        <td {$valueStyle}>\n        {$trxn_id}\n        </td>\n      </tr>\n    {/if}\n    {if $paidBy}\n      <tr>\n        <td {$labelStyle}>\n        {ts}Paid By{/ts}\n        </td>\n        <td {$valueStyle}>\n        {$paidBy}\n        </td>\n      </tr>\n    {/if}\n    {if $checkNumber}\n      <tr>\n        <td {$labelStyle}>\n        {ts}Check Number{/ts}\n        </td>\n        <td {$valueStyle}>\n        {$checkNumber}\n        </td>\n      </tr>\n    {/if}\n\n  <tr>\n    <th {$headerStyle}>{ts}Contribution Details{/ts}</th>\n  </tr>\n  <tr>\n    <td {$labelStyle}>\n      {ts}Total Fee{/ts}\n    </td>\n    <td {$valueStyle}>\n      {$totalAmount|crmMoney}\n    </td>\n  </tr>\n  <tr>\n    <td {$labelStyle}>\n      {ts}Total Paid{/ts}\n    </td>\n    <td {$valueStyle}>\n      {$totalPaid|crmMoney}\n    </td>\n  </tr>\n  <tr>\n    <td {$labelStyle}>\n      {ts}Balance Owed{/ts}\n    </td>\n    <td {$valueStyle}>\n      {$amountOwed|crmMoney}\n    </td> {* This will be zero after final payment. *}\n  </tr>\n  </table>\n\n  </td>\n  </tr>\n    <tr>\n      <td>\n  <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n    {if $billingName || $address}\n          <tr>\n            <th {$headerStyle}>\n        {ts}Billing Name and Address{/ts}\n            </th>\n          </tr>\n          <tr>\n            <td colspan=\"2\" {$valueStyle}>\n        {$billingName}<br />\n        {$address|nl2br}\n            </td>\n          </tr>\n    {/if}\n    {if $credit_card_number}\n          <tr>\n            <th {$headerStyle}>\n        {ts}Credit Card Information{/ts}\n            </th>\n          </tr>\n          <tr>\n            <td colspan=\"2\" {$valueStyle}>\n        {$credit_card_type}<br />\n        {$credit_card_number}<br />\n        {ts}Expires:{/ts} {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n            </td>\n          </tr>\n    {/if}\n    {if $component eq \'event\'}\n    <tr>\n      <th {$headerStyle}>\n        {ts}Event Information and Location{/ts}\n      </th>\n    </tr>\n    <tr>\n      <td colspan=\"2\" {$valueStyle}>\n         {$event.event_title}<br />\n        {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n      </td>\n    </tr>\n\n    {if $event.participant_role}\n    <tr>\n      <td {$labelStyle}>\n        {ts}Participant Role{/ts}\n      </td>\n      <td {$valueStyle}>\n        {$event.participant_role}\n      </td>\n    </tr>\n    {/if}\n\n    {if $isShowLocation}\n    <tr>\n      <td colspan=\"2\" {$valueStyle}>\n        {$location.address.1.display|nl2br}\n      </td>\n    </tr>\n    {/if}\n\n    {if $location.phone.1.phone || $location.email.1.email}\n    <tr>\n      <td colspan=\"2\" {$labelStyle}>\n        {ts}Event Contacts:{/ts}\n      </td>\n    </tr>\n    {foreach from=$location.phone item=phone}\n    {if $phone.phone}\n          <tr>\n            <td {$labelStyle}>\n        {if $phone.phone_type}\n        {$phone.phone_type_display}\n        {else}\n        {ts}Phone{/ts}\n        {/if}\n            </td>\n            <td {$valueStyle}>\n        {$phone.phone} {if $phone.phone_ext}&nbsp;{ts}ext.{/ts} {$phone.phone_ext}{/if}\n            </td>\n          </tr>\n    {/if}\n    {/foreach}\n    {foreach from=$location.email item=eventEmail}\n    {if $eventEmail.email}\n          <tr>\n            <td {$labelStyle}>\n        {ts}Email{/ts}\n            </td>\n            <td {$valueStyle}>\n        {$eventEmail.email}\n            </td>\n          </tr>\n    {/if}\n    {/foreach}\n    {/if} {*phone block close*}\n    {/if}\n  </table>\n      </td>\n    </tr>\n\n    </table>\n  </center>\n\n </body>\n</html>\n',1,832,1,0,0,NULL),(28,'Additional Payment Receipt or Refund Notification','{if $isRefund}{ts}Refund Notification{/ts}{else}{ts}Payment Receipt{/ts}{/if}{if $component eq \'event\'} - {$event.title}{/if} - {contact.display_name}\n','{if $emailGreeting}{$emailGreeting},\n{/if}\n\n{if $isRefund}\n{ts}A refund has been issued based on changes in your registration selections.{/ts}\n{else}\n{ts}Below you will find a receipt for this payment.{/ts}\n{/if}\n{if $paymentsComplete}\n{ts}Thank you for completing this payment.{/ts}\n{/if}\n\n{if $isRefund}\n===============================================================================\n\n{ts}Refund Details{/ts}\n\n===============================================================================\n{ts}This Refund Amount{/ts}: {$refundAmount|crmMoney}\n------------------------------------------------------------------------------------\n\n{else}\n===============================================================================\n\n{ts}Payment Details{/ts}\n\n===============================================================================\n{ts}This Payment Amount{/ts}: {$paymentAmount|crmMoney}\n------------------------------------------------------------------------------------\n{/if}\n{if $receive_date}\n{ts}Transaction Date{/ts}: {$receive_date|crmDate}\n{/if}\n{if $trxn_id}\n{ts}Transaction #{/ts}: {$trxn_id}\n{/if}\n{if $paidBy}\n{ts}Paid By{/ts}: {$paidBy}\n{/if}\n{if $checkNumber}\n{ts}Check Number{/ts}: {$checkNumber}\n{/if}\n\n===============================================================================\n\n{ts}Contribution Details{/ts}\n\n===============================================================================\n{ts}Total Fee{/ts}: {$totalAmount|crmMoney}\n{ts}Total Paid{/ts}: {$totalPaid|crmMoney}\n{ts}Balance Owed{/ts}: {$amountOwed|crmMoney} {* This will be zero after final payment. *}\n\n\n{if $billingName || $address}\n\n===============================================================================\n\n{ts}Billing Name and Address{/ts}\n\n===============================================================================\n\n{$billingName}\n{$address}\n{/if}\n\n{if $credit_card_number}\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===============================================================================\n\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n{if $component eq \'event\'}\n===============================================================================\n\n{ts}Event Information and Location{/ts}\n\n===============================================================================\n\n{$event.event_title}\n{$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n\n{if $event.participant_role}\n{ts}Participant Role{/ts}: {$event.participant_role}\n{/if}\n\n{if $isShowLocation}\n{$location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n\n{if $location.phone.1.phone || $location.email.1.email}\n\n{ts}Event Contacts:{/ts}\n{foreach from=$location.phone item=phone}\n{if $phone.phone}\n\n{if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}: {$phone.phone}{/if} {if $phone.phone_ext} {ts}ext.{/ts} {$phone.phone_ext}{/if}\n{/foreach}\n{foreach from=$location.email item=eventEmail}\n{if $eventEmail.email}\n\n{ts}Email{/ts}: {$eventEmail.email}{/if}{/foreach}\n{/if}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n{capture assign=emptyBlockStyle }style=\"padding: 10px; border-bottom: 1px solid #999;background-color: #f7f7f7;\"{/capture}\n{capture assign=emptyBlockValueStyle }style=\"padding: 10px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n  <tr>\n    <td>\n      {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n      {if $isRefund}\n        <p>{ts}A refund has been issued based on changes in your registration selections.{/ts}</p>\n      {else}\n        <p>{ts}Below you will find a receipt for this payment.{/ts}</p>\n        {if $paymentsComplete}\n          <p>{ts}Thank you for completing this contribution.{/ts}</p>\n        {/if}\n      {/if}\n    </td>\n  </tr>\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n    {if $isRefund}\n      <tr>\n        <th {$headerStyle}>{ts}Refund Details{/ts}</th>\n      </tr>\n      <tr>\n        <td {$labelStyle}>\n        {ts}This Refund Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n        {$refundAmount|crmMoney}\n        </td>\n      </tr>\n    {else}\n      <tr>\n        <th {$headerStyle}>{ts}Payment Details{/ts}</th>\n      </tr>\n      <tr>\n        <td {$labelStyle}>\n        {ts}This Payment Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n        {$paymentAmount|crmMoney}\n        </td>\n      </tr>\n    {/if}\n    {if $receive_date}\n      <tr>\n        <td {$labelStyle}>\n        {ts}Transaction Date{/ts}\n        </td>\n        <td {$valueStyle}>\n        {$receive_date|crmDate}\n        </td>\n      </tr>\n    {/if}\n    {if $trxn_id}\n      <tr>\n        <td {$labelStyle}>\n        {ts}Transaction #{/ts}\n        </td>\n        <td {$valueStyle}>\n        {$trxn_id}\n        </td>\n      </tr>\n    {/if}\n    {if $paidBy}\n      <tr>\n        <td {$labelStyle}>\n        {ts}Paid By{/ts}\n        </td>\n        <td {$valueStyle}>\n        {$paidBy}\n        </td>\n      </tr>\n    {/if}\n    {if $checkNumber}\n      <tr>\n        <td {$labelStyle}>\n        {ts}Check Number{/ts}\n        </td>\n        <td {$valueStyle}>\n        {$checkNumber}\n        </td>\n      </tr>\n    {/if}\n\n  <tr>\n    <th {$headerStyle}>{ts}Contribution Details{/ts}</th>\n  </tr>\n  <tr>\n    <td {$labelStyle}>\n      {ts}Total Fee{/ts}\n    </td>\n    <td {$valueStyle}>\n      {$totalAmount|crmMoney}\n    </td>\n  </tr>\n  <tr>\n    <td {$labelStyle}>\n      {ts}Total Paid{/ts}\n    </td>\n    <td {$valueStyle}>\n      {$totalPaid|crmMoney}\n    </td>\n  </tr>\n  <tr>\n    <td {$labelStyle}>\n      {ts}Balance Owed{/ts}\n    </td>\n    <td {$valueStyle}>\n      {$amountOwed|crmMoney}\n    </td> {* This will be zero after final payment. *}\n  </tr>\n  </table>\n\n  </td>\n  </tr>\n    <tr>\n      <td>\n  <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n    {if $billingName || $address}\n          <tr>\n            <th {$headerStyle}>\n        {ts}Billing Name and Address{/ts}\n            </th>\n          </tr>\n          <tr>\n            <td colspan=\"2\" {$valueStyle}>\n        {$billingName}<br />\n        {$address|nl2br}\n            </td>\n          </tr>\n    {/if}\n    {if $credit_card_number}\n          <tr>\n            <th {$headerStyle}>\n        {ts}Credit Card Information{/ts}\n            </th>\n          </tr>\n          <tr>\n            <td colspan=\"2\" {$valueStyle}>\n        {$credit_card_type}<br />\n        {$credit_card_number}<br />\n        {ts}Expires:{/ts} {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n            </td>\n          </tr>\n    {/if}\n    {if $component eq \'event\'}\n    <tr>\n      <th {$headerStyle}>\n        {ts}Event Information and Location{/ts}\n      </th>\n    </tr>\n    <tr>\n      <td colspan=\"2\" {$valueStyle}>\n         {$event.event_title}<br />\n        {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n      </td>\n    </tr>\n\n    {if $event.participant_role}\n    <tr>\n      <td {$labelStyle}>\n        {ts}Participant Role{/ts}\n      </td>\n      <td {$valueStyle}>\n        {$event.participant_role}\n      </td>\n    </tr>\n    {/if}\n\n    {if $isShowLocation}\n    <tr>\n      <td colspan=\"2\" {$valueStyle}>\n        {$location.address.1.display|nl2br}\n      </td>\n    </tr>\n    {/if}\n\n    {if $location.phone.1.phone || $location.email.1.email}\n    <tr>\n      <td colspan=\"2\" {$labelStyle}>\n        {ts}Event Contacts:{/ts}\n      </td>\n    </tr>\n    {foreach from=$location.phone item=phone}\n    {if $phone.phone}\n          <tr>\n            <td {$labelStyle}>\n        {if $phone.phone_type}\n        {$phone.phone_type_display}\n        {else}\n        {ts}Phone{/ts}\n        {/if}\n            </td>\n            <td {$valueStyle}>\n        {$phone.phone} {if $phone.phone_ext}&nbsp;{ts}ext.{/ts} {$phone.phone_ext}{/if}\n            </td>\n          </tr>\n    {/if}\n    {/foreach}\n    {foreach from=$location.email item=eventEmail}\n    {if $eventEmail.email}\n          <tr>\n            <td {$labelStyle}>\n        {ts}Email{/ts}\n            </td>\n            <td {$valueStyle}>\n        {$eventEmail.email}\n            </td>\n          </tr>\n    {/if}\n    {/foreach}\n    {/if} {*phone block close*}\n    {/if}\n  </table>\n      </td>\n    </tr>\n\n    </table>\n  </center>\n\n </body>\n</html>\n',1,832,0,1,0,NULL),(29,'Events - Registration Confirmation and Receipt (off-line)','{ts}Event Confirmation{/ts} - {$event.title} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n{if $event.confirm_email_text AND (not $isOnWaitlist AND not $isRequireApproval)}\n{$event.confirm_email_text}\n{/if}\n\n{if $isOnWaitlist}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{ts}You have been added to the WAIT LIST for this event.{/ts}\n\n{if $isPrimary}\n{ts}If space becomes available you will receive an email with a link to a web page where you can complete your registration.{/ts}\n\n{/if}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{elseif $isRequireApproval}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{ts}Your registration has been submitted.{/ts}\n\n{if $isPrimary}\n{ts}Once your registration has been reviewed, you will receive an email with a link to a web page where you can complete the registration process.{/ts}\n\n{/if}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{elseif $is_pay_later}\n\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{$pay_later_receipt}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{/if}\n\n\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{ts}Event Information and Location{/ts}\n\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{$event.event_title}\n{$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n\n{if $event.participant_role neq \'Attendee\' and $defaultRole}\n{ts}Participant Role{/ts}: {$event.participant_role}\n{/if}\n\n{if $isShowLocation}\n{$location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n\n{if $location.phone.1.phone || $location.email.1.email}\n\n{ts}Event Contacts:{/ts}\n{foreach from=$location.phone item=phone}\n{if $phone.phone}\n\n{if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}: {$phone.phone}{/if} {if $phone.phone_ext} {ts}ext.{/ts} {$phone.phone_ext}{/if}\n{/foreach}\n{foreach from=$location.email item=eventEmail}\n{if $eventEmail.email}\n\n{ts}Email{/ts}: {$eventEmail.email}{/if}{/foreach}\n{/if}\n\n{if $event.is_public}\n{capture assign=icalFeed}{crmURL p=\'civicrm/event/ical\' q=\"reset=1&id=`$event.id`\" h=0 a=1 fe=1}{/capture}\n{ts}Download iCalendar File:{/ts} {$icalFeed}\n{/if}\n\n{if $email}\n\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{ts}Registered Email{/ts}\n\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{$email}\n{/if}\n{if $event.is_monetary} {* This section for Paid events only.*}\n\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{$event.fee_label}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{if $lineItem}{foreach from=$lineItem item=value key=priceset}\n\n{if $value neq \'skip\'}\n{if $isPrimary}\n{if $lineItem|@count GT 1} {* Header for multi participant registration cases. *}\n{ts 1=$priceset+1}Participant %1{/ts}\n{/if}\n{/if}\n---------------------------------------------------------{if $pricesetFieldsCount }--------------------{/if}\n\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_qty}{ts}Qty{/ts}{/capture}\n{capture assign=ts_each}{ts}Each{/ts}{/capture}\n{if $dataArray}\n{capture assign=ts_subtotal}{ts}Subtotal{/ts}{/capture}\n{capture assign=ts_taxRate}{ts}Tax Rate{/ts}{/capture}\n{capture assign=ts_taxAmount}{ts}Tax Amount{/ts}{/capture}\n{/if}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{capture assign=ts_participant_total}{if $pricesetFieldsCount }{ts}Total Participants{/ts}{/if}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_qty|string_format:\"%5s\"} {$ts_each|string_format:\"%10s\"} {if $dataArray} {$ts_subtotal|string_format:\"%10s\"} {$ts_taxRate|string_format:\"%10s\"} {$ts_taxAmount|string_format:\"%10s\"} {/if} {$ts_total|string_format:\"%10s\"} {$ts_participant_total|string_format:\"%10s\"}\n----------------------------------------------------------{if $pricesetFieldsCount }--------------------{/if}\n\n{foreach from=$value item=line}\n{if $pricesetFieldsCount }{capture assign=ts_participant_count}{$line.participant_count}{/capture}{/if}\n{capture assign=ts_item}{if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description} {$line.description}{/if}{/capture}{$ts_item|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.qty|string_format:\"%5s\"} {$line.unit_price|crmMoney|string_format:\"%10s\"} {if $dataArray} {$line.unit_price*$line.qty|crmMoney:$currency|string_format:\"%10s\"} {if $line.tax_rate != \"\" || $line.tax_amount != \"\"}  {$line.tax_rate|string_format:\"%.2f\"} %  {$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"} {else}                  {/if}  {/if}  {$line.line_total+$line.tax_amount|crmMoney|string_format:\"%10s\"} {$ts_participant_count|string_format:\"%10s\"}\n{/foreach}\n{/if}\n{/foreach}\n\n{if $dataArray}\n{ts}Amount before Tax{/ts}: {$totalAmount-$totalTaxAmount|crmMoney:$currency}\n\n{foreach from=$dataArray item=value key=priceset}\n{if $priceset || $priceset == 0}\n{$taxTerm} {$priceset|string_format:\"%.2f\"}%: {$value|crmMoney:$currency}\n{else}\n{ts}No{/ts} {$taxTerm}: {$value|crmMoney:$currency}\n{/if}\n{/foreach}\n{/if}\n{/if}\n\n{if $amount && !$lineItem}\n{foreach from=$amount item=amnt key=level}{$amnt.amount|crmMoney} {$amnt.label}\n{/foreach}\n{/if}\n\n{if $totalTaxAmount}\n{ts}Total Tax Amount{/ts}: {$totalTaxAmount|crmMoney:$currency}\n{/if}\n{if $isPrimary}\n\n{if $balanceAmount}{ts}Total Paid{/ts}{else}{ts}Total Amount{/ts}{/if}: {$totalAmount|crmMoney} {if $hookDiscount.message}({$hookDiscount.message}){/if}\n\n{if $balanceAmount}\n{ts}Balance{/ts}: {$balanceAmount|crmMoney}\n{/if}\n\n{if $pricesetFieldsCount }\n      {assign var=\"count\" value= 0}\n      {foreach from=$lineItem item=pcount}\n      {assign var=\"lineItemCount\" value=0}\n      {if $pcount neq \'skip\'}\n        {foreach from=$pcount item=p_count}\n        {assign var=\"lineItemCount\" value=$lineItemCount+$p_count.participant_count}\n        {/foreach}\n        {if $lineItemCount < 1 }\n        {assign var=\"lineItemCount\" value=1}\n        {/if}\n      {assign var=\"count\" value=$count+$lineItemCount}\n      {/if}\n      {/foreach}\n\n{ts}Total Participants{/ts}: {$count}\n{/if}\n\n{if $is_pay_later }\n\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{$pay_later_receipt}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{/if}\n\n{if $register_date}\n{ts}Registration Date{/ts}: {$register_date|crmDate}\n{/if}\n{if $receive_date}\n{ts}Transaction Date{/ts}: {$receive_date|crmDate}\n{/if}\n{if $financialTypeName}\n{ts}Financial Type{/ts}: {$financialTypeName}\n{/if}\n{if $trxn_id}\n{ts}Transaction #{/ts}: {$trxn_id}\n{/if}\n{if $paidBy}\n{ts}Paid By{/ts}: {$paidBy}\n{/if}\n{if $checkNumber}\n{ts}Check Number{/ts}: {$checkNumber}\n{/if}\n{if $billingName}\n\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{ts}Billing Name and Address{/ts}\n\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{$billingName}\n{$address}\n{/if}\n\n{if $credit_card_type}\n===========================================================\n{ts}Credit Card Information{/ts}\n\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n{/if}\n{/if} {* End of conditional section for Paid events *}\n\n{if $customPre}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{$customPre_grouptitle}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{foreach from=$customPre item=value key=customName}\n{if ( $trackingFields and ! in_array( $customName, $trackingFields ) ) or ! $trackingFields}\n{$customName}: {$value}\n{/if}\n{/foreach}\n{/if}\n\n{if $customPost}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{$customPost_grouptitle}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{foreach from=$customPost item=value key=customName}\n{if ( $trackingFields and ! in_array( $customName, $trackingFields ) ) or ! $trackingFields}\n{$customName}: {$value}\n{/if}\n{/foreach}\n{/if}\n{if $customProfile}\n\n{foreach from=$customProfile item=value key=customName}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{ts 1=$customName+1}Participant Information - Participant %1{/ts}\n\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{foreach from=$value item=val key=field}\n{if $field eq \'additionalCustomPre\' or $field eq \'additionalCustomPost\' }\n{if $field eq \'additionalCustomPre\' }\n----------------------------------------------------------{if $pricesetFieldsCount }--------------------{/if}\n\n{$additionalCustomPre_grouptitle}\n----------------------------------------------------------{if $pricesetFieldsCount }--------------------{/if}\n\n{else}\n----------------------------------------------------------{if $pricesetFieldsCount }--------------------{/if}\n\n{$additionalCustomPost_grouptitle}\n----------------------------------------------------------{if $pricesetFieldsCount }--------------------{/if}\n\n{/if}\n{foreach from=$val item=v key=f}\n{$f}: {$v}\n{/foreach}\n{/if}\n{/foreach}\n{/foreach}\n{/if}\n{if $customGroup}\n{foreach from=$customGroup item=value key=customName}\n=========================================================={if $pricesetFieldsCount }===================={/if}\n\n{$customName}\n=========================================================={if $pricesetFieldsCount }===================={/if}\n\n{foreach from=$value item=v key=n}\n{$n}: {$v}\n{/foreach}\n{/foreach}\n{/if}\n\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n\n    {if $event.confirm_email_text AND (not $isOnWaitlist AND not $isRequireApproval)}\n     <p>{$event.confirm_email_text|htmlize}</p>\n    {/if}\n\n    {if $isOnWaitlist}\n     <p>{ts}You have been added to the WAIT LIST for this event.{/ts}</p>\n     {if $isPrimary}\n       <p>{ts}If space becomes available you will receive an email with a link to a web page where you can complete your registration.{/ts}</p>\n     {/if}\n    {elseif $isRequireApproval}\n     <p>{ts}Your registration has been submitted.{/ts}</p>\n     {if $isPrimary}\n      <p>{ts}Once your registration has been reviewed, you will receive an email with a link to a web page where you can complete the registration process.{/ts}</p>\n     {/if}\n    {elseif $is_pay_later}\n     <p>{$pay_later_receipt}</p> {* FIXME: this might be text rather than HTML *}\n    {/if}\n\n   </td>\n  </tr>\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Event Information and Location{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td colspan=\"2\" {$valueStyle}>\n       {$event.event_title}<br />\n       {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n      </td>\n     </tr>\n\n     {if $event.participant_role neq \'Attendee\' and $defaultRole}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Participant Role{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$event.participant_role}\n       </td>\n      </tr>\n     {/if}\n\n     {if $isShowLocation}\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$location.address.1.display|nl2br}\n       </td>\n      </tr>\n     {/if}\n\n     {if $location.phone.1.phone || $location.email.1.email}\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n        {ts}Event Contacts:{/ts}\n       </td>\n      </tr>\n      {foreach from=$location.phone item=phone}\n       {if $phone.phone}\n        <tr>\n         <td {$labelStyle}>\n          {if $phone.phone_type}\n           {$phone.phone_type_display}\n          {else}\n           {ts}Phone{/ts}\n          {/if}\n         </td>\n         <td {$valueStyle}>\n          {$phone.phone} {if $phone.phone_ext}&nbsp;{ts}ext.{/ts} {$phone.phone_ext}{/if}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n      {foreach from=$location.email item=eventEmail}\n       {if $eventEmail.email}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Email{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$eventEmail.email}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n     {if $event.is_public}\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {capture assign=icalFeed}{crmURL p=\'civicrm/event/ical\' q=\"reset=1&id=`$event.id`\" h=0 a=1 fe=1}{/capture}\n        <a href=\"{$icalFeed}\">{ts}Download iCalendar File{/ts}</a>\n       </td>\n      </tr>\n     {/if}\n\n     {if $email}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Registered Email{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$email}\n       </td>\n      </tr>\n     {/if}\n\n\n     {if $event.is_monetary}\n\n      <tr>\n       <th {$headerStyle}>\n        {$event.fee_label}\n       </th>\n      </tr>\n\n      {if $lineItem}\n       {foreach from=$lineItem item=value key=priceset}\n        {if $value neq \'skip\'}\n         {if $isPrimary}\n          {if $lineItem|@count GT 1} {* Header for multi participant registration cases. *}\n           <tr>\n            <td colspan=\"2\" {$labelStyle}>\n             {ts 1=$priceset+1}Participant %1{/ts}\n            </td>\n           </tr>\n          {/if}\n         {/if}\n         <tr>\n          <td colspan=\"2\" {$valueStyle}>\n           <table> {* FIXME: style this table so that it looks like the text version (justification, etc.) *}\n            <tr>\n             <th>{ts}Item{/ts}</th>\n             <th>{ts}Qty{/ts}</th>\n             <th>{ts}Each{/ts}</th>\n             {if $dataArray}\n              <th>{ts}SubTotal{/ts}</th>\n              <th>{ts}Tax Rate{/ts}</th>\n              <th>{ts}Tax Amount{/ts}</th>\n             {/if}\n             <th>{ts}Total{/ts}</th>\n       {if $pricesetFieldsCount }<th>{ts}Total Participants{/ts}</th>{/if}\n            </tr>\n            {foreach from=$value item=line}\n             <tr>\n              <td>\n        {if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description}<div>{$line.description|truncate:30:\"...\"}</div>{/if}\n              </td>\n              <td>\n               {$line.qty}\n              </td>\n              <td>\n               {$line.unit_price|crmMoney}\n              </td>\n              {if $dataArray}\n               <td>\n                {$line.unit_price*$line.qty|crmMoney}\n               </td>\n               {if $line.tax_rate != \"\" || $line.tax_amount != \"\"}\n                <td>\n                 {$line.tax_rate|string_format:\"%.2f\"}%\n                </td>\n                <td>\n                 {$line.tax_amount|crmMoney}\n                </td>\n               {else}\n                <td></td>\n                <td></td>\n               {/if}\n              {/if}\n              <td>\n               {$line.line_total+$line.tax_amount|crmMoney}\n              </td>\n        {if  $pricesetFieldsCount }\n        <td>\n    {$line.participant_count}\n              </td>\n        {/if}\n             </tr>\n            {/foreach}\n           </table>\n          </td>\n         </tr>\n        {/if}\n       {/foreach}\n       {if $dataArray}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Amount Before Tax:{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$totalAmount-$totalTaxAmount|crmMoney}\n         </td>\n        </tr>\n        {foreach from=$dataArray item=value key=priceset}\n          <tr>\n           {if $priceset || $priceset == 0}\n            <td>&nbsp;{$taxTerm} {$priceset|string_format:\"%.2f\"}%</td>\n            <td>&nbsp;{$value|crmMoney:$currency}</td>\n           {else}\n            <td>&nbsp;{ts}No{/ts} {$taxTerm}</td>\n            <td>&nbsp;{$value|crmMoney:$currency}</td>\n           {/if}\n          </tr>\n        {/foreach}\n       {/if}\n      {/if}\n\n      {if $amount && !$lineItem}\n       {foreach from=$amount item=amnt key=level}\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          {$amnt.amount|crmMoney} {$amnt.label}\n         </td>\n        </tr>\n       {/foreach}\n      {/if}\n      {if $totalTaxAmount}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Total Tax Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$totalTaxAmount|crmMoney:$currency}\n        </td>\n       </tr>\n      {/if}\n      {if $isPrimary}\n       <tr>\n        <td {$labelStyle}>\n        {if $balanceAmount}\n           {ts}Total Paid{/ts}\n        {else}\n           {ts}Total Amount{/ts}\n         {/if}\n        </td>\n        <td {$valueStyle}>\n         {$totalAmount|crmMoney} {if $hookDiscount.message}({$hookDiscount.message}){/if}\n        </td>\n       </tr>\n      {if $balanceAmount}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Balance{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$balanceAmount|crmMoney}\n        </td>\n       </tr>\n      {/if}\n       {if $pricesetFieldsCount }\n     <tr>\n       <td {$labelStyle}>\n   {ts}Total Participants{/ts}</td>\n       <td {$valueStyle}>\n   {assign var=\"count\" value= 0}\n         {foreach from=$lineItem item=pcount}\n         {assign var=\"lineItemCount\" value=0}\n         {if $pcount neq \'skip\'}\n           {foreach from=$pcount item=p_count}\n           {assign var=\"lineItemCount\" value=$lineItemCount+$p_count.participant_count}\n           {/foreach}\n           {if $lineItemCount < 1 }\n           assign var=\"lineItemCount\" value=1}\n           {/if}\n           {assign var=\"count\" value=$count+$lineItemCount}\n         {/if}\n         {/foreach}\n   {$count}\n       </td>\n     </tr>\n     {/if}\n       {if $is_pay_later}\n        <tr>\n         <td colspan=\"2\" {$labelStyle}>\n          {$pay_later_receipt}\n         </td>\n        </tr>\n       {/if}\n\n       {if $register_date}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Registration Date{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$register_date|crmDate}\n         </td>\n        </tr>\n       {/if}\n\n       {if $receive_date}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Transaction Date{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$receive_date|crmDate}\n         </td>\n        </tr>\n       {/if}\n\n       {if $financialTypeName}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Financial Type{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$financialTypeName}\n         </td>\n        </tr>\n       {/if}\n\n       {if $trxn_id}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Transaction #{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$trxn_id}\n         </td>\n        </tr>\n       {/if}\n\n       {if $paidBy}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Paid By{/ts}\n         </td>\n         <td {$valueStyle}>\n         {$paidBy}\n         </td>\n        </tr>\n       {/if}\n\n       {if $checkNumber}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Check Number{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$checkNumber}\n         </td>\n        </tr>\n       {/if}\n\n       {if $billingName}\n        <tr>\n         <th {$headerStyle}>\n          {ts}Billing Name and Address{/ts}\n         </th>\n        </tr>\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          {$billingName}<br />\n          {$address|nl2br}\n         </td>\n        </tr>\n       {/if}\n\n       {if $credit_card_type}\n        <tr>\n         <th {$headerStyle}>\n          {ts}Credit Card Information{/ts}\n         </th>\n        </tr>\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          {$credit_card_type}<br />\n          {$credit_card_number}<br />\n          {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n         </td>\n        </tr>\n       {/if}\n\n      {/if}\n\n     {/if} {* End of conditional section for Paid events *}\n\n     {if $customPre}\n      <tr>\n       <th {$headerStyle}>\n        {$customPre_grouptitle}\n       </th>\n      </tr>\n      {foreach from=$customPre item=value key=customName}\n       {if ( $trackingFields and ! in_array( $customName, $trackingFields ) ) or ! $trackingFields}\n        <tr>\n         <td {$labelStyle}>\n          {$customName}\n         </td>\n         <td {$valueStyle}>\n          {$value}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n     {if $customPost}\n      <tr>\n       <th {$headerStyle}>\n        {$customPost_grouptitle}\n       </th>\n      </tr>\n      {foreach from=$customPost item=value key=customName}\n       {if ( $trackingFields and ! in_array( $customName, $trackingFields ) ) or ! $trackingFields}\n        <tr>\n         <td {$labelStyle}>\n          {$customName}\n         </td>\n         <td {$valueStyle}>\n          {$value}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n     {if $customProfile}\n      {foreach from=$customProfile item=value key=customName}\n       <tr>\n        <th {$headerStyle}>\n         {ts 1=$customName+1}Participant Information - Participant %1{/ts}\n        </th>\n       </tr>\n       {foreach from=$value item=val key=field}\n        {if $field eq \'additionalCustomPre\' or $field eq \'additionalCustomPost\'}\n         <tr>\n          <td colspan=\"2\" {$labelStyle}>\n           {if $field eq \'additionalCustomPre\'}\n            {$additionalCustomPre_grouptitle}\n           {else}\n            {$additionalCustomPost_grouptitle}\n           {/if}\n          </td>\n         </tr>\n         {foreach from=$val item=v key=f}\n          <tr>\n           <td {$labelStyle}>\n            {$f}\n           </td>\n           <td {$valueStyle}>\n            {$v}\n           </td>\n          </tr>\n         {/foreach}\n        {/if}\n       {/foreach}\n      {/foreach}\n     {/if}\n\n     {if $customGroup}\n      {foreach from=$customGroup item=value key=customName}\n       <tr>\n        <th {$headerStyle}>\n         {$customName}\n        </th>\n       </tr>\n       {foreach from=$value item=v key=n}\n        <tr>\n         <td {$labelStyle}>\n          {$n}\n         </td>\n         <td {$valueStyle}>\n          {$v}\n         </td>\n        </tr>\n       {/foreach}\n      {/foreach}\n     {/if}\n\n    </table>\n   </td>\n  </tr>\n\n </table>\n</center>\n\n</body>\n</html>\n',1,833,1,0,0,NULL),(30,'Events - Registration Confirmation and Receipt (off-line)','{ts}Event Confirmation{/ts} - {$event.title} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n{if $event.confirm_email_text AND (not $isOnWaitlist AND not $isRequireApproval)}\n{$event.confirm_email_text}\n{/if}\n\n{if $isOnWaitlist}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{ts}You have been added to the WAIT LIST for this event.{/ts}\n\n{if $isPrimary}\n{ts}If space becomes available you will receive an email with a link to a web page where you can complete your registration.{/ts}\n\n{/if}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{elseif $isRequireApproval}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{ts}Your registration has been submitted.{/ts}\n\n{if $isPrimary}\n{ts}Once your registration has been reviewed, you will receive an email with a link to a web page where you can complete the registration process.{/ts}\n\n{/if}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{elseif $is_pay_later}\n\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{$pay_later_receipt}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{/if}\n\n\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{ts}Event Information and Location{/ts}\n\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{$event.event_title}\n{$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n\n{if $event.participant_role neq \'Attendee\' and $defaultRole}\n{ts}Participant Role{/ts}: {$event.participant_role}\n{/if}\n\n{if $isShowLocation}\n{$location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n\n{if $location.phone.1.phone || $location.email.1.email}\n\n{ts}Event Contacts:{/ts}\n{foreach from=$location.phone item=phone}\n{if $phone.phone}\n\n{if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}: {$phone.phone}{/if} {if $phone.phone_ext} {ts}ext.{/ts} {$phone.phone_ext}{/if}\n{/foreach}\n{foreach from=$location.email item=eventEmail}\n{if $eventEmail.email}\n\n{ts}Email{/ts}: {$eventEmail.email}{/if}{/foreach}\n{/if}\n\n{if $event.is_public}\n{capture assign=icalFeed}{crmURL p=\'civicrm/event/ical\' q=\"reset=1&id=`$event.id`\" h=0 a=1 fe=1}{/capture}\n{ts}Download iCalendar File:{/ts} {$icalFeed}\n{/if}\n\n{if $email}\n\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{ts}Registered Email{/ts}\n\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{$email}\n{/if}\n{if $event.is_monetary} {* This section for Paid events only.*}\n\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{$event.fee_label}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{if $lineItem}{foreach from=$lineItem item=value key=priceset}\n\n{if $value neq \'skip\'}\n{if $isPrimary}\n{if $lineItem|@count GT 1} {* Header for multi participant registration cases. *}\n{ts 1=$priceset+1}Participant %1{/ts}\n{/if}\n{/if}\n---------------------------------------------------------{if $pricesetFieldsCount }--------------------{/if}\n\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_qty}{ts}Qty{/ts}{/capture}\n{capture assign=ts_each}{ts}Each{/ts}{/capture}\n{if $dataArray}\n{capture assign=ts_subtotal}{ts}Subtotal{/ts}{/capture}\n{capture assign=ts_taxRate}{ts}Tax Rate{/ts}{/capture}\n{capture assign=ts_taxAmount}{ts}Tax Amount{/ts}{/capture}\n{/if}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{capture assign=ts_participant_total}{if $pricesetFieldsCount }{ts}Total Participants{/ts}{/if}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_qty|string_format:\"%5s\"} {$ts_each|string_format:\"%10s\"} {if $dataArray} {$ts_subtotal|string_format:\"%10s\"} {$ts_taxRate|string_format:\"%10s\"} {$ts_taxAmount|string_format:\"%10s\"} {/if} {$ts_total|string_format:\"%10s\"} {$ts_participant_total|string_format:\"%10s\"}\n----------------------------------------------------------{if $pricesetFieldsCount }--------------------{/if}\n\n{foreach from=$value item=line}\n{if $pricesetFieldsCount }{capture assign=ts_participant_count}{$line.participant_count}{/capture}{/if}\n{capture assign=ts_item}{if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description} {$line.description}{/if}{/capture}{$ts_item|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.qty|string_format:\"%5s\"} {$line.unit_price|crmMoney|string_format:\"%10s\"} {if $dataArray} {$line.unit_price*$line.qty|crmMoney:$currency|string_format:\"%10s\"} {if $line.tax_rate != \"\" || $line.tax_amount != \"\"}  {$line.tax_rate|string_format:\"%.2f\"} %  {$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"} {else}                  {/if}  {/if}  {$line.line_total+$line.tax_amount|crmMoney|string_format:\"%10s\"} {$ts_participant_count|string_format:\"%10s\"}\n{/foreach}\n{/if}\n{/foreach}\n\n{if $dataArray}\n{ts}Amount before Tax{/ts}: {$totalAmount-$totalTaxAmount|crmMoney:$currency}\n\n{foreach from=$dataArray item=value key=priceset}\n{if $priceset || $priceset == 0}\n{$taxTerm} {$priceset|string_format:\"%.2f\"}%: {$value|crmMoney:$currency}\n{else}\n{ts}No{/ts} {$taxTerm}: {$value|crmMoney:$currency}\n{/if}\n{/foreach}\n{/if}\n{/if}\n\n{if $amount && !$lineItem}\n{foreach from=$amount item=amnt key=level}{$amnt.amount|crmMoney} {$amnt.label}\n{/foreach}\n{/if}\n\n{if $totalTaxAmount}\n{ts}Total Tax Amount{/ts}: {$totalTaxAmount|crmMoney:$currency}\n{/if}\n{if $isPrimary}\n\n{if $balanceAmount}{ts}Total Paid{/ts}{else}{ts}Total Amount{/ts}{/if}: {$totalAmount|crmMoney} {if $hookDiscount.message}({$hookDiscount.message}){/if}\n\n{if $balanceAmount}\n{ts}Balance{/ts}: {$balanceAmount|crmMoney}\n{/if}\n\n{if $pricesetFieldsCount }\n      {assign var=\"count\" value= 0}\n      {foreach from=$lineItem item=pcount}\n      {assign var=\"lineItemCount\" value=0}\n      {if $pcount neq \'skip\'}\n        {foreach from=$pcount item=p_count}\n        {assign var=\"lineItemCount\" value=$lineItemCount+$p_count.participant_count}\n        {/foreach}\n        {if $lineItemCount < 1 }\n        {assign var=\"lineItemCount\" value=1}\n        {/if}\n      {assign var=\"count\" value=$count+$lineItemCount}\n      {/if}\n      {/foreach}\n\n{ts}Total Participants{/ts}: {$count}\n{/if}\n\n{if $is_pay_later }\n\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{$pay_later_receipt}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{/if}\n\n{if $register_date}\n{ts}Registration Date{/ts}: {$register_date|crmDate}\n{/if}\n{if $receive_date}\n{ts}Transaction Date{/ts}: {$receive_date|crmDate}\n{/if}\n{if $financialTypeName}\n{ts}Financial Type{/ts}: {$financialTypeName}\n{/if}\n{if $trxn_id}\n{ts}Transaction #{/ts}: {$trxn_id}\n{/if}\n{if $paidBy}\n{ts}Paid By{/ts}: {$paidBy}\n{/if}\n{if $checkNumber}\n{ts}Check Number{/ts}: {$checkNumber}\n{/if}\n{if $billingName}\n\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{ts}Billing Name and Address{/ts}\n\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{$billingName}\n{$address}\n{/if}\n\n{if $credit_card_type}\n===========================================================\n{ts}Credit Card Information{/ts}\n\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n{/if}\n{/if} {* End of conditional section for Paid events *}\n\n{if $customPre}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{$customPre_grouptitle}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{foreach from=$customPre item=value key=customName}\n{if ( $trackingFields and ! in_array( $customName, $trackingFields ) ) or ! $trackingFields}\n{$customName}: {$value}\n{/if}\n{/foreach}\n{/if}\n\n{if $customPost}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{$customPost_grouptitle}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{foreach from=$customPost item=value key=customName}\n{if ( $trackingFields and ! in_array( $customName, $trackingFields ) ) or ! $trackingFields}\n{$customName}: {$value}\n{/if}\n{/foreach}\n{/if}\n{if $customProfile}\n\n{foreach from=$customProfile item=value key=customName}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{ts 1=$customName+1}Participant Information - Participant %1{/ts}\n\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{foreach from=$value item=val key=field}\n{if $field eq \'additionalCustomPre\' or $field eq \'additionalCustomPost\' }\n{if $field eq \'additionalCustomPre\' }\n----------------------------------------------------------{if $pricesetFieldsCount }--------------------{/if}\n\n{$additionalCustomPre_grouptitle}\n----------------------------------------------------------{if $pricesetFieldsCount }--------------------{/if}\n\n{else}\n----------------------------------------------------------{if $pricesetFieldsCount }--------------------{/if}\n\n{$additionalCustomPost_grouptitle}\n----------------------------------------------------------{if $pricesetFieldsCount }--------------------{/if}\n\n{/if}\n{foreach from=$val item=v key=f}\n{$f}: {$v}\n{/foreach}\n{/if}\n{/foreach}\n{/foreach}\n{/if}\n{if $customGroup}\n{foreach from=$customGroup item=value key=customName}\n=========================================================={if $pricesetFieldsCount }===================={/if}\n\n{$customName}\n=========================================================={if $pricesetFieldsCount }===================={/if}\n\n{foreach from=$value item=v key=n}\n{$n}: {$v}\n{/foreach}\n{/foreach}\n{/if}\n\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n\n    {if $event.confirm_email_text AND (not $isOnWaitlist AND not $isRequireApproval)}\n     <p>{$event.confirm_email_text|htmlize}</p>\n    {/if}\n\n    {if $isOnWaitlist}\n     <p>{ts}You have been added to the WAIT LIST for this event.{/ts}</p>\n     {if $isPrimary}\n       <p>{ts}If space becomes available you will receive an email with a link to a web page where you can complete your registration.{/ts}</p>\n     {/if}\n    {elseif $isRequireApproval}\n     <p>{ts}Your registration has been submitted.{/ts}</p>\n     {if $isPrimary}\n      <p>{ts}Once your registration has been reviewed, you will receive an email with a link to a web page where you can complete the registration process.{/ts}</p>\n     {/if}\n    {elseif $is_pay_later}\n     <p>{$pay_later_receipt}</p> {* FIXME: this might be text rather than HTML *}\n    {/if}\n\n   </td>\n  </tr>\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Event Information and Location{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td colspan=\"2\" {$valueStyle}>\n       {$event.event_title}<br />\n       {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n      </td>\n     </tr>\n\n     {if $event.participant_role neq \'Attendee\' and $defaultRole}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Participant Role{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$event.participant_role}\n       </td>\n      </tr>\n     {/if}\n\n     {if $isShowLocation}\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$location.address.1.display|nl2br}\n       </td>\n      </tr>\n     {/if}\n\n     {if $location.phone.1.phone || $location.email.1.email}\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n        {ts}Event Contacts:{/ts}\n       </td>\n      </tr>\n      {foreach from=$location.phone item=phone}\n       {if $phone.phone}\n        <tr>\n         <td {$labelStyle}>\n          {if $phone.phone_type}\n           {$phone.phone_type_display}\n          {else}\n           {ts}Phone{/ts}\n          {/if}\n         </td>\n         <td {$valueStyle}>\n          {$phone.phone} {if $phone.phone_ext}&nbsp;{ts}ext.{/ts} {$phone.phone_ext}{/if}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n      {foreach from=$location.email item=eventEmail}\n       {if $eventEmail.email}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Email{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$eventEmail.email}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n     {if $event.is_public}\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {capture assign=icalFeed}{crmURL p=\'civicrm/event/ical\' q=\"reset=1&id=`$event.id`\" h=0 a=1 fe=1}{/capture}\n        <a href=\"{$icalFeed}\">{ts}Download iCalendar File{/ts}</a>\n       </td>\n      </tr>\n     {/if}\n\n     {if $email}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Registered Email{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$email}\n       </td>\n      </tr>\n     {/if}\n\n\n     {if $event.is_monetary}\n\n      <tr>\n       <th {$headerStyle}>\n        {$event.fee_label}\n       </th>\n      </tr>\n\n      {if $lineItem}\n       {foreach from=$lineItem item=value key=priceset}\n        {if $value neq \'skip\'}\n         {if $isPrimary}\n          {if $lineItem|@count GT 1} {* Header for multi participant registration cases. *}\n           <tr>\n            <td colspan=\"2\" {$labelStyle}>\n             {ts 1=$priceset+1}Participant %1{/ts}\n            </td>\n           </tr>\n          {/if}\n         {/if}\n         <tr>\n          <td colspan=\"2\" {$valueStyle}>\n           <table> {* FIXME: style this table so that it looks like the text version (justification, etc.) *}\n            <tr>\n             <th>{ts}Item{/ts}</th>\n             <th>{ts}Qty{/ts}</th>\n             <th>{ts}Each{/ts}</th>\n             {if $dataArray}\n              <th>{ts}SubTotal{/ts}</th>\n              <th>{ts}Tax Rate{/ts}</th>\n              <th>{ts}Tax Amount{/ts}</th>\n             {/if}\n             <th>{ts}Total{/ts}</th>\n       {if $pricesetFieldsCount }<th>{ts}Total Participants{/ts}</th>{/if}\n            </tr>\n            {foreach from=$value item=line}\n             <tr>\n              <td>\n        {if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description}<div>{$line.description|truncate:30:\"...\"}</div>{/if}\n              </td>\n              <td>\n               {$line.qty}\n              </td>\n              <td>\n               {$line.unit_price|crmMoney}\n              </td>\n              {if $dataArray}\n               <td>\n                {$line.unit_price*$line.qty|crmMoney}\n               </td>\n               {if $line.tax_rate != \"\" || $line.tax_amount != \"\"}\n                <td>\n                 {$line.tax_rate|string_format:\"%.2f\"}%\n                </td>\n                <td>\n                 {$line.tax_amount|crmMoney}\n                </td>\n               {else}\n                <td></td>\n                <td></td>\n               {/if}\n              {/if}\n              <td>\n               {$line.line_total+$line.tax_amount|crmMoney}\n              </td>\n        {if  $pricesetFieldsCount }\n        <td>\n    {$line.participant_count}\n              </td>\n        {/if}\n             </tr>\n            {/foreach}\n           </table>\n          </td>\n         </tr>\n        {/if}\n       {/foreach}\n       {if $dataArray}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Amount Before Tax:{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$totalAmount-$totalTaxAmount|crmMoney}\n         </td>\n        </tr>\n        {foreach from=$dataArray item=value key=priceset}\n          <tr>\n           {if $priceset || $priceset == 0}\n            <td>&nbsp;{$taxTerm} {$priceset|string_format:\"%.2f\"}%</td>\n            <td>&nbsp;{$value|crmMoney:$currency}</td>\n           {else}\n            <td>&nbsp;{ts}No{/ts} {$taxTerm}</td>\n            <td>&nbsp;{$value|crmMoney:$currency}</td>\n           {/if}\n          </tr>\n        {/foreach}\n       {/if}\n      {/if}\n\n      {if $amount && !$lineItem}\n       {foreach from=$amount item=amnt key=level}\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          {$amnt.amount|crmMoney} {$amnt.label}\n         </td>\n        </tr>\n       {/foreach}\n      {/if}\n      {if $totalTaxAmount}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Total Tax Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$totalTaxAmount|crmMoney:$currency}\n        </td>\n       </tr>\n      {/if}\n      {if $isPrimary}\n       <tr>\n        <td {$labelStyle}>\n        {if $balanceAmount}\n           {ts}Total Paid{/ts}\n        {else}\n           {ts}Total Amount{/ts}\n         {/if}\n        </td>\n        <td {$valueStyle}>\n         {$totalAmount|crmMoney} {if $hookDiscount.message}({$hookDiscount.message}){/if}\n        </td>\n       </tr>\n      {if $balanceAmount}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Balance{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$balanceAmount|crmMoney}\n        </td>\n       </tr>\n      {/if}\n       {if $pricesetFieldsCount }\n     <tr>\n       <td {$labelStyle}>\n   {ts}Total Participants{/ts}</td>\n       <td {$valueStyle}>\n   {assign var=\"count\" value= 0}\n         {foreach from=$lineItem item=pcount}\n         {assign var=\"lineItemCount\" value=0}\n         {if $pcount neq \'skip\'}\n           {foreach from=$pcount item=p_count}\n           {assign var=\"lineItemCount\" value=$lineItemCount+$p_count.participant_count}\n           {/foreach}\n           {if $lineItemCount < 1 }\n           assign var=\"lineItemCount\" value=1}\n           {/if}\n           {assign var=\"count\" value=$count+$lineItemCount}\n         {/if}\n         {/foreach}\n   {$count}\n       </td>\n     </tr>\n     {/if}\n       {if $is_pay_later}\n        <tr>\n         <td colspan=\"2\" {$labelStyle}>\n          {$pay_later_receipt}\n         </td>\n        </tr>\n       {/if}\n\n       {if $register_date}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Registration Date{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$register_date|crmDate}\n         </td>\n        </tr>\n       {/if}\n\n       {if $receive_date}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Transaction Date{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$receive_date|crmDate}\n         </td>\n        </tr>\n       {/if}\n\n       {if $financialTypeName}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Financial Type{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$financialTypeName}\n         </td>\n        </tr>\n       {/if}\n\n       {if $trxn_id}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Transaction #{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$trxn_id}\n         </td>\n        </tr>\n       {/if}\n\n       {if $paidBy}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Paid By{/ts}\n         </td>\n         <td {$valueStyle}>\n         {$paidBy}\n         </td>\n        </tr>\n       {/if}\n\n       {if $checkNumber}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Check Number{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$checkNumber}\n         </td>\n        </tr>\n       {/if}\n\n       {if $billingName}\n        <tr>\n         <th {$headerStyle}>\n          {ts}Billing Name and Address{/ts}\n         </th>\n        </tr>\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          {$billingName}<br />\n          {$address|nl2br}\n         </td>\n        </tr>\n       {/if}\n\n       {if $credit_card_type}\n        <tr>\n         <th {$headerStyle}>\n          {ts}Credit Card Information{/ts}\n         </th>\n        </tr>\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          {$credit_card_type}<br />\n          {$credit_card_number}<br />\n          {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n         </td>\n        </tr>\n       {/if}\n\n      {/if}\n\n     {/if} {* End of conditional section for Paid events *}\n\n     {if $customPre}\n      <tr>\n       <th {$headerStyle}>\n        {$customPre_grouptitle}\n       </th>\n      </tr>\n      {foreach from=$customPre item=value key=customName}\n       {if ( $trackingFields and ! in_array( $customName, $trackingFields ) ) or ! $trackingFields}\n        <tr>\n         <td {$labelStyle}>\n          {$customName}\n         </td>\n         <td {$valueStyle}>\n          {$value}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n     {if $customPost}\n      <tr>\n       <th {$headerStyle}>\n        {$customPost_grouptitle}\n       </th>\n      </tr>\n      {foreach from=$customPost item=value key=customName}\n       {if ( $trackingFields and ! in_array( $customName, $trackingFields ) ) or ! $trackingFields}\n        <tr>\n         <td {$labelStyle}>\n          {$customName}\n         </td>\n         <td {$valueStyle}>\n          {$value}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n     {if $customProfile}\n      {foreach from=$customProfile item=value key=customName}\n       <tr>\n        <th {$headerStyle}>\n         {ts 1=$customName+1}Participant Information - Participant %1{/ts}\n        </th>\n       </tr>\n       {foreach from=$value item=val key=field}\n        {if $field eq \'additionalCustomPre\' or $field eq \'additionalCustomPost\'}\n         <tr>\n          <td colspan=\"2\" {$labelStyle}>\n           {if $field eq \'additionalCustomPre\'}\n            {$additionalCustomPre_grouptitle}\n           {else}\n            {$additionalCustomPost_grouptitle}\n           {/if}\n          </td>\n         </tr>\n         {foreach from=$val item=v key=f}\n          <tr>\n           <td {$labelStyle}>\n            {$f}\n           </td>\n           <td {$valueStyle}>\n            {$v}\n           </td>\n          </tr>\n         {/foreach}\n        {/if}\n       {/foreach}\n      {/foreach}\n     {/if}\n\n     {if $customGroup}\n      {foreach from=$customGroup item=value key=customName}\n       <tr>\n        <th {$headerStyle}>\n         {$customName}\n        </th>\n       </tr>\n       {foreach from=$value item=v key=n}\n        <tr>\n         <td {$labelStyle}>\n          {$n}\n         </td>\n         <td {$valueStyle}>\n          {$v}\n         </td>\n        </tr>\n       {/foreach}\n      {/foreach}\n     {/if}\n\n    </table>\n   </td>\n  </tr>\n\n </table>\n</center>\n\n</body>\n</html>\n',1,833,0,1,0,NULL),(31,'Events - Registration Confirmation and Receipt (on-line)','{if $isOnWaitlist}{ts}Wait List Confirmation{/ts}{elseif $isRequireApproval}{ts}Registration Request Confirmation{/ts}{else}{ts}Registration Confirmation{/ts}{/if} - {$event.event_title} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n{if $event.confirm_email_text AND (not $isOnWaitlist AND not $isRequireApproval)}\n{$event.confirm_email_text}\n\n{else}\n  {ts}Thank you for your registration.{/ts}\n  {if $participant_status}{ts 1=$participant_status}This is a confirmation that your registration has been received and your status has been updated to %1.{/ts}\n  {else}{if $isOnWaitlist}{ts}This is a confirmation that your registration has been received and your status has been updated to waitlisted.{/ts}{else}{ts}This is a confirmation that your registration has been received and your status has been updated to registered.{/ts}{/if}\n  {/if}\n{/if}\n\n{if $isOnWaitlist}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{ts}You have been added to the WAIT LIST for this event.{/ts}\n\n{if $isPrimary}\n{ts}If space becomes available you will receive an email with a link to a web page where you can complete your registration.{/ts}\n{/if}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{elseif $isRequireApproval}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{ts}Your registration has been submitted.{/ts}\n\n{if $isPrimary}\n{ts}Once your registration has been reviewed, you will receive an email with a link to a web page where you can complete the registration process.{/ts}\n\n{/if}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{elseif $is_pay_later && !$isAmountzero && !$isAdditionalParticipant}\n\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{$pay_later_receipt}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{/if}\n\n\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{ts}Event Information and Location{/ts}\n\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{$event.event_title}\n{$event.event_start_date|date_format:\"%A\"} {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|date_format:\"%A\"} {$event.event_end_date|crmDate}{/if}{/if}\n{if $conference_sessions}\n\n\n{ts}Your schedule:{/ts}\n{assign var=\'group_by_day\' value=\'NA\'}\n{foreach from=$conference_sessions item=session}\n{if $session.start_date|date_format:\"%Y/%m/%d\" != $group_by_day|date_format:\"%Y/%m/%d\"}\n{assign var=\'group_by_day\' value=$session.start_date}\n\n{$group_by_day|date_format:\"%m/%d/%Y\"}\n\n\n{/if}\n{$session.start_date|crmDate:0:1}{if $session.end_date}-{$session.end_date|crmDate:0:1}{/if} {$session.title}\n{if $session.location}    {$session.location}{/if}\n{/foreach}\n{/if}\n\n{if $event.participant_role neq \'Attendee\' and $defaultRole}\n{ts}Participant Role{/ts}: {$event.participant_role}\n{/if}\n\n{if $isShowLocation}\n{$location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n\n{if $location.phone.1.phone || $location.email.1.email}\n\n{ts}Event Contacts:{/ts}\n{foreach from=$location.phone item=phone}\n{if $phone.phone}\n\n{if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}: {$phone.phone}{/if} {if $phone.phone_ext} {ts}ext.{/ts} {$phone.phone_ext}{/if}\n{/foreach}\n{foreach from=$location.email item=eventEmail}\n{if $eventEmail.email}\n\n{ts}Email{/ts}: {$eventEmail.email}{/if}{/foreach}\n{/if}\n\n{if $event.is_public}\n{capture assign=icalFeed}{crmURL p=\'civicrm/event/ical\' q=\"reset=1&id=`$event.id`\" h=0 a=1 fe=1}{/capture}\n{ts}Download iCalendar File:{/ts} {$icalFeed}\n{/if}\n\n{if $payer.name}\nYou were registered by: {$payer.name}\n{/if}\n{if $event.is_monetary and not $isRequireApproval} {* This section for Paid events only.*}\n\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{$event.fee_label}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{if $lineItem}{foreach from=$lineItem item=value key=priceset}\n\n{if $value neq \'skip\'}\n{if $isPrimary}\n{if $lineItem|@count GT 1} {* Header for multi participant registration cases. *}\n{ts 1=$priceset+1}Participant %1{/ts} {$part.$priceset.info}\n\n{/if}\n{/if}\n-----------------------------------------------------------{if $pricesetFieldsCount }-----------------------------------------------------{/if}\n\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_qty}{ts}Qty{/ts}{/capture}\n{capture assign=ts_each}{ts}Each{/ts}{/capture}\n{if $dataArray}\n{capture assign=ts_subtotal}{ts}Subtotal{/ts}{/capture}\n{capture assign=ts_taxRate}{ts}Tax Rate{/ts}{/capture}\n{capture assign=ts_taxAmount}{ts}Tax Amount{/ts}{/capture}\n{/if}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{if $pricesetFieldsCount }{capture assign=ts_participant_total}{ts}Total Participants{/ts}{/capture}{/if}\n{$ts_item|string_format:\"%-30s\"} {$ts_qty|string_format:\"%5s\"} {$ts_each|string_format:\"%10s\"} {if $dataArray} {$ts_subtotal|string_format:\"%10s\"} {$ts_taxRate|string_format:\"%10s\"} {$ts_taxAmount|string_format:\"%10s\"} {/if} {$ts_total|string_format:\"%10s\"} {$ts_participant_total|string_format:\"%10s\"}\n-----------------------------------------------------------{if $pricesetFieldsCount }-----------------------------------------------------{/if}\n\n{foreach from=$value item=line}\n{if $pricesetFieldsCount }{capture assign=ts_participant_count}{$line.participant_count}{/capture}{/if}\n{capture assign=ts_item}{if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description} {$line.description}{/if}{/capture}{$ts_item|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.qty|string_format:\"%5s\"} {$line.unit_price|crmMoney:$currency|string_format:\"%10s\"} {if $dataArray} {$line.unit_price*$line.qty|crmMoney:$currency|string_format:\"%10s\"} {if $line.tax_rate != \"\" || $line.tax_amount != \"\"}  {$line.tax_rate|string_format:\"%.2f\"} %  {$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"} {else}                  {/if}  {/if} {$line.line_total+$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"}{$ts_participant_count|string_format:\"%10s\"}\n{/foreach}\n----------------------------------------------------------------------------------------------------------------\n{if $individual}{ts}Participant Total{/ts} {$individual.$priceset.totalAmtWithTax-$individual.$priceset.totalTaxAmt|crmMoney:$currency|string_format:\"%29s\"} {$individual.$priceset.totalTaxAmt|crmMoney:$currency|string_format:\"%33s\"} {$individual.$priceset.totalAmtWithTax|crmMoney:$currency|string_format:\"%12s\"}{/if}\n{/if}\n{\"\"|string_format:\"%120s\"}\n{/foreach}\n{\"\"|string_format:\"%120s\"}\n\n{if $dataArray}\n{ts}Amount before Tax{/ts}: {$totalAmount-$totalTaxAmount|crmMoney:$currency}\n\n{foreach from=$dataArray item=value key=priceset}\n{if $priceset || $priceset == 0}\n{$taxTerm} {$priceset|string_format:\"%.2f\"}%: {$value|crmMoney:$currency}\n{else}\n{ts}No{/ts} {$taxTerm}: {$value|crmMoney:$currency}\n{/if}\n{/foreach}\n{/if}\n{/if}\n\n{if $amounts && !$lineItem}\n{foreach from=$amounts item=amnt key=level}{$amnt.amount|crmMoney:$currency} {$amnt.label}\n{/foreach}\n{/if}\n\n{if $totalTaxAmount}\n{ts}Total Tax Amount{/ts}: {$totalTaxAmount|crmMoney:$currency}\n{/if}\n{if $isPrimary }\n\n{ts}Total Amount{/ts}: {$totalAmount|crmMoney:$currency} {if $hookDiscount.message}({$hookDiscount.message}){/if}\n\n{if $pricesetFieldsCount }\n      {assign var=\"count\" value= 0}\n      {foreach from=$lineItem item=pcount}\n      {assign var=\"lineItemCount\" value=0}\n      {if $pcount neq \'skip\'}\n        {foreach from=$pcount item=p_count}\n        {assign var=\"lineItemCount\" value=$lineItemCount+$p_count.participant_count}\n        {/foreach}\n      {if $lineItemCount < 1 }\n        {assign var=\"lineItemCount\" value=1}\n      {/if}\n      {assign var=\"count\" value=$count+$lineItemCount}\n      {/if}\n      {/foreach}\n\n{ts}Total Participants{/ts}: {$count}\n{/if}\n\n{if $register_date}\n{ts}Registration Date{/ts}: {$register_date|crmDate}\n{/if}\n{if $receive_date}\n{ts}Transaction Date{/ts}: {$receive_date|crmDate}\n{/if}\n{if $financialTypeName}\n{ts}Financial Type{/ts}: {$financialTypeName}\n{/if}\n{if $trxn_id}\n{ts}Transaction #{/ts}: {$trxn_id}\n{/if}\n{if $paidBy}\n{ts}Paid By{/ts}: {$paidBy}\n{/if}\n{if $checkNumber}\n{ts}Check Number{/ts}: {$checkNumber}\n{/if}\n{if $billingName}\n\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{ts}Billing Name and Address{/ts}\n\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{$billingName}\n{$address}\n{/if}\n\n{if $credit_card_type}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{ts}Credit Card Information{/ts}\n\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n{/if}\n{/if} {* End of conditional section for Paid events *}\n\n{if $customPre}\n{foreach from=$customPre item=customPr key=i}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{$customPre_grouptitle.$i}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{foreach from=$customPr item=customValue key=customName}\n{if ( $trackingFields and ! in_array( $customName, $trackingFields ) ) or ! $trackingFields}\n {$customName}: {$customValue}\n{/if}\n{/foreach}\n{/foreach}\n{/if}\n\n{if $customPost}\n{foreach from=$customPost item=customPos key=j}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{$customPost_grouptitle.$j}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{foreach from=$customPos item=customValue key=customName}\n{if ( $trackingFields and ! in_array( $customName, $trackingFields ) ) or ! $trackingFields}\n {$customName}: {$customValue}\n{/if}\n{/foreach}\n{/foreach}\n{/if}\n{if $customProfile}\n\n{foreach from=$customProfile.profile item=eachParticipant key=participantID}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{ts 1=$participantID+2}Participant Information - Participant %1{/ts}\n\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{foreach from=$eachParticipant item=eachProfile key=pid}\n----------------------------------------------------------{if $pricesetFieldsCount }--------------------{/if}\n\n{$customProfile.title.$pid}\n----------------------------------------------------------{if $pricesetFieldsCount }--------------------{/if}\n\n{foreach from=$eachProfile item=val key=field}\n{foreach from=$val item=v key=f}\n{$field}: {$v}\n{/foreach}\n{/foreach}\n{/foreach}\n{/foreach}\n{/if}\n{if $customGroup}\n{foreach from=$customGroup item=value key=customName}\n=========================================================={if $pricesetFieldsCount }===================={/if}\n\n{$customName}\n=========================================================={if $pricesetFieldsCount }===================={/if}\n\n{foreach from=$value item=v key=n}\n{$n}: {$v}\n{/foreach}\n{/foreach}\n{/if}\n\n{if $event.allow_selfcancelxfer }\n{ts 1=$event.selfcancelxfer_time}You may transfer your registration to another participant or cancel your registration up to %1 hours before the event.{/ts} {if $totalAmount}{ts}Cancellations are not refundable.{/ts}{/if}\n   {capture assign=selfService}{crmURL p=\'civicrm/event/selfsvcupdate\' q=\"reset=1&pid=`$participant.id`&{contact.checksum}\"  h=0 a=1 fe=1}{/capture}\n{ts}Transfer or cancel your registration:{/ts} {$selfService}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n{capture assign=tdfirstStyle}style=\"width: 180px; padding-bottom: 15px;\"{/capture}\n{capture assign=tdStyle}style=\"width: 100px;\"{/capture}\n{capture assign=participantTotal}style=\"margin: 0.5em 0 0.5em;padding: 0.5em;background-color: #999999;font-weight: bold;color: #FAFAFA;border-radius: 2px;\"{/capture}\n\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n     {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n\n    {if $event.confirm_email_text AND (not $isOnWaitlist AND not $isRequireApproval)}\n     <p>{$event.confirm_email_text|htmlize}</p>\n\n    {else}\n     <p>{ts}Thank you for your registration.{/ts}\n     {if $participant_status}{ts 1=$participant_status}This is a confirmation that your registration has been received and your status has been updated to <strong> %1</strong>.{/ts}\n     {else}{if $isOnWaitlist}{ts}This is a confirmation that your registration has been received and your status has been updated to <strong>waitlisted</strong>.{/ts}{else}{ts}This is a confirmation that your registration has been received and your status has been updated to <strong>registered<strong>.{/ts}{/if}{/if}</p>\n\n    {/if}\n\n    <p>\n    {if $isOnWaitlist}\n     <p>{ts}You have been added to the WAIT LIST for this event.{/ts}</p>\n     {if $isPrimary}\n       <p>{ts}If space becomes available you will receive an email with a link to a web page where you can complete your registration.{/ts}</p>\n     {/if}\n    {elseif $isRequireApproval}\n     <p>{ts}Your registration has been submitted.{/ts}</p>\n     {if $isPrimary}\n      <p>{ts}Once your registration has been reviewed, you will receive an email with a link to a web page where you can complete the registration process.{/ts}</p>\n     {/if}\n    {elseif $is_pay_later && !$isAmountzero && !$isAdditionalParticipant}\n     <p>{$pay_later_receipt}</p> {* FIXME: this might be text rather than HTML *}\n    {/if}\n\n   </td>\n  </tr>\n  <tr>\n   <td>\n    <table style=\"width:100%; max-width:700px; border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Event Information and Location{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td colspan=\"2\" {$valueStyle}>\n       {$event.event_title}<br />\n       {$event.event_start_date|date_format:\"%A\"} {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|date_format:\"%A\"} {$event.event_end_date|crmDate}{/if}{/if}\n      </td>\n     </tr>\n\n\n     {if $conference_sessions}\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n  {ts}Your schedule:{/ts}\n       </td>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n  {assign var=\'group_by_day\' value=\'NA\'}\n  {foreach from=$conference_sessions item=session}\n   {if $session.start_date|date_format:\"%Y/%m/%d\" != $group_by_day|date_format:\"%Y/%m/%d\"}\n    {assign var=\'group_by_day\' value=$session.start_date}\n          <em>{$group_by_day|date_format:\"%m/%d/%Y\"}</em><br />\n   {/if}\n   {$session.start_date|crmDate:0:1}{if $session.end_date}-{$session.end_date|crmDate:0:1}{/if} {$session.title}<br />\n   {if $session.location}&nbsp;&nbsp;&nbsp;&nbsp;{$session.location}<br />{/if}\n  {/foreach}\n       </td>\n      </tr>\n     {/if}\n\n     {if $event.participant_role neq \'Attendee\' and $defaultRole}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Participant Role{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$event.participant_role}\n       </td>\n      </tr>\n     {/if}\n\n     {if $isShowLocation}\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$location.address.1.display|nl2br}\n       </td>\n      </tr>\n     {/if}\n\n     {if $location.phone.1.phone || $location.email.1.email}\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n        {ts}Event Contacts:{/ts}\n       </td>\n      </tr>\n      {foreach from=$location.phone item=phone}\n       {if $phone.phone}\n        <tr>\n         <td {$labelStyle}>\n          {if $phone.phone_type}\n           {$phone.phone_type_display}\n          {else}\n           {ts}Phone{/ts}\n          {/if}\n         </td>\n         <td {$valueStyle}>\n          {$phone.phone} {if $phone.phone_ext}&nbsp;{ts}ext.{/ts} {$phone.phone_ext}{/if}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n      {foreach from=$location.email item=eventEmail}\n       {if $eventEmail.email}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Email{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$eventEmail.email}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n     {if $event.is_public}\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {capture assign=icalFeed}{crmURL p=\'civicrm/event/ical\' q=\"reset=1&id=`$event.id`\" h=0 a=1 fe=1}{/capture}\n        <a href=\"{$icalFeed}\">{ts}Download iCalendar File{/ts}</a>\n       </td>\n      </tr>\n     {/if}\n\n    {if $event.is_share}\n        <tr>\n            <td colspan=\"2\" {$valueStyle}>\n                {capture assign=eventUrl}{crmURL p=\'civicrm/event/info\' q=\"id=`$event.id`&reset=1\" a=true fe=1 h=1}{/capture}\n                {include file=\"CRM/common/SocialNetwork.tpl\" emailMode=true url=$eventUrl title=$event.title pageURL=$eventUrl}\n            </td>\n        </tr>\n    {/if}\n    {if $payer.name}\n     <tr>\n       <th {$headerStyle}>\n         {ts}You were registered by:{/ts}\n       </th>\n     </tr>\n     <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$payer.name}\n       </td>\n     </tr>\n    {/if}\n    {if $event.is_monetary and not $isRequireApproval}\n\n      <tr>\n       <th {$headerStyle}>\n        {$event.fee_label}\n       </th>\n      </tr>\n\n      {if $lineItem}\n       {foreach from=$lineItem item=value key=priceset}\n        {if $value neq \'skip\'}\n         {if $isPrimary}\n          {if $lineItem|@count GT 1} {* Header for multi participant registration cases. *}\n           <tr>\n            <td colspan=\"2\" {$labelStyle}>\n             {ts 1=$priceset+1}Participant %1{/ts} {$part.$priceset.info}\n            </td>\n           </tr>\n          {/if}\n         {/if}\n         <tr>\n          <td colspan=\"2\" {$valueStyle}>\n           <table> {* FIXME: style this table so that it looks like the text version (justification, etc.) *}\n            <tr>\n             <th>{ts}Item{/ts}</th>\n             <th>{ts}Qty{/ts}</th>\n             <th>{ts}Each{/ts}</th>\n             {if $dataArray}\n              <th>{ts}SubTotal{/ts}</th>\n              <th>{ts}Tax Rate{/ts}</th>\n              <th>{ts}Tax Amount{/ts}</th>\n             {/if}\n             <th>{ts}Total{/ts}</th>\n       {if  $pricesetFieldsCount }<th>{ts}Total Participants{/ts}</th>{/if}\n            </tr>\n            {foreach from=$value item=line}\n             <tr>\n              <td {$tdfirstStyle}>\n              {if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description}<div>{$line.description|truncate:30:\"...\"}</div>{/if}\n              </td>\n              <td {$tdStyle} align=\"middle\">\n               {$line.qty}\n              </td>\n              <td {$tdStyle}>\n               {$line.unit_price|crmMoney:$currency}\n              </td>\n              {if $dataArray}\n               <td {$tdStyle}>\n                {$line.unit_price*$line.qty|crmMoney}\n               </td>\n               {if $line.tax_rate != \"\" || $line.tax_amount != \"\"}\n                <td {$tdStyle}>\n                 {$line.tax_rate|string_format:\"%.2f\"}%\n                </td>\n                <td {$tdStyle}>\n                 {$line.tax_amount|crmMoney}\n                </td>\n               {else}\n                <td></td>\n                <td></td>\n               {/if}\n              {/if}\n              <td {$tdStyle}>\n               {$line.line_total+$line.tax_amount|crmMoney:$currency}\n              </td>\n        {if $pricesetFieldsCount }<td {$tdStyle}>{$line.participant_count}</td> {/if}\n             </tr>\n            {/foreach}\n            {if $individual}\n              <tr {$participantTotal}>\n                <td colspan=3>{ts}Participant Total{/ts}</td>\n                <td colspan=2>{$individual.$priceset.totalAmtWithTax-$individual.$priceset.totalTaxAmt|crmMoney}</td>\n                <td colspan=1>{$individual.$priceset.totalTaxAmt|crmMoney}</td>\n                <td colspan=2>{$individual.$priceset.totalAmtWithTax|crmMoney}</td>\n              </tr>\n            {/if}\n           </table>\n          </td>\n         </tr>\n        {/if}\n       {/foreach}\n       {if $dataArray}\n        <tr>\n         <td {$labelStyle}>\n          {ts} Amount Before Tax: {/ts}\n         </td>\n         <td {$valueStyle}>\n          {$totalAmount-$totalTaxAmount|crmMoney}\n         </td>\n        </tr>\n        {foreach from=$dataArray item=value key=priceset}\n         <tr>\n          {if $priceset || $priceset == 0}\n           <td>&nbsp;{$taxTerm} {$priceset|string_format:\"%.2f\"}%</td>\n           <td>&nbsp;{$value|crmMoney:$currency}</td>\n          {else}\n           <td>&nbsp;{ts}No{/ts} {$taxTerm}</td>\n           <td>&nbsp;{$value|crmMoney:$currency}</td>\n          {/if}\n         </tr>\n        {/foreach}\n       {/if}\n      {/if}\n\n      {if $amounts && !$lineItem}\n       {foreach from=$amounts item=amnt key=level}\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          {$amnt.amount|crmMoney:$currency} {$amnt.label}\n         </td>\n        </tr>\n       {/foreach}\n      {/if}\n\n    {if $totalTaxAmount}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Total Tax Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$totalTaxAmount|crmMoney:$currency}\n        </td>\n       </tr>\n      {/if}\n      {if $isPrimary}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Total Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$totalAmount|crmMoney:$currency} {if $hookDiscount.message}({$hookDiscount.message}){/if}\n        </td>\n       </tr>\n       {if $pricesetFieldsCount }\n     <tr>\n       <td {$labelStyle}>\n      {ts}Total Participants{/ts}</td>\n      <td {$valueStyle}>\n      {assign var=\"count\" value= 0}\n      {foreach from=$lineItem item=pcount}\n      {assign var=\"lineItemCount\" value=0}\n      {if $pcount neq \'skip\'}\n        {foreach from=$pcount item=p_count}\n        {assign var=\"lineItemCount\" value=$lineItemCount+$p_count.participant_count}\n        {/foreach}\n      {if $lineItemCount < 1 }\n        {assign var=\"lineItemCount\" value=1}\n      {/if}\n      {assign var=\"count\" value=$count+$lineItemCount}\n      {/if}\n      {/foreach}\n     {$count}\n     </td> </tr>\n      {/if}\n\n       {if $register_date}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Registration Date{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$register_date|crmDate}\n         </td>\n        </tr>\n       {/if}\n\n       {if $receive_date}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Transaction Date{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$receive_date|crmDate}\n         </td>\n        </tr>\n       {/if}\n\n       {if $financialTypeName}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Financial Type{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$financialTypeName}\n         </td>\n        </tr>\n       {/if}\n\n       {if $trxn_id}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Transaction #{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$trxn_id}\n         </td>\n        </tr>\n       {/if}\n\n       {if $paidBy}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Paid By{/ts}\n         </td>\n         <td {$valueStyle}>\n         {$paidBy}\n         </td>\n        </tr>\n       {/if}\n\n       {if $checkNumber}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Check Number{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$checkNumber}\n         </td>\n        </tr>\n       {/if}\n\n       {if $billingName}\n        <tr>\n         <th {$headerStyle}>\n          {ts}Billing Name and Address{/ts}\n         </th>\n        </tr>\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          {$billingName}<br />\n          {$address|nl2br}\n         </td>\n        </tr>\n       {/if}\n\n       {if $credit_card_type}\n        <tr>\n         <th {$headerStyle}>\n          {ts}Credit Card Information{/ts}\n         </th>\n        </tr>\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          {$credit_card_type}<br />\n          {$credit_card_number}<br />\n          {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n         </td>\n        </tr>\n       {/if}\n\n      {/if}\n\n     {/if} {* End of conditional section for Paid events *}\n\n\n{if $customPre}\n{foreach from=$customPre item=customPr key=i}\n   <tr> <th {$headerStyle}>{$customPre_grouptitle.$i}</th></tr>\n   {foreach from=$customPr item=customValue key=customName}\n   {if ( $trackingFields and ! in_array( $customName, $trackingFields ) ) or ! $trackingFields}\n     <tr>\n         <td {$labelStyle}>{$customName}</td>\n         <td {$valueStyle}>{$customValue}</td>\n     </tr>\n   {/if}\n   {/foreach}\n{/foreach}\n{/if}\n\n{if $customPost}\n{foreach from=$customPost item=customPos key=j}\n   <tr> <th {$headerStyle}>{$customPost_grouptitle.$j}</th></tr>\n   {foreach from=$customPos item=customValue key=customName}\n   {if ( $trackingFields and ! in_array( $customName, $trackingFields ) ) or ! $trackingFields}\n     <tr>\n         <td {$labelStyle}>{$customName}</td>\n         <td {$valueStyle}>{$customValue}</td>\n     </tr>\n{/if}\n{/foreach}\n{/foreach}\n{/if}\n\n{if $customProfile}\n{foreach from=$customProfile.profile item=eachParticipant key=participantID}\n     <tr><th {$headerStyle}>{ts 1=$participantID+2}Participant %1{/ts} </th></tr>\n     {foreach from=$eachParticipant item=eachProfile key=pid}\n     <tr><th {$headerStyle}>{$customProfile.title.$pid}</th></tr>\n     {foreach from=$eachProfile item=val key=field}\n     <tr>{foreach from=$val item=v key=f}\n         <td {$labelStyle}>{$field}</td>\n         <td {$valueStyle}>{$v}</td>\n         {/foreach}\n     </tr>\n     {/foreach}\n{/foreach}\n{/foreach}\n{/if}\n\n    {if $customGroup}\n      {foreach from=$customGroup item=value key=customName}\n       <tr>\n        <th {$headerStyle}>\n         {$customName}\n        </th>\n       </tr>\n       {foreach from=$value item=v key=n}\n        <tr>\n         <td {$labelStyle}>\n          {$n}\n         </td>\n         <td {$valueStyle}>\n          {$v}\n         </td>\n        </tr>\n       {/foreach}\n      {/foreach}\n     {/if}\n    </table>\n    {if $event.allow_selfcancelxfer }\n     <tr>\n      <td colspan=\"2\" {$valueStyle}>\n        {ts 1=$event.selfcancelxfer_time}You may transfer your registration to another participant or cancel your registration up to %1 hours before the event.{/ts} {if $totalAmount}{ts}Cancellations are not refundable.{/ts}{/if}<br />\n        {capture assign=selfService}{crmURL p=\'civicrm/event/selfsvcupdate\' q=\"reset=1&pid=`$participant.id`&{contact.checksum}\"  h=0 a=1 fe=1}{/capture}\n        <a href=\"{$selfService}\">{ts}Click here to transfer or cancel your registration.{/ts}</a>\n      </td>\n     </tr>\n    {/if}\n </table>\n</center>\n\n</body>\n</html>\n',1,834,1,0,0,NULL),(32,'Events - Registration Confirmation and Receipt (on-line)','{if $isOnWaitlist}{ts}Wait List Confirmation{/ts}{elseif $isRequireApproval}{ts}Registration Request Confirmation{/ts}{else}{ts}Registration Confirmation{/ts}{/if} - {$event.event_title} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n{if $event.confirm_email_text AND (not $isOnWaitlist AND not $isRequireApproval)}\n{$event.confirm_email_text}\n\n{else}\n  {ts}Thank you for your registration.{/ts}\n  {if $participant_status}{ts 1=$participant_status}This is a confirmation that your registration has been received and your status has been updated to %1.{/ts}\n  {else}{if $isOnWaitlist}{ts}This is a confirmation that your registration has been received and your status has been updated to waitlisted.{/ts}{else}{ts}This is a confirmation that your registration has been received and your status has been updated to registered.{/ts}{/if}\n  {/if}\n{/if}\n\n{if $isOnWaitlist}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{ts}You have been added to the WAIT LIST for this event.{/ts}\n\n{if $isPrimary}\n{ts}If space becomes available you will receive an email with a link to a web page where you can complete your registration.{/ts}\n{/if}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{elseif $isRequireApproval}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{ts}Your registration has been submitted.{/ts}\n\n{if $isPrimary}\n{ts}Once your registration has been reviewed, you will receive an email with a link to a web page where you can complete the registration process.{/ts}\n\n{/if}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{elseif $is_pay_later && !$isAmountzero && !$isAdditionalParticipant}\n\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{$pay_later_receipt}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{/if}\n\n\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{ts}Event Information and Location{/ts}\n\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{$event.event_title}\n{$event.event_start_date|date_format:\"%A\"} {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|date_format:\"%A\"} {$event.event_end_date|crmDate}{/if}{/if}\n{if $conference_sessions}\n\n\n{ts}Your schedule:{/ts}\n{assign var=\'group_by_day\' value=\'NA\'}\n{foreach from=$conference_sessions item=session}\n{if $session.start_date|date_format:\"%Y/%m/%d\" != $group_by_day|date_format:\"%Y/%m/%d\"}\n{assign var=\'group_by_day\' value=$session.start_date}\n\n{$group_by_day|date_format:\"%m/%d/%Y\"}\n\n\n{/if}\n{$session.start_date|crmDate:0:1}{if $session.end_date}-{$session.end_date|crmDate:0:1}{/if} {$session.title}\n{if $session.location}    {$session.location}{/if}\n{/foreach}\n{/if}\n\n{if $event.participant_role neq \'Attendee\' and $defaultRole}\n{ts}Participant Role{/ts}: {$event.participant_role}\n{/if}\n\n{if $isShowLocation}\n{$location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n\n{if $location.phone.1.phone || $location.email.1.email}\n\n{ts}Event Contacts:{/ts}\n{foreach from=$location.phone item=phone}\n{if $phone.phone}\n\n{if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}: {$phone.phone}{/if} {if $phone.phone_ext} {ts}ext.{/ts} {$phone.phone_ext}{/if}\n{/foreach}\n{foreach from=$location.email item=eventEmail}\n{if $eventEmail.email}\n\n{ts}Email{/ts}: {$eventEmail.email}{/if}{/foreach}\n{/if}\n\n{if $event.is_public}\n{capture assign=icalFeed}{crmURL p=\'civicrm/event/ical\' q=\"reset=1&id=`$event.id`\" h=0 a=1 fe=1}{/capture}\n{ts}Download iCalendar File:{/ts} {$icalFeed}\n{/if}\n\n{if $payer.name}\nYou were registered by: {$payer.name}\n{/if}\n{if $event.is_monetary and not $isRequireApproval} {* This section for Paid events only.*}\n\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{$event.fee_label}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{if $lineItem}{foreach from=$lineItem item=value key=priceset}\n\n{if $value neq \'skip\'}\n{if $isPrimary}\n{if $lineItem|@count GT 1} {* Header for multi participant registration cases. *}\n{ts 1=$priceset+1}Participant %1{/ts} {$part.$priceset.info}\n\n{/if}\n{/if}\n-----------------------------------------------------------{if $pricesetFieldsCount }-----------------------------------------------------{/if}\n\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_qty}{ts}Qty{/ts}{/capture}\n{capture assign=ts_each}{ts}Each{/ts}{/capture}\n{if $dataArray}\n{capture assign=ts_subtotal}{ts}Subtotal{/ts}{/capture}\n{capture assign=ts_taxRate}{ts}Tax Rate{/ts}{/capture}\n{capture assign=ts_taxAmount}{ts}Tax Amount{/ts}{/capture}\n{/if}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{if $pricesetFieldsCount }{capture assign=ts_participant_total}{ts}Total Participants{/ts}{/capture}{/if}\n{$ts_item|string_format:\"%-30s\"} {$ts_qty|string_format:\"%5s\"} {$ts_each|string_format:\"%10s\"} {if $dataArray} {$ts_subtotal|string_format:\"%10s\"} {$ts_taxRate|string_format:\"%10s\"} {$ts_taxAmount|string_format:\"%10s\"} {/if} {$ts_total|string_format:\"%10s\"} {$ts_participant_total|string_format:\"%10s\"}\n-----------------------------------------------------------{if $pricesetFieldsCount }-----------------------------------------------------{/if}\n\n{foreach from=$value item=line}\n{if $pricesetFieldsCount }{capture assign=ts_participant_count}{$line.participant_count}{/capture}{/if}\n{capture assign=ts_item}{if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description} {$line.description}{/if}{/capture}{$ts_item|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.qty|string_format:\"%5s\"} {$line.unit_price|crmMoney:$currency|string_format:\"%10s\"} {if $dataArray} {$line.unit_price*$line.qty|crmMoney:$currency|string_format:\"%10s\"} {if $line.tax_rate != \"\" || $line.tax_amount != \"\"}  {$line.tax_rate|string_format:\"%.2f\"} %  {$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"} {else}                  {/if}  {/if} {$line.line_total+$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"}{$ts_participant_count|string_format:\"%10s\"}\n{/foreach}\n----------------------------------------------------------------------------------------------------------------\n{if $individual}{ts}Participant Total{/ts} {$individual.$priceset.totalAmtWithTax-$individual.$priceset.totalTaxAmt|crmMoney:$currency|string_format:\"%29s\"} {$individual.$priceset.totalTaxAmt|crmMoney:$currency|string_format:\"%33s\"} {$individual.$priceset.totalAmtWithTax|crmMoney:$currency|string_format:\"%12s\"}{/if}\n{/if}\n{\"\"|string_format:\"%120s\"}\n{/foreach}\n{\"\"|string_format:\"%120s\"}\n\n{if $dataArray}\n{ts}Amount before Tax{/ts}: {$totalAmount-$totalTaxAmount|crmMoney:$currency}\n\n{foreach from=$dataArray item=value key=priceset}\n{if $priceset || $priceset == 0}\n{$taxTerm} {$priceset|string_format:\"%.2f\"}%: {$value|crmMoney:$currency}\n{else}\n{ts}No{/ts} {$taxTerm}: {$value|crmMoney:$currency}\n{/if}\n{/foreach}\n{/if}\n{/if}\n\n{if $amounts && !$lineItem}\n{foreach from=$amounts item=amnt key=level}{$amnt.amount|crmMoney:$currency} {$amnt.label}\n{/foreach}\n{/if}\n\n{if $totalTaxAmount}\n{ts}Total Tax Amount{/ts}: {$totalTaxAmount|crmMoney:$currency}\n{/if}\n{if $isPrimary }\n\n{ts}Total Amount{/ts}: {$totalAmount|crmMoney:$currency} {if $hookDiscount.message}({$hookDiscount.message}){/if}\n\n{if $pricesetFieldsCount }\n      {assign var=\"count\" value= 0}\n      {foreach from=$lineItem item=pcount}\n      {assign var=\"lineItemCount\" value=0}\n      {if $pcount neq \'skip\'}\n        {foreach from=$pcount item=p_count}\n        {assign var=\"lineItemCount\" value=$lineItemCount+$p_count.participant_count}\n        {/foreach}\n      {if $lineItemCount < 1 }\n        {assign var=\"lineItemCount\" value=1}\n      {/if}\n      {assign var=\"count\" value=$count+$lineItemCount}\n      {/if}\n      {/foreach}\n\n{ts}Total Participants{/ts}: {$count}\n{/if}\n\n{if $register_date}\n{ts}Registration Date{/ts}: {$register_date|crmDate}\n{/if}\n{if $receive_date}\n{ts}Transaction Date{/ts}: {$receive_date|crmDate}\n{/if}\n{if $financialTypeName}\n{ts}Financial Type{/ts}: {$financialTypeName}\n{/if}\n{if $trxn_id}\n{ts}Transaction #{/ts}: {$trxn_id}\n{/if}\n{if $paidBy}\n{ts}Paid By{/ts}: {$paidBy}\n{/if}\n{if $checkNumber}\n{ts}Check Number{/ts}: {$checkNumber}\n{/if}\n{if $billingName}\n\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{ts}Billing Name and Address{/ts}\n\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{$billingName}\n{$address}\n{/if}\n\n{if $credit_card_type}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{ts}Credit Card Information{/ts}\n\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n{/if}\n{/if} {* End of conditional section for Paid events *}\n\n{if $customPre}\n{foreach from=$customPre item=customPr key=i}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{$customPre_grouptitle.$i}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{foreach from=$customPr item=customValue key=customName}\n{if ( $trackingFields and ! in_array( $customName, $trackingFields ) ) or ! $trackingFields}\n {$customName}: {$customValue}\n{/if}\n{/foreach}\n{/foreach}\n{/if}\n\n{if $customPost}\n{foreach from=$customPost item=customPos key=j}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{$customPost_grouptitle.$j}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{foreach from=$customPos item=customValue key=customName}\n{if ( $trackingFields and ! in_array( $customName, $trackingFields ) ) or ! $trackingFields}\n {$customName}: {$customValue}\n{/if}\n{/foreach}\n{/foreach}\n{/if}\n{if $customProfile}\n\n{foreach from=$customProfile.profile item=eachParticipant key=participantID}\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{ts 1=$participantID+2}Participant Information - Participant %1{/ts}\n\n==========================================================={if $pricesetFieldsCount }===================={/if}\n\n{foreach from=$eachParticipant item=eachProfile key=pid}\n----------------------------------------------------------{if $pricesetFieldsCount }--------------------{/if}\n\n{$customProfile.title.$pid}\n----------------------------------------------------------{if $pricesetFieldsCount }--------------------{/if}\n\n{foreach from=$eachProfile item=val key=field}\n{foreach from=$val item=v key=f}\n{$field}: {$v}\n{/foreach}\n{/foreach}\n{/foreach}\n{/foreach}\n{/if}\n{if $customGroup}\n{foreach from=$customGroup item=value key=customName}\n=========================================================={if $pricesetFieldsCount }===================={/if}\n\n{$customName}\n=========================================================={if $pricesetFieldsCount }===================={/if}\n\n{foreach from=$value item=v key=n}\n{$n}: {$v}\n{/foreach}\n{/foreach}\n{/if}\n\n{if $event.allow_selfcancelxfer }\n{ts 1=$event.selfcancelxfer_time}You may transfer your registration to another participant or cancel your registration up to %1 hours before the event.{/ts} {if $totalAmount}{ts}Cancellations are not refundable.{/ts}{/if}\n   {capture assign=selfService}{crmURL p=\'civicrm/event/selfsvcupdate\' q=\"reset=1&pid=`$participant.id`&{contact.checksum}\"  h=0 a=1 fe=1}{/capture}\n{ts}Transfer or cancel your registration:{/ts} {$selfService}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n{capture assign=tdfirstStyle}style=\"width: 180px; padding-bottom: 15px;\"{/capture}\n{capture assign=tdStyle}style=\"width: 100px;\"{/capture}\n{capture assign=participantTotal}style=\"margin: 0.5em 0 0.5em;padding: 0.5em;background-color: #999999;font-weight: bold;color: #FAFAFA;border-radius: 2px;\"{/capture}\n\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n     {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n\n    {if $event.confirm_email_text AND (not $isOnWaitlist AND not $isRequireApproval)}\n     <p>{$event.confirm_email_text|htmlize}</p>\n\n    {else}\n     <p>{ts}Thank you for your registration.{/ts}\n     {if $participant_status}{ts 1=$participant_status}This is a confirmation that your registration has been received and your status has been updated to <strong> %1</strong>.{/ts}\n     {else}{if $isOnWaitlist}{ts}This is a confirmation that your registration has been received and your status has been updated to <strong>waitlisted</strong>.{/ts}{else}{ts}This is a confirmation that your registration has been received and your status has been updated to <strong>registered<strong>.{/ts}{/if}{/if}</p>\n\n    {/if}\n\n    <p>\n    {if $isOnWaitlist}\n     <p>{ts}You have been added to the WAIT LIST for this event.{/ts}</p>\n     {if $isPrimary}\n       <p>{ts}If space becomes available you will receive an email with a link to a web page where you can complete your registration.{/ts}</p>\n     {/if}\n    {elseif $isRequireApproval}\n     <p>{ts}Your registration has been submitted.{/ts}</p>\n     {if $isPrimary}\n      <p>{ts}Once your registration has been reviewed, you will receive an email with a link to a web page where you can complete the registration process.{/ts}</p>\n     {/if}\n    {elseif $is_pay_later && !$isAmountzero && !$isAdditionalParticipant}\n     <p>{$pay_later_receipt}</p> {* FIXME: this might be text rather than HTML *}\n    {/if}\n\n   </td>\n  </tr>\n  <tr>\n   <td>\n    <table style=\"width:100%; max-width:700px; border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Event Information and Location{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td colspan=\"2\" {$valueStyle}>\n       {$event.event_title}<br />\n       {$event.event_start_date|date_format:\"%A\"} {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|date_format:\"%A\"} {$event.event_end_date|crmDate}{/if}{/if}\n      </td>\n     </tr>\n\n\n     {if $conference_sessions}\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n  {ts}Your schedule:{/ts}\n       </td>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n  {assign var=\'group_by_day\' value=\'NA\'}\n  {foreach from=$conference_sessions item=session}\n   {if $session.start_date|date_format:\"%Y/%m/%d\" != $group_by_day|date_format:\"%Y/%m/%d\"}\n    {assign var=\'group_by_day\' value=$session.start_date}\n          <em>{$group_by_day|date_format:\"%m/%d/%Y\"}</em><br />\n   {/if}\n   {$session.start_date|crmDate:0:1}{if $session.end_date}-{$session.end_date|crmDate:0:1}{/if} {$session.title}<br />\n   {if $session.location}&nbsp;&nbsp;&nbsp;&nbsp;{$session.location}<br />{/if}\n  {/foreach}\n       </td>\n      </tr>\n     {/if}\n\n     {if $event.participant_role neq \'Attendee\' and $defaultRole}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Participant Role{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$event.participant_role}\n       </td>\n      </tr>\n     {/if}\n\n     {if $isShowLocation}\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$location.address.1.display|nl2br}\n       </td>\n      </tr>\n     {/if}\n\n     {if $location.phone.1.phone || $location.email.1.email}\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n        {ts}Event Contacts:{/ts}\n       </td>\n      </tr>\n      {foreach from=$location.phone item=phone}\n       {if $phone.phone}\n        <tr>\n         <td {$labelStyle}>\n          {if $phone.phone_type}\n           {$phone.phone_type_display}\n          {else}\n           {ts}Phone{/ts}\n          {/if}\n         </td>\n         <td {$valueStyle}>\n          {$phone.phone} {if $phone.phone_ext}&nbsp;{ts}ext.{/ts} {$phone.phone_ext}{/if}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n      {foreach from=$location.email item=eventEmail}\n       {if $eventEmail.email}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Email{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$eventEmail.email}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n     {if $event.is_public}\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {capture assign=icalFeed}{crmURL p=\'civicrm/event/ical\' q=\"reset=1&id=`$event.id`\" h=0 a=1 fe=1}{/capture}\n        <a href=\"{$icalFeed}\">{ts}Download iCalendar File{/ts}</a>\n       </td>\n      </tr>\n     {/if}\n\n    {if $event.is_share}\n        <tr>\n            <td colspan=\"2\" {$valueStyle}>\n                {capture assign=eventUrl}{crmURL p=\'civicrm/event/info\' q=\"id=`$event.id`&reset=1\" a=true fe=1 h=1}{/capture}\n                {include file=\"CRM/common/SocialNetwork.tpl\" emailMode=true url=$eventUrl title=$event.title pageURL=$eventUrl}\n            </td>\n        </tr>\n    {/if}\n    {if $payer.name}\n     <tr>\n       <th {$headerStyle}>\n         {ts}You were registered by:{/ts}\n       </th>\n     </tr>\n     <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$payer.name}\n       </td>\n     </tr>\n    {/if}\n    {if $event.is_monetary and not $isRequireApproval}\n\n      <tr>\n       <th {$headerStyle}>\n        {$event.fee_label}\n       </th>\n      </tr>\n\n      {if $lineItem}\n       {foreach from=$lineItem item=value key=priceset}\n        {if $value neq \'skip\'}\n         {if $isPrimary}\n          {if $lineItem|@count GT 1} {* Header for multi participant registration cases. *}\n           <tr>\n            <td colspan=\"2\" {$labelStyle}>\n             {ts 1=$priceset+1}Participant %1{/ts} {$part.$priceset.info}\n            </td>\n           </tr>\n          {/if}\n         {/if}\n         <tr>\n          <td colspan=\"2\" {$valueStyle}>\n           <table> {* FIXME: style this table so that it looks like the text version (justification, etc.) *}\n            <tr>\n             <th>{ts}Item{/ts}</th>\n             <th>{ts}Qty{/ts}</th>\n             <th>{ts}Each{/ts}</th>\n             {if $dataArray}\n              <th>{ts}SubTotal{/ts}</th>\n              <th>{ts}Tax Rate{/ts}</th>\n              <th>{ts}Tax Amount{/ts}</th>\n             {/if}\n             <th>{ts}Total{/ts}</th>\n       {if  $pricesetFieldsCount }<th>{ts}Total Participants{/ts}</th>{/if}\n            </tr>\n            {foreach from=$value item=line}\n             <tr>\n              <td {$tdfirstStyle}>\n              {if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description}<div>{$line.description|truncate:30:\"...\"}</div>{/if}\n              </td>\n              <td {$tdStyle} align=\"middle\">\n               {$line.qty}\n              </td>\n              <td {$tdStyle}>\n               {$line.unit_price|crmMoney:$currency}\n              </td>\n              {if $dataArray}\n               <td {$tdStyle}>\n                {$line.unit_price*$line.qty|crmMoney}\n               </td>\n               {if $line.tax_rate != \"\" || $line.tax_amount != \"\"}\n                <td {$tdStyle}>\n                 {$line.tax_rate|string_format:\"%.2f\"}%\n                </td>\n                <td {$tdStyle}>\n                 {$line.tax_amount|crmMoney}\n                </td>\n               {else}\n                <td></td>\n                <td></td>\n               {/if}\n              {/if}\n              <td {$tdStyle}>\n               {$line.line_total+$line.tax_amount|crmMoney:$currency}\n              </td>\n        {if $pricesetFieldsCount }<td {$tdStyle}>{$line.participant_count}</td> {/if}\n             </tr>\n            {/foreach}\n            {if $individual}\n              <tr {$participantTotal}>\n                <td colspan=3>{ts}Participant Total{/ts}</td>\n                <td colspan=2>{$individual.$priceset.totalAmtWithTax-$individual.$priceset.totalTaxAmt|crmMoney}</td>\n                <td colspan=1>{$individual.$priceset.totalTaxAmt|crmMoney}</td>\n                <td colspan=2>{$individual.$priceset.totalAmtWithTax|crmMoney}</td>\n              </tr>\n            {/if}\n           </table>\n          </td>\n         </tr>\n        {/if}\n       {/foreach}\n       {if $dataArray}\n        <tr>\n         <td {$labelStyle}>\n          {ts} Amount Before Tax: {/ts}\n         </td>\n         <td {$valueStyle}>\n          {$totalAmount-$totalTaxAmount|crmMoney}\n         </td>\n        </tr>\n        {foreach from=$dataArray item=value key=priceset}\n         <tr>\n          {if $priceset || $priceset == 0}\n           <td>&nbsp;{$taxTerm} {$priceset|string_format:\"%.2f\"}%</td>\n           <td>&nbsp;{$value|crmMoney:$currency}</td>\n          {else}\n           <td>&nbsp;{ts}No{/ts} {$taxTerm}</td>\n           <td>&nbsp;{$value|crmMoney:$currency}</td>\n          {/if}\n         </tr>\n        {/foreach}\n       {/if}\n      {/if}\n\n      {if $amounts && !$lineItem}\n       {foreach from=$amounts item=amnt key=level}\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          {$amnt.amount|crmMoney:$currency} {$amnt.label}\n         </td>\n        </tr>\n       {/foreach}\n      {/if}\n\n    {if $totalTaxAmount}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Total Tax Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$totalTaxAmount|crmMoney:$currency}\n        </td>\n       </tr>\n      {/if}\n      {if $isPrimary}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Total Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$totalAmount|crmMoney:$currency} {if $hookDiscount.message}({$hookDiscount.message}){/if}\n        </td>\n       </tr>\n       {if $pricesetFieldsCount }\n     <tr>\n       <td {$labelStyle}>\n      {ts}Total Participants{/ts}</td>\n      <td {$valueStyle}>\n      {assign var=\"count\" value= 0}\n      {foreach from=$lineItem item=pcount}\n      {assign var=\"lineItemCount\" value=0}\n      {if $pcount neq \'skip\'}\n        {foreach from=$pcount item=p_count}\n        {assign var=\"lineItemCount\" value=$lineItemCount+$p_count.participant_count}\n        {/foreach}\n      {if $lineItemCount < 1 }\n        {assign var=\"lineItemCount\" value=1}\n      {/if}\n      {assign var=\"count\" value=$count+$lineItemCount}\n      {/if}\n      {/foreach}\n     {$count}\n     </td> </tr>\n      {/if}\n\n       {if $register_date}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Registration Date{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$register_date|crmDate}\n         </td>\n        </tr>\n       {/if}\n\n       {if $receive_date}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Transaction Date{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$receive_date|crmDate}\n         </td>\n        </tr>\n       {/if}\n\n       {if $financialTypeName}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Financial Type{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$financialTypeName}\n         </td>\n        </tr>\n       {/if}\n\n       {if $trxn_id}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Transaction #{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$trxn_id}\n         </td>\n        </tr>\n       {/if}\n\n       {if $paidBy}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Paid By{/ts}\n         </td>\n         <td {$valueStyle}>\n         {$paidBy}\n         </td>\n        </tr>\n       {/if}\n\n       {if $checkNumber}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Check Number{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$checkNumber}\n         </td>\n        </tr>\n       {/if}\n\n       {if $billingName}\n        <tr>\n         <th {$headerStyle}>\n          {ts}Billing Name and Address{/ts}\n         </th>\n        </tr>\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          {$billingName}<br />\n          {$address|nl2br}\n         </td>\n        </tr>\n       {/if}\n\n       {if $credit_card_type}\n        <tr>\n         <th {$headerStyle}>\n          {ts}Credit Card Information{/ts}\n         </th>\n        </tr>\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          {$credit_card_type}<br />\n          {$credit_card_number}<br />\n          {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n         </td>\n        </tr>\n       {/if}\n\n      {/if}\n\n     {/if} {* End of conditional section for Paid events *}\n\n\n{if $customPre}\n{foreach from=$customPre item=customPr key=i}\n   <tr> <th {$headerStyle}>{$customPre_grouptitle.$i}</th></tr>\n   {foreach from=$customPr item=customValue key=customName}\n   {if ( $trackingFields and ! in_array( $customName, $trackingFields ) ) or ! $trackingFields}\n     <tr>\n         <td {$labelStyle}>{$customName}</td>\n         <td {$valueStyle}>{$customValue}</td>\n     </tr>\n   {/if}\n   {/foreach}\n{/foreach}\n{/if}\n\n{if $customPost}\n{foreach from=$customPost item=customPos key=j}\n   <tr> <th {$headerStyle}>{$customPost_grouptitle.$j}</th></tr>\n   {foreach from=$customPos item=customValue key=customName}\n   {if ( $trackingFields and ! in_array( $customName, $trackingFields ) ) or ! $trackingFields}\n     <tr>\n         <td {$labelStyle}>{$customName}</td>\n         <td {$valueStyle}>{$customValue}</td>\n     </tr>\n{/if}\n{/foreach}\n{/foreach}\n{/if}\n\n{if $customProfile}\n{foreach from=$customProfile.profile item=eachParticipant key=participantID}\n     <tr><th {$headerStyle}>{ts 1=$participantID+2}Participant %1{/ts} </th></tr>\n     {foreach from=$eachParticipant item=eachProfile key=pid}\n     <tr><th {$headerStyle}>{$customProfile.title.$pid}</th></tr>\n     {foreach from=$eachProfile item=val key=field}\n     <tr>{foreach from=$val item=v key=f}\n         <td {$labelStyle}>{$field}</td>\n         <td {$valueStyle}>{$v}</td>\n         {/foreach}\n     </tr>\n     {/foreach}\n{/foreach}\n{/foreach}\n{/if}\n\n    {if $customGroup}\n      {foreach from=$customGroup item=value key=customName}\n       <tr>\n        <th {$headerStyle}>\n         {$customName}\n        </th>\n       </tr>\n       {foreach from=$value item=v key=n}\n        <tr>\n         <td {$labelStyle}>\n          {$n}\n         </td>\n         <td {$valueStyle}>\n          {$v}\n         </td>\n        </tr>\n       {/foreach}\n      {/foreach}\n     {/if}\n    </table>\n    {if $event.allow_selfcancelxfer }\n     <tr>\n      <td colspan=\"2\" {$valueStyle}>\n        {ts 1=$event.selfcancelxfer_time}You may transfer your registration to another participant or cancel your registration up to %1 hours before the event.{/ts} {if $totalAmount}{ts}Cancellations are not refundable.{/ts}{/if}<br />\n        {capture assign=selfService}{crmURL p=\'civicrm/event/selfsvcupdate\' q=\"reset=1&pid=`$participant.id`&{contact.checksum}\"  h=0 a=1 fe=1}{/capture}\n        <a href=\"{$selfService}\">{ts}Click here to transfer or cancel your registration.{/ts}</a>\n      </td>\n     </tr>\n    {/if}\n </table>\n</center>\n\n</body>\n</html>\n',1,834,0,1,0,NULL),(33,'Events - Receipt only','Receipt for {if $events_in_cart} Event Registration{/if} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{if $is_pay_later}\n  This is being sent to you as an acknowledgement that you have registered one or more members for the following workshop, event or purchase. Please note, however, that the status of your payment is pending, and the registration for this event will not be completed until your payment is received.\n{else}\n  This is being sent to you as a {if $is_refund}confirmation of refund{else}receipt of payment made{/if} for the following workshop, event registration or purchase.\n{/if}\n\n{if $is_pay_later}\n  {$pay_later_receipt}\n{/if}\n\n  Your order number is #{$transaction_id}. {if $line_items && !$is_refund} Information about the workshops will be sent separately to each participant.{/if}\n Here\'s a summary of your transaction placed on {$transaction_date|date_format:\"%D %I:%M %p %Z\"}:\n\n{if $billing_name}\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billing_name}\n\n{$billing_street_address}\n\n{$billing_city}, {$billing_state} {$billing_postal_code}\n\n{$email}\n{/if}\n\n{if $source}\n{$source}\n{/if}\n\n\n{foreach from=$line_items item=line_item}\n{$line_item.event->title} ({$line_item.event->start_date|date_format:\"%D\"})\n{if $line_item.event->is_show_location}\n  {$line_item.location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n{$line_item.event->start_date|date_format:\"%D %I:%M %p\"} - {$line_item.event->end_date|date_format:\"%I:%M %p\"}\n\n  Quantity: {$line_item.num_participants}\n\n{if $line_item.num_participants > 0}\n  {foreach from=$line_item.participants item=participant}\n    {$participant.display_name}\n  {/foreach}\n{/if}\n{if $line_item.num_waiting_participants > 0}\n  Waitlisted:\n    {foreach from=$line_item.waiting_participants item=participant}\n      {$participant.display_name}\n    {/foreach}\n{/if}\nCost: {$line_item.cost|crmMoney:$currency|string_format:\"%10s\"}\nTotal For This Event: {$line_item.amount|crmMoney:$currency|string_format:\"%10s\"}\n\n{/foreach}\n\n{if $discounts}\nSubtotal: {$sub_total|crmMoney:$currency|string_format:\"%10s\"}\n--------------------------------------\nDiscounts\n{foreach from=$discounts key=myId item=i}\n  {$i.title}: -{$i.amount|crmMoney:$currency|string_format:\"%10s\"}\n{/foreach}\n{/if}\n======================================\nTotal: {$total|crmMoney:$currency|string_format:\"%10s\"}\n\n{if $credit_card_type}\n===========================================================\n{ts}Payment Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date.M}/{$credit_card_exp_date.Y}\n{/if}\n\n  If you have questions about the status of your registration or purchase please feel free to contact us.\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n  <head>\n    <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n    <title></title>\n  </head>\n  <body>\n    {capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n    {capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n    {capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    {if $is_pay_later}\n      <p>\n        This is being sent to you as an acknowledgement that you have registered one or more members for the following workshop, event or purchase. Please note, however, that the status of your payment is pending, and the registration for this event will not be completed until your payment is received.\n      </p>\n    {else}\n      <p>\n        This is being sent to you as a {if $is_refund}confirmation of refund{else}receipt of payment made{/if} for the following workshop, event registration or purchase.\n      </p>\n    {/if}\n\n    {if $is_pay_later}\n      <p>{$pay_later_receipt}</p>\n    {/if}\n\n    <p>Your order number is #{$transaction_id}. {if $line_items && !$is_refund} Information about the workshops will be sent separately to each participant.{/if}\n  Here\'s a summary of your transaction placed on {$transaction_date|date_format:\"%D %I:%M %p %Z\"}:</p>\n\n{if $billing_name}\n  <table class=\"billing-info\">\n      <tr>\n    <th style=\"text-align: left;\">\n      {ts}Billing Name and Address{/ts}\n    </th>\n      </tr>\n      <tr>\n    <td>\n      {$billing_name}<br />\n      {$billing_street_address}<br />\n      {$billing_city}, {$billing_state} {$billing_postal_code}<br/>\n      <br/>\n      {$email}\n    </td>\n    </tr>\n    </table>\n{/if}\n{if $credit_card_type}\n  <p>&nbsp;</p>\n  <table class=\"billing-info\">\n      <tr>\n    <th style=\"text-align: left;\">\n      {ts}Credit Card Information{/ts}\n    </th>\n      </tr>\n      <tr>\n    <td>\n      {$credit_card_type}<br />\n      {$credit_card_number}<br />\n      {ts}Expires{/ts}: {$credit_card_exp_date.M}/{$credit_card_exp_date.Y}\n    </td>\n    </tr>\n    </table>\n{/if}\n{if $source}\n    <p>&nbsp;</p>\n    {$source}\n{/if}\n    <p>&nbsp;</p>\n    <table width=\"700\">\n      <thead>\n    <tr>\n{if $line_items}\n      <th style=\"text-align: left;\">\n      Event\n      </th>\n      <th style=\"text-align: left;\">\n      Participants\n      </th>\n{/if}\n      <th style=\"text-align: left;\">\n      Price\n      </th>\n      <th style=\"text-align: left;\">\n      Total\n      </th>\n    </tr>\n    </thead>\n      <tbody>\n  {foreach from=$line_items item=line_item}\n  <tr>\n    <td style=\"width: 220px\">\n      {$line_item.event->title} ({$line_item.event->start_date|date_format:\"%D\"})<br />\n      {if $line_item.event->is_show_location}\n        {$line_item.location.address.1.display|nl2br}\n      {/if}{*End of isShowLocation condition*}<br /><br />\n      {$line_item.event->start_date|date_format:\"%D %I:%M %p\"} - {$line_item.event->end_date|date_format:\"%I:%M %p\"}\n    </td>\n    <td style=\"width: 180px\">\n    {$line_item.num_participants}\n      {if $line_item.num_participants > 0}\n      <div class=\"participants\" style=\"padding-left: 10px;\">\n        {foreach from=$line_item.participants item=participant}\n        {$participant.display_name}<br />\n        {/foreach}\n      </div>\n      {/if}\n      {if $line_item.num_waiting_participants > 0}\n      Waitlisted:<br/>\n      <div class=\"participants\" style=\"padding-left: 10px;\">\n        {foreach from=$line_item.waiting_participants item=participant}\n        {$participant.display_name}<br />\n        {/foreach}\n      </div>\n      {/if}\n    </td>\n    <td style=\"width: 100px\">\n      {$line_item.cost|crmMoney:$currency|string_format:\"%10s\"}\n    </td>\n    <td style=\"width: 100px\">\n      &nbsp;{$line_item.amount|crmMoney:$currency|string_format:\"%10s\"}\n    </td>\n  </tr>\n  {/foreach}\n      </tbody>\n      <tfoot>\n  {if $discounts}\n  <tr>\n    <td>\n    </td>\n    <td>\n    </td>\n    <td>\n      Subtotal:\n    </td>\n    <td>\n      &nbsp;{$sub_total|crmMoney:$currency|string_format:\"%10s\"}\n    </td>\n  </tr>\n  {foreach from=$discounts key=myId item=i}\n  <tr>\n    <td>\n      {$i.title}\n    </td>\n    <td>\n    </td>\n    <td>\n    </td>\n    <td>\n      -{$i.amount}\n    </td>\n  </tr>\n  {/foreach}\n  {/if}\n  <tr>\n{if $line_items}\n    <td>\n    </td>\n    <td>\n    </td>\n{/if}\n    <td>\n      <strong>Total:</strong>\n    </td>\n    <td>\n      <strong>&nbsp;{$total|crmMoney:$currency|string_format:\"%10s\"}</strong>\n    </td>\n  </tr>\n      </tfoot>\n    </table>\n\n    If you have questions about the status of your registration or purchase please feel free to contact us.\n  </body>\n</html>\n',1,835,1,0,0,NULL),(34,'Events - Receipt only','Receipt for {if $events_in_cart} Event Registration{/if} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{if $is_pay_later}\n  This is being sent to you as an acknowledgement that you have registered one or more members for the following workshop, event or purchase. Please note, however, that the status of your payment is pending, and the registration for this event will not be completed until your payment is received.\n{else}\n  This is being sent to you as a {if $is_refund}confirmation of refund{else}receipt of payment made{/if} for the following workshop, event registration or purchase.\n{/if}\n\n{if $is_pay_later}\n  {$pay_later_receipt}\n{/if}\n\n  Your order number is #{$transaction_id}. {if $line_items && !$is_refund} Information about the workshops will be sent separately to each participant.{/if}\n Here\'s a summary of your transaction placed on {$transaction_date|date_format:\"%D %I:%M %p %Z\"}:\n\n{if $billing_name}\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billing_name}\n\n{$billing_street_address}\n\n{$billing_city}, {$billing_state} {$billing_postal_code}\n\n{$email}\n{/if}\n\n{if $source}\n{$source}\n{/if}\n\n\n{foreach from=$line_items item=line_item}\n{$line_item.event->title} ({$line_item.event->start_date|date_format:\"%D\"})\n{if $line_item.event->is_show_location}\n  {$line_item.location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n{$line_item.event->start_date|date_format:\"%D %I:%M %p\"} - {$line_item.event->end_date|date_format:\"%I:%M %p\"}\n\n  Quantity: {$line_item.num_participants}\n\n{if $line_item.num_participants > 0}\n  {foreach from=$line_item.participants item=participant}\n    {$participant.display_name}\n  {/foreach}\n{/if}\n{if $line_item.num_waiting_participants > 0}\n  Waitlisted:\n    {foreach from=$line_item.waiting_participants item=participant}\n      {$participant.display_name}\n    {/foreach}\n{/if}\nCost: {$line_item.cost|crmMoney:$currency|string_format:\"%10s\"}\nTotal For This Event: {$line_item.amount|crmMoney:$currency|string_format:\"%10s\"}\n\n{/foreach}\n\n{if $discounts}\nSubtotal: {$sub_total|crmMoney:$currency|string_format:\"%10s\"}\n--------------------------------------\nDiscounts\n{foreach from=$discounts key=myId item=i}\n  {$i.title}: -{$i.amount|crmMoney:$currency|string_format:\"%10s\"}\n{/foreach}\n{/if}\n======================================\nTotal: {$total|crmMoney:$currency|string_format:\"%10s\"}\n\n{if $credit_card_type}\n===========================================================\n{ts}Payment Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date.M}/{$credit_card_exp_date.Y}\n{/if}\n\n  If you have questions about the status of your registration or purchase please feel free to contact us.\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n  <head>\n    <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n    <title></title>\n  </head>\n  <body>\n    {capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n    {capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n    {capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    {if $is_pay_later}\n      <p>\n        This is being sent to you as an acknowledgement that you have registered one or more members for the following workshop, event or purchase. Please note, however, that the status of your payment is pending, and the registration for this event will not be completed until your payment is received.\n      </p>\n    {else}\n      <p>\n        This is being sent to you as a {if $is_refund}confirmation of refund{else}receipt of payment made{/if} for the following workshop, event registration or purchase.\n      </p>\n    {/if}\n\n    {if $is_pay_later}\n      <p>{$pay_later_receipt}</p>\n    {/if}\n\n    <p>Your order number is #{$transaction_id}. {if $line_items && !$is_refund} Information about the workshops will be sent separately to each participant.{/if}\n  Here\'s a summary of your transaction placed on {$transaction_date|date_format:\"%D %I:%M %p %Z\"}:</p>\n\n{if $billing_name}\n  <table class=\"billing-info\">\n      <tr>\n    <th style=\"text-align: left;\">\n      {ts}Billing Name and Address{/ts}\n    </th>\n      </tr>\n      <tr>\n    <td>\n      {$billing_name}<br />\n      {$billing_street_address}<br />\n      {$billing_city}, {$billing_state} {$billing_postal_code}<br/>\n      <br/>\n      {$email}\n    </td>\n    </tr>\n    </table>\n{/if}\n{if $credit_card_type}\n  <p>&nbsp;</p>\n  <table class=\"billing-info\">\n      <tr>\n    <th style=\"text-align: left;\">\n      {ts}Credit Card Information{/ts}\n    </th>\n      </tr>\n      <tr>\n    <td>\n      {$credit_card_type}<br />\n      {$credit_card_number}<br />\n      {ts}Expires{/ts}: {$credit_card_exp_date.M}/{$credit_card_exp_date.Y}\n    </td>\n    </tr>\n    </table>\n{/if}\n{if $source}\n    <p>&nbsp;</p>\n    {$source}\n{/if}\n    <p>&nbsp;</p>\n    <table width=\"700\">\n      <thead>\n    <tr>\n{if $line_items}\n      <th style=\"text-align: left;\">\n      Event\n      </th>\n      <th style=\"text-align: left;\">\n      Participants\n      </th>\n{/if}\n      <th style=\"text-align: left;\">\n      Price\n      </th>\n      <th style=\"text-align: left;\">\n      Total\n      </th>\n    </tr>\n    </thead>\n      <tbody>\n  {foreach from=$line_items item=line_item}\n  <tr>\n    <td style=\"width: 220px\">\n      {$line_item.event->title} ({$line_item.event->start_date|date_format:\"%D\"})<br />\n      {if $line_item.event->is_show_location}\n        {$line_item.location.address.1.display|nl2br}\n      {/if}{*End of isShowLocation condition*}<br /><br />\n      {$line_item.event->start_date|date_format:\"%D %I:%M %p\"} - {$line_item.event->end_date|date_format:\"%I:%M %p\"}\n    </td>\n    <td style=\"width: 180px\">\n    {$line_item.num_participants}\n      {if $line_item.num_participants > 0}\n      <div class=\"participants\" style=\"padding-left: 10px;\">\n        {foreach from=$line_item.participants item=participant}\n        {$participant.display_name}<br />\n        {/foreach}\n      </div>\n      {/if}\n      {if $line_item.num_waiting_participants > 0}\n      Waitlisted:<br/>\n      <div class=\"participants\" style=\"padding-left: 10px;\">\n        {foreach from=$line_item.waiting_participants item=participant}\n        {$participant.display_name}<br />\n        {/foreach}\n      </div>\n      {/if}\n    </td>\n    <td style=\"width: 100px\">\n      {$line_item.cost|crmMoney:$currency|string_format:\"%10s\"}\n    </td>\n    <td style=\"width: 100px\">\n      &nbsp;{$line_item.amount|crmMoney:$currency|string_format:\"%10s\"}\n    </td>\n  </tr>\n  {/foreach}\n      </tbody>\n      <tfoot>\n  {if $discounts}\n  <tr>\n    <td>\n    </td>\n    <td>\n    </td>\n    <td>\n      Subtotal:\n    </td>\n    <td>\n      &nbsp;{$sub_total|crmMoney:$currency|string_format:\"%10s\"}\n    </td>\n  </tr>\n  {foreach from=$discounts key=myId item=i}\n  <tr>\n    <td>\n      {$i.title}\n    </td>\n    <td>\n    </td>\n    <td>\n    </td>\n    <td>\n      -{$i.amount}\n    </td>\n  </tr>\n  {/foreach}\n  {/if}\n  <tr>\n{if $line_items}\n    <td>\n    </td>\n    <td>\n    </td>\n{/if}\n    <td>\n      <strong>Total:</strong>\n    </td>\n    <td>\n      <strong>&nbsp;{$total|crmMoney:$currency|string_format:\"%10s\"}</strong>\n    </td>\n  </tr>\n      </tfoot>\n    </table>\n\n    If you have questions about the status of your registration or purchase please feel free to contact us.\n  </body>\n</html>\n',1,835,0,1,0,NULL),(35,'Events - Registration Cancellation Notice','{ts 1=$event.event_title}Event Registration Cancelled for %1{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts}Your Event Registration has been cancelled.{/ts}\n\n\n===========================================================\n{ts}Event Information and Location{/ts}\n\n===========================================================\n{$event.event_title}\n{$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n\n{ts}Participant Role{/ts}: {$participant.role}\n\n{if $isShowLocation}\n{$event.location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n\n{if $event.location.phone.1.phone || $event.location.email.1.email}\n\n{ts}Event Contacts:{/ts}\n{foreach from=$event.location.phone item=phone}\n{if $phone.phone}\n\n{if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}: {$phone.phone}{/if}\n{/foreach}\n{foreach from=$event.location.email item=eventEmail}\n{if $eventEmail.email}\n\n{ts}Email{/ts}: {$eventEmail.email}{/if}{/foreach}\n{/if}\n\n{if $contact.email}\n\n===========================================================\n{ts}Registered Email{/ts}\n\n===========================================================\n{$contact.email}\n{/if}\n\n{if $register_date}\n{ts}Registration Date{/ts}: {$participant.register_date|crmDate}\n{/if}\n\n{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions.{/ts}\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts}Your Event Registration has been cancelled.{/ts}</p>\n   </td>\n  </tr>\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Event Information and Location{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td colspan=\"2\" {$valueStyle}>\n       {$event.event_title}<br />\n       {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Participant Role{/ts}:\n      </td>\n      <td {$valueStyle}>\n       {$participant.role}\n      </td>\n     </tr>\n\n     {if $isShowLocation}\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$event.location.address.1.display|nl2br}\n       </td>\n      </tr>\n     {/if}\n\n     {if $event.location.phone.1.phone || $event.location.email.1.email}\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n        {ts}Event Contacts:{/ts}\n       </td>\n      </tr>\n      {foreach from=$event.location.phone item=phone}\n       {if $phone.phone}\n        <tr>\n         <td {$labelStyle}>\n          {if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}\n         </td>\n         <td {$valueStyle}>\n          {$phone.phone}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n      {foreach from=$event.location.email item=eventEmail}\n       {if $eventEmail.email}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Email{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$eventEmail.email}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n     {if $contact.email}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Registered Email{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$contact.email}\n       </td>\n      </tr>\n     {/if}\n\n     {if $register_date}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Registration Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$participant.register_date|crmDate}\n       </td>\n      </tr>\n     {/if}\n\n    </table>\n   </td>\n  </tr>\n\n  <tr>\n   <td>\n    <p>{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions.{/ts}</p>\n   </td>\n  </tr>\n\n </table>\n</center>\n\n</body>\n</html>\n',1,836,1,0,0,NULL),(36,'Events - Registration Cancellation Notice','{ts 1=$event.event_title}Event Registration Cancelled for %1{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts}Your Event Registration has been cancelled.{/ts}\n\n\n===========================================================\n{ts}Event Information and Location{/ts}\n\n===========================================================\n{$event.event_title}\n{$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n\n{ts}Participant Role{/ts}: {$participant.role}\n\n{if $isShowLocation}\n{$event.location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n\n{if $event.location.phone.1.phone || $event.location.email.1.email}\n\n{ts}Event Contacts:{/ts}\n{foreach from=$event.location.phone item=phone}\n{if $phone.phone}\n\n{if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}: {$phone.phone}{/if}\n{/foreach}\n{foreach from=$event.location.email item=eventEmail}\n{if $eventEmail.email}\n\n{ts}Email{/ts}: {$eventEmail.email}{/if}{/foreach}\n{/if}\n\n{if $contact.email}\n\n===========================================================\n{ts}Registered Email{/ts}\n\n===========================================================\n{$contact.email}\n{/if}\n\n{if $register_date}\n{ts}Registration Date{/ts}: {$participant.register_date|crmDate}\n{/if}\n\n{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions.{/ts}\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts}Your Event Registration has been cancelled.{/ts}</p>\n   </td>\n  </tr>\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Event Information and Location{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td colspan=\"2\" {$valueStyle}>\n       {$event.event_title}<br />\n       {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Participant Role{/ts}:\n      </td>\n      <td {$valueStyle}>\n       {$participant.role}\n      </td>\n     </tr>\n\n     {if $isShowLocation}\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$event.location.address.1.display|nl2br}\n       </td>\n      </tr>\n     {/if}\n\n     {if $event.location.phone.1.phone || $event.location.email.1.email}\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n        {ts}Event Contacts:{/ts}\n       </td>\n      </tr>\n      {foreach from=$event.location.phone item=phone}\n       {if $phone.phone}\n        <tr>\n         <td {$labelStyle}>\n          {if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}\n         </td>\n         <td {$valueStyle}>\n          {$phone.phone}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n      {foreach from=$event.location.email item=eventEmail}\n       {if $eventEmail.email}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Email{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$eventEmail.email}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n     {if $contact.email}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Registered Email{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$contact.email}\n       </td>\n      </tr>\n     {/if}\n\n     {if $register_date}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Registration Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$participant.register_date|crmDate}\n       </td>\n      </tr>\n     {/if}\n\n    </table>\n   </td>\n  </tr>\n\n  <tr>\n   <td>\n    <p>{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions.{/ts}</p>\n   </td>\n  </tr>\n\n </table>\n</center>\n\n</body>\n</html>\n',1,836,0,1,0,NULL),(37,'Events - Registration Confirmation Invite','{ts 1=$event.event_title}Confirm your registration for %1{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts}This is an invitation to complete your registration that was initially waitlisted.{/ts}\n\n{if !$isAdditional and $participant.id}\n\n===========================================================\n{ts}Confirm Your Registration{/ts}\n\n===========================================================\n{capture assign=confirmUrl}{crmURL p=\'civicrm/event/confirm\' q=\"reset=1&participantId=`$participant.id`&cs=`$checksumValue`\" a=true h=0 fe=1}{/capture}\nClick this link to go to a web page where you can confirm your registration online:\n{$confirmUrl}\n{/if}\n{if $event.allow_selfcancelxfer }\n{ts 1=$event.selfcancelxfer_time}You may transfer your registration to another participant or cancel your registration up to %1 hours before the event.{/ts} {if $totalAmount}{ts}Cancellations are not refundable.{/ts}{/if}\n   {capture assign=selfService}{crmURL p=\'civicrm/event/selfsvcupdate\' q=\"reset=1&pid=`$participant.id`&{contact.checksum}\"  h=0 a=1 fe=1}{/capture}\n{ts}Transfer or cancel your registration:{/ts} {$selfService}\n{/if}\n===========================================================\n{ts}Event Information and Location{/ts}\n\n===========================================================\n{$event.event_title}\n{$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n{if $conference_sessions}\n\n\n{ts}Your schedule:{/ts}\n{assign var=\'group_by_day\' value=\'NA\'}\n{foreach from=$conference_sessions item=session}\n{if $session.start_date|date_format:\"%Y/%m/%d\" != $group_by_day|date_format:\"%Y/%m/%d\"}\n{assign var=\'group_by_day\' value=$session.start_date}\n\n{$group_by_day|date_format:\"%m/%d/%Y\"}\n\n\n{/if}\n{$session.start_date|crmDate:0:1}{if $session.end_date}-{$session.end_date|crmDate:0:1}{/if} {$session.title}\n{if $session.location}    {$session.location}{/if}\n{/foreach}\n{/if}\n\n\n{ts}Participant Role{/ts}: {$participant.role}\n\n{if $isShowLocation}\n{$event.location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n\n{if $event.location.phone.1.phone || $event.location.email.1.email}\n\n{ts}Event Contacts:{/ts}\n{foreach from=$event.location.phone item=phone}\n{if $phone.phone}\n\n{if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}: {$phone.phone}{/if}\n{/foreach}\n{foreach from=$event.location.email item=eventEmail}\n{if $eventEmail.email}\n\n{ts}Email{/ts}: {$eventEmail.email}{/if}{/foreach}\n{/if}\n\n{if $event.is_public}\n{capture assign=icalFeed}{crmURL p=\'civicrm/event/ical\' q=\"reset=1&id=`$event.id`\" h=0 a=1 fe=1}{/capture}\n{ts}Download iCalendar File:{/ts} {$icalFeed}\n{/if}\n\n{if $contact.email}\n\n===========================================================\n{ts}Registered Email{/ts}\n\n===========================================================\n{$contact.email}\n{/if}\n\n{if $register_date}\n{ts}Registration Date{/ts}: {$participant.register_date|crmDate}\n{/if}\n\n{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions.{/ts}\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts}This is an invitation to complete your registration that was initially waitlisted.{/ts}</p>\n   </td>\n  </tr>\n  {if !$isAdditional and $participant.id}\n   <tr>\n    <th {$headerStyle}>\n     {ts}Confirm Your Registration{/ts}\n    </th>\n   </tr>\n   <tr>\n    <td colspan=\"2\" {$valueStyle}>\n     {capture assign=confirmUrl}{crmURL p=\'civicrm/event/confirm\' q=\"reset=1&participantId=`$participant.id`&cs=`$checksumValue`\" a=true h=0 fe=1}{/capture}\n     <a href=\"{$confirmUrl}\">{ts}Click here to confirm and complete your registration{/ts}</a>\n    </td>\n   </tr>\n  {/if}\n  {if $event.allow_selfcancelxfer }\n  {ts}This event allows for{/ts}\n  {capture assign=selfService}{crmURL p=\'civicrm/event/selfsvcupdate\' q=\"reset=1&pid=`$participantID`&{contact.checksum}\" h=0 a=1 fe=1}{/capture}\n       <a href=\"{$selfService}\"> {ts}self service cancel or transfer{/ts}</a>\n  {/if}\n\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Event Information and Location{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td colspan=\"2\" {$valueStyle}>\n       {$event.event_title}<br />\n       {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n      </td>\n     </tr>\n     {if $conference_sessions}\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n  {ts}Your schedule:{/ts}\n       </td>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n  {assign var=\'group_by_day\' value=\'NA\'}\n  {foreach from=$conference_sessions item=session}\n   {if $session.start_date|date_format:\"%Y/%m/%d\" != $group_by_day|date_format:\"%Y/%m/%d\"}\n    {assign var=\'group_by_day\' value=$session.start_date}\n          <em>{$group_by_day|date_format:\"%m/%d/%Y\"}</em><br />\n   {/if}\n   {$session.start_date|crmDate:0:1}{if $session.end_date}-{$session.end_date|crmDate:0:1}{/if} {$session.title}<br />\n   {if $session.location}&nbsp;&nbsp;&nbsp;&nbsp;{$session.location}<br />{/if}\n  {/foreach}\n       </td>\n      </tr>\n     {/if}\n     <tr>\n      <td {$labelStyle}>\n       {ts}Participant Role{/ts}:\n      </td>\n      <td {$valueStyle}>\n       {$participant.role}\n      </td>\n     </tr>\n\n     {if $isShowLocation}\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$event.location.address.1.display|nl2br}\n       </td>\n      </tr>\n     {/if}\n\n     {if $event.location.phone.1.phone || $event.location.email.1.email}\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n        {ts}Event Contacts:{/ts}\n       </td>\n      </tr>\n      {foreach from=$event.location.phone item=phone}\n       {if $phone.phone}\n        <tr>\n         <td {$labelStyle}>\n          {if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}\n         </td>\n         <td {$valueStyle}>\n          {$phone.phone}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n      {foreach from=$event.location.email item=eventEmail}\n       {if $eventEmail.email}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Email{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$eventEmail.email}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n     {if $event.is_public}\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {capture assign=icalFeed}{crmURL p=\'civicrm/event/ical\' q=\"reset=1&id=`$event.id`\" h=0 a=1 fe=1}{/capture}\n        <a href=\"{$icalFeed}\">{ts}Download iCalendar File{/ts}</a>\n       </td>\n      </tr>\n     {/if}\n\n     {if $contact.email}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Registered Email{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$contact.email}\n       </td>\n      </tr>\n     {/if}\n\n     {if $register_date}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Registration Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$participant.register_date|crmDate}\n       </td>\n      </tr>\n     {/if}\n\n    </table>\n   </td>\n  </tr>\n  {if $event.allow_selfcancelxfer }\n   <tr>\n     <td colspan=\"2\" {$valueStyle}>\n       {ts 1=$event.selfcancelxfer_time}You may transfer your registration to another participant or cancel your registration up to %1 hours before the event.{/ts} {if $totalAmount}{ts}Cancellations are not refundable.{/ts}{/if}<br />\n         {capture assign=selfService}{crmURL p=\'civicrm/event/selfsvcupdate\' q=\"reset=1&pid=`$participant.id`&{contact.checksum}\"  h=0 a=1 fe=1}{/capture}\n       <a href=\"{$selfService}\">{ts}Click here to transfer or cancel your registration.{/ts}</a>\n     </td>\n   </tr>\n  {/if}\n  <tr>\n   <td colspan=\"2\" {$valueStyle}>\n    <p>{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions.{/ts}</p>\n   </td>\n  </tr>\n\n </table>\n</center>\n\n</body>\n</html>\n',1,837,1,0,0,NULL),(38,'Events - Registration Confirmation Invite','{ts 1=$event.event_title}Confirm your registration for %1{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts}This is an invitation to complete your registration that was initially waitlisted.{/ts}\n\n{if !$isAdditional and $participant.id}\n\n===========================================================\n{ts}Confirm Your Registration{/ts}\n\n===========================================================\n{capture assign=confirmUrl}{crmURL p=\'civicrm/event/confirm\' q=\"reset=1&participantId=`$participant.id`&cs=`$checksumValue`\" a=true h=0 fe=1}{/capture}\nClick this link to go to a web page where you can confirm your registration online:\n{$confirmUrl}\n{/if}\n{if $event.allow_selfcancelxfer }\n{ts 1=$event.selfcancelxfer_time}You may transfer your registration to another participant or cancel your registration up to %1 hours before the event.{/ts} {if $totalAmount}{ts}Cancellations are not refundable.{/ts}{/if}\n   {capture assign=selfService}{crmURL p=\'civicrm/event/selfsvcupdate\' q=\"reset=1&pid=`$participant.id`&{contact.checksum}\"  h=0 a=1 fe=1}{/capture}\n{ts}Transfer or cancel your registration:{/ts} {$selfService}\n{/if}\n===========================================================\n{ts}Event Information and Location{/ts}\n\n===========================================================\n{$event.event_title}\n{$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n{if $conference_sessions}\n\n\n{ts}Your schedule:{/ts}\n{assign var=\'group_by_day\' value=\'NA\'}\n{foreach from=$conference_sessions item=session}\n{if $session.start_date|date_format:\"%Y/%m/%d\" != $group_by_day|date_format:\"%Y/%m/%d\"}\n{assign var=\'group_by_day\' value=$session.start_date}\n\n{$group_by_day|date_format:\"%m/%d/%Y\"}\n\n\n{/if}\n{$session.start_date|crmDate:0:1}{if $session.end_date}-{$session.end_date|crmDate:0:1}{/if} {$session.title}\n{if $session.location}    {$session.location}{/if}\n{/foreach}\n{/if}\n\n\n{ts}Participant Role{/ts}: {$participant.role}\n\n{if $isShowLocation}\n{$event.location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n\n{if $event.location.phone.1.phone || $event.location.email.1.email}\n\n{ts}Event Contacts:{/ts}\n{foreach from=$event.location.phone item=phone}\n{if $phone.phone}\n\n{if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}: {$phone.phone}{/if}\n{/foreach}\n{foreach from=$event.location.email item=eventEmail}\n{if $eventEmail.email}\n\n{ts}Email{/ts}: {$eventEmail.email}{/if}{/foreach}\n{/if}\n\n{if $event.is_public}\n{capture assign=icalFeed}{crmURL p=\'civicrm/event/ical\' q=\"reset=1&id=`$event.id`\" h=0 a=1 fe=1}{/capture}\n{ts}Download iCalendar File:{/ts} {$icalFeed}\n{/if}\n\n{if $contact.email}\n\n===========================================================\n{ts}Registered Email{/ts}\n\n===========================================================\n{$contact.email}\n{/if}\n\n{if $register_date}\n{ts}Registration Date{/ts}: {$participant.register_date|crmDate}\n{/if}\n\n{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions.{/ts}\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts}This is an invitation to complete your registration that was initially waitlisted.{/ts}</p>\n   </td>\n  </tr>\n  {if !$isAdditional and $participant.id}\n   <tr>\n    <th {$headerStyle}>\n     {ts}Confirm Your Registration{/ts}\n    </th>\n   </tr>\n   <tr>\n    <td colspan=\"2\" {$valueStyle}>\n     {capture assign=confirmUrl}{crmURL p=\'civicrm/event/confirm\' q=\"reset=1&participantId=`$participant.id`&cs=`$checksumValue`\" a=true h=0 fe=1}{/capture}\n     <a href=\"{$confirmUrl}\">{ts}Click here to confirm and complete your registration{/ts}</a>\n    </td>\n   </tr>\n  {/if}\n  {if $event.allow_selfcancelxfer }\n  {ts}This event allows for{/ts}\n  {capture assign=selfService}{crmURL p=\'civicrm/event/selfsvcupdate\' q=\"reset=1&pid=`$participantID`&{contact.checksum}\" h=0 a=1 fe=1}{/capture}\n       <a href=\"{$selfService}\"> {ts}self service cancel or transfer{/ts}</a>\n  {/if}\n\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Event Information and Location{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td colspan=\"2\" {$valueStyle}>\n       {$event.event_title}<br />\n       {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n      </td>\n     </tr>\n     {if $conference_sessions}\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n  {ts}Your schedule:{/ts}\n       </td>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n  {assign var=\'group_by_day\' value=\'NA\'}\n  {foreach from=$conference_sessions item=session}\n   {if $session.start_date|date_format:\"%Y/%m/%d\" != $group_by_day|date_format:\"%Y/%m/%d\"}\n    {assign var=\'group_by_day\' value=$session.start_date}\n          <em>{$group_by_day|date_format:\"%m/%d/%Y\"}</em><br />\n   {/if}\n   {$session.start_date|crmDate:0:1}{if $session.end_date}-{$session.end_date|crmDate:0:1}{/if} {$session.title}<br />\n   {if $session.location}&nbsp;&nbsp;&nbsp;&nbsp;{$session.location}<br />{/if}\n  {/foreach}\n       </td>\n      </tr>\n     {/if}\n     <tr>\n      <td {$labelStyle}>\n       {ts}Participant Role{/ts}:\n      </td>\n      <td {$valueStyle}>\n       {$participant.role}\n      </td>\n     </tr>\n\n     {if $isShowLocation}\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$event.location.address.1.display|nl2br}\n       </td>\n      </tr>\n     {/if}\n\n     {if $event.location.phone.1.phone || $event.location.email.1.email}\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n        {ts}Event Contacts:{/ts}\n       </td>\n      </tr>\n      {foreach from=$event.location.phone item=phone}\n       {if $phone.phone}\n        <tr>\n         <td {$labelStyle}>\n          {if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}\n         </td>\n         <td {$valueStyle}>\n          {$phone.phone}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n      {foreach from=$event.location.email item=eventEmail}\n       {if $eventEmail.email}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Email{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$eventEmail.email}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n     {if $event.is_public}\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {capture assign=icalFeed}{crmURL p=\'civicrm/event/ical\' q=\"reset=1&id=`$event.id`\" h=0 a=1 fe=1}{/capture}\n        <a href=\"{$icalFeed}\">{ts}Download iCalendar File{/ts}</a>\n       </td>\n      </tr>\n     {/if}\n\n     {if $contact.email}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Registered Email{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$contact.email}\n       </td>\n      </tr>\n     {/if}\n\n     {if $register_date}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Registration Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$participant.register_date|crmDate}\n       </td>\n      </tr>\n     {/if}\n\n    </table>\n   </td>\n  </tr>\n  {if $event.allow_selfcancelxfer }\n   <tr>\n     <td colspan=\"2\" {$valueStyle}>\n       {ts 1=$event.selfcancelxfer_time}You may transfer your registration to another participant or cancel your registration up to %1 hours before the event.{/ts} {if $totalAmount}{ts}Cancellations are not refundable.{/ts}{/if}<br />\n         {capture assign=selfService}{crmURL p=\'civicrm/event/selfsvcupdate\' q=\"reset=1&pid=`$participant.id`&{contact.checksum}\"  h=0 a=1 fe=1}{/capture}\n       <a href=\"{$selfService}\">{ts}Click here to transfer or cancel your registration.{/ts}</a>\n     </td>\n   </tr>\n  {/if}\n  <tr>\n   <td colspan=\"2\" {$valueStyle}>\n    <p>{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions.{/ts}</p>\n   </td>\n  </tr>\n\n </table>\n</center>\n\n</body>\n</html>\n',1,837,0,1,0,NULL),(39,'Events - Pending Registration Expiration Notice','{ts 1=$event.event_title}Event registration has expired for %1{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$event.event_title}Your pending event registration for %1 has expired\nbecause you did not confirm your registration.{/ts}\n\n\n{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions\nor want to inquire about reinstating your registration for this event.{/ts}\n\n===========================================================\n{ts}Event Information and Location{/ts}\n\n===========================================================\n{$event.event_title}\n{$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n\n{ts}Participant Role{/ts}: {$participant.role}\n\n{if $isShowLocation}\n{$event.location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n\n{if $event.location.phone.1.phone || $event.location.email.1.email}\n\n{ts}Event Contacts:{/ts}\n{foreach from=$event.location.phone item=phone}\n{if $phone.phone}\n\n{if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}: {$phone.phone}{/if}\n{/foreach}\n{foreach from=$event.location.email item=eventEmail}\n{if $eventEmail.email}\n\n{ts}Email{/ts}: {$eventEmail.email}{/if}{/foreach}\n{/if}\n\n{if $contact.email}\n\n===========================================================\n{ts}Registered Email{/ts}\n\n===========================================================\n{$contact.email}\n{/if}\n\n{if $register_date}\n{ts}Registration Date{/ts}: {$participant.register_date|crmDate}\n{/if}\n\n{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions.{/ts}\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts 1=$event.event_title}Your pending event registration for %1 has expired\nbecause you did not confirm your registration.{/ts}</p>\n    <p>{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions\nor want to inquire about reinstating your registration for this event.{/ts}</p>\n   </td>\n  </tr>\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Event Information and Location{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td colspan=\"2\" {$valueStyle}>\n       {$event.event_title}<br />\n       {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Participant Role{/ts}:\n      </td>\n      <td {$valueStyle}>\n       {$participant.role}\n      </td>\n     </tr>\n\n     {if $isShowLocation}\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$event.location.address.1.display|nl2br}\n       </td>\n      </tr>\n     {/if}\n\n     {if $event.location.phone.1.phone || $event.location.email.1.email}\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n        {ts}Event Contacts:{/ts}\n       </td>\n      </tr>\n      {foreach from=$event.location.phone item=phone}\n       {if $phone.phone}\n        <tr>\n         <td {$labelStyle}>\n          {if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}\n         </td>\n         <td {$valueStyle}>\n          {$phone.phone}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n      {foreach from=$event.location.email item=eventEmail}\n       {if $eventEmail.email}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Email{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$eventEmail.email}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n     {if $contact.email}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Registered Email{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$contact.email}\n       </td>\n      </tr>\n     {/if}\n\n     {if $register_date}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Registration Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$participant.register_date|crmDate}\n       </td>\n      </tr>\n     {/if}\n\n    </table>\n   </td>\n  </tr>\n\n  <tr>\n   <td>\n    <p>{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions.{/ts}</p>\n   </td>\n  </tr>\n\n </table>\n</center>\n\n</body>\n</html>\n',1,838,1,0,0,NULL),(40,'Events - Pending Registration Expiration Notice','{ts 1=$event.event_title}Event registration has expired for %1{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$event.event_title}Your pending event registration for %1 has expired\nbecause you did not confirm your registration.{/ts}\n\n\n{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions\nor want to inquire about reinstating your registration for this event.{/ts}\n\n===========================================================\n{ts}Event Information and Location{/ts}\n\n===========================================================\n{$event.event_title}\n{$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n\n{ts}Participant Role{/ts}: {$participant.role}\n\n{if $isShowLocation}\n{$event.location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n\n{if $event.location.phone.1.phone || $event.location.email.1.email}\n\n{ts}Event Contacts:{/ts}\n{foreach from=$event.location.phone item=phone}\n{if $phone.phone}\n\n{if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}: {$phone.phone}{/if}\n{/foreach}\n{foreach from=$event.location.email item=eventEmail}\n{if $eventEmail.email}\n\n{ts}Email{/ts}: {$eventEmail.email}{/if}{/foreach}\n{/if}\n\n{if $contact.email}\n\n===========================================================\n{ts}Registered Email{/ts}\n\n===========================================================\n{$contact.email}\n{/if}\n\n{if $register_date}\n{ts}Registration Date{/ts}: {$participant.register_date|crmDate}\n{/if}\n\n{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions.{/ts}\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts 1=$event.event_title}Your pending event registration for %1 has expired\nbecause you did not confirm your registration.{/ts}</p>\n    <p>{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions\nor want to inquire about reinstating your registration for this event.{/ts}</p>\n   </td>\n  </tr>\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Event Information and Location{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td colspan=\"2\" {$valueStyle}>\n       {$event.event_title}<br />\n       {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Participant Role{/ts}:\n      </td>\n      <td {$valueStyle}>\n       {$participant.role}\n      </td>\n     </tr>\n\n     {if $isShowLocation}\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$event.location.address.1.display|nl2br}\n       </td>\n      </tr>\n     {/if}\n\n     {if $event.location.phone.1.phone || $event.location.email.1.email}\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n        {ts}Event Contacts:{/ts}\n       </td>\n      </tr>\n      {foreach from=$event.location.phone item=phone}\n       {if $phone.phone}\n        <tr>\n         <td {$labelStyle}>\n          {if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}\n         </td>\n         <td {$valueStyle}>\n          {$phone.phone}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n      {foreach from=$event.location.email item=eventEmail}\n       {if $eventEmail.email}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Email{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$eventEmail.email}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n     {if $contact.email}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Registered Email{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$contact.email}\n       </td>\n      </tr>\n     {/if}\n\n     {if $register_date}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Registration Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$participant.register_date|crmDate}\n       </td>\n      </tr>\n     {/if}\n\n    </table>\n   </td>\n  </tr>\n\n  <tr>\n   <td>\n    <p>{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions.{/ts}</p>\n   </td>\n  </tr>\n\n </table>\n</center>\n\n</body>\n</html>\n',1,838,0,1,0,NULL),(41,'Events - Registration Transferred Notice','{ts 1=$event.event_title}Event Registration Transferred for %1{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$to_participant}Your Event Registration has been transferred to %1.{/ts}\n\n===========================================================\n{ts}Event Information and Location{/ts}\n\n===========================================================\n{$event.event_title}\n{$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n\n{ts}Participant Role{/ts}: {$participant.role}\n\n{if $isShowLocation}\n{$event.location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n\n{if $event.location.phone.1.phone || $event.location.email.1.email}\n\n{ts}Event Contacts:{/ts}\n{foreach from=$event.location.phone item=phone}\n{if $phone.phone}\n\n{if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}: {$phone.phone}{/if}\n{/foreach}\n{foreach from=$event.location.email item=eventEmail}\n{if $eventEmail.email}\n\n{ts}Email{/ts}: {$eventEmail.email}{/if}{/foreach}\n{/if}\n\n{if $contact.email}\n\n===========================================================\n{ts}Registered Email{/ts}\n\n===========================================================\n{$contact.email}\n{/if}\n\n{if $register_date}\n{ts}Registration Date{/ts}: {$participant.register_date|crmDate}\n{/if}\n\n{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions.{/ts}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts 1=$to_participant}Your Event Registration has been Transferred to %1.{/ts}</p>\n   </td>\n  </tr>\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Event Information and Location{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td colspan=\"2\" {$valueStyle}>\n       {$event.event_title}<br />\n       {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Participant Role{/ts}:\n      </td>\n      <td {$valueStyle}>\n       {$participant.role}\n      </td>\n     </tr>\n\n     {if $isShowLocation}\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$event.location.address.1.display|nl2br}\n       </td>\n      </tr>\n     {/if}\n\n     {if $event.location.phone.1.phone || $event.location.email.1.email}\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n        {ts}Event Contacts:{/ts}\n       </td>\n      </tr>\n      {foreach from=$event.location.phone item=phone}\n       {if $phone.phone}\n        <tr>\n         <td {$labelStyle}>\n          {if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}\n         </td>\n         <td {$valueStyle}>\n          {$phone.phone}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n      {foreach from=$event.location.email item=eventEmail}\n       {if $eventEmail.email}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Email{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$eventEmail.email}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n     {if $contact.email}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Registered Email{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$contact.email}\n       </td>\n      </tr>\n     {/if}\n\n     {if $register_date}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Registration Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$participant.register_date|crmDate}\n       </td>\n      </tr>\n     {/if}\n\n    </table>\n   </td>\n  </tr>\n\n  <tr>\n   <td>\n    <p>{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions.{/ts}</p>\n   </td>\n  </tr>\n\n </table>\n</center>\n\n</body>\n</html>\n',1,839,1,0,0,NULL),(42,'Events - Registration Transferred Notice','{ts 1=$event.event_title}Event Registration Transferred for %1{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$to_participant}Your Event Registration has been transferred to %1.{/ts}\n\n===========================================================\n{ts}Event Information and Location{/ts}\n\n===========================================================\n{$event.event_title}\n{$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n\n{ts}Participant Role{/ts}: {$participant.role}\n\n{if $isShowLocation}\n{$event.location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n\n{if $event.location.phone.1.phone || $event.location.email.1.email}\n\n{ts}Event Contacts:{/ts}\n{foreach from=$event.location.phone item=phone}\n{if $phone.phone}\n\n{if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}: {$phone.phone}{/if}\n{/foreach}\n{foreach from=$event.location.email item=eventEmail}\n{if $eventEmail.email}\n\n{ts}Email{/ts}: {$eventEmail.email}{/if}{/foreach}\n{/if}\n\n{if $contact.email}\n\n===========================================================\n{ts}Registered Email{/ts}\n\n===========================================================\n{$contact.email}\n{/if}\n\n{if $register_date}\n{ts}Registration Date{/ts}: {$participant.register_date|crmDate}\n{/if}\n\n{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions.{/ts}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts 1=$to_participant}Your Event Registration has been Transferred to %1.{/ts}</p>\n   </td>\n  </tr>\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Event Information and Location{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td colspan=\"2\" {$valueStyle}>\n       {$event.event_title}<br />\n       {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|date_format:\"%Y%m%d\" == $event.event_start_date|date_format:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Participant Role{/ts}:\n      </td>\n      <td {$valueStyle}>\n       {$participant.role}\n      </td>\n     </tr>\n\n     {if $isShowLocation}\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$event.location.address.1.display|nl2br}\n       </td>\n      </tr>\n     {/if}\n\n     {if $event.location.phone.1.phone || $event.location.email.1.email}\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n        {ts}Event Contacts:{/ts}\n       </td>\n      </tr>\n      {foreach from=$event.location.phone item=phone}\n       {if $phone.phone}\n        <tr>\n         <td {$labelStyle}>\n          {if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}\n         </td>\n         <td {$valueStyle}>\n          {$phone.phone}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n      {foreach from=$event.location.email item=eventEmail}\n       {if $eventEmail.email}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Email{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$eventEmail.email}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n     {if $contact.email}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Registered Email{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$contact.email}\n       </td>\n      </tr>\n     {/if}\n\n     {if $register_date}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Registration Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$participant.register_date|crmDate}\n       </td>\n      </tr>\n     {/if}\n\n    </table>\n   </td>\n  </tr>\n\n  <tr>\n   <td>\n    <p>{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions.{/ts}</p>\n   </td>\n  </tr>\n\n </table>\n</center>\n\n</body>\n</html>\n',1,839,0,1,0,NULL),(43,'Tell-a-Friend Email','{ts 1=$senderContactName 2=$title}%1 wants you to know about %2{/ts}\n','{$senderMessage}\n\n{if $generalLink}{ts}For more information, visit:{/ts}\n>> {$generalLink}\n\n{/if}\n{if $contribute}{ts}To make a contribution, go to:{/ts}\n>> {$pageURL}\n\n{/if}\n{if $event}{ts}To find out more about this event, go to:{/ts}\n>> {$pageURL}\n{/if}\n\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    <p>{$senderMessage}</p>\n    {if $generalLink}\n     <p><a href=\"{$generalLink}\">{ts}More information{/ts}</a></p>\n    {/if}\n    {if $contribute}\n     <p><a href=\"{$pageURL}\">{ts}Make a contribution{/ts}</a></p>\n    {/if}\n    {if $event}\n     <p><a href=\"{$pageURL}\">{ts}Find out more about this event{/ts}</a></p>\n    {/if}\n   </td>\n  </tr>\n </table>\n</center>\n\n</body>\n</html>\n',1,840,1,0,0,NULL),(44,'Tell-a-Friend Email','{ts 1=$senderContactName 2=$title}%1 wants you to know about %2{/ts}\n','{$senderMessage}\n\n{if $generalLink}{ts}For more information, visit:{/ts}\n>> {$generalLink}\n\n{/if}\n{if $contribute}{ts}To make a contribution, go to:{/ts}\n>> {$pageURL}\n\n{/if}\n{if $event}{ts}To find out more about this event, go to:{/ts}\n>> {$pageURL}\n{/if}\n\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    <p>{$senderMessage}</p>\n    {if $generalLink}\n     <p><a href=\"{$generalLink}\">{ts}More information{/ts}</a></p>\n    {/if}\n    {if $contribute}\n     <p><a href=\"{$pageURL}\">{ts}Make a contribution{/ts}</a></p>\n    {/if}\n    {if $event}\n     <p><a href=\"{$pageURL}\">{ts}Find out more about this event{/ts}</a></p>\n    {/if}\n   </td>\n  </tr>\n </table>\n</center>\n\n</body>\n</html>\n',1,840,0,1,0,NULL),(45,'Memberships - Signup and Renewal Receipts (off-line)','{if $receiptType EQ \'membership signup\'}\n{ts}Membership Confirmation and Receipt{/ts}\n{elseif $receiptType EQ \'membership renewal\'}\n{ts}Membership Renewal Confirmation and Receipt{/ts}\n{/if} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{if $formValues.receipt_text_signup}\n{$formValues.receipt_text_signup}\n{elseif $formValues.receipt_text_renewal}\n{$formValues.receipt_text_renewal}\n{else}{ts}Thank you for this contribution.{/ts}{/if}\n\n{if !$lineItem}\n===========================================================\n{ts}Membership Information{/ts}\n\n===========================================================\n{ts}Membership Type{/ts}: {$membership_name}\n{/if}\n{if ! $cancelled}\n{if !$lineItem}\n{ts}Membership Start Date{/ts}: {$mem_start_date}\n{ts}Membership End Date{/ts}: {$mem_end_date}\n{/if}\n\n{if $formValues.total_amount OR $formValues.total_amount eq 0 }\n===========================================================\n{ts}Membership Fee{/ts}\n\n===========================================================\n{if $formValues.contributionType_name}\n{ts}Financial Type{/ts}: {$formValues.contributionType_name}\n{/if}\n{if $lineItem}\n{foreach from=$lineItem item=value key=priceset}\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_total}{ts}Fee{/ts}{/capture}\n{if $dataArray}\n{capture assign=ts_subtotal}{ts}Subtotal{/ts}{/capture}\n{capture assign=ts_taxRate}{ts}Tax Rate{/ts}{/capture}\n{capture assign=ts_taxAmount}{ts}Tax Amount{/ts}{/capture}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{/if}\n{capture assign=ts_start_date}{ts}Membership Start Date{/ts}{/capture}\n{capture assign=ts_end_date}{ts}Membership End Date{/ts}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_total|string_format:\"%10s\"} {if $dataArray} {$ts_subtotal|string_format:\"%10s\"} {$ts_taxRate|string_format:\"%10s\"} {$ts_taxAmount|string_format:\"%10s\"} {$ts_total|string_format:\"%10s\"} {/if} {$ts_start_date|string_format:\"%20s\"} {$ts_end_date|string_format:\"%20s\"}\n--------------------------------------------------------------------------------------------------\n\n{foreach from=$value item=line}\n{capture assign=ts_item}{if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description} {$line.description}{/if}{/capture}{$ts_item|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.line_total|crmMoney|string_format:\"%10s\"}  {if $dataArray} {$line.unit_price*$line.qty|crmMoney:$currency|string_format:\"%10s\"} {if $line.tax_rate != \"\" || $line.tax_amount != \"\"}  {$line.tax_rate|string_format:\"%.2f\"} %  {$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"}  {else}                  {/if}   {$line.line_total+$line.tax_amount|crmMoney|string_format:\"%10s\"} {/if} {$line.start_date|string_format:\"%20s\"} {$line.end_date|string_format:\"%20s\"}\n{/foreach}\n{/foreach}\n\n{if $dataArray}\n{ts}Amount before Tax{/ts}: {$formValues.total_amount-$totalTaxAmount|crmMoney:$currency}\n\n{foreach from=$dataArray item=value key=priceset}\n{if $priceset}\n{$taxTerm} {$priceset|string_format:\"%.2f\"} %: {$value|crmMoney:$currency}\n{elseif  $priceset == 0}\n{ts}No{/ts} {$taxTerm}: {$value|crmMoney:$currency}\n{/if}\n{/foreach}\n{/if}\n--------------------------------------------------------------------------------------------------\n{/if}\n\n{if isset($totalTaxAmount)}\n{ts}Total Tax Amount{/ts}: {$totalTaxAmount|crmMoney:$currency}\n{/if}\n\n{ts}Amount{/ts}: {$formValues.total_amount|crmMoney}\n{if $receive_date}\n{ts}Date Received{/ts}: {$receive_date|truncate:10:\'\'|crmDate}\n{/if}\n{if $formValues.paidBy}\n{ts}Paid By{/ts}: {$formValues.paidBy}\n{if $formValues.check_number}\n{ts}Check Number{/ts}: {$formValues.check_number}\n{/if}\n{/if}\n{/if}\n{/if}\n\n{if $isPrimary }\n{if $billingName}\n\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billingName}\n{$address}\n{/if}\n\n{if $credit_card_type}\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n{/if}\n\n{if $customValues}\n===========================================================\n{ts}Membership Options{/ts}\n\n===========================================================\n{foreach from=$customValues item=value key=customName}\n {$customName} : {$value}\n{/foreach}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    {if $formValues.receipt_text_signup}\n     <p>{$formValues.receipt_text_signup|htmlize}</p>\n    {elseif $formValues.receipt_text_renewal}\n     <p>{$formValues.receipt_text_renewal|htmlize}</p>\n    {else}\n     <p>{ts}Thank you for this contribution.{/ts}</p>\n    {/if}\n   </td>\n  </tr>\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     {if !$lineItem}\n     <tr>\n      <th {$headerStyle}>\n       {ts}Membership Information{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Membership Type{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$membership_name}\n      </td>\n     </tr>\n     {/if}\n     {if ! $cancelled}\n     {if !$lineItem}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Membership Start Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$mem_start_date}\n       </td>\n      </tr>\n      <tr>\n       <td {$labelStyle}>\n        {ts}Membership End Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$mem_end_date}\n       </td>\n      </tr>\n      {/if}\n      {if $formValues.total_amount OR $formValues.total_amount eq 0 }\n       <tr>\n        <th {$headerStyle}>\n         {ts}Membership Fee{/ts}\n        </th>\n       </tr>\n       {if $formValues.contributionType_name}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Financial Type{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$formValues.contributionType_name}\n         </td>\n        </tr>\n       {/if}\n\n       {if $lineItem}\n       {foreach from=$lineItem item=value key=priceset}\n         <tr>\n          <td colspan=\"2\" {$valueStyle}>\n           <table> {* FIXME: style this table so that it looks like the text version (justification, etc.) *}\n            <tr>\n             <th>{ts}Item{/ts}</th>\n             <th>{ts}Fee{/ts}</th>\n             {if $dataArray}\n              <th>{ts}SubTotal{/ts}</th>\n              <th>{ts}Tax Rate{/ts}</th>\n              <th>{ts}Tax Amount{/ts}</th>\n              <th>{ts}Total{/ts}</th>\n             {/if}\n       <th>{ts}Membership Start Date{/ts}</th>\n       <th>{ts}Membership End Date{/ts}</th>\n            </tr>\n            {foreach from=$value item=line}\n             <tr>\n              <td>\n        {if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description}<div>{$line.description|truncate:30:\"...\"}</div>{/if}\n              </td>\n              <td>\n               {$line.line_total|crmMoney}\n              </td>\n              {if $dataArray}\n               <td>\n                {$line.unit_price*$line.qty|crmMoney}\n               </td>\n               {if $line.tax_rate != \"\" || $line.tax_amount != \"\"}\n                <td>\n                 {$line.tax_rate|string_format:\"%.2f\"}%\n                </td>\n                <td>\n                 {$line.tax_amount|crmMoney}\n                </td>\n               {else}\n                <td></td>\n                <td></td>\n               {/if}\n               <td>\n                {$line.line_total+$line.tax_amount|crmMoney}\n               </td>\n              {/if}\n              <td>\n               {$line.start_date}\n              </td>\n        <td>\n               {$line.end_date}\n              </td>\n             </tr>\n            {/foreach}\n           </table>\n          </td>\n         </tr>\n       {/foreach}\n       {if $dataArray}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Amount Before Tax:{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$formValues.total_amount-$totalTaxAmount|crmMoney}\n         </td>\n        </tr>\n       {foreach from=$dataArray item=value key=priceset}\n        <tr>\n        {if $priceset}\n         <td>&nbsp;{$taxTerm} {$priceset|string_format:\"%.2f\"}%</td>\n         <td>&nbsp;{$value|crmMoney:$currency}</td>\n        {elseif  $priceset == 0}\n         <td>&nbsp;{ts}No{/ts} {$taxTerm}</td>\n         <td>&nbsp;{$value|crmMoney:$currency}</td>\n        {/if}\n        </tr>\n       {/foreach}\n      {/if}\n      {/if}\n      {if isset($totalTaxAmount)}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Total Tax Amount{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$totalTaxAmount|crmMoney:$currency}\n         </td>\n        </tr>\n       {/if}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$formValues.total_amount|crmMoney}\n        </td>\n       </tr>\n       {if $receive_date}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Date Received{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$receive_date|truncate:10:\'\'|crmDate}\n         </td>\n        </tr>\n       {/if}\n       {if $formValues.paidBy}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Paid By{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$formValues.paidBy}\n         </td>\n        </tr>\n        {if $formValues.check_number}\n         <tr>\n          <td {$labelStyle}>\n           {ts}Check Number{/ts}\n          </td>\n          <td {$valueStyle}>\n           {$formValues.check_number}\n          </td>\n         </tr>\n        {/if}\n       {/if}\n      {/if}\n     {/if}\n    </table>\n   </td>\n  </tr>\n\n  {if $isPrimary}\n   <tr>\n    <td>\n     <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n\n      {if $billingName}\n       <tr>\n        <th {$headerStyle}>\n         {ts}Billing Name and Address{/ts}\n        </th>\n       </tr>\n       <tr>\n        <td {$labelStyle}>\n         {$billingName}<br />\n         {$address}\n        </td>\n       </tr>\n      {/if}\n\n      {if $credit_card_type}\n       <tr>\n        <th {$headerStyle}>\n         {ts}Credit Card Information{/ts}\n        </th>\n       </tr>\n       <tr>\n        <td {$valueStyle}>\n         {$credit_card_type}<br />\n         {$credit_card_number}\n        </td>\n       </tr>\n       <tr>\n        <td {$labelStyle}>\n         {ts}Expires{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n        </td>\n       </tr>\n      {/if}\n\n     </table>\n    </td>\n   </tr>\n  {/if}\n\n  {if $customValues}\n   <tr>\n    <td>\n     <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n      <tr>\n       <th {$headerStyle}>\n        {ts}Membership Options{/ts}\n       </th>\n      </tr>\n      {foreach from=$customValues item=value key=customName}\n       <tr>\n        <td {$labelStyle}>\n         {$customName}\n        </td>\n        <td {$valueStyle}>\n         {$value}\n        </td>\n       </tr>\n      {/foreach}\n     </table>\n    </td>\n   </tr>\n  {/if}\n\n </table>\n</center>\n\n</body>\n</html>\n',1,841,1,0,0,NULL),(46,'Memberships - Signup and Renewal Receipts (off-line)','{if $receiptType EQ \'membership signup\'}\n{ts}Membership Confirmation and Receipt{/ts}\n{elseif $receiptType EQ \'membership renewal\'}\n{ts}Membership Renewal Confirmation and Receipt{/ts}\n{/if} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{if $formValues.receipt_text_signup}\n{$formValues.receipt_text_signup}\n{elseif $formValues.receipt_text_renewal}\n{$formValues.receipt_text_renewal}\n{else}{ts}Thank you for this contribution.{/ts}{/if}\n\n{if !$lineItem}\n===========================================================\n{ts}Membership Information{/ts}\n\n===========================================================\n{ts}Membership Type{/ts}: {$membership_name}\n{/if}\n{if ! $cancelled}\n{if !$lineItem}\n{ts}Membership Start Date{/ts}: {$mem_start_date}\n{ts}Membership End Date{/ts}: {$mem_end_date}\n{/if}\n\n{if $formValues.total_amount OR $formValues.total_amount eq 0 }\n===========================================================\n{ts}Membership Fee{/ts}\n\n===========================================================\n{if $formValues.contributionType_name}\n{ts}Financial Type{/ts}: {$formValues.contributionType_name}\n{/if}\n{if $lineItem}\n{foreach from=$lineItem item=value key=priceset}\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_total}{ts}Fee{/ts}{/capture}\n{if $dataArray}\n{capture assign=ts_subtotal}{ts}Subtotal{/ts}{/capture}\n{capture assign=ts_taxRate}{ts}Tax Rate{/ts}{/capture}\n{capture assign=ts_taxAmount}{ts}Tax Amount{/ts}{/capture}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{/if}\n{capture assign=ts_start_date}{ts}Membership Start Date{/ts}{/capture}\n{capture assign=ts_end_date}{ts}Membership End Date{/ts}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_total|string_format:\"%10s\"} {if $dataArray} {$ts_subtotal|string_format:\"%10s\"} {$ts_taxRate|string_format:\"%10s\"} {$ts_taxAmount|string_format:\"%10s\"} {$ts_total|string_format:\"%10s\"} {/if} {$ts_start_date|string_format:\"%20s\"} {$ts_end_date|string_format:\"%20s\"}\n--------------------------------------------------------------------------------------------------\n\n{foreach from=$value item=line}\n{capture assign=ts_item}{if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description} {$line.description}{/if}{/capture}{$ts_item|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.line_total|crmMoney|string_format:\"%10s\"}  {if $dataArray} {$line.unit_price*$line.qty|crmMoney:$currency|string_format:\"%10s\"} {if $line.tax_rate != \"\" || $line.tax_amount != \"\"}  {$line.tax_rate|string_format:\"%.2f\"} %  {$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"}  {else}                  {/if}   {$line.line_total+$line.tax_amount|crmMoney|string_format:\"%10s\"} {/if} {$line.start_date|string_format:\"%20s\"} {$line.end_date|string_format:\"%20s\"}\n{/foreach}\n{/foreach}\n\n{if $dataArray}\n{ts}Amount before Tax{/ts}: {$formValues.total_amount-$totalTaxAmount|crmMoney:$currency}\n\n{foreach from=$dataArray item=value key=priceset}\n{if $priceset}\n{$taxTerm} {$priceset|string_format:\"%.2f\"} %: {$value|crmMoney:$currency}\n{elseif  $priceset == 0}\n{ts}No{/ts} {$taxTerm}: {$value|crmMoney:$currency}\n{/if}\n{/foreach}\n{/if}\n--------------------------------------------------------------------------------------------------\n{/if}\n\n{if isset($totalTaxAmount)}\n{ts}Total Tax Amount{/ts}: {$totalTaxAmount|crmMoney:$currency}\n{/if}\n\n{ts}Amount{/ts}: {$formValues.total_amount|crmMoney}\n{if $receive_date}\n{ts}Date Received{/ts}: {$receive_date|truncate:10:\'\'|crmDate}\n{/if}\n{if $formValues.paidBy}\n{ts}Paid By{/ts}: {$formValues.paidBy}\n{if $formValues.check_number}\n{ts}Check Number{/ts}: {$formValues.check_number}\n{/if}\n{/if}\n{/if}\n{/if}\n\n{if $isPrimary }\n{if $billingName}\n\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billingName}\n{$address}\n{/if}\n\n{if $credit_card_type}\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n{/if}\n\n{if $customValues}\n===========================================================\n{ts}Membership Options{/ts}\n\n===========================================================\n{foreach from=$customValues item=value key=customName}\n {$customName} : {$value}\n{/foreach}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    {if $formValues.receipt_text_signup}\n     <p>{$formValues.receipt_text_signup|htmlize}</p>\n    {elseif $formValues.receipt_text_renewal}\n     <p>{$formValues.receipt_text_renewal|htmlize}</p>\n    {else}\n     <p>{ts}Thank you for this contribution.{/ts}</p>\n    {/if}\n   </td>\n  </tr>\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     {if !$lineItem}\n     <tr>\n      <th {$headerStyle}>\n       {ts}Membership Information{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Membership Type{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$membership_name}\n      </td>\n     </tr>\n     {/if}\n     {if ! $cancelled}\n     {if !$lineItem}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Membership Start Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$mem_start_date}\n       </td>\n      </tr>\n      <tr>\n       <td {$labelStyle}>\n        {ts}Membership End Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$mem_end_date}\n       </td>\n      </tr>\n      {/if}\n      {if $formValues.total_amount OR $formValues.total_amount eq 0 }\n       <tr>\n        <th {$headerStyle}>\n         {ts}Membership Fee{/ts}\n        </th>\n       </tr>\n       {if $formValues.contributionType_name}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Financial Type{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$formValues.contributionType_name}\n         </td>\n        </tr>\n       {/if}\n\n       {if $lineItem}\n       {foreach from=$lineItem item=value key=priceset}\n         <tr>\n          <td colspan=\"2\" {$valueStyle}>\n           <table> {* FIXME: style this table so that it looks like the text version (justification, etc.) *}\n            <tr>\n             <th>{ts}Item{/ts}</th>\n             <th>{ts}Fee{/ts}</th>\n             {if $dataArray}\n              <th>{ts}SubTotal{/ts}</th>\n              <th>{ts}Tax Rate{/ts}</th>\n              <th>{ts}Tax Amount{/ts}</th>\n              <th>{ts}Total{/ts}</th>\n             {/if}\n       <th>{ts}Membership Start Date{/ts}</th>\n       <th>{ts}Membership End Date{/ts}</th>\n            </tr>\n            {foreach from=$value item=line}\n             <tr>\n              <td>\n        {if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description}<div>{$line.description|truncate:30:\"...\"}</div>{/if}\n              </td>\n              <td>\n               {$line.line_total|crmMoney}\n              </td>\n              {if $dataArray}\n               <td>\n                {$line.unit_price*$line.qty|crmMoney}\n               </td>\n               {if $line.tax_rate != \"\" || $line.tax_amount != \"\"}\n                <td>\n                 {$line.tax_rate|string_format:\"%.2f\"}%\n                </td>\n                <td>\n                 {$line.tax_amount|crmMoney}\n                </td>\n               {else}\n                <td></td>\n                <td></td>\n               {/if}\n               <td>\n                {$line.line_total+$line.tax_amount|crmMoney}\n               </td>\n              {/if}\n              <td>\n               {$line.start_date}\n              </td>\n        <td>\n               {$line.end_date}\n              </td>\n             </tr>\n            {/foreach}\n           </table>\n          </td>\n         </tr>\n       {/foreach}\n       {if $dataArray}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Amount Before Tax:{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$formValues.total_amount-$totalTaxAmount|crmMoney}\n         </td>\n        </tr>\n       {foreach from=$dataArray item=value key=priceset}\n        <tr>\n        {if $priceset}\n         <td>&nbsp;{$taxTerm} {$priceset|string_format:\"%.2f\"}%</td>\n         <td>&nbsp;{$value|crmMoney:$currency}</td>\n        {elseif  $priceset == 0}\n         <td>&nbsp;{ts}No{/ts} {$taxTerm}</td>\n         <td>&nbsp;{$value|crmMoney:$currency}</td>\n        {/if}\n        </tr>\n       {/foreach}\n      {/if}\n      {/if}\n      {if isset($totalTaxAmount)}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Total Tax Amount{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$totalTaxAmount|crmMoney:$currency}\n         </td>\n        </tr>\n       {/if}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$formValues.total_amount|crmMoney}\n        </td>\n       </tr>\n       {if $receive_date}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Date Received{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$receive_date|truncate:10:\'\'|crmDate}\n         </td>\n        </tr>\n       {/if}\n       {if $formValues.paidBy}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Paid By{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$formValues.paidBy}\n         </td>\n        </tr>\n        {if $formValues.check_number}\n         <tr>\n          <td {$labelStyle}>\n           {ts}Check Number{/ts}\n          </td>\n          <td {$valueStyle}>\n           {$formValues.check_number}\n          </td>\n         </tr>\n        {/if}\n       {/if}\n      {/if}\n     {/if}\n    </table>\n   </td>\n  </tr>\n\n  {if $isPrimary}\n   <tr>\n    <td>\n     <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n\n      {if $billingName}\n       <tr>\n        <th {$headerStyle}>\n         {ts}Billing Name and Address{/ts}\n        </th>\n       </tr>\n       <tr>\n        <td {$labelStyle}>\n         {$billingName}<br />\n         {$address}\n        </td>\n       </tr>\n      {/if}\n\n      {if $credit_card_type}\n       <tr>\n        <th {$headerStyle}>\n         {ts}Credit Card Information{/ts}\n        </th>\n       </tr>\n       <tr>\n        <td {$valueStyle}>\n         {$credit_card_type}<br />\n         {$credit_card_number}\n        </td>\n       </tr>\n       <tr>\n        <td {$labelStyle}>\n         {ts}Expires{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n        </td>\n       </tr>\n      {/if}\n\n     </table>\n    </td>\n   </tr>\n  {/if}\n\n  {if $customValues}\n   <tr>\n    <td>\n     <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n      <tr>\n       <th {$headerStyle}>\n        {ts}Membership Options{/ts}\n       </th>\n      </tr>\n      {foreach from=$customValues item=value key=customName}\n       <tr>\n        <td {$labelStyle}>\n         {$customName}\n        </td>\n        <td {$valueStyle}>\n         {$value}\n        </td>\n       </tr>\n      {/foreach}\n     </table>\n    </td>\n   </tr>\n  {/if}\n\n </table>\n</center>\n\n</body>\n</html>\n',1,841,0,1,0,NULL),(47,'Memberships - Receipt (on-line)','{if $is_pay_later}{ts}Invoice{/ts}{else}{ts}Receipt{/ts}{/if} - {$title} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n{if $receipt_text}\n{$receipt_text}\n{/if}\n{if $is_pay_later}\n\n===========================================================\n{$pay_later_receipt}\n===========================================================\n{/if}\n\n{if $membership_assign && !$useForMember}\n===========================================================\n{ts}Membership Information{/ts}\n\n===========================================================\n{ts}Membership Type{/ts}: {$membership_name}\n{if $mem_start_date}{ts}Membership Start Date{/ts}: {$mem_start_date|crmDate}\n{/if}\n{if $mem_end_date}{ts}Membership End Date{/ts}: {$mem_end_date|crmDate}\n{/if}\n\n{/if}\n{if $amount}\n===========================================================\n{ts}Membership Fee{/ts}\n\n===========================================================\n{if !$useForMember && $membership_amount && $is_quick_config}\n{ts 1=$membership_name}%1 Membership{/ts}: {$membership_amount|crmMoney}\n{if $amount && !$is_separate_payment }\n{ts}Contribution Amount{/ts}: {$amount|crmMoney}\n-------------------------------------------\n{ts}Total{/ts}: {$amount+$membership_amount|crmMoney}\n{/if}\n{elseif !$useForMember && $lineItem and $priceSetID & !$is_quick_config}\n{foreach from=$lineItem item=value key=priceset}\n---------------------------------------------------------\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_qty}{ts}Qty{/ts}{/capture}\n{capture assign=ts_each}{ts}Each{/ts}{/capture}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_qty|string_format:\"%5s\"} {$ts_each|string_format:\"%10s\"} {$ts_total|string_format:\"%10s\"}\n----------------------------------------------------------\n{foreach from=$value item=line}\n{$line.description|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.qty|string_format:\"%5s\"} {$line.unit_price|crmMoney|string_format:\"%10s\"} {$line.line_total|crmMoney|string_format:\"%10s\"}\n{/foreach}\n{/foreach}\n\n{ts}Total Amount{/ts}: {$amount|crmMoney}\n{else}\n{if $useForMember && $lineItem && !$is_quick_config}\n{foreach from=$lineItem item=value key=priceset}\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_total}{ts}Fee{/ts}{/capture}\n{if $dataArray}\n{capture assign=ts_subtotal}{ts}Subtotal{/ts}{/capture}\n{capture assign=ts_taxRate}{ts}Tax Rate{/ts}{/capture}\n{capture assign=ts_taxAmount}{ts}Tax Amount{/ts}{/capture}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{/if}\n{capture assign=ts_start_date}{ts}Membership Start Date{/ts}{/capture}\n{capture assign=ts_end_date}{ts}Membership End Date{/ts}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_total|string_format:\"%10s\"} {if $dataArray} {$ts_subtotal|string_format:\"%10s\"} {$ts_taxRate|string_format:\"%10s\"} {$ts_taxAmount|string_format:\"%10s\"} {$ts_total|string_format:\"%10s\"} {/if} {$ts_start_date|string_format:\"%20s\"} {$ts_end_date|string_format:\"%20s\"}\n--------------------------------------------------------------------------------------------------\n\n{foreach from=$value item=line}\n{capture assign=ts_item}{if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description} {$line.description}{/if}{/capture}{$ts_item|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.line_total|crmMoney|string_format:\"%10s\"}  {if $dataArray} {$line.unit_price*$line.qty|crmMoney:$currency|string_format:\"%10s\"} {if $line.tax_rate != \"\" || $line.tax_amount != \"\"}  {$line.tax_rate|string_format:\"%.2f\"} %  {$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"} {else}                  {/if}   {$line.line_total+$line.tax_amount|crmMoney|string_format:\"%10s\"} {/if} {$line.start_date|string_format:\"%20s\"} {$line.end_date|string_format:\"%20s\"}\n{/foreach}\n{/foreach}\n\n{if $dataArray}\n{ts}Amount before Tax{/ts}: {$amount-$totalTaxAmount|crmMoney:$currency}\n\n{foreach from=$dataArray item=value key=priceset}\n{if $priceset || $priceset == 0}\n{$taxTerm} {$priceset|string_format:\"%.2f\"}%: {$value|crmMoney:$currency}\n{else}\n{ts}No{/ts} {$taxTerm}: {$value|crmMoney:$currency}\n{/if}\n{/foreach}\n{/if}\n--------------------------------------------------------------------------------------------------\n{/if}\n\n{if $totalTaxAmount}\n{ts}Total Tax Amount{/ts}: {$totalTaxAmount|crmMoney:$currency}\n{/if}\n\n{ts}Amount{/ts}: {$amount|crmMoney} {if $amount_level } - {$amount_level} {/if}\n{/if}\n{elseif $membership_amount}\n===========================================================\n{ts}Membership Fee{/ts}\n\n===========================================================\n{ts 1=$membership_name}%1 Membership{/ts}: {$membership_amount|crmMoney}\n{/if}\n\n{if $receive_date}\n\n{ts}Date{/ts}: {$receive_date|crmDate}\n{/if}\n{if $is_monetary and $trxn_id}\n{ts}Transaction #{/ts}: {$trxn_id}\n\n{/if}\n{if $membership_trx_id}\n{ts}Membership Transaction #{/ts}: {$membership_trx_id}\n\n{/if}\n{if $is_recur}\n{ts}This membership will be renewed automatically.{/ts}\n{if $cancelSubscriptionUrl}\n\n{ts 1=$cancelSubscriptionUrl}You can cancel the auto-renewal option by visiting this web page: %1.{/ts}\n\n{/if}\n\n{if $updateSubscriptionBillingUrl}\n\n{ts 1=$updateSubscriptionBillingUrl}You can update billing details for this automatically renewed membership by <a href=\"%1\">visiting this web page</a>.{/ts}\n{/if}\n{/if}\n\n{if $honor_block_is_active }\n===========================================================\n{$soft_credit_type}\n===========================================================\n{foreach from=$honoreeProfile item=value key=label}\n{$label}: {$value}\n{/foreach}\n\n{/if}\n{if $pcpBlock}\n===========================================================\n{ts}Personal Campaign Page{/ts}\n\n===========================================================\n{ts}Display In Honor Roll{/ts}: {if $pcp_display_in_roll}{ts}Yes{/ts}{else}{ts}No{/ts}{/if}\n\n{if $pcp_roll_nickname}{ts}Nickname{/ts}: {$pcp_roll_nickname}{/if}\n\n{if $pcp_personal_note}{ts}Personal Note{/ts}: {$pcp_personal_note}{/if}\n\n{/if}\n{if $onBehalfProfile}\n===========================================================\n{ts}On Behalf Of{/ts}\n\n===========================================================\n{foreach from=$onBehalfProfile item=onBehalfValue key=onBehalfName}\n{$onBehalfName}: {$onBehalfValue}\n{/foreach}\n{/if}\n\n{if $billingName}\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billingName}\n{$address}\n\n{$email}\n{elseif $email}\n===========================================================\n{ts}Registered Email{/ts}\n\n===========================================================\n{$email}\n{/if} {* End billingName or email *}\n{if $credit_card_type}\n\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n\n{if $selectPremium }\n===========================================================\n{ts}Premium Information{/ts}\n\n===========================================================\n{$product_name}\n{if $option}\n{ts}Option{/ts}: {$option}\n{/if}\n{if $sku}\n{ts}SKU{/ts}: {$sku}\n{/if}\n{if $start_date}\n{ts}Start Date{/ts}: {$start_date|crmDate}\n{/if}\n{if $end_date}\n{ts}End Date{/ts}: {$end_date|crmDate}\n{/if}\n{if $contact_email OR $contact_phone}\n\n{ts}For information about this premium, contact:{/ts}\n\n{if $contact_email}\n  {$contact_email}\n{/if}\n{if $contact_phone}\n  {$contact_phone}\n{/if}\n{/if}\n{if $is_deductible AND $price}\n\n{ts 1=$price|crmMoney}The value of this premium is %1. This may affect the amount of the tax deduction you can claim. Consult your tax advisor for more information.{/ts}{/if}\n{/if}\n\n{if $customPre}\n===========================================================\n{$customPre_grouptitle}\n\n===========================================================\n{foreach from=$customPre item=customValue key=customName}\n{if ( $trackingFields and ! in_array( $customName, $trackingFields ) ) or ! $trackingFields}\n {$customName}: {$customValue}\n{/if}\n{/foreach}\n{/if}\n\n\n{if $customPost}\n===========================================================\n{$customPost_grouptitle}\n\n===========================================================\n{foreach from=$customPost item=customValue key=customName}\n{if ( $trackingFields and ! in_array( $customName, $trackingFields ) ) or ! $trackingFields}\n {$customName}: {$customValue}\n{/if}\n{/foreach}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n     {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    {if $receipt_text}\n     <p>{$receipt_text|htmlize}</p>\n    {/if}\n\n    {if $is_pay_later}\n     <p>{$pay_later_receipt}</p> {* FIXME: this might be text rather than HTML *}\n    {/if}\n\n   </td>\n  </tr>\n  </table>\n  <table style=\"width:100%; max-width:500px; border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse;\">\n\n     {if $membership_assign && !$useForMember}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Membership Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td {$labelStyle}>\n        {ts}Membership Type{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$membership_name}\n       </td>\n      </tr>\n      {if $mem_start_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Membership Start Date{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$mem_start_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n      {if $mem_end_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Membership End Date{/ts}\n        </td>\n        <td {$valueStyle}>\n          {$mem_end_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n     {/if}\n\n\n     {if $amount}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Membership Fee{/ts}\n       </th>\n      </tr>\n\n      {if !$useForMember and $membership_amount and $is_quick_config}\n\n       <tr>\n        <td {$labelStyle}>\n         {ts 1=$membership_name}%1 Membership{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$membership_amount|crmMoney}\n        </td>\n       </tr>\n       {if $amount && !$is_separate_payment }\n         <tr>\n          <td {$labelStyle}>\n           {ts}Contribution Amount{/ts}\n          </td>\n          <td {$valueStyle}>\n           {$amount|crmMoney}\n          </td>\n         </tr>\n         <tr>\n           <td {$labelStyle}>\n           {ts}Total{/ts}\n            </td>\n            <td {$valueStyle}>\n            {$amount+$membership_amount|crmMoney}\n           </td>\n         </tr>\n       {/if}\n\n      {elseif !$useForMember && $lineItem and $priceSetID and !$is_quick_config}\n\n       {foreach from=$lineItem item=value key=priceset}\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          <table> {* FIXME: style this table so that it looks like the text version (justification, etc.) *}\n           <tr>\n            <th>{ts}Item{/ts}</th>\n            <th>{ts}Qty{/ts}</th>\n            <th>{ts}Each{/ts}</th>\n            <th>{ts}Total{/ts}</th>\n           </tr>\n           {foreach from=$value item=line}\n            <tr>\n             <td>\n              {$line.description|truncate:30:\"...\"}\n             </td>\n             <td>\n              {$line.qty}\n             </td>\n             <td>\n              {$line.unit_price|crmMoney}\n             </td>\n             <td>\n              {$line.line_total|crmMoney}\n             </td>\n            </tr>\n           {/foreach}\n          </table>\n         </td>\n        </tr>\n       {/foreach}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Total Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$amount|crmMoney}\n        </td>\n       </tr>\n\n      {else}\n       {if $useForMember && $lineItem and !$is_quick_config}\n       {foreach from=$lineItem item=value key=priceset}\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          <table> {* FIXME: style this table so that it looks like the text version (justification, etc.) *}\n           <tr>\n            <th>{ts}Item{/ts}</th>\n            <th>{ts}Fee{/ts}</th>\n            {if $dataArray}\n              <th>{ts}SubTotal{/ts}</th>\n              <th>{ts}Tax Rate{/ts}</th>\n              <th>{ts}Tax Amount{/ts}</th>\n              <th>{ts}Total{/ts}</th>\n            {/if}\n      <th>{ts}Membership Start Date{/ts}</th>\n      <th>{ts}Membership End Date{/ts}</th>\n           </tr>\n           {foreach from=$value item=line}\n            <tr>\n             <td>\n             {if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description}<div>{$line.description|truncate:30:\"...\"}</div>{/if}\n             </td>\n             <td>\n              {$line.line_total|crmMoney}\n             </td>\n             {if $dataArray}\n              <td>\n               {$line.unit_price*$line.qty|crmMoney}\n              </td>\n              {if $line.tax_rate != \"\" || $line.tax_amount != \"\"}\n               <td>\n                {$line.tax_rate|string_format:\"%.2f\"}%\n               </td>\n               <td>\n                {$line.tax_amount|crmMoney}\n               </td>\n              {else}\n               <td></td>\n               <td></td>\n              {/if}\n              <td>\n               {$line.line_total+$line.tax_amount|crmMoney}\n              </td>\n             {/if}\n             <td>\n              {$line.start_date}\n             </td>\n       <td>\n              {$line.end_date}\n             </td>\n            </tr>\n           {/foreach}\n          </table>\n         </td>\n        </tr>\n       {/foreach}\n       {if $dataArray}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Amount Before Tax:{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$amount-$totalTaxAmount|crmMoney}\n         </td>\n        </tr>\n        {foreach from=$dataArray item=value key=priceset}\n         <tr>\n         {if $priceset || $priceset == 0}\n           <td>&nbsp;{$taxTerm} {$priceset|string_format:\"%.2f\"}%</td>\n           <td>&nbsp;{$value|crmMoney:$currency}</td>\n         {else}\n           <td>&nbsp;{ts}NO{/ts} {$taxTerm}</td>\n           <td>&nbsp;{$value|crmMoney:$currency}</td>\n         {/if}\n         </tr>\n        {/foreach}\n       {/if}\n       {/if}\n       {if $totalTaxAmount}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Total Tax Amount{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$totalTaxAmount|crmMoney:$currency}\n         </td>\n        </tr>\n       {/if}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$amount|crmMoney} {if $amount_level} - {$amount_level}{/if}\n        </td>\n       </tr>\n\n      {/if}\n\n\n     {elseif $membership_amount}\n\n\n      <tr>\n       <th {$headerStyle}>\n        {ts}Membership Fee{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td {$labelStyle}>\n        {ts 1=$membership_name}%1 Membership{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$membership_amount|crmMoney}\n       </td>\n      </tr>\n\n\n     {/if}\n\n     {if $receive_date}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$receive_date|crmDate}\n       </td>\n      </tr>\n     {/if}\n\n     {if $is_monetary and $trxn_id}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Transaction #{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$trxn_id}\n       </td>\n      </tr>\n     {/if}\n\n     {if $membership_trx_id}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Membership Transaction #{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$membership_trx_id}\n       </td>\n      </tr>\n     {/if}\n     {if $is_recur}\n       <tr>\n        <td colspan=\"2\" {$labelStyle}>\n         {ts}This membership will be renewed automatically.{/ts}\n         {if $cancelSubscriptionUrl}\n           {ts 1=$cancelSubscriptionUrl}You can cancel the auto-renewal option by <a href=\"%1\">visiting this web page</a>.{/ts}\n         {/if}\n        </td>\n       </tr>\n       {if $updateSubscriptionBillingUrl}\n         <tr>\n          <td colspan=\"2\" {$labelStyle}>\n           {ts 1=$updateSubscriptionBillingUrl}You can update billing details for this automatically renewed membership by <a href=\"%1\">visiting this web page</a>.{/ts}\n          </td>\n         </tr>\n       {/if}\n     {/if}\n\n     {if $honor_block_is_active}\n      <tr>\n       <th {$headerStyle}>\n        {$soft_credit_type}\n       </th>\n      </tr>\n      {foreach from=$honoreeProfile item=value key=label}\n        <tr>\n         <td {$labelStyle}>\n          {$label}\n         </td>\n         <td {$valueStyle}>\n          {$value}\n         </td>\n        </tr>\n      {/foreach}\n     {/if}\n\n     {if $pcpBlock}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Personal Campaign Page{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td {$labelStyle}>\n        {ts}Display In Honor Roll{/ts}\n       </td>\n       <td {$valueStyle}>\n        {if $pcp_display_in_roll}{ts}Yes{/ts}{else}{ts}No{/ts}{/if}\n       </td>\n      </tr>\n      {if $pcp_roll_nickname}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Nickname{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$pcp_roll_nickname}\n        </td>\n       </tr>\n      {/if}\n      {if $pcp_personal_note}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Personal Note{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$pcp_personal_note}\n        </td>\n       </tr>\n      {/if}\n     {/if}\n\n     {if $onBehalfProfile}\n      <tr>\n       <th {$headerStyle}>\n        {$onBehalfProfile_grouptitle}\n       </th>\n      </tr>\n      {foreach from=$onBehalfProfile item=onBehalfValue key=onBehalfName}\n        <tr>\n         <td {$labelStyle}>\n          {$onBehalfName}\n         </td>\n         <td {$valueStyle}>\n          {$onBehalfValue}\n         </td>\n        </tr>\n      {/foreach}\n     {/if}\n\n     {if $billingName}\n       <tr>\n         <th {$headerStyle}>\n           {ts}Billing Name and Address{/ts}\n         </th>\n      </tr>\n      <tr>\n        <td colspan=\"2\" {$valueStyle}>\n          {$billingName}<br />\n          {$address|nl2br}<br />\n          {$email}\n        </td>\n      </tr>\n    {elseif $email}\n      <tr>\n        <th {$headerStyle}>\n          {ts}Registered Email{/ts}\n        </th>\n      </tr>\n      <tr>\n        <td colspan=\"2\" {$valueStyle}>\n          {$email}\n        </td>\n      </tr>\n    {/if}\n\n     {if $credit_card_type}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Credit Card Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$credit_card_type}<br />\n        {$credit_card_number}<br />\n        {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}<br />\n       </td>\n      </tr>\n     {/if}\n\n     {if $selectPremium}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Premium Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n        {$product_name}\n       </td>\n      </tr>\n      {if $option}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Option{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$option}\n        </td>\n       </tr>\n      {/if}\n      {if $sku}\n       <tr>\n        <td {$labelStyle}>\n         {ts}SKU{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$sku}\n        </td>\n       </tr>\n      {/if}\n      {if $start_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Start Date{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$start_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n      {if $end_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}End Date{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$end_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n      {if $contact_email OR $contact_phone}\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         <p>{ts}For information about this premium, contact:{/ts}</p>\n         {if $contact_email}\n          <p>{$contact_email}</p>\n         {/if}\n         {if $contact_phone}\n          <p>{$contact_phone}</p>\n         {/if}\n        </td>\n       </tr>\n      {/if}\n      {if $is_deductible AND $price}\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          <p>{ts 1=$price|crmMoney}The value of this premium is %1. This may affect the amount of the tax deduction you can claim. Consult your tax advisor for more information.{/ts}</p>\n         </td>\n        </tr>\n      {/if}\n     {/if}\n\n     {if $customPre}\n      <tr>\n       <th {$headerStyle}>\n        {$customPre_grouptitle}\n       </th>\n      </tr>\n      {foreach from=$customPre item=customValue key=customName}\n       {if ($trackingFields and ! in_array($customName, $trackingFields)) or ! $trackingFields}\n        <tr>\n         <td {$labelStyle}>\n          {$customName}\n         </td>\n         <td {$valueStyle}>\n          {$customValue}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n     {if $customPost}\n      <tr>\n       <th {$headerStyle}>\n        {$customPost_grouptitle}\n       </th>\n      </tr>\n      {foreach from=$customPost item=customValue key=customName}\n       {if ($trackingFields and ! in_array($customName, $trackingFields)) or ! $trackingFields}\n        <tr>\n         <td {$labelStyle}>\n          {$customName}\n         </td>\n         <td {$valueStyle}>\n          {$customValue}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n  </table>\n</center>\n\n</body>\n</html>\n',1,842,1,0,0,NULL),(48,'Memberships - Receipt (on-line)','{if $is_pay_later}{ts}Invoice{/ts}{else}{ts}Receipt{/ts}{/if} - {$title} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n{if $receipt_text}\n{$receipt_text}\n{/if}\n{if $is_pay_later}\n\n===========================================================\n{$pay_later_receipt}\n===========================================================\n{/if}\n\n{if $membership_assign && !$useForMember}\n===========================================================\n{ts}Membership Information{/ts}\n\n===========================================================\n{ts}Membership Type{/ts}: {$membership_name}\n{if $mem_start_date}{ts}Membership Start Date{/ts}: {$mem_start_date|crmDate}\n{/if}\n{if $mem_end_date}{ts}Membership End Date{/ts}: {$mem_end_date|crmDate}\n{/if}\n\n{/if}\n{if $amount}\n===========================================================\n{ts}Membership Fee{/ts}\n\n===========================================================\n{if !$useForMember && $membership_amount && $is_quick_config}\n{ts 1=$membership_name}%1 Membership{/ts}: {$membership_amount|crmMoney}\n{if $amount && !$is_separate_payment }\n{ts}Contribution Amount{/ts}: {$amount|crmMoney}\n-------------------------------------------\n{ts}Total{/ts}: {$amount+$membership_amount|crmMoney}\n{/if}\n{elseif !$useForMember && $lineItem and $priceSetID & !$is_quick_config}\n{foreach from=$lineItem item=value key=priceset}\n---------------------------------------------------------\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_qty}{ts}Qty{/ts}{/capture}\n{capture assign=ts_each}{ts}Each{/ts}{/capture}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_qty|string_format:\"%5s\"} {$ts_each|string_format:\"%10s\"} {$ts_total|string_format:\"%10s\"}\n----------------------------------------------------------\n{foreach from=$value item=line}\n{$line.description|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.qty|string_format:\"%5s\"} {$line.unit_price|crmMoney|string_format:\"%10s\"} {$line.line_total|crmMoney|string_format:\"%10s\"}\n{/foreach}\n{/foreach}\n\n{ts}Total Amount{/ts}: {$amount|crmMoney}\n{else}\n{if $useForMember && $lineItem && !$is_quick_config}\n{foreach from=$lineItem item=value key=priceset}\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_total}{ts}Fee{/ts}{/capture}\n{if $dataArray}\n{capture assign=ts_subtotal}{ts}Subtotal{/ts}{/capture}\n{capture assign=ts_taxRate}{ts}Tax Rate{/ts}{/capture}\n{capture assign=ts_taxAmount}{ts}Tax Amount{/ts}{/capture}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{/if}\n{capture assign=ts_start_date}{ts}Membership Start Date{/ts}{/capture}\n{capture assign=ts_end_date}{ts}Membership End Date{/ts}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_total|string_format:\"%10s\"} {if $dataArray} {$ts_subtotal|string_format:\"%10s\"} {$ts_taxRate|string_format:\"%10s\"} {$ts_taxAmount|string_format:\"%10s\"} {$ts_total|string_format:\"%10s\"} {/if} {$ts_start_date|string_format:\"%20s\"} {$ts_end_date|string_format:\"%20s\"}\n--------------------------------------------------------------------------------------------------\n\n{foreach from=$value item=line}\n{capture assign=ts_item}{if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description} {$line.description}{/if}{/capture}{$ts_item|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.line_total|crmMoney|string_format:\"%10s\"}  {if $dataArray} {$line.unit_price*$line.qty|crmMoney:$currency|string_format:\"%10s\"} {if $line.tax_rate != \"\" || $line.tax_amount != \"\"}  {$line.tax_rate|string_format:\"%.2f\"} %  {$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"} {else}                  {/if}   {$line.line_total+$line.tax_amount|crmMoney|string_format:\"%10s\"} {/if} {$line.start_date|string_format:\"%20s\"} {$line.end_date|string_format:\"%20s\"}\n{/foreach}\n{/foreach}\n\n{if $dataArray}\n{ts}Amount before Tax{/ts}: {$amount-$totalTaxAmount|crmMoney:$currency}\n\n{foreach from=$dataArray item=value key=priceset}\n{if $priceset || $priceset == 0}\n{$taxTerm} {$priceset|string_format:\"%.2f\"}%: {$value|crmMoney:$currency}\n{else}\n{ts}No{/ts} {$taxTerm}: {$value|crmMoney:$currency}\n{/if}\n{/foreach}\n{/if}\n--------------------------------------------------------------------------------------------------\n{/if}\n\n{if $totalTaxAmount}\n{ts}Total Tax Amount{/ts}: {$totalTaxAmount|crmMoney:$currency}\n{/if}\n\n{ts}Amount{/ts}: {$amount|crmMoney} {if $amount_level } - {$amount_level} {/if}\n{/if}\n{elseif $membership_amount}\n===========================================================\n{ts}Membership Fee{/ts}\n\n===========================================================\n{ts 1=$membership_name}%1 Membership{/ts}: {$membership_amount|crmMoney}\n{/if}\n\n{if $receive_date}\n\n{ts}Date{/ts}: {$receive_date|crmDate}\n{/if}\n{if $is_monetary and $trxn_id}\n{ts}Transaction #{/ts}: {$trxn_id}\n\n{/if}\n{if $membership_trx_id}\n{ts}Membership Transaction #{/ts}: {$membership_trx_id}\n\n{/if}\n{if $is_recur}\n{ts}This membership will be renewed automatically.{/ts}\n{if $cancelSubscriptionUrl}\n\n{ts 1=$cancelSubscriptionUrl}You can cancel the auto-renewal option by visiting this web page: %1.{/ts}\n\n{/if}\n\n{if $updateSubscriptionBillingUrl}\n\n{ts 1=$updateSubscriptionBillingUrl}You can update billing details for this automatically renewed membership by <a href=\"%1\">visiting this web page</a>.{/ts}\n{/if}\n{/if}\n\n{if $honor_block_is_active }\n===========================================================\n{$soft_credit_type}\n===========================================================\n{foreach from=$honoreeProfile item=value key=label}\n{$label}: {$value}\n{/foreach}\n\n{/if}\n{if $pcpBlock}\n===========================================================\n{ts}Personal Campaign Page{/ts}\n\n===========================================================\n{ts}Display In Honor Roll{/ts}: {if $pcp_display_in_roll}{ts}Yes{/ts}{else}{ts}No{/ts}{/if}\n\n{if $pcp_roll_nickname}{ts}Nickname{/ts}: {$pcp_roll_nickname}{/if}\n\n{if $pcp_personal_note}{ts}Personal Note{/ts}: {$pcp_personal_note}{/if}\n\n{/if}\n{if $onBehalfProfile}\n===========================================================\n{ts}On Behalf Of{/ts}\n\n===========================================================\n{foreach from=$onBehalfProfile item=onBehalfValue key=onBehalfName}\n{$onBehalfName}: {$onBehalfValue}\n{/foreach}\n{/if}\n\n{if $billingName}\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billingName}\n{$address}\n\n{$email}\n{elseif $email}\n===========================================================\n{ts}Registered Email{/ts}\n\n===========================================================\n{$email}\n{/if} {* End billingName or email *}\n{if $credit_card_type}\n\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n\n{if $selectPremium }\n===========================================================\n{ts}Premium Information{/ts}\n\n===========================================================\n{$product_name}\n{if $option}\n{ts}Option{/ts}: {$option}\n{/if}\n{if $sku}\n{ts}SKU{/ts}: {$sku}\n{/if}\n{if $start_date}\n{ts}Start Date{/ts}: {$start_date|crmDate}\n{/if}\n{if $end_date}\n{ts}End Date{/ts}: {$end_date|crmDate}\n{/if}\n{if $contact_email OR $contact_phone}\n\n{ts}For information about this premium, contact:{/ts}\n\n{if $contact_email}\n  {$contact_email}\n{/if}\n{if $contact_phone}\n  {$contact_phone}\n{/if}\n{/if}\n{if $is_deductible AND $price}\n\n{ts 1=$price|crmMoney}The value of this premium is %1. This may affect the amount of the tax deduction you can claim. Consult your tax advisor for more information.{/ts}{/if}\n{/if}\n\n{if $customPre}\n===========================================================\n{$customPre_grouptitle}\n\n===========================================================\n{foreach from=$customPre item=customValue key=customName}\n{if ( $trackingFields and ! in_array( $customName, $trackingFields ) ) or ! $trackingFields}\n {$customName}: {$customValue}\n{/if}\n{/foreach}\n{/if}\n\n\n{if $customPost}\n===========================================================\n{$customPost_grouptitle}\n\n===========================================================\n{foreach from=$customPost item=customValue key=customName}\n{if ( $trackingFields and ! in_array( $customName, $trackingFields ) ) or ! $trackingFields}\n {$customName}: {$customValue}\n{/if}\n{/foreach}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n     {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    {if $receipt_text}\n     <p>{$receipt_text|htmlize}</p>\n    {/if}\n\n    {if $is_pay_later}\n     <p>{$pay_later_receipt}</p> {* FIXME: this might be text rather than HTML *}\n    {/if}\n\n   </td>\n  </tr>\n  </table>\n  <table style=\"width:100%; max-width:500px; border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse;\">\n\n     {if $membership_assign && !$useForMember}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Membership Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td {$labelStyle}>\n        {ts}Membership Type{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$membership_name}\n       </td>\n      </tr>\n      {if $mem_start_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Membership Start Date{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$mem_start_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n      {if $mem_end_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Membership End Date{/ts}\n        </td>\n        <td {$valueStyle}>\n          {$mem_end_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n     {/if}\n\n\n     {if $amount}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Membership Fee{/ts}\n       </th>\n      </tr>\n\n      {if !$useForMember and $membership_amount and $is_quick_config}\n\n       <tr>\n        <td {$labelStyle}>\n         {ts 1=$membership_name}%1 Membership{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$membership_amount|crmMoney}\n        </td>\n       </tr>\n       {if $amount && !$is_separate_payment }\n         <tr>\n          <td {$labelStyle}>\n           {ts}Contribution Amount{/ts}\n          </td>\n          <td {$valueStyle}>\n           {$amount|crmMoney}\n          </td>\n         </tr>\n         <tr>\n           <td {$labelStyle}>\n           {ts}Total{/ts}\n            </td>\n            <td {$valueStyle}>\n            {$amount+$membership_amount|crmMoney}\n           </td>\n         </tr>\n       {/if}\n\n      {elseif !$useForMember && $lineItem and $priceSetID and !$is_quick_config}\n\n       {foreach from=$lineItem item=value key=priceset}\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          <table> {* FIXME: style this table so that it looks like the text version (justification, etc.) *}\n           <tr>\n            <th>{ts}Item{/ts}</th>\n            <th>{ts}Qty{/ts}</th>\n            <th>{ts}Each{/ts}</th>\n            <th>{ts}Total{/ts}</th>\n           </tr>\n           {foreach from=$value item=line}\n            <tr>\n             <td>\n              {$line.description|truncate:30:\"...\"}\n             </td>\n             <td>\n              {$line.qty}\n             </td>\n             <td>\n              {$line.unit_price|crmMoney}\n             </td>\n             <td>\n              {$line.line_total|crmMoney}\n             </td>\n            </tr>\n           {/foreach}\n          </table>\n         </td>\n        </tr>\n       {/foreach}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Total Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$amount|crmMoney}\n        </td>\n       </tr>\n\n      {else}\n       {if $useForMember && $lineItem and !$is_quick_config}\n       {foreach from=$lineItem item=value key=priceset}\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          <table> {* FIXME: style this table so that it looks like the text version (justification, etc.) *}\n           <tr>\n            <th>{ts}Item{/ts}</th>\n            <th>{ts}Fee{/ts}</th>\n            {if $dataArray}\n              <th>{ts}SubTotal{/ts}</th>\n              <th>{ts}Tax Rate{/ts}</th>\n              <th>{ts}Tax Amount{/ts}</th>\n              <th>{ts}Total{/ts}</th>\n            {/if}\n      <th>{ts}Membership Start Date{/ts}</th>\n      <th>{ts}Membership End Date{/ts}</th>\n           </tr>\n           {foreach from=$value item=line}\n            <tr>\n             <td>\n             {if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description}<div>{$line.description|truncate:30:\"...\"}</div>{/if}\n             </td>\n             <td>\n              {$line.line_total|crmMoney}\n             </td>\n             {if $dataArray}\n              <td>\n               {$line.unit_price*$line.qty|crmMoney}\n              </td>\n              {if $line.tax_rate != \"\" || $line.tax_amount != \"\"}\n               <td>\n                {$line.tax_rate|string_format:\"%.2f\"}%\n               </td>\n               <td>\n                {$line.tax_amount|crmMoney}\n               </td>\n              {else}\n               <td></td>\n               <td></td>\n              {/if}\n              <td>\n               {$line.line_total+$line.tax_amount|crmMoney}\n              </td>\n             {/if}\n             <td>\n              {$line.start_date}\n             </td>\n       <td>\n              {$line.end_date}\n             </td>\n            </tr>\n           {/foreach}\n          </table>\n         </td>\n        </tr>\n       {/foreach}\n       {if $dataArray}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Amount Before Tax:{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$amount-$totalTaxAmount|crmMoney}\n         </td>\n        </tr>\n        {foreach from=$dataArray item=value key=priceset}\n         <tr>\n         {if $priceset || $priceset == 0}\n           <td>&nbsp;{$taxTerm} {$priceset|string_format:\"%.2f\"}%</td>\n           <td>&nbsp;{$value|crmMoney:$currency}</td>\n         {else}\n           <td>&nbsp;{ts}NO{/ts} {$taxTerm}</td>\n           <td>&nbsp;{$value|crmMoney:$currency}</td>\n         {/if}\n         </tr>\n        {/foreach}\n       {/if}\n       {/if}\n       {if $totalTaxAmount}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Total Tax Amount{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$totalTaxAmount|crmMoney:$currency}\n         </td>\n        </tr>\n       {/if}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$amount|crmMoney} {if $amount_level} - {$amount_level}{/if}\n        </td>\n       </tr>\n\n      {/if}\n\n\n     {elseif $membership_amount}\n\n\n      <tr>\n       <th {$headerStyle}>\n        {ts}Membership Fee{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td {$labelStyle}>\n        {ts 1=$membership_name}%1 Membership{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$membership_amount|crmMoney}\n       </td>\n      </tr>\n\n\n     {/if}\n\n     {if $receive_date}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$receive_date|crmDate}\n       </td>\n      </tr>\n     {/if}\n\n     {if $is_monetary and $trxn_id}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Transaction #{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$trxn_id}\n       </td>\n      </tr>\n     {/if}\n\n     {if $membership_trx_id}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Membership Transaction #{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$membership_trx_id}\n       </td>\n      </tr>\n     {/if}\n     {if $is_recur}\n       <tr>\n        <td colspan=\"2\" {$labelStyle}>\n         {ts}This membership will be renewed automatically.{/ts}\n         {if $cancelSubscriptionUrl}\n           {ts 1=$cancelSubscriptionUrl}You can cancel the auto-renewal option by <a href=\"%1\">visiting this web page</a>.{/ts}\n         {/if}\n        </td>\n       </tr>\n       {if $updateSubscriptionBillingUrl}\n         <tr>\n          <td colspan=\"2\" {$labelStyle}>\n           {ts 1=$updateSubscriptionBillingUrl}You can update billing details for this automatically renewed membership by <a href=\"%1\">visiting this web page</a>.{/ts}\n          </td>\n         </tr>\n       {/if}\n     {/if}\n\n     {if $honor_block_is_active}\n      <tr>\n       <th {$headerStyle}>\n        {$soft_credit_type}\n       </th>\n      </tr>\n      {foreach from=$honoreeProfile item=value key=label}\n        <tr>\n         <td {$labelStyle}>\n          {$label}\n         </td>\n         <td {$valueStyle}>\n          {$value}\n         </td>\n        </tr>\n      {/foreach}\n     {/if}\n\n     {if $pcpBlock}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Personal Campaign Page{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td {$labelStyle}>\n        {ts}Display In Honor Roll{/ts}\n       </td>\n       <td {$valueStyle}>\n        {if $pcp_display_in_roll}{ts}Yes{/ts}{else}{ts}No{/ts}{/if}\n       </td>\n      </tr>\n      {if $pcp_roll_nickname}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Nickname{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$pcp_roll_nickname}\n        </td>\n       </tr>\n      {/if}\n      {if $pcp_personal_note}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Personal Note{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$pcp_personal_note}\n        </td>\n       </tr>\n      {/if}\n     {/if}\n\n     {if $onBehalfProfile}\n      <tr>\n       <th {$headerStyle}>\n        {$onBehalfProfile_grouptitle}\n       </th>\n      </tr>\n      {foreach from=$onBehalfProfile item=onBehalfValue key=onBehalfName}\n        <tr>\n         <td {$labelStyle}>\n          {$onBehalfName}\n         </td>\n         <td {$valueStyle}>\n          {$onBehalfValue}\n         </td>\n        </tr>\n      {/foreach}\n     {/if}\n\n     {if $billingName}\n       <tr>\n         <th {$headerStyle}>\n           {ts}Billing Name and Address{/ts}\n         </th>\n      </tr>\n      <tr>\n        <td colspan=\"2\" {$valueStyle}>\n          {$billingName}<br />\n          {$address|nl2br}<br />\n          {$email}\n        </td>\n      </tr>\n    {elseif $email}\n      <tr>\n        <th {$headerStyle}>\n          {ts}Registered Email{/ts}\n        </th>\n      </tr>\n      <tr>\n        <td colspan=\"2\" {$valueStyle}>\n          {$email}\n        </td>\n      </tr>\n    {/if}\n\n     {if $credit_card_type}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Credit Card Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$credit_card_type}<br />\n        {$credit_card_number}<br />\n        {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}<br />\n       </td>\n      </tr>\n     {/if}\n\n     {if $selectPremium}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Premium Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n        {$product_name}\n       </td>\n      </tr>\n      {if $option}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Option{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$option}\n        </td>\n       </tr>\n      {/if}\n      {if $sku}\n       <tr>\n        <td {$labelStyle}>\n         {ts}SKU{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$sku}\n        </td>\n       </tr>\n      {/if}\n      {if $start_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Start Date{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$start_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n      {if $end_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}End Date{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$end_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n      {if $contact_email OR $contact_phone}\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         <p>{ts}For information about this premium, contact:{/ts}</p>\n         {if $contact_email}\n          <p>{$contact_email}</p>\n         {/if}\n         {if $contact_phone}\n          <p>{$contact_phone}</p>\n         {/if}\n        </td>\n       </tr>\n      {/if}\n      {if $is_deductible AND $price}\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          <p>{ts 1=$price|crmMoney}The value of this premium is %1. This may affect the amount of the tax deduction you can claim. Consult your tax advisor for more information.{/ts}</p>\n         </td>\n        </tr>\n      {/if}\n     {/if}\n\n     {if $customPre}\n      <tr>\n       <th {$headerStyle}>\n        {$customPre_grouptitle}\n       </th>\n      </tr>\n      {foreach from=$customPre item=customValue key=customName}\n       {if ($trackingFields and ! in_array($customName, $trackingFields)) or ! $trackingFields}\n        <tr>\n         <td {$labelStyle}>\n          {$customName}\n         </td>\n         <td {$valueStyle}>\n          {$customValue}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n     {if $customPost}\n      <tr>\n       <th {$headerStyle}>\n        {$customPost_grouptitle}\n       </th>\n      </tr>\n      {foreach from=$customPost item=customValue key=customName}\n       {if ($trackingFields and ! in_array($customName, $trackingFields)) or ! $trackingFields}\n        <tr>\n         <td {$labelStyle}>\n          {$customName}\n         </td>\n         <td {$valueStyle}>\n          {$customValue}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n  </table>\n</center>\n\n</body>\n</html>\n',1,842,0,1,0,NULL),(49,'Memberships - Auto-renew Cancellation Notification','{ts}Autorenew Membership Cancellation Notification{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$membershipType}The automatic renewal of your %1 membership has been cancelled as requested. This does not affect the status of your membership - you will receive a separate notification when your membership is up for renewal.{/ts}\n\n===========================================================\n{ts}Membership Information{/ts}\n\n===========================================================\n{ts}Membership Status{/ts}: {$membership_status}\n{if $mem_start_date}{ts}Membership Start Date{/ts}: {$mem_start_date|crmDate}\n{/if}\n{if $mem_end_date}{ts}Membership End Date{/ts}: {$mem_end_date|crmDate}\n{/if}\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts 1=$membershipType}The automatic renewal of your %1 membership has been cancelled as requested. This does not affect the status of your membership - you will receive a separate notification when your membership is up for renewal.{/ts}</p>\n\n   </td>\n  </tr>\n </table>\n <table style=\"width:100%; max-width:500px; border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse;\">\n\n      <tr>\n       <th {$headerStyle}>\n        {ts}Membership Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td {$labelStyle}>\n        {ts}Membership Status{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$membership_status}\n       </td>\n      </tr>\n      {if $mem_start_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Membership Start Date{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$mem_start_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n      {if $mem_end_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Membership End Date{/ts}\n        </td>\n        <td {$valueStyle}>\n          {$mem_end_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n\n </table>\n</center>\n\n</body>\n</html>\n',1,843,1,0,0,NULL),(50,'Memberships - Auto-renew Cancellation Notification','{ts}Autorenew Membership Cancellation Notification{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$membershipType}The automatic renewal of your %1 membership has been cancelled as requested. This does not affect the status of your membership - you will receive a separate notification when your membership is up for renewal.{/ts}\n\n===========================================================\n{ts}Membership Information{/ts}\n\n===========================================================\n{ts}Membership Status{/ts}: {$membership_status}\n{if $mem_start_date}{ts}Membership Start Date{/ts}: {$mem_start_date|crmDate}\n{/if}\n{if $mem_end_date}{ts}Membership End Date{/ts}: {$mem_end_date|crmDate}\n{/if}\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts 1=$membershipType}The automatic renewal of your %1 membership has been cancelled as requested. This does not affect the status of your membership - you will receive a separate notification when your membership is up for renewal.{/ts}</p>\n\n   </td>\n  </tr>\n </table>\n <table style=\"width:100%; max-width:500px; border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse;\">\n\n      <tr>\n       <th {$headerStyle}>\n        {ts}Membership Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td {$labelStyle}>\n        {ts}Membership Status{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$membership_status}\n       </td>\n      </tr>\n      {if $mem_start_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Membership Start Date{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$mem_start_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n      {if $mem_end_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Membership End Date{/ts}\n        </td>\n        <td {$valueStyle}>\n          {$mem_end_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n\n </table>\n</center>\n\n</body>\n</html>\n',1,843,0,1,0,NULL),(51,'Memberships - Auto-renew Billing Updates','{ts}Membership Autorenewal Billing Updates{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$membershipType}Billing details for your automatically renewed %1 membership have been updated.{/ts}\n\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billingName}\n{$address}\n\n{$email}\n\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n\n\n{ts 1=$receipt_from_email}If you have questions please contact us at %1{/ts}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts 1=$membershipType}Billing details for your automatically renewed %1 membership have been updated.{/ts}</p>\n   </td>\n  </tr>\n  <tr>\n </table>\n\n  <table style=\"width:100%; max-width:500px; border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse;\">\n   <tr>\n        <th {$headerStyle}>\n         {ts}Billing Name and Address{/ts}\n        </th>\n       </tr>\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         {$billingName}<br />\n         {$address|nl2br}<br />\n         {$email}\n        </td>\n       </tr>\n        <tr>\n       <th {$headerStyle}>\n        {ts}Credit Card Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$credit_card_type}<br />\n        {$credit_card_number}<br />\n        {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}<br />\n       </td>\n      </tr>\n      <tr>\n        <td {$labelStyle}>\n         {ts 1=$receipt_from_email}If you have questions please contact us at %1{/ts}\n        </td>\n      </tr>\n\n  </table>\n</center>\n\n</body>\n</html>\n',1,844,1,0,0,NULL),(52,'Memberships - Auto-renew Billing Updates','{ts}Membership Autorenewal Billing Updates{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$membershipType}Billing details for your automatically renewed %1 membership have been updated.{/ts}\n\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billingName}\n{$address}\n\n{$email}\n\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n\n\n{ts 1=$receipt_from_email}If you have questions please contact us at %1{/ts}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts 1=$membershipType}Billing details for your automatically renewed %1 membership have been updated.{/ts}</p>\n   </td>\n  </tr>\n  <tr>\n </table>\n\n  <table style=\"width:100%; max-width:500px; border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse;\">\n   <tr>\n        <th {$headerStyle}>\n         {ts}Billing Name and Address{/ts}\n        </th>\n       </tr>\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         {$billingName}<br />\n         {$address|nl2br}<br />\n         {$email}\n        </td>\n       </tr>\n        <tr>\n       <th {$headerStyle}>\n        {ts}Credit Card Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$credit_card_type}<br />\n        {$credit_card_number}<br />\n        {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}<br />\n       </td>\n      </tr>\n      <tr>\n        <td {$labelStyle}>\n         {ts 1=$receipt_from_email}If you have questions please contact us at %1{/ts}\n        </td>\n      </tr>\n\n  </table>\n</center>\n\n</body>\n</html>\n',1,844,0,1,0,NULL),(53,'Test-drive - Receipt Header','[TEST]\n','***********************************************************\n\n{ts}Test-drive Email / Receipt{/ts}\n\n{ts}This is a test-drive email. No live financial transaction has occurred.{/ts}\n\n***********************************************************\n','<center>\n <table id=\"crm-event_receipt_test\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n  <tr>\n   <td>\n    <p>{ts}Test-drive Email / Receipt{/ts}</p>\n    <p>{ts}This is a test-drive email. No live financial transaction has occurred.{/ts}</p>\n   </td>\n  </tr>\n </table>\n</center>\n',1,845,1,0,0,NULL),(54,'Test-drive - Receipt Header','[TEST]\n','***********************************************************\n\n{ts}Test-drive Email / Receipt{/ts}\n\n{ts}This is a test-drive email. No live financial transaction has occurred.{/ts}\n\n***********************************************************\n','<center>\n <table id=\"crm-event_receipt_test\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n  <tr>\n   <td>\n    <p>{ts}Test-drive Email / Receipt{/ts}</p>\n    <p>{ts}This is a test-drive email. No live financial transaction has occurred.{/ts}</p>\n   </td>\n  </tr>\n </table>\n</center>\n',1,845,0,1,0,NULL),(55,'Pledges - Acknowledgement','{ts}Thank you for your Pledge{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n\n{ts}Thank you for your generous pledge.{/ts}\n\n===========================================================\n{ts}Pledge Information{/ts}\n\n===========================================================\n{ts}Pledge Received{/ts}: {$create_date|truncate:10:\'\'|crmDate}\n{ts}Total Pledge Amount{/ts}: {$total_pledge_amount|crmMoney:$currency}\n\n===========================================================\n{ts}Payment Schedule{/ts}\n\n===========================================================\n{ts 1=$scheduled_amount|crmMoney:$currency 2=$frequency_interval 3=$frequency_unit 4=$installments}%1 every %2 %3 for %4 installments.{/ts}\n\n{if $frequency_day}\n\n{ts 1=$frequency_day 2=$frequency_unit}Payments are due on day %1 of the %2.{/ts}\n{/if}\n\n{if $payments}\n{assign var=\"count\" value=\"1\"}\n{foreach from=$payments item=payment}\n\n{ts 1=$count}Payment %1{/ts}: {$payment.amount|crmMoney:$currency} {if $payment.status eq 1}{ts}paid{/ts} {$payment.receive_date|truncate:10:\'\'|crmDate}{else}{ts}due{/ts} {$payment.due_date|truncate:10:\'\'|crmDate}{/if}\n{assign var=\"count\" value=`$count+1`}\n{/foreach}\n{/if}\n\n\n{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions\nor need to modify your payment schedule.{/ts}\n\n{if $customGroup}\n{foreach from=$customGroup item=value key=customName}\n===========================================================\n{$customName}\n===========================================================\n{foreach from=$value item=v key=n}\n{$n}: {$v}\n{/foreach}\n{/foreach}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts}Thank you for your generous pledge.{/ts}</p>\n   </td>\n  </tr>\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Pledge Information{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Pledge Received{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$create_date|truncate:10:\'\'|crmDate}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Total Pledge Amount{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$total_pledge_amount|crmMoney:$currency}\n      </td>\n     </tr>\n     <tr>\n      <th {$headerStyle}>\n       {ts}Payment Schedule{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td colspan=\"2\" {$valueStyle}>\n       <p>{ts 1=$scheduled_amount|crmMoney:$currency 2=$frequency_interval 3=$frequency_unit 4=$installments}%1 every %2 %3 for %4 installments.{/ts}</p>\n\n       {if $frequency_day}\n        <p>{ts 1=$frequency_day 2=$frequency_unit}Payments are due on day %1 of the %2.{/ts}</p>\n       {/if}\n      </td>\n     </tr>\n\n     {if $payments}\n      {assign var=\"count\" value=\"1\"}\n      {foreach from=$payments item=payment}\n       <tr>\n        <td {$labelStyle}>\n         {ts 1=$count}Payment %1{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$payment.amount|crmMoney:$currency} {if $payment.status eq 1}{ts}paid{/ts} {$payment.receive_date|truncate:10:\'\'|crmDate}{else}{ts}due{/ts} {$payment.due_date|truncate:10:\'\'|crmDate}{/if}\n        </td>\n       </tr>\n       {assign var=\"count\" value=`$count+1`}\n      {/foreach}\n     {/if}\n\n     <tr>\n      <td colspan=\"2\" {$valueStyle}>\n       <p>{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions\nor need to modify your payment schedule.{/ts}</p>\n      </td>\n     </tr>\n\n     {if $customGroup}\n      {foreach from=$customGroup item=value key=customName}\n       <tr>\n        <th {$headerStyle}>\n         {$customName}\n        </th>\n       </tr>\n       {foreach from=$value item=v key=n}\n        <tr>\n         <td {$labelStyle}>\n          {$n}\n         </td>\n         <td {$valueStyle}>\n          {$v}\n         </td>\n        </tr>\n       {/foreach}\n      {/foreach}\n     {/if}\n\n    </table>\n   </td>\n  </tr>\n\n </table>\n</center>\n\n</body>\n</html>\n',1,846,1,0,0,NULL),(56,'Pledges - Acknowledgement','{ts}Thank you for your Pledge{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n\n{ts}Thank you for your generous pledge.{/ts}\n\n===========================================================\n{ts}Pledge Information{/ts}\n\n===========================================================\n{ts}Pledge Received{/ts}: {$create_date|truncate:10:\'\'|crmDate}\n{ts}Total Pledge Amount{/ts}: {$total_pledge_amount|crmMoney:$currency}\n\n===========================================================\n{ts}Payment Schedule{/ts}\n\n===========================================================\n{ts 1=$scheduled_amount|crmMoney:$currency 2=$frequency_interval 3=$frequency_unit 4=$installments}%1 every %2 %3 for %4 installments.{/ts}\n\n{if $frequency_day}\n\n{ts 1=$frequency_day 2=$frequency_unit}Payments are due on day %1 of the %2.{/ts}\n{/if}\n\n{if $payments}\n{assign var=\"count\" value=\"1\"}\n{foreach from=$payments item=payment}\n\n{ts 1=$count}Payment %1{/ts}: {$payment.amount|crmMoney:$currency} {if $payment.status eq 1}{ts}paid{/ts} {$payment.receive_date|truncate:10:\'\'|crmDate}{else}{ts}due{/ts} {$payment.due_date|truncate:10:\'\'|crmDate}{/if}\n{assign var=\"count\" value=`$count+1`}\n{/foreach}\n{/if}\n\n\n{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions\nor need to modify your payment schedule.{/ts}\n\n{if $customGroup}\n{foreach from=$customGroup item=value key=customName}\n===========================================================\n{$customName}\n===========================================================\n{foreach from=$value item=v key=n}\n{$n}: {$v}\n{/foreach}\n{/foreach}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts}Thank you for your generous pledge.{/ts}</p>\n   </td>\n  </tr>\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Pledge Information{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Pledge Received{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$create_date|truncate:10:\'\'|crmDate}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Total Pledge Amount{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$total_pledge_amount|crmMoney:$currency}\n      </td>\n     </tr>\n     <tr>\n      <th {$headerStyle}>\n       {ts}Payment Schedule{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td colspan=\"2\" {$valueStyle}>\n       <p>{ts 1=$scheduled_amount|crmMoney:$currency 2=$frequency_interval 3=$frequency_unit 4=$installments}%1 every %2 %3 for %4 installments.{/ts}</p>\n\n       {if $frequency_day}\n        <p>{ts 1=$frequency_day 2=$frequency_unit}Payments are due on day %1 of the %2.{/ts}</p>\n       {/if}\n      </td>\n     </tr>\n\n     {if $payments}\n      {assign var=\"count\" value=\"1\"}\n      {foreach from=$payments item=payment}\n       <tr>\n        <td {$labelStyle}>\n         {ts 1=$count}Payment %1{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$payment.amount|crmMoney:$currency} {if $payment.status eq 1}{ts}paid{/ts} {$payment.receive_date|truncate:10:\'\'|crmDate}{else}{ts}due{/ts} {$payment.due_date|truncate:10:\'\'|crmDate}{/if}\n        </td>\n       </tr>\n       {assign var=\"count\" value=`$count+1`}\n      {/foreach}\n     {/if}\n\n     <tr>\n      <td colspan=\"2\" {$valueStyle}>\n       <p>{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions\nor need to modify your payment schedule.{/ts}</p>\n      </td>\n     </tr>\n\n     {if $customGroup}\n      {foreach from=$customGroup item=value key=customName}\n       <tr>\n        <th {$headerStyle}>\n         {$customName}\n        </th>\n       </tr>\n       {foreach from=$value item=v key=n}\n        <tr>\n         <td {$labelStyle}>\n          {$n}\n         </td>\n         <td {$valueStyle}>\n          {$v}\n         </td>\n        </tr>\n       {/foreach}\n      {/foreach}\n     {/if}\n\n    </table>\n   </td>\n  </tr>\n\n </table>\n</center>\n\n</body>\n</html>\n',1,846,0,1,0,NULL),(57,'Pledges - Payment Reminder','{ts}Pledge Payment Reminder{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$next_payment|truncate:10:\'\'|crmDate}This is a reminder that the next payment on your pledge is due on %1.{/ts}\n\n===========================================================\n{ts}Payment Due{/ts}\n\n===========================================================\n{ts}Amount Due{/ts}: {$amount_due|crmMoney:$currency}\n{ts}Due Date{/ts}: {$scheduled_payment_date|truncate:10:\'\'|crmDate}\n\n{if $contribution_page_id}\n{capture assign=contributionUrl}{crmURL p=\'civicrm/contribute/transact\' q=\"reset=1&id=`$contribution_page_id`&cid=`$contact.contact_id`&pledgeId=`$pledge_id`&cs=`$checksumValue`\" a=true h=0}{/capture}\nClick this link to go to a web page where you can make your payment online:\n{$contributionUrl}\n{else}\n{ts}Please mail your payment to{/ts}:\n{$domain.address}\n{/if}\n\n===========================================================\n{ts}Pledge Information{/ts}\n\n===========================================================\n{ts}Pledge Received{/ts}: {$create_date|truncate:10:\'\'|crmDate}\n{ts}Total Pledge Amount{/ts}: {$amount|crmMoney:$currency}\n{ts}Total Paid{/ts}: {$amount_paid|crmMoney:$currency}\n\n{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions\nor need to modify your payment schedule.{/ts}\n\n\n{ts}Thank your for your generous support.{/ts}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts 1=$next_payment|truncate:10:\'\'|crmDate}This is a reminder that the next payment on your pledge is due on %1.{/ts}</p>\n   </td>\n  </tr>\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Payment Due{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Amount Due{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$amount_due|crmMoney:$currency}\n      </td>\n     </tr>\n    </table>\n   </td>\n  </tr>\n\n  <tr>\n   <td>\n    {if $contribution_page_id}\n     {capture assign=contributionUrl}{crmURL p=\'civicrm/contribute/transact\' q=\"reset=1&id=`$contribution_page_id`&cid=`$contact.contact_id`&pledgeId=`$pledge_id`&cs=`$checksumValue`\" a=true h=0}{/capture}\n     <p><a href=\"{$contributionUrl}\">{ts}Go to a web page where you can make your payment online{/ts}</a></p>\n    {else}\n     <p>{ts}Please mail your payment to{/ts}: {$domain.address}</p>\n    {/if}\n   </td>\n  </tr>\n\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Pledge Information{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Pledge Received{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$create_date|truncate:10:\'\'|crmDate}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Total Pledge Amount{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$amount|crmMoney:$currency}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Total Paid{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$amount_paid|crmMoney:$currency}\n      </td>\n     </tr>\n    </table>\n   </td>\n  </tr>\n\n  <tr>\n   <td>\n    <p>{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions\nor need to modify your payment schedule.{/ts}</p>\n    <p>{ts}Thank your for your generous support.{/ts}</p>\n   </td>\n  </tr>\n\n </table>\n</center>\n\n</body>\n</html>\n',1,847,1,0,0,NULL),(58,'Pledges - Payment Reminder','{ts}Pledge Payment Reminder{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$next_payment|truncate:10:\'\'|crmDate}This is a reminder that the next payment on your pledge is due on %1.{/ts}\n\n===========================================================\n{ts}Payment Due{/ts}\n\n===========================================================\n{ts}Amount Due{/ts}: {$amount_due|crmMoney:$currency}\n{ts}Due Date{/ts}: {$scheduled_payment_date|truncate:10:\'\'|crmDate}\n\n{if $contribution_page_id}\n{capture assign=contributionUrl}{crmURL p=\'civicrm/contribute/transact\' q=\"reset=1&id=`$contribution_page_id`&cid=`$contact.contact_id`&pledgeId=`$pledge_id`&cs=`$checksumValue`\" a=true h=0}{/capture}\nClick this link to go to a web page where you can make your payment online:\n{$contributionUrl}\n{else}\n{ts}Please mail your payment to{/ts}:\n{$domain.address}\n{/if}\n\n===========================================================\n{ts}Pledge Information{/ts}\n\n===========================================================\n{ts}Pledge Received{/ts}: {$create_date|truncate:10:\'\'|crmDate}\n{ts}Total Pledge Amount{/ts}: {$amount|crmMoney:$currency}\n{ts}Total Paid{/ts}: {$amount_paid|crmMoney:$currency}\n\n{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions\nor need to modify your payment schedule.{/ts}\n\n\n{ts}Thank your for your generous support.{/ts}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts 1=$next_payment|truncate:10:\'\'|crmDate}This is a reminder that the next payment on your pledge is due on %1.{/ts}</p>\n   </td>\n  </tr>\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Payment Due{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Amount Due{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$amount_due|crmMoney:$currency}\n      </td>\n     </tr>\n    </table>\n   </td>\n  </tr>\n\n  <tr>\n   <td>\n    {if $contribution_page_id}\n     {capture assign=contributionUrl}{crmURL p=\'civicrm/contribute/transact\' q=\"reset=1&id=`$contribution_page_id`&cid=`$contact.contact_id`&pledgeId=`$pledge_id`&cs=`$checksumValue`\" a=true h=0}{/capture}\n     <p><a href=\"{$contributionUrl}\">{ts}Go to a web page where you can make your payment online{/ts}</a></p>\n    {else}\n     <p>{ts}Please mail your payment to{/ts}: {$domain.address}</p>\n    {/if}\n   </td>\n  </tr>\n\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Pledge Information{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Pledge Received{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$create_date|truncate:10:\'\'|crmDate}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Total Pledge Amount{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$amount|crmMoney:$currency}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Total Paid{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$amount_paid|crmMoney:$currency}\n      </td>\n     </tr>\n    </table>\n   </td>\n  </tr>\n\n  <tr>\n   <td>\n    <p>{ts 1=$domain.phone 2=$domain.email}Please contact us at %1 or send email to %2 if you have questions\nor need to modify your payment schedule.{/ts}</p>\n    <p>{ts}Thank your for your generous support.{/ts}</p>\n   </td>\n  </tr>\n\n </table>\n</center>\n\n</body>\n</html>\n',1,847,0,1,0,NULL),(59,'Profiles - Admin Notification','{$grouptitle} {ts 1=$displayName}Submitted by %1{/ts} - {contact.display_name}\n','{ts}Submitted For:{/ts} {$displayName}\n{ts}Date:{/ts} {$currentDate}\n{ts}Contact Summary:{/ts} {$contactLink}\n\n===========================================================\n{$grouptitle}\n\n===========================================================\n{foreach from=$values item=value key=valueName}\n{$valueName}: {$value}\n{/foreach}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <td {$labelStyle}>\n       {ts}Submitted For{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$displayName}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Date{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$currentDate}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Contact Summary{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$contactLink}\n      </td>\n     </tr>\n\n     <tr>\n      <th {$headerStyle}>\n       {$grouptitle}\n      </th>\n     </tr>\n\n     {foreach from=$values item=value key=valueName}\n      <tr>\n       <td {$labelStyle}>\n        {$valueName}\n       </td>\n       <td {$valueStyle}>\n        {$value}\n       </td>\n      </tr>\n     {/foreach}\n    </table>\n   </td>\n  </tr>\n\n </table>\n</center>\n\n</body>\n</html>\n',1,848,1,0,0,NULL),(60,'Profiles - Admin Notification','{$grouptitle} {ts 1=$displayName}Submitted by %1{/ts} - {contact.display_name}\n','{ts}Submitted For:{/ts} {$displayName}\n{ts}Date:{/ts} {$currentDate}\n{ts}Contact Summary:{/ts} {$contactLink}\n\n===========================================================\n{$grouptitle}\n\n===========================================================\n{foreach from=$values item=value key=valueName}\n{$valueName}: {$value}\n{/foreach}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<center>\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <td {$labelStyle}>\n       {ts}Submitted For{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$displayName}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Date{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$currentDate}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Contact Summary{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$contactLink}\n      </td>\n     </tr>\n\n     <tr>\n      <th {$headerStyle}>\n       {$grouptitle}\n      </th>\n     </tr>\n\n     {foreach from=$values item=value key=valueName}\n      <tr>\n       <td {$labelStyle}>\n        {$valueName}\n       </td>\n       <td {$valueStyle}>\n        {$value}\n       </td>\n      </tr>\n     {/foreach}\n    </table>\n   </td>\n  </tr>\n\n </table>\n</center>\n\n</body>\n</html>\n',1,848,0,1,0,NULL),(61,'Petition - signature added','Thank you for signing {$petition.title} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\nThank you for signing {$petition.title}.\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n\n<p>Thank you for signing {$petition.title}.</p>\n\n{include file=\"CRM/Campaign/Page/Petition/SocialNetwork.tpl\" petition_id=$survey_id noscript=true emailMode=true}\n',1,849,1,0,0,NULL),(62,'Petition - signature added','Thank you for signing {$petition.title} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\nThank you for signing {$petition.title}.\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n\n<p>Thank you for signing {$petition.title}.</p>\n\n{include file=\"CRM/Campaign/Page/Petition/SocialNetwork.tpl\" petition_id=$survey_id noscript=true emailMode=true}\n',1,849,0,1,0,NULL),(63,'Petition - need verification','Confirmation of signature needed for {$petition.title} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\nThank you for signing {$petition.title}.\n\nIn order to complete your signature, we must confirm your e-mail.\nPlease do so by visiting the following email confirmation web page:\n\n{$petition.confirmUrlPlainText}\n\nIf you did not sign this petition, please ignore this message.\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n\n<p>Thank you for signing {$petition.title}.</p>\n\n<p>In order to <b>complete your signature</b>, we must confirm your e-mail.\n<br />\nPlease do so by visiting the following web page by clicking\non the link below or pasting the link into your browser.\n<br /><br />\nEmail confirmation page: <a href=\"{$petition.confirmUrl} \">{$petition.confirmUrl}</a></p>\n\n<p>If you did not sign this petition, please ignore this message.</p>\n',1,850,1,0,0,NULL),(64,'Petition - need verification','Confirmation of signature needed for {$petition.title} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}{$greeting},{/if}\n\nThank you for signing {$petition.title}.\n\nIn order to complete your signature, we must confirm your e-mail.\nPlease do so by visiting the following email confirmation web page:\n\n{$petition.confirmUrlPlainText}\n\nIf you did not sign this petition, please ignore this message.\n','{assign var=\"greeting\" value=\"{contact.email_greeting}\"}{if $greeting}<p>{$greeting},</p>{/if}\n\n<p>Thank you for signing {$petition.title}.</p>\n\n<p>In order to <b>complete your signature</b>, we must confirm your e-mail.\n<br />\nPlease do so by visiting the following web page by clicking\non the link below or pasting the link into your browser.\n<br /><br />\nEmail confirmation page: <a href=\"{$petition.confirmUrl} \">{$petition.confirmUrl}</a></p>\n\n<p>If you did not sign this petition, please ignore this message.</p>\n',1,850,0,1,0,NULL),(65,'Sample CiviMail Newsletter Template','Sample CiviMail Newsletter','','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n<table width=612 cellpadding=0 cellspacing=0 bgcolor=\"#ffffff\">\n  <tr>\n    <td colspan=\"2\" bgcolor=\"#ffffff\" valign=\"middle\" >\n      <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" >\n        <tr>\n          <td>\n          <a href=\"https://civicrm.org\"><img src=\"https://civicrm.org/sites/civicrm.org/files/top-logo_2.png\" border=0 alt=\"Replace this logo with the URL to your own\"></a>\n          </td>\n          <td>&nbsp; &nbsp;</td>\n          <td>\n          <a href=\"https://civicrm.org\" style=\"text-decoration: none;\"><font size=5 face=\"Arial, Verdana, sans-serif\" color=\"#8bc539\">Your Newsletter Title</font></a>\n          </td>\n        </tr>\n      </table>\n    </td>\n  </tr>\n  <tr>\n    <td valign=\"top\" width=\"70%\">\n      <!-- left column -->\n      <table cellpadding=\"10\" cellspacing=\"0\" border=\"0\">\n      <tr>\n        <td style=\"font-family: Arial, Verdana, sans-serif; font-size: 12px;\" >\n        <font face=\"Arial, Verdana, sans-serif\" size=\"2\" >\n        Greetings {contact.display_name},\n        <br /><br />\n        This is a sample template designed to help you get started creating and sending your own CiviMail messages. This template uses an HTML layout that is generally compatible with the wide variety of email clients that your recipients might be using (e.g. Gmail, Outlook, Yahoo, etc.).\n        <br /><br />You can select this \"Sample CiviMail Newsletter Template\" from the \"Use Template\" drop-down in Step 3 of creating a mailing, and customize it to your needs. Then check the \"Save as New Template\" box on the bottom the page to save your customized version for use in future mailings.\n        <br /><br />The logo you use must be uploaded to your server.  Copy and paste the URL path to the logo into the &lt;img src= tag in the HTML at the top.  Click \"Source\" or the Image button if you are using the text editor.\n        <br /><br />\n        Edit the color of the links and headers using the color button or by editing the HTML.\n        <br /><br />\n        Your newsletter message and donation appeal can go here.  Click the link button to <a href=\"#\">create links</a> - remember to use a fully qualified URL starting with http:// in all your links!\n        <br /><br />\n        To use CiviMail:\n        <ul>\n          <li><a href=\"http://book.civicrm.org/user/advanced-configuration/email-system-configuration/\">Configure your Email System</a>.</li>\n          <li>Make sure your web hosting provider allows outgoing bulk mail, and see if they have a restriction on quantity.  If they don\'t allow bulk mail, consider <a href=\"https://civicrm.org/providers/hosting\">finding a new host</a>.</li>\n        </ul>\n        Sincerely,\n        <br /><br />\n        Your Team\n        <br /><br />\n        </font>\n        </td>\n      </tr>\n      </table>\n    </td>\n\n    <td valign=\"top\" width=\"30%\" bgcolor=\"#ffffff\" style=\"border: 1px solid #056085;\">\n      <!-- right column -->\n      <table cellpadding=10 cellspacing=0 border=0>\n      <tr>\n        <td bgcolor=\"#056085\"><font face=\"Arial, Verdana, sans-serif\" size=\"4\" color=\"#ffffff\">News and Events</font></td>\n      </tr>\n      <tr>\n        <td style=\"color: #000; font-family: Arial, Verdana, sans-serif; font-size: 12px;\" >\n        <font face=\"Arial, Verdana, sans-serif\" size=\"2\" >\n        <font color=\"#056085\"><strong>Featured Events</strong> </font><br />\n        Fundraising Dinner<br />\n        Training Meeting<br />\n        Board of Directors Annual Meeting<br />\n\n        <br /><br />\n        <font color=\"#056085\"><strong>Community Events</strong></font><br />\n        Bake Sale<br />\n        Charity Auction<br />\n        Art Exhibit<br />\n\n        <br /><br />\n        <font color=\"#056085\"><strong>Important Dates</strong></font><br />\n        Tuesday August 27<br />\n        Wednesday September 8<br />\n        Thursday September 29<br />\n        Saturday October 1<br />\n        Sunday October 20<br />\n        </font>\n        </td>\n      </tr>\n      </table>\n    </td>\n  </tr>\n\n  <tr>\n    <td colspan=\"2\">\n      <table cellpadding=\"10\" cellspacing=\"0\" border=\"0\">\n      <tr>\n        <td>\n        <font face=\"Arial, Verdana, sans-serif\" size=\"2\" >\n        <font color=\"#7dc857\"><strong>Helpful Tips</strong></font>\n        <br /><br />\n        <font color=\"#3b5187\">Tokens</font><br />\n        Click \"Insert Tokens\" to dynamically insert names, addresses, and other contact data of your recipients.\n        <br /><br />\n        <font color=\"#3b5187\">Plain Text Version</font><br />\n        Some people refuse HTML emails altogether.  We recommend sending a plain-text version of your important communications to accommodate them.  Luckily, CiviCRM accommodates for this!  Just click \"Plain Text\" and copy and paste in some text.  Line breaks (carriage returns) and fully qualified URLs like http://www.example.com are all you get, no HTML here!\n        <br /><br />\n        <font color=\"#3b5187\">Play by the Rules</font><br />\n        The address of the sender is required by the Can Spam Act law.  This is an available token called domain.address.  An unsubscribe or opt-out link is also required.  There are several available tokens for this. <em>{action.optOutUrl}</em> creates a link for recipients to click if they want to opt out of receiving  emails from your organization. <em>{action.unsubscribeUrl}</em> creates a link to unsubscribe from the specific mailing list used to send this message. Click on \"Insert Tokens\" to find these and look for tokens named \"Domain\" or \"Unsubscribe\".  This sample template includes both required tokens at the bottom of the message. You can also configure a default Mailing Footer containing these tokens.\n        <br /><br />\n        <font color=\"#3b5187\">Composing Offline</font><br />\n        If you prefer to compose an HTML email offline in your own text editor, you can upload this HTML content into CiviMail or simply click \"Source\" and then copy and paste the HTML in.\n        <br /><br />\n        <font color=\"#3b5187\">Images</font><br />\n        Most email clients these days (Outlook, Gmail, etc) block image loading by default.  This is to protect their users from annoying or harmful email.  Not much we can do about this, so encourage recipients to add you to their contacts or \"whitelist\".  Also use images sparingly, do not rely on images to convey vital information, and always use HTML \"alt\" tags which describe the image content.\n        </td>\n      </tr>\n      </table>\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" style=\"color: #000; font-family: Arial, Verdana, sans-serif; font-size: 10px;\">\n      <font face=\"Arial, Verdana, sans-serif\" size=\"2\" >\n      <hr />\n      <a href=\"{action.unsubscribeUrl}\" title=\"click to unsubscribe\">Click here</a> to unsubscribe from this mailing list.<br /><br />\n      Our mailing address is:<br />\n      {domain.address}\n    </td>\n  </tr>\n  </table>\n\n</body>\n</html>\n',1,NULL,1,0,0,NULL),(66,'Sample Responsive Design Newsletter - Single Column Template','Sample Responsive Design Newsletter - Single Column','','<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<meta content=\"text/html; charset=utf-8\" http-equiv=\"Content-Type\" />\n  <meta content=\"width=device-width, initial-scale=1.0\" name=\"viewport\" />\n  <title></title>\n\n  <style type=\"text/css\">\n    {literal}\n    /* Client-specific Styles */\n    #outlook a {padding:0;} /* Force Outlook to provide a \"view in browser\" menu link. */\n    body{width:100% !important; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%; margin:0; padding:0;}\n\n    /* Prevent Webkit and Windows Mobile platforms from changing default font sizes, while not breaking desktop design. */\n    .ExternalClass {width:100%;} /* Force Hotmail to display emails at full width */\n    .ExternalClass, .ExternalClass p, .ExternalClass span, .ExternalClass font, .ExternalClass td, .ExternalClass div {line-height: 100%;} /* Force Hotmail to display normal line spacing. */\n    #backgroundTable {margin:0; padding:0; width:100% !important; line-height: 100% !important;}\n    img {outline:none; text-decoration:none;border:none; -ms-interpolation-mode: bicubic;}\n    a img {border:none;}\n    .image_fix {display:block;}\n    p {margin: 0px 0px !important;}\n    table td {border-collapse: collapse;}\n    table { border-collapse:collapse; mso-table-lspace:0pt; mso-table-rspace:0pt; }\n    a {text-decoration: none;text-decoration:none;}\n\n    /*STYLES*/\n    table[class=full] { width: 100%; clear: both; }\n\n    /*IPAD STYLES*/\n    @media only screen and (max-width: 640px) {\n    a[href^=\"tel\"], a[href^=\"sms\"] {text-decoration: none;color:#136388;pointer-events: none;cursor: default;}\n    .mobile_link a[href^=\"tel\"], .mobile_link a[href^=\"sms\"] {text-decoration: default;color:#136388;pointer-events: auto;cursor: default;}\n    table[class=devicewidth] {width: 440px!important;text-align:center!important;}\n    table[class=devicewidthmob] {width: 416px!important;text-align:center!important;}\n    table[class=devicewidthinner] {width: 416px!important;text-align:center!important;}\n    img[class=banner] {width: 440px!important;auto!important;}\n    img[class=col2img] {width: 440px!important;height:auto!important;}\n    table[class=\"cols3inner\"] {width: 100px!important;}\n    table[class=\"col3img\"] {width: 131px!important;}\n    img[class=\"col3img\"] {width: 131px!important;height: auto!important;}\n    table[class=\"removeMobile\"]{width:10px!important;}\n    img[class=\"blog\"] {width: 440px!important;height: auto!important;}\n    }\n\n    /*IPHONE STYLES*/\n    @media only screen and (max-width: 480px) {\n    a[href^=\"tel\"], a[href^=\"sms\"] {text-decoration: none;color: #136388;pointer-events: none;cursor: default;}\n    .mobile_link a[href^=\"tel\"], .mobile_link a[href^=\"sms\"] {text-decoration: none;color:#136388;pointer-events: auto;cursor: default;}\n\n    table[class=devicewidth] {width: 280px!important;text-align:center!important;}\n    table[class=devicewidthmob] {width: 260px!important;text-align:center!important;}\n    table[class=devicewidthinner] {width: 260px!important;text-align:center!important;}\n    img[class=banner] {width: 280px!important;height:100px!important;}\n    img[class=col2img] {width: 280px!important;height:auto!important;}\n    table[class=\"cols3inner\"] {width: 260px!important;}\n    img[class=\"col3img\"] {width: 280px!important;height: auto!important;}\n    table[class=\"col3img\"] {width: 280px!important;}\n    img[class=\"blog\"] {width: 280px!important;auto!important;}\n    td[class=\"padding-top-right15\"]{padding:15px 15px 0 0 !important;}\n    td[class=\"padding-right15\"]{padding-right:15px !important;}\n    }\n\n    @media only screen and (max-device-width: 800px)\n    {td[class=\"padding-top-right15\"]{padding:15px 15px 0 0 !important;}\n    td[class=\"padding-right15\"]{padding-right:15px !important;}}\n    @media only screen and (max-device-width: 769px) {\n    .devicewidthmob {font-size:16px;}\n    }\n\n    @media only screen and (max-width: 640px) {\n    .desktop-spacer {display:none !important;}\n }\n  {/literal}\n  </style>\n\n<body>\n  <!-- Start of preheader --><!-- Start of preheader -->\n  <table bgcolor=\"#89c66b\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" id=\"backgroundTable\" width=\"100%\">\n  	<tbody>\n  		<tr>\n  			<td>\n  			<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"650\">\n  				<tbody>\n  					<tr>\n  						<td width=\"100%\">\n  						<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"650\">\n  							<tbody><!-- Spacing -->\n  								<tr>\n  									<td height=\"20\" width=\"100%\">&nbsp;</td>\n  								</tr>\n  								<!-- Spacing -->\n  								<tr>\n  									<td>\n  									<table align=\"left\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidthinner\" width=\"310\">\n  										<tbody>\n  											<tr>\n  												<td align=\"left\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 16px; line-height:120%; color: #f8f8f8;padding-left:15px; padding-bottom:5px;\" valign=\"middle\">Organization or Program Name Here</td>\n  											</tr>\n  										</tbody>\n  									</table>\n\n  									<table align=\"right\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"emhide\" width=\"310\">\n  										<tbody>\n  											<tr>\n                          <td align=\"right\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 16px;color: #f8f8f8;padding-right:15px; text-align:right;\" valign=\"middle\">Month and Year</td>\n  											</tr>\n  										</tbody>\n  									</table>\n  									</td>\n  								</tr>\n  								<!-- Spacing -->\n  								<tr>\n  									<td height=\"20\" width=\"100%\">&nbsp;</td>\n  								</tr>\n  								<!-- Spacing -->\n  							</tbody>\n  						</table>\n  						</td>\n  					</tr>\n  				</tbody>\n  			</table>\n  			</td>\n  		</tr>\n  	</tbody>\n  </table>\n  <!-- End of main-banner-->\n\n  <table bgcolor=\"#d8d8d8\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" id=\"backgroundTable\" st-sortable=\"left-image\" width=\"100%\">\n  	<tbody>\n  		<tr>\n  			<td>\n  			<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"650\">\n  				<tbody>\n  					<tr>\n  						<td width=\"100%\">\n  						<table align=\"center\" bgcolor=\"#ffffff\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"650\">\n  							<tbody><!-- Spacing -->\n  								<tr>\n  									<td height=\"20\" width=\"100%\">\n  									<table align=\"center\" border=\"0\" cellpadding=\"2\" cellspacing=\"0\" width=\"93%\">\n  										<tbody>\n  											<tr>\n                          <td rowspan=\"2\" style=\"padding-top:10px; padding-bottom:10px;\" width=\"38%\"><img src=\"https://civicrm.org/sites/default/files/civicrm/custom/images/civicrm-logo-transparent.png\" alt=\"Replace with your own logo\" width=\"220\" border=\"0\" /></td>\n  												<td align=\"right\" width=\"62%\">\n  												<h6 class=\"collapse\">&nbsp;</h6>\n  												</td>\n  											</tr>\n  											<tr>\n  												<td align=\"right\">\n  												<h5 style=\"font-family: Gill Sans, Gill Sans MT, Myriad Pro, DejaVu Sans Condensed, Helvetica, Arial, sans-serif; color:#136388;\">&nbsp;</h5>\n  												</td>\n  											</tr>\n  										</tbody>\n  									</table>\n  									</td>\n  								</tr>\n  								<tr>\n  									<td>\n  									<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"650\">\n  										<tbody>\n  											<tr>\n  												<td width=\"100%\">\n  												<table align=\"center\" bgcolor=\"#ffffff\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"650\">\n  													<tbody><!-- /Spacing -->\n  														<tr>\n  															<td style=\"font-family: Helvetica, arial, sans-serif; font-size: 23px; color:#f8f8f8; text-align:left; line-height: 32px; padding:5px 15px; background-color:#136388;\">Headline Here</td>\n  														</tr>\n  														<!-- Spacing -->\n  														<tr>\n  															<td>\n  															<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidthinner\" width=\"650\">\n  																<tbody><!-- hero story -->\n  																	<tr>\n  																		<td align=\"center\" class=\"devicewidthinner\" width=\"100%\">\n  																		<div class=\"imgpop\"><a href=\"#\"><img alt=\"\" border=\"0\" class=\"blog\" height=\"auto\" src=\"https://civicrm.org/sites/default/files/civicrm/custom/images/650x396.png\" style=\"display:block; border:none; outline:none; text-decoration:none; padding:0; line-height:0;\" width=\"650\" /></a></div>\n  																		</td>\n  																	</tr>\n  																	<!-- /hero image --><!-- Spacing -->\n  																	<tr>\n  																		<td height=\"15\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\" width=\"100%\">&nbsp;</td>\n  																	</tr>\n  																	<!-- /Spacing -->\n  																	<tr>\n  																		<td style=\"font-family: Helvetica, arial, sans-serif; font-size: 18px;  text-align:left; line-height: 26px; padding:0 15px; color:#89c66b;\"><a href=\"#\" style=\"color:#89c66b;\">Your Heading Here</a></td>\n  																	</tr>\n  																	<!-- Spacing -->\n  																	<tr>\n  																		<td height=\"15\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\" width=\"100%\">&nbsp;</td>\n  																	</tr>\n  																	<!-- /Spacing --><!-- content -->\n  																	<tr>\n  																		<td style=\"padding:0 15px;\">\n  																		<p style=\"font-family: Helvetica, arial, sans-serif; font-size: 16px; color: #7a6e67; text-align:left; line-height: 26px; padding-bottom:10px;\">{contact.email_greeting},																		</p>\n  																		<p style=\"font-family: Helvetica, arial, sans-serif; font-size: 16px; color: #7a6e67; text-align:left; line-height: 26px; padding-bottom:10px;\"><span class=\"padding-right15\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 14px; color: #7a6e67; text-align:left; line-height: 24px;\">Replace with your text and images, and remember to link the facebook and twitter links in the footer to your pages. Have fun!</span></p>\n  																		</td>\n  																	</tr>\n  																	<tr>\n  																		<td class=\"padding-right15\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 16px; font-weight:bold; color: #333333; text-align:left;line-height: 24px; padding-top:10px; padding-left:15px;\"><a href=\"#\" style=\"color:#136388;text-decoration:none;font-weight:bold;\" target=\"_blank\" title=\"read more\">Read More</a></td>\n  																	</tr>\n  																	<!-- /button --><!-- Spacing -->\n  																	<tr>\n  																		<td height=\"20\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\">&nbsp;</td>\n  																	</tr>\n  																	<!-- Spacing --><!-- end of content -->\n  																</tbody>\n  															</table>\n  															</td>\n  														</tr>\n  													</tbody>\n  												</table>\n  												</td>\n  											</tr>\n  										</tbody>\n  									</table>\n  									</td>\n  								</tr>\n  							</tbody>\n  						</table>\n  						</td>\n  					</tr>\n  				</tbody>\n  			</table>\n  			</td>\n  		</tr>\n  	</tbody>\n  </table>\n  <!-- end of hero image and story --><!-- story 1 -->\n\n  <table bgcolor=\"#d8d8d8\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" id=\"backgroundTable\" st-sortable=\"left-image\" width=\"100%\">\n  	<tbody>\n  		<tr>\n  			<td>\n  			<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"650\">\n  				<tbody>\n  					<tr>\n  						<td width=\"100%\">\n  						<table align=\"center\" bgcolor=\"#ffffff\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"650\">\n  							<tbody><!-- Spacing -->\n  								<tr>\n  									<td>\n  									<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"650\">\n  										<tbody>\n  											<tr>\n  												<td width=\"100%\">\n  												<table align=\"center\" bgcolor=\"#ffffff\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"650\">\n  													<tbody>\n  														<tr>\n  															<td>\n  															<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidthinner\" width=\"650\">\n  																<tbody><!-- image -->\n  																	<tr>\n  																		<td align=\"center\" class=\"devicewidthinner\" width=\"100%\">\n  																		<div class=\"imgpop\"><a href=\"#\" target=\"_blank\"><img alt=\"\" border=\"0\" class=\"blog\" height=\"250\" src=\"https://civicrm.org/sites/default/files/civicrm/custom/images/banner-image-650-250.png\" style=\"display:block; border:none; outline:none; text-decoration:none; padding:0; line-height:0;\" width=\"650\" /></a></div>\n  																		</td>\n  																	</tr>\n  																	<!-- /image --><!-- Spacing -->\n  																	<tr>\n  																		<td height=\"15\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\" width=\"100%\">&nbsp;</td>\n  																	</tr>\n  																	<!-- /Spacing -->\n  																	<tr>\n  																		<td style=\"font-family: Helvetica, arial, sans-serif; font-size: 18px;  text-align:left; line-height: 26px; padding:0 15px;\"><a href=\"#\" style=\"color:#89c66b;\">Your Heading  Here</a></td>\n  																	</tr>\n  																	<!-- Spacing -->\n  																	<tr>\n  																		<td height=\"15\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\" width=\"100%\">&nbsp;</td>\n  																	</tr>\n  																	<!-- /Spacing --><!-- content -->\n  																	<tr>\n  																		<td style=\"padding:0 15px;\">\n  																		<p style=\"font-family: Helvetica, arial, sans-serif; font-size: 16px; color: #7a6e67; text-align:left; line-height: 26px; padding-bottom:10px;\">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna </p>\n  																		</td>\n  																	</tr>\n  																	<tr>\n  																		<td class=\"padding-right15\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 16px; font-weight:bold; color: #333333; text-align:left;line-height: 24px; padding-top:10px; padding-left:15px;\"><a href=\"#\" style=\"color:#136388;text-decoration:none;font-weight:bold;\" target=\"_blank\" title=\"read more\">Read More</a></td>\n  																	</tr>\n  																	<!-- /button --><!-- Spacing -->\n  																	<tr>\n  																		<td height=\"20\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\">&nbsp;</td>\n  																	</tr>\n  																	<!-- Spacing --><!-- end of content -->\n  																</tbody>\n  															</table>\n  															</td>\n  														</tr>\n  													</tbody>\n  												</table>\n  												</td>\n  											</tr>\n  										</tbody>\n  									</table>\n  									</td>\n  								</tr>\n  							</tbody>\n  						</table>\n  						</td>\n  					</tr>\n  				</tbody>\n  			</table>\n  			</td>\n  		</tr>\n  	</tbody>\n  </table>\n  <!-- /story 2--><!-- banner1 -->\n\n  <table bgcolor=\"#d8d8d8\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" id=\"backgroundTable\" st-sortable=\"left-image\" width=\"100%\">\n  	<tbody>\n  		<tr>\n  			<td>\n  			<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"650\">\n  				<tbody>\n  					<tr>\n  						<td width=\"100%\">\n  						<table align=\"center\" bgcolor=\"#ffffff\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"650\">\n  							<tbody><!-- Spacing -->\n  								<tr>\n  									<td>\n  									<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"650\">\n  										<tbody>\n  											<tr>\n  												<td width=\"100%\">\n  												<table align=\"center\" bgcolor=\"#89c66b\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"650\">\n  													<tbody>\n  														<tr>\n  															<td>\n  															<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidthinner\" width=\"650\">\n  																<tbody><!-- image -->\n  																	<tr>\n  																		<td align=\"center\" class=\"devicewidthinner\" width=\"100%\">\n  																		<div class=\"imgpop\"><a href=\"#\" target=\"_blank\"><img alt=\"\" border=\"0\" class=\"blog\" height=\"auto\" src=\"https://civicrm.org/sites/default/files/civicrm/custom/images/banner-image-650-250.png\" style=\"display:block; border:none; outline:none; text-decoration:none; padding:0; line-height:0;\" width=\"650\" /></a></div>\n  																		</td>\n  																	</tr>\n  																	<!-- /image --><!-- content --><!-- Spacing -->\n  																	<tr>\n  																		<td height=\"15\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\" width=\"100%\">&nbsp;</td>\n  																	</tr>\n  																	<!-- /Spacing -->\n  																	<tr>\n  																		<td style=\"padding:15px;\">\n  																		<p style=\"font-family: Helvetica, arial, sans-serif; font-size: 16px; color: #f0f0f0; text-align:left; line-height: 26px; padding-bottom:10px;\">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna </p>\n  																		</td>\n  																	</tr>\n  																	<!-- /button --><!-- white button -->\n  																	<!-- /button --><!-- Spacing --><!-- end of content -->\n  																</tbody>\n  															</table>\n  															</td>\n  														</tr>\n  													</tbody>\n  												</table>\n  												</td>\n  											</tr>\n  										</tbody>\n  									</table>\n  									</td>\n  								</tr>\n  							</tbody>\n  						</table>\n  						</td>\n  					</tr>\n  				</tbody>\n  			</table>\n  			</td>\n  		</tr>\n  	</tbody>\n  </table>\n  <!-- /banner 1--><!-- banner 2 -->\n\n  <table bgcolor=\"#d8d8d8\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" id=\"backgroundTable\" st-sortable=\"left-image\" width=\"100%\">\n  	<tbody>\n  		<tr>\n  			<td>\n  			<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"650\">\n  				<tbody>\n  					<tr>\n  						<td width=\"100%\">\n  						<table align=\"center\" bgcolor=\"#ffffff\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"650\">\n  							<tbody><!-- Spacing -->\n  								<tr>\n  									<td>\n  									<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"650\">\n  										<tbody>\n  											<tr>\n  												<td width=\"100%\">\n  												<table align=\"center\" bgcolor=\"#136388\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"650\">\n  													<tbody>\n  														<tr>\n  															<td>\n  															<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidthinner\" width=\"650\">\n  																<tbody><!-- image -->\n  																	<tr>\n  																		<td align=\"center\" class=\"devicewidthinner\" width=\"100%\">\n  																		<div class=\"imgpop\"><a href=\"#\" target=\"_blank\"><img alt=\"\" border=\"0\" class=\"blog\" height=\"auto\" src=\"https://civicrm.org/sites/default/files/civicrm/custom/images/banner-image-650-250.png\" style=\"display:block; border:none; outline:none; text-decoration:none; padding:0; line-height:0;\" width=\"650\" /></a></div>\n  																		</td>\n  																	</tr>\n  																	<!-- /image --><!-- content --><!-- Spacing -->\n  																	<tr>\n  																		<td height=\"15\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\" width=\"100%\">&nbsp;</td>\n  																	</tr>\n  																	<!-- /Spacing -->\n  																	<tr>\n  																		<td style=\"padding: 15px;\">\n  																		<p style=\"font-family: Helvetica, arial, sans-serif; font-size: 16px; color: #f0f0f0; text-align:left; line-height: 26px; padding-bottom:10px;\">Remember to link the facebook and twitter links below to your pages!</p>\n  																		</td>\n  																	</tr>\n  																	<!-- /button --><!-- white button -->\n  																	<tr>\n  																		<td class=\"padding-right15\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 16px; font-weight:bold; color: #333333; text-align:left;line-height: 24px; padding-top:10px; padding-bottom:10px; padding-left:15px;\"><a href=\"#\" style=\"color:#ffffff;text-decoration:none;font-weight:bold;\" target=\"_blank\" title=\"read more\">Read More</a></td>\n  																	</tr>\n  																	<!-- /button --><!-- Spacing --><!-- end of content -->\n  																</tbody>\n  															</table>\n  															</td>\n  														</tr>\n  													</tbody>\n  												</table>\n  												</td>\n  											</tr>\n  										</tbody>\n  									</table>\n  									</td>\n  								</tr>\n  							</tbody>\n  						</table>\n  						</td>\n  					</tr>\n  				</tbody>\n  			</table>\n  			</td>\n  		</tr>\n  	</tbody>\n  </table>\n  <!-- /banner2 --><!-- footer -->\n\n  <table bgcolor=\"#d8d8d8\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" id=\"backgroundTable\" st-sortable=\"footer\" width=\"100%\">\n  	<tbody>\n  		<tr>\n  			<td>\n  			<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"650\">\n  				<tbody>\n  					<tr>\n  						<td width=\"100%\">\n  						<table align=\"center\" bgcolor=\"#89c66b\"  border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"650\">\n  							<tbody><!-- Spacing -->\n  								<tr>\n  									<td height=\"10\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\">&nbsp;</td>\n  								</tr>\n  								<!-- Spacing -->\n  								<tr>\n  									<td><!-- logo -->\n  									<table align=\"left\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"250\">\n  										<tbody>\n  											<tr>\n  												<td width=\"20\">&nbsp;</td>\n  												<td align=\"left\" height=\"40\" width=\"250\"><span style=\"font-family: Helvetica, arial, sans-serif; font-size: 13px; text-align:left; line-height: 26px; padding-bottom:10px;\"><a href=\"{action.unsubscribeUrl}\" style=\"color: #f0f0f0; \">Unsubscribe | </a><a href=\"{action.subscribeUrl}\"  style=\"color: #f0f0f0;\">Subscribe |</a> <a href=\"{action.optOutUrl}\" style=\"color: #f0f0f0;\">Opt out</a></span></td>\n  											</tr>\n  											<tr>\n  												<td width=\"20\">&nbsp;</td>\n  												<td align=\"left\" height=\"40\" width=\"250\"><span style=\"font-family: Helvetica, arial, sans-serif; font-size: 13px; text-align:left; line-height: 26px; padding-bottom:10px; color: #f0f0f0;\">{domain.address}</span></td>\n  											</tr>\n  										</tbody>\n  									</table>\n  									<!-- end of logo --><!-- start of social icons -->\n\n  									<table align=\"right\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" height=\"40\" vaalign=\"middle\" width=\"60\">\n  										<tbody>\n  											<tr>\n  												<td align=\"left\" height=\"22\" width=\"22\">\n  												<div class=\"imgpop\"><a href=\"#\" target=\"_blank\"><img alt=\"\" border=\"0\" height=\"22\" src=\"https://civicrm.org/sites/default/files/civicrm/custom/images/facebook.png\" style=\"display:block; border:none; outline:none; text-decoration:none;\" width=\"22\" /> </a></div>\n  												</td>\n  												<td align=\"left\" style=\"font-size:1px; line-height:1px;\" width=\"10\">&nbsp;</td>\n  												<td align=\"right\" height=\"22\" width=\"22\">\n  												<div class=\"imgpop\"><a href=\"#\" target=\"_blank\"><img alt=\"\" border=\"0\" height=\"22\" src=\"https://civicrm.org/sites/default/files/civicrm/custom/images/twitter.png\" style=\"display:block; border:none; outline:none; text-decoration:none;\" width=\"22\" /> </a></div>\n  												</td>\n  												<td align=\"left\" style=\"font-size:1px; line-height:1px;\" width=\"20\">&nbsp;</td>\n  											</tr>\n  										</tbody>\n  									</table>\n  									<!-- end of social icons --></td>\n  								</tr>\n  								<!-- Spacing -->\n  								<tr>\n  									<td height=\"10\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\">&nbsp;</td>\n  								</tr>\n  								<!-- Spacing -->\n  							</tbody>\n  						</table>\n  						</td>\n  					</tr>\n  				</tbody>\n  			</table>\n  			</td>\n  		</tr>\n  	</tbody>\n  </table>\n\n</body>\n</html>\n',1,NULL,1,0,0,NULL),(67,'Sample Responsive Design Newsletter - Two Column Template','Sample Responsive Design Newsletter - Two Column','','<html xmlns=\"http://www.w3.org/1999/xhtml\">\n  <meta content=\"text/html; charset=utf-8\" http-equiv=\"Content-Type\" />\n  <meta content=\"width=device-width, initial-scale=1.0\" name=\"viewport\" />\n  <title></title>\n  <style type=\"text/css\">\n     {literal}\n     img {height: auto !important;}\n     /* Client-specific Styles */\n     #outlook a {padding:0;} /* Force Outlook to provide a \"view in browser\" menu link. */\n     body{width:100% !important; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%; margin:0; padding:0;}\n\n     /* Prevent Webkit and Windows Mobile platforms from changing default font sizes, while not breaking desktop design. */\n     .ExternalClass {width:100%;} /* Force Hotmail to display emails at full width */\n     .ExternalClass, .ExternalClass p, .ExternalClass span, .ExternalClass font, .ExternalClass td, .ExternalClass div {line-height: 100%;} /* Force Hotmail to display normal line spacing. */\n     #backgroundTable {margin:0; padding:0; width:100% !important; line-height: 100% !important;}\n     img {outline:none; text-decoration:none;border:none; -ms-interpolation-mode: bicubic;}\n     a img {border:none;}\n     .image_fix {display:block;}\n     p {margin: 0px 0px !important;}\n     table td {border-collapse: collapse;}\n     table { border-collapse:collapse; mso-table-lspace:0pt; mso-table-rspace:0pt; }\n     a {/*color: #33b9ff;*/text-decoration: none;text-decoration:none!important;}\n\n\n     /*STYLES*/\n     table[class=full] { width: 100%; clear: both; }\n\n     /*IPAD STYLES*/\n     @media only screen and (max-width: 640px) {\n     a[href^=\"tel\"], a[href^=\"sms\"] {text-decoration: none;color: #0a8cce;pointer-events: none;cursor: default;}\n     .mobile_link a[href^=\"tel\"], .mobile_link a[href^=\"sms\"] {text-decoration: default;color: #0a8cce !important;pointer-events: auto;cursor: default;}\n     table[class=devicewidth] {width: 440px!important;text-align:center!important;}\n     table[class=devicewidthmob] {width: 414px!important;text-align:center!important;}\n     table[class=devicewidthinner] {width: 414px!important;text-align:center!important;}\n     img[class=banner] {width: 440px!important;auto!important;}\n     img[class=col2img] {width: 440px!important;height:auto!important;}\n     table[class=\"cols3inner\"] {width: 100px!important;}\n     table[class=\"col3img\"] {width: 131px!important;}\n     img[class=\"col3img\"] {width: 131px!important;height: auto!important;}\n     table[class=\"removeMobile\"]{width:10px!important;}\n     img[class=\"blog\"] {width: 440px!important;height: auto!important;}\n     }\n\n     /*IPHONE STYLES*/\n     @media only screen and (max-width: 480px) {\n     a[href^=\"tel\"], a[href^=\"sms\"] {text-decoration: none;color: #0a8cce;pointer-events: none;cursor: default;}\n     .mobile_link a[href^=\"tel\"], .mobile_link a[href^=\"sms\"] {text-decoration: default;color: #0a8cce !important; pointer-events: auto;cursor: default;}\n     table[class=devicewidth] {width: 280px!important;text-align:center!important;}\n     table[class=devicewidthmob] {width: 260px!important;text-align:center!important;}\n     table[class=devicewidthinner] {width: 260px!important;text-align:center!important;}\n     img[class=banner] {width: 280px!important;height:100px!important;}\n     img[class=col2img] {width: 280px!important;height:auto!important;}\n     table[class=\"cols3inner\"] {width: 260px!important;}\n     img[class=\"col3img\"] {width: 280px!important;height: auto!important;}\n     table[class=\"col3img\"] {width: 280px!important;}\n     img[class=\"blog\"] {width: 280px!important;auto!important;}\n     td[class=\"padding-top-right15\"]{padding:15px 15px 0 0 !important;}\n     td[class=\"padding-right15\"]{padding-right:15px !important;}\n     }\n\n     @media only screen and (max-device-width: 800px)\n     {td[class=\"padding-top-right15\"]{padding:15px 15px 0 0 !important;}\n     td[class=\"padding-right15\"]{padding-right:15px !important;}}\n     @media only screen and (max-device-width: 769px) {.devicewidthmob {font-size:14px;}}\n\n     @media only screen and (max-width: 640px) {.desktop-spacer {display:none !important;}\n	   }\n     {/literal}\n  </style>\n  <body>\n    <!-- Start of preheader --><!-- Start of preheader -->\n    <table bgcolor=\"#0B4151\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" id=\"backgroundTable\" width=\"100%\">\n    	<tbody>\n    		<tr>\n    			<td>\n    			<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"700\">\n    				<tbody>\n    					<tr>\n    						<td width=\"100%\">\n    						<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"700\">\n    							<tbody><!-- Spacing -->\n    								<tr>\n    									<td height=\"20\" width=\"100%\">&nbsp;</td>\n    								</tr>\n    								<!-- Spacing -->\n    								<tr>\n    									<td>\n    									<table align=\"left\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidthinner\" width=\"360\">\n    										<tbody>\n    											<tr>\n    												<td align=\"left\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 14px; line-height:120%; color: #f8f8f8;padding-left:15px;\" valign=\"middle\">Organization or Program Name Here</td>\n    											</tr>\n    										</tbody>\n    									</table>\n\n    									<table align=\"right\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"emhide\" width=\"320\">\n    										<tbody>\n    											<tr>\n    												<td align=\"right\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 16px;color: #f8f8f8;padding-right:15px;\" valign=\"middle\">Month Year</td>\n    											</tr>\n    										</tbody>\n    									</table>\n    									</td>\n    								</tr>\n    								<!-- Spacing -->\n    								<tr>\n    									<td height=\"20\" width=\"100%\">&nbsp;</td>\n    								</tr>\n    								<!-- Spacing -->\n    							</tbody>\n    						</table>\n    						</td>\n    					</tr>\n    				</tbody>\n    			</table>\n    			</td>\n    		</tr>\n    	</tbody>\n    </table>\n    <!-- End of preheader --><!-- start of logo -->\n\n    <table bgcolor=\"#d8d8d8\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" id=\"backgroundTable\" st-sortable=\"left-image\" width=\"100%\">\n    	<tbody>\n    		<tr>\n    			<td>\n    			<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidthmob\" width=\"700\">\n    				<tbody>\n    					<tr>\n    						<td width=\"100%\">\n    						<table align=\"center\" bgcolor=\"#ffffff\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"700\">\n    							<tbody><!-- Spacing -->\n    								<tr>\n    									<td height=\"20\" width=\"100%\">\n    									<table align=\"center\" border=\"0\" cellpadding=\"2\" cellspacing=\"0\" width=\"93%\">\n    										<tbody>\n    											<tr>\n                             <td rowspan=\"2\" width=\"330\"><a href=\"#\"> <div class=\"imgpop\"><img src=\"https://civicrm.org/sites/default/files/civicrm/custom/images/civicrm-logo-transparent.png\" alt=\"Replace with your own logo\" width=\"220\" border=\"0\" style=\"display:block;\"/></div></a></td>\n                            <td align=\"right\" >\n    												<h6 class=\"collapse\">&nbsp;</h6>\n    												</td>\n    											</tr>\n    											<tr>\n    												<td align=\"right\">\n\n    												</td>\n    											</tr>\n    										</tbody>\n    									</table>\n    									</td>\n    								</tr>\n\n    							</tbody>\n    						</table>\n    						</td>\n    					</tr>\n    				</tbody>\n    			</table>\n    			</td>\n    		</tr>\n    	</tbody>\n    </table>\n    <!-- end of logo --> <!-- hero story 1 -->\n\n    <table bgcolor=\"#d8d8d8\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" id=\"backgroundTable\" st-sortable=\"left-image\" width=\"101%\">\n    	<tbody>\n    		<tr>\n    			<td>\n    			<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"700\">\n    				<tbody>\n    					<tr>\n    						<td width=\"100%\">\n    						<table align=\"center\" bgcolor=\"#f8f8f8\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"700\">\n    							<tbody>\n    								<tr>\n    									<td>\n    									<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"700\">\n    										<tbody>\n    											<tr>\n    												<td width=\"100%\">\n    												<table align=\"center\" bgcolor=\"#f8f8f8\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"700\">\n    													<tbody><!-- /Spacing -->\n    														<tr>\n    															<td style=\"font-family: Helvetica, arial, sans-serif; font-size: 24px; color:#f8f8f8; text-align:left; line-height: 26px; padding:5px 15px; background-color: #80C457\">Hero Story Heading</td>\n    														</tr>\n    														<!-- Spacing -->\n    														<tr>\n    															<td>\n    															<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidthinner\" width=\"700\">\n    																<tbody><!-- image -->\n    																	<tr>\n    																		<td align=\"center\" class=\"devicewidthinner\" width=\"100%\">\n    																		<div class=\"imgpop\"><a href=\"#\" target=\"_blank\"><img alt=\"\" border=\"0\" class=\"blog\" height=\"396\" src=\"https://civicrm.org/sites/default/files/civicrm/custom/images/700x396.png\" style=\"display:block; border:none; outline:none; text-decoration:none; padding:0; line-height:0;\" width=\"700\" /></a></div>\n    																		</td>\n    																	</tr>\n    																	<!-- /image --><!-- Spacing -->\n    																	<tr>\n    																		<td height=\"15\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\" width=\"100%\">&nbsp;</td>\n    																	</tr>\n    																	<!-- /Spacing --><!-- hero story -->\n    																	<tr>\n    																		<td style=\"font-family: Helvetica, arial, sans-serif; font-size: 18px;  text-align:left; line-height: 26px; padding:0 15px;\"><a href=\"#\" style=\"color:#076187; text-decoration:none; \" target=\"_blank\">Subheading Here</a></td>\n    																	</tr>\n    																	<!-- Spacing -->\n    																	<tr>\n    																		<td height=\"15\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\" width=\"100%\">&nbsp;</td>\n    																	</tr><!-- /Spacing -->\n    																	<tr>\n    																		<td style=\"font-family: Helvetica, arial, sans-serif; font-size: 14px; color: #7a6e67; text-align:left; line-height: 26px; padding:0 15px;\"><span class=\"padding-right15\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 14px; color: #7a6e67; text-align:left; line-height: 24px;\">Replace with your text and images, and remember to link the facebook and twitter links in the footer to your pages. Have fun!</span></td>\n    																	</tr>\n\n    <!-- Spacing -->\n    																	<tr>\n    																		<td height=\"15\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\" width=\"100%\">&nbsp;</td>\n    																	</tr><!-- /Spacing -->\n\n              <!-- /Spacing --><!-- /hero story -->\n\n    																	<!-- Spacing -->                                                            <!-- Spacing -->\n\n\n\n    																	<!-- Spacing --><!-- end of content -->\n    																</tbody>\n    															</table>\n    															</td>\n    														</tr>\n    													</tbody>\n    												</table>\n    												</td>\n    											</tr>\n    										</tbody>\n    									</table>\n    									</td>\n    								</tr>\n    								<!-- Section Heading -->\n    								<tr>\n    									<td style=\"font-family: Helvetica, arial, sans-serif; font-size: 24px; color:#f8f8f8; text-align:left; line-height: 26px; padding:5px 15px; background-color: #80C457\">Section Heading Here</td>\n    								</tr>\n    								<!-- /Section Heading -->\n    							</tbody>\n    						</table>\n    						</td>\n    					</tr>\n    				</tbody>\n    			</table>\n    			</td>\n    		</tr>\n    	</tbody>\n    </table>\n    <!-- /hero story 1 --><!-- story one -->\n\n    <table bgcolor=\"#d8d8d8\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" id=\"backgroundTable\" st-sortable=\"left-image\" width=\"100%\">\n    	<tbody>\n    		<tr>\n    			<td>\n    			<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"700\">\n    				<tbody>\n    					<tr>\n    						<td width=\"100%\">\n    						<table align=\"center\" bgcolor=\"#ffffff\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"700\">\n    							<tbody><!-- Spacing -->\n    								<tr>\n    									<td class=\"desktop-spacer\" height=\"20\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\">&nbsp;</td>\n    								</tr>\n    								<!-- Spacing -->\n    								<tr>\n    									<td>\n    									<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"660\">\n    										<tbody>\n    											<tr>\n    												<td><!-- Start of left column -->\n    												<table align=\"left\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"330\">\n    													<tbody><!-- image -->\n    														<tr>\n    															<td align=\"center\" class=\"devicewidth\" height=\"150\" valign=\"top\" width=\"330\"><a href=\"#\"><img alt=\"\" border=\"0\" class=\"col2img\" src=\"https://civicrm.org/sites/default/files/civicrm/custom/images/330x150.png\" style=\"display:block; border:none; outline:none; text-decoration:none; display:block;\" width=\"330\" /></a></td>\n    														</tr>\n    														<!-- /image -->\n    													</tbody>\n    												</table>\n    												<!-- end of left column --><!-- spacing for mobile devices-->\n\n    												<table align=\"left\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"mobilespacing\">\n    													<tbody>\n    														<tr>\n    															<td height=\"15\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\" width=\"100%\">&nbsp;</td>\n    														</tr>\n    													</tbody>\n    												</table>\n    												<!-- end of for mobile devices--><!-- start of right column -->\n\n    												<table align=\"right\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidthmob\" width=\"310\">\n    													<tbody>\n    														<tr>\n    															<td class=\"padding-top-right15\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 18px; text-align:left; line-height: 24px;\"><a href=\"#\" style=\"color:#076187; text-decoration:none; \" target=\"_blank\">Heading Here</a><a href=\"#\" style=\"color:#076187; text-decoration:none;\" target=\"_blank\" title=\"CiviCRM helps keep the “City Beautiful” Movement”going strong\"></a></td>\n    														</tr>\n    														<!-- end of title --><!-- Spacing -->\n    														<tr>\n    															<td height=\"15\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\" width=\"100%\">&nbsp;</td>\n    														</tr>\n    														<!-- /Spacing --><!-- content -->\n    														<tr>\n    															<td class=\"padding-right15\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 14px; color: #7a6e67; text-align:left; line-height: 24px;\"><span class=\"padding-right15\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 14px; color: #7a6e67; text-align:left; line-height: 24px;\">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod\n                                                                tempor incididunt ut labore et dolore magna </span></td>\n    														</tr>\n    														<tr>\n    															<td class=\"padding-right15\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 14px; font-weight:bold; color: #333333; text-align:left;line-height: 24px; padding-top:10px;\"><a href=\"#\" style=\"color:#80C457;text-decoration:none;font-weight:bold;\" target=\"_blank\" title=\"CiviCRM helps keep the “City Beautiful” Movement”going strong\">Read More</a></td>\n    														</tr>\n    														<!-- /button --><!-- end of content -->\n    													</tbody>\n    												</table>\n    												<!-- end of right column --></td>\n    											</tr>\n    										</tbody>\n    									</table>\n    									</td>\n    								</tr>\n    								<!-- Spacing -->\n    								<tr>\n    									<td height=\"20\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\">&nbsp;</td>\n    								</tr>\n    							</tbody>\n    						</table>\n    						</td>\n    					</tr>\n    				</tbody>\n    			</table>\n    			</td>\n    		</tr>\n    	</tbody>\n    </table>\n    <!-- /story one -->\n    <!-- story two -->\n\n    <table bgcolor=\"#d8d8d8\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" id=\"backgroundTable\" st-sortable=\"left-image\" width=\"100%\">\n    	<tbody>\n    		<tr>\n    			<td>\n    			<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"700\">\n    				<tbody>\n    					<tr>\n    						<td width=\"100%\">\n    						<table align=\"center\" bgcolor=\"#ffffff\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"700\">\n    							<tbody><!-- Spacing -->\n    								<tr>\n    									<td bgcolor=\"#076187\" height=\"0\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\">&nbsp;</td>\n    								</tr>\n    								<!-- Spacing --><!-- Spacing -->\n    								<tr>\n    									<td class=\"desktop-spacer\" height=\"20\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\">&nbsp;</td>\n    								</tr>\n    								<!-- Spacing -->\n    								<tr>\n    									<td>\n    									<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"660\">\n    										<tbody>\n    											<tr>\n    												<td><!-- Start of left column -->\n    												<table align=\"left\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"330\">\n    													<tbody><!-- image -->\n    														<tr>\n    															<td align=\"center\" class=\"devicewidth\" height=\"150\" valign=\"top\" width=\"330\"><a href=\"#\"><img alt=\"\" border=\"0\" class=\"col2img\" src=\"https://civicrm.org/sites/default/files/civicrm/custom/images/330x150.png\" style=\"display:block; border:none; outline:none; text-decoration:none; display:block;\" width=\"330\" /></a></td>\n    														</tr>\n    														<!-- /image -->\n    													</tbody>\n    												</table>\n    												<!-- end of left column --><!-- spacing for mobile devices-->\n\n    												<table align=\"left\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"mobilespacing\">\n    													<tbody>\n    														<tr>\n    															<td height=\"15\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\" width=\"100%\">&nbsp;</td>\n    														</tr>\n    													</tbody>\n    												</table>\n    												<!-- end of for mobile devices--><!-- start of right column -->\n\n    												<table align=\"right\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidthmob\" width=\"310\">\n    													<tbody>\n    														<tr>\n    															<td class=\"padding-top-right15\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 18px; text-align:left; line-height: 24px;\"><a href=\"#\" style=\"color:#076187; text-decoration:none; \" target=\"_blank\">Heading Here</a><a href=\"#\" style=\"color:#076187; text-decoration:none;\" target=\"_blank\" title=\"How CiviCRM will take Tribodar Eco Learning Center to another level\"></a></td>\n    														</tr>\n    														<!-- end of title --><!-- Spacing -->\n    														<tr>\n    															<td height=\"15\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\" width=\"100%\">&nbsp;</td>\n    														</tr>\n    														<!-- /Spacing --><!-- content -->\n    														<tr>\n    															<td class=\"padding-right15\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 14px; color: #7a6e67; text-align:left; line-height: 24px;\"><span class=\"padding-right15\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 14px; color: #7a6e67; text-align:left; line-height: 24px;\">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod\n                                                                tempor incididunt ut labore et dolore magna </span></td>\n    														</tr>\n    														<tr>\n    															<td class=\"padding-right15\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 14px; font-weight:bold; color: #333333; text-align:left;line-height: 24px; padding-top:10px;\"><a href=\"#\" style=\"color:#80C457;text-decoration:none;font-weight:bold;\" target=\"_blank\" title=\"How CiviCRM will take Tribodar Eco Learning Center to another level\">Read More</a></td>\n    														</tr>\n    														<!-- /button --><!-- end of content -->\n    													</tbody>\n    												</table>\n    												<!-- end of right column --></td>\n    											</tr>\n    										</tbody>\n    									</table>\n    									</td>\n    								</tr>\n    								<!-- Spacing -->\n    								<tr>\n    									<td height=\"20\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\">&nbsp;</td>\n    								</tr>\n    							</tbody>\n    						</table>\n    						</td>\n    					</tr>\n    				</tbody>\n    			</table>\n    			</td>\n    		</tr>\n    	</tbody>\n    </table>\n    <!-- /story two --><!-- story three -->\n\n    <table bgcolor=\"#d8d8d8\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" id=\"backgroundTable\" st-sortable=\"left-image\" width=\"100%\">\n    	<tbody>\n    		<tr>\n    			<td>\n    			<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"700\">\n    				<tbody>\n    					<tr>\n    						<td width=\"100%\">\n    						<table align=\"center\" bgcolor=\"#ffffff\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"700\">\n    							<tbody><!-- Spacing -->\n    								<tr>\n    									<td bgcolor=\"#076187\" height=\"0\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\">&nbsp;</td>\n    								</tr>\n    								<!-- Spacing --><!-- Spacing -->\n    								<tr>\n    									<td height=\"20\" class=\"desktop-spacer\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\">&nbsp;</td>\n    								</tr>\n    								<!-- Spacing -->\n    								<tr>\n    									<td>\n    									<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"660\">\n    										<tbody>\n    											<tr>\n    												<td><!-- Start of left column -->\n    												<table align=\"left\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"330\">\n    													<tbody><!-- image -->\n    														<tr>\n    															<td align=\"center\" class=\"devicewidth\" height=\"150\" valign=\"top\" width=\"330\"><a href=\"#\"><img alt=\"\" border=\"0\" class=\"col2img\" src=\"https://civicrm.org/sites/default/files/civicrm/custom/images/330x150.png\" style=\"display:block; border:none; outline:none; text-decoration:none; display:block;\" width=\"330\" /></a></td>\n    														</tr>\n    														<!-- /image -->\n    													</tbody>\n    												</table>\n    												<!-- end of left column --><!-- spacing for mobile devices-->\n\n    												<table align=\"left\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"mobilespacing\">\n    													<tbody>\n    														<tr>\n    															<td height=\"15\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\" width=\"100%\">&nbsp;</td>\n    														</tr>\n    													</tbody>\n    												</table>\n    												<!-- end of for mobile devices--><!-- start of right column -->\n\n    												<table align=\"right\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidthmob\" width=\"310\">\n    													<tbody>\n    														<tr>\n    															<td class=\"padding-top-right15\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 18px;  text-align:left; line-height: 24px;\"><a href=\"#\" style=\"color:#076187; text-decoration:none; \" target=\"_blank\">Heading Here</a><a href=\"#\" style=\"color:#076187; text-decoration:none;\" target=\"_blank\" title=\"CiviCRM provides a soup-to-nuts open-source solution for Friends of the San Pedro River\"></a></td>\n    														</tr>\n    														<!-- end of title --><!-- Spacing -->\n    														<tr>\n    															<td height=\"15\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\" width=\"100%\">&nbsp;</td>\n    														</tr>\n    														<!-- /Spacing --><!-- content -->\n    														<tr>\n    															<td class=\"padding-right15\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 14px; color: #7a6e67; text-align:left; line-height: 24px;\"><span class=\"padding-right15\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 14px; color: #7a6e67; text-align:left; line-height: 24px;\">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod\n                                                                tempor incididunt ut labore et dolore magna </span></td>\n    														</tr>\n    														<tr>\n    															<td style=\"font-family: Helvetica, arial, sans-serif; font-size: 14px; font-weight:bold; color: #333333; text-align:left;line-height: 24px; padding-top:10px;\"><a href=\"#\" style=\"color:#80C457;text-decoration:none;font-weight:bold;\" target=\"_blank\" title=\"CiviCRM provides a soup-to-nuts open-source solution for Friends of the San Pedro River\">Read More</a></td>\n    														</tr>\n    														<!-- /button --><!-- end of content -->\n    													</tbody>\n    												</table>\n    												<!-- end of right column --></td>\n    											</tr>\n    										</tbody>\n    									</table>\n    									</td>\n    								</tr>\n    								<!-- Spacing -->\n    								<tr>\n    									<td height=\"20\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\">&nbsp;</td>\n    								</tr>\n    								<!-- Spacing -->\n    							</tbody>\n    						</table>\n    						</td>\n    					</tr>\n    				</tbody>\n    			</table>\n    			</td>\n    		</tr>\n    	</tbody>\n    </table>\n    <!-- /story three -->\n\n\n\n\n\n    <!-- story four -->\n    <table bgcolor=\"#d8d8d8\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" id=\"backgroundTable\" st-sortable=\"left-image\" width=\"100%\">\n    	<tbody>\n    		<tr>\n    			<td>\n    			<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"700\">\n    				<tbody>\n    					<tr>\n    						<td width=\"100%\">\n    						<table align=\"center\" bgcolor=\"#ffffff\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"700\">\n    							<tbody>\n                                <!-- Spacing -->\n    								<tr>\n    									<td bgcolor=\"#076187\" height=\"0\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\">&nbsp;</td>\n    								</tr>\n    								<!-- Spacing -->\n                                <!-- Spacing -->\n    								<tr>\n    									<td class=\"desktop-spacer\" height=\"20\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\">&nbsp;</td>\n    								</tr>\n    								<!-- Spacing -->\n    								<tr>\n    									<td>\n    									<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"660\">\n    										<tbody>\n    											<tr>\n    												<td><!-- Start of left column -->\n    												<table align=\"left\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"330\">\n    													<tbody><!-- image -->\n    														<tr>\n    															<td align=\"center\" class=\"devicewidth\" height=\"150\" valign=\"top\" width=\"330\"><a href=\"#\"><img alt=\"\" border=\"0\" class=\"col2img\" src=\"https://civicrm.org/sites/default/files/civicrm/custom/images/330x150.png\" style=\"display:block; border:none; outline:none; text-decoration:none; display:block;\" width=\"330\" /></a></td>\n    														</tr>\n    														<!-- /image -->\n    													</tbody>\n    												</table>\n    												<!-- end of left column --><!-- spacing for mobile devices-->\n\n    												<table align=\"left\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"mobilespacing\">\n    													<tbody>\n    														<tr>\n    															<td height=\"15\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\" width=\"100%\">&nbsp;</td>\n    														</tr>\n    													</tbody>\n    												</table>\n    												<!-- end of for mobile devices--><!-- start of right column -->\n\n    												<table align=\"right\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidthmob\" width=\"310\">\n    													<tbody>\n    														<tr>\n    															<td class=\"padding-top-right15\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 18px;text-align:left; line-height: 24px;\"><a href=\"#\" style=\"color:#076187; text-decoration:none; \" target=\"_blank\">Heading Here</a><a href=\"#\" style=\"color:#076187; text-decoration:none;\" target=\"_blank\" title=\"Google Summer of Code\"></a></td>\n    														</tr>\n    														<!-- end of title --><!-- Spacing -->\n    														<tr>\n    															<td height=\"15\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\" width=\"100%\">&nbsp;</td>\n    														</tr>\n    														<!-- /Spacing --><!-- content -->\n    														<tr>\n    															<td class=\"padding-right15\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 14px; color: #7a6e67; text-align:left; line-height: 24px;\"><span class=\"padding-right15\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 14px; color: #7a6e67; text-align:left; line-height: 24px;\">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod\n                                                                tempor incididunt ut labore et dolore magna </span></td>\n    														</tr>\n    														<tr>\n    															<td style=\"font-family: Helvetica, arial, sans-serif; font-size: 14px; font-weight:bold; color: #333333; text-align:left;line-height: 24px; padding-top:10px;\"><a href=\"#\" style=\"color:#80C457;text-decoration:none;font-weight:bold;\" target=\"_blank\" title=\"Google Summer of Code\">Read More</a></td>\n    														</tr>\n    														<!-- /button --><!-- end of content -->\n    													</tbody>\n    												</table>\n    												<!-- end of right column --></td>\n    											</tr>\n    										</tbody>\n    									</table>\n    									</td>\n    								</tr>\n    								<!-- Spacing -->\n    								<tr>\n                       <td height=\"15\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\" width=\"100%\">&nbsp;</td>\n                    </tr>\n                    <!-- /Spacing -->\n                    <tr>\n                      <td style=\"padding: 15px;\">\n                      <p style=\"font-family: Helvetica, arial, sans-serif; font-size: 16px; color:#076187; text-align:left; line-height: 26px; padding-bottom:10px;\">Remember to link the facebook and twitter links below to your pages!</p>\n                      </td>\n    								</tr>\n    								<!-- Spacing -->\n    							</tbody>\n    						</table>\n    						</td>\n    					</tr>\n    				</tbody>\n    			</table>\n    			</td>\n    		</tr>\n    	</tbody>\n    </table>\n    <!-- /story four -->\n\n    <!-- footer -->\n\n    <!-- End of footer --><!-- Start of postfooter -->\n    <table bgcolor=\"#d8d8d8\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" id=\"backgroundTable\" st-sortable=\"footer\" width=\"100%\">\n    	<tbody>\n    		<tr>\n    			<td>\n    			<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"700\">\n            <tbody>\n              <tr>\n                <td width=\"100%\">\n                  <table align=\"center\" bgcolor=\"#89c66b\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"700\">\n    				        <tbody><!-- Spacing -->\n    					        <tr>\n                        <td height=\"10\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\">&nbsp;</td>\n    					        </tr>\n    					        <!-- Spacing -->\n    					        <tr>\n                        <td><!-- logo -->\n                        <table align=\"left\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"250\">\n            							<tbody>\n            								<tr>\n                               <td width=\"20\">&nbsp;</td>\n                              <td align=\"left\" height=\"40\" width=\"250\"><span style=\"font-family: Helvetica, arial, sans-serif; font-size: 13px; text-align:left; line-height: 26px; padding-bottom:10px;\"><a href=\"{action.unsubscribeUrl}\" style=\"color: #f0f0f0;\">Unsubscribe | </a><a href=\"{action.subscribeUrl}\" style=\"color: #f0f0f0;\">Subscribe |</a> <a href=\"{action.optOutUrl}\" style=\"color: #f0f0f0;\">Opt out</a></span></td>\n                            </tr>\n      											<tr>\n      												<td width=\"20\">&nbsp;</td>\n      												<td align=\"left\" height=\"40\" width=\"250\"><span style=\"font-family: Helvetica, arial, sans-serif; font-size: 13px; text-align:left; line-height: 26px; padding-bottom:10px; color: #f0f0f0;\">{domain.address}</span></td>\n      											</tr>\n                          </tbody>\n                        </table>\n                        <!-- end of logo --><!-- start of social icons -->\n      									<table align=\"right\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" height=\"40\" vaalign=\"middle\" width=\"60\">\n      										<tbody>\n      											<tr>\n      												<td align=\"left\" height=\"22\" width=\"22\">\n                                <div class=\"imgpop\"><a href=\"#\" target=\"_blank\"><img alt=\"\" border=\"0\" height=\"22\" src=\"https://civicrm.org/sites/default/files/civicrm/custom/images/facebook.png\" style=\"display:block; border:none; outline:none; text-decoration:none;\" width=\"22\" /> </a></div>      											  </td>\n      												<td align=\"left\" style=\"font-size:1px; line-height:1px;\" width=\"10\">&nbsp;</td>\n      												<td align=\"right\" height=\"22\" width=\"22\">\n      												<div class=\"imgpop\"><a href=\"#\" target=\"_blank\"><img alt=\"\" border=\"0\" height=\"22\" src=\"https://civicrm.org/sites/default/files/civicrm/custom/images/twitter.png\" style=\"display:block; border:none; outline:none; text-decoration:none;\" width=\"22\" /> </a></div>\n      												</td>\n      												<td align=\"left\" style=\"font-size:1px; line-height:1px;\" width=\"20\">&nbsp;</td>\n      											</tr>\n      										</tbody>\n      									</table>\n    									<!-- end of social icons --></td>\n    								</tr>\n    								<!-- Spacing -->\n    								<tr>\n    									<td height=\"10\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\">&nbsp;</td>\n    								</tr>\n    								<!-- Spacing -->\n    								<tr>\n    									<td bgcolor=\"#80C457\" height=\"10\" width=\"100%\">&nbsp;</td>\n    								</tr>\n    								<!-- Spacing -->\n    							</tbody>\n    						</table>\n    						</td>\n    					</tr>\n    				</tbody>\n    			</table>\n    			</td>\n    		</tr>\n    	</tbody>\n    </table>\n    <!-- End of footer -->\n  </body>\n</html>\n',1,NULL,1,0,0,NULL);
 /*!40000 ALTER TABLE `civicrm_msg_template` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -986,7 +986,7 @@ UNLOCK TABLES;
 
 LOCK TABLES `civicrm_note` WRITE;
 /*!40000 ALTER TABLE `civicrm_note` DISABLE KEYS */;
-INSERT INTO `civicrm_note` (`id`, `entity_table`, `entity_id`, `note`, `contact_id`, `modified_date`, `subject`, `privacy`) VALUES (1,'civicrm_contact',73,'Arrange collection of funds from members',1,'2018-12-31',NULL,'0'),(2,'civicrm_contact',106,'Chart out route map for next 10k run',1,'2019-10-22',NULL,'0'),(3,'civicrm_contact',160,'Invite members for the Steve Prefontaine 10k dream run',1,'2019-08-17',NULL,'0'),(4,'civicrm_contact',77,'Get the registration done for NGO status',1,'2019-07-04',NULL,'0'),(5,'civicrm_contact',68,'Organize the Terry Fox run',1,'2019-01-02',NULL,'0'),(6,'civicrm_contact',105,'Send newsletter for April 2005',1,'2019-01-13',NULL,'0'),(7,'civicrm_contact',140,'Reminder screening of \"Black\" on next Friday',1,'2019-09-18',NULL,'0'),(8,'civicrm_contact',185,'Send newsletter for April 2005',1,'2019-09-01',NULL,'0'),(9,'civicrm_contact',195,'Send newsletter for April 2005',1,'2019-04-06',NULL,'0'),(10,'civicrm_contact',134,'Reminder screening of \"Black\" on next Friday',1,'2019-09-25',NULL,'0'),(11,'civicrm_contact',112,'Get the registration done for NGO status',1,'2019-08-20',NULL,'0'),(12,'civicrm_contact',100,'Connect for presentation',1,'2019-04-13',NULL,'0'),(13,'civicrm_contact',69,'Invite members for the Steve Prefontaine 10k dream run',1,'2019-01-13',NULL,'0'),(14,'civicrm_contact',140,'Arrange collection of funds from members',1,'2019-01-03',NULL,'0'),(15,'civicrm_contact',126,'Reminder screening of \"Black\" on next Friday',1,'2018-12-01',NULL,'0'),(16,'civicrm_contact',166,'Arrange for cricket match with Sunil Gavaskar',1,'2019-04-12',NULL,'0'),(17,'civicrm_contact',28,'Invite members for the Steve Prefontaine 10k dream run',1,'2019-03-23',NULL,'0'),(18,'civicrm_contact',55,'Send reminder for annual dinner',1,'2019-09-04',NULL,'0'),(19,'civicrm_contact',157,'Reminder screening of \"Black\" on next Friday',1,'2019-09-17',NULL,'0'),(20,'civicrm_contact',69,'Connect for presentation',1,'2019-03-03',NULL,'0');
+INSERT INTO `civicrm_note` (`id`, `entity_table`, `entity_id`, `note`, `contact_id`, `modified_date`, `subject`, `privacy`) VALUES (1,'civicrm_contact',159,'Contact the Commissioner of Charities',1,'2019-01-21',NULL,'0'),(2,'civicrm_contact',83,'Connect for presentation',1,'2019-05-07',NULL,'0'),(3,'civicrm_contact',186,'Send newsletter for April 2005',1,'2019-02-05',NULL,'0'),(4,'civicrm_contact',45,'Arrange for cricket match with Sunil Gavaskar',1,'2019-07-21',NULL,'0'),(5,'civicrm_contact',120,'Contact the Commissioner of Charities',1,'2019-05-02',NULL,'0'),(6,'civicrm_contact',74,'Invite members for the Steve Prefontaine 10k dream run',1,'2019-05-02',NULL,'0'),(7,'civicrm_contact',175,'Send newsletter for April 2005',1,'2019-10-24',NULL,'0'),(8,'civicrm_contact',85,'Send reminder for annual dinner',1,'2019-01-24',NULL,'0'),(9,'civicrm_contact',73,'Invite members for the Steve Prefontaine 10k dream run',1,'2019-09-04',NULL,'0'),(10,'civicrm_contact',197,'Organize the Terry Fox run',1,'2020-01-16',NULL,'0'),(11,'civicrm_contact',46,'Chart out route map for next 10k run',1,'2019-07-05',NULL,'0'),(12,'civicrm_contact',120,'Arrange for cricket match with Sunil Gavaskar',1,'2019-09-27',NULL,'0'),(13,'civicrm_contact',183,'Send reminder for annual dinner',1,'2019-12-15',NULL,'0'),(14,'civicrm_contact',103,'Invite members for the Steve Prefontaine 10k dream run',1,'2019-07-22',NULL,'0'),(15,'civicrm_contact',93,'Send newsletter for April 2005',1,'2020-01-07',NULL,'0'),(16,'civicrm_contact',144,'Chart out route map for next 10k run',1,'2019-11-06',NULL,'0'),(17,'civicrm_contact',109,'Chart out route map for next 10k run',1,'2019-05-08',NULL,'0'),(18,'civicrm_contact',71,'Chart out route map for next 10k run',1,'2019-05-05',NULL,'0'),(19,'civicrm_contact',47,'Invite members for the Steve Prefontaine 10k dream run',1,'2019-07-23',NULL,'0'),(20,'civicrm_contact',44,'Organize the Terry Fox run',1,'2019-12-15',NULL,'0');
 /*!40000 ALTER TABLE `civicrm_note` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -1015,7 +1015,7 @@ UNLOCK TABLES;
 
 LOCK TABLES `civicrm_option_value` WRITE;
 /*!40000 ALTER TABLE `civicrm_option_value` DISABLE KEYS */;
-INSERT INTO `civicrm_option_value` (`id`, `option_group_id`, `label`, `value`, `name`, `grouping`, `filter`, `is_default`, `weight`, `description`, `is_optgroup`, `is_reserved`, `is_active`, `component_id`, `domain_id`, `visibility_id`, `icon`, `color`) VALUES (1,1,'Phone','1','Phone',NULL,0,NULL,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(2,1,'Email','2','Email',NULL,0,NULL,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(3,1,'Postal Mail','3','Postal Mail',NULL,0,NULL,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(4,1,'SMS','4','SMS',NULL,0,NULL,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(5,1,'Fax','5','Fax',NULL,0,NULL,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(6,2,'Meeting','1','Meeting',NULL,0,NULL,1,NULL,0,1,1,NULL,NULL,NULL,'fa-slideshare',NULL),(7,2,'Phone Call','2','Phone Call',NULL,0,NULL,2,NULL,0,1,1,NULL,NULL,NULL,'fa-phone',NULL),(8,2,'Email','3','Email',NULL,1,NULL,3,'Email sent.',0,1,1,NULL,NULL,NULL,'fa-envelope-o',NULL),(9,2,'Outbound SMS','4','SMS',NULL,1,NULL,4,'Text message (SMS) sent.',0,1,1,NULL,NULL,NULL,'fa-mobile',NULL),(10,2,'Event Registration','5','Event Registration',NULL,1,NULL,5,'Online or offline event registration.',0,1,1,1,NULL,NULL,NULL,NULL),(11,2,'Contribution','6','Contribution',NULL,1,NULL,6,'Online or offline contribution.',0,1,1,2,NULL,NULL,NULL,NULL),(12,2,'Membership Signup','7','Membership Signup',NULL,1,NULL,7,'Online or offline membership signup.',0,1,1,3,NULL,NULL,NULL,NULL),(13,2,'Membership Renewal','8','Membership Renewal',NULL,1,NULL,8,'Online or offline membership renewal.',0,1,1,3,NULL,NULL,NULL,NULL),(14,2,'Tell a Friend','9','Tell a Friend',NULL,1,NULL,9,'Send information about a contribution campaign or event to a friend.',0,1,1,NULL,NULL,NULL,NULL,NULL),(15,2,'Pledge Acknowledgment','10','Pledge Acknowledgment',NULL,1,NULL,10,'Send Pledge Acknowledgment.',0,1,1,6,NULL,NULL,NULL,NULL),(16,2,'Pledge Reminder','11','Pledge Reminder',NULL,1,NULL,11,'Send Pledge Reminder.',0,1,1,6,NULL,NULL,NULL,NULL),(17,2,'Inbound Email','12','Inbound Email',NULL,1,NULL,12,'Inbound Email.',0,1,1,NULL,NULL,NULL,NULL,NULL),(18,2,'Open Case','13','Open Case',NULL,0,0,13,'',0,1,1,7,NULL,NULL,'fa-folder-open-o',NULL),(19,2,'Follow up','14','Follow up',NULL,0,0,14,'',0,1,1,7,NULL,NULL,'fa-share-square-o',NULL),(20,2,'Change Case Type','15','Change Case Type',NULL,0,0,15,'',0,1,1,7,NULL,NULL,'fa-random',NULL),(21,2,'Change Case Status','16','Change Case Status',NULL,0,0,16,'',0,1,1,7,NULL,NULL,'fa-pencil-square-o',NULL),(22,2,'Change Case Subject','53','Change Case Subject',NULL,0,0,53,'',0,1,1,7,NULL,NULL,'fa-pencil-square-o',NULL),(23,2,'Change Custom Data','33','Change Custom Data',NULL,0,0,33,'',0,1,1,7,NULL,NULL,'fa-table',NULL),(24,2,'Membership Renewal Reminder','17','Membership Renewal Reminder',NULL,1,NULL,17,'offline membership renewal reminder.',0,1,1,3,NULL,NULL,NULL,NULL),(25,2,'Change Case Start Date','18','Change Case Start Date',NULL,0,0,18,'',0,1,1,7,NULL,NULL,'fa-calendar',NULL),(26,2,'Bulk Email','19','Bulk Email',NULL,1,NULL,19,'Bulk Email Sent.',0,1,1,NULL,NULL,NULL,NULL,NULL),(27,2,'Assign Case Role','20','Assign Case Role',NULL,0,0,20,'',0,1,1,7,NULL,NULL,'fa-user-plus',NULL),(28,2,'Remove Case Role','21','Remove Case Role',NULL,0,0,21,'',0,1,1,7,NULL,NULL,'fa-user-times',NULL),(29,2,'Print/Merge Document','22','Print PDF Letter',NULL,0,NULL,22,'Export letters and other printable documents.',0,1,1,NULL,NULL,NULL,'fa-file-pdf-o',NULL),(30,2,'Merge Case','23','Merge Case',NULL,0,NULL,23,'',0,1,1,7,NULL,NULL,'fa-compress',NULL),(31,2,'Reassigned Case','24','Reassigned Case',NULL,0,NULL,24,'',0,1,1,7,NULL,NULL,'fa-user-circle-o',NULL),(32,2,'Link Cases','25','Link Cases',NULL,0,NULL,25,'',0,1,1,7,NULL,NULL,'fa-link',NULL),(33,2,'Change Case Tags','26','Change Case Tags',NULL,0,0,26,'',0,1,1,7,NULL,NULL,'fa-tags',NULL),(34,2,'Add Client To Case','27','Add Client To Case',NULL,0,0,26,'',0,1,1,7,NULL,NULL,'fa-users',NULL),(35,2,'Survey','28','Survey',NULL,0,0,27,'',0,1,1,9,NULL,NULL,NULL,NULL),(36,2,'Canvass','29','Canvass',NULL,0,0,28,'',0,1,1,9,NULL,NULL,NULL,NULL),(37,2,'PhoneBank','30','PhoneBank',NULL,0,0,29,'',0,1,1,9,NULL,NULL,NULL,NULL),(38,2,'WalkList','31','WalkList',NULL,0,0,30,'',0,1,1,9,NULL,NULL,NULL,NULL),(39,2,'Petition Signature','32','Petition',NULL,0,0,31,'',0,1,1,9,NULL,NULL,NULL,NULL),(40,2,'Mass SMS','34','Mass SMS',NULL,1,NULL,34,'Mass SMS',0,1,1,NULL,NULL,NULL,NULL,NULL),(41,2,'Change Membership Status','35','Change Membership Status',NULL,1,NULL,35,'Change Membership Status.',0,1,1,3,NULL,NULL,NULL,NULL),(42,2,'Change Membership Type','36','Change Membership Type',NULL,1,NULL,36,'Change Membership Type.',0,1,1,3,NULL,NULL,NULL,NULL),(43,2,'Cancel Recurring Contribution','37','Cancel Recurring Contribution',NULL,1,0,37,'',0,1,1,2,NULL,NULL,NULL,NULL),(44,2,'Update Recurring Contribution Billing Details','38','Update Recurring Contribution Billing Details',NULL,1,0,38,'',0,1,1,2,NULL,NULL,NULL,NULL),(45,2,'Update Recurring Contribution','39','Update Recurring Contribution',NULL,1,0,39,'',0,1,1,2,NULL,NULL,NULL,NULL),(46,2,'Reminder Sent','40','Reminder Sent',NULL,1,0,40,'',0,1,1,NULL,NULL,NULL,NULL,NULL),(47,2,'Export Accounting Batch','41','Export Accounting Batch',NULL,1,0,41,'Export Accounting Batch',0,1,1,2,NULL,NULL,NULL,NULL),(48,2,'Create Batch','42','Create Batch',NULL,1,0,42,'Create Batch',0,1,1,2,NULL,NULL,NULL,NULL),(49,2,'Edit Batch','43','Edit Batch',NULL,1,0,43,'Edit Batch',0,1,1,2,NULL,NULL,NULL,NULL),(50,2,'SMS delivery','44','SMS delivery',NULL,1,NULL,44,'SMS delivery',0,1,1,NULL,NULL,NULL,NULL,NULL),(51,2,'Inbound SMS','45','Inbound SMS',NULL,1,NULL,45,'Inbound SMS',0,1,1,NULL,NULL,NULL,NULL,NULL),(52,2,'Payment','46','Payment',NULL,1,NULL,46,'Additional payment recorded for event or membership fee.',0,1,1,2,NULL,NULL,NULL,NULL),(53,2,'Refund','47','Refund',NULL,1,NULL,47,'Refund recorded for event or membership fee.',0,1,1,2,NULL,NULL,NULL,NULL),(54,2,'Change Registration','48','Change Registration',NULL,1,NULL,48,'Changes to an existing event registration.',0,1,1,1,NULL,NULL,NULL,NULL),(55,2,'Downloaded Invoice','49','Downloaded Invoice',NULL,1,NULL,49,'Downloaded Invoice.',0,1,1,NULL,NULL,NULL,NULL,NULL),(56,2,'Emailed Invoice','50','Emailed Invoice',NULL,1,NULL,50,'Emailed Invoice.',0,1,1,NULL,NULL,NULL,NULL,NULL),(57,2,'Contact Merged','51','Contact Merged',NULL,1,NULL,51,'Contact Merged',0,1,1,NULL,NULL,NULL,NULL,NULL),(58,2,'Contact Deleted by Merge','52','Contact Deleted by Merge',NULL,1,NULL,52,'Contact was merged into another contact',0,1,1,NULL,NULL,NULL,NULL,NULL),(59,2,'Failed Payment','54','Failed Payment',NULL,1,0,54,'Failed Payment',0,1,1,2,NULL,NULL,NULL,NULL),(60,3,'Female','1','Female',NULL,0,NULL,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(61,3,'Male','2','Male',NULL,0,NULL,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(62,3,'Other','3','Other',NULL,0,NULL,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(63,4,'Yahoo','1','Yahoo',NULL,0,NULL,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(64,4,'MSN','2','Msn',NULL,0,NULL,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(65,4,'AIM','3','Aim',NULL,0,NULL,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(66,4,'GTalk','4','Gtalk',NULL,0,NULL,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(67,4,'Jabber','5','Jabber',NULL,0,NULL,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(68,4,'Skype','6','Skype',NULL,0,NULL,6,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(69,5,'Sprint','1','Sprint',NULL,0,NULL,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(70,5,'Verizon','2','Verizon',NULL,0,NULL,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(71,5,'Cingular','3','Cingular',NULL,0,NULL,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(72,6,'Mrs.','1','Mrs.',NULL,0,NULL,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(73,6,'Ms.','2','Ms.',NULL,0,NULL,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(74,6,'Mr.','3','Mr.',NULL,0,NULL,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(75,6,'Dr.','4','Dr.',NULL,0,NULL,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(76,7,'Jr.','1','Jr.',NULL,0,NULL,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(77,7,'Sr.','2','Sr.',NULL,0,NULL,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(78,7,'II','3','II',NULL,0,NULL,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(79,7,'III','4','III',NULL,0,NULL,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(80,7,'IV','5','IV',NULL,0,NULL,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(81,7,'V','6','V',NULL,0,NULL,6,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(82,7,'VI','7','VI',NULL,0,NULL,7,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(83,7,'VII','8','VII',NULL,0,NULL,8,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(84,8,'Administrator','1','Admin',NULL,0,NULL,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(85,8,'Authenticated','2','Auth',NULL,0,NULL,2,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(86,9,'Visa','1','Visa',NULL,0,NULL,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(87,9,'MasterCard','2','MasterCard',NULL,0,NULL,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(88,9,'Amex','3','Amex',NULL,0,NULL,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(89,9,'Discover','4','Discover',NULL,0,NULL,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(90,10,'Credit Card','1','Credit Card',NULL,0,0,1,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(91,10,'Debit Card','2','Debit Card',NULL,0,0,2,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(92,10,'Cash','3','Cash',NULL,0,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(93,10,'Check','4','Check',NULL,0,1,4,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(94,10,'EFT','5','EFT',NULL,0,0,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(95,11,'Completed','1','Completed',NULL,0,NULL,1,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(96,11,'Pending','2','Pending',NULL,0,NULL,2,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(97,11,'Cancelled','3','Cancelled',NULL,0,NULL,3,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(98,11,'Failed','4','Failed',NULL,0,NULL,4,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(99,11,'In Progress','5','In Progress',NULL,0,NULL,5,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(100,11,'Overdue','6','Overdue',NULL,0,NULL,6,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(101,11,'Refunded','7','Refunded',NULL,0,NULL,7,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(102,11,'Partially paid','8','Partially paid',NULL,0,NULL,8,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(103,11,'Pending refund','9','Pending refund',NULL,0,NULL,9,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(104,11,'Chargeback','10','Chargeback',NULL,0,NULL,10,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(105,11,'Template','11','Template',NULL,0,NULL,11,'Status for contribution records which represent a template for a recurring contribution rather than an actual contribution. This status is transitional, to ensure that said contributions don\\\'t appear in reports. The is_template field is the preferred way to find and filter these contributions.',0,1,1,NULL,NULL,NULL,NULL,NULL),(106,12,'Waiting Review','1','Waiting Review',NULL,0,NULL,1,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(107,12,'Approved','2','Approved',NULL,0,NULL,2,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(108,12,'Not Approved','3','Not Approved',NULL,0,NULL,3,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(109,13,'Owner chooses whether to receive notifications','1','owner_chooses',NULL,0,1,1,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(110,13,'Notifications are sent to ALL owners','2','all_owners',NULL,0,0,2,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(111,13,'Notifications are NOT available','3','no_notifications',NULL,0,0,3,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(112,14,'Attendee','1','Attendee',NULL,1,NULL,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(113,14,'Volunteer','2','Volunteer',NULL,1,NULL,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(114,14,'Host','3','Host',NULL,1,NULL,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(115,14,'Speaker','4','Speaker',NULL,1,NULL,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(116,15,'Conference','1','Conference',NULL,0,NULL,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(117,15,'Exhibition','2','Exhibition',NULL,0,NULL,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(118,15,'Fundraiser','3','Fundraiser',NULL,0,NULL,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(119,15,'Meeting','4','Meeting',NULL,0,NULL,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(120,15,'Performance','5','Performance',NULL,0,NULL,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(121,15,'Workshop','6','Workshop',NULL,0,NULL,6,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(122,16,'Activities','1','activity',NULL,0,NULL,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(123,16,'Relationships','2','rel',NULL,0,NULL,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(124,16,'Groups','3','group',NULL,0,NULL,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(125,16,'Notes','4','note',NULL,0,NULL,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(126,16,'Tags','5','tag',NULL,0,NULL,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(127,16,'Change Log','6','log',NULL,0,NULL,6,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(128,16,'Contributions','7','CiviContribute',NULL,0,NULL,7,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(129,16,'Memberships','8','CiviMember',NULL,0,NULL,8,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(130,16,'Events','9','CiviEvent',NULL,0,NULL,9,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(131,16,'Cases','10','CiviCase',NULL,0,NULL,10,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(132,16,'Grants','11','CiviGrant',NULL,0,NULL,11,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(133,16,'Pledges','13','CiviPledge',NULL,0,NULL,13,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(134,16,'Mailings','14','CiviMail',NULL,0,NULL,14,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(135,17,'Show Smart Groups on Demand','1','showondemand',NULL,0,NULL,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(136,17,'Always Show Smart Groups','2','alwaysshow',NULL,0,NULL,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(137,17,'Hide Smart Groups','3','hide',NULL,0,NULL,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(138,18,'Custom Data','1','CustomData',NULL,0,NULL,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(139,18,'Address','2','Address',NULL,0,NULL,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(140,18,'Communication Preferences','3','CommunicationPreferences',NULL,0,NULL,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(141,18,'Notes','4','Notes',NULL,0,NULL,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(142,18,'Demographics','5','Demographics',NULL,0,NULL,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(143,18,'Tags and Groups','6','TagsAndGroups',NULL,0,NULL,6,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(144,18,'Email','7','Email',NULL,1,NULL,7,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(145,18,'Phone','8','Phone',NULL,1,NULL,8,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(146,18,'Instant Messenger','9','IM',NULL,1,NULL,9,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(147,18,'Open ID','10','OpenID',NULL,1,NULL,10,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(148,18,'Website','11','Website',NULL,1,NULL,11,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(149,18,'Prefix','12','Prefix',NULL,2,NULL,12,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(150,18,'Formal Title','13','Formal Title',NULL,2,NULL,13,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(151,18,'First Name','14','First Name',NULL,2,NULL,14,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(152,18,'Middle Name','15','Middle Name',NULL,2,NULL,15,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(153,18,'Last Name','16','Last Name',NULL,2,NULL,16,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(154,18,'Suffix','17','Suffix',NULL,2,NULL,17,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(155,19,'Address Fields','1','location',NULL,0,NULL,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(156,19,'Custom Fields','2','custom',NULL,0,NULL,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(157,19,'Activities','3','activity',NULL,0,NULL,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(158,19,'Relationships','4','relationship',NULL,0,NULL,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(159,19,'Notes','5','notes',NULL,0,NULL,6,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(160,19,'Change Log','6','changeLog',NULL,0,NULL,7,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(161,19,'Contributions','7','CiviContribute',NULL,0,NULL,8,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(162,19,'Memberships','8','CiviMember',NULL,0,NULL,9,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(163,19,'Events','9','CiviEvent',NULL,0,NULL,10,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(164,19,'Cases','10','CiviCase',NULL,0,NULL,11,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(165,19,'Grants','12','CiviGrant',NULL,0,NULL,14,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(166,19,'Demographics','13','demographics',NULL,0,NULL,15,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(167,19,'Pledges','15','CiviPledge',NULL,0,NULL,17,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(168,19,'Contact Type','16','contactType',NULL,0,NULL,18,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(169,19,'Groups','17','groups',NULL,0,NULL,19,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(170,19,'Tags','18','tags',NULL,0,NULL,20,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(171,19,'Mailing','19','CiviMail',NULL,0,NULL,21,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(172,20,'Groups','1','Groups',NULL,0,NULL,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(173,20,'Contributions','2','CiviContribute',NULL,0,NULL,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(174,20,'Memberships','3','CiviMember',NULL,0,NULL,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(175,20,'Events','4','CiviEvent',NULL,0,NULL,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(176,20,'My Contacts / Organizations','5','Permissioned Orgs',NULL,0,NULL,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(177,20,'Pledges','7','CiviPledge',NULL,0,NULL,7,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(178,20,'Personal Campaign Pages','8','PCP',NULL,0,NULL,8,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(179,20,'Assigned Activities','9','Assigned Activities',NULL,0,NULL,9,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(180,20,'Invoices / Credit Notes','10','Invoices / Credit Notes',NULL,0,NULL,10,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(181,45,'Email Address','2','email',NULL,0,NULL,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(182,45,'Phone','3','phone',NULL,0,NULL,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(183,45,'Street Address','4','street_address',NULL,0,NULL,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(184,45,'City','5','city',NULL,0,NULL,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(185,45,'State/Province','6','state_province',NULL,0,NULL,6,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(186,45,'Country','7','country',NULL,0,NULL,7,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(187,45,'Postal Code','8','postal_code',NULL,0,NULL,8,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(188,46,'Email Address','2','email',NULL,0,NULL,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(189,46,'Phone','3','phone',NULL,0,NULL,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(190,46,'Street Address','4','street_address',NULL,0,NULL,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(191,46,'City','5','city',NULL,0,NULL,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(192,46,'State/Province','6','state_province',NULL,0,NULL,6,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(193,46,'Country','7','country',NULL,0,NULL,7,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(194,46,'Postal Code','8','country',NULL,0,NULL,8,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(195,21,'Street Address','1','street_address',NULL,0,NULL,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(196,21,'Supplemental Address 1','2','supplemental_address_1',NULL,0,NULL,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(197,21,'Supplemental Address 2','3','supplemental_address_2',NULL,0,NULL,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(198,21,'Supplemental Address 3','4','supplemental_address_3',NULL,0,NULL,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(199,21,'City','5','city',NULL,0,NULL,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(200,21,'Postal Code','6','postal_code',NULL,0,NULL,6,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(201,21,'Postal Code Suffix','7','postal_code_suffix',NULL,0,NULL,7,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(202,21,'County','8','county',NULL,0,NULL,8,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(203,21,'State/Province','9','state_province',NULL,0,NULL,9,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(204,21,'Country','10','country',NULL,0,NULL,10,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(205,21,'Latitude','11','geo_code_1',NULL,0,NULL,11,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(206,21,'Longitude','12','geo_code_2',NULL,0,NULL,12,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(207,21,'Address Name','13','address_name',NULL,0,NULL,13,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(208,21,'Street Address Parsing','14','street_address_parsing',NULL,0,NULL,14,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(209,22,'Access Control','1','Access Control',NULL,0,NULL,1,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(210,22,'Mailing List','2','Mailing List',NULL,0,NULL,2,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(211,23,'Submitted','1','Submitted',NULL,0,1,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(212,23,'Eligible','2','Eligible',NULL,0,NULL,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(213,23,'Ineligible','3','Ineligible',NULL,0,NULL,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(214,23,'Paid','4','Paid',NULL,0,NULL,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(215,23,'Awaiting Information','5','Awaiting Information',NULL,0,NULL,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(216,23,'Withdrawn','6','Withdrawn',NULL,0,NULL,6,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(217,23,'Approved for Payment','7','Approved for Payment',NULL,0,NULL,7,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(218,25,'CRM_Contact_Form_Search_Custom_Sample','1','CRM_Contact_Form_Search_Custom_Sample',NULL,0,NULL,1,'Household Name and State',0,0,1,NULL,NULL,NULL,NULL,NULL),(219,25,'CRM_Contact_Form_Search_Custom_ContributionAggregate','2','CRM_Contact_Form_Search_Custom_ContributionAggregate',NULL,0,NULL,2,'Contribution Aggregate',0,0,1,NULL,NULL,NULL,NULL,NULL),(220,25,'CRM_Contact_Form_Search_Custom_Group','4','CRM_Contact_Form_Search_Custom_Group',NULL,0,NULL,4,'Include / Exclude Search',0,0,1,NULL,NULL,NULL,NULL,NULL),(221,25,'CRM_Contact_Form_Search_Custom_PostalMailing','5','CRM_Contact_Form_Search_Custom_PostalMailing',NULL,0,NULL,5,'Postal Mailing',0,0,1,NULL,NULL,NULL,NULL,NULL),(222,25,'CRM_Contact_Form_Search_Custom_Proximity','6','CRM_Contact_Form_Search_Custom_Proximity',NULL,0,NULL,6,'Proximity Search',0,0,1,NULL,NULL,NULL,NULL,NULL),(223,25,'CRM_Contact_Form_Search_Custom_EventAggregate','7','CRM_Contact_Form_Search_Custom_EventAggregate',NULL,0,NULL,7,'Event Aggregate',0,0,1,NULL,NULL,NULL,NULL,NULL),(224,25,'CRM_Contact_Form_Search_Custom_ActivitySearch','8','CRM_Contact_Form_Search_Custom_ActivitySearch',NULL,0,NULL,8,'Activity Search',0,0,1,NULL,NULL,NULL,NULL,NULL),(225,25,'CRM_Contact_Form_Search_Custom_PriceSet','9','CRM_Contact_Form_Search_Custom_PriceSet',NULL,0,NULL,9,'Price Set Details for Event Participants',0,0,1,NULL,NULL,NULL,NULL,NULL),(226,25,'CRM_Contact_Form_Search_Custom_ZipCodeRange','10','CRM_Contact_Form_Search_Custom_ZipCodeRange',NULL,0,NULL,10,'Zip Code Range',0,0,1,NULL,NULL,NULL,NULL,NULL),(227,25,'CRM_Contact_Form_Search_Custom_DateAdded','11','CRM_Contact_Form_Search_Custom_DateAdded',NULL,0,NULL,11,'Date Added to CiviCRM',0,0,1,NULL,NULL,NULL,NULL,NULL),(228,25,'CRM_Contact_Form_Search_Custom_MultipleValues','12','CRM_Contact_Form_Search_Custom_MultipleValues',NULL,0,NULL,12,'Custom Group Multiple Values Listing',0,0,1,NULL,NULL,NULL,NULL,NULL),(229,25,'CRM_Contact_Form_Search_Custom_ContribSYBNT','13','CRM_Contact_Form_Search_Custom_ContribSYBNT',NULL,0,NULL,13,'Contributions made in Year X and not Year Y',0,0,1,NULL,NULL,NULL,NULL,NULL),(230,25,'CRM_Contact_Form_Search_Custom_TagContributions','14','CRM_Contact_Form_Search_Custom_TagContributions',NULL,0,NULL,14,'Find Contribution Amounts by Tag',0,0,1,NULL,NULL,NULL,NULL,NULL),(231,25,'CRM_Contact_Form_Search_Custom_FullText','15','CRM_Contact_Form_Search_Custom_FullText',NULL,0,NULL,15,'Full-text Search',0,0,1,NULL,NULL,NULL,NULL,NULL),(232,41,'Constituent Report (Summary)','contact/summary','CRM_Report_Form_Contact_Summary',NULL,0,NULL,1,'Provides a list of address and telephone information for constituent records in your system.',0,0,1,NULL,NULL,NULL,NULL,NULL),(233,41,'Constituent Report (Detail)','contact/detail','CRM_Report_Form_Contact_Detail',NULL,0,NULL,2,'Provides contact-related information on contributions, memberships, events and activities.',0,0,1,NULL,NULL,NULL,NULL,NULL),(234,41,'Activity Details Report','activity','CRM_Report_Form_Activity',NULL,0,NULL,3,'Provides a list of constituent activity including activity statistics for one/all contacts during a given date range(required)',0,0,1,NULL,NULL,NULL,NULL,NULL),(235,41,'Walk / Phone List Report','walklist','CRM_Report_Form_Walklist_Walklist',NULL,0,NULL,4,'Provides a detailed report for your walk/phonelist for targeted contacts',0,0,0,NULL,NULL,NULL,NULL,NULL),(236,41,'Current Employer Report','contact/currentEmployer','CRM_Report_Form_Contact_CurrentEmployer',NULL,0,NULL,5,'Provides detail list of employer employee relationships along with employment details Ex Join Date',0,0,1,NULL,NULL,NULL,NULL,NULL),(237,41,'Contribution Summary Report','contribute/summary','CRM_Report_Form_Contribute_Summary',NULL,0,NULL,6,'Groups and totals contributions by criteria including contact, time period, financial type, contributor location, etc.',0,0,1,2,NULL,NULL,NULL,NULL),(238,41,'Contribution Detail Report','contribute/detail','CRM_Report_Form_Contribute_Detail',NULL,0,NULL,7,'Lists specific contributions by criteria including contact, time period, financial type, contributor location, etc. Contribution summary report points to this report for contribution details.',0,0,1,2,NULL,NULL,NULL,NULL),(239,41,'Repeat Contributions Report','contribute/repeat','CRM_Report_Form_Contribute_Repeat',NULL,0,NULL,8,'Given two date ranges, shows contacts who contributed in both the date ranges with the amount contributed in each and the percentage increase / decrease.',0,0,1,2,NULL,NULL,NULL,NULL),(240,41,'Contributions by Organization Report','contribute/organizationSummary','CRM_Report_Form_Contribute_OrganizationSummary',NULL,0,NULL,9,'Displays a detailed list of contributions grouped by organization, which includes contributions made by employees for the organisation.',0,0,1,2,NULL,NULL,NULL,NULL),(241,41,'Contributions by Household Report','contribute/householdSummary','CRM_Report_Form_Contribute_HouseholdSummary',NULL,0,NULL,10,'Displays a detailed list of contributions grouped by household which includes contributions made by members of the household.',0,0,1,2,NULL,NULL,NULL,NULL),(242,41,'Top Donors Report','contribute/topDonor','CRM_Report_Form_Contribute_TopDonor',NULL,0,NULL,11,'Provides a list of the top donors during a time period you define. You can include as many donors as you want (for example, top 100 of your donors).',0,0,1,2,NULL,NULL,NULL,NULL),(243,41,'SYBUNT Report','contribute/sybunt','CRM_Report_Form_Contribute_Sybunt',NULL,0,NULL,12,'SYBUNT means some year(s) but not this year. Provides a list of constituents who donated at some time in the history of your organization but did not donate during the time period you specify.',0,0,1,2,NULL,NULL,NULL,NULL),(244,41,'LYBUNT Report','contribute/lybunt','CRM_Report_Form_Contribute_Lybunt',NULL,0,NULL,13,'LYBUNT means last year but not this year. Provides a list of constituents who donated last year but did not donate during the time period you specify as the current year.',0,0,1,2,NULL,NULL,NULL,NULL),(245,41,'Soft Credit Report','contribute/softcredit','CRM_Report_Form_Contribute_SoftCredit',NULL,0,NULL,14,'Shows contributions made by contacts that have been soft-credited to other contacts.',0,0,1,2,NULL,NULL,NULL,NULL),(246,41,'Membership Report (Summary)','member/summary','CRM_Report_Form_Member_Summary',NULL,0,NULL,15,'Provides a summary of memberships by type and join date.',0,0,1,3,NULL,NULL,NULL,NULL),(247,41,'Membership Report (Detail)','member/detail','CRM_Report_Form_Member_Detail',NULL,0,NULL,16,'Provides a list of members along with their membership status and membership details (Join Date, Start Date, End Date). Can also display contributions (payments) associated with each membership.',0,0,1,3,NULL,NULL,NULL,NULL),(248,41,'Membership Report (Lapsed)','member/lapse','CRM_Report_Form_Member_Lapse',NULL,0,NULL,17,'Provides a list of memberships that lapsed or will lapse before the date you specify.',0,0,1,3,NULL,NULL,NULL,NULL),(249,41,'Event Participant Report (List)','event/participantListing','CRM_Report_Form_Event_ParticipantListing',NULL,0,NULL,18,'Provides lists of participants for an event.',0,0,1,1,NULL,NULL,NULL,NULL),(250,41,'Event Income Report (Summary)','event/summary','CRM_Report_Form_Event_Summary',NULL,0,NULL,19,'Provides an overview of event income. You can include key information such as event ID, registration, attendance, and income generated to help you determine the success of an event.',0,0,1,1,NULL,NULL,NULL,NULL),(251,41,'Event Income Report (Detail)','event/income','CRM_Report_Form_Event_Income',NULL,0,NULL,20,'Helps you to analyze the income generated by an event. The report can include details by participant type, status and payment method.',0,0,1,1,NULL,NULL,NULL,NULL),(252,41,'Pledge Detail Report','pledge/detail','CRM_Report_Form_Pledge_Detail',NULL,0,NULL,21,'List of pledges including amount pledged, pledge status, next payment date, balance due, total amount paid etc.',0,0,1,6,NULL,NULL,NULL,NULL),(253,41,'Pledged but not Paid Report','pledge/pbnp','CRM_Report_Form_Pledge_Pbnp',NULL,0,NULL,22,'Pledged but not Paid Report',0,0,1,6,NULL,NULL,NULL,NULL),(254,41,'Relationship Report','contact/relationship','CRM_Report_Form_Contact_Relationship',NULL,0,NULL,23,'Relationship Report',0,0,1,NULL,NULL,NULL,NULL,NULL),(255,41,'Case Summary Report','case/summary','CRM_Report_Form_Case_Summary',NULL,0,NULL,24,'Provides a summary of cases and their duration by date range, status, staff member and / or case role.',0,0,1,7,NULL,NULL,NULL,NULL),(256,41,'Case Time Spent Report','case/timespent','CRM_Report_Form_Case_TimeSpent',NULL,0,NULL,25,'Aggregates time spent on case and / or non-case activities by activity type and contact.',0,0,1,7,NULL,NULL,NULL,NULL),(257,41,'Contact Demographics Report','case/demographics','CRM_Report_Form_Case_Demographics',NULL,0,NULL,26,'Demographic breakdown for case clients (and or non-case contacts) in your database. Includes custom contact fields.',0,0,1,7,NULL,NULL,NULL,NULL),(258,41,'Database Log Report','contact/log','CRM_Report_Form_Contact_Log',NULL,0,NULL,27,'Log of contact and activity records created or updated in a given date range.',0,0,1,NULL,NULL,NULL,NULL,NULL),(259,41,'Activity Summary Report','activitySummary','CRM_Report_Form_ActivitySummary',NULL,0,NULL,28,'Shows activity statistics by type / date',0,0,1,NULL,NULL,NULL,NULL,NULL),(260,41,'Bookkeeping Transactions Report','contribute/bookkeeping','CRM_Report_Form_Contribute_Bookkeeping',NULL,0,0,29,'Shows Bookkeeping Transactions Report',0,0,1,2,NULL,NULL,NULL,NULL),(261,41,'Grant Report (Detail)','grant/detail','CRM_Report_Form_Grant_Detail',NULL,0,0,30,'Grant Report Detail',0,0,1,5,NULL,NULL,NULL,NULL),(262,41,'Participant list Count Report','event/participantlist','CRM_Report_Form_Event_ParticipantListCount',NULL,0,0,31,'Shows the Participant list with Participant Count.',0,0,1,1,NULL,NULL,NULL,NULL),(263,41,'Income Count Summary Report','event/incomesummary','CRM_Report_Form_Event_IncomeCountSummary',NULL,0,0,32,'Shows the Income Summary of events with Count.',0,0,1,1,NULL,NULL,NULL,NULL),(264,41,'Case Detail Report','case/detail','CRM_Report_Form_Case_Detail',NULL,0,0,33,'Case Details',0,0,1,7,NULL,NULL,NULL,NULL),(265,41,'Mail Bounce Report','Mailing/bounce','CRM_Report_Form_Mailing_Bounce',NULL,0,NULL,34,'Bounce Report for mailings',0,0,1,4,NULL,NULL,NULL,NULL),(266,41,'Mail Summary Report','Mailing/summary','CRM_Report_Form_Mailing_Summary',NULL,0,NULL,35,'Summary statistics for mailings',0,0,1,4,NULL,NULL,NULL,NULL),(267,41,'Mail Opened Report','Mailing/opened','CRM_Report_Form_Mailing_Opened',NULL,0,NULL,36,'Display contacts who opened emails from a mailing',0,0,1,4,NULL,NULL,NULL,NULL),(268,41,'Mail Click-Through Report','Mailing/clicks','CRM_Report_Form_Mailing_Clicks',NULL,0,NULL,37,'Display clicks from each mailing',0,0,1,4,NULL,NULL,NULL,NULL),(269,41,'Contact Logging Report (Summary)','logging/contact/summary','CRM_Report_Form_Contact_LoggingSummary',NULL,0,NULL,38,'Contact modification report for the logging infrastructure (summary).',0,0,0,NULL,NULL,NULL,NULL,NULL),(270,41,'Contact Logging Report (Detail)','logging/contact/detail','CRM_Report_Form_Contact_LoggingDetail',NULL,0,NULL,39,'Contact modification report for the logging infrastructure (detail).',0,0,0,NULL,NULL,NULL,NULL,NULL),(271,41,'Grant Report (Statistics)','grant/statistics','CRM_Report_Form_Grant_Statistics',NULL,0,NULL,42,'Shows statistics for Grants.',0,0,1,5,NULL,NULL,NULL,NULL),(272,41,'Survey Report (Detail)','survey/detail','CRM_Report_Form_Campaign_SurveyDetails',NULL,0,NULL,43,'Detailed report for canvassing, phone-banking, walk lists or other surveys.',0,0,1,9,NULL,NULL,NULL,NULL),(273,41,'Personal Campaign Page Report','contribute/pcp','CRM_Report_Form_Contribute_PCP',NULL,0,NULL,44,'Summarizes amount raised and number of contributors for each Personal Campaign Page.',0,0,1,2,NULL,NULL,NULL,NULL),(274,41,'Pledge Summary Report','pledge/summary','CRM_Report_Form_Pledge_Summary',NULL,0,NULL,45,'Groups and totals pledges by criteria including contact, time period, pledge status, location, etc.',0,0,1,6,NULL,NULL,NULL,NULL),(275,41,'Contribution Aggregate by Relationship','contribute/history','CRM_Report_Form_Contribute_History',NULL,0,NULL,46,'List contact\'s donation history, grouped by year, along with contributions attributed to any of the contact\'s related contacts.',0,0,1,2,NULL,NULL,NULL,NULL),(276,41,'Mail Detail Report','mailing/detail','CRM_Report_Form_Mailing_Detail',NULL,0,NULL,47,'Provides reporting on Intended and Successful Deliveries, Unsubscribes and Opt-outs, Replies and Forwards.',0,0,1,4,NULL,NULL,NULL,NULL),(277,41,'Contribution and Membership Details','member/contributionDetail','CRM_Report_Form_Member_ContributionDetail',NULL,0,NULL,48,'Contribution details for any type of contribution, plus associated membership information for contributions which are in payment for memberships.',0,0,1,3,NULL,NULL,NULL,NULL),(278,41,'Recurring Contributions Report','contribute/recur','CRM_Report_Form_Contribute_Recur',NULL,0,NULL,49,'Provides information about the status of recurring contributions',0,0,1,2,NULL,NULL,NULL,NULL),(279,41,'Recurring Contributions Summary','contribute/recursummary','CRM_Report_Form_Contribute_RecurSummary',NULL,0,NULL,49,'Provides simple summary for each payment instrument for which there are recurring contributions (e.g. Credit Card, Standing Order, Direct Debit, etc., NULL), showing within a given date range.',0,0,1,2,NULL,NULL,NULL,NULL),(280,41,'Deferred Revenue Details','contribute/deferredrevenue','CRM_Report_Form_Contribute_DeferredRevenue',NULL,0,NULL,50,'Deferred Revenue Details Report',0,0,1,2,NULL,NULL,NULL,NULL),(281,26,'Scheduled','1','Scheduled',NULL,0,1,1,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(282,26,'Completed','2','Completed',NULL,1,NULL,2,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(283,26,'Cancelled','3','Cancelled',NULL,2,NULL,3,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(284,26,'Left Message','4','Left Message',NULL,0,NULL,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(285,26,'Unreachable','5','Unreachable',NULL,2,NULL,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(286,26,'Not Required','6','Not Required',NULL,2,NULL,6,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(287,26,'Available','7','Available',NULL,0,NULL,7,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(288,26,'No-show','8','No_show',NULL,2,NULL,8,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(289,28,'Ongoing','1','Open','Opened',0,1,1,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(290,28,'Resolved','2','Closed','Closed',0,NULL,2,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(291,28,'Urgent','3','Urgent','Opened',0,NULL,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(292,29,'Name Only','1','Name Only',NULL,0,0,1,'CRM_Event_Page_ParticipantListing_Name',0,1,1,NULL,NULL,NULL,NULL,NULL),(293,29,'Name and Email','2','Name and Email',NULL,0,0,2,'CRM_Event_Page_ParticipantListing_NameAndEmail',0,1,1,NULL,NULL,NULL,NULL,NULL),(294,29,'Name, Status and Register Date','3','Name, Status and Register Date',NULL,0,0,3,'CRM_Event_Page_ParticipantListing_NameStatusAndDate',0,1,1,NULL,NULL,NULL,NULL,NULL),(295,30,'jpg','1','jpg',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(296,30,'jpeg','2','jpeg',NULL,0,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(297,30,'png','3','png',NULL,0,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(298,30,'gif','4','gif',NULL,0,0,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(299,30,'txt','5','txt',NULL,0,0,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(300,30,'pdf','6','pdf',NULL,0,0,6,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(301,30,'doc','7','doc',NULL,0,0,7,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(302,30,'xls','8','xls',NULL,0,0,8,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(303,30,'rtf','9','rtf',NULL,0,0,9,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(304,30,'csv','10','csv',NULL,0,0,10,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(305,30,'ppt','11','ppt',NULL,0,0,11,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(306,30,'docx','12','docx',NULL,0,0,12,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(307,30,'xlsx','13','xlsx',NULL,0,0,13,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(308,30,'odt','14','odt',NULL,0,0,14,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(309,30,'ics','15','ics',NULL,0,0,15,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(310,30,'pptx','16','pptx',NULL,0,0,16,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(311,33,'Textarea','1','Textarea',NULL,0,NULL,1,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(312,33,'CKEditor','2','CKEditor',NULL,0,NULL,2,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(313,32,'Search Builder','1','Search Builder',NULL,0,0,1,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(314,32,'Import Contact','2','Import Contact',NULL,0,0,2,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(315,32,'Import Activity','3','Import Activity',NULL,0,0,3,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(316,32,'Import Contribution','4','Import Contribution',NULL,0,0,4,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(317,32,'Import Membership','5','Import Membership',NULL,0,0,5,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(318,32,'Import Participant','6','Import Participant',NULL,0,0,6,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(319,32,'Export Contact','7','Export Contact',NULL,0,0,7,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(320,32,'Export Contribution','8','Export Contribution',NULL,0,0,8,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(321,32,'Export Membership','9','Export Membership',NULL,0,0,9,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(322,32,'Export Participant','10','Export Participant',NULL,0,0,10,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(323,32,'Export Pledge','11','Export Pledge',NULL,0,0,11,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(324,32,'Export Case','12','Export Case',NULL,0,0,12,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(325,32,'Export Grant','13','Export Grant',NULL,0,0,13,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(326,32,'Export Activity','14','Export Activity',NULL,0,0,14,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(327,34,'day','day','day',NULL,0,NULL,1,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(328,34,'week','week','week',NULL,0,NULL,2,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(329,34,'month','month','month',NULL,0,NULL,3,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(330,34,'year','year','year',NULL,0,NULL,4,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(331,35,'Phone','1','Phone',NULL,0,NULL,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(332,35,'Mobile','2','Mobile',NULL,0,NULL,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(333,35,'Fax','3','Fax',NULL,0,NULL,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(334,35,'Pager','4','Pager',NULL,0,NULL,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(335,35,'Voicemail','5','Voicemail',NULL,0,NULL,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(336,36,'Participant Role','1','ParticipantRole',NULL,0,NULL,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(337,36,'Participant Event Name','2','ParticipantEventName',NULL,0,NULL,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(338,36,'Participant Event Type','3','ParticipantEventType',NULL,0,NULL,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(339,37,'Public','1','public',NULL,0,NULL,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(340,37,'Admin','2','admin',NULL,0,NULL,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(341,38,'IMAP','1','IMAP',NULL,0,NULL,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(342,38,'Maildir','2','Maildir',NULL,0,NULL,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(343,38,'POP3','3','POP3',NULL,0,NULL,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(344,38,'Localdir','4','Localdir',NULL,0,NULL,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(345,39,'Urgent','1','Urgent',NULL,0,NULL,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(346,39,'Normal','2','Normal',NULL,0,NULL,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(347,39,'Low','3','Low',NULL,0,NULL,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(348,40,'Vancouver','city_','city_',NULL,0,NULL,1,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(349,40,'/(19|20)(\\d{2})-(\\d{1,2})-(\\d{1,2})/','date_','date_',NULL,1,NULL,2,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(350,42,'Dear {contact.first_name}','1','Dear {contact.first_name}',NULL,1,1,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(351,42,'Dear {contact.individual_prefix} {contact.first_name} {contact.last_name}','2','Dear {contact.individual_prefix} {contact.first_name} {contact.last_name}',NULL,1,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(352,42,'Dear {contact.individual_prefix} {contact.last_name}','3','Dear {contact.individual_prefix} {contact.last_name}',NULL,1,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(353,42,'Customized','4','Customized',NULL,0,0,4,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(354,42,'Dear {contact.household_name}','5','Dear {contact.household_name}',NULL,2,1,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(355,43,'Dear {contact.first_name}','1','Dear {contact.first_name}',NULL,1,1,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(356,43,'Dear {contact.individual_prefix} {contact.first_name} {contact.last_name}','2','Dear {contact.individual_prefix} {contact.first_name} {contact.last_name}',NULL,1,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(357,43,'Dear {contact.individual_prefix} {contact.last_name}','3','Dear {contact.individual_prefix} {contact.last_name}',NULL,1,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(358,43,'Customized','4','Customized',NULL,0,0,4,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(359,43,'Dear {contact.household_name}','5','Dear {contact.household_name}',NULL,2,1,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(360,44,'{contact.individual_prefix}{ } {contact.first_name}{ }{contact.middle_name}{ }{contact.last_name}{ }{contact.individual_suffix}','1','}{contact.individual_prefix}{ } {contact.first_name}{ }{contact.middle_name}{ }{contact.last_name}{ }{contact.individual_suffix}',NULL,1,1,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(361,44,'{contact.household_name}','2','{contact.household_name}',NULL,2,1,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(362,44,'{contact.organization_name}','3','{contact.organization_name}',NULL,3,1,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(363,44,'Customized','4','Customized',NULL,0,0,4,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(364,47,'Work','1','Work',NULL,0,1,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(365,47,'Main','2','Main',NULL,0,NULL,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(366,47,'Facebook','3','Facebook',NULL,0,NULL,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(367,47,'Google+','4','Google_',NULL,0,NULL,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(368,47,'Instagram','5','Instagram',NULL,0,NULL,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(369,47,'LinkedIn','6','LinkedIn',NULL,0,NULL,6,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(370,47,'MySpace','7','MySpace',NULL,0,NULL,7,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(371,47,'Pinterest','8','Pinterest',NULL,0,NULL,8,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(372,47,'SnapChat','9','SnapChat',NULL,0,NULL,9,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(373,47,'Tumblr','10','Tumblr',NULL,0,NULL,10,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(374,47,'Twitter','11','Twitter',NULL,0,NULL,11,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(375,47,'Vine','12','Vine ',NULL,0,NULL,12,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(376,48,'Contacts','civicrm_contact','Contacts',NULL,0,NULL,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(377,48,'Activities','civicrm_activity','Activities',NULL,0,NULL,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(378,48,'Cases','civicrm_case','Cases',NULL,0,NULL,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(379,48,'Attachments','civicrm_file','Attachements',NULL,0,NULL,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(380,49,'USD ($)','USD','USD',NULL,0,1,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(381,50,'Name Only','1','CRM_Event_Badge_Simple',NULL,0,0,1,'Simple Event Name Badge',0,1,1,NULL,NULL,NULL,NULL,NULL),(382,50,'Name Tent','2','CRM_Event_Badge_NameTent',NULL,0,0,2,'Name Tent',0,1,1,NULL,NULL,NULL,NULL,NULL),(383,50,'With Logo','3','CRM_Event_Badge_Logo',NULL,0,0,3,'You can set your own background image',0,1,1,NULL,NULL,NULL,NULL,NULL),(384,50,'5395 with Logo','4','CRM_Event_Badge_Logo5395',NULL,0,0,4,'Avery 5395 compatible labels with logo (4 up by 2, 59.2mm x 85.7mm)',0,1,1,NULL,NULL,NULL,NULL,NULL),(385,51,'None','0','None',NULL,0,1,1,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(386,51,'Author Only','1','Author Only',NULL,0,0,2,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(387,52,'Direct Mail','1','Direct Mail',NULL,0,NULL,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(388,52,'Referral Program','2','Referral Program',NULL,0,NULL,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(389,52,'Constituent Engagement','3','Constituent Engagement',NULL,0,NULL,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(390,53,'Planned','1','Planned',NULL,0,NULL,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(391,53,'In Progress','2','In Progress',NULL,0,NULL,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(392,53,'Completed','3','Completed',NULL,0,NULL,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(393,53,'Cancelled','4','Cancelled',NULL,0,NULL,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(394,56,'1','1','1',NULL,0,NULL,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(395,56,'2','2','2',NULL,0,NULL,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(396,56,'3','3','3',NULL,0,NULL,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(397,56,'4','4','4',NULL,0,NULL,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(398,56,'5','5','5',NULL,0,NULL,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(399,58,'Letter','{\"metric\":\"in\",\"width\":8.5,\"height\":11}','letter',NULL,NULL,1,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(400,58,'Legal','{\"metric\":\"in\",\"width\":8.5,\"height\":14}','legal',NULL,NULL,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(401,58,'Ledger','{\"metric\":\"in\",\"width\":17,\"height\":11}','ledger',NULL,NULL,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(402,58,'Tabloid','{\"metric\":\"in\",\"width\":11,\"height\":17}','tabloid',NULL,NULL,0,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(403,58,'Executive','{\"metric\":\"in\",\"width\":7.25,\"height\":10.5}','executive',NULL,NULL,0,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(404,58,'Folio','{\"metric\":\"in\",\"width\":8.5,\"height\":13}','folio',NULL,NULL,0,6,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(405,58,'Envelope #9','{\"metric\":\"pt\",\"width\":638.93,\"height\":278.93}','envelope-9',NULL,NULL,0,7,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(406,58,'Envelope #10','{\"metric\":\"pt\",\"width\":684,\"height\":297}','envelope-10',NULL,NULL,0,8,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(407,58,'Envelope #11','{\"metric\":\"pt\",\"width\":747,\"height\":324}','envelope-11',NULL,NULL,0,9,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(408,58,'Envelope #12','{\"metric\":\"pt\",\"width\":792,\"height\":342}','envelope-12',NULL,NULL,0,10,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(409,58,'Envelope #14','{\"metric\":\"pt\",\"width\":828,\"height\":360}','envelope-14',NULL,NULL,0,11,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(410,58,'Envelope ISO B4','{\"metric\":\"pt\",\"width\":1000.63,\"height\":708.66}','envelope-b4',NULL,NULL,0,12,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(411,58,'Envelope ISO B5','{\"metric\":\"pt\",\"width\":708.66,\"height\":498.9}','envelope-b5',NULL,NULL,0,13,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(412,58,'Envelope ISO B6','{\"metric\":\"pt\",\"width\":498.9,\"height\":354.33}','envelope-b6',NULL,NULL,0,14,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(413,58,'Envelope ISO C3','{\"metric\":\"pt\",\"width\":1298.27,\"height\":918.42}','envelope-c3',NULL,NULL,0,15,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(414,58,'Envelope ISO C4','{\"metric\":\"pt\",\"width\":918.42,\"height\":649.13}','envelope-c4',NULL,NULL,0,16,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(415,58,'Envelope ISO C5','{\"metric\":\"pt\",\"width\":649.13,\"height\":459.21}','envelope-c5',NULL,NULL,0,17,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(416,58,'Envelope ISO C6','{\"metric\":\"pt\",\"width\":459.21,\"height\":323.15}','envelope-c6',NULL,NULL,0,18,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(417,58,'Envelope ISO DL','{\"metric\":\"pt\",\"width\":623.622,\"height\":311.811}','envelope-dl',NULL,NULL,0,19,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(418,58,'ISO A0','{\"metric\":\"pt\",\"width\":2383.94,\"height\":3370.39}','a0',NULL,NULL,0,20,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(419,58,'ISO A1','{\"metric\":\"pt\",\"width\":1683.78,\"height\":2383.94}','a1',NULL,NULL,0,21,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(420,58,'ISO A2','{\"metric\":\"pt\",\"width\":1190.55,\"height\":1683.78}','a2',NULL,NULL,0,22,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(421,58,'ISO A3','{\"metric\":\"pt\",\"width\":841.89,\"height\":1190.55}','a3',NULL,NULL,0,23,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(422,58,'ISO A4','{\"metric\":\"pt\",\"width\":595.28,\"height\":841.89}','a4',NULL,NULL,0,24,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(423,58,'ISO A5','{\"metric\":\"pt\",\"width\":419.53,\"height\":595.28}','a5',NULL,NULL,0,25,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(424,58,'ISO A6','{\"metric\":\"pt\",\"width\":297.64,\"height\":419.53}','a6',NULL,NULL,0,26,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(425,58,'ISO A7','{\"metric\":\"pt\",\"width\":209.76,\"height\":297.64}','a7',NULL,NULL,0,27,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(426,58,'ISO A8','{\"metric\":\"pt\",\"width\":147.4,\"height\":209.76}','a8',NULL,NULL,0,28,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(427,58,'ISO A9','{\"metric\":\"pt\",\"width\":104.88,\"height\":147.4}','a9',NULL,NULL,0,29,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(428,58,'ISO A10','{\"metric\":\"pt\",\"width\":73.7,\"height\":104.88}','a10',NULL,NULL,0,30,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(429,58,'ISO B0','{\"metric\":\"pt\",\"width\":2834.65,\"height\":4008.19}','b0',NULL,NULL,0,31,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(430,58,'ISO B1','{\"metric\":\"pt\",\"width\":2004.09,\"height\":2834.65}','b1',NULL,NULL,0,32,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(431,58,'ISO B2','{\"metric\":\"pt\",\"width\":1417.32,\"height\":2004.09}','b2',NULL,NULL,0,33,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(432,58,'ISO B3','{\"metric\":\"pt\",\"width\":1000.63,\"height\":1417.32}','b3',NULL,NULL,0,34,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(433,58,'ISO B4','{\"metric\":\"pt\",\"width\":708.66,\"height\":1000.63}','b4',NULL,NULL,0,35,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(434,58,'ISO B5','{\"metric\":\"pt\",\"width\":498.9,\"height\":708.66}','b5',NULL,NULL,0,36,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(435,58,'ISO B6','{\"metric\":\"pt\",\"width\":354.33,\"height\":498.9}','b6',NULL,NULL,0,37,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(436,58,'ISO B7','{\"metric\":\"pt\",\"width\":249.45,\"height\":354.33}','b7',NULL,NULL,0,38,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(437,58,'ISO B8','{\"metric\":\"pt\",\"width\":175.75,\"height\":249.45}','b8',NULL,NULL,0,39,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(438,58,'ISO B9','{\"metric\":\"pt\",\"width\":124.72,\"height\":175.75}','b9',NULL,NULL,0,40,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(439,58,'ISO B10','{\"metric\":\"pt\",\"width\":87.87,\"height\":124.72}','b10',NULL,NULL,0,41,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(440,58,'ISO C0','{\"metric\":\"pt\",\"width\":2599.37,\"height\":3676.54}','c0',NULL,NULL,0,42,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(441,58,'ISO C1','{\"metric\":\"pt\",\"width\":1836.85,\"height\":2599.37}','c1',NULL,NULL,0,43,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(442,58,'ISO C2','{\"metric\":\"pt\",\"width\":1298.27,\"height\":1836.85}','c2',NULL,NULL,0,44,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(443,58,'ISO C3','{\"metric\":\"pt\",\"width\":918.43,\"height\":1298.27}','c3',NULL,NULL,0,45,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(444,58,'ISO C4','{\"metric\":\"pt\",\"width\":649.13,\"height\":918.43}','c4',NULL,NULL,0,46,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(445,58,'ISO C5','{\"metric\":\"pt\",\"width\":459.21,\"height\":649.13}','c5',NULL,NULL,0,47,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(446,58,'ISO C6','{\"metric\":\"pt\",\"width\":323.15,\"height\":459.21}','c6',NULL,NULL,0,48,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(447,58,'ISO C7','{\"metric\":\"pt\",\"width\":229.61,\"height\":323.15}','c7',NULL,NULL,0,49,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(448,58,'ISO C8','{\"metric\":\"pt\",\"width\":161.57,\"height\":229.61}','c8',NULL,NULL,0,50,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(449,58,'ISO C9','{\"metric\":\"pt\",\"width\":113.39,\"height\":161.57}','c9',NULL,NULL,0,51,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(450,58,'ISO C10','{\"metric\":\"pt\",\"width\":79.37,\"height\":113.39}','c10',NULL,NULL,0,52,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(451,58,'ISO RA0','{\"metric\":\"pt\",\"width\":2437.8,\"height\":3458.27}','ra0',NULL,NULL,0,53,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(452,58,'ISO RA1','{\"metric\":\"pt\",\"width\":1729.13,\"height\":2437.8}','ra1',NULL,NULL,0,54,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(453,58,'ISO RA2','{\"metric\":\"pt\",\"width\":1218.9,\"height\":1729.13}','ra2',NULL,NULL,0,55,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(454,58,'ISO RA3','{\"metric\":\"pt\",\"width\":864.57,\"height\":1218.9}','ra3',NULL,NULL,0,56,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(455,58,'ISO RA4','{\"metric\":\"pt\",\"width\":609.45,\"height\":864.57}','ra4',NULL,NULL,0,57,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(456,58,'ISO SRA0','{\"metric\":\"pt\",\"width\":2551.18,\"height\":3628.35}','sra0',NULL,NULL,0,58,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(457,58,'ISO SRA1','{\"metric\":\"pt\",\"width\":1814.17,\"height\":2551.18}','sra1',NULL,NULL,0,59,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(458,58,'ISO SRA2','{\"metric\":\"pt\",\"width\":1275.59,\"height\":1814.17}','sra2',NULL,NULL,0,60,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(459,58,'ISO SRA3','{\"metric\":\"pt\",\"width\":907.09,\"height\":1275.59}','sra3',NULL,NULL,0,61,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(460,58,'ISO SRA4','{\"metric\":\"pt\",\"width\":637.8,\"height\":907.09}','sra4',NULL,NULL,0,62,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(461,61,'Activity Assignees','1','Activity Assignees',NULL,0,NULL,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(462,61,'Activity Source','2','Activity Source',NULL,0,NULL,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(463,61,'Activity Targets','3','Activity Targets',NULL,0,NULL,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(464,71,'Asset','1','Asset',NULL,0,0,1,'Things you own',0,1,1,2,NULL,NULL,NULL,NULL),(465,71,'Liability','2','Liability',NULL,0,0,2,'Things you owe, like a grant still to be disbursed',0,1,1,2,NULL,NULL,NULL,NULL),(466,71,'Revenue','3','Revenue',NULL,0,1,3,'Income from contributions and sales of tickets and memberships',0,1,1,2,NULL,NULL,NULL,NULL),(467,71,'Cost of Sales','4','Cost of Sales',NULL,0,0,4,'Costs incurred to get revenue, e.g. premiums for donations, dinner for a fundraising dinner ticket',0,1,1,2,NULL,NULL,NULL,NULL),(468,71,'Expenses','5','Expenses',NULL,0,0,5,'Things that are paid for that are consumable, e.g. grants disbursed',0,1,1,2,NULL,NULL,NULL,NULL),(469,62,'Income Account is','1','Income Account is',NULL,0,1,1,'Income Account is',0,1,1,2,NULL,NULL,NULL,NULL),(470,62,'Credit/Contra Revenue Account is','2','Credit/Contra Revenue Account is',NULL,0,0,2,'Credit/Contra Revenue Account is',0,1,1,2,NULL,NULL,NULL,NULL),(471,62,'Accounts Receivable Account is','3','Accounts Receivable Account is',NULL,0,0,3,'Accounts Receivable Account is',0,1,1,2,NULL,NULL,NULL,NULL),(472,62,'Credit Liability Account is','4','Credit Liability Account is',NULL,0,0,4,'Credit Liability Account is',0,1,0,2,NULL,NULL,NULL,NULL),(473,62,'Expense Account is','5','Expense Account is',NULL,0,0,5,'Expense Account is',0,1,1,2,NULL,NULL,NULL,NULL),(474,62,'Asset Account is','6','Asset Account is',NULL,0,0,6,'Asset Account is',0,1,1,2,NULL,NULL,NULL,NULL),(475,62,'Cost of Sales Account is','7','Cost of Sales Account is',NULL,0,0,7,'Cost of Sales Account is',0,1,1,2,NULL,NULL,NULL,NULL),(476,62,'Premiums Inventory Account is','8','Premiums Inventory Account is',NULL,0,0,8,'Premiums Inventory Account is',0,1,1,2,NULL,NULL,NULL,NULL),(477,62,'Discounts Account is','9','Discounts Account is',NULL,0,0,9,'Discounts Account is',0,1,1,2,NULL,NULL,NULL,NULL),(478,62,'Sales Tax Account is','10','Sales Tax Account is',NULL,0,0,10,'Sales Tax Account is',0,1,1,2,NULL,NULL,NULL,NULL),(479,62,'Chargeback Account is','11','Chargeback Account is',NULL,0,0,11,'Chargeback Account is',0,1,1,2,NULL,NULL,NULL,NULL),(480,62,'Deferred Revenue Account is','12','Deferred Revenue Account is',NULL,0,0,12,'Deferred Revenue Account is',0,1,1,2,NULL,NULL,NULL,NULL),(481,63,'Participant Role','1','participant_role',NULL,0,NULL,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(482,64,'Morning Sessions','1','Morning Sessions',NULL,0,NULL,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(483,64,'Evening Sessions','2','Evening Sessions',NULL,0,NULL,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(484,65,'Contribution','1','Contribution',NULL,0,NULL,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(485,65,'Membership','2','Membership',NULL,0,NULL,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(486,65,'Pledge Payment','3','Pledge Payment',NULL,0,NULL,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(487,67,'Open','1','Open',NULL,0,NULL,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(488,67,'Closed','2','Closed',NULL,0,NULL,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(489,67,'Data Entry','3','Data Entry',NULL,0,NULL,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(490,67,'Reopened','4','Reopened',NULL,0,NULL,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(491,67,'Exported','5','Exported',NULL,0,NULL,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(492,66,'Manual Batch','1','Manual Batch',NULL,0,0,1,'Manual Batch',0,1,1,2,NULL,NULL,NULL,NULL),(493,66,'Automatic Batch','2','Automatic Batch',NULL,0,0,2,'Automatic Batch',0,1,1,2,NULL,NULL,NULL,NULL),(494,72,'Paid','1','Paid',NULL,0,0,1,'Paid',0,1,1,2,NULL,NULL,NULL,NULL),(495,72,'Partially paid','2','Partially paid',NULL,0,0,2,'Partially paid',0,1,1,2,NULL,NULL,NULL,NULL),(496,72,'Unpaid','3','Unpaid',NULL,0,0,1,'Unpaid',0,1,1,2,NULL,NULL,NULL,NULL),(497,68,'http','1','http',NULL,NULL,0,1,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(498,68,'xml','2','xml',NULL,NULL,0,2,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(499,68,'smtp','3','smtp',NULL,NULL,0,3,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(500,70,'Renewal Reminder (non-auto-renew memberships only)','1','Renewal Reminder (non-auto-renew memberships only)',NULL,0,NULL,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(501,70,'Auto-renew Memberships Only','2','Auto-renew Memberships Only',NULL,0,NULL,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(502,70,'Reminder for Both','3','Reminder for Both',NULL,0,NULL,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(503,73,'Event Badge','1','Event Badge',NULL,0,NULL,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(504,74,'Avery 5395','{\"name\":\"Avery 5395\",\"paper-size\":\"a4\",\"metric\":\"mm\",\"lMargin\":15,\"tMargin\":26,\"NX\":2,\"NY\":4,\"SpaceX\":10,\"SpaceY\":5,\"width\":83,\"height\":57,\"font-size\":12,\"orientation\":\"portrait\",\"font-name\":\"helvetica\",\"font-style\":\"\",\"lPadding\":3,\"tPadding\":3}','Avery 5395',NULL,0,NULL,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(505,74,'A6 Badge Portrait 150x106','{\"paper-size\":\"a4\",\"orientation\":\"landscape\",\"font-name\":\"times\",\"font-size\":6,\"font-style\":\"\",\"NX\":2,\"NY\":1,\"metric\":\"mm\",\"lMargin\":25,\"tMargin\":27,\"SpaceX\":0,\"SpaceY\":35,\"width\":106,\"height\":150,\"lPadding\":5,\"tPadding\":5}','A6 Badge Portrait 150x106',NULL,0,NULL,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(506,74,'Fattorini Name Badge 100x65','{\"paper-size\":\"a4\",\"orientation\":\"portrait\",\"font-name\":\"times\",\"font-size\":6,\"font-style\":\"\",\"NX\":2,\"NY\":4,\"metric\":\"mm\",\"lMargin\":6,\"tMargin\":19,\"SpaceX\":0,\"SpaceY\":0,\"width\":100,\"height\":65,\"lPadding\":0,\"tPadding\":0}','Fattorini Name Badge 100x65',NULL,0,NULL,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(507,74,'Hanging Badge 3-3/4\" x 4-3\"/4','{\"paper-size\":\"a4\",\"orientation\":\"portrait\",\"font-name\":\"times\",\"font-size\":6,\"font-style\":\"\",\"NX\":2,\"NY\":2,\"metric\":\"mm\",\"lMargin\":10,\"tMargin\":28,\"SpaceX\":0,\"SpaceY\":0,\"width\":96,\"height\":121,\"lPadding\":5,\"tPadding\":5}','Hanging Badge 3-3/4\" x 4-3\"/4',NULL,0,NULL,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(508,60,'Avery 3475','{\"paper-size\":\"a4\",\"orientation\":\"portrait\",\"font-name\":\"helvetica\",\"font-size\":10,\"font-style\":\"\",\"metric\":\"mm\",\"lMargin\":0,\"tMargin\":5,\"NX\":3,\"NY\":8,\"SpaceX\":0,\"SpaceY\":0,\"width\":70,\"height\":36,\"lPadding\":5.08,\"tPadding\":5.08}','3475','Avery',NULL,0,1,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(509,60,'Avery 5160','{\"paper-size\":\"letter\",\"orientation\":\"portrait\",\"font-name\":\"helvetica\",\"font-size\":8,\"font-style\":\"\",\"metric\":\"in\",\"lMargin\":0.21975,\"tMargin\":0.5,\"NX\":3,\"NY\":10,\"SpaceX\":0.14,\"SpaceY\":0,\"width\":2.5935,\"height\":1,\"lPadding\":0.20,\"tPadding\":0.20}','5160','Avery',NULL,0,2,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(510,60,'Avery 5161','{\"paper-size\":\"letter\",\"orientation\":\"portrait\",\"font-name\":\"helvetica\",\"font-size\":8,\"font-style\":\"\",\"metric\":\"in\",\"lMargin\":0.175,\"tMargin\":0.5,\"NX\":2,\"NY\":10,\"SpaceX\":0.15625,\"SpaceY\":0,\"width\":4,\"height\":1,\"lPadding\":0.20,\"tPadding\":0.20}','5161','Avery',NULL,0,3,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(511,60,'Avery 5162','{\"paper-size\":\"letter\",\"orientation\":\"portrait\",\"font-name\":\"helvetica\",\"font-size\":8,\"font-style\":\"\",\"metric\":\"in\",\"lMargin\":0.1525,\"tMargin\":0.88,\"NX\":2,\"NY\":7,\"SpaceX\":0.195,\"SpaceY\":0,\"width\":4,\"height\":1.33,\"lPadding\":0.20,\"tPadding\":0.20}','5162','Avery',NULL,0,4,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(512,60,'Avery 5163','{\"paper-size\":\"letter\",\"orientation\":\"portrait\",\"font-name\":\"helvetica\",\"font-size\":8,\"font-style\":\"\",\"metric\":\"in\",\"lMargin\":0.18,\"tMargin\":0.5,\"NX\":2,\"NY\":5,\"SpaceX\":0.14,\"SpaceY\":0,\"width\":4,\"height\":2,\"lPadding\":0.20,\"tPadding\":0.20}','5163','Avery',NULL,0,5,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(513,60,'Avery 5164','{\"paper-size\":\"letter\",\"orientation\":\"portrait\",\"font-name\":\"helvetica\",\"font-size\":12,\"font-style\":\"\",\"metric\":\"in\",\"lMargin\":0.156,\"tMargin\":0.5,\"NX\":2,\"NY\":3,\"SpaceX\":0.1875,\"SpaceY\":0,\"width\":4,\"height\":3.33,\"lPadding\":0.20,\"tPadding\":0.20}','5164','Avery',NULL,0,6,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(514,60,'Avery 8600','{\"paper-size\":\"letter\",\"orientation\":\"portrait\",\"font-name\":\"helvetica\",\"font-size\":8,\"font-style\":\"\",\"metric\":\"mm\",\"lMargin\":7.1,\"tMargin\":19,\"NX\":3,\"NY\":10,\"SpaceX\":9.5,\"SpaceY\":3.1,\"width\":66.6,\"height\":25.4,\"lPadding\":5.08,\"tPadding\":5.08}','8600','Avery',NULL,0,7,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(515,60,'Avery L7160','{\"paper-size\":\"a4\",\"orientation\":\"portrait\",\"font-name\":\"helvetica\",\"font-size\":9,\"font-style\":\"\",\"metric\":\"in\",\"lMargin\":0.28,\"tMargin\":0.6,\"NX\":3,\"NY\":7,\"SpaceX\":0.1,\"SpaceY\":0,\"width\":2.5,\"height\":1.5,\"lPadding\":0.20,\"tPadding\":0.20}','L7160','Avery',NULL,0,8,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(516,60,'Avery L7161','{\"paper-size\":\"a4\",\"orientation\":\"portrait\",\"font-name\":\"helvetica\",\"font-size\":9,\"font-style\":\"\",\"metric\":\"in\",\"lMargin\":0.28,\"tMargin\":0.35,\"NX\":3,\"NY\":6,\"SpaceX\":0.1,\"SpaceY\":0,\"width\":2.5,\"height\":1.83,\"lPadding\":0.20,\"tPadding\":0.20}','L7161','Avery',NULL,0,9,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(517,60,'Avery L7162','{\"paper-size\":\"a4\",\"orientation\":\"portrait\",\"font-name\":\"helvetica\",\"font-size\":9,\"font-style\":\"\",\"metric\":\"in\",\"lMargin\":0.18,\"tMargin\":0.51,\"NX\":2,\"NY\":8,\"SpaceX\":0.1,\"SpaceY\":0,\"width\":3.9,\"height\":1.33,\"lPadding\":0.20,\"tPadding\":0.20}','L7162','Avery',NULL,0,10,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(518,60,'Avery L7163','{\"paper-size\":\"a4\",\"orientation\":\"portrait\",\"font-name\":\"helvetica\",\"font-size\":9,\"font-style\":\"\",\"metric\":\"in\",\"lMargin\":0.18,\"tMargin\":0.6,\"NX\":2,\"NY\":7,\"SpaceX\":0.1,\"SpaceY\":0,\"width\":3.9,\"height\":1.5,\"lPadding\":0.20,\"tPadding\":0.20}','L7163','Avery',NULL,0,11,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(519,75,'Formal','1','formal',NULL,0,1,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(520,75,'Familiar','2','familiar',NULL,0,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(521,76,'Email','Email','Email',NULL,0,1,1,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(522,76,'SMS','SMS','SMS',NULL,0,0,2,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(523,76,'User Preference','User_Preference','User Preference',NULL,0,0,3,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(524,77,'Actual date only','1','Actual date only',NULL,NULL,0,1,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(525,77,'Each anniversary','2','Each anniversary',NULL,NULL,0,2,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(526,78,'Default','1','default',NULL,NULL,1,1,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(527,78,'CiviMail','2','civimail',NULL,NULL,0,2,NULL,0,1,1,4,NULL,NULL,NULL,NULL),(528,78,'CiviEvent','3','civievent',NULL,NULL,0,3,NULL,0,1,1,1,NULL,NULL,NULL,NULL),(529,82,'Production','Production','Production',NULL,NULL,1,1,'Production Environment',0,1,1,NULL,NULL,NULL,NULL,NULL),(530,82,'Staging','Staging','Staging',NULL,NULL,0,2,'Staging Environment',0,1,1,NULL,NULL,NULL,NULL,NULL),(531,82,'Development','Development','Development',NULL,NULL,0,3,'Development Environment',0,1,1,NULL,NULL,NULL,NULL,NULL),(532,79,'Today','this.day','this.day',NULL,NULL,NULL,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(533,79,'This week','this.week','this.week',NULL,NULL,NULL,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(534,79,'This calendar month','this.month','this.month',NULL,NULL,NULL,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(535,79,'This quarter','this.quarter','this.quarter',NULL,NULL,NULL,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(536,79,'This fiscal year','this.fiscal_year','this.fiscal_year',NULL,NULL,NULL,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(537,79,'This calendar year','this.year','this.year',NULL,NULL,NULL,6,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(538,79,'Yesterday','previous.day','previous.day',NULL,NULL,NULL,7,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(539,79,'Previous week','previous.week','previous.week',NULL,NULL,NULL,8,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(540,79,'Previous calendar month','previous.month','previous.month',NULL,NULL,NULL,9,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(541,79,'Previous quarter','previous.quarter','previous.quarter',NULL,NULL,NULL,10,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(542,79,'Previous fiscal year','previous.fiscal_year','previous.fiscal_year',NULL,NULL,NULL,11,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(543,79,'Previous calendar year','previous.year','previous.year',NULL,NULL,NULL,12,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(544,79,'Last 7 days including today','ending.week','ending.week',NULL,NULL,NULL,13,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(545,79,'Last 30 days including today','ending_30.day','ending.month',NULL,NULL,NULL,14,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(546,79,'Last 60 days including today','ending_60.day','ending_2.month',NULL,NULL,NULL,15,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(547,79,'Last 90 days including today','ending_90.day','ending.quarter',NULL,NULL,NULL,16,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(548,79,'Last 12 months including today','ending.year','ending.year',NULL,NULL,NULL,17,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(549,79,'Last 2 years including today','ending_2.year','ending_2.year',NULL,NULL,NULL,18,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(550,79,'Last 3 years including today','ending_3.year','ending_3.year',NULL,NULL,NULL,19,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(551,79,'Tomorrow','starting.day','starting.day',NULL,NULL,NULL,20,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(552,79,'Next week','next.week','next.week',NULL,NULL,NULL,21,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(553,79,'Next calendar month','next.month','next.month',NULL,NULL,NULL,22,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(554,79,'Next quarter','next.quarter','next.quarter',NULL,NULL,NULL,23,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(555,79,'Next fiscal year','next.fiscal_year','next.fiscal_year',NULL,NULL,NULL,24,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(556,79,'Next calendar year','next.year','next.year',NULL,NULL,NULL,25,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(557,79,'Next 7 days including today','starting.week','starting.week',NULL,NULL,NULL,26,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(558,79,'Next 30 days including today','starting.month','starting.month',NULL,NULL,NULL,27,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(559,79,'Next 60 days including today','starting_2.month','starting_2.month',NULL,NULL,NULL,28,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(560,79,'Next 90 days including today','starting.quarter','starting.quarter',NULL,NULL,NULL,29,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(561,79,'Next 12 months including today','starting.year','starting.year',NULL,NULL,NULL,30,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(562,79,'Current week to-date','current.week','current.week',NULL,NULL,NULL,31,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(563,79,'Current calendar month to-date','current.month','current.month',NULL,NULL,NULL,32,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(564,79,'Current quarter to-date','current.quarter','current.quarter',NULL,NULL,NULL,33,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(565,79,'Current calendar year to-date','current.year','current.year',NULL,NULL,NULL,34,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(566,79,'To end of yesterday','earlier.day','earlier.day',NULL,NULL,NULL,35,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(567,79,'To end of previous week','earlier.week','earlier.week',NULL,NULL,NULL,36,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(568,79,'To end of previous calendar month','earlier.month','earlier.month',NULL,NULL,NULL,37,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(569,79,'To end of previous quarter','earlier.quarter','earlier.quarter',NULL,NULL,NULL,38,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(570,79,'To end of previous calendar year','earlier.year','earlier.year',NULL,NULL,NULL,39,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(571,79,'From start of current day','greater.day','greater.day',NULL,NULL,NULL,40,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(572,79,'From start of current week','greater.week','greater.week',NULL,NULL,NULL,41,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(573,79,'From start of current calendar month','greater.month','greater.month',NULL,NULL,NULL,42,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(574,79,'From start of current quarter','greater.quarter','greater.quarter',NULL,NULL,NULL,43,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(575,79,'From start of current calendar year','greater.year','greater.year',NULL,NULL,NULL,44,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(576,79,'To end of current week','less.week','less.week',NULL,NULL,NULL,45,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(577,79,'To end of current calendar month','less.month','less.month',NULL,NULL,NULL,46,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(578,79,'To end of current quarter','less.quarter','less.quarter',NULL,NULL,NULL,47,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(579,79,'To end of current calendar year','less.year','less.year',NULL,NULL,NULL,48,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(580,79,'Previous 2 days','previous_2.day','previous_2.day',NULL,NULL,NULL,49,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(581,79,'Previous 2 weeks','previous_2.week','previous_2.week',NULL,NULL,NULL,50,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(582,79,'Previous 2 calendar months','previous_2.month','previous_2.month',NULL,NULL,NULL,51,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(583,79,'Previous 2 quarters','previous_2.quarter','previous_2.quarter',NULL,NULL,NULL,52,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(584,79,'Previous 2 calendar years','previous_2.year','previous_2.year',NULL,NULL,NULL,53,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(585,79,'Day prior to yesterday','previous_before.day','previous_before.day',NULL,NULL,NULL,54,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(586,79,'Week prior to previous week','previous_before.week','previous_before.week',NULL,NULL,NULL,55,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(587,79,'Month prior to previous calendar month','previous_before.month','previous_before.month',NULL,NULL,NULL,56,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(588,79,'Quarter prior to previous quarter','previous_before.quarter','previous_before.quarter',NULL,NULL,NULL,57,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(589,79,'Year prior to previous calendar year','previous_before.year','previous_before.year',NULL,NULL,NULL,58,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(590,79,'From end of previous week','greater_previous.week','greater_previous.week',NULL,NULL,NULL,59,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(591,79,'From end of previous calendar month','greater_previous.month','greater_previous.month',NULL,NULL,NULL,60,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(592,79,'From end of previous quarter','greater_previous.quarter','greater_previous.quarter',NULL,NULL,NULL,61,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(593,79,'From end of previous calendar year','greater_previous.year','greater_previous.year',NULL,NULL,NULL,62,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(594,80,'Completed','1','Completed',NULL,0,NULL,1,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(595,80,'Pending','2','Pending',NULL,0,NULL,2,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(596,80,'Cancelled','3','Cancelled',NULL,0,NULL,3,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(597,80,'In Progress','5','In Progress',NULL,0,NULL,4,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(598,80,'Overdue','6','Overdue',NULL,0,NULL,5,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(599,81,'Completed','1','Completed',NULL,0,NULL,1,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(600,81,'Pending','2','Pending',NULL,0,NULL,2,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(601,81,'Cancelled','3','Cancelled',NULL,0,NULL,3,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(602,81,'Failed','4','Failed',NULL,0,NULL,4,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(603,81,'In Progress','5','In Progress',NULL,0,NULL,5,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(604,81,'Overdue','6','Overdue',NULL,0,NULL,6,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(605,81,'Processing','7','Processing',NULL,0,NULL,7,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(606,81,'Failing','8','Failing',NULL,0,NULL,8,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(607,83,'None','1','NONE',NULL,0,1,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(608,83,'By relationship to case client','2','BY_RELATIONSHIP',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(609,83,'Specific contact','3','SPECIFIC_CONTACT',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(610,83,'User creating the case','4','USER_CREATING_THE_CASE',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(611,31,'\"FIXME\" <info@EXAMPLE.ORG>','1','\"FIXME\" <info@EXAMPLE.ORG>',NULL,0,1,1,'Default domain email address and from name.',0,0,1,NULL,1,NULL,NULL,NULL),(612,24,'Emergency','1','Emergency',NULL,0,1,1,NULL,0,0,1,NULL,1,NULL,NULL,NULL),(613,24,'Family Support','2','Family Support',NULL,0,NULL,2,NULL,0,0,1,NULL,1,NULL,NULL,NULL),(614,24,'General Protection','3','General Protection',NULL,0,NULL,3,NULL,0,0,1,NULL,1,NULL,NULL,NULL),(615,24,'Impunity','4','Impunity',NULL,0,NULL,4,NULL,0,0,1,NULL,1,NULL,NULL,NULL),(616,55,'Approved','1','Approved',NULL,0,1,1,NULL,0,1,1,4,1,NULL,NULL,NULL),(617,55,'Rejected','2','Rejected',NULL,0,0,2,NULL,0,1,1,4,1,NULL,NULL,NULL),(618,55,'None','3','None',NULL,0,0,3,NULL,0,1,1,4,1,NULL,NULL,NULL),(619,57,'Survey','Survey','civicrm_survey',NULL,0,NULL,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(620,57,'Cases','Case','civicrm_case',NULL,0,NULL,2,'CRM_Case_PseudoConstant::caseType;',0,0,1,NULL,NULL,NULL,NULL,NULL),(621,84,'Abkhaz','ab','ab_GE',NULL,NULL,0,1,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(622,84,'Afar','aa','aa_ET',NULL,NULL,0,2,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(623,84,'Afrikaans','af','af_ZA',NULL,NULL,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(624,84,'Akan','ak','ak_GH',NULL,NULL,0,4,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(625,84,'Albanian','sq','sq_AL',NULL,NULL,0,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(626,84,'Amharic','am','am_ET',NULL,NULL,0,6,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(627,84,'Arabic','ar','ar_EG',NULL,NULL,0,7,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(628,84,'Aragonese','an','an_ES',NULL,NULL,0,8,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(629,84,'Armenian','hy','hy_AM',NULL,NULL,0,9,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(630,84,'Assamese','as','as_IN',NULL,NULL,0,10,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(631,84,'Avaric','av','av_RU',NULL,NULL,0,11,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(632,84,'Avestan','ae','ae_XX',NULL,NULL,0,12,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(633,84,'Aymara','ay','ay_BO',NULL,NULL,0,13,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(634,84,'Azerbaijani','az','az_AZ',NULL,NULL,0,14,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(635,84,'Bambara','bm','bm_ML',NULL,NULL,0,15,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(636,84,'Bashkir','ba','ba_RU',NULL,NULL,0,16,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(637,84,'Basque','eu','eu_ES',NULL,NULL,0,17,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(638,84,'Belarusian','be','be_BY',NULL,NULL,0,18,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(639,84,'Bengali','bn','bn_BD',NULL,NULL,0,19,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(640,84,'Bihari','bh','bh_IN',NULL,NULL,0,20,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(641,84,'Bislama','bi','bi_VU',NULL,NULL,0,21,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(642,84,'Bosnian','bs','bs_BA',NULL,NULL,0,22,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(643,84,'Breton','br','br_FR',NULL,NULL,0,23,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(644,84,'Bulgarian','bg','bg_BG',NULL,NULL,0,24,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(645,84,'Burmese','my','my_MM',NULL,NULL,0,25,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(646,84,'Catalan; Valencian','ca','ca_ES',NULL,NULL,0,26,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(647,84,'Chamorro','ch','ch_GU',NULL,NULL,0,27,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(648,84,'Chechen','ce','ce_RU',NULL,NULL,0,28,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(649,84,'Chichewa; Chewa; Nyanja','ny','ny_MW',NULL,NULL,0,29,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(650,84,'Chinese (China)','zh','zh_CN',NULL,NULL,0,30,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(651,84,'Chinese (Taiwan)','zh','zh_TW',NULL,NULL,0,31,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(652,84,'Chuvash','cv','cv_RU',NULL,NULL,0,32,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(653,84,'Cornish','kw','kw_GB',NULL,NULL,0,33,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(654,84,'Corsican','co','co_FR',NULL,NULL,0,34,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(655,84,'Cree','cr','cr_CA',NULL,NULL,0,35,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(656,84,'Croatian','hr','hr_HR',NULL,NULL,0,36,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(657,84,'Czech','cs','cs_CZ',NULL,NULL,0,37,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(658,84,'Danish','da','da_DK',NULL,NULL,0,38,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(659,84,'Divehi; Dhivehi; Maldivian;','dv','dv_MV',NULL,NULL,0,39,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(660,84,'Dutch','nl','nl_NL',NULL,NULL,0,40,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(661,84,'Dzongkha','dz','dz_BT',NULL,NULL,0,41,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(662,84,'English (Australia)','en','en_AU',NULL,NULL,0,42,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(663,84,'English (Canada)','en','en_CA',NULL,NULL,0,43,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(664,84,'English (United Kingdom)','en','en_GB',NULL,NULL,0,44,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(665,84,'English (United States)','en','en_US',NULL,NULL,1,45,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(666,84,'Esperanto','eo','eo_XX',NULL,NULL,0,46,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(667,84,'Estonian','et','et_EE',NULL,NULL,0,47,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(668,84,'Ewe','ee','ee_GH',NULL,NULL,0,48,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(669,84,'Faroese','fo','fo_FO',NULL,NULL,0,49,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(670,84,'Fijian','fj','fj_FJ',NULL,NULL,0,50,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(671,84,'Finnish','fi','fi_FI',NULL,NULL,0,51,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(672,84,'French (Canada)','fr','fr_CA',NULL,NULL,0,52,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(673,84,'French (France)','fr','fr_FR',NULL,NULL,0,53,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(674,84,'Fula; Fulah; Pulaar; Pular','ff','ff_SN',NULL,NULL,0,54,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(675,84,'Galician','gl','gl_ES',NULL,NULL,0,55,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(676,84,'Georgian','ka','ka_GE',NULL,NULL,0,56,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(677,84,'German','de','de_DE',NULL,NULL,0,57,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(678,84,'German (Swiss)','de','de_CH',NULL,NULL,0,58,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(679,84,'Greek, Modern','el','el_GR',NULL,NULL,0,59,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(680,84,'Guarani­','gn','gn_PY',NULL,NULL,0,60,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(681,84,'Gujarati','gu','gu_IN',NULL,NULL,0,61,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(682,84,'Haitian; Haitian Creole','ht','ht_HT',NULL,NULL,0,62,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(683,84,'Hausa','ha','ha_NG',NULL,NULL,0,63,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(684,84,'Hebrew (modern)','he','he_IL',NULL,NULL,0,64,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(685,84,'Herero','hz','hz_NA',NULL,NULL,0,65,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(686,84,'Hindi','hi','hi_IN',NULL,NULL,0,66,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(687,84,'Hiri Motu','ho','ho_PG',NULL,NULL,0,67,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(688,84,'Hungarian','hu','hu_HU',NULL,NULL,0,68,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(689,84,'Interlingua','ia','ia_XX',NULL,NULL,0,69,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(690,84,'Indonesian','id','id_ID',NULL,NULL,0,70,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(691,84,'Interlingue','ie','ie_XX',NULL,NULL,0,71,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(692,84,'Irish','ga','ga_IE',NULL,NULL,0,72,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(693,84,'Igbo','ig','ig_NG',NULL,NULL,0,73,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(694,84,'Inupiaq','ik','ik_US',NULL,NULL,0,74,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(695,84,'Ido','io','io_XX',NULL,NULL,0,75,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(696,84,'Icelandic','is','is_IS',NULL,NULL,0,76,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(697,84,'Italian','it','it_IT',NULL,NULL,0,77,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(698,84,'Inuktitut','iu','iu_CA',NULL,NULL,0,78,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(699,84,'Japanese','ja','ja_JP',NULL,NULL,0,79,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(700,84,'Javanese','jv','jv_ID',NULL,NULL,0,80,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(701,84,'Kalaallisut, Greenlandic','kl','kl_GL',NULL,NULL,0,81,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(702,84,'Kannada','kn','kn_IN',NULL,NULL,0,82,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(703,84,'Kanuri','kr','kr_NE',NULL,NULL,0,83,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(704,84,'Kashmiri','ks','ks_IN',NULL,NULL,0,84,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(705,84,'Kazakh','kk','kk_KZ',NULL,NULL,0,85,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(706,84,'Khmer','km','km_KH',NULL,NULL,0,86,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(707,84,'Kikuyu, Gikuyu','ki','ki_KE',NULL,NULL,0,87,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(708,84,'Kinyarwanda','rw','rw_RW',NULL,NULL,0,88,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(709,84,'Kirghiz, Kyrgyz','ky','ky_KG',NULL,NULL,0,89,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(710,84,'Komi','kv','kv_RU',NULL,NULL,0,90,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(711,84,'Kongo','kg','kg_CD',NULL,NULL,0,91,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(712,84,'Korean','ko','ko_KR',NULL,NULL,0,92,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(713,84,'Kurdish','ku','ku_IQ',NULL,NULL,0,93,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(714,84,'Kwanyama, Kuanyama','kj','kj_NA',NULL,NULL,0,94,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(715,84,'Latin','la','la_VA',NULL,NULL,0,95,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(716,84,'Luxembourgish, Letzeburgesch','lb','lb_LU',NULL,NULL,0,96,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(717,84,'Luganda','lg','lg_UG',NULL,NULL,0,97,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(718,84,'Limburgish, Limburgan, Limburger','li','li_NL',NULL,NULL,0,98,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(719,84,'Lingala','ln','ln_CD',NULL,NULL,0,99,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(720,84,'Lao','lo','lo_LA',NULL,NULL,0,100,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(721,84,'Lithuanian','lt','lt_LT',NULL,NULL,0,101,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(722,84,'Luba-Katanga','lu','lu_CD',NULL,NULL,0,102,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(723,84,'Latvian','lv','lv_LV',NULL,NULL,0,103,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(724,84,'Manx','gv','gv_IM',NULL,NULL,0,104,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(725,84,'Macedonian','mk','mk_MK',NULL,NULL,0,105,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(726,84,'Malagasy','mg','mg_MG',NULL,NULL,0,106,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(727,84,'Malay','ms','ms_MY',NULL,NULL,0,107,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(728,84,'Malayalam','ml','ml_IN',NULL,NULL,0,108,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(729,84,'Maltese','mt','mt_MT',NULL,NULL,0,109,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(730,84,'Māori','mi','mi_NZ',NULL,NULL,0,110,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(731,84,'Marathi','mr','mr_IN',NULL,NULL,0,111,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(732,84,'Marshallese','mh','mh_MH',NULL,NULL,0,112,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(733,84,'Mongolian','mn','mn_MN',NULL,NULL,0,113,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(734,84,'Nauru','na','na_NR',NULL,NULL,0,114,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(735,84,'Navajo, Navaho','nv','nv_US',NULL,NULL,0,115,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(736,84,'Norwegian BokmÃ¥l','nb','nb_NO',NULL,NULL,0,116,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(737,84,'North Ndebele','nd','nd_ZW',NULL,NULL,0,117,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(738,84,'Nepali','ne','ne_NP',NULL,NULL,0,118,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(739,84,'Ndonga','ng','ng_NA',NULL,NULL,0,119,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(740,84,'Norwegian Nynorsk','nn','nn_NO',NULL,NULL,0,120,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(741,84,'Norwegian','no','no_NO',NULL,NULL,0,121,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(742,84,'Nuosu','ii','ii_CN',NULL,NULL,0,122,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(743,84,'South Ndebele','nr','nr_ZA',NULL,NULL,0,123,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(744,84,'Occitan (after 1500)','oc','oc_FR',NULL,NULL,0,124,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(745,84,'Ojibwa','oj','oj_CA',NULL,NULL,0,125,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(746,84,'Old Church Slavonic, Church Slavic, Church Slavonic, Old Bulgarian, Old Slavonic','cu','cu_BG',NULL,NULL,0,126,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(747,84,'Oromo','om','om_ET',NULL,NULL,0,127,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(748,84,'Oriya','or','or_IN',NULL,NULL,0,128,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(749,84,'Ossetian, Ossetic','os','os_GE',NULL,NULL,0,129,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(750,84,'Panjabi, Punjabi','pa','pa_IN',NULL,NULL,0,130,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(751,84,'Pali','pi','pi_KH',NULL,NULL,0,131,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(752,84,'Persian (Iran)','fa','fa_IR',NULL,NULL,0,132,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(753,84,'Polish','pl','pl_PL',NULL,NULL,0,133,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(754,84,'Pashto, Pushto','ps','ps_AF',NULL,NULL,0,134,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(755,84,'Portuguese (Brazil)','pt','pt_BR',NULL,NULL,0,135,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(756,84,'Portuguese (Portugal)','pt','pt_PT',NULL,NULL,0,136,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(757,84,'Quechua','qu','qu_PE',NULL,NULL,0,137,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(758,84,'Romansh','rm','rm_CH',NULL,NULL,0,138,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(759,84,'Kirundi','rn','rn_BI',NULL,NULL,0,139,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(760,84,'Romanian, Moldavian, Moldovan','ro','ro_RO',NULL,NULL,0,140,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(761,84,'Russian','ru','ru_RU',NULL,NULL,0,141,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(762,84,'Sanskrit','sa','sa_IN',NULL,NULL,0,142,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(763,84,'Sardinian','sc','sc_IT',NULL,NULL,0,143,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(764,84,'Sindhi','sd','sd_IN',NULL,NULL,0,144,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(765,84,'Northern Sami','se','se_NO',NULL,NULL,0,145,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(766,84,'Samoan','sm','sm_WS',NULL,NULL,0,146,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(767,84,'Sango','sg','sg_CF',NULL,NULL,0,147,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(768,84,'Serbian','sr','sr_RS',NULL,NULL,0,148,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(769,84,'Scottish Gaelic; Gaelic','gd','gd_GB',NULL,NULL,0,149,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(770,84,'Shona','sn','sn_ZW',NULL,NULL,0,150,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(771,84,'Sinhala, Sinhalese','si','si_LK',NULL,NULL,0,151,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(772,84,'Slovak','sk','sk_SK',NULL,NULL,0,152,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(773,84,'Slovene','sl','sl_SI',NULL,NULL,0,153,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(774,84,'Somali','so','so_SO',NULL,NULL,0,154,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(775,84,'Southern Sotho','st','st_ZA',NULL,NULL,0,155,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(776,84,'Spanish; Castilian (Spain)','es','es_ES',NULL,NULL,0,156,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(777,84,'Spanish; Castilian (Mexico)','es','es_MX',NULL,NULL,0,157,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(778,84,'Spanish; Castilian (Puerto Rico)','es','es_PR',NULL,NULL,0,158,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(779,84,'Sundanese','su','su_ID',NULL,NULL,0,159,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(780,84,'Swahili','sw','sw_TZ',NULL,NULL,0,160,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(781,84,'Swati','ss','ss_ZA',NULL,NULL,0,161,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(782,84,'Swedish','sv','sv_SE',NULL,NULL,0,162,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(783,84,'Tamil','ta','ta_IN',NULL,NULL,0,163,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(784,84,'Telugu','te','te_IN',NULL,NULL,0,164,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(785,84,'Tajik','tg','tg_TJ',NULL,NULL,0,165,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(786,84,'Thai','th','th_TH',NULL,NULL,0,166,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(787,84,'Tigrinya','ti','ti_ET',NULL,NULL,0,167,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(788,84,'Tibetan Standard, Tibetan, Central','bo','bo_CN',NULL,NULL,0,168,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(789,84,'Turkmen','tk','tk_TM',NULL,NULL,0,169,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(790,84,'Tagalog','tl','tl_PH',NULL,NULL,0,170,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(791,84,'Tswana','tn','tn_ZA',NULL,NULL,0,171,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(792,84,'Tonga (Tonga Islands)','to','to_TO',NULL,NULL,0,172,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(793,84,'Turkish','tr','tr_TR',NULL,NULL,0,173,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(794,84,'Tsonga','ts','ts_ZA',NULL,NULL,0,174,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(795,84,'Tatar','tt','tt_RU',NULL,NULL,0,175,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(796,84,'Twi','tw','tw_GH',NULL,NULL,0,176,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(797,84,'Tahitian','ty','ty_PF',NULL,NULL,0,177,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(798,84,'Uighur, Uyghur','ug','ug_CN',NULL,NULL,0,178,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(799,84,'Ukrainian','uk','uk_UA',NULL,NULL,0,179,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(800,84,'Urdu','ur','ur_PK',NULL,NULL,0,180,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(801,84,'Uzbek','uz','uz_UZ',NULL,NULL,0,181,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(802,84,'Venda','ve','ve_ZA',NULL,NULL,0,182,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(803,84,'Vietnamese','vi','vi_VN',NULL,NULL,0,183,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(804,84,'Volapük','vo','vo_XX',NULL,NULL,0,184,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(805,84,'Walloon','wa','wa_BE',NULL,NULL,0,185,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(806,84,'Welsh','cy','cy_GB',NULL,NULL,0,186,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(807,84,'Wolof','wo','wo_SN',NULL,NULL,0,187,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(808,84,'Western Frisian','fy','fy_NL',NULL,NULL,0,188,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(809,84,'Xhosa','xh','xh_ZA',NULL,NULL,0,189,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(810,84,'Yiddish','yi','yi_US',NULL,NULL,0,190,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(811,84,'Yoruba','yo','yo_NG',NULL,NULL,0,191,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(812,84,'Zhuang, Chuang','za','za_CN',NULL,NULL,0,192,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(813,84,'Zulu','zu','zu_ZA',NULL,NULL,0,193,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(814,85,'In Person','1','in_person',NULL,0,0,1,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(815,85,'Phone','2','phone',NULL,0,1,2,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(816,85,'Email','3','email',NULL,0,0,3,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(817,85,'Fax','4','fax',NULL,0,0,4,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(818,85,'Letter Mail','5','letter_mail',NULL,0,0,5,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(819,86,'Cases - Send Copy of an Activity','1','case_activity',NULL,NULL,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(820,87,'Contributions - Duplicate Organization Alert','1','contribution_dupalert',NULL,NULL,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(821,87,'Contributions - Receipt (off-line)','2','contribution_offline_receipt',NULL,NULL,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(822,87,'Contributions - Receipt (on-line)','3','contribution_online_receipt',NULL,NULL,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(823,87,'Contributions - Invoice','4','contribution_invoice_receipt',NULL,NULL,0,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(824,87,'Contributions - Recurring Start and End Notification','5','contribution_recurring_notify',NULL,NULL,0,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(825,87,'Contributions - Recurring Cancellation Notification','6','contribution_recurring_cancelled',NULL,NULL,0,6,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(826,87,'Contributions - Recurring Billing Updates','7','contribution_recurring_billing',NULL,NULL,0,7,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(827,87,'Contributions - Recurring Updates','8','contribution_recurring_edit',NULL,NULL,0,8,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(828,87,'Personal Campaign Pages - Admin Notification','9','pcp_notify',NULL,NULL,0,9,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(829,87,'Personal Campaign Pages - Supporter Status Change Notification','10','pcp_status_change',NULL,NULL,0,10,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(830,87,'Personal Campaign Pages - Supporter Welcome','11','pcp_supporter_notify',NULL,NULL,0,11,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(831,87,'Personal Campaign Pages - Owner Notification','12','pcp_owner_notify',NULL,NULL,0,12,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(832,87,'Additional Payment Receipt or Refund Notification','13','payment_or_refund_notification',NULL,NULL,0,13,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(833,88,'Events - Registration Confirmation and Receipt (off-line)','1','event_offline_receipt',NULL,NULL,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(834,88,'Events - Registration Confirmation and Receipt (on-line)','2','event_online_receipt',NULL,NULL,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(835,88,'Events - Receipt only','3','event_registration_receipt',NULL,NULL,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(836,88,'Events - Registration Cancellation Notice','4','participant_cancelled',NULL,NULL,0,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(837,88,'Events - Registration Confirmation Invite','5','participant_confirm',NULL,NULL,0,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(838,88,'Events - Pending Registration Expiration Notice','6','participant_expired',NULL,NULL,0,6,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(839,88,'Events - Registration Transferred Notice','7','participant_transferred',NULL,NULL,0,7,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(840,89,'Tell-a-Friend Email','1','friend',NULL,NULL,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(841,90,'Memberships - Signup and Renewal Receipts (off-line)','1','membership_offline_receipt',NULL,NULL,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(842,90,'Memberships - Receipt (on-line)','2','membership_online_receipt',NULL,NULL,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(843,90,'Memberships - Auto-renew Cancellation Notification','3','membership_autorenew_cancelled',NULL,NULL,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(844,90,'Memberships - Auto-renew Billing Updates','4','membership_autorenew_billing',NULL,NULL,0,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(845,91,'Test-drive - Receipt Header','1','test_preview',NULL,NULL,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(846,92,'Pledges - Acknowledgement','1','pledge_acknowledge',NULL,NULL,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(847,92,'Pledges - Payment Reminder','2','pledge_reminder',NULL,NULL,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(848,93,'Profiles - Admin Notification','1','uf_notify',NULL,NULL,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(849,94,'Petition - signature added','1','petition_sign',NULL,NULL,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(850,94,'Petition - need verification','2','petition_confirmation_needed',NULL,NULL,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(851,95,'In Honor of','1','in_honor_of',NULL,NULL,0,1,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(852,95,'In Memory of','2','in_memory_of',NULL,NULL,0,2,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(853,95,'Solicited','3','solicited',NULL,NULL,1,3,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(854,95,'Household','4','household',NULL,NULL,0,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(855,95,'Workplace Giving','5','workplace',NULL,NULL,0,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(856,95,'Foundation Affiliate','6','foundation_affiliate',NULL,NULL,0,6,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(857,95,'3rd-party Service','7','3rd-party_service',NULL,NULL,0,7,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(858,95,'Donor-advised Fund','8','donor-advised_fund',NULL,NULL,0,8,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(859,95,'Matched Gift','9','matched_gift',NULL,NULL,0,9,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(860,95,'Personal Campaign Page','10','pcp',NULL,NULL,0,10,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(861,95,'Gift','11','gift',NULL,NULL,0,11,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(862,2,'Interview','55','Interview',NULL,0,NULL,55,'Conduct a phone or in person interview.',0,0,1,NULL,NULL,NULL,'fa-comment-o',NULL);
+INSERT INTO `civicrm_option_value` (`id`, `option_group_id`, `label`, `value`, `name`, `grouping`, `filter`, `is_default`, `weight`, `description`, `is_optgroup`, `is_reserved`, `is_active`, `component_id`, `domain_id`, `visibility_id`, `icon`, `color`) VALUES (1,1,'Phone','1','Phone',NULL,0,NULL,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(2,1,'Email','2','Email',NULL,0,NULL,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(3,1,'Postal Mail','3','Postal Mail',NULL,0,NULL,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(4,1,'SMS','4','SMS',NULL,0,NULL,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(5,1,'Fax','5','Fax',NULL,0,NULL,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(6,2,'Meeting','1','Meeting',NULL,0,NULL,1,NULL,0,1,1,NULL,NULL,NULL,'fa-slideshare',NULL),(7,2,'Phone Call','2','Phone Call',NULL,0,NULL,2,NULL,0,1,1,NULL,NULL,NULL,'fa-phone',NULL),(8,2,'Email','3','Email',NULL,1,NULL,3,'Email sent.',0,1,1,NULL,NULL,NULL,'fa-envelope-o',NULL),(9,2,'Outbound SMS','4','SMS',NULL,1,NULL,4,'Text message (SMS) sent.',0,1,1,NULL,NULL,NULL,'fa-mobile',NULL),(10,2,'Event Registration','5','Event Registration',NULL,1,NULL,5,'Online or offline event registration.',0,1,1,1,NULL,NULL,NULL,NULL),(11,2,'Contribution','6','Contribution',NULL,1,NULL,6,'Online or offline contribution.',0,1,1,2,NULL,NULL,NULL,NULL),(12,2,'Membership Signup','7','Membership Signup',NULL,1,NULL,7,'Online or offline membership signup.',0,1,1,3,NULL,NULL,NULL,NULL),(13,2,'Membership Renewal','8','Membership Renewal',NULL,1,NULL,8,'Online or offline membership renewal.',0,1,1,3,NULL,NULL,NULL,NULL),(14,2,'Tell a Friend','9','Tell a Friend',NULL,1,NULL,9,'Send information about a contribution campaign or event to a friend.',0,1,1,NULL,NULL,NULL,NULL,NULL),(15,2,'Pledge Acknowledgment','10','Pledge Acknowledgment',NULL,1,NULL,10,'Send Pledge Acknowledgment.',0,1,1,6,NULL,NULL,NULL,NULL),(16,2,'Pledge Reminder','11','Pledge Reminder',NULL,1,NULL,11,'Send Pledge Reminder.',0,1,1,6,NULL,NULL,NULL,NULL),(17,2,'Inbound Email','12','Inbound Email',NULL,1,NULL,12,'Inbound Email.',0,1,1,NULL,NULL,NULL,NULL,NULL),(18,2,'Open Case','13','Open Case',NULL,0,0,13,'',0,1,1,7,NULL,NULL,'fa-folder-open-o',NULL),(19,2,'Follow up','14','Follow up',NULL,0,0,14,'',0,1,1,7,NULL,NULL,'fa-share-square-o',NULL),(20,2,'Change Case Type','15','Change Case Type',NULL,0,0,15,'',0,1,1,7,NULL,NULL,'fa-random',NULL),(21,2,'Change Case Status','16','Change Case Status',NULL,0,0,16,'',0,1,1,7,NULL,NULL,'fa-pencil-square-o',NULL),(22,2,'Change Case Subject','53','Change Case Subject',NULL,0,0,53,'',0,1,1,7,NULL,NULL,'fa-pencil-square-o',NULL),(23,2,'Change Custom Data','33','Change Custom Data',NULL,0,0,33,'',0,1,1,7,NULL,NULL,'fa-table',NULL),(24,2,'Membership Renewal Reminder','17','Membership Renewal Reminder',NULL,1,NULL,17,'offline membership renewal reminder.',0,1,1,3,NULL,NULL,NULL,NULL),(25,2,'Change Case Start Date','18','Change Case Start Date',NULL,0,0,18,'',0,1,1,7,NULL,NULL,'fa-calendar',NULL),(26,2,'Bulk Email','19','Bulk Email',NULL,1,NULL,19,'Bulk Email Sent.',0,1,1,NULL,NULL,NULL,NULL,NULL),(27,2,'Assign Case Role','20','Assign Case Role',NULL,0,0,20,'',0,1,1,7,NULL,NULL,'fa-user-plus',NULL),(28,2,'Remove Case Role','21','Remove Case Role',NULL,0,0,21,'',0,1,1,7,NULL,NULL,'fa-user-times',NULL),(29,2,'Print/Merge Document','22','Print PDF Letter',NULL,0,NULL,22,'Export letters and other printable documents.',0,1,1,NULL,NULL,NULL,'fa-file-pdf-o',NULL),(30,2,'Merge Case','23','Merge Case',NULL,0,NULL,23,'',0,1,1,7,NULL,NULL,'fa-compress',NULL),(31,2,'Reassigned Case','24','Reassigned Case',NULL,0,NULL,24,'',0,1,1,7,NULL,NULL,'fa-user-circle-o',NULL),(32,2,'Link Cases','25','Link Cases',NULL,0,NULL,25,'',0,1,1,7,NULL,NULL,'fa-link',NULL),(33,2,'Change Case Tags','26','Change Case Tags',NULL,0,0,26,'',0,1,1,7,NULL,NULL,'fa-tags',NULL),(34,2,'Add Client To Case','27','Add Client To Case',NULL,0,0,26,'',0,1,1,7,NULL,NULL,'fa-users',NULL),(35,2,'Survey','28','Survey',NULL,0,0,27,'',0,1,1,9,NULL,NULL,NULL,NULL),(36,2,'Canvass','29','Canvass',NULL,0,0,28,'',0,1,1,9,NULL,NULL,NULL,NULL),(37,2,'PhoneBank','30','PhoneBank',NULL,0,0,29,'',0,1,1,9,NULL,NULL,NULL,NULL),(38,2,'WalkList','31','WalkList',NULL,0,0,30,'',0,1,1,9,NULL,NULL,NULL,NULL),(39,2,'Petition Signature','32','Petition',NULL,0,0,31,'',0,1,1,9,NULL,NULL,NULL,NULL),(40,2,'Mass SMS','34','Mass SMS',NULL,1,NULL,34,'Mass SMS',0,1,1,NULL,NULL,NULL,NULL,NULL),(41,2,'Change Membership Status','35','Change Membership Status',NULL,1,NULL,35,'Change Membership Status.',0,1,1,3,NULL,NULL,NULL,NULL),(42,2,'Change Membership Type','36','Change Membership Type',NULL,1,NULL,36,'Change Membership Type.',0,1,1,3,NULL,NULL,NULL,NULL),(43,2,'Cancel Recurring Contribution','37','Cancel Recurring Contribution',NULL,1,0,37,'',0,1,1,2,NULL,NULL,NULL,NULL),(44,2,'Update Recurring Contribution Billing Details','38','Update Recurring Contribution Billing Details',NULL,1,0,38,'',0,1,1,2,NULL,NULL,NULL,NULL),(45,2,'Update Recurring Contribution','39','Update Recurring Contribution',NULL,1,0,39,'',0,1,1,2,NULL,NULL,NULL,NULL),(46,2,'Reminder Sent','40','Reminder Sent',NULL,1,0,40,'',0,1,1,NULL,NULL,NULL,NULL,NULL),(47,2,'Export Accounting Batch','41','Export Accounting Batch',NULL,1,0,41,'Export Accounting Batch',0,1,1,2,NULL,NULL,NULL,NULL),(48,2,'Create Batch','42','Create Batch',NULL,1,0,42,'Create Batch',0,1,1,2,NULL,NULL,NULL,NULL),(49,2,'Edit Batch','43','Edit Batch',NULL,1,0,43,'Edit Batch',0,1,1,2,NULL,NULL,NULL,NULL),(50,2,'SMS delivery','44','SMS delivery',NULL,1,NULL,44,'SMS delivery',0,1,1,NULL,NULL,NULL,NULL,NULL),(51,2,'Inbound SMS','45','Inbound SMS',NULL,1,NULL,45,'Inbound SMS',0,1,1,NULL,NULL,NULL,NULL,NULL),(52,2,'Payment','46','Payment',NULL,1,NULL,46,'Additional payment recorded for event or membership fee.',0,1,1,2,NULL,NULL,NULL,NULL),(53,2,'Refund','47','Refund',NULL,1,NULL,47,'Refund recorded for event or membership fee.',0,1,1,2,NULL,NULL,NULL,NULL),(54,2,'Change Registration','48','Change Registration',NULL,1,NULL,48,'Changes to an existing event registration.',0,1,1,1,NULL,NULL,NULL,NULL),(55,2,'Downloaded Invoice','49','Downloaded Invoice',NULL,1,NULL,49,'Downloaded Invoice.',0,1,1,NULL,NULL,NULL,NULL,NULL),(56,2,'Emailed Invoice','50','Emailed Invoice',NULL,1,NULL,50,'Emailed Invoice.',0,1,1,NULL,NULL,NULL,NULL,NULL),(57,2,'Contact Merged','51','Contact Merged',NULL,1,NULL,51,'Contact Merged',0,1,1,NULL,NULL,NULL,NULL,NULL),(58,2,'Contact Deleted by Merge','52','Contact Deleted by Merge',NULL,1,NULL,52,'Contact was merged into another contact',0,1,1,NULL,NULL,NULL,NULL,NULL),(59,2,'Failed Payment','54','Failed Payment',NULL,1,0,54,'Failed Payment',0,1,1,2,NULL,NULL,NULL,NULL),(60,3,'Female','1','Female',NULL,0,NULL,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(61,3,'Male','2','Male',NULL,0,NULL,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(62,3,'Other','3','Other',NULL,0,NULL,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(63,4,'Yahoo','1','Yahoo',NULL,0,NULL,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(64,4,'MSN','2','Msn',NULL,0,NULL,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(65,4,'AIM','3','Aim',NULL,0,NULL,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(66,4,'GTalk','4','Gtalk',NULL,0,NULL,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(67,4,'Jabber','5','Jabber',NULL,0,NULL,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(68,4,'Skype','6','Skype',NULL,0,NULL,6,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(69,5,'Sprint','1','Sprint',NULL,0,NULL,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(70,5,'Verizon','2','Verizon',NULL,0,NULL,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(71,5,'Cingular','3','Cingular',NULL,0,NULL,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(72,6,'Mrs.','1','Mrs.',NULL,0,NULL,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(73,6,'Ms.','2','Ms.',NULL,0,NULL,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(74,6,'Mr.','3','Mr.',NULL,0,NULL,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(75,6,'Dr.','4','Dr.',NULL,0,NULL,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(76,7,'Jr.','1','Jr.',NULL,0,NULL,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(77,7,'Sr.','2','Sr.',NULL,0,NULL,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(78,7,'II','3','II',NULL,0,NULL,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(79,7,'III','4','III',NULL,0,NULL,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(80,7,'IV','5','IV',NULL,0,NULL,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(81,7,'V','6','V',NULL,0,NULL,6,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(82,7,'VI','7','VI',NULL,0,NULL,7,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(83,7,'VII','8','VII',NULL,0,NULL,8,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(84,8,'Administrator','1','Admin',NULL,0,NULL,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(85,8,'Authenticated','2','Auth',NULL,0,NULL,2,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(86,9,'Visa','1','Visa',NULL,0,NULL,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(87,9,'MasterCard','2','MasterCard',NULL,0,NULL,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(88,9,'Amex','3','Amex',NULL,0,NULL,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(89,9,'Discover','4','Discover',NULL,0,NULL,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(90,10,'Credit Card','1','Credit Card',NULL,0,0,1,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(91,10,'Debit Card','2','Debit Card',NULL,0,0,2,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(92,10,'Cash','3','Cash',NULL,0,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(93,10,'Check','4','Check',NULL,0,1,4,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(94,10,'EFT','5','EFT',NULL,0,0,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(95,11,'Completed','1','Completed',NULL,0,NULL,1,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(96,11,'Pending','2','Pending',NULL,0,NULL,2,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(97,11,'Cancelled','3','Cancelled',NULL,0,NULL,3,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(98,11,'Failed','4','Failed',NULL,0,NULL,4,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(99,11,'In Progress','5','In Progress',NULL,0,NULL,5,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(100,11,'Overdue','6','Overdue',NULL,0,NULL,6,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(101,11,'Refunded','7','Refunded',NULL,0,NULL,7,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(102,11,'Partially paid','8','Partially paid',NULL,0,NULL,8,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(103,11,'Pending refund','9','Pending refund',NULL,0,NULL,9,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(104,11,'Chargeback','10','Chargeback',NULL,0,NULL,10,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(105,11,'Template','11','Template',NULL,0,NULL,11,'Status for contribution records which represent a template for a recurring contribution rather than an actual contribution. This status is transitional, to ensure that said contributions don\\\'t appear in reports. The is_template field is the preferred way to find and filter these contributions.',0,1,1,NULL,NULL,NULL,NULL,NULL),(106,12,'Waiting Review','1','Waiting Review',NULL,0,NULL,1,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(107,12,'Approved','2','Approved',NULL,0,NULL,2,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(108,12,'Not Approved','3','Not Approved',NULL,0,NULL,3,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(109,13,'Owner chooses whether to receive notifications','1','owner_chooses',NULL,0,1,1,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(110,13,'Notifications are sent to ALL owners','2','all_owners',NULL,0,0,2,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(111,13,'Notifications are NOT available','3','no_notifications',NULL,0,0,3,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(112,14,'Attendee','1','Attendee',NULL,1,NULL,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(113,14,'Volunteer','2','Volunteer',NULL,1,NULL,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(114,14,'Host','3','Host',NULL,1,NULL,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(115,14,'Speaker','4','Speaker',NULL,1,NULL,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(116,15,'Conference','1','Conference',NULL,0,NULL,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(117,15,'Exhibition','2','Exhibition',NULL,0,NULL,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(118,15,'Fundraiser','3','Fundraiser',NULL,0,NULL,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(119,15,'Meeting','4','Meeting',NULL,0,NULL,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(120,15,'Performance','5','Performance',NULL,0,NULL,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(121,15,'Workshop','6','Workshop',NULL,0,NULL,6,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(122,16,'Activities','1','activity',NULL,0,NULL,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(123,16,'Relationships','2','rel',NULL,0,NULL,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(124,16,'Groups','3','group',NULL,0,NULL,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(125,16,'Notes','4','note',NULL,0,NULL,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(126,16,'Tags','5','tag',NULL,0,NULL,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(127,16,'Change Log','6','log',NULL,0,NULL,6,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(128,16,'Contributions','7','CiviContribute',NULL,0,NULL,7,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(129,16,'Memberships','8','CiviMember',NULL,0,NULL,8,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(130,16,'Events','9','CiviEvent',NULL,0,NULL,9,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(131,16,'Cases','10','CiviCase',NULL,0,NULL,10,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(132,16,'Grants','11','CiviGrant',NULL,0,NULL,11,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(133,16,'Pledges','13','CiviPledge',NULL,0,NULL,13,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(134,16,'Mailings','14','CiviMail',NULL,0,NULL,14,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(135,17,'Show Smart Groups on Demand','1','showondemand',NULL,0,NULL,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(136,17,'Always Show Smart Groups','2','alwaysshow',NULL,0,NULL,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(137,17,'Hide Smart Groups','3','hide',NULL,0,NULL,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(138,18,'Custom Data','1','CustomData',NULL,0,NULL,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(139,18,'Address','2','Address',NULL,0,NULL,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(140,18,'Communication Preferences','3','CommunicationPreferences',NULL,0,NULL,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(141,18,'Notes','4','Notes',NULL,0,NULL,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(142,18,'Demographics','5','Demographics',NULL,0,NULL,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(143,18,'Tags and Groups','6','TagsAndGroups',NULL,0,NULL,6,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(144,18,'Email','7','Email',NULL,1,NULL,7,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(145,18,'Phone','8','Phone',NULL,1,NULL,8,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(146,18,'Instant Messenger','9','IM',NULL,1,NULL,9,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(147,18,'Open ID','10','OpenID',NULL,1,NULL,10,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(148,18,'Website','11','Website',NULL,1,NULL,11,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(149,18,'Prefix','12','Prefix',NULL,2,NULL,12,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(150,18,'Formal Title','13','Formal Title',NULL,2,NULL,13,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(151,18,'First Name','14','First Name',NULL,2,NULL,14,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(152,18,'Middle Name','15','Middle Name',NULL,2,NULL,15,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(153,18,'Last Name','16','Last Name',NULL,2,NULL,16,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(154,18,'Suffix','17','Suffix',NULL,2,NULL,17,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(155,19,'Address Fields','1','location',NULL,0,NULL,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(156,19,'Custom Fields','2','custom',NULL,0,NULL,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(157,19,'Activities','3','activity',NULL,0,NULL,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(158,19,'Relationships','4','relationship',NULL,0,NULL,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(159,19,'Notes','5','notes',NULL,0,NULL,6,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(160,19,'Change Log','6','changeLog',NULL,0,NULL,7,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(161,19,'Contributions','7','CiviContribute',NULL,0,NULL,8,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(162,19,'Memberships','8','CiviMember',NULL,0,NULL,9,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(163,19,'Events','9','CiviEvent',NULL,0,NULL,10,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(164,19,'Cases','10','CiviCase',NULL,0,NULL,11,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(165,19,'Grants','12','CiviGrant',NULL,0,NULL,14,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(166,19,'Demographics','13','demographics',NULL,0,NULL,15,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(167,19,'Pledges','15','CiviPledge',NULL,0,NULL,17,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(168,19,'Contact Type','16','contactType',NULL,0,NULL,18,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(169,19,'Groups','17','groups',NULL,0,NULL,19,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(170,19,'Tags','18','tags',NULL,0,NULL,20,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(171,19,'Mailing','19','CiviMail',NULL,0,NULL,21,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(172,20,'Groups','1','Groups',NULL,0,NULL,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(173,20,'Contributions','2','CiviContribute',NULL,0,NULL,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(174,20,'Memberships','3','CiviMember',NULL,0,NULL,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(175,20,'Events','4','CiviEvent',NULL,0,NULL,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(176,20,'My Contacts / Organizations','5','Permissioned Orgs',NULL,0,NULL,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(177,20,'Pledges','7','CiviPledge',NULL,0,NULL,7,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(178,20,'Personal Campaign Pages','8','PCP',NULL,0,NULL,8,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(179,20,'Assigned Activities','9','Assigned Activities',NULL,0,NULL,9,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(180,20,'Invoices / Credit Notes','10','Invoices / Credit Notes',NULL,0,NULL,10,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(181,45,'Email Address','2','email',NULL,0,NULL,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(182,45,'Phone','3','phone',NULL,0,NULL,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(183,45,'Street Address','4','street_address',NULL,0,NULL,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(184,45,'City','5','city',NULL,0,NULL,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(185,45,'State/Province','6','state_province',NULL,0,NULL,6,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(186,45,'Country','7','country',NULL,0,NULL,7,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(187,45,'Postal Code','8','postal_code',NULL,0,NULL,8,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(188,46,'Email Address','2','email',NULL,0,NULL,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(189,46,'Phone','3','phone',NULL,0,NULL,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(190,46,'Street Address','4','street_address',NULL,0,NULL,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(191,46,'City','5','city',NULL,0,NULL,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(192,46,'State/Province','6','state_province',NULL,0,NULL,6,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(193,46,'Country','7','country',NULL,0,NULL,7,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(194,46,'Postal Code','8','postal_code',NULL,0,NULL,8,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(195,21,'Street Address','1','street_address',NULL,0,NULL,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(196,21,'Supplemental Address 1','2','supplemental_address_1',NULL,0,NULL,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(197,21,'Supplemental Address 2','3','supplemental_address_2',NULL,0,NULL,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(198,21,'Supplemental Address 3','4','supplemental_address_3',NULL,0,NULL,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(199,21,'City','5','city',NULL,0,NULL,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(200,21,'Postal Code','6','postal_code',NULL,0,NULL,6,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(201,21,'Postal Code Suffix','7','postal_code_suffix',NULL,0,NULL,7,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(202,21,'County','8','county',NULL,0,NULL,8,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(203,21,'State/Province','9','state_province',NULL,0,NULL,9,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(204,21,'Country','10','country',NULL,0,NULL,10,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(205,21,'Latitude','11','geo_code_1',NULL,0,NULL,11,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(206,21,'Longitude','12','geo_code_2',NULL,0,NULL,12,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(207,21,'Address Name','13','address_name',NULL,0,NULL,13,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(208,21,'Street Address Parsing','14','street_address_parsing',NULL,0,NULL,14,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(209,22,'Access Control','1','Access Control',NULL,0,NULL,1,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(210,22,'Mailing List','2','Mailing List',NULL,0,NULL,2,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(211,23,'Submitted','1','Submitted',NULL,0,1,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(212,23,'Eligible','2','Eligible',NULL,0,NULL,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(213,23,'Ineligible','3','Ineligible',NULL,0,NULL,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(214,23,'Paid','4','Paid',NULL,0,NULL,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(215,23,'Awaiting Information','5','Awaiting Information',NULL,0,NULL,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(216,23,'Withdrawn','6','Withdrawn',NULL,0,NULL,6,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(217,23,'Approved for Payment','7','Approved for Payment',NULL,0,NULL,7,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(218,25,'CRM_Contact_Form_Search_Custom_Sample','1','CRM_Contact_Form_Search_Custom_Sample',NULL,0,NULL,1,'Household Name and State',0,0,1,NULL,NULL,NULL,NULL,NULL),(219,25,'CRM_Contact_Form_Search_Custom_ContributionAggregate','2','CRM_Contact_Form_Search_Custom_ContributionAggregate',NULL,0,NULL,2,'Contribution Aggregate',0,0,1,NULL,NULL,NULL,NULL,NULL),(220,25,'CRM_Contact_Form_Search_Custom_Group','4','CRM_Contact_Form_Search_Custom_Group',NULL,0,NULL,4,'Include / Exclude Search',0,0,1,NULL,NULL,NULL,NULL,NULL),(221,25,'CRM_Contact_Form_Search_Custom_PostalMailing','5','CRM_Contact_Form_Search_Custom_PostalMailing',NULL,0,NULL,5,'Postal Mailing',0,0,1,NULL,NULL,NULL,NULL,NULL),(222,25,'CRM_Contact_Form_Search_Custom_Proximity','6','CRM_Contact_Form_Search_Custom_Proximity',NULL,0,NULL,6,'Proximity Search',0,0,1,NULL,NULL,NULL,NULL,NULL),(223,25,'CRM_Contact_Form_Search_Custom_EventAggregate','7','CRM_Contact_Form_Search_Custom_EventAggregate',NULL,0,NULL,7,'Event Aggregate',0,0,1,NULL,NULL,NULL,NULL,NULL),(224,25,'CRM_Contact_Form_Search_Custom_ActivitySearch','8','CRM_Contact_Form_Search_Custom_ActivitySearch',NULL,0,NULL,8,'Activity Search',0,0,1,NULL,NULL,NULL,NULL,NULL),(225,25,'CRM_Contact_Form_Search_Custom_PriceSet','9','CRM_Contact_Form_Search_Custom_PriceSet',NULL,0,NULL,9,'Price Set Details for Event Participants',0,0,1,NULL,NULL,NULL,NULL,NULL),(226,25,'CRM_Contact_Form_Search_Custom_ZipCodeRange','10','CRM_Contact_Form_Search_Custom_ZipCodeRange',NULL,0,NULL,10,'Zip Code Range',0,0,1,NULL,NULL,NULL,NULL,NULL),(227,25,'CRM_Contact_Form_Search_Custom_DateAdded','11','CRM_Contact_Form_Search_Custom_DateAdded',NULL,0,NULL,11,'Date Added to CiviCRM',0,0,1,NULL,NULL,NULL,NULL,NULL),(228,25,'CRM_Contact_Form_Search_Custom_MultipleValues','12','CRM_Contact_Form_Search_Custom_MultipleValues',NULL,0,NULL,12,'Custom Group Multiple Values Listing',0,0,1,NULL,NULL,NULL,NULL,NULL),(229,25,'CRM_Contact_Form_Search_Custom_ContribSYBNT','13','CRM_Contact_Form_Search_Custom_ContribSYBNT',NULL,0,NULL,13,'Contributions made in Year X and not Year Y',0,0,1,NULL,NULL,NULL,NULL,NULL),(230,25,'CRM_Contact_Form_Search_Custom_TagContributions','14','CRM_Contact_Form_Search_Custom_TagContributions',NULL,0,NULL,14,'Find Contribution Amounts by Tag',0,0,1,NULL,NULL,NULL,NULL,NULL),(231,25,'CRM_Contact_Form_Search_Custom_FullText','15','CRM_Contact_Form_Search_Custom_FullText',NULL,0,NULL,15,'Full-text Search',0,0,1,NULL,NULL,NULL,NULL,NULL),(232,41,'Constituent Report (Summary)','contact/summary','CRM_Report_Form_Contact_Summary',NULL,0,NULL,1,'Provides a list of address and telephone information for constituent records in your system.',0,0,1,NULL,NULL,NULL,NULL,NULL),(233,41,'Constituent Report (Detail)','contact/detail','CRM_Report_Form_Contact_Detail',NULL,0,NULL,2,'Provides contact-related information on contributions, memberships, events and activities.',0,0,1,NULL,NULL,NULL,NULL,NULL),(234,41,'Activity Details Report','activity','CRM_Report_Form_Activity',NULL,0,NULL,3,'Provides a list of constituent activity including activity statistics for one/all contacts during a given date range(required)',0,0,1,NULL,NULL,NULL,NULL,NULL),(235,41,'Walk / Phone List Report','walklist','CRM_Report_Form_Walklist_Walklist',NULL,0,NULL,4,'Provides a detailed report for your walk/phonelist for targeted contacts',0,0,0,NULL,NULL,NULL,NULL,NULL),(236,41,'Current Employer Report','contact/currentEmployer','CRM_Report_Form_Contact_CurrentEmployer',NULL,0,NULL,5,'Provides detail list of employer employee relationships along with employment details Ex Join Date',0,0,1,NULL,NULL,NULL,NULL,NULL),(237,41,'Contribution Summary Report','contribute/summary','CRM_Report_Form_Contribute_Summary',NULL,0,NULL,6,'Groups and totals contributions by criteria including contact, time period, financial type, contributor location, etc.',0,0,1,2,NULL,NULL,NULL,NULL),(238,41,'Contribution Detail Report','contribute/detail','CRM_Report_Form_Contribute_Detail',NULL,0,NULL,7,'Lists specific contributions by criteria including contact, time period, financial type, contributor location, etc. Contribution summary report points to this report for contribution details.',0,0,1,2,NULL,NULL,NULL,NULL),(239,41,'Repeat Contributions Report','contribute/repeat','CRM_Report_Form_Contribute_Repeat',NULL,0,NULL,8,'Given two date ranges, shows contacts who contributed in both the date ranges with the amount contributed in each and the percentage increase / decrease.',0,0,1,2,NULL,NULL,NULL,NULL),(240,41,'Contributions by Organization Report','contribute/organizationSummary','CRM_Report_Form_Contribute_OrganizationSummary',NULL,0,NULL,9,'Displays a detailed list of contributions grouped by organization, which includes contributions made by employees for the organisation.',0,0,1,2,NULL,NULL,NULL,NULL),(241,41,'Contributions by Household Report','contribute/householdSummary','CRM_Report_Form_Contribute_HouseholdSummary',NULL,0,NULL,10,'Displays a detailed list of contributions grouped by household which includes contributions made by members of the household.',0,0,1,2,NULL,NULL,NULL,NULL),(242,41,'Top Donors Report','contribute/topDonor','CRM_Report_Form_Contribute_TopDonor',NULL,0,NULL,11,'Provides a list of the top donors during a time period you define. You can include as many donors as you want (for example, top 100 of your donors).',0,0,1,2,NULL,NULL,NULL,NULL),(243,41,'SYBUNT Report','contribute/sybunt','CRM_Report_Form_Contribute_Sybunt',NULL,0,NULL,12,'SYBUNT means some year(s) but not this year. Provides a list of constituents who donated at some time in the history of your organization but did not donate during the time period you specify.',0,0,1,2,NULL,NULL,NULL,NULL),(244,41,'LYBUNT Report','contribute/lybunt','CRM_Report_Form_Contribute_Lybunt',NULL,0,NULL,13,'LYBUNT means last year but not this year. Provides a list of constituents who donated last year but did not donate during the time period you specify as the current year.',0,0,1,2,NULL,NULL,NULL,NULL),(245,41,'Soft Credit Report','contribute/softcredit','CRM_Report_Form_Contribute_SoftCredit',NULL,0,NULL,14,'Shows contributions made by contacts that have been soft-credited to other contacts.',0,0,1,2,NULL,NULL,NULL,NULL),(246,41,'Membership Report (Summary)','member/summary','CRM_Report_Form_Member_Summary',NULL,0,NULL,15,'Provides a summary of memberships by type and join date.',0,0,1,3,NULL,NULL,NULL,NULL),(247,41,'Membership Report (Detail)','member/detail','CRM_Report_Form_Member_Detail',NULL,0,NULL,16,'Provides a list of members along with their membership status and membership details (Join Date, Start Date, End Date). Can also display contributions (payments) associated with each membership.',0,0,1,3,NULL,NULL,NULL,NULL),(248,41,'Membership Report (Lapsed)','member/lapse','CRM_Report_Form_Member_Lapse',NULL,0,NULL,17,'Provides a list of memberships that lapsed or will lapse before the date you specify.',0,0,1,3,NULL,NULL,NULL,NULL),(249,41,'Event Participant Report (List)','event/participantListing','CRM_Report_Form_Event_ParticipantListing',NULL,0,NULL,18,'Provides lists of participants for an event.',0,0,1,1,NULL,NULL,NULL,NULL),(250,41,'Event Income Report (Summary)','event/summary','CRM_Report_Form_Event_Summary',NULL,0,NULL,19,'Provides an overview of event income. You can include key information such as event ID, registration, attendance, and income generated to help you determine the success of an event.',0,0,1,1,NULL,NULL,NULL,NULL),(251,41,'Event Income Report (Detail)','event/income','CRM_Report_Form_Event_Income',NULL,0,NULL,20,'Helps you to analyze the income generated by an event. The report can include details by participant type, status and payment method.',0,0,1,1,NULL,NULL,NULL,NULL),(252,41,'Pledge Detail Report','pledge/detail','CRM_Report_Form_Pledge_Detail',NULL,0,NULL,21,'List of pledges including amount pledged, pledge status, next payment date, balance due, total amount paid etc.',0,0,1,6,NULL,NULL,NULL,NULL),(253,41,'Pledged but not Paid Report','pledge/pbnp','CRM_Report_Form_Pledge_Pbnp',NULL,0,NULL,22,'Pledged but not Paid Report',0,0,1,6,NULL,NULL,NULL,NULL),(254,41,'Relationship Report','contact/relationship','CRM_Report_Form_Contact_Relationship',NULL,0,NULL,23,'Relationship Report',0,0,1,NULL,NULL,NULL,NULL,NULL),(255,41,'Case Summary Report','case/summary','CRM_Report_Form_Case_Summary',NULL,0,NULL,24,'Provides a summary of cases and their duration by date range, status, staff member and / or case role.',0,0,1,7,NULL,NULL,NULL,NULL),(256,41,'Case Time Spent Report','case/timespent','CRM_Report_Form_Case_TimeSpent',NULL,0,NULL,25,'Aggregates time spent on case and / or non-case activities by activity type and contact.',0,0,1,7,NULL,NULL,NULL,NULL),(257,41,'Contact Demographics Report','case/demographics','CRM_Report_Form_Case_Demographics',NULL,0,NULL,26,'Demographic breakdown for case clients (and or non-case contacts) in your database. Includes custom contact fields.',0,0,1,7,NULL,NULL,NULL,NULL),(258,41,'Database Log Report','contact/log','CRM_Report_Form_Contact_Log',NULL,0,NULL,27,'Log of contact and activity records created or updated in a given date range.',0,0,1,NULL,NULL,NULL,NULL,NULL),(259,41,'Activity Summary Report','activitySummary','CRM_Report_Form_ActivitySummary',NULL,0,NULL,28,'Shows activity statistics by type / date',0,0,1,NULL,NULL,NULL,NULL,NULL),(260,41,'Bookkeeping Transactions Report','contribute/bookkeeping','CRM_Report_Form_Contribute_Bookkeeping',NULL,0,0,29,'Shows Bookkeeping Transactions Report',0,0,1,2,NULL,NULL,NULL,NULL),(261,41,'Grant Report (Detail)','grant/detail','CRM_Report_Form_Grant_Detail',NULL,0,0,30,'Grant Report Detail',0,0,1,5,NULL,NULL,NULL,NULL),(262,41,'Participant list Count Report','event/participantlist','CRM_Report_Form_Event_ParticipantListCount',NULL,0,0,31,'Shows the Participant list with Participant Count.',0,0,1,1,NULL,NULL,NULL,NULL),(263,41,'Income Count Summary Report','event/incomesummary','CRM_Report_Form_Event_IncomeCountSummary',NULL,0,0,32,'Shows the Income Summary of events with Count.',0,0,1,1,NULL,NULL,NULL,NULL),(264,41,'Case Detail Report','case/detail','CRM_Report_Form_Case_Detail',NULL,0,0,33,'Case Details',0,0,1,7,NULL,NULL,NULL,NULL),(265,41,'Mail Bounce Report','Mailing/bounce','CRM_Report_Form_Mailing_Bounce',NULL,0,NULL,34,'Bounce Report for mailings',0,0,1,4,NULL,NULL,NULL,NULL),(266,41,'Mail Summary Report','Mailing/summary','CRM_Report_Form_Mailing_Summary',NULL,0,NULL,35,'Summary statistics for mailings',0,0,1,4,NULL,NULL,NULL,NULL),(267,41,'Mail Opened Report','Mailing/opened','CRM_Report_Form_Mailing_Opened',NULL,0,NULL,36,'Display contacts who opened emails from a mailing',0,0,1,4,NULL,NULL,NULL,NULL),(268,41,'Mail Click-Through Report','Mailing/clicks','CRM_Report_Form_Mailing_Clicks',NULL,0,NULL,37,'Display clicks from each mailing',0,0,1,4,NULL,NULL,NULL,NULL),(269,41,'Contact Logging Report (Summary)','logging/contact/summary','CRM_Report_Form_Contact_LoggingSummary',NULL,0,NULL,38,'Contact modification report for the logging infrastructure (summary).',0,0,0,NULL,NULL,NULL,NULL,NULL),(270,41,'Contact Logging Report (Detail)','logging/contact/detail','CRM_Report_Form_Contact_LoggingDetail',NULL,0,NULL,39,'Contact modification report for the logging infrastructure (detail).',0,0,0,NULL,NULL,NULL,NULL,NULL),(271,41,'Grant Report (Statistics)','grant/statistics','CRM_Report_Form_Grant_Statistics',NULL,0,NULL,42,'Shows statistics for Grants.',0,0,1,5,NULL,NULL,NULL,NULL),(272,41,'Survey Report (Detail)','survey/detail','CRM_Report_Form_Campaign_SurveyDetails',NULL,0,NULL,43,'Detailed report for canvassing, phone-banking, walk lists or other surveys.',0,0,1,9,NULL,NULL,NULL,NULL),(273,41,'Personal Campaign Page Report','contribute/pcp','CRM_Report_Form_Contribute_PCP',NULL,0,NULL,44,'Summarizes amount raised and number of contributors for each Personal Campaign Page.',0,0,1,2,NULL,NULL,NULL,NULL),(274,41,'Pledge Summary Report','pledge/summary','CRM_Report_Form_Pledge_Summary',NULL,0,NULL,45,'Groups and totals pledges by criteria including contact, time period, pledge status, location, etc.',0,0,1,6,NULL,NULL,NULL,NULL),(275,41,'Contribution Aggregate by Relationship','contribute/history','CRM_Report_Form_Contribute_History',NULL,0,NULL,46,'List contact\'s donation history, grouped by year, along with contributions attributed to any of the contact\'s related contacts.',0,0,1,2,NULL,NULL,NULL,NULL),(276,41,'Mail Detail Report','mailing/detail','CRM_Report_Form_Mailing_Detail',NULL,0,NULL,47,'Provides reporting on Intended and Successful Deliveries, Unsubscribes and Opt-outs, Replies and Forwards.',0,0,1,4,NULL,NULL,NULL,NULL),(277,41,'Contribution and Membership Details','member/contributionDetail','CRM_Report_Form_Member_ContributionDetail',NULL,0,NULL,48,'Contribution details for any type of contribution, plus associated membership information for contributions which are in payment for memberships.',0,0,1,3,NULL,NULL,NULL,NULL),(278,41,'Recurring Contributions Report','contribute/recur','CRM_Report_Form_Contribute_Recur',NULL,0,NULL,49,'Provides information about the status of recurring contributions',0,0,1,2,NULL,NULL,NULL,NULL),(279,41,'Recurring Contributions Summary','contribute/recursummary','CRM_Report_Form_Contribute_RecurSummary',NULL,0,NULL,49,'Provides simple summary for each payment instrument for which there are recurring contributions (e.g. Credit Card, Standing Order, Direct Debit, etc., NULL), showing within a given date range.',0,0,1,2,NULL,NULL,NULL,NULL),(280,41,'Deferred Revenue Details','contribute/deferredrevenue','CRM_Report_Form_Contribute_DeferredRevenue',NULL,0,NULL,50,'Deferred Revenue Details Report',0,0,1,2,NULL,NULL,NULL,NULL),(281,26,'Scheduled','1','Scheduled',NULL,0,1,1,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(282,26,'Completed','2','Completed',NULL,1,NULL,2,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(283,26,'Cancelled','3','Cancelled',NULL,2,NULL,3,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(284,26,'Left Message','4','Left Message',NULL,0,NULL,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(285,26,'Unreachable','5','Unreachable',NULL,2,NULL,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(286,26,'Not Required','6','Not Required',NULL,2,NULL,6,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(287,26,'Available','7','Available',NULL,0,NULL,7,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(288,26,'No-show','8','No_show',NULL,2,NULL,8,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(289,28,'Ongoing','1','Open','Opened',0,1,1,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(290,28,'Resolved','2','Closed','Closed',0,NULL,2,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(291,28,'Urgent','3','Urgent','Opened',0,NULL,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(292,29,'Name Only','1','Name Only',NULL,0,0,1,'CRM_Event_Page_ParticipantListing_Name',0,1,1,NULL,NULL,NULL,NULL,NULL),(293,29,'Name and Email','2','Name and Email',NULL,0,0,2,'CRM_Event_Page_ParticipantListing_NameAndEmail',0,1,1,NULL,NULL,NULL,NULL,NULL),(294,29,'Name, Status and Register Date','3','Name, Status and Register Date',NULL,0,0,3,'CRM_Event_Page_ParticipantListing_NameStatusAndDate',0,1,1,NULL,NULL,NULL,NULL,NULL),(295,30,'jpg','1','jpg',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(296,30,'jpeg','2','jpeg',NULL,0,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(297,30,'png','3','png',NULL,0,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(298,30,'gif','4','gif',NULL,0,0,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(299,30,'txt','5','txt',NULL,0,0,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(300,30,'pdf','6','pdf',NULL,0,0,6,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(301,30,'doc','7','doc',NULL,0,0,7,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(302,30,'xls','8','xls',NULL,0,0,8,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(303,30,'rtf','9','rtf',NULL,0,0,9,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(304,30,'csv','10','csv',NULL,0,0,10,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(305,30,'ppt','11','ppt',NULL,0,0,11,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(306,30,'docx','12','docx',NULL,0,0,12,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(307,30,'xlsx','13','xlsx',NULL,0,0,13,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(308,30,'odt','14','odt',NULL,0,0,14,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(309,30,'ics','15','ics',NULL,0,0,15,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(310,30,'pptx','16','pptx',NULL,0,0,16,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(311,33,'Textarea','1','Textarea',NULL,0,NULL,1,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(312,33,'CKEditor','2','CKEditor',NULL,0,NULL,2,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(313,32,'Search Builder','1','Search Builder',NULL,0,0,1,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(314,32,'Import Contact','2','Import Contact',NULL,0,0,2,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(315,32,'Import Activity','3','Import Activity',NULL,0,0,3,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(316,32,'Import Contribution','4','Import Contribution',NULL,0,0,4,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(317,32,'Import Membership','5','Import Membership',NULL,0,0,5,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(318,32,'Import Participant','6','Import Participant',NULL,0,0,6,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(319,32,'Export Contact','7','Export Contact',NULL,0,0,7,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(320,32,'Export Contribution','8','Export Contribution',NULL,0,0,8,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(321,32,'Export Membership','9','Export Membership',NULL,0,0,9,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(322,32,'Export Participant','10','Export Participant',NULL,0,0,10,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(323,32,'Export Pledge','11','Export Pledge',NULL,0,0,11,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(324,32,'Export Case','12','Export Case',NULL,0,0,12,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(325,32,'Export Grant','13','Export Grant',NULL,0,0,13,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(326,32,'Export Activity','14','Export Activity',NULL,0,0,14,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(327,34,'day','day','day',NULL,0,NULL,1,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(328,34,'week','week','week',NULL,0,NULL,2,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(329,34,'month','month','month',NULL,0,NULL,3,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(330,34,'year','year','year',NULL,0,NULL,4,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(331,35,'Phone','1','Phone',NULL,0,NULL,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(332,35,'Mobile','2','Mobile',NULL,0,NULL,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(333,35,'Fax','3','Fax',NULL,0,NULL,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(334,35,'Pager','4','Pager',NULL,0,NULL,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(335,35,'Voicemail','5','Voicemail',NULL,0,NULL,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(336,36,'Participant Role','1','ParticipantRole',NULL,0,NULL,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(337,36,'Participant Event Name','2','ParticipantEventName',NULL,0,NULL,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(338,36,'Participant Event Type','3','ParticipantEventType',NULL,0,NULL,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(339,37,'Public','1','public',NULL,0,NULL,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(340,37,'Admin','2','admin',NULL,0,NULL,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(341,38,'IMAP','1','IMAP',NULL,0,NULL,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(342,38,'Maildir','2','Maildir',NULL,0,NULL,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(343,38,'POP3','3','POP3',NULL,0,NULL,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(344,38,'Localdir','4','Localdir',NULL,0,NULL,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(345,38,'IMAP XOAUTH2','5','IMAP_XOAUTH2',NULL,0,NULL,5,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(346,39,'Urgent','1','Urgent',NULL,0,NULL,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(347,39,'Normal','2','Normal',NULL,0,NULL,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(348,39,'Low','3','Low',NULL,0,NULL,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(349,40,'Vancouver','city_','city_',NULL,0,NULL,1,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(350,40,'/(19|20)(\\d{2})-(\\d{1,2})-(\\d{1,2})/','date_','date_',NULL,1,NULL,2,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(351,42,'Dear {contact.first_name}','1','Dear {contact.first_name}',NULL,1,1,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(352,42,'Dear {contact.individual_prefix} {contact.first_name} {contact.last_name}','2','Dear {contact.individual_prefix} {contact.first_name} {contact.last_name}',NULL,1,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(353,42,'Dear {contact.individual_prefix} {contact.last_name}','3','Dear {contact.individual_prefix} {contact.last_name}',NULL,1,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(354,42,'Customized','4','Customized',NULL,0,0,4,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(355,42,'Dear {contact.household_name}','5','Dear {contact.household_name}',NULL,2,1,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(356,43,'Dear {contact.first_name}','1','Dear {contact.first_name}',NULL,1,1,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(357,43,'Dear {contact.individual_prefix} {contact.first_name} {contact.last_name}','2','Dear {contact.individual_prefix} {contact.first_name} {contact.last_name}',NULL,1,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(358,43,'Dear {contact.individual_prefix} {contact.last_name}','3','Dear {contact.individual_prefix} {contact.last_name}',NULL,1,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(359,43,'Customized','4','Customized',NULL,0,0,4,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(360,43,'Dear {contact.household_name}','5','Dear {contact.household_name}',NULL,2,1,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(361,44,'{contact.individual_prefix}{ } {contact.first_name}{ }{contact.middle_name}{ }{contact.last_name}{ }{contact.individual_suffix}','1','}{contact.individual_prefix}{ } {contact.first_name}{ }{contact.middle_name}{ }{contact.last_name}{ }{contact.individual_suffix}',NULL,1,1,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(362,44,'{contact.household_name}','2','{contact.household_name}',NULL,2,1,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(363,44,'{contact.organization_name}','3','{contact.organization_name}',NULL,3,1,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(364,44,'Customized','4','Customized',NULL,0,0,4,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(365,47,'Work','1','Work',NULL,0,1,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(366,47,'Main','2','Main',NULL,0,NULL,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(367,47,'Facebook','3','Facebook',NULL,0,NULL,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(368,47,'Instagram','5','Instagram',NULL,0,NULL,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(369,47,'LinkedIn','6','LinkedIn',NULL,0,NULL,6,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(370,47,'MySpace','7','MySpace',NULL,0,NULL,7,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(371,47,'Pinterest','8','Pinterest',NULL,0,NULL,8,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(372,47,'SnapChat','9','SnapChat',NULL,0,NULL,9,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(373,47,'Tumblr','10','Tumblr',NULL,0,NULL,10,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(374,47,'Twitter','11','Twitter',NULL,0,NULL,11,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(375,47,'Vine','12','Vine ',NULL,0,NULL,12,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(376,48,'Contacts','civicrm_contact','Contacts',NULL,0,NULL,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(377,48,'Activities','civicrm_activity','Activities',NULL,0,NULL,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(378,48,'Cases','civicrm_case','Cases',NULL,0,NULL,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(379,48,'Attachments','civicrm_file','Attachements',NULL,0,NULL,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(380,49,'USD ($)','USD','USD',NULL,0,1,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(381,50,'Name Only','1','CRM_Event_Badge_Simple',NULL,0,0,1,'Simple Event Name Badge',0,1,1,NULL,NULL,NULL,NULL,NULL),(382,50,'Name Tent','2','CRM_Event_Badge_NameTent',NULL,0,0,2,'Name Tent',0,1,1,NULL,NULL,NULL,NULL,NULL),(383,50,'With Logo','3','CRM_Event_Badge_Logo',NULL,0,0,3,'You can set your own background image',0,1,1,NULL,NULL,NULL,NULL,NULL),(384,50,'5395 with Logo','4','CRM_Event_Badge_Logo5395',NULL,0,0,4,'Avery 5395 compatible labels with logo (4 up by 2, 59.2mm x 85.7mm)',0,1,1,NULL,NULL,NULL,NULL,NULL),(385,51,'None','0','None',NULL,0,1,1,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(386,51,'Author Only','1','Author Only',NULL,0,0,2,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(387,52,'Direct Mail','1','Direct Mail',NULL,0,NULL,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(388,52,'Referral Program','2','Referral Program',NULL,0,NULL,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(389,52,'Constituent Engagement','3','Constituent Engagement',NULL,0,NULL,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(390,53,'Planned','1','Planned',NULL,0,NULL,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(391,53,'In Progress','2','In Progress',NULL,0,NULL,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(392,53,'Completed','3','Completed',NULL,0,NULL,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(393,53,'Cancelled','4','Cancelled',NULL,0,NULL,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(394,56,'1','1','1',NULL,0,NULL,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(395,56,'2','2','2',NULL,0,NULL,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(396,56,'3','3','3',NULL,0,NULL,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(397,56,'4','4','4',NULL,0,NULL,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(398,56,'5','5','5',NULL,0,NULL,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(399,58,'Letter','{\"metric\":\"in\",\"width\":8.5,\"height\":11}','letter',NULL,NULL,1,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(400,58,'Legal','{\"metric\":\"in\",\"width\":8.5,\"height\":14}','legal',NULL,NULL,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(401,58,'Ledger','{\"metric\":\"in\",\"width\":17,\"height\":11}','ledger',NULL,NULL,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(402,58,'Tabloid','{\"metric\":\"in\",\"width\":11,\"height\":17}','tabloid',NULL,NULL,0,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(403,58,'Executive','{\"metric\":\"in\",\"width\":7.25,\"height\":10.5}','executive',NULL,NULL,0,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(404,58,'Folio','{\"metric\":\"in\",\"width\":8.5,\"height\":13}','folio',NULL,NULL,0,6,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(405,58,'Envelope #9','{\"metric\":\"pt\",\"width\":638.93,\"height\":278.93}','envelope-9',NULL,NULL,0,7,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(406,58,'Envelope #10','{\"metric\":\"pt\",\"width\":684,\"height\":297}','envelope-10',NULL,NULL,0,8,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(407,58,'Envelope #11','{\"metric\":\"pt\",\"width\":747,\"height\":324}','envelope-11',NULL,NULL,0,9,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(408,58,'Envelope #12','{\"metric\":\"pt\",\"width\":792,\"height\":342}','envelope-12',NULL,NULL,0,10,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(409,58,'Envelope #14','{\"metric\":\"pt\",\"width\":828,\"height\":360}','envelope-14',NULL,NULL,0,11,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(410,58,'Envelope ISO B4','{\"metric\":\"pt\",\"width\":1000.63,\"height\":708.66}','envelope-b4',NULL,NULL,0,12,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(411,58,'Envelope ISO B5','{\"metric\":\"pt\",\"width\":708.66,\"height\":498.9}','envelope-b5',NULL,NULL,0,13,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(412,58,'Envelope ISO B6','{\"metric\":\"pt\",\"width\":498.9,\"height\":354.33}','envelope-b6',NULL,NULL,0,14,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(413,58,'Envelope ISO C3','{\"metric\":\"pt\",\"width\":1298.27,\"height\":918.42}','envelope-c3',NULL,NULL,0,15,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(414,58,'Envelope ISO C4','{\"metric\":\"pt\",\"width\":918.42,\"height\":649.13}','envelope-c4',NULL,NULL,0,16,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(415,58,'Envelope ISO C5','{\"metric\":\"pt\",\"width\":649.13,\"height\":459.21}','envelope-c5',NULL,NULL,0,17,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(416,58,'Envelope ISO C6','{\"metric\":\"pt\",\"width\":459.21,\"height\":323.15}','envelope-c6',NULL,NULL,0,18,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(417,58,'Envelope ISO DL','{\"metric\":\"pt\",\"width\":623.622,\"height\":311.811}','envelope-dl',NULL,NULL,0,19,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(418,58,'ISO A0','{\"metric\":\"pt\",\"width\":2383.94,\"height\":3370.39}','a0',NULL,NULL,0,20,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(419,58,'ISO A1','{\"metric\":\"pt\",\"width\":1683.78,\"height\":2383.94}','a1',NULL,NULL,0,21,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(420,58,'ISO A2','{\"metric\":\"pt\",\"width\":1190.55,\"height\":1683.78}','a2',NULL,NULL,0,22,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(421,58,'ISO A3','{\"metric\":\"pt\",\"width\":841.89,\"height\":1190.55}','a3',NULL,NULL,0,23,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(422,58,'ISO A4','{\"metric\":\"pt\",\"width\":595.28,\"height\":841.89}','a4',NULL,NULL,0,24,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(423,58,'ISO A5','{\"metric\":\"pt\",\"width\":419.53,\"height\":595.28}','a5',NULL,NULL,0,25,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(424,58,'ISO A6','{\"metric\":\"pt\",\"width\":297.64,\"height\":419.53}','a6',NULL,NULL,0,26,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(425,58,'ISO A7','{\"metric\":\"pt\",\"width\":209.76,\"height\":297.64}','a7',NULL,NULL,0,27,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(426,58,'ISO A8','{\"metric\":\"pt\",\"width\":147.4,\"height\":209.76}','a8',NULL,NULL,0,28,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(427,58,'ISO A9','{\"metric\":\"pt\",\"width\":104.88,\"height\":147.4}','a9',NULL,NULL,0,29,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(428,58,'ISO A10','{\"metric\":\"pt\",\"width\":73.7,\"height\":104.88}','a10',NULL,NULL,0,30,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(429,58,'ISO B0','{\"metric\":\"pt\",\"width\":2834.65,\"height\":4008.19}','b0',NULL,NULL,0,31,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(430,58,'ISO B1','{\"metric\":\"pt\",\"width\":2004.09,\"height\":2834.65}','b1',NULL,NULL,0,32,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(431,58,'ISO B2','{\"metric\":\"pt\",\"width\":1417.32,\"height\":2004.09}','b2',NULL,NULL,0,33,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(432,58,'ISO B3','{\"metric\":\"pt\",\"width\":1000.63,\"height\":1417.32}','b3',NULL,NULL,0,34,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(433,58,'ISO B4','{\"metric\":\"pt\",\"width\":708.66,\"height\":1000.63}','b4',NULL,NULL,0,35,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(434,58,'ISO B5','{\"metric\":\"pt\",\"width\":498.9,\"height\":708.66}','b5',NULL,NULL,0,36,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(435,58,'ISO B6','{\"metric\":\"pt\",\"width\":354.33,\"height\":498.9}','b6',NULL,NULL,0,37,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(436,58,'ISO B7','{\"metric\":\"pt\",\"width\":249.45,\"height\":354.33}','b7',NULL,NULL,0,38,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(437,58,'ISO B8','{\"metric\":\"pt\",\"width\":175.75,\"height\":249.45}','b8',NULL,NULL,0,39,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(438,58,'ISO B9','{\"metric\":\"pt\",\"width\":124.72,\"height\":175.75}','b9',NULL,NULL,0,40,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(439,58,'ISO B10','{\"metric\":\"pt\",\"width\":87.87,\"height\":124.72}','b10',NULL,NULL,0,41,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(440,58,'ISO C0','{\"metric\":\"pt\",\"width\":2599.37,\"height\":3676.54}','c0',NULL,NULL,0,42,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(441,58,'ISO C1','{\"metric\":\"pt\",\"width\":1836.85,\"height\":2599.37}','c1',NULL,NULL,0,43,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(442,58,'ISO C2','{\"metric\":\"pt\",\"width\":1298.27,\"height\":1836.85}','c2',NULL,NULL,0,44,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(443,58,'ISO C3','{\"metric\":\"pt\",\"width\":918.43,\"height\":1298.27}','c3',NULL,NULL,0,45,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(444,58,'ISO C4','{\"metric\":\"pt\",\"width\":649.13,\"height\":918.43}','c4',NULL,NULL,0,46,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(445,58,'ISO C5','{\"metric\":\"pt\",\"width\":459.21,\"height\":649.13}','c5',NULL,NULL,0,47,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(446,58,'ISO C6','{\"metric\":\"pt\",\"width\":323.15,\"height\":459.21}','c6',NULL,NULL,0,48,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(447,58,'ISO C7','{\"metric\":\"pt\",\"width\":229.61,\"height\":323.15}','c7',NULL,NULL,0,49,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(448,58,'ISO C8','{\"metric\":\"pt\",\"width\":161.57,\"height\":229.61}','c8',NULL,NULL,0,50,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(449,58,'ISO C9','{\"metric\":\"pt\",\"width\":113.39,\"height\":161.57}','c9',NULL,NULL,0,51,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(450,58,'ISO C10','{\"metric\":\"pt\",\"width\":79.37,\"height\":113.39}','c10',NULL,NULL,0,52,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(451,58,'ISO RA0','{\"metric\":\"pt\",\"width\":2437.8,\"height\":3458.27}','ra0',NULL,NULL,0,53,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(452,58,'ISO RA1','{\"metric\":\"pt\",\"width\":1729.13,\"height\":2437.8}','ra1',NULL,NULL,0,54,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(453,58,'ISO RA2','{\"metric\":\"pt\",\"width\":1218.9,\"height\":1729.13}','ra2',NULL,NULL,0,55,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(454,58,'ISO RA3','{\"metric\":\"pt\",\"width\":864.57,\"height\":1218.9}','ra3',NULL,NULL,0,56,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(455,58,'ISO RA4','{\"metric\":\"pt\",\"width\":609.45,\"height\":864.57}','ra4',NULL,NULL,0,57,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(456,58,'ISO SRA0','{\"metric\":\"pt\",\"width\":2551.18,\"height\":3628.35}','sra0',NULL,NULL,0,58,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(457,58,'ISO SRA1','{\"metric\":\"pt\",\"width\":1814.17,\"height\":2551.18}','sra1',NULL,NULL,0,59,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(458,58,'ISO SRA2','{\"metric\":\"pt\",\"width\":1275.59,\"height\":1814.17}','sra2',NULL,NULL,0,60,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(459,58,'ISO SRA3','{\"metric\":\"pt\",\"width\":907.09,\"height\":1275.59}','sra3',NULL,NULL,0,61,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(460,58,'ISO SRA4','{\"metric\":\"pt\",\"width\":637.8,\"height\":907.09}','sra4',NULL,NULL,0,62,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(461,61,'Activity Assignees','1','Activity Assignees',NULL,0,NULL,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(462,61,'Activity Source','2','Activity Source',NULL,0,NULL,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(463,61,'Activity Targets','3','Activity Targets',NULL,0,NULL,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(464,71,'Asset','1','Asset',NULL,0,0,1,'Things you own',0,1,1,2,NULL,NULL,NULL,NULL),(465,71,'Liability','2','Liability',NULL,0,0,2,'Things you owe, like a grant still to be disbursed',0,1,1,2,NULL,NULL,NULL,NULL),(466,71,'Revenue','3','Revenue',NULL,0,1,3,'Income from contributions and sales of tickets and memberships',0,1,1,2,NULL,NULL,NULL,NULL),(467,71,'Cost of Sales','4','Cost of Sales',NULL,0,0,4,'Costs incurred to get revenue, e.g. premiums for donations, dinner for a fundraising dinner ticket',0,1,1,2,NULL,NULL,NULL,NULL),(468,71,'Expenses','5','Expenses',NULL,0,0,5,'Things that are paid for that are consumable, e.g. grants disbursed',0,1,1,2,NULL,NULL,NULL,NULL),(469,62,'Income Account is','1','Income Account is',NULL,0,1,1,'Income Account is',0,1,1,2,NULL,NULL,NULL,NULL),(470,62,'Credit/Contra Revenue Account is','2','Credit/Contra Revenue Account is',NULL,0,0,2,'Credit/Contra Revenue Account is',0,1,1,2,NULL,NULL,NULL,NULL),(471,62,'Accounts Receivable Account is','3','Accounts Receivable Account is',NULL,0,0,3,'Accounts Receivable Account is',0,1,1,2,NULL,NULL,NULL,NULL),(472,62,'Credit Liability Account is','4','Credit Liability Account is',NULL,0,0,4,'Credit Liability Account is',0,1,0,2,NULL,NULL,NULL,NULL),(473,62,'Expense Account is','5','Expense Account is',NULL,0,0,5,'Expense Account is',0,1,1,2,NULL,NULL,NULL,NULL),(474,62,'Asset Account is','6','Asset Account is',NULL,0,0,6,'Asset Account is',0,1,1,2,NULL,NULL,NULL,NULL),(475,62,'Cost of Sales Account is','7','Cost of Sales Account is',NULL,0,0,7,'Cost of Sales Account is',0,1,1,2,NULL,NULL,NULL,NULL),(476,62,'Premiums Inventory Account is','8','Premiums Inventory Account is',NULL,0,0,8,'Premiums Inventory Account is',0,1,1,2,NULL,NULL,NULL,NULL),(477,62,'Discounts Account is','9','Discounts Account is',NULL,0,0,9,'Discounts Account is',0,1,1,2,NULL,NULL,NULL,NULL),(478,62,'Sales Tax Account is','10','Sales Tax Account is',NULL,0,0,10,'Sales Tax Account is',0,1,1,2,NULL,NULL,NULL,NULL),(479,62,'Chargeback Account is','11','Chargeback Account is',NULL,0,0,11,'Chargeback Account is',0,1,1,2,NULL,NULL,NULL,NULL),(480,62,'Deferred Revenue Account is','12','Deferred Revenue Account is',NULL,0,0,12,'Deferred Revenue Account is',0,1,1,2,NULL,NULL,NULL,NULL),(481,63,'Participant Role','1','participant_role',NULL,0,NULL,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(482,64,'Morning Sessions','1','Morning Sessions',NULL,0,NULL,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(483,64,'Evening Sessions','2','Evening Sessions',NULL,0,NULL,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(484,65,'Contribution','1','Contribution',NULL,0,NULL,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(485,65,'Membership','2','Membership',NULL,0,NULL,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(486,65,'Pledge Payment','3','Pledge Payment',NULL,0,NULL,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(487,67,'Open','1','Open',NULL,0,NULL,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(488,67,'Closed','2','Closed',NULL,0,NULL,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(489,67,'Data Entry','3','Data Entry',NULL,0,NULL,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(490,67,'Reopened','4','Reopened',NULL,0,NULL,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(491,67,'Exported','5','Exported',NULL,0,NULL,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(492,66,'Manual Batch','1','Manual Batch',NULL,0,0,1,'Manual Batch',0,1,1,2,NULL,NULL,NULL,NULL),(493,66,'Automatic Batch','2','Automatic Batch',NULL,0,0,2,'Automatic Batch',0,1,1,2,NULL,NULL,NULL,NULL),(494,72,'Paid','1','Paid',NULL,0,0,1,'Paid',0,1,1,2,NULL,NULL,NULL,NULL),(495,72,'Partially paid','2','Partially paid',NULL,0,0,2,'Partially paid',0,1,1,2,NULL,NULL,NULL,NULL),(496,72,'Unpaid','3','Unpaid',NULL,0,0,1,'Unpaid',0,1,1,2,NULL,NULL,NULL,NULL),(497,68,'http','1','http',NULL,NULL,0,1,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(498,68,'xml','2','xml',NULL,NULL,0,2,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(499,68,'smtp','3','smtp',NULL,NULL,0,3,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(500,70,'Renewal Reminder (non-auto-renew memberships only)','1','Renewal Reminder (non-auto-renew memberships only)',NULL,0,NULL,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(501,70,'Auto-renew Memberships Only','2','Auto-renew Memberships Only',NULL,0,NULL,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(502,70,'Reminder for Both','3','Reminder for Both',NULL,0,NULL,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(503,73,'Event Badge','1','Event Badge',NULL,0,NULL,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(504,74,'Avery 5395','{\"name\":\"Avery 5395\",\"paper-size\":\"a4\",\"metric\":\"mm\",\"lMargin\":15,\"tMargin\":26,\"NX\":2,\"NY\":4,\"SpaceX\":10,\"SpaceY\":5,\"width\":83,\"height\":57,\"font-size\":12,\"orientation\":\"portrait\",\"font-name\":\"helvetica\",\"font-style\":\"\",\"lPadding\":3,\"tPadding\":3}','Avery 5395',NULL,0,NULL,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(505,74,'A6 Badge Portrait 150x106','{\"paper-size\":\"a4\",\"orientation\":\"landscape\",\"font-name\":\"times\",\"font-size\":6,\"font-style\":\"\",\"NX\":2,\"NY\":1,\"metric\":\"mm\",\"lMargin\":25,\"tMargin\":27,\"SpaceX\":0,\"SpaceY\":35,\"width\":106,\"height\":150,\"lPadding\":5,\"tPadding\":5}','A6 Badge Portrait 150x106',NULL,0,NULL,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(506,74,'Fattorini Name Badge 100x65','{\"paper-size\":\"a4\",\"orientation\":\"portrait\",\"font-name\":\"times\",\"font-size\":6,\"font-style\":\"\",\"NX\":2,\"NY\":4,\"metric\":\"mm\",\"lMargin\":6,\"tMargin\":19,\"SpaceX\":0,\"SpaceY\":0,\"width\":100,\"height\":65,\"lPadding\":0,\"tPadding\":0}','Fattorini Name Badge 100x65',NULL,0,NULL,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(507,74,'Hanging Badge 3-3/4\" x 4-3\"/4','{\"paper-size\":\"a4\",\"orientation\":\"portrait\",\"font-name\":\"times\",\"font-size\":6,\"font-style\":\"\",\"NX\":2,\"NY\":2,\"metric\":\"mm\",\"lMargin\":10,\"tMargin\":28,\"SpaceX\":0,\"SpaceY\":0,\"width\":96,\"height\":121,\"lPadding\":5,\"tPadding\":5}','Hanging Badge 3-3/4\" x 4-3\"/4',NULL,0,NULL,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(508,60,'Avery 3475','{\"paper-size\":\"a4\",\"orientation\":\"portrait\",\"font-name\":\"dejavusans\",\"font-size\":10,\"font-style\":\"\",\"metric\":\"mm\",\"lMargin\":0,\"tMargin\":5,\"NX\":3,\"NY\":8,\"SpaceX\":0,\"SpaceY\":0,\"width\":70,\"height\":36,\"lPadding\":5.08,\"tPadding\":5.08}','3475','Avery',NULL,0,1,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(509,60,'Avery 5160','{\"paper-size\":\"letter\",\"orientation\":\"portrait\",\"font-name\":\"dejavusans\",\"font-size\":8,\"font-style\":\"\",\"metric\":\"in\",\"lMargin\":0.21975,\"tMargin\":0.5,\"NX\":3,\"NY\":10,\"SpaceX\":0.14,\"SpaceY\":0,\"width\":2.5935,\"height\":1,\"lPadding\":0.20,\"tPadding\":0.20}','5160','Avery',NULL,0,2,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(510,60,'Avery 5161','{\"paper-size\":\"letter\",\"orientation\":\"portrait\",\"font-name\":\"dejavusans\",\"font-size\":8,\"font-style\":\"\",\"metric\":\"in\",\"lMargin\":0.175,\"tMargin\":0.5,\"NX\":2,\"NY\":10,\"SpaceX\":0.15625,\"SpaceY\":0,\"width\":4,\"height\":1,\"lPadding\":0.20,\"tPadding\":0.20}','5161','Avery',NULL,0,3,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(511,60,'Avery 5162','{\"paper-size\":\"letter\",\"orientation\":\"portrait\",\"font-name\":\"dejavusans\",\"font-size\":8,\"font-style\":\"\",\"metric\":\"in\",\"lMargin\":0.1525,\"tMargin\":0.88,\"NX\":2,\"NY\":7,\"SpaceX\":0.195,\"SpaceY\":0,\"width\":4,\"height\":1.33,\"lPadding\":0.20,\"tPadding\":0.20}','5162','Avery',NULL,0,4,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(512,60,'Avery 5163','{\"paper-size\":\"letter\",\"orientation\":\"portrait\",\"font-name\":\"dejavusans\",\"font-size\":8,\"font-style\":\"\",\"metric\":\"in\",\"lMargin\":0.18,\"tMargin\":0.5,\"NX\":2,\"NY\":5,\"SpaceX\":0.14,\"SpaceY\":0,\"width\":4,\"height\":2,\"lPadding\":0.20,\"tPadding\":0.20}','5163','Avery',NULL,0,5,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(513,60,'Avery 5164','{\"paper-size\":\"letter\",\"orientation\":\"portrait\",\"font-name\":\"dejavusans\",\"font-size\":12,\"font-style\":\"\",\"metric\":\"in\",\"lMargin\":0.156,\"tMargin\":0.5,\"NX\":2,\"NY\":3,\"SpaceX\":0.1875,\"SpaceY\":0,\"width\":4,\"height\":3.33,\"lPadding\":0.20,\"tPadding\":0.20}','5164','Avery',NULL,0,6,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(514,60,'Avery 8600','{\"paper-size\":\"letter\",\"orientation\":\"portrait\",\"font-name\":\"dejavusans\",\"font-size\":8,\"font-style\":\"\",\"metric\":\"mm\",\"lMargin\":7.1,\"tMargin\":19,\"NX\":3,\"NY\":10,\"SpaceX\":9.5,\"SpaceY\":3.1,\"width\":66.6,\"height\":25.4,\"lPadding\":5.08,\"tPadding\":5.08}','8600','Avery',NULL,0,7,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(515,60,'Avery L7160','{\"paper-size\":\"a4\",\"orientation\":\"portrait\",\"font-name\":\"dejavusans\",\"font-size\":9,\"font-style\":\"\",\"metric\":\"in\",\"lMargin\":0.28,\"tMargin\":0.6,\"NX\":3,\"NY\":7,\"SpaceX\":0.1,\"SpaceY\":0,\"width\":2.5,\"height\":1.5,\"lPadding\":0.20,\"tPadding\":0.20}','L7160','Avery',NULL,0,8,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(516,60,'Avery L7161','{\"paper-size\":\"a4\",\"orientation\":\"portrait\",\"font-name\":\"dejavusans\",\"font-size\":9,\"font-style\":\"\",\"metric\":\"in\",\"lMargin\":0.28,\"tMargin\":0.35,\"NX\":3,\"NY\":6,\"SpaceX\":0.1,\"SpaceY\":0,\"width\":2.5,\"height\":1.83,\"lPadding\":0.20,\"tPadding\":0.20}','L7161','Avery',NULL,0,9,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(517,60,'Avery L7162','{\"paper-size\":\"a4\",\"orientation\":\"portrait\",\"font-name\":\"dejavusans\",\"font-size\":9,\"font-style\":\"\",\"metric\":\"in\",\"lMargin\":0.18,\"tMargin\":0.51,\"NX\":2,\"NY\":8,\"SpaceX\":0.1,\"SpaceY\":0,\"width\":3.9,\"height\":1.33,\"lPadding\":0.20,\"tPadding\":0.20}','L7162','Avery',NULL,0,10,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(518,60,'Avery L7163','{\"paper-size\":\"a4\",\"orientation\":\"portrait\",\"font-name\":\"dejavusans\",\"font-size\":9,\"font-style\":\"\",\"metric\":\"in\",\"lMargin\":0.18,\"tMargin\":0.6,\"NX\":2,\"NY\":7,\"SpaceX\":0.1,\"SpaceY\":0,\"width\":3.9,\"height\":1.5,\"lPadding\":0.20,\"tPadding\":0.20}','L7163','Avery',NULL,0,11,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(519,75,'Formal','1','formal',NULL,0,1,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(520,75,'Familiar','2','familiar',NULL,0,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(521,76,'Email','Email','Email',NULL,0,1,1,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(522,76,'SMS','SMS','SMS',NULL,0,0,2,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(523,76,'User Preference','User_Preference','User Preference',NULL,0,0,3,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(524,77,'Actual date only','1','Actual date only',NULL,NULL,0,1,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(525,77,'Each anniversary','2','Each anniversary',NULL,NULL,0,2,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(526,78,'Default','1','default',NULL,NULL,1,1,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(527,78,'CiviMail','2','civimail',NULL,NULL,0,2,NULL,0,1,1,4,NULL,NULL,NULL,NULL),(528,78,'CiviEvent','3','civievent',NULL,NULL,0,3,NULL,0,1,1,1,NULL,NULL,NULL,NULL),(529,82,'Production','Production','Production',NULL,NULL,1,1,'Production Environment',0,1,1,NULL,NULL,NULL,NULL,NULL),(530,82,'Staging','Staging','Staging',NULL,NULL,0,2,'Staging Environment',0,1,1,NULL,NULL,NULL,NULL,NULL),(531,82,'Development','Development','Development',NULL,NULL,0,3,'Development Environment',0,1,1,NULL,NULL,NULL,NULL,NULL),(532,79,'Today','this.day','this.day',NULL,NULL,NULL,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(533,79,'This week','this.week','this.week',NULL,NULL,NULL,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(534,79,'This calendar month','this.month','this.month',NULL,NULL,NULL,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(535,79,'This quarter','this.quarter','this.quarter',NULL,NULL,NULL,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(536,79,'This fiscal year','this.fiscal_year','this.fiscal_year',NULL,NULL,NULL,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(537,79,'This calendar year','this.year','this.year',NULL,NULL,NULL,6,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(538,79,'Yesterday','previous.day','previous.day',NULL,NULL,NULL,7,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(539,79,'Previous week','previous.week','previous.week',NULL,NULL,NULL,8,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(540,79,'Previous calendar month','previous.month','previous.month',NULL,NULL,NULL,9,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(541,79,'Previous quarter','previous.quarter','previous.quarter',NULL,NULL,NULL,10,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(542,79,'Previous fiscal year','previous.fiscal_year','previous.fiscal_year',NULL,NULL,NULL,11,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(543,79,'Previous calendar year','previous.year','previous.year',NULL,NULL,NULL,12,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(544,79,'Last 7 days including today','ending.week','ending.week',NULL,NULL,NULL,13,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(545,79,'Last 30 days including today','ending_30.day','ending.month',NULL,NULL,NULL,14,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(546,79,'Last 60 days including today','ending_60.day','ending_2.month',NULL,NULL,NULL,15,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(547,79,'Last 90 days including today','ending_90.day','ending.quarter',NULL,NULL,NULL,16,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(548,79,'Last 12 months including today','ending.year','ending.year',NULL,NULL,NULL,17,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(549,79,'Last 2 years including today','ending_2.year','ending_2.year',NULL,NULL,NULL,18,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(550,79,'Last 3 years including today','ending_3.year','ending_3.year',NULL,NULL,NULL,19,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(551,79,'Tomorrow','starting.day','starting.day',NULL,NULL,NULL,20,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(552,79,'Next week','next.week','next.week',NULL,NULL,NULL,21,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(553,79,'Next calendar month','next.month','next.month',NULL,NULL,NULL,22,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(554,79,'Next quarter','next.quarter','next.quarter',NULL,NULL,NULL,23,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(555,79,'Next fiscal year','next.fiscal_year','next.fiscal_year',NULL,NULL,NULL,24,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(556,79,'Next calendar year','next.year','next.year',NULL,NULL,NULL,25,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(557,79,'Next 7 days including today','starting.week','starting.week',NULL,NULL,NULL,26,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(558,79,'Next 30 days including today','starting.month','starting.month',NULL,NULL,NULL,27,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(559,79,'Next 60 days including today','starting_2.month','starting_2.month',NULL,NULL,NULL,28,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(560,79,'Next 90 days including today','starting.quarter','starting.quarter',NULL,NULL,NULL,29,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(561,79,'Next 12 months including today','starting.year','starting.year',NULL,NULL,NULL,30,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(562,79,'Current week to-date','current.week','current.week',NULL,NULL,NULL,31,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(563,79,'Current calendar month to-date','current.month','current.month',NULL,NULL,NULL,32,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(564,79,'Current quarter to-date','current.quarter','current.quarter',NULL,NULL,NULL,33,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(565,79,'Current calendar year to-date','current.year','current.year',NULL,NULL,NULL,34,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(566,79,'To end of yesterday','earlier.day','earlier.day',NULL,NULL,NULL,35,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(567,79,'To end of previous week','earlier.week','earlier.week',NULL,NULL,NULL,36,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(568,79,'To end of previous calendar month','earlier.month','earlier.month',NULL,NULL,NULL,37,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(569,79,'To end of previous quarter','earlier.quarter','earlier.quarter',NULL,NULL,NULL,38,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(570,79,'To end of previous calendar year','earlier.year','earlier.year',NULL,NULL,NULL,39,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(571,79,'From start of current day','greater.day','greater.day',NULL,NULL,NULL,40,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(572,79,'From start of current week','greater.week','greater.week',NULL,NULL,NULL,41,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(573,79,'From start of current calendar month','greater.month','greater.month',NULL,NULL,NULL,42,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(574,79,'From start of current quarter','greater.quarter','greater.quarter',NULL,NULL,NULL,43,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(575,79,'From start of current calendar year','greater.year','greater.year',NULL,NULL,NULL,44,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(576,79,'To end of current week','less.week','less.week',NULL,NULL,NULL,45,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(577,79,'To end of current calendar month','less.month','less.month',NULL,NULL,NULL,46,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(578,79,'To end of current quarter','less.quarter','less.quarter',NULL,NULL,NULL,47,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(579,79,'To end of current calendar year','less.year','less.year',NULL,NULL,NULL,48,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(580,79,'Previous 2 days','previous_2.day','previous_2.day',NULL,NULL,NULL,49,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(581,79,'Previous 2 weeks','previous_2.week','previous_2.week',NULL,NULL,NULL,50,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(582,79,'Previous 2 calendar months','previous_2.month','previous_2.month',NULL,NULL,NULL,51,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(583,79,'Previous 2 quarters','previous_2.quarter','previous_2.quarter',NULL,NULL,NULL,52,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(584,79,'Previous 2 calendar years','previous_2.year','previous_2.year',NULL,NULL,NULL,53,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(585,79,'Day prior to yesterday','previous_before.day','previous_before.day',NULL,NULL,NULL,54,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(586,79,'Week prior to previous week','previous_before.week','previous_before.week',NULL,NULL,NULL,55,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(587,79,'Month prior to previous calendar month','previous_before.month','previous_before.month',NULL,NULL,NULL,56,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(588,79,'Quarter prior to previous quarter','previous_before.quarter','previous_before.quarter',NULL,NULL,NULL,57,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(589,79,'Year prior to previous calendar year','previous_before.year','previous_before.year',NULL,NULL,NULL,58,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(590,79,'From end of previous week','greater_previous.week','greater_previous.week',NULL,NULL,NULL,59,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(591,79,'From end of previous calendar month','greater_previous.month','greater_previous.month',NULL,NULL,NULL,60,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(592,79,'From end of previous quarter','greater_previous.quarter','greater_previous.quarter',NULL,NULL,NULL,61,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(593,79,'From end of previous calendar year','greater_previous.year','greater_previous.year',NULL,NULL,NULL,62,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(594,80,'Completed','1','Completed',NULL,0,NULL,1,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(595,80,'Pending','2','Pending',NULL,0,NULL,2,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(596,80,'Cancelled','3','Cancelled',NULL,0,NULL,3,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(597,80,'In Progress','5','In Progress',NULL,0,NULL,4,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(598,80,'Overdue','6','Overdue',NULL,0,NULL,5,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(599,81,'Completed','1','Completed',NULL,0,NULL,1,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(600,81,'Pending','2','Pending',NULL,0,NULL,2,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(601,81,'Cancelled','3','Cancelled',NULL,0,NULL,3,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(602,81,'Failed','4','Failed',NULL,0,NULL,4,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(603,81,'In Progress','5','In Progress',NULL,0,NULL,5,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(604,81,'Overdue','6','Overdue',NULL,0,NULL,6,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(605,81,'Processing','7','Processing',NULL,0,NULL,7,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(606,81,'Failing','8','Failing',NULL,0,NULL,8,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(607,83,'None','1','NONE',NULL,0,1,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(608,83,'By relationship to case client','2','BY_RELATIONSHIP',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(609,83,'Specific contact','3','SPECIFIC_CONTACT',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(610,83,'User creating the case','4','USER_CREATING_THE_CASE',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(611,31,'\"FIXME\" <info@EXAMPLE.ORG>','1','\"FIXME\" <info@EXAMPLE.ORG>',NULL,0,1,1,'Default domain email address and from name.',0,0,1,NULL,1,NULL,NULL,NULL),(612,24,'Emergency','1','Emergency',NULL,0,1,1,NULL,0,0,1,NULL,1,NULL,NULL,NULL),(613,24,'Family Support','2','Family Support',NULL,0,NULL,2,NULL,0,0,1,NULL,1,NULL,NULL,NULL),(614,24,'General Protection','3','General Protection',NULL,0,NULL,3,NULL,0,0,1,NULL,1,NULL,NULL,NULL),(615,24,'Impunity','4','Impunity',NULL,0,NULL,4,NULL,0,0,1,NULL,1,NULL,NULL,NULL),(616,55,'Approved','1','Approved',NULL,0,1,1,NULL,0,1,1,4,1,NULL,NULL,NULL),(617,55,'Rejected','2','Rejected',NULL,0,0,2,NULL,0,1,1,4,1,NULL,NULL,NULL),(618,55,'None','3','None',NULL,0,0,3,NULL,0,1,1,4,1,NULL,NULL,NULL),(619,57,'Survey','Survey','civicrm_survey',NULL,0,NULL,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(620,57,'Cases','Case','civicrm_case',NULL,0,NULL,2,'CRM_Case_PseudoConstant::caseType;',0,0,1,NULL,NULL,NULL,NULL,NULL),(621,84,'Abkhaz','ab','ab_GE',NULL,NULL,0,1,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(622,84,'Afar','aa','aa_ET',NULL,NULL,0,2,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(623,84,'Afrikaans','af','af_ZA',NULL,NULL,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(624,84,'Akan','ak','ak_GH',NULL,NULL,0,4,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(625,84,'Albanian','sq','sq_AL',NULL,NULL,0,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(626,84,'Amharic','am','am_ET',NULL,NULL,0,6,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(627,84,'Arabic','ar','ar_EG',NULL,NULL,0,7,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(628,84,'Aragonese','an','an_ES',NULL,NULL,0,8,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(629,84,'Armenian','hy','hy_AM',NULL,NULL,0,9,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(630,84,'Assamese','as','as_IN',NULL,NULL,0,10,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(631,84,'Avaric','av','av_RU',NULL,NULL,0,11,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(632,84,'Avestan','ae','ae_XX',NULL,NULL,0,12,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(633,84,'Aymara','ay','ay_BO',NULL,NULL,0,13,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(634,84,'Azerbaijani','az','az_AZ',NULL,NULL,0,14,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(635,84,'Bambara','bm','bm_ML',NULL,NULL,0,15,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(636,84,'Bashkir','ba','ba_RU',NULL,NULL,0,16,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(637,84,'Basque','eu','eu_ES',NULL,NULL,0,17,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(638,84,'Belarusian','be','be_BY',NULL,NULL,0,18,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(639,84,'Bengali','bn','bn_BD',NULL,NULL,0,19,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(640,84,'Bihari','bh','bh_IN',NULL,NULL,0,20,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(641,84,'Bislama','bi','bi_VU',NULL,NULL,0,21,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(642,84,'Bosnian','bs','bs_BA',NULL,NULL,0,22,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(643,84,'Breton','br','br_FR',NULL,NULL,0,23,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(644,84,'Bulgarian','bg','bg_BG',NULL,NULL,0,24,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(645,84,'Burmese','my','my_MM',NULL,NULL,0,25,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(646,84,'Catalan; Valencian','ca','ca_ES',NULL,NULL,0,26,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(647,84,'Chamorro','ch','ch_GU',NULL,NULL,0,27,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(648,84,'Chechen','ce','ce_RU',NULL,NULL,0,28,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(649,84,'Chichewa; Chewa; Nyanja','ny','ny_MW',NULL,NULL,0,29,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(650,84,'Chinese (China)','zh','zh_CN',NULL,NULL,0,30,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(651,84,'Chinese (Taiwan)','zh','zh_TW',NULL,NULL,0,31,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(652,84,'Chuvash','cv','cv_RU',NULL,NULL,0,32,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(653,84,'Cornish','kw','kw_GB',NULL,NULL,0,33,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(654,84,'Corsican','co','co_FR',NULL,NULL,0,34,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(655,84,'Cree','cr','cr_CA',NULL,NULL,0,35,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(656,84,'Croatian','hr','hr_HR',NULL,NULL,0,36,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(657,84,'Czech','cs','cs_CZ',NULL,NULL,0,37,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(658,84,'Danish','da','da_DK',NULL,NULL,0,38,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(659,84,'Divehi; Dhivehi; Maldivian;','dv','dv_MV',NULL,NULL,0,39,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(660,84,'Dutch','nl','nl_NL',NULL,NULL,0,40,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(661,84,'Dzongkha','dz','dz_BT',NULL,NULL,0,41,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(662,84,'English (Australia)','en','en_AU',NULL,NULL,0,42,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(663,84,'English (Canada)','en','en_CA',NULL,NULL,0,43,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(664,84,'English (United Kingdom)','en','en_GB',NULL,NULL,0,44,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(665,84,'English (United States)','en','en_US',NULL,NULL,1,45,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(666,84,'Esperanto','eo','eo_XX',NULL,NULL,0,46,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(667,84,'Estonian','et','et_EE',NULL,NULL,0,47,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(668,84,'Ewe','ee','ee_GH',NULL,NULL,0,48,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(669,84,'Faroese','fo','fo_FO',NULL,NULL,0,49,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(670,84,'Fijian','fj','fj_FJ',NULL,NULL,0,50,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(671,84,'Finnish','fi','fi_FI',NULL,NULL,0,51,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(672,84,'French (Canada)','fr','fr_CA',NULL,NULL,0,52,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(673,84,'French (France)','fr','fr_FR',NULL,NULL,0,53,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(674,84,'Fula; Fulah; Pulaar; Pular','ff','ff_SN',NULL,NULL,0,54,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(675,84,'Galician','gl','gl_ES',NULL,NULL,0,55,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(676,84,'Georgian','ka','ka_GE',NULL,NULL,0,56,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(677,84,'German','de','de_DE',NULL,NULL,0,57,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(678,84,'German (Swiss)','de','de_CH',NULL,NULL,0,58,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(679,84,'Greek, Modern','el','el_GR',NULL,NULL,0,59,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(680,84,'Guarani­','gn','gn_PY',NULL,NULL,0,60,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(681,84,'Gujarati','gu','gu_IN',NULL,NULL,0,61,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(682,84,'Haitian; Haitian Creole','ht','ht_HT',NULL,NULL,0,62,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(683,84,'Hausa','ha','ha_NG',NULL,NULL,0,63,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(684,84,'Hebrew (modern)','he','he_IL',NULL,NULL,0,64,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(685,84,'Herero','hz','hz_NA',NULL,NULL,0,65,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(686,84,'Hindi','hi','hi_IN',NULL,NULL,0,66,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(687,84,'Hiri Motu','ho','ho_PG',NULL,NULL,0,67,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(688,84,'Hungarian','hu','hu_HU',NULL,NULL,0,68,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(689,84,'Interlingua','ia','ia_XX',NULL,NULL,0,69,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(690,84,'Indonesian','id','id_ID',NULL,NULL,0,70,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(691,84,'Interlingue','ie','ie_XX',NULL,NULL,0,71,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(692,84,'Irish','ga','ga_IE',NULL,NULL,0,72,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(693,84,'Igbo','ig','ig_NG',NULL,NULL,0,73,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(694,84,'Inupiaq','ik','ik_US',NULL,NULL,0,74,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(695,84,'Ido','io','io_XX',NULL,NULL,0,75,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(696,84,'Icelandic','is','is_IS',NULL,NULL,0,76,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(697,84,'Italian','it','it_IT',NULL,NULL,0,77,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(698,84,'Inuktitut','iu','iu_CA',NULL,NULL,0,78,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(699,84,'Japanese','ja','ja_JP',NULL,NULL,0,79,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(700,84,'Javanese','jv','jv_ID',NULL,NULL,0,80,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(701,84,'Kalaallisut, Greenlandic','kl','kl_GL',NULL,NULL,0,81,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(702,84,'Kannada','kn','kn_IN',NULL,NULL,0,82,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(703,84,'Kanuri','kr','kr_NE',NULL,NULL,0,83,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(704,84,'Kashmiri','ks','ks_IN',NULL,NULL,0,84,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(705,84,'Kazakh','kk','kk_KZ',NULL,NULL,0,85,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(706,84,'Khmer','km','km_KH',NULL,NULL,0,86,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(707,84,'Kikuyu, Gikuyu','ki','ki_KE',NULL,NULL,0,87,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(708,84,'Kinyarwanda','rw','rw_RW',NULL,NULL,0,88,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(709,84,'Kirghiz, Kyrgyz','ky','ky_KG',NULL,NULL,0,89,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(710,84,'Komi','kv','kv_RU',NULL,NULL,0,90,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(711,84,'Kongo','kg','kg_CD',NULL,NULL,0,91,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(712,84,'Korean','ko','ko_KR',NULL,NULL,0,92,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(713,84,'Kurdish','ku','ku_IQ',NULL,NULL,0,93,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(714,84,'Kwanyama, Kuanyama','kj','kj_NA',NULL,NULL,0,94,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(715,84,'Latin','la','la_VA',NULL,NULL,0,95,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(716,84,'Luxembourgish, Letzeburgesch','lb','lb_LU',NULL,NULL,0,96,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(717,84,'Luganda','lg','lg_UG',NULL,NULL,0,97,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(718,84,'Limburgish, Limburgan, Limburger','li','li_NL',NULL,NULL,0,98,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(719,84,'Lingala','ln','ln_CD',NULL,NULL,0,99,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(720,84,'Lao','lo','lo_LA',NULL,NULL,0,100,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(721,84,'Lithuanian','lt','lt_LT',NULL,NULL,0,101,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(722,84,'Luba-Katanga','lu','lu_CD',NULL,NULL,0,102,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(723,84,'Latvian','lv','lv_LV',NULL,NULL,0,103,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(724,84,'Manx','gv','gv_IM',NULL,NULL,0,104,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(725,84,'Macedonian','mk','mk_MK',NULL,NULL,0,105,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(726,84,'Malagasy','mg','mg_MG',NULL,NULL,0,106,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(727,84,'Malay','ms','ms_MY',NULL,NULL,0,107,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(728,84,'Malayalam','ml','ml_IN',NULL,NULL,0,108,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(729,84,'Maltese','mt','mt_MT',NULL,NULL,0,109,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(730,84,'Māori','mi','mi_NZ',NULL,NULL,0,110,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(731,84,'Marathi','mr','mr_IN',NULL,NULL,0,111,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(732,84,'Marshallese','mh','mh_MH',NULL,NULL,0,112,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(733,84,'Mongolian','mn','mn_MN',NULL,NULL,0,113,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(734,84,'Nauru','na','na_NR',NULL,NULL,0,114,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(735,84,'Navajo, Navaho','nv','nv_US',NULL,NULL,0,115,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(736,84,'Norwegian BokmÃ¥l','nb','nb_NO',NULL,NULL,0,116,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(737,84,'North Ndebele','nd','nd_ZW',NULL,NULL,0,117,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(738,84,'Nepali','ne','ne_NP',NULL,NULL,0,118,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(739,84,'Ndonga','ng','ng_NA',NULL,NULL,0,119,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(740,84,'Norwegian Nynorsk','nn','nn_NO',NULL,NULL,0,120,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(741,84,'Norwegian','no','no_NO',NULL,NULL,0,121,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(742,84,'Nuosu','ii','ii_CN',NULL,NULL,0,122,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(743,84,'South Ndebele','nr','nr_ZA',NULL,NULL,0,123,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(744,84,'Occitan (after 1500)','oc','oc_FR',NULL,NULL,0,124,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(745,84,'Ojibwa','oj','oj_CA',NULL,NULL,0,125,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(746,84,'Old Church Slavonic, Church Slavic, Church Slavonic, Old Bulgarian, Old Slavonic','cu','cu_BG',NULL,NULL,0,126,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(747,84,'Oromo','om','om_ET',NULL,NULL,0,127,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(748,84,'Oriya','or','or_IN',NULL,NULL,0,128,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(749,84,'Ossetian, Ossetic','os','os_GE',NULL,NULL,0,129,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(750,84,'Panjabi, Punjabi','pa','pa_IN',NULL,NULL,0,130,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(751,84,'Pali','pi','pi_KH',NULL,NULL,0,131,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(752,84,'Persian (Iran)','fa','fa_IR',NULL,NULL,0,132,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(753,84,'Polish','pl','pl_PL',NULL,NULL,0,133,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(754,84,'Pashto, Pushto','ps','ps_AF',NULL,NULL,0,134,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(755,84,'Portuguese (Brazil)','pt','pt_BR',NULL,NULL,0,135,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(756,84,'Portuguese (Portugal)','pt','pt_PT',NULL,NULL,0,136,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(757,84,'Quechua','qu','qu_PE',NULL,NULL,0,137,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(758,84,'Romansh','rm','rm_CH',NULL,NULL,0,138,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(759,84,'Kirundi','rn','rn_BI',NULL,NULL,0,139,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(760,84,'Romanian, Moldavian, Moldovan','ro','ro_RO',NULL,NULL,0,140,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(761,84,'Russian','ru','ru_RU',NULL,NULL,0,141,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(762,84,'Sanskrit','sa','sa_IN',NULL,NULL,0,142,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(763,84,'Sardinian','sc','sc_IT',NULL,NULL,0,143,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(764,84,'Sindhi','sd','sd_IN',NULL,NULL,0,144,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(765,84,'Northern Sami','se','se_NO',NULL,NULL,0,145,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(766,84,'Samoan','sm','sm_WS',NULL,NULL,0,146,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(767,84,'Sango','sg','sg_CF',NULL,NULL,0,147,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(768,84,'Serbian','sr','sr_RS',NULL,NULL,0,148,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(769,84,'Scottish Gaelic; Gaelic','gd','gd_GB',NULL,NULL,0,149,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(770,84,'Shona','sn','sn_ZW',NULL,NULL,0,150,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(771,84,'Sinhala, Sinhalese','si','si_LK',NULL,NULL,0,151,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(772,84,'Slovak','sk','sk_SK',NULL,NULL,0,152,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(773,84,'Slovene','sl','sl_SI',NULL,NULL,0,153,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(774,84,'Somali','so','so_SO',NULL,NULL,0,154,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(775,84,'Southern Sotho','st','st_ZA',NULL,NULL,0,155,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(776,84,'Spanish; Castilian (Spain)','es','es_ES',NULL,NULL,0,156,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(777,84,'Spanish; Castilian (Mexico)','es','es_MX',NULL,NULL,0,157,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(778,84,'Spanish; Castilian (Puerto Rico)','es','es_PR',NULL,NULL,0,158,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(779,84,'Sundanese','su','su_ID',NULL,NULL,0,159,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(780,84,'Swahili','sw','sw_TZ',NULL,NULL,0,160,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(781,84,'Swati','ss','ss_ZA',NULL,NULL,0,161,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(782,84,'Swedish','sv','sv_SE',NULL,NULL,0,162,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(783,84,'Tamil','ta','ta_IN',NULL,NULL,0,163,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(784,84,'Telugu','te','te_IN',NULL,NULL,0,164,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(785,84,'Tajik','tg','tg_TJ',NULL,NULL,0,165,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(786,84,'Thai','th','th_TH',NULL,NULL,0,166,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(787,84,'Tigrinya','ti','ti_ET',NULL,NULL,0,167,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(788,84,'Tibetan Standard, Tibetan, Central','bo','bo_CN',NULL,NULL,0,168,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(789,84,'Turkmen','tk','tk_TM',NULL,NULL,0,169,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(790,84,'Tagalog','tl','tl_PH',NULL,NULL,0,170,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(791,84,'Tswana','tn','tn_ZA',NULL,NULL,0,171,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(792,84,'Tonga (Tonga Islands)','to','to_TO',NULL,NULL,0,172,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(793,84,'Turkish','tr','tr_TR',NULL,NULL,0,173,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(794,84,'Tsonga','ts','ts_ZA',NULL,NULL,0,174,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(795,84,'Tatar','tt','tt_RU',NULL,NULL,0,175,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(796,84,'Twi','tw','tw_GH',NULL,NULL,0,176,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(797,84,'Tahitian','ty','ty_PF',NULL,NULL,0,177,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(798,84,'Uighur, Uyghur','ug','ug_CN',NULL,NULL,0,178,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(799,84,'Ukrainian','uk','uk_UA',NULL,NULL,0,179,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(800,84,'Urdu','ur','ur_PK',NULL,NULL,0,180,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(801,84,'Uzbek','uz','uz_UZ',NULL,NULL,0,181,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(802,84,'Venda','ve','ve_ZA',NULL,NULL,0,182,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(803,84,'Vietnamese','vi','vi_VN',NULL,NULL,0,183,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(804,84,'Volapük','vo','vo_XX',NULL,NULL,0,184,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(805,84,'Walloon','wa','wa_BE',NULL,NULL,0,185,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(806,84,'Welsh','cy','cy_GB',NULL,NULL,0,186,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(807,84,'Wolof','wo','wo_SN',NULL,NULL,0,187,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(808,84,'Western Frisian','fy','fy_NL',NULL,NULL,0,188,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(809,84,'Xhosa','xh','xh_ZA',NULL,NULL,0,189,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(810,84,'Yiddish','yi','yi_US',NULL,NULL,0,190,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(811,84,'Yoruba','yo','yo_NG',NULL,NULL,0,191,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(812,84,'Zhuang, Chuang','za','za_CN',NULL,NULL,0,192,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(813,84,'Zulu','zu','zu_ZA',NULL,NULL,0,193,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL),(814,85,'In Person','1','in_person',NULL,0,0,1,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(815,85,'Phone','2','phone',NULL,0,1,2,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(816,85,'Email','3','email',NULL,0,0,3,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(817,85,'Fax','4','fax',NULL,0,0,4,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(818,85,'Letter Mail','5','letter_mail',NULL,0,0,5,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(819,86,'Cases - Send Copy of an Activity','1','case_activity',NULL,NULL,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(820,87,'Contributions - Duplicate Organization Alert','1','contribution_dupalert',NULL,NULL,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(821,87,'Contributions - Receipt (off-line)','2','contribution_offline_receipt',NULL,NULL,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(822,87,'Contributions - Receipt (on-line)','3','contribution_online_receipt',NULL,NULL,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(823,87,'Contributions - Invoice','4','contribution_invoice_receipt',NULL,NULL,0,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(824,87,'Contributions - Recurring Start and End Notification','5','contribution_recurring_notify',NULL,NULL,0,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(825,87,'Contributions - Recurring Cancellation Notification','6','contribution_recurring_cancelled',NULL,NULL,0,6,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(826,87,'Contributions - Recurring Billing Updates','7','contribution_recurring_billing',NULL,NULL,0,7,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(827,87,'Contributions - Recurring Updates','8','contribution_recurring_edit',NULL,NULL,0,8,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(828,87,'Personal Campaign Pages - Admin Notification','9','pcp_notify',NULL,NULL,0,9,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(829,87,'Personal Campaign Pages - Supporter Status Change Notification','10','pcp_status_change',NULL,NULL,0,10,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(830,87,'Personal Campaign Pages - Supporter Welcome','11','pcp_supporter_notify',NULL,NULL,0,11,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(831,87,'Personal Campaign Pages - Owner Notification','12','pcp_owner_notify',NULL,NULL,0,12,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(832,87,'Additional Payment Receipt or Refund Notification','13','payment_or_refund_notification',NULL,NULL,0,13,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(833,88,'Events - Registration Confirmation and Receipt (off-line)','1','event_offline_receipt',NULL,NULL,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(834,88,'Events - Registration Confirmation and Receipt (on-line)','2','event_online_receipt',NULL,NULL,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(835,88,'Events - Receipt only','3','event_registration_receipt',NULL,NULL,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(836,88,'Events - Registration Cancellation Notice','4','participant_cancelled',NULL,NULL,0,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(837,88,'Events - Registration Confirmation Invite','5','participant_confirm',NULL,NULL,0,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(838,88,'Events - Pending Registration Expiration Notice','6','participant_expired',NULL,NULL,0,6,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(839,88,'Events - Registration Transferred Notice','7','participant_transferred',NULL,NULL,0,7,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(840,89,'Tell-a-Friend Email','1','friend',NULL,NULL,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(841,90,'Memberships - Signup and Renewal Receipts (off-line)','1','membership_offline_receipt',NULL,NULL,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(842,90,'Memberships - Receipt (on-line)','2','membership_online_receipt',NULL,NULL,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(843,90,'Memberships - Auto-renew Cancellation Notification','3','membership_autorenew_cancelled',NULL,NULL,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(844,90,'Memberships - Auto-renew Billing Updates','4','membership_autorenew_billing',NULL,NULL,0,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(845,91,'Test-drive - Receipt Header','1','test_preview',NULL,NULL,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(846,92,'Pledges - Acknowledgement','1','pledge_acknowledge',NULL,NULL,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(847,92,'Pledges - Payment Reminder','2','pledge_reminder',NULL,NULL,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(848,93,'Profiles - Admin Notification','1','uf_notify',NULL,NULL,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(849,94,'Petition - signature added','1','petition_sign',NULL,NULL,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(850,94,'Petition - need verification','2','petition_confirmation_needed',NULL,NULL,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(851,95,'In Honor of','1','in_honor_of',NULL,NULL,0,1,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(852,95,'In Memory of','2','in_memory_of',NULL,NULL,0,2,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(853,95,'Solicited','3','solicited',NULL,NULL,1,3,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(854,95,'Household','4','household',NULL,NULL,0,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(855,95,'Workplace Giving','5','workplace',NULL,NULL,0,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(856,95,'Foundation Affiliate','6','foundation_affiliate',NULL,NULL,0,6,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(857,95,'3rd-party Service','7','3rd-party_service',NULL,NULL,0,7,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(858,95,'Donor-advised Fund','8','donor-advised_fund',NULL,NULL,0,8,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(859,95,'Matched Gift','9','matched_gift',NULL,NULL,0,9,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL),(860,95,'Personal Campaign Page','10','pcp',NULL,NULL,0,10,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(861,95,'Gift','11','gift',NULL,NULL,0,11,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL),(862,2,'Interview','55','Interview',NULL,0,NULL,55,'Conduct a phone or in person interview.',0,0,1,NULL,NULL,NULL,'fa-comment-o',NULL);
 /*!40000 ALTER TABLE `civicrm_option_value` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -1025,7 +1025,7 @@ UNLOCK TABLES;
 
 LOCK TABLES `civicrm_participant` WRITE;
 /*!40000 ALTER TABLE `civicrm_participant` DISABLE KEYS */;
-INSERT INTO `civicrm_participant` (`id`, `contact_id`, `event_id`, `status_id`, `role_id`, `register_date`, `source`, `fee_level`, `is_test`, `is_pay_later`, `fee_amount`, `registered_by_id`, `discount_id`, `fee_currency`, `campaign_id`, `discount_amount`, `cart_id`, `must_wait`, `transferred_to_contact_id`) VALUES (1,103,1,1,'1','2009-01-21 00:00:00','Check','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(2,68,2,2,'2','2008-05-07 00:00:00','Credit Card','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(3,195,3,3,'3','2008-05-05 00:00:00','Credit Card','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(4,135,1,4,'4','2008-10-21 00:00:00','Direct Transfer','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(5,188,2,1,'1','2008-01-10 00:00:00','Check','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(6,149,3,2,'2','2008-03-05 00:00:00','Direct Transfer','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(7,131,1,3,'3','2009-07-21 00:00:00','Direct Transfer','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(8,58,2,4,'4','2009-03-07 00:00:00','Credit Card','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(9,162,3,1,'1','2008-02-05 00:00:00','Direct Transfer','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(10,184,1,2,'2','2008-02-01 00:00:00','Check','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(11,47,2,3,'3','2009-01-10 00:00:00','Direct Transfer','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(12,165,3,4,'4','2009-03-06 00:00:00','Credit Card','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(13,115,1,1,'2','2008-06-04 00:00:00','Credit Card','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(14,61,2,2,'3','2008-01-10 00:00:00','Direct Transfer','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(15,22,3,4,'1','2008-07-04 00:00:00','Check','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(16,121,1,4,'2','2009-01-21 00:00:00','Credit Card','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(17,6,2,2,'3','2008-01-10 00:00:00','Credit Card','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(18,78,3,3,'1','2009-03-05 00:00:00','Credit Card','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(19,85,1,2,'1','2008-10-21 00:00:00','Direct Transfer','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(20,105,2,4,'1','2009-01-10 00:00:00','Credit Card','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(21,88,3,1,'4','2008-03-25 00:00:00','Check','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(22,77,1,2,'3','2009-10-21 00:00:00','Direct Transfer','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(23,5,2,4,'1','2008-01-10 00:00:00','Direct Transfer','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(24,189,3,3,'1','2008-03-11 00:00:00','Credit Card','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(25,179,3,2,'2','2008-04-05 00:00:00','Direct Transfer','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(26,64,1,1,'1','2009-01-21 00:00:00','Check','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(27,118,2,2,'2','2008-05-07 00:00:00','Credit Card','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(28,102,3,3,'3','2009-12-12 00:00:00','Direct Transfer','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(29,52,1,4,'4','2009-12-13 00:00:00','Credit Card','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(30,133,2,1,'1','2009-12-14 00:00:00','Direct Transfer','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(31,14,3,2,'2','2009-12-15 00:00:00','Credit Card','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(32,18,1,3,'3','2009-07-21 00:00:00','Check','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(33,25,2,4,'4','2009-03-07 00:00:00','Direct Transfer','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(34,171,3,1,'1','2009-12-15 00:00:00','Credit Card','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(35,27,1,2,'2','2009-12-13 00:00:00','Direct Transfer','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(36,191,2,3,'3','2009-01-10 00:00:00','Direct Transfer','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(37,81,3,4,'4','2009-03-06 00:00:00','Check','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(38,113,1,1,'2','2009-12-13 00:00:00','Direct Transfer','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(39,159,2,2,'3','2008-01-10 00:00:00','Direct Transfer','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(40,73,3,4,'1','2009-12-14 00:00:00','Credit Card','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(41,2,1,4,'2','2009-01-21 00:00:00','Credit Card','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(42,89,2,2,'3','2009-12-15 00:00:00','Credit Card','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(43,63,3,3,'1','2009-03-05 00:00:00','Credit Card','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(44,142,1,2,'1','2009-12-13 00:00:00','Direct Transfer','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(45,107,2,4,'1','2009-01-10 00:00:00','Direct Transfer','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(46,109,3,1,'4','2009-12-13 00:00:00','Check','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(47,16,1,2,'3','2009-10-21 00:00:00','Credit Card','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(48,30,2,4,'1','2009-12-10 00:00:00','Credit Card','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(49,33,3,3,'1','2009-03-11 00:00:00','Credit Card','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(50,92,3,2,'2','2009-04-05 00:00:00','Check','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL);
+INSERT INTO `civicrm_participant` (`id`, `contact_id`, `event_id`, `status_id`, `role_id`, `register_date`, `source`, `fee_level`, `is_test`, `is_pay_later`, `fee_amount`, `registered_by_id`, `discount_id`, `fee_currency`, `campaign_id`, `discount_amount`, `cart_id`, `must_wait`, `transferred_to_contact_id`) VALUES (1,138,1,1,'1','2009-01-21 00:00:00','Check','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(2,85,2,2,'2','2008-05-07 00:00:00','Credit Card','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(3,124,3,3,'3','2008-05-05 00:00:00','Credit Card','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(4,100,1,4,'4','2008-10-21 00:00:00','Direct Transfer','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(5,188,2,1,'1','2008-01-10 00:00:00','Check','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(6,26,3,2,'2','2008-03-05 00:00:00','Direct Transfer','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(7,39,1,3,'3','2009-07-21 00:00:00','Direct Transfer','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(8,1,2,4,'4','2009-03-07 00:00:00','Credit Card','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(9,106,3,1,'1','2008-02-05 00:00:00','Direct Transfer','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(10,30,1,2,'2','2008-02-01 00:00:00','Check','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(11,143,2,3,'3','2009-01-10 00:00:00','Direct Transfer','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(12,167,3,4,'4','2009-03-06 00:00:00','Credit Card','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(13,150,1,1,'2','2008-06-04 00:00:00','Credit Card','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(14,194,2,2,'3','2008-01-10 00:00:00','Direct Transfer','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(15,196,3,4,'1','2008-07-04 00:00:00','Check','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(16,120,1,4,'2','2009-01-21 00:00:00','Credit Card','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(17,171,2,2,'3','2008-01-10 00:00:00','Credit Card','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(18,115,3,3,'1','2009-03-05 00:00:00','Credit Card','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(19,55,1,2,'1','2008-10-21 00:00:00','Direct Transfer','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(20,166,2,4,'1','2009-01-10 00:00:00','Credit Card','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(21,16,3,1,'4','2008-03-25 00:00:00','Check','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(22,6,1,2,'3','2009-10-21 00:00:00','Direct Transfer','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(23,89,2,4,'1','2008-01-10 00:00:00','Direct Transfer','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(24,191,3,3,'1','2008-03-11 00:00:00','Credit Card','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(25,136,3,2,'2','2008-04-05 00:00:00','Direct Transfer','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(26,62,1,1,'1','2009-01-21 00:00:00','Check','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(27,159,2,2,'2','2008-05-07 00:00:00','Credit Card','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(28,81,3,3,'3','2009-12-12 00:00:00','Direct Transfer','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(29,52,1,4,'4','2009-12-13 00:00:00','Credit Card','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(30,35,2,1,'1','2009-12-14 00:00:00','Direct Transfer','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(31,42,3,2,'2','2009-12-15 00:00:00','Credit Card','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(32,140,1,3,'3','2009-07-21 00:00:00','Check','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(33,45,2,4,'4','2009-03-07 00:00:00','Direct Transfer','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(34,105,3,1,'1','2009-12-15 00:00:00','Credit Card','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(35,149,1,2,'2','2009-12-13 00:00:00','Direct Transfer','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(36,25,2,3,'3','2009-01-10 00:00:00','Direct Transfer','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(37,103,3,4,'4','2009-03-06 00:00:00','Check','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(38,79,1,1,'2','2009-12-13 00:00:00','Direct Transfer','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(39,187,2,2,'3','2008-01-10 00:00:00','Direct Transfer','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(40,163,3,4,'1','2009-12-14 00:00:00','Credit Card','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(41,102,1,4,'2','2009-01-21 00:00:00','Credit Card','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(42,90,2,2,'3','2009-12-15 00:00:00','Credit Card','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(43,128,3,3,'1','2009-03-05 00:00:00','Credit Card','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(44,157,1,2,'1','2009-12-13 00:00:00','Direct Transfer','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(45,176,2,4,'1','2009-01-10 00:00:00','Direct Transfer','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(46,86,3,1,'4','2009-12-13 00:00:00','Check','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(47,144,1,2,'3','2009-10-21 00:00:00','Credit Card','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(48,110,2,4,'1','2009-12-10 00:00:00','Credit Card','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(49,46,3,3,'1','2009-03-11 00:00:00','Credit Card','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL),(50,160,3,2,'2','2009-04-05 00:00:00','Check','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL);
 /*!40000 ALTER TABLE `civicrm_participant` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -1035,7 +1035,7 @@ UNLOCK TABLES;
 
 LOCK TABLES `civicrm_participant_payment` WRITE;
 /*!40000 ALTER TABLE `civicrm_participant_payment` DISABLE KEYS */;
-INSERT INTO `civicrm_participant_payment` (`id`, `participant_id`, `contribution_id`) VALUES (1,41,45),(2,23,46),(3,17,47),(4,31,48),(5,47,49),(6,32,50),(7,15,51),(8,33,52),(9,35,53),(10,48,54),(11,49,55),(12,11,56),(13,29,57),(14,8,58),(15,14,59),(16,43,60),(17,26,61),(18,2,62),(19,40,63),(20,22,64),(21,18,65),(22,37,66),(23,19,67),(24,21,68),(25,42,69),(26,50,70),(27,28,71),(28,1,72),(29,20,73),(30,45,74),(31,46,75),(32,38,76),(33,13,77),(34,27,78),(35,16,79),(36,7,80),(37,30,81),(38,4,82),(39,44,83),(40,6,84),(41,39,85),(42,9,86),(43,12,87),(44,34,88),(45,25,89),(46,10,90),(47,5,91),(48,24,92),(49,36,93),(50,3,94);
+INSERT INTO `civicrm_participant_payment` (`id`, `participant_id`, `contribution_id`) VALUES (1,8,45),(2,22,46),(3,21,47),(4,36,48),(5,6,49),(6,10,50),(7,30,51),(8,7,52),(9,31,53),(10,33,54),(11,49,55),(12,29,56),(13,19,57),(14,26,58),(15,38,59),(16,28,60),(17,2,61),(18,46,62),(19,23,63),(20,42,64),(21,4,65),(22,41,66),(23,37,67),(24,34,68),(25,9,69),(26,48,70),(27,18,71),(28,16,72),(29,3,73),(30,43,74),(31,25,75),(32,1,76),(33,32,77),(34,11,78),(35,47,79),(36,35,80),(37,13,81),(38,44,82),(39,27,83),(40,50,84),(41,40,85),(42,20,86),(43,12,87),(44,17,88),(45,45,89),(46,39,90),(47,5,91),(48,24,92),(49,14,93),(50,15,94);
 /*!40000 ALTER TABLE `civicrm_participant_payment` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -1083,7 +1083,7 @@ UNLOCK TABLES;
 
 LOCK TABLES `civicrm_pcp` WRITE;
 /*!40000 ALTER TABLE `civicrm_pcp` DISABLE KEYS */;
-INSERT INTO `civicrm_pcp` (`id`, `contact_id`, `status_id`, `title`, `intro_text`, `page_text`, `donate_link_text`, `page_id`, `page_type`, `pcp_block_id`, `is_thermometer`, `is_honor_roll`, `goal_amount`, `currency`, `is_active`, `is_notify`) VALUES (1,54,2,'My Personal Civi Fundraiser','I\'m on a mission to get all my friends and family to help support my favorite open-source civic sector CRM.','<p>Friends and family - please help build much needed infrastructure for the civic sector by supporting my personal campaign!</p>\r\n<p><a href=\"https://civicrm.org\">You can learn more about CiviCRM here</a>.</p>\r\n<p>Then click the <strong>Contribute Now</strong> button to go to our easy-to-use online contribution form.</p>','Contribute Now',1,'contribute',1,1,1,5000.00,'USD',1,1);
+INSERT INTO `civicrm_pcp` (`id`, `contact_id`, `status_id`, `title`, `intro_text`, `page_text`, `donate_link_text`, `page_id`, `page_type`, `pcp_block_id`, `is_thermometer`, `is_honor_roll`, `goal_amount`, `currency`, `is_active`, `is_notify`) VALUES (1,140,2,'My Personal Civi Fundraiser','I\'m on a mission to get all my friends and family to help support my favorite open-source civic sector CRM.','<p>Friends and family - please help build much needed infrastructure for the civic sector by supporting my personal campaign!</p>\r\n<p><a href=\"https://civicrm.org\">You can learn more about CiviCRM here</a>.</p>\r\n<p>Then click the <strong>Contribute Now</strong> button to go to our easy-to-use online contribution form.</p>','Contribute Now',1,'contribute',1,1,1,5000.00,'USD',1,1);
 /*!40000 ALTER TABLE `civicrm_pcp` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -1103,7 +1103,7 @@ UNLOCK TABLES;
 
 LOCK TABLES `civicrm_phone` WRITE;
 /*!40000 ALTER TABLE `civicrm_phone` DISABLE KEYS */;
-INSERT INTO `civicrm_phone` (`id`, `contact_id`, `location_type_id`, `is_primary`, `is_billing`, `mobile_provider_id`, `phone`, `phone_ext`, `phone_numeric`, `phone_type_id`) VALUES (1,107,1,1,0,NULL,'(714) 741-6622',NULL,'7147416622',2),(2,172,1,1,0,NULL,'(753) 385-5732',NULL,'7533855732',2),(3,49,1,1,0,NULL,'(821) 242-4652',NULL,'8212424652',2),(4,49,1,0,0,NULL,'475-1202',NULL,'4751202',2),(5,75,1,1,0,NULL,'637-1196',NULL,'6371196',1),(6,75,1,0,0,NULL,'(837) 543-3106',NULL,'8375433106',2),(7,110,1,1,0,NULL,'502-7787',NULL,'5027787',2),(8,13,1,1,0,NULL,'(780) 651-8285',NULL,'7806518285',2),(9,127,1,1,0,NULL,'(748) 605-5496',NULL,'7486055496',2),(10,127,1,0,0,NULL,'322-9561',NULL,'3229561',2),(11,176,1,1,0,NULL,'(525) 542-6180',NULL,'5255426180',1),(12,174,1,1,0,NULL,'(760) 737-5217',NULL,'7607375217',2),(13,46,1,1,0,NULL,'(894) 368-1643',NULL,'8943681643',2),(14,46,1,0,0,NULL,'280-6860',NULL,'2806860',1),(15,28,1,1,0,NULL,'364-3759',NULL,'3643759',2),(16,157,1,1,0,NULL,'690-1895',NULL,'6901895',2),(17,66,1,1,0,NULL,'(510) 515-9350',NULL,'5105159350',1),(18,66,1,0,0,NULL,'(648) 215-4239',NULL,'6482154239',2),(19,14,1,1,0,NULL,'(803) 242-3006',NULL,'8032423006',2),(20,14,1,0,0,NULL,'(486) 288-4311',NULL,'4862884311',2),(21,30,1,1,0,NULL,'(403) 242-8025',NULL,'4032428025',1),(22,196,1,1,0,NULL,'863-4953',NULL,'8634953',2),(23,196,1,0,0,NULL,'416-8062',NULL,'4168062',2),(24,82,1,1,0,NULL,'(879) 210-9629',NULL,'8792109629',2),(25,194,1,1,0,NULL,'231-7932',NULL,'2317932',2),(26,57,1,1,0,NULL,'(244) 451-4439',NULL,'2444514439',2),(27,167,1,1,0,NULL,'504-3264',NULL,'5043264',1),(28,8,1,1,0,NULL,'(525) 428-9618',NULL,'5254289618',2),(29,8,1,0,0,NULL,'(539) 532-1004',NULL,'5395321004',1),(30,111,1,1,0,NULL,'365-8383',NULL,'3658383',2),(31,97,1,1,0,NULL,'(652) 624-4775',NULL,'6526244775',1),(32,97,1,0,0,NULL,'(378) 671-1760',NULL,'3786711760',1),(33,70,1,1,0,NULL,'430-3524',NULL,'4303524',1),(34,33,1,1,0,NULL,'476-2907',NULL,'4762907',1),(35,169,1,1,0,NULL,'219-3340',NULL,'2193340',2),(36,124,1,1,0,NULL,'274-2630',NULL,'2742630',2),(37,72,1,1,0,NULL,'(574) 686-1344',NULL,'5746861344',1),(38,72,1,0,0,NULL,'685-7892',NULL,'6857892',2),(39,197,1,1,0,NULL,'(868) 780-5348',NULL,'8687805348',1),(40,197,1,0,0,NULL,'644-7150',NULL,'6447150',1),(41,166,1,1,0,NULL,'(214) 789-3667',NULL,'2147893667',1),(42,166,1,0,0,NULL,'524-7328',NULL,'5247328',2),(43,191,1,1,0,NULL,'(391) 651-8691',NULL,'3916518691',2),(44,59,1,1,0,NULL,'(342) 559-9500',NULL,'3425599500',1),(45,122,1,1,0,NULL,'(628) 435-4609',NULL,'6284354609',2),(46,122,1,0,0,NULL,'863-3580',NULL,'8633580',2),(47,173,1,1,0,NULL,'(617) 636-2944',NULL,'6176362944',1),(48,173,1,0,0,NULL,'319-2930',NULL,'3192930',2),(49,53,1,1,0,NULL,'351-4567',NULL,'3514567',2),(50,53,1,0,0,NULL,'834-7419',NULL,'8347419',2),(51,23,1,1,0,NULL,'499-3388',NULL,'4993388',1),(52,23,1,0,0,NULL,'805-6600',NULL,'8056600',1),(53,133,1,1,0,NULL,'(321) 210-9476',NULL,'3212109476',2),(54,42,1,1,0,NULL,'(428) 325-2871',NULL,'4283252871',1),(55,42,1,0,0,NULL,'(297) 828-6773',NULL,'2978286773',2),(56,40,1,1,0,NULL,'577-5928',NULL,'5775928',2),(57,78,1,1,0,NULL,'(514) 407-7390',NULL,'5144077390',2),(58,78,1,0,0,NULL,'(741) 872-5459',NULL,'7418725459',2),(59,149,1,1,0,NULL,'(395) 253-6679',NULL,'3952536679',1),(60,149,1,0,0,NULL,'217-2286',NULL,'2172286',2),(61,19,1,1,0,NULL,'640-8245',NULL,'6408245',1),(62,19,1,0,0,NULL,'(442) 377-1741',NULL,'4423771741',2),(63,39,1,1,0,NULL,'(346) 478-9244',NULL,'3464789244',1),(64,113,1,1,0,NULL,'725-3483',NULL,'7253483',1),(65,113,1,0,0,NULL,'464-9108',NULL,'4649108',2),(66,55,1,1,0,NULL,'735-2685',NULL,'7352685',1),(67,145,1,1,0,NULL,'695-9671',NULL,'6959671',1),(68,162,1,1,0,NULL,'571-4497',NULL,'5714497',2),(69,193,1,1,0,NULL,'(891) 332-4071',NULL,'8913324071',1),(70,156,1,1,0,NULL,'(380) 671-2678',NULL,'3806712678',1),(71,26,1,1,0,NULL,'(842) 843-8591',NULL,'8428438591',2),(72,18,1,1,0,NULL,'(827) 462-4507',NULL,'8274624507',1),(73,18,1,0,0,NULL,'234-2763',NULL,'2342763',1),(74,3,1,1,0,NULL,'(836) 479-8499',NULL,'8364798499',1),(75,3,1,0,0,NULL,'274-4338',NULL,'2744338',2),(76,177,1,1,0,NULL,'(624) 495-8971',NULL,'6244958971',2),(77,192,1,1,0,NULL,'(806) 575-7750',NULL,'8065757750',1),(78,48,1,1,0,NULL,'648-6564',NULL,'6486564',2),(79,48,1,0,0,NULL,'(446) 559-7040',NULL,'4465597040',2),(80,105,1,1,0,NULL,'(675) 816-6565',NULL,'6758166565',2),(81,2,1,1,0,NULL,'684-8156',NULL,'6848156',1),(82,2,1,0,0,NULL,'(789) 533-2250',NULL,'7895332250',2),(83,112,1,1,0,NULL,'672-6129',NULL,'6726129',1),(84,112,1,0,0,NULL,'(542) 548-2056',NULL,'5425482056',1),(85,129,1,1,0,NULL,'(670) 336-4841',NULL,'6703364841',2),(86,129,1,0,0,NULL,'(711) 782-7627',NULL,'7117827627',2),(87,95,1,1,0,NULL,'411-2763',NULL,'4112763',1),(88,25,1,1,0,NULL,'788-8748',NULL,'7888748',1),(89,25,1,0,0,NULL,'771-6476',NULL,'7716476',2),(90,132,1,1,0,NULL,'513-4567',NULL,'5134567',2),(91,43,1,1,0,NULL,'(784) 535-1660',NULL,'7845351660',2),(92,43,1,0,0,NULL,'(661) 519-1221',NULL,'6615191221',1),(93,121,1,1,0,NULL,'(379) 411-9807',NULL,'3794119807',1),(94,121,1,0,0,NULL,'203-3734',NULL,'2033734',1),(95,125,1,1,0,NULL,'884-7184',NULL,'8847184',1),(96,125,1,0,0,NULL,'660-7645',NULL,'6607645',1),(97,115,1,1,0,NULL,'(884) 218-4327',NULL,'8842184327',1),(98,115,1,0,0,NULL,'543-6519',NULL,'5436519',1),(99,141,1,1,0,NULL,'(651) 724-5049',NULL,'6517245049',1),(100,65,1,1,0,NULL,'(403) 810-8052',NULL,'4038108052',2),(101,41,1,1,0,NULL,'206-4899',NULL,'2064899',2),(102,94,1,1,0,NULL,'522-5821',NULL,'5225821',1),(103,101,1,1,0,NULL,'637-6716',NULL,'6376716',2),(104,101,1,0,0,NULL,'203-2871',NULL,'2032871',1),(105,183,1,1,0,NULL,'597-2017',NULL,'5972017',2),(106,183,1,0,0,NULL,'670-2159',NULL,'6702159',1),(107,71,1,1,0,NULL,'(481) 443-2545',NULL,'4814432545',2),(108,71,1,0,0,NULL,'(556) 298-4544',NULL,'5562984544',1),(109,104,1,1,0,NULL,'665-5551',NULL,'6655551',2),(110,93,1,1,0,NULL,'(333) 364-6312',NULL,'3333646312',2),(111,199,1,1,0,NULL,'736-6099',NULL,'7366099',2),(112,73,1,1,0,NULL,'352-1797',NULL,'3521797',1),(113,73,1,0,0,NULL,'225-2169',NULL,'2252169',1),(114,68,1,1,0,NULL,'339-3597',NULL,'3393597',1),(115,68,1,0,0,NULL,'484-5434',NULL,'4845434',2),(116,140,1,1,0,NULL,'(785) 358-1983',NULL,'7853581983',2),(117,201,1,1,0,NULL,'(871) 570-4706',NULL,'8715704706',1),(118,201,1,0,0,NULL,'(481) 349-2921',NULL,'4813492921',2),(119,114,1,1,0,NULL,'874-6660',NULL,'8746660',1),(120,195,1,1,0,NULL,'(541) 693-8307',NULL,'5416938307',1),(121,175,1,1,0,NULL,'874-1687',NULL,'8741687',2),(122,175,1,0,0,NULL,'(818) 358-2235',NULL,'8183582235',1),(123,190,1,1,0,NULL,'455-7011',NULL,'4557011',1),(124,146,1,1,0,NULL,'(670) 386-7395',NULL,'6703867395',1),(125,160,1,1,0,NULL,'423-7345',NULL,'4237345',2),(126,160,1,0,0,NULL,'(378) 552-8456',NULL,'3785528456',1),(127,24,1,1,0,NULL,'706-4755',NULL,'7064755',1),(128,24,1,0,0,NULL,'(470) 769-6020',NULL,'4707696020',1),(129,47,1,1,0,NULL,'695-4274',NULL,'6954274',2),(130,135,1,1,0,NULL,'(777) 281-5780',NULL,'7772815780',2),(131,130,1,1,0,NULL,'(346) 441-8971',NULL,'3464418971',1),(132,130,1,0,0,NULL,'(345) 247-7220',NULL,'3452477220',2),(133,198,1,1,0,NULL,'278-4793',NULL,'2784793',1),(134,106,1,1,0,NULL,'494-9595',NULL,'4949595',1),(135,106,1,0,0,NULL,'670-7811',NULL,'6707811',2),(136,62,1,1,0,NULL,'862-5364',NULL,'8625364',1),(137,136,1,1,0,NULL,'(583) 323-2667',NULL,'5833232667',1),(138,12,1,1,0,NULL,'491-4683',NULL,'4914683',2),(139,165,1,1,0,NULL,'316-4138',NULL,'3164138',2),(140,15,1,1,0,NULL,'(294) 375-9884',NULL,'2943759884',2),(141,45,1,1,0,NULL,'(576) 264-5521',NULL,'5762645521',2),(142,91,1,1,0,NULL,'267-8376',NULL,'2678376',2),(143,91,1,0,0,NULL,'453-1132',NULL,'4531132',2),(144,NULL,1,0,0,NULL,'204 222-1000',NULL,'2042221000',1),(145,NULL,1,0,0,NULL,'204 223-1000',NULL,'2042231000',1),(146,NULL,1,0,0,NULL,'303 323-1000',NULL,'3033231000',1);
+INSERT INTO `civicrm_phone` (`id`, `contact_id`, `location_type_id`, `is_primary`, `is_billing`, `mobile_provider_id`, `phone`, `phone_ext`, `phone_numeric`, `phone_type_id`) VALUES (1,43,1,1,0,NULL,'(559) 672-8915',NULL,'5596728915',2),(2,189,1,1,0,NULL,'741-8922',NULL,'7418922',1),(3,189,1,0,0,NULL,'660-5381',NULL,'6605381',1),(4,140,1,1,0,NULL,'391-9297',NULL,'3919297',1),(5,140,1,0,0,NULL,'522-6294',NULL,'5226294',1),(6,166,1,1,0,NULL,'(629) 437-6995',NULL,'6294376995',2),(7,106,1,1,0,NULL,'645-9258',NULL,'6459258',2),(8,106,1,0,0,NULL,'(891) 818-5429',NULL,'8918185429',2),(9,98,1,1,0,NULL,'814-7524',NULL,'8147524',1),(10,102,1,1,0,NULL,'298-5536',NULL,'2985536',1),(11,102,1,0,0,NULL,'(296) 678-4087',NULL,'2966784087',2),(12,141,1,1,0,NULL,'(242) 387-2709',NULL,'2423872709',2),(13,105,1,1,0,NULL,'837-2717',NULL,'8372717',2),(14,105,1,0,0,NULL,'(608) 359-4613',NULL,'6083594613',2),(15,158,1,1,0,NULL,'654-1011',NULL,'6541011',2),(16,158,1,0,0,NULL,'(455) 818-6021',NULL,'4558186021',1),(17,117,1,1,0,NULL,'(715) 451-7266',NULL,'7154517266',2),(18,117,1,0,0,NULL,'350-9554',NULL,'3509554',2),(19,72,1,1,0,NULL,'(476) 346-8291',NULL,'4763468291',1),(20,10,1,1,0,NULL,'745-5815',NULL,'7455815',2),(21,169,1,1,0,NULL,'(579) 857-4926',NULL,'5798574926',2),(22,169,1,0,0,NULL,'(631) 645-7251',NULL,'6316457251',2),(23,143,1,1,0,NULL,'(778) 894-3548',NULL,'7788943548',2),(24,143,1,0,0,NULL,'(807) 861-1558',NULL,'8078611558',2),(25,37,1,1,0,NULL,'554-4480',NULL,'5544480',2),(26,37,1,0,0,NULL,'591-6448',NULL,'5916448',2),(27,27,1,1,0,NULL,'814-8692',NULL,'8148692',1),(28,27,1,0,0,NULL,'692-4799',NULL,'6924799',2),(29,63,1,1,0,NULL,'735-1245',NULL,'7351245',1),(30,49,1,1,0,NULL,'590-9237',NULL,'5909237',2),(31,192,1,1,0,NULL,'760-5637',NULL,'7605637',1),(32,130,1,1,0,NULL,'213-9247',NULL,'2139247',1),(33,4,1,1,0,NULL,'(432) 811-1219',NULL,'4328111219',2),(34,75,1,1,0,NULL,'(729) 381-8053',NULL,'7293818053',2),(35,75,1,0,0,NULL,'(309) 775-7933',NULL,'3097757933',2),(36,100,1,1,0,NULL,'220-1736',NULL,'2201736',2),(37,29,1,1,0,NULL,'(636) 755-5436',NULL,'6367555436',1),(38,59,1,1,0,NULL,'461-6403',NULL,'4616403',2),(39,144,1,1,0,NULL,'(718) 453-3535',NULL,'7184533535',1),(40,144,1,0,0,NULL,'(408) 852-1921',NULL,'4088521921',2),(41,21,1,1,0,NULL,'(377) 547-8813',NULL,'3775478813',1),(42,21,1,0,0,NULL,'(819) 254-7349',NULL,'8192547349',1),(43,122,1,1,0,NULL,'(718) 831-7394',NULL,'7188317394',2),(44,122,1,0,0,NULL,'841-8402',NULL,'8418402',1),(45,74,1,1,0,NULL,'(438) 339-4196',NULL,'4383394196',2),(46,128,1,1,0,NULL,'(586) 899-4090',NULL,'5868994090',1),(47,201,1,1,0,NULL,'854-2565',NULL,'8542565',1),(48,201,1,0,0,NULL,'(648) 716-4436',NULL,'6487164436',2),(49,184,1,1,0,NULL,'764-8950',NULL,'7648950',1),(50,176,1,1,0,NULL,'638-9608',NULL,'6389608',2),(51,176,1,0,0,NULL,'434-8221',NULL,'4348221',1),(52,52,1,1,0,NULL,'373-6442',NULL,'3736442',2),(53,52,1,0,0,NULL,'(384) 253-1593',NULL,'3842531593',2),(54,131,1,1,0,NULL,'368-7801',NULL,'3687801',2),(55,103,1,1,0,NULL,'(424) 875-6668',NULL,'4248756668',1),(56,65,1,1,0,NULL,'640-2997',NULL,'6402997',2),(57,65,1,0,0,NULL,'(292) 865-2064',NULL,'2928652064',2),(58,73,1,1,0,NULL,'504-4388',NULL,'5044388',2),(59,73,1,0,0,NULL,'(493) 726-4771',NULL,'4937264771',1),(60,55,1,1,0,NULL,'775-4962',NULL,'7754962',2),(61,55,1,0,0,NULL,'(433) 705-3182',NULL,'4337053182',1),(62,99,1,1,0,NULL,'839-5906',NULL,'8395906',2),(63,151,1,1,0,NULL,'(535) 544-1110',NULL,'5355441110',2),(64,108,1,1,0,NULL,'(838) 215-5772',NULL,'8382155772',1),(65,32,1,1,0,NULL,'340-9401',NULL,'3409401',2),(66,32,1,0,0,NULL,'(896) 227-8197',NULL,'8962278197',2),(67,25,1,1,0,NULL,'(251) 406-2150',NULL,'2514062150',2),(68,13,1,1,0,NULL,'406-1822',NULL,'4061822',2),(69,58,1,1,0,NULL,'(309) 547-6104',NULL,'3095476104',1),(70,58,1,0,0,NULL,'(377) 349-7034',NULL,'3773497034',1),(71,173,1,1,0,NULL,'827-3851',NULL,'8273851',2),(72,91,1,1,0,NULL,'277-3714',NULL,'2773714',1),(73,91,1,0,0,NULL,'(826) 549-2091',NULL,'8265492091',1),(74,112,1,1,0,NULL,'(484) 666-8271',NULL,'4846668271',1),(75,112,1,0,0,NULL,'(836) 500-9842',NULL,'8365009842',1),(76,101,1,1,0,NULL,'628-6187',NULL,'6286187',2),(77,24,1,1,0,NULL,'(576) 782-9271',NULL,'5767829271',2),(78,132,1,1,0,NULL,'(290) 541-3374',NULL,'2905413374',2),(79,6,1,1,0,NULL,'(448) 334-6609',NULL,'4483346609',1),(80,6,1,0,0,NULL,'335-2368',NULL,'3352368',1),(81,76,1,1,0,NULL,'(337) 335-6663',NULL,'3373356663',1),(82,42,1,1,0,NULL,'(286) 487-4565',NULL,'2864874565',2),(83,64,1,1,0,NULL,'438-5770',NULL,'4385770',1),(84,89,1,1,0,NULL,'(879) 694-1850',NULL,'8796941850',1),(85,89,1,0,0,NULL,'777-8896',NULL,'7778896',2),(86,161,1,1,0,NULL,'(222) 535-7098',NULL,'2225357098',1),(87,161,1,0,0,NULL,'376-9295',NULL,'3769295',1),(88,138,1,1,0,NULL,'852-9046',NULL,'8529046',2),(89,30,1,1,0,NULL,'290-3575',NULL,'2903575',2),(90,3,1,1,0,NULL,'(666) 269-8224',NULL,'6662698224',1),(91,3,1,0,0,NULL,'(235) 812-9510',NULL,'2358129510',1),(92,34,1,1,0,NULL,'(276) 583-2051',NULL,'2765832051',1),(93,56,1,1,0,NULL,'755-3007',NULL,'7553007',2),(94,56,1,0,0,NULL,'(613) 246-8594',NULL,'6132468594',1),(95,152,1,1,0,NULL,'(274) 276-9391',NULL,'2742769391',1),(96,94,1,1,0,NULL,'(625) 727-2937',NULL,'6257272937',2),(97,94,1,0,0,NULL,'(811) 323-8430',NULL,'8113238430',2),(98,194,1,1,0,NULL,'(500) 581-2960',NULL,'5005812960',1),(99,194,1,0,0,NULL,'843-9126',NULL,'8439126',1),(100,167,1,1,0,NULL,'637-4935',NULL,'6374935',2),(101,167,1,0,0,NULL,'(551) 665-3210',NULL,'5516653210',2),(102,45,1,1,0,NULL,'(560) 235-2517',NULL,'5602352517',1),(103,124,1,1,0,NULL,'(675) 324-6645',NULL,'6753246645',2),(104,124,1,0,0,NULL,'(658) 716-5906',NULL,'6587165906',1),(105,67,1,1,0,NULL,'370-7751',NULL,'3707751',1),(106,67,1,0,0,NULL,'392-9957',NULL,'3929957',1),(107,160,1,1,0,NULL,'(256) 532-2420',NULL,'2565322420',1),(108,126,1,1,0,NULL,'306-9846',NULL,'3069846',1),(109,126,1,0,0,NULL,'(363) 713-8831',NULL,'3637138831',2),(110,119,1,1,0,NULL,'267-1274',NULL,'2671274',1),(111,119,1,0,0,NULL,'(804) 631-6954',NULL,'8046316954',2),(112,44,1,1,0,NULL,'(672) 647-4514',NULL,'6726474514',2),(113,26,1,1,0,NULL,'(749) 442-3277',NULL,'7494423277',1),(114,26,1,0,0,NULL,'323-3587',NULL,'3233587',1),(115,133,1,1,0,NULL,'(300) 272-6799',NULL,'3002726799',2),(116,133,1,0,0,NULL,'642-7292',NULL,'6427292',1),(117,195,1,1,0,NULL,'720-7324',NULL,'7207324',2),(118,195,1,0,0,NULL,'328-7081',NULL,'3287081',2),(119,92,1,1,0,NULL,'(772) 241-7604',NULL,'7722417604',2),(120,92,1,0,0,NULL,'837-6695',NULL,'8376695',1),(121,145,1,1,0,NULL,'(785) 815-3393',NULL,'7858153393',1),(122,145,1,0,0,NULL,'(323) 400-4763',NULL,'3234004763',2),(123,114,1,1,0,NULL,'694-8860',NULL,'6948860',1),(124,147,1,1,0,NULL,'(222) 830-2285',NULL,'2228302285',2),(125,147,1,0,0,NULL,'612-5693',NULL,'6125693',2),(126,82,1,1,0,NULL,'(647) 413-4348',NULL,'6474134348',2),(127,82,1,0,0,NULL,'717-9238',NULL,'7179238',1),(128,66,1,1,0,NULL,'865-5651',NULL,'8655651',2),(129,107,1,1,0,NULL,'(480) 675-5888',NULL,'4806755888',1),(130,107,1,0,0,NULL,'(705) 425-6674',NULL,'7054256674',1),(131,81,1,1,0,NULL,'(253) 792-2238',NULL,'2537922238',2),(132,79,1,1,0,NULL,'(596) 455-8657',NULL,'5964558657',1),(133,123,1,1,0,NULL,'(815) 739-4093',NULL,'8157394093',1),(134,123,1,0,0,NULL,'(497) 701-3521',NULL,'4977013521',2),(135,199,1,1,0,NULL,'(201) 853-2710',NULL,'2018532710',1),(136,199,1,0,0,NULL,'890-5460',NULL,'8905460',1),(137,157,1,1,0,NULL,'(846) 655-4046',NULL,'8466554046',1),(138,163,1,1,0,NULL,'(821) 282-8363',NULL,'8212828363',1),(139,163,1,0,0,NULL,'759-1890',NULL,'7591890',2),(140,197,1,1,0,NULL,'(819) 753-9373',NULL,'8197539373',1),(141,197,1,0,0,NULL,'417-9748',NULL,'4179748',2),(142,69,1,1,0,NULL,'497-1166',NULL,'4971166',2),(143,87,1,1,0,NULL,'335-7823',NULL,'3357823',1),(144,87,1,0,0,NULL,'318-7391',NULL,'3187391',1),(145,62,1,1,0,NULL,'331-2533',NULL,'3312533',2),(146,84,1,1,0,NULL,'(749) 626-3560',NULL,'7496263560',2),(147,84,1,0,0,NULL,'765-2655',NULL,'7652655',2),(148,70,1,1,0,NULL,'740-2599',NULL,'7402599',2),(149,70,1,0,0,NULL,'357-3831',NULL,'3573831',2),(150,86,1,1,0,NULL,'(608) 359-1455',NULL,'6083591455',2),(151,86,1,0,0,NULL,'(394) 864-7246',NULL,'3948647246',1),(152,175,1,1,0,NULL,'662-7040',NULL,'6627040',2),(153,47,1,1,0,NULL,'(203) 437-6797',NULL,'2034376797',1),(154,183,1,1,0,NULL,'582-9083',NULL,'5829083',2),(155,183,1,0,0,NULL,'626-2787',NULL,'6262787',2),(156,38,1,1,0,NULL,'(891) 728-6872',NULL,'8917286872',1),(157,38,1,0,0,NULL,'(211) 291-9702',NULL,'2112919702',1),(158,50,1,1,0,NULL,'(655) 794-5098',NULL,'6557945098',2),(159,177,1,1,0,NULL,'583-4300',NULL,'5834300',1),(160,174,1,1,0,NULL,'782-4811',NULL,'7824811',1),(161,174,1,0,0,NULL,'(808) 479-1054',NULL,'8084791054',1),(162,115,1,1,0,NULL,'362-7708',NULL,'3627708',1),(163,115,1,0,0,NULL,'(479) 575-4949',NULL,'4795754949',1),(164,15,1,1,0,NULL,'(244) 345-2358',NULL,'2443452358',2),(165,15,1,0,0,NULL,'851-1819',NULL,'8511819',2),(166,18,1,1,0,NULL,'(506) 569-1679',NULL,'5065691679',2),(167,116,1,1,0,NULL,'417-7332',NULL,'4177332',2),(168,116,1,0,0,NULL,'731-8530',NULL,'7318530',2),(169,135,1,1,0,NULL,'(583) 322-8595',NULL,'5833228595',1),(170,54,1,1,0,NULL,'203-1123',NULL,'2031123',2),(171,54,1,0,0,NULL,'454-9036',NULL,'4549036',2),(172,136,1,1,0,NULL,'(538) 518-6185',NULL,'5385186185',1),(173,136,1,0,0,NULL,'691-6127',NULL,'6916127',2),(174,5,1,1,0,NULL,'(671) 214-8849',NULL,'6712148849',1),(175,5,1,0,0,NULL,'553-1704',NULL,'5531704',1),(176,39,1,1,0,NULL,'(369) 700-3811',NULL,'3697003811',1),(177,17,1,1,0,NULL,'569-5556',NULL,'5695556',1),(178,NULL,1,0,0,NULL,'204 222-1000',NULL,'2042221000',1),(179,NULL,1,0,0,NULL,'204 223-1000',NULL,'2042231000',1),(180,NULL,1,0,0,NULL,'303 323-1000',NULL,'3033231000',1);
 /*!40000 ALTER TABLE `civicrm_phone` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -1260,7 +1260,7 @@ UNLOCK TABLES;
 
 LOCK TABLES `civicrm_relationship` WRITE;
 /*!40000 ALTER TABLE `civicrm_relationship` DISABLE KEYS */;
-INSERT INTO `civicrm_relationship` (`id`, `contact_id_a`, `contact_id_b`, `relationship_type_id`, `start_date`, `end_date`, `is_active`, `description`, `is_permission_a_b`, `is_permission_b_a`, `case_id`) VALUES (1,192,119,1,NULL,NULL,1,NULL,0,0,NULL),(2,48,119,1,NULL,NULL,1,NULL,0,0,NULL),(3,192,84,1,NULL,NULL,1,NULL,0,0,NULL),(4,48,84,1,NULL,NULL,1,NULL,0,0,NULL),(5,48,192,4,NULL,NULL,1,NULL,0,0,NULL),(6,84,137,8,NULL,NULL,1,NULL,0,0,NULL),(7,192,137,8,NULL,NULL,1,NULL,0,0,NULL),(8,48,137,8,NULL,NULL,1,NULL,0,0,NULL),(9,119,137,7,NULL,NULL,1,NULL,0,0,NULL),(10,84,119,2,NULL,NULL,1,NULL,0,0,NULL),(11,2,147,1,NULL,NULL,1,NULL,0,0,NULL),(12,112,147,1,NULL,NULL,1,NULL,0,0,NULL),(13,2,105,1,NULL,NULL,1,NULL,0,0,NULL),(14,112,105,1,NULL,NULL,1,NULL,0,0,NULL),(15,112,2,4,NULL,NULL,1,NULL,0,0,NULL),(16,105,51,8,NULL,NULL,1,NULL,0,0,NULL),(17,2,51,8,NULL,NULL,1,NULL,0,0,NULL),(18,112,51,8,NULL,NULL,1,NULL,0,0,NULL),(19,147,51,7,NULL,NULL,0,NULL,0,0,NULL),(20,105,147,2,NULL,NULL,0,NULL,0,0,NULL),(21,95,129,1,NULL,NULL,1,NULL,0,0,NULL),(22,36,129,1,NULL,NULL,1,NULL,0,0,NULL),(23,95,123,1,NULL,NULL,1,NULL,0,0,NULL),(24,36,123,1,NULL,NULL,1,NULL,0,0,NULL),(25,36,95,4,NULL,NULL,1,NULL,0,0,NULL),(26,123,7,8,NULL,NULL,1,NULL,0,0,NULL),(27,95,7,8,NULL,NULL,1,NULL,0,0,NULL),(28,36,7,8,NULL,NULL,1,NULL,0,0,NULL),(29,129,7,7,NULL,NULL,1,NULL,0,0,NULL),(30,123,129,2,NULL,NULL,1,NULL,0,0,NULL),(31,131,134,1,NULL,NULL,1,NULL,0,0,NULL),(32,132,134,1,NULL,NULL,1,NULL,0,0,NULL),(33,131,25,1,NULL,NULL,1,NULL,0,0,NULL),(34,132,25,1,NULL,NULL,1,NULL,0,0,NULL),(35,132,131,4,NULL,NULL,1,NULL,0,0,NULL),(36,25,98,8,NULL,NULL,1,NULL,0,0,NULL),(37,131,98,8,NULL,NULL,1,NULL,0,0,NULL),(38,132,98,8,NULL,NULL,1,NULL,0,0,NULL),(39,134,98,7,NULL,NULL,0,NULL,0,0,NULL),(40,25,134,2,NULL,NULL,0,NULL,0,0,NULL),(41,125,43,1,NULL,NULL,1,NULL,0,0,NULL),(42,64,43,1,NULL,NULL,1,NULL,0,0,NULL),(43,125,121,1,NULL,NULL,1,NULL,0,0,NULL),(44,64,121,1,NULL,NULL,1,NULL,0,0,NULL),(45,64,125,4,NULL,NULL,1,NULL,0,0,NULL),(46,121,118,8,NULL,NULL,1,NULL,0,0,NULL),(47,125,118,8,NULL,NULL,1,NULL,0,0,NULL),(48,64,118,8,NULL,NULL,1,NULL,0,0,NULL),(49,43,118,7,NULL,NULL,1,NULL,0,0,NULL),(50,121,43,2,NULL,NULL,1,NULL,0,0,NULL),(51,115,152,1,NULL,NULL,1,NULL,0,0,NULL),(52,141,152,1,NULL,NULL,1,NULL,0,0,NULL),(53,115,9,1,NULL,NULL,1,NULL,0,0,NULL),(54,141,9,1,NULL,NULL,1,NULL,0,0,NULL),(55,141,115,4,NULL,NULL,1,NULL,0,0,NULL),(56,9,20,8,NULL,NULL,1,NULL,0,0,NULL),(57,115,20,8,NULL,NULL,1,NULL,0,0,NULL),(58,141,20,8,NULL,NULL,1,NULL,0,0,NULL),(59,152,20,7,NULL,NULL,0,NULL,0,0,NULL),(60,9,152,2,NULL,NULL,0,NULL,0,0,NULL),(61,41,65,1,NULL,NULL,1,NULL,0,0,NULL),(62,94,65,1,NULL,NULL,1,NULL,0,0,NULL),(63,41,158,1,NULL,NULL,1,NULL,0,0,NULL),(64,94,158,1,NULL,NULL,1,NULL,0,0,NULL),(65,94,41,4,NULL,NULL,1,NULL,0,0,NULL),(66,158,5,8,NULL,NULL,1,NULL,0,0,NULL),(67,41,5,8,NULL,NULL,1,NULL,0,0,NULL),(68,94,5,8,NULL,NULL,1,NULL,0,0,NULL),(69,65,5,7,NULL,NULL,1,NULL,0,0,NULL),(70,158,65,2,NULL,NULL,1,NULL,0,0,NULL),(71,71,101,1,NULL,NULL,1,NULL,0,0,NULL),(72,151,101,1,NULL,NULL,1,NULL,0,0,NULL),(73,71,183,1,NULL,NULL,1,NULL,0,0,NULL),(74,151,183,1,NULL,NULL,1,NULL,0,0,NULL),(75,151,71,4,NULL,NULL,1,NULL,0,0,NULL),(76,183,21,8,NULL,NULL,1,NULL,0,0,NULL),(77,71,21,8,NULL,NULL,1,NULL,0,0,NULL),(78,151,21,8,NULL,NULL,1,NULL,0,0,NULL),(79,101,21,7,NULL,NULL,0,NULL,0,0,NULL),(80,183,101,2,NULL,NULL,0,NULL,0,0,NULL),(81,93,104,1,NULL,NULL,1,NULL,0,0,NULL),(82,199,104,1,NULL,NULL,1,NULL,0,0,NULL),(83,93,67,1,NULL,NULL,1,NULL,0,0,NULL),(84,199,67,1,NULL,NULL,1,NULL,0,0,NULL),(85,199,93,4,NULL,NULL,1,NULL,0,0,NULL),(86,67,100,8,NULL,NULL,1,NULL,0,0,NULL),(87,93,100,8,NULL,NULL,1,NULL,0,0,NULL),(88,199,100,8,NULL,NULL,1,NULL,0,0,NULL),(89,104,100,7,NULL,NULL,1,NULL,0,0,NULL),(90,67,104,2,NULL,NULL,1,NULL,0,0,NULL),(91,73,179,1,NULL,NULL,1,NULL,0,0,NULL),(92,68,179,1,NULL,NULL,1,NULL,0,0,NULL),(93,73,92,1,NULL,NULL,1,NULL,0,0,NULL),(94,68,92,1,NULL,NULL,1,NULL,0,0,NULL),(95,68,73,4,NULL,NULL,1,NULL,0,0,NULL),(96,92,99,8,NULL,NULL,1,NULL,0,0,NULL),(97,73,99,8,NULL,NULL,1,NULL,0,0,NULL),(98,68,99,8,NULL,NULL,1,NULL,0,0,NULL),(99,179,99,7,NULL,NULL,1,NULL,0,0,NULL),(100,92,179,2,NULL,NULL,1,NULL,0,0,NULL),(101,201,188,1,NULL,NULL,1,NULL,0,0,NULL),(102,58,188,1,NULL,NULL,1,NULL,0,0,NULL),(103,201,140,1,NULL,NULL,1,NULL,0,0,NULL),(104,58,140,1,NULL,NULL,1,NULL,0,0,NULL),(105,58,201,4,NULL,NULL,1,NULL,0,0,NULL),(106,140,44,8,NULL,NULL,1,NULL,0,0,NULL),(107,201,44,8,NULL,NULL,1,NULL,0,0,NULL),(108,58,44,8,NULL,NULL,1,NULL,0,0,NULL),(109,188,44,7,NULL,NULL,0,NULL,0,0,NULL),(110,140,188,2,NULL,NULL,0,NULL,0,0,NULL),(111,35,114,1,NULL,NULL,1,NULL,0,0,NULL),(112,195,114,1,NULL,NULL,1,NULL,0,0,NULL),(113,35,109,1,NULL,NULL,1,NULL,0,0,NULL),(114,195,109,1,NULL,NULL,1,NULL,0,0,NULL),(115,195,35,4,NULL,NULL,1,NULL,0,0,NULL),(116,109,168,8,NULL,NULL,1,NULL,0,0,NULL),(117,35,168,8,NULL,NULL,1,NULL,0,0,NULL),(118,195,168,8,NULL,NULL,1,NULL,0,0,NULL),(119,114,168,7,NULL,NULL,1,NULL,0,0,NULL),(120,109,114,2,NULL,NULL,1,NULL,0,0,NULL),(121,146,175,1,NULL,NULL,1,NULL,0,0,NULL),(122,160,175,1,NULL,NULL,1,NULL,0,0,NULL),(123,146,190,1,NULL,NULL,1,NULL,0,0,NULL),(124,160,190,1,NULL,NULL,1,NULL,0,0,NULL),(125,160,146,4,NULL,NULL,1,NULL,0,0,NULL),(126,190,163,8,NULL,NULL,1,NULL,0,0,NULL),(127,146,163,8,NULL,NULL,1,NULL,0,0,NULL),(128,160,163,8,NULL,NULL,1,NULL,0,0,NULL),(129,175,163,7,NULL,NULL,0,NULL,0,0,NULL),(130,190,175,2,NULL,NULL,0,NULL,0,0,NULL),(131,85,52,1,NULL,NULL,1,NULL,0,0,NULL),(132,79,52,1,NULL,NULL,1,NULL,0,0,NULL),(133,85,81,1,NULL,NULL,1,NULL,0,0,NULL),(134,79,81,1,NULL,NULL,1,NULL,0,0,NULL),(135,79,85,4,NULL,NULL,1,NULL,0,0,NULL),(136,81,117,8,NULL,NULL,1,NULL,0,0,NULL),(137,85,117,8,NULL,NULL,1,NULL,0,0,NULL),(138,79,117,8,NULL,NULL,1,NULL,0,0,NULL),(139,52,117,7,NULL,NULL,0,NULL,0,0,NULL),(140,81,52,2,NULL,NULL,0,NULL,0,0,NULL),(141,32,24,1,NULL,NULL,1,NULL,0,0,NULL),(142,143,24,1,NULL,NULL,1,NULL,0,0,NULL),(143,32,47,1,NULL,NULL,1,NULL,0,0,NULL),(144,143,47,1,NULL,NULL,1,NULL,0,0,NULL),(145,143,32,4,NULL,NULL,1,NULL,0,0,NULL),(146,47,126,8,NULL,NULL,1,NULL,0,0,NULL),(147,32,126,8,NULL,NULL,1,NULL,0,0,NULL),(148,143,126,8,NULL,NULL,1,NULL,0,0,NULL),(149,24,126,7,NULL,NULL,0,NULL,0,0,NULL),(150,47,24,2,NULL,NULL,0,NULL,0,0,NULL),(151,135,139,1,NULL,NULL,1,NULL,0,0,NULL),(152,130,139,1,NULL,NULL,1,NULL,0,0,NULL),(153,135,185,1,NULL,NULL,1,NULL,0,0,NULL),(154,130,185,1,NULL,NULL,1,NULL,0,0,NULL),(155,130,135,4,NULL,NULL,1,NULL,0,0,NULL),(156,185,34,8,NULL,NULL,1,NULL,0,0,NULL),(157,135,34,8,NULL,NULL,1,NULL,0,0,NULL),(158,130,34,8,NULL,NULL,1,NULL,0,0,NULL),(159,139,34,7,NULL,NULL,0,NULL,0,0,NULL),(160,185,139,2,NULL,NULL,0,NULL,0,0,NULL),(161,106,63,1,NULL,NULL,1,NULL,0,0,NULL),(162,62,63,1,NULL,NULL,1,NULL,0,0,NULL),(163,106,198,1,NULL,NULL,1,NULL,0,0,NULL),(164,62,198,1,NULL,NULL,1,NULL,0,0,NULL),(165,62,106,4,NULL,NULL,1,NULL,0,0,NULL),(166,198,90,8,NULL,NULL,1,NULL,0,0,NULL),(167,106,90,8,NULL,NULL,1,NULL,0,0,NULL),(168,62,90,8,NULL,NULL,1,NULL,0,0,NULL),(169,63,90,7,NULL,NULL,0,NULL,0,0,NULL),(170,198,63,2,NULL,NULL,0,NULL,0,0,NULL),(171,31,182,1,NULL,NULL,1,NULL,0,0,NULL),(172,153,182,1,NULL,NULL,1,NULL,0,0,NULL),(173,31,136,1,NULL,NULL,1,NULL,0,0,NULL),(174,153,136,1,NULL,NULL,1,NULL,0,0,NULL),(175,153,31,4,NULL,NULL,1,NULL,0,0,NULL),(176,136,108,8,NULL,NULL,1,NULL,0,0,NULL),(177,31,108,8,NULL,NULL,1,NULL,0,0,NULL),(178,153,108,8,NULL,NULL,1,NULL,0,0,NULL),(179,182,108,7,NULL,NULL,1,NULL,0,0,NULL),(180,136,182,2,NULL,NULL,1,NULL,0,0,NULL),(181,165,12,1,NULL,NULL,1,NULL,0,0,NULL),(182,15,12,1,NULL,NULL,1,NULL,0,0,NULL),(183,165,178,1,NULL,NULL,1,NULL,0,0,NULL),(184,15,178,1,NULL,NULL,1,NULL,0,0,NULL),(185,15,165,4,NULL,NULL,1,NULL,0,0,NULL),(186,178,96,8,NULL,NULL,1,NULL,0,0,NULL),(187,165,96,8,NULL,NULL,1,NULL,0,0,NULL),(188,15,96,8,NULL,NULL,1,NULL,0,0,NULL),(189,12,96,7,NULL,NULL,0,NULL,0,0,NULL),(190,178,12,2,NULL,NULL,0,NULL,0,0,NULL),(191,154,77,1,NULL,NULL,1,NULL,0,0,NULL),(192,91,77,1,NULL,NULL,1,NULL,0,0,NULL),(193,154,45,1,NULL,NULL,1,NULL,0,0,NULL),(194,91,45,1,NULL,NULL,1,NULL,0,0,NULL),(195,91,154,4,NULL,NULL,1,NULL,0,0,NULL),(196,45,150,8,NULL,NULL,1,NULL,0,0,NULL),(197,154,150,8,NULL,NULL,1,NULL,0,0,NULL),(198,91,150,8,NULL,NULL,1,NULL,0,0,NULL),(199,77,150,7,NULL,NULL,0,NULL,0,0,NULL),(200,45,77,2,NULL,NULL,0,NULL,0,0,NULL),(201,188,6,5,NULL,NULL,1,NULL,0,0,NULL),(202,179,10,5,NULL,NULL,1,NULL,0,0,NULL),(203,78,16,5,NULL,NULL,1,NULL,0,0,NULL),(204,58,27,5,NULL,NULL,1,NULL,0,0,NULL),(205,63,29,5,NULL,NULL,1,NULL,0,0,NULL),(206,37,38,5,NULL,NULL,1,NULL,0,0,NULL),(207,24,56,5,NULL,NULL,1,NULL,0,0,NULL),(208,112,76,5,NULL,NULL,1,NULL,0,0,NULL),(209,3,83,5,NULL,NULL,1,NULL,0,0,NULL),(210,125,86,5,NULL,NULL,1,NULL,0,0,NULL),(211,75,120,5,NULL,NULL,1,NULL,0,0,NULL),(212,93,142,5,NULL,NULL,1,NULL,0,0,NULL),(213,89,155,5,NULL,NULL,1,NULL,0,0,NULL),(214,71,181,5,NULL,NULL,1,NULL,0,0,NULL),(215,189,187,5,NULL,NULL,1,NULL,0,0,NULL);
+INSERT INTO `civicrm_relationship` (`id`, `contact_id_a`, `contact_id_b`, `relationship_type_id`, `start_date`, `end_date`, `is_active`, `description`, `is_permission_a_b`, `is_permission_b_a`, `case_id`) VALUES (1,146,24,1,NULL,NULL,1,NULL,0,0,NULL),(2,132,24,1,NULL,NULL,1,NULL,0,0,NULL),(3,146,168,1,NULL,NULL,1,NULL,0,0,NULL),(4,132,168,1,NULL,NULL,1,NULL,0,0,NULL),(5,132,146,4,NULL,NULL,1,NULL,0,0,NULL),(6,168,48,8,NULL,NULL,1,NULL,0,0,NULL),(7,146,48,8,NULL,NULL,1,NULL,0,0,NULL),(8,132,48,8,NULL,NULL,1,NULL,0,0,NULL),(9,24,48,7,NULL,NULL,1,NULL,0,0,NULL),(10,168,24,2,NULL,NULL,1,NULL,0,0,NULL),(11,76,200,1,NULL,NULL,1,NULL,0,0,NULL),(12,42,200,1,NULL,NULL,1,NULL,0,0,NULL),(13,76,6,1,NULL,NULL,1,NULL,0,0,NULL),(14,42,6,1,NULL,NULL,1,NULL,0,0,NULL),(15,42,76,4,NULL,NULL,1,NULL,0,0,NULL),(16,6,188,8,NULL,NULL,1,NULL,0,0,NULL),(17,76,188,8,NULL,NULL,1,NULL,0,0,NULL),(18,42,188,8,NULL,NULL,1,NULL,0,0,NULL),(19,200,188,7,NULL,NULL,0,NULL,0,0,NULL),(20,6,200,2,NULL,NULL,0,NULL,0,0,NULL),(21,89,64,1,NULL,NULL,1,NULL,0,0,NULL),(22,161,64,1,NULL,NULL,1,NULL,0,0,NULL),(23,89,41,1,NULL,NULL,1,NULL,0,0,NULL),(24,161,41,1,NULL,NULL,1,NULL,0,0,NULL),(25,161,89,4,NULL,NULL,1,NULL,0,0,NULL),(26,41,90,8,NULL,NULL,1,NULL,0,0,NULL),(27,89,90,8,NULL,NULL,1,NULL,0,0,NULL),(28,161,90,8,NULL,NULL,1,NULL,0,0,NULL),(29,64,90,7,NULL,NULL,1,NULL,0,0,NULL),(30,41,64,2,NULL,NULL,1,NULL,0,0,NULL),(31,3,138,1,NULL,NULL,1,NULL,0,0,NULL),(32,34,138,1,NULL,NULL,1,NULL,0,0,NULL),(33,3,30,1,NULL,NULL,1,NULL,0,0,NULL),(34,34,30,1,NULL,NULL,1,NULL,0,0,NULL),(35,34,3,4,NULL,NULL,1,NULL,0,0,NULL),(36,30,139,8,NULL,NULL,1,NULL,0,0,NULL),(37,3,139,8,NULL,NULL,1,NULL,0,0,NULL),(38,34,139,8,NULL,NULL,1,NULL,0,0,NULL),(39,138,139,7,NULL,NULL,0,NULL,0,0,NULL),(40,30,138,2,NULL,NULL,0,NULL,0,0,NULL),(41,94,56,1,NULL,NULL,1,NULL,0,0,NULL),(42,194,56,1,NULL,NULL,1,NULL,0,0,NULL),(43,94,152,1,NULL,NULL,1,NULL,0,0,NULL),(44,194,152,1,NULL,NULL,1,NULL,0,0,NULL),(45,194,94,4,NULL,NULL,1,NULL,0,0,NULL),(46,152,171,8,NULL,NULL,1,NULL,0,0,NULL),(47,94,171,8,NULL,NULL,1,NULL,0,0,NULL),(48,194,171,8,NULL,NULL,1,NULL,0,0,NULL),(49,56,171,7,NULL,NULL,1,NULL,0,0,NULL),(50,152,56,2,NULL,NULL,1,NULL,0,0,NULL),(51,187,156,1,NULL,NULL,1,NULL,0,0,NULL),(52,45,156,1,NULL,NULL,1,NULL,0,0,NULL),(53,187,167,1,NULL,NULL,1,NULL,0,0,NULL),(54,45,167,1,NULL,NULL,1,NULL,0,0,NULL),(55,45,187,4,NULL,NULL,1,NULL,0,0,NULL),(56,167,12,8,NULL,NULL,1,NULL,0,0,NULL),(57,187,12,8,NULL,NULL,1,NULL,0,0,NULL),(58,45,12,8,NULL,NULL,1,NULL,0,0,NULL),(59,156,12,7,NULL,NULL,1,NULL,0,0,NULL),(60,167,156,2,NULL,NULL,1,NULL,0,0,NULL),(61,67,20,1,NULL,NULL,1,NULL,0,0,NULL),(62,160,20,1,NULL,NULL,1,NULL,0,0,NULL),(63,67,124,1,NULL,NULL,1,NULL,0,0,NULL),(64,160,124,1,NULL,NULL,1,NULL,0,0,NULL),(65,160,67,4,NULL,NULL,1,NULL,0,0,NULL),(66,124,134,8,NULL,NULL,1,NULL,0,0,NULL),(67,67,134,8,NULL,NULL,1,NULL,0,0,NULL),(68,160,134,8,NULL,NULL,1,NULL,0,0,NULL),(69,20,134,7,NULL,NULL,1,NULL,0,0,NULL),(70,124,20,2,NULL,NULL,1,NULL,0,0,NULL),(71,44,126,1,NULL,NULL,1,NULL,0,0,NULL),(72,2,126,1,NULL,NULL,1,NULL,0,0,NULL),(73,44,119,1,NULL,NULL,1,NULL,0,0,NULL),(74,2,119,1,NULL,NULL,1,NULL,0,0,NULL),(75,2,44,4,NULL,NULL,1,NULL,0,0,NULL),(76,119,8,8,NULL,NULL,1,NULL,0,0,NULL),(77,44,8,8,NULL,NULL,1,NULL,0,0,NULL),(78,2,8,8,NULL,NULL,1,NULL,0,0,NULL),(79,126,8,7,NULL,NULL,1,NULL,0,0,NULL),(80,119,126,2,NULL,NULL,1,NULL,0,0,NULL),(81,133,85,1,NULL,NULL,1,NULL,0,0,NULL),(82,195,85,1,NULL,NULL,1,NULL,0,0,NULL),(83,133,26,1,NULL,NULL,1,NULL,0,0,NULL),(84,195,26,1,NULL,NULL,1,NULL,0,0,NULL),(85,195,133,4,NULL,NULL,1,NULL,0,0,NULL),(86,26,155,8,NULL,NULL,1,NULL,0,0,NULL),(87,133,155,8,NULL,NULL,1,NULL,0,0,NULL),(88,195,155,8,NULL,NULL,1,NULL,0,0,NULL),(89,85,155,7,NULL,NULL,0,NULL,0,0,NULL),(90,26,85,2,NULL,NULL,0,NULL,0,0,NULL),(91,114,92,1,NULL,NULL,1,NULL,0,0,NULL),(92,147,92,1,NULL,NULL,1,NULL,0,0,NULL),(93,114,145,1,NULL,NULL,1,NULL,0,0,NULL),(94,147,145,1,NULL,NULL,1,NULL,0,0,NULL),(95,147,114,4,NULL,NULL,1,NULL,0,0,NULL),(96,145,198,8,NULL,NULL,1,NULL,0,0,NULL),(97,114,198,8,NULL,NULL,1,NULL,0,0,NULL),(98,147,198,8,NULL,NULL,1,NULL,0,0,NULL),(99,92,198,7,NULL,NULL,1,NULL,0,0,NULL),(100,145,92,2,NULL,NULL,1,NULL,0,0,NULL),(101,107,82,1,NULL,NULL,1,NULL,0,0,NULL),(102,81,82,1,NULL,NULL,1,NULL,0,0,NULL),(103,107,66,1,NULL,NULL,1,NULL,0,0,NULL),(104,81,66,1,NULL,NULL,1,NULL,0,0,NULL),(105,81,107,4,NULL,NULL,1,NULL,0,0,NULL),(106,66,148,8,NULL,NULL,1,NULL,0,0,NULL),(107,107,148,8,NULL,NULL,1,NULL,0,0,NULL),(108,81,148,8,NULL,NULL,1,NULL,0,0,NULL),(109,82,148,7,NULL,NULL,1,NULL,0,0,NULL),(110,66,82,2,NULL,NULL,1,NULL,0,0,NULL),(111,123,88,1,NULL,NULL,1,NULL,0,0,NULL),(112,77,88,1,NULL,NULL,1,NULL,0,0,NULL),(113,123,79,1,NULL,NULL,1,NULL,0,0,NULL),(114,77,79,1,NULL,NULL,1,NULL,0,0,NULL),(115,77,123,4,NULL,NULL,1,NULL,0,0,NULL),(116,79,61,8,NULL,NULL,1,NULL,0,0,NULL),(117,123,61,8,NULL,NULL,1,NULL,0,0,NULL),(118,77,61,8,NULL,NULL,1,NULL,0,0,NULL),(119,88,61,7,NULL,NULL,1,NULL,0,0,NULL),(120,79,88,2,NULL,NULL,1,NULL,0,0,NULL),(121,125,199,1,NULL,NULL,1,NULL,0,0,NULL),(122,163,199,1,NULL,NULL,1,NULL,0,0,NULL),(123,125,157,1,NULL,NULL,1,NULL,0,0,NULL),(124,163,157,1,NULL,NULL,1,NULL,0,0,NULL),(125,163,125,4,NULL,NULL,1,NULL,0,0,NULL),(126,157,179,8,NULL,NULL,1,NULL,0,0,NULL),(127,125,179,8,NULL,NULL,1,NULL,0,0,NULL),(128,163,179,8,NULL,NULL,1,NULL,0,0,NULL),(129,199,179,7,NULL,NULL,1,NULL,0,0,NULL),(130,157,199,2,NULL,NULL,1,NULL,0,0,NULL),(131,35,60,1,NULL,NULL,1,NULL,0,0,NULL),(132,69,60,1,NULL,NULL,1,NULL,0,0,NULL),(133,35,197,1,NULL,NULL,1,NULL,0,0,NULL),(134,69,197,1,NULL,NULL,1,NULL,0,0,NULL),(135,69,35,4,NULL,NULL,1,NULL,0,0,NULL),(136,197,78,8,NULL,NULL,1,NULL,0,0,NULL),(137,35,78,8,NULL,NULL,1,NULL,0,0,NULL),(138,69,78,8,NULL,NULL,1,NULL,0,0,NULL),(139,60,78,7,NULL,NULL,1,NULL,0,0,NULL),(140,197,60,2,NULL,NULL,1,NULL,0,0,NULL),(141,84,87,1,NULL,NULL,1,NULL,0,0,NULL),(142,70,87,1,NULL,NULL,1,NULL,0,0,NULL),(143,84,62,1,NULL,NULL,1,NULL,0,0,NULL),(144,70,62,1,NULL,NULL,1,NULL,0,0,NULL),(145,70,84,4,NULL,NULL,1,NULL,0,0,NULL),(146,62,172,8,NULL,NULL,1,NULL,0,0,NULL),(147,84,172,8,NULL,NULL,1,NULL,0,0,NULL),(148,70,172,8,NULL,NULL,1,NULL,0,0,NULL),(149,87,172,7,NULL,NULL,0,NULL,0,0,NULL),(150,62,87,2,NULL,NULL,0,NULL,0,0,NULL),(151,47,86,1,NULL,NULL,1,NULL,0,0,NULL),(152,183,86,1,NULL,NULL,1,NULL,0,0,NULL),(153,47,175,1,NULL,NULL,1,NULL,0,0,NULL),(154,183,175,1,NULL,NULL,1,NULL,0,0,NULL),(155,183,47,4,NULL,NULL,1,NULL,0,0,NULL),(156,175,93,8,NULL,NULL,1,NULL,0,0,NULL),(157,47,93,8,NULL,NULL,1,NULL,0,0,NULL),(158,183,93,8,NULL,NULL,1,NULL,0,0,NULL),(159,86,93,7,NULL,NULL,0,NULL,0,0,NULL),(160,175,86,2,NULL,NULL,0,NULL,0,0,NULL),(161,50,38,1,NULL,NULL,1,NULL,0,0,NULL),(162,177,38,1,NULL,NULL,1,NULL,0,0,NULL),(163,50,14,1,NULL,NULL,1,NULL,0,0,NULL),(164,177,14,1,NULL,NULL,1,NULL,0,0,NULL),(165,177,50,4,NULL,NULL,1,NULL,0,0,NULL),(166,14,33,8,NULL,NULL,1,NULL,0,0,NULL),(167,50,33,8,NULL,NULL,1,NULL,0,0,NULL),(168,177,33,8,NULL,NULL,1,NULL,0,0,NULL),(169,38,33,7,NULL,NULL,1,NULL,0,0,NULL),(170,14,38,2,NULL,NULL,1,NULL,0,0,NULL),(171,15,174,1,NULL,NULL,1,NULL,0,0,NULL),(172,154,174,1,NULL,NULL,1,NULL,0,0,NULL),(173,15,115,1,NULL,NULL,1,NULL,0,0,NULL),(174,154,115,1,NULL,NULL,1,NULL,0,0,NULL),(175,154,15,4,NULL,NULL,1,NULL,0,0,NULL),(176,115,36,8,NULL,NULL,1,NULL,0,0,NULL),(177,15,36,8,NULL,NULL,1,NULL,0,0,NULL),(178,154,36,8,NULL,NULL,1,NULL,0,0,NULL),(179,174,36,7,NULL,NULL,0,NULL,0,0,NULL),(180,115,174,2,NULL,NULL,0,NULL,0,0,NULL),(181,135,18,1,NULL,NULL,1,NULL,0,0,NULL),(182,54,18,1,NULL,NULL,1,NULL,0,0,NULL),(183,135,116,1,NULL,NULL,1,NULL,0,0,NULL),(184,54,116,1,NULL,NULL,1,NULL,0,0,NULL),(185,54,135,4,NULL,NULL,1,NULL,0,0,NULL),(186,116,180,8,NULL,NULL,1,NULL,0,0,NULL),(187,135,180,8,NULL,NULL,1,NULL,0,0,NULL),(188,54,180,8,NULL,NULL,1,NULL,0,0,NULL),(189,18,180,7,NULL,NULL,0,NULL,0,0,NULL),(190,116,18,2,NULL,NULL,0,NULL,0,0,NULL),(191,39,136,1,NULL,NULL,1,NULL,0,0,NULL),(192,17,136,1,NULL,NULL,1,NULL,0,0,NULL),(193,39,5,1,NULL,NULL,1,NULL,0,0,NULL),(194,17,5,1,NULL,NULL,1,NULL,0,0,NULL),(195,17,39,4,NULL,NULL,1,NULL,0,0,NULL),(196,5,170,8,NULL,NULL,1,NULL,0,0,NULL),(197,39,170,8,NULL,NULL,1,NULL,0,0,NULL),(198,17,170,8,NULL,NULL,1,NULL,0,0,NULL),(199,136,170,7,NULL,NULL,1,NULL,0,0,NULL),(200,5,136,2,NULL,NULL,1,NULL,0,0,NULL),(201,57,7,5,NULL,NULL,1,NULL,0,0,NULL),(202,59,31,5,NULL,NULL,1,NULL,0,0,NULL),(203,185,71,5,NULL,NULL,1,NULL,0,0,NULL),(204,150,97,5,NULL,NULL,1,NULL,0,0,NULL),(205,82,104,5,NULL,NULL,1,NULL,0,0,NULL),(206,21,110,5,NULL,NULL,1,NULL,0,0,NULL),(207,182,113,5,NULL,NULL,1,NULL,0,0,NULL),(208,109,118,5,NULL,NULL,1,NULL,0,0,NULL),(209,55,121,5,NULL,NULL,1,NULL,0,0,NULL),(210,176,142,5,NULL,NULL,1,NULL,0,0,NULL),(211,135,153,5,NULL,NULL,1,NULL,0,0,NULL),(212,80,159,5,NULL,NULL,1,NULL,0,0,NULL),(213,122,190,5,NULL,NULL,1,NULL,0,0,NULL),(214,66,191,5,NULL,NULL,1,NULL,0,0,NULL),(215,40,193,5,NULL,NULL,1,NULL,0,0,NULL);
 /*!40000 ALTER TABLE `civicrm_relationship` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -1336,7 +1336,7 @@ UNLOCK TABLES;
 
 LOCK TABLES `civicrm_subscription_history` WRITE;
 /*!40000 ALTER TABLE `civicrm_subscription_history` DISABLE KEYS */;
-INSERT INTO `civicrm_subscription_history` (`id`, `contact_id`, `group_id`, `date`, `method`, `status`, `tracking`) VALUES (1,107,2,'2019-03-22 10:05:47','Admin','Added',NULL),(2,164,2,'2019-11-19 18:11:46','Admin','Added',NULL),(3,172,2,'2019-11-16 09:01:37','Admin','Added',NULL),(4,54,2,'2019-08-21 17:27:23','Email','Added',NULL),(5,49,2,'2018-12-25 22:14:15','Email','Added',NULL),(6,159,2,'2019-05-25 22:14:22','Admin','Added',NULL),(7,75,2,'2019-09-19 17:51:20','Admin','Added',NULL),(8,110,2,'2019-07-17 18:30:44','Email','Added',NULL),(9,13,2,'2019-07-26 13:01:15','Admin','Added',NULL),(10,127,2,'2019-09-19 17:50:41','Admin','Added',NULL),(11,176,2,'2019-11-18 11:19:19','Email','Added',NULL),(12,200,2,'2019-10-25 07:25:34','Email','Added',NULL),(13,174,2,'2019-04-08 06:01:40','Email','Added',NULL),(14,46,2,'2019-01-24 20:29:07','Admin','Added',NULL),(15,28,2,'2019-09-02 01:14:56','Email','Added',NULL),(16,157,2,'2019-07-15 22:29:41','Admin','Added',NULL),(17,66,2,'2019-04-03 01:19:47','Email','Added',NULL),(18,14,2,'2019-08-14 06:31:09','Email','Added',NULL),(19,102,2,'2019-05-30 14:10:40','Email','Added',NULL),(20,22,2,'2019-04-08 00:13:03','Email','Added',NULL),(21,37,2,'2019-09-28 08:18:35','Email','Added',NULL),(22,30,2,'2019-04-22 10:03:59','Admin','Added',NULL),(23,196,2,'2019-06-29 16:00:09','Email','Added',NULL),(24,17,2,'2019-03-09 06:35:00','Email','Added',NULL),(25,80,2,'2019-03-24 09:49:04','Email','Added',NULL),(26,60,2,'2019-05-04 13:16:46','Email','Added',NULL),(27,144,2,'2019-08-14 11:05:06','Email','Added',NULL),(28,82,2,'2019-04-29 01:47:41','Email','Added',NULL),(29,74,2,'2019-06-24 19:18:15','Admin','Added',NULL),(30,88,2,'2019-06-27 17:05:43','Admin','Added',NULL),(31,194,2,'2019-01-24 00:42:59','Email','Added',NULL),(32,57,2,'2019-01-23 21:06:07','Admin','Added',NULL),(33,87,2,'2019-02-26 16:13:16','Admin','Added',NULL),(34,167,2,'2019-07-27 08:04:55','Admin','Added',NULL),(35,8,2,'2019-11-24 09:44:33','Email','Added',NULL),(36,170,2,'2019-10-16 15:58:55','Email','Added',NULL),(37,111,2,'2019-11-18 03:59:20','Email','Added',NULL),(38,97,2,'2019-08-26 17:08:32','Admin','Added',NULL),(39,70,2,'2019-05-18 04:17:06','Email','Added',NULL),(40,33,2,'2018-12-27 11:33:54','Email','Added',NULL),(41,169,2,'2019-03-22 07:47:58','Admin','Added',NULL),(42,124,2,'2019-09-11 19:28:11','Admin','Added',NULL),(43,103,2,'2019-05-22 12:34:45','Email','Added',NULL),(44,72,2,'2019-07-09 02:06:41','Email','Added',NULL),(45,197,2,'2019-04-02 21:00:14','Admin','Added',NULL),(46,50,2,'2019-08-25 21:35:22','Admin','Added',NULL),(47,4,2,'2019-02-11 13:38:40','Email','Added',NULL),(48,166,2,'2019-06-22 05:38:27','Admin','Added',NULL),(49,191,2,'2019-10-21 10:22:37','Email','Added',NULL),(50,59,2,'2019-01-19 11:24:33','Admin','Added',NULL),(51,122,2,'2019-01-18 08:33:30','Admin','Added',NULL),(52,173,2,'2019-05-13 14:43:26','Admin','Added',NULL),(53,53,2,'2019-04-14 14:53:29','Admin','Added',NULL),(54,116,2,'2018-12-15 14:08:08','Email','Added',NULL),(55,186,2,'2019-09-28 18:44:50','Admin','Added',NULL),(56,23,2,'2019-06-28 12:06:12','Admin','Added',NULL),(57,133,2,'2019-11-14 15:41:02','Admin','Added',NULL),(58,42,2,'2019-09-23 14:15:13','Admin','Added',NULL),(59,40,2,'2019-02-24 12:39:38','Email','Added',NULL),(60,171,2,'2019-04-23 17:58:43','Email','Added',NULL),(61,78,3,'2018-12-30 16:28:07','Email','Added',NULL),(62,149,3,'2019-09-26 00:34:40','Admin','Added',NULL),(63,19,3,'2019-07-11 04:32:28','Email','Added',NULL),(64,148,3,'2019-08-20 04:33:57','Admin','Added',NULL),(65,39,3,'2018-12-17 11:28:02','Admin','Added',NULL),(66,113,3,'2019-11-22 12:42:58','Admin','Added',NULL),(67,184,3,'2019-04-21 02:13:34','Admin','Added',NULL),(68,55,3,'2018-12-09 07:20:47','Admin','Added',NULL),(69,145,3,'2018-12-22 02:44:12','Admin','Added',NULL),(70,162,3,'2019-09-07 22:31:45','Admin','Added',NULL),(71,189,3,'2019-08-28 04:06:39','Email','Added',NULL),(72,193,3,'2019-04-15 15:31:15','Admin','Added',NULL),(73,156,3,'2019-08-08 15:24:31','Email','Added',NULL),(74,26,3,'2019-04-18 11:25:24','Email','Added',NULL),(75,61,3,'2019-07-29 04:16:31','Email','Added',NULL),(76,107,4,'2019-04-10 08:33:54','Email','Added',NULL),(77,110,4,'2019-03-27 15:59:43','Email','Added',NULL),(78,28,4,'2019-08-05 06:25:30','Admin','Added',NULL),(79,30,4,'2019-06-01 06:22:39','Email','Added',NULL),(80,74,4,'2019-03-15 13:16:16','Email','Added',NULL),(81,170,4,'2019-04-20 02:57:13','Admin','Added',NULL),(82,103,4,'2019-11-19 02:31:02','Admin','Added',NULL),(83,59,4,'2019-02-01 23:41:57','Email','Added',NULL);
+INSERT INTO `civicrm_subscription_history` (`id`, `contact_id`, `group_id`, `date`, `method`, `status`, `tracking`) VALUES (1,96,2,'2019-06-13 04:12:33','Email','Added',NULL),(2,43,2,'2019-12-04 06:00:29','Admin','Added',NULL),(3,189,2,'2019-10-01 15:25:05','Admin','Added',NULL),(4,140,2,'2019-11-18 06:40:34','Admin','Added',NULL),(5,166,2,'2019-09-27 22:12:29','Email','Added',NULL),(6,95,2,'2019-09-09 00:21:57','Admin','Added',NULL),(7,106,2,'2019-08-14 10:19:29','Admin','Added',NULL),(8,98,2,'2019-05-07 10:09:51','Email','Added',NULL),(9,127,2,'2019-08-07 10:19:11','Email','Added',NULL),(10,137,2,'2019-12-29 13:34:53','Admin','Added',NULL),(11,102,2,'2019-01-17 10:06:09','Email','Added',NULL),(12,141,2,'2019-02-22 20:25:16','Admin','Added',NULL),(13,105,2,'2019-12-07 15:53:55','Email','Added',NULL),(14,23,2,'2019-02-14 20:52:45','Email','Added',NULL),(15,9,2,'2019-05-02 20:35:15','Email','Added',NULL),(16,158,2,'2019-12-17 11:26:23','Email','Added',NULL),(17,117,2,'2019-06-04 16:07:41','Admin','Added',NULL),(18,165,2,'2019-08-02 09:28:37','Admin','Added',NULL),(19,72,2,'2019-07-26 12:09:03','Email','Added',NULL),(20,186,2,'2019-04-29 20:31:41','Admin','Added',NULL),(21,10,2,'2019-10-16 02:28:00','Email','Added',NULL),(22,182,2,'2019-04-25 19:52:45','Email','Added',NULL),(23,40,2,'2019-05-03 21:51:56','Admin','Added',NULL),(24,169,2,'2019-11-30 16:42:29','Email','Added',NULL),(25,143,2,'2019-10-28 13:21:40','Email','Added',NULL),(26,185,2,'2019-08-08 08:34:41','Email','Added',NULL),(27,37,2,'2019-02-27 02:14:07','Email','Added',NULL),(28,27,2,'2019-02-08 16:43:31','Admin','Added',NULL),(29,164,2,'2019-07-02 18:50:09','Email','Added',NULL),(30,63,2,'2019-12-07 07:15:56','Email','Added',NULL),(31,49,2,'2019-10-04 18:43:58','Admin','Added',NULL),(32,192,2,'2019-04-20 06:54:45','Admin','Added',NULL),(33,130,2,'2019-03-15 23:03:37','Email','Added',NULL),(34,4,2,'2019-07-26 23:37:17','Email','Added',NULL),(35,75,2,'2019-09-22 12:47:30','Admin','Added',NULL),(36,100,2,'2019-09-22 21:00:59','Email','Added',NULL),(37,16,2,'2019-03-04 02:31:10','Email','Added',NULL),(38,29,2,'2019-01-29 08:26:21','Admin','Added',NULL),(39,162,2,'2019-08-01 15:15:04','Email','Added',NULL),(40,59,2,'2019-05-25 19:29:21','Admin','Added',NULL),(41,144,2,'2019-01-30 23:08:44','Email','Added',NULL),(42,21,2,'2019-07-12 17:19:04','Email','Added',NULL),(43,122,2,'2019-07-16 00:48:14','Admin','Added',NULL),(44,74,2,'2019-09-01 06:36:08','Admin','Added',NULL),(45,111,2,'2019-12-11 16:13:50','Admin','Added',NULL),(46,181,2,'2019-05-22 09:20:52','Email','Added',NULL),(47,128,2,'2019-11-14 22:55:59','Email','Added',NULL),(48,201,2,'2019-03-14 04:52:00','Admin','Added',NULL),(49,184,2,'2019-04-23 19:24:07','Email','Added',NULL),(50,176,2,'2019-12-11 14:40:08','Admin','Added',NULL),(51,178,2,'2019-03-04 05:57:42','Email','Added',NULL),(52,51,2,'2019-08-08 10:13:57','Email','Added',NULL),(53,52,2,'2019-08-21 18:45:37','Admin','Added',NULL),(54,11,2,'2019-03-03 15:48:19','Admin','Added',NULL),(55,131,2,'2019-09-19 05:42:15','Email','Added',NULL),(56,103,2,'2019-06-09 01:33:11','Email','Added',NULL),(57,65,2,'2019-06-30 21:53:06','Admin','Added',NULL),(58,109,2,'2019-11-10 23:15:58','Email','Added',NULL),(59,68,2,'2019-10-16 04:15:58','Admin','Added',NULL),(60,73,2,'2019-02-13 08:59:43','Email','Added',NULL),(61,55,3,'2019-12-27 04:33:35','Email','Added',NULL),(62,99,3,'2019-06-26 14:06:14','Admin','Added',NULL),(63,151,3,'2019-06-03 15:30:25','Email','Added',NULL),(64,108,3,'2019-02-01 12:59:06','Admin','Added',NULL),(65,150,3,'2019-02-09 14:53:50','Email','Added',NULL),(66,19,3,'2019-03-23 13:49:12','Email','Added',NULL),(67,196,3,'2019-11-29 23:23:55','Admin','Added',NULL),(68,83,3,'2019-08-26 03:37:58','Admin','Added',NULL),(69,32,3,'2019-04-17 19:55:44','Email','Added',NULL),(70,120,3,'2019-01-19 15:16:03','Admin','Added',NULL),(71,80,3,'2019-07-25 05:43:58','Email','Added',NULL),(72,129,3,'2019-10-27 10:04:19','Admin','Added',NULL),(73,25,3,'2019-09-03 13:55:52','Email','Added',NULL),(74,13,3,'2019-09-13 19:40:37','Email','Added',NULL),(75,58,3,'2019-11-15 15:24:09','Admin','Added',NULL),(76,96,4,'2019-10-05 21:31:49','Email','Added',NULL),(77,98,4,'2019-09-03 23:22:57','Admin','Added',NULL),(78,9,4,'2019-10-07 01:28:44','Admin','Added',NULL),(79,182,4,'2020-01-12 11:07:31','Email','Added',NULL),(80,164,4,'2019-04-07 18:58:52','Admin','Added',NULL),(81,100,4,'2019-11-12 16:57:19','Admin','Added',NULL),(82,122,4,'2019-05-09 15:38:54','Admin','Added',NULL),(83,176,4,'2019-07-14 23:18:12','Email','Added',NULL);
 /*!40000 ALTER TABLE `civicrm_subscription_history` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -1432,7 +1432,7 @@ UNLOCK TABLES;
 
 LOCK TABLES `civicrm_website` WRITE;
 /*!40000 ALTER TABLE `civicrm_website` DISABLE KEYS */;
-INSERT INTO `civicrm_website` (`id`, `contact_id`, `url`, `website_type_id`) VALUES (1,83,'http://almacenter.org',1),(2,86,'http://lincolnmusic.org',1),(3,10,'http://redmonhealth.org',1),(4,181,'http://cadelldevelopmentservices.org',1),(5,29,'http://sissetoninitiative.org',1),(6,187,'http://creativeeducation.org',1),(7,155,'http://jamestownwellnesspartners.org',1),(8,161,'http://urbanliteracycollective.org',1),(9,138,'http://imbodenalliance.org',1),(10,38,'http://baypartners.org',1),(11,6,'http://yhpeaceacademy.org',1),(12,27,'http://fredericksburgfoodfund.org',1),(13,69,'http://scliteracyservices.org',1),(14,142,'http://wisconsintechnology.org',1),(15,11,'http://montanaadvocacyalliance.org',1),(16,120,'http://wisconsintrust.org',1),(17,56,'http://ohioadvocacy.org',1),(18,76,'http://communityfellowship.org',1);
+INSERT INTO `civicrm_website` (`id`, `contact_id`, `url`, `website_type_id`) VALUES (1,149,'http://unitedpoetryfellowship.org',1),(2,121,'http://communitylegal.org',1),(3,153,'http://beechsustainability.org',1),(4,113,'http://friendsservices.org',1),(5,28,'http://michigansports.org',1),(6,142,'http://statesinitiative.org',1),(7,191,'http://friendsfood.org',1),(8,104,'http://localnetwork.org',1),(9,190,'http://yukonfellowship.org',1),(10,22,'http://jacksonassociation.org',1),(11,97,'http://progressivepoetrypartnership.org',1),(12,71,'http://beechartsfund.org',1),(13,159,'http://unitedhealth.org',1),(14,31,'http://collegefund.org',1);
 /*!40000 ALTER TABLE `civicrm_website` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -1464,7 +1464,7 @@ UNLOCK TABLES;
 /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
 /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
 
--- Dump completed on 2019-11-29  8:55:52
+-- Dump completed on 2020-01-17  9:53:52
 -- +--------------------------------------------------------------------+
 -- | Copyright CiviCRM LLC. All rights reserved.                        |
 -- |                                                                    |
diff --git a/civicrm/templates/CRM/Activity/Form/Activity.tpl b/civicrm/templates/CRM/Activity/Form/Activity.tpl
index 5b2e22a499..a013a7cb74 100644
--- a/civicrm/templates/CRM/Activity/Form/Activity.tpl
+++ b/civicrm/templates/CRM/Activity/Form/Activity.tpl
@@ -134,13 +134,11 @@
   </tr>
   <tr class="crm-activity-form-block-details">
     <td class="label">{$form.details.label}</td>
-    {* activityTypeName means label here not name, but it should be name (dev/core#1116-fixme) *}
-    {if $activityTypeName eq "Print PDF Letter"}
+    {if $activityTypeNameAndLabel.machineName eq "Print PDF Letter"}
       <td class="view-value">
       {$form.details.html}
       </td>
-    {* activityTypeName means label here not name, but it should be name (dev/core#1116-fixme) *}
-    {elseif $activityTypeName eq "Inbound Email"}
+    {elseif $activityTypeNameAndLabel.machineName eq "Inbound Email"}
       <td class="view-value">
        {$form.details.html|crmStripAlternatives|nl2br}
       </td>
@@ -179,7 +177,6 @@
       {if $action eq 4}
         {include file="CRM/Custom/Page/CustomDataView.tpl"}
       {else}
-        <div id="customData"></div>
         {include file="CRM/common/customDataBlock.tpl"}
       {/if}
     </td>
diff --git a/civicrm/templates/CRM/Activity/Form/Task/PDF.tpl b/civicrm/templates/CRM/Activity/Form/Task/PDF.tpl
new file mode 100644
index 0000000000..b28c9ffac5
--- /dev/null
+++ b/civicrm/templates/CRM/Activity/Form/Task/PDF.tpl
@@ -0,0 +1,14 @@
+{*
+ +--------------------------------------------------------------------+
+ | Copyright CiviCRM LLC. All rights reserved.                        |
+ |                                                                    |
+ | This work is published under the GNU AGPLv3 license with some      |
+ | permitted exceptions and without any warranty. For full license    |
+ | and copyright information, see https://civicrm.org/licensing       |
+ +--------------------------------------------------------------------+
+*}
+<div class="crm-form-block crm-block crm-contact-task-pdf-form-block">
+  <div class="messages status no-popup">{include file="CRM/Activity/Form/Task.tpl"}</div>
+    {include file="CRM/Contact/Form/Task/PDFLetterCommon.tpl"}
+  <div class="crm-submit-buttons">{include file="CRM/common/formButtons.tpl" location="bottom"}</div>
+</div>
diff --git a/civicrm/templates/CRM/Admin/Form/Job.tpl b/civicrm/templates/CRM/Admin/Form/Job.tpl
index 7d9959c876..3c319aba56 100644
--- a/civicrm/templates/CRM/Admin/Form/Job.tpl
+++ b/civicrm/templates/CRM/Admin/Form/Job.tpl
@@ -86,7 +86,7 @@ CRM.$(function($) {
       </td>
     </tr>
     <tr class="crm-job-form-block-parameters">
-      <td class="label">{$form.parameters.label}<br />{docURL page="Managing Scheduled Jobs" resource="wiki"}</td>
+      <td class="label">{$form.parameters.label}<br />{docURL page="user/initial-set-up/scheduled-jobs/#parameters"}</td>
       <td>{$form.parameters.html}</td>
     </tr>
     <tr class="crm-job-form-block-scheduled-run-date">
diff --git a/civicrm/templates/CRM/Admin/Form/Preferences/Display.hlp b/civicrm/templates/CRM/Admin/Form/Preferences/Display.hlp
index 991ed6f470..84e57270ea 100644
--- a/civicrm/templates/CRM/Admin/Form/Preferences/Display.hlp
+++ b/civicrm/templates/CRM/Admin/Form/Preferences/Display.hlp
@@ -17,7 +17,7 @@
   <ul>
     <li>{ts}Select 'CKEditor' for the built-in WYSIWYG option. You can customize the toolbar buttons and other settings by clicking "Configure CKEditor."{/ts}</li>
     <li>{ts}Select 'Textarea' if you want users to type text and/or HTML code into plain text fields.{/ts}</li>
-    <li>{ts 1='target="_blank" href="https://civicrm.org/extensions/home?body_value=wysiwyg&field_extension_cms_tid=127"'}Other WYSIWYG editors are available for download from the <a %1>CiviCRM Extension Directory</a>.{/ts}</li>
+    <li>{ts 1='target="_blank" href="https://civicrm.org/extensions?body_value=wysiwyg&field_extension_cms_tid=127"'}Other WYSIWYG editors are available for download from the <a %1>CiviCRM Extension Directory</a>.{/ts}</li>
   </ul>
 {/htxt}
 
diff --git a/civicrm/templates/CRM/Admin/Form/Setting/Miscellaneous.tpl b/civicrm/templates/CRM/Admin/Form/Setting/Miscellaneous.tpl
index 79b845f983..fc86332955 100644
--- a/civicrm/templates/CRM/Admin/Form/Setting/Miscellaneous.tpl
+++ b/civicrm/templates/CRM/Admin/Form/Setting/Miscellaneous.tpl
@@ -80,7 +80,7 @@
     <h3>{ts}reCAPTCHA Keys{/ts}</h3>
 
     <div class="description">
-      {ts 1="https://www.google.com/recaptcha"}reCAPTCHA is a free service that helps prevent automated abuse of your site. To use reCAPTCHA on public-facing CiviCRM forms: sign up at <a href="%1" "target=_blank">Google's reCaptcha site</a>; enter the provided public and private reCAPTCHA keys here; then enable reCAPTCHA under Advanced Settings in any Profile.{/ts}
+      {ts 1='href="https://www.google.com/recaptcha" target="_blank"'}reCAPTCHA is a free service that helps prevent automated abuse of your site. To use reCAPTCHA on public-facing CiviCRM forms: sign up at <a %1>Google's reCaptcha site</a>; enter the provided public and private reCAPTCHA keys here; then enable reCAPTCHA under Advanced Settings in any Profile.{/ts}
     </div>
     <table class="form-layout">
       <tr class="crm-miscellaneous-form-block-recaptchaPublicKey">
@@ -97,7 +97,7 @@
           <span class="description">
             {ts}You can specify the reCAPTCHA theme options as comma separated data.(eg: theme:'blackglass', lang : 'fr' ).{/ts}
             <br />
-            {ts 1='href="https://developers.google.com/recaptcha/docs/display#config" target="_blank"'}Check the available options at <a %1>Customizing the Look and Feel of reCAPTCHA</a>.{/ts}
+            {ts 1='href="https://developers.google.com/recaptcha/docs/display#configuration" target="_blank"'}Check the available options at <a %1>Customizing the Look and Feel of reCAPTCHA</a>.{/ts}
           </span>
         </td>
       </tr>
diff --git a/civicrm/templates/CRM/Admin/Page/PaymentProcessor.hlp b/civicrm/templates/CRM/Admin/Page/PaymentProcessor.hlp
index 10d45936cd..96722905bd 100644
--- a/civicrm/templates/CRM/Admin/Page/PaymentProcessor.hlp
+++ b/civicrm/templates/CRM/Admin/Page/PaymentProcessor.hlp
@@ -17,7 +17,7 @@
   <li>{docURL page="Payment Processors" text="Processor comparison and setup guide" resource="wiki"}</li>
 </ul>
 <p>{ts}If you're not sure which processor to use - we recommend reviewing terms, limitations and coverage areas on each processor's website before proceeding.{/ts}</p>
-<p>{ts 1="https://civicrm.org/extensions/civicrm?cat=125"}If your desired processor is not in the list, check the <a href="%1">Extensions Directory</a> for more payment processors you can download. If you still can't find it, consider partnering with a developer and contributing a new extension.{/ts}</p>
+<p>{ts 1="https://civicrm.org/extensions?tid_4[]=125"}If your desired processor is not in the list, check the <a href="%1">Extensions Directory</a> for more payment processors you can download. If you still can't find it, consider partnering with a developer and contributing a new extension.{/ts}</p>
 {/htxt}
 
 {htxt id='AuthNet-live-user-name'}
diff --git a/civicrm/templates/CRM/Case/Form/CaseView.js b/civicrm/templates/CRM/Case/Form/CaseView.js
index 06fdec4b00..192a52b867 100644
--- a/civicrm/templates/CRM/Case/Form/CaseView.js
+++ b/civicrm/templates/CRM/Case/Form/CaseView.js
@@ -73,29 +73,12 @@
             var val = $(this).val();
             $contactField.val('').change().prop('disabled', !val);
             if (val) {
-              var
-                pieces = val.split('_'),
-                rType = pieces[0],
-                target = pieces[2], // b or a
-                contact_type = CRM.vars.relationshipTypes[rType]['contact_type_' + target],
-                contact_sub_type = CRM.vars.relationshipTypes[rType]['contact_sub_type_' + target],
-                api = {params: {}};
-              if (contact_type) {
-                api.params.contact_type = contact_type;
-              }
-              if (contact_sub_type) {
-                api.params.contact_sub_type = contact_sub_type;
-              }
-              $contactField
-                .data('api-params', api)
-                .data('user-filter', {})
-                .attr('placeholder', CRM.vars.relationshipTypes[rType]['placeholder_' + target])
-                .change();
+              prepareRelationshipField(val, $contactField);
             }
           })
           .val('')
           .change();
-        $contactField.val('').crmEntityRef({create: true, api: {params: {contact_type: 'Individual'}}});
+        $contactField.val('').crmEntityRef();
       },
       post: function(data) {
         var contactID = $('[name=add_role_contact_id]', this).val(),
@@ -114,11 +97,7 @@
     },
     '#editCaseRoleDialog': {
       pre: function(data) {
-        var params = {create: true};
-        if (data.contact_type) {
-          params.api = {params: {contact_type: data.contact_type}};
-        }
-        $('[name=edit_role_contact_id]', this).val('').crmEntityRef(params);
+        prepareRelationshipField(data.rel_type, $('[name=edit_role_contact_id]', this));
       },
       post: function(data) {
         data.rel_contact = $('[name=edit_role_contact_id]', this).val();
@@ -164,6 +143,31 @@
   },
     detached = {};
 
+  function prepareRelationshipField(relType, $contactField) {
+    var
+      pieces = relType.split('_'),
+      rType = pieces[0],
+      target = pieces[2], // b or a
+      relationshipType = CRM.vars.relationshipTypes[rType],
+      api = {params: {}};
+    if (relationshipType['contact_type_' + target]) {
+      api.params.contact_type = relationshipType['contact_type_' + target];
+    }
+    if (relationshipType['contact_sub_type_' + target]) {
+      api.params.contact_sub_type = relationshipType['contact_sub_type_' + target];
+    }
+    if (relationshipType['group_' + target]) {
+      api.params.group = {IN: relationshipType['group_' + target]};
+    }
+    $contactField
+      .data('create-links', !relationshipType['group_' + target])
+      .data('api-params', api)
+      .data('user-filter', {})
+      .attr('placeholder', relationshipType['placeholder_' + target])
+      .change()
+      .crmEntityRef();
+  }
+
   function detachMiniForms() {
     detached = {};
     $.each(miniForms, function(selector) {
diff --git a/civicrm/templates/CRM/Contact/Form/ShareAddress.tpl b/civicrm/templates/CRM/Contact/Form/ShareAddress.tpl
index 2d253764ed..e8d780d8df 100644
--- a/civicrm/templates/CRM/Contact/Form/ShareAddress.tpl
+++ b/civicrm/templates/CRM/Contact/Form/ShareAddress.tpl
@@ -14,10 +14,10 @@
     <div id="shared-address-{$blockId}" class="form-layout-compressed">
       {$form.address.$blockId.master_contact_id.label}
       {$form.address.$blockId.master_contact_id.html}
-      <div class="shared-address-update-employer" style="display: none;">
-        {$form.address.$blockId.update_current_employer.html}
-        {$form.address.$blockId.update_current_employer.label}
-        {help id="id-sharedAddress-updateRelationships" file="CRM/Contact/Form/Contact"}
+      <div class="shared-address-add-relationship" style="display: none;">
+        {$form.address.$blockId.add_relationship.html}
+        {$form.address.$blockId.add_relationship.label}
+        <span class="employer">{help id="id-sharedAddress-updateRelationships" file="CRM/Contact/Form/Contact"}</span>
       </div>
       <div class="shared-address-list">
         {if !empty($sharedAddresses.$blockId.shared_address_display)}
@@ -39,7 +39,10 @@
   CRM.$(function($) {
     var blockNo = {/literal}{$blockId}{literal},
       contactType = {/literal}{$contactType|@json_encode}{literal},
-      $employerSection = $('#shared-address-' + blockNo + ' .shared-address-update-employer'),
+      $addRelationshipSection = $('#shared-address-' + blockNo + ' .shared-address-add-relationship'),
+      $employerSection = $('#shared-address-' + blockNo + ' .shared-address-add-relationship .employer'),
+      $employerLabel = $('#shared-address-' + blockNo + ' .shared-address-add-relationship label .addrel-employer'),
+      $householdLabel = $('#shared-address-' + blockNo + ' .shared-address-add-relationship label .addrel-household'),
       $contentArea = $('#shared-address-' + blockNo + ' .shared-address-list'),
       $masterElement = $('input[name="address[' + blockNo + '][master_id]"]');
 
@@ -68,12 +71,21 @@
 
       if (!sharedContactId || isNaN(sharedContactId)) {
         $employerSection.hide();
+        $addRelationshipSection.hide();
+        $employerLabel.hide();
+        $householdLabel.hide();
         return;
       }
 
       var otherContactType = $el.select2('data').extra.contact_type;
+      $addRelationshipSection.toggle(contactType === 'Individual' && (otherContactType === 'Organization' || otherContactType === 'Household'));
       $employerSection.toggle(contactType === 'Individual' && otherContactType === 'Organization');
 
+      // use the appropriate label
+      $employerLabel.toggle(contactType === 'Individual' && otherContactType === 'Organization');
+      $householdLabel.toggle(contactType === 'Individual' && otherContactType === 'Household');
+
+
       $.post(CRM.url('civicrm/ajax/inline'), {
           'contact_id': sharedContactId,
           'type': 'method',
diff --git a/civicrm/templates/CRM/Contribute/Page/Widget.tpl b/civicrm/templates/CRM/Contribute/Page/Widget.tpl
index 1074e2e1a7..125d07d340 100644
--- a/civicrm/templates/CRM/Contribute/Page/Widget.tpl
+++ b/civicrm/templates/CRM/Contribute/Page/Widget.tpl
@@ -211,4 +211,4 @@ function onReady( ) {
 }
 </script>
 {/literal}
-<script type="text/javascript" src="{$config->userFrameworkResourceURL}/extern/widget.php?cpageId={$cpageId}&widgetId={$widget_id}&format=3"></script>
+<script type="text/javascript" src="{$widgetExternUrl}"></script>
diff --git a/civicrm/templates/CRM/Event/Form/ManageEvent/Location.hlp b/civicrm/templates/CRM/Event/Form/ManageEvent/Location.hlp
new file mode 100644
index 0000000000..4bae73ef50
--- /dev/null
+++ b/civicrm/templates/CRM/Event/Form/ManageEvent/Location.hlp
@@ -0,0 +1,24 @@
+{*
+ +--------------------------------------------------------------------+
+ | Copyright CiviCRM LLC. All rights reserved.                        |
+ |                                                                    |
+ | This work is published under the GNU AGPLv3 license with some      |
+ | permitted exceptions and without any warranty. For full license    |
+ | and copyright information, see https://civicrm.org/licensing       |
+ +--------------------------------------------------------------------+
+*}
+{htxt id="id-is_show_location-title"}
+  {ts}Show Location{/ts}
+{/htxt}
+{htxt id="id-is_show_location"}
+  {ts}If this option is selected, the location will be shown in various places including:
+    <ul>
+      <li>Event information page</li>
+      <li>Event registration confirmation emails</li>
+      <li>HTML, RSS and ICALENDAR feeds of event information</li>
+    </ul>
+  Normally location information is made publicly available.  By deselecting this box, the location is only available to event administrators.{/ts}
+  <br />
+  {ts}Note that if 'Show Location' is not set a map will not be shown, regardless of the setting of 'Include Map to Event Location'.{/ts}
+{/htxt}
+
diff --git a/civicrm/templates/CRM/Event/Form/ManageEvent/Location.tpl b/civicrm/templates/CRM/Event/Form/ManageEvent/Location.tpl
index 20733758f6..72f5d7bdf8 100644
--- a/civicrm/templates/CRM/Event/Form/ManageEvent/Location.tpl
+++ b/civicrm/templates/CRM/Event/Form/ManageEvent/Location.tpl
@@ -40,6 +40,14 @@
         <td id="locUsedMsg" colspan="3">
         </td>
       </tr>
+      <tr id="is_show_location" class="crm-event-manage-location-form-block-is_show_location">
+        <td class="labels">
+          {$form.is_show_location.label} {help id="id-is_show_location"}
+        </td>
+        <td class="values">
+          {$form.is_show_location.html}
+        </td>
+      </tr>
     </table>
   {/if}
 
diff --git a/civicrm/templates/CRM/Event/Form/Participant.tpl b/civicrm/templates/CRM/Event/Form/Participant.tpl
index 19edcb4774..9cded07e8e 100644
--- a/civicrm/templates/CRM/Event/Form/Participant.tpl
+++ b/civicrm/templates/CRM/Event/Form/Participant.tpl
@@ -372,9 +372,7 @@
           {if $urlPathVar}
           dataUrl += '&' + '{$urlPathVar}';
           {/if}
-          {if $isBackOffice}
-            dataUrl += '&' + 'is_backoffice=1';
-          {/if}
+          dataUrl += '&' + 'is_backoffice=1';
 
           {literal}
           var eventId = $('[name=event_id], #event_id', $form).val();
diff --git a/civicrm/templates/CRM/Export/Form/Map.tpl b/civicrm/templates/CRM/Export/Form/Map.tpl
index f3964cfb22..dda47d32d2 100644
--- a/civicrm/templates/CRM/Export/Form/Map.tpl
+++ b/civicrm/templates/CRM/Export/Form/Map.tpl
@@ -8,14 +8,11 @@
  +--------------------------------------------------------------------+
 *}
 <div class="help">
-<p>{ts}Select the fields to be exported using the table below. For each field, first select the contact type that the field belongs to (e.g. select <strong>Individuals</strong> if you are exporting <strong>Last Name</strong>). Then select the actual field to be exported from the drop-down menu which will appear next to the contact type. Your export can include multiple types of contact records, and non-applicable fields will be empty (e.g. <strong>Last Name</strong> will not be populated for an Organization record).{/ts}</p>
-<p>{ts}Click <strong>Select more fields...</strong> if you want to export more fields than are initially displayed in the table.{/ts}</p>
+<p>{ts}Select the fields to be exported using the table below. You'll see a live preview of the first few records for each field.{/ts}</p>
 
-{if $savedMapping}
-<p>{ts}Click 'Load Saved Field Mapping' to retrieve an export setup that you have previously saved.{/ts}</p>
-{/if}
+<p>{ts}Your export can include multiple types of contacts, and non-applicable fields will be empty (e.g. <strong>Last Name</strong> will not be populated for an Organization record).{/ts}</p>
 
-<p>{ts}If you want to use the same export setup in the future, check 'Save this field mapping' at the bottom of the page before continuing. You will then be able to reload this setup with a single click.{/ts}</p>
+<p>{ts}If you want to use the same export setup in the future, check 'Save Fields' at the bottom of the page before continuing. You will then be able to reload this setup with a single click.{/ts}</p>
 </div>
 
 <div class="crm-block crm-form-block crm-export-map-form-block">
@@ -23,11 +20,12 @@
 
  {* WizardHeader.tpl provides visual display of steps thru the wizard as well as title for current step *}
  {include file="CRM/common/WizardHeader.tpl"}
-<div class="crm-submit-buttons">{include file="CRM/common/formButtons.tpl" location="top"}</div>
+  <div class="crm-submit-buttons">{include file="CRM/common/formButtons.tpl" location="top"}</div>
 
-{* Table for mapping data to CRM fields *}
-{include file="CRM/Export/Form/table.tpl"}
+  <div ng-app="exportui">
+    <div class="crm-export-field-selector-outer" ng-controller="ExportUiCtrl" ng-include="'~/exportui/export.html'"></div>
+  </div>
 
-<div class="crm-submit-buttons">{include file="CRM/common/formButtons.tpl" location="bottom"}</div>
-{$initHideBoxes}
+  <div class="crm-submit-buttons">{include file="CRM/common/formButtons.tpl" location="bottom"}</div>
+  {$initHideBoxes}
 </div>
diff --git a/civicrm/templates/CRM/Export/Form/table.tpl b/civicrm/templates/CRM/Export/Form/table.tpl
deleted file mode 100644
index dfddabfcba..0000000000
--- a/civicrm/templates/CRM/Export/Form/table.tpl
+++ /dev/null
@@ -1,76 +0,0 @@
-{*
- +--------------------------------------------------------------------+
- | Copyright CiviCRM LLC. All rights reserved.                        |
- |                                                                    |
- | This work is published under the GNU AGPLv3 license with some      |
- | permitted exceptions and without any warranty. For full license    |
- | and copyright information, see https://civicrm.org/licensing       |
- +--------------------------------------------------------------------+
-*}
-{* Export Wizard - Data Mapping table used by MapFields.tpl and Preview.tpl *}
- <div id="map-field">
-    {strip}
-    <table>
-        {if $loadedMapping}
-            <tr class="columnheader-dark"><th colspan="4">{ts 1=$savedName}Using Field Mapping: %1{/ts}</td></tr>
-        {/if}
-        <tr class="columnheader">
-            <th>{ts}Fields to Include in Export File{/ts}</th>
-        </tr>
-        {*section name=cols loop=$columnCount*}
-        {section name=cols loop=$columnCount.1}
-            {assign var="i" value=$smarty.section.cols.index}
-            <tr>
-                <td class="form-item even-row">
-                   {$form.mapper.1[$i].html}
-                </td>
-            </tr>
-        {/section}
-
-        <tr>
-           <td class="form-item even-row underline-effect">
-               {$form.addMore.1.html}
-           </td>
-        </tr>
-    </table>
-    {/strip}
-
-
-    <div>
-  {if $loadedMapping}
-            <span>{$form.updateMapping.html}{$form.updateMapping.label}&nbsp;&nbsp;&nbsp;</span>
-  {/if}
-  <span>{$form.saveMapping.html}{$form.saveMapping.label}</span>
-    <div id="saveDetails" class="form-item">
-      <table class="form-layout-compressed">
-         <tr><td class="label">{$form.saveMappingName.label}</td><td>{$form.saveMappingName.html}</td></tr>
-         <tr><td class="label">{$form.saveMappingDesc.label}</td><td>{$form.saveMappingDesc.html}</td></tr>
-      </table>
-    </div>
-
-
-  <script type="text/javascript">
-         {if $mappingDetailsError }
-            cj('#saveDetails').show();
-         {else}
-          cj('#saveDetails').hide();
-         {/if}
-
-       {literal}
-        function showSaveDetails(chkbox) {
-         if (chkbox.checked) {
-          document.getElementById("saveDetails").style.display = "block";
-          document.getElementById("saveMappingName").disabled = false;
-          document.getElementById("saveMappingDesc").disabled = false;
-         } else {
-          document.getElementById("saveDetails").style.display = "none";
-          document.getElementById("saveMappingName").disabled = true;
-          document.getElementById("saveMappingDesc").disabled = true;
-         }
-         }
-         {/literal}
-    cj('Select[id^="mapper[1]"][id$="[1]"]').addClass('huge');
-  </script>
-    </div>
-
- </div>
diff --git a/civicrm/templates/CRM/Financial/Form/FinancialAccount.hlp b/civicrm/templates/CRM/Financial/Form/FinancialAccount.hlp
index 29c0d28a7c..81ce831f2a 100644
--- a/civicrm/templates/CRM/Financial/Form/FinancialAccount.hlp
+++ b/civicrm/templates/CRM/Financial/Form/FinancialAccount.hlp
@@ -11,7 +11,7 @@
   {ts}Financial Account Owner{/ts}
 {/htxt}
 {htxt id="id-financial-owner"}
-<p>{ts}Normally the owner of a financial account is the organization implementing CiviCRM so there is no need to change this. Some organizations that maintain accounts for groups, chapters, regions, constiuency associations or other parts of the main CiviCRM organization may need to change the owner to one of these sub-entities or sibling entities.{/ts}</p>
+<p>{ts}Normally the owner of a financial account is the organization implementing CiviCRM so there is no need to change this. Some organizations that maintain accounts for groups, chapters, regions, constituency associations or other parts of the main CiviCRM organization may need to change the owner to one of these sub-entities or sibling entities.{/ts}</p>
 {/htxt}
 
 {htxt id="id-account-type-code-title"}
diff --git a/civicrm/templates/CRM/Friend/Form/Friend.tpl b/civicrm/templates/CRM/Friend/Form/Friend.tpl
index 549f2537db..8d79bb433b 100644
--- a/civicrm/templates/CRM/Friend/Form/Friend.tpl
+++ b/civicrm/templates/CRM/Friend/Form/Friend.tpl
@@ -22,7 +22,7 @@
     {assign var=pageType value="Pledge Information page"}
     {ts}Tell a Friend gives registering pledge signers an easy way to spread the word about this pledge. The registration thank-you page will include a link to a form where they can enter their friends' email addresses, along with a personalized message. CiviCRM will record these solicitation activities, and will add the friends to your database.{/ts}
   {/if}
-  {ts}If sharing through social media is enabled, links allowing people to share with their social network will also be included on the Tell a Friend form (e.g. Facebook "Like", Google+, and Twitter). You can turn social media sharing on and off from the Settings tab.{/ts}
+  {ts}If sharing through social media is enabled, links allowing people to share with their social network will also be included on the Tell a Friend form (e.g. Facebook "Like" and Twitter). You can turn social media sharing on and off from the Settings tab.{/ts}
 </div>
    <div class="crm-submit-buttons">{include file="CRM/common/formButtons.tpl" location="top"}</div>
     <table class="form-layout">
diff --git a/civicrm/templates/CRM/Mailing/Form/Subscribe.tpl b/civicrm/templates/CRM/Mailing/Form/Subscribe.tpl
index 2bec30d8d4..ac2669f54b 100644
--- a/civicrm/templates/CRM/Mailing/Form/Subscribe.tpl
+++ b/civicrm/templates/CRM/Mailing/Form/Subscribe.tpl
@@ -32,7 +32,7 @@
                 {assign var=cbName value=$row.checkbox}
                 <td class="crm-mailing-subscribe-form-block-{$cbName}">{$form.$cbName.html}</td>
                 <td class="crm-mailing-subscribe-form-block-title"><label for="{$cbName}"><strong>{$row.title}</strong></label></td>
-                <td class="crm-mailing-subscribe-form-block-description">&nbsp;&nbsp;{$row.description}&nbsp;</td>
+                <td class="crm-mailing-subscribe-form-block-description">{$row.description}</td>
             </tr>
             {/foreach}
             </table>
diff --git a/civicrm/templates/CRM/Member/Form/Membership.tpl b/civicrm/templates/CRM/Member/Form/Membership.tpl
index 8dd6f42ab5..58fd9337a6 100644
--- a/civicrm/templates/CRM/Member/Form/Membership.tpl
+++ b/civicrm/templates/CRM/Member/Form/Membership.tpl
@@ -11,7 +11,7 @@
 {if $cancelAutoRenew}
   <div class="messages status no-popup">
     <div class="icon inform-icon"></div>
-    <p>{ts 1=$cancelAutoRenew}This membership is set to renew automatically {if $endDate}on {$endDate|crmDate}{/if}. You will need to cancel the auto-renew option if you want to modify the Membership Type or Membership Status. <a href="%1">Click here</a> if you want to cancel the automatic renewal option.{/ts}</p>
+    <p>{ts 1=$cancelAutoRenew}This membership is set to renew automatically {if $endDate}on {$endDate|crmDate}{/if}. You will need to cancel the auto-renew option if you want to modify the Membership Type or Membership Status: <a href="%1">Cancel auto-renew</a>{/ts}</p>
   </div>
 {/if}
 <div class="spacer"></div>
@@ -90,7 +90,7 @@
         <tr id="maxRelated" class="crm-membership-form-block-max_related">
           <td class="label">{$form.max_related.label}</td>
           <td>{$form.max_related.html}<br />
-            <span class="description">{ts}Maximum number of related memberships (leave blank for unlimited).{/ts}</span>
+            <span class="description">{ts}Maximum number of related memberships (leave blank for unlimited).{/ts} <span id="eligibleRelated"></span></span>
           </td>
         </tr>
         {if $action eq 1}
@@ -163,15 +163,25 @@
         {include file="CRM/Member/Form/MembershipCommon.tpl"}
         {if $emailExists and $isEmailEnabledForSite}
           <tr id="send-receipt" class="crm-membership-form-block-send_receipt">
-            <td class="label">{$form.send_receipt.label}</td><td>{$form.send_receipt.html}<br />
-            <span class="description">{ts 1=$emailExists}Automatically email a membership confirmation and receipt to %1? OR if the payment is from a different contact, this email will only go to them.{/ts}</span></td>
-            <span class="auto-renew-text">{ts}For auto-renewing memberships the emails are sent when each payment is received{/ts}</span>
+            <td class="label">{$form.send_receipt.label}</td>
+            <td>
+              {$form.send_receipt.html}<br />
+              <span class="description">
+                {ts 1=$emailExists}Automatically email a membership confirmation and receipt to %1? OR if the payment is from a different contact, this email will only go to them.{/ts}
+                <span class="auto-renew-text">{ts}For auto-renewing memberships the emails are sent when each payment is received{/ts}</span>
+              </span>
+            </td>
           </tr>
-          {elseif $context eq 'standalone' and $isEmailEnabledForSite}
+        {elseif $context eq 'standalone' and $isEmailEnabledForSite}
           <tr id="email-receipt" style="display:none;">
-            <td class="label">{$form.send_receipt.label}</td><td>{$form.send_receipt.html}<br />
-            <span class="description">{ts}Automatically email a membership confirmation and receipt to {/ts}<span id="email-address"></span>? {ts}OR if the payment is from a different contact, this email will only go to them.{/ts}</span></td>
-            <span class="auto-renew-text">{ts}For auto-renewing memberships the emails are sent when each payment is received{/ts}</span>
+            <td class="label">{$form.send_receipt.label}</td>
+            <td>
+              {$form.send_receipt.html}<br />
+              <span class="description">
+                {ts}Automatically email a membership confirmation and receipt to {/ts}<span id="email-address"></span>? {ts}OR if the payment is from a different contact, this email will only go to them.{/ts}
+                <span class="auto-renew-text">{ts}For auto-renewing memberships the emails are sent when each payment is received{/ts}</span>
+              </span>
+            </td>
           </tr>
         {/if}
         <tr id="fromEmail" style="display: none" class="crm-contactEmail-form-block-fromEmailAddress crm-email-element">
@@ -654,7 +664,7 @@
                 relatable = '{/literal}{ts escape='js' 1='%1'}%1 contacts are currently eligible to inherit this relationship.{/ts}{literal}';
                 relatable = ts(relatable, {1: result});
               }
-              cj('#max_related').siblings('.description').append(' ' + relatable);
+              cj('#eligibleRelated').text(relatable);
             }
           });
         }
diff --git a/civicrm/templates/CRM/Member/Form/MembershipView.tpl b/civicrm/templates/CRM/Member/Form/MembershipView.tpl
index 0fcbe4cc33..546c295236 100644
--- a/civicrm/templates/CRM/Member/Form/MembershipView.tpl
+++ b/civicrm/templates/CRM/Member/Form/MembershipView.tpl
@@ -44,7 +44,7 @@
         {if $has_related}
             <tr><td class="label">{ts}Max related{/ts}</td><td>{$max_related}</td></tr>
         {/if}
-        <tr><td class="label">{ts}Status{/ts}</td><td>{$status}</td></tr>
+        <tr><td class="label">{ts}Status{/ts}</td><td>{$status} {if $member_is_override}({ts}Overridden{/ts}){/if}</td></tr>
         <tr><td class="label">{ts}Source{/ts}</td><td>{$source}</td></tr>
   {if $campaign}<tr><td class="label">{ts}Campaign{/ts}</td><td>{$campaign}</td></tr>{/if}
         <tr><td class="label">{ts}Member Since{/ts}</td><td>{$join_date|crmDate}</td></tr>
diff --git a/civicrm/templates/CRM/common/SocialNetwork.tpl b/civicrm/templates/CRM/common/SocialNetwork.tpl
index fb2b2d3c21..a5b786b173 100644
--- a/civicrm/templates/CRM/common/SocialNetwork.tpl
+++ b/civicrm/templates/CRM/common/SocialNetwork.tpl
@@ -26,7 +26,6 @@
                 <img title="Facebook Like Button" src="{$config->userFrameworkResourceURL|replace:'https://':'http://'}/i/fblike.png" alt="Facebook Button" />
             </a>
         {else}
-            <script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script>
             {*use advanced buttons for pages*}
             <div class="label">
                 <iframe allowtransparency="true" frameborder="0" scrolling="no"
@@ -34,9 +33,6 @@
                 style="width:100px; height:20px;">
                 </iframe>
             </div>
-            <div class="label">
-                <g:plusone href={$url}></g:plusone>
-            </div>
             <div class="label" style="width:300px;">
                 <iframe src="https://www.facebook.com/plugins/like.php?app_id=240719639306341&amp;href={$url|escape:'url'}&amp;send=false&amp;layout=standard&amp;show_faces=false&amp;action=like&amp;colorscheme=light" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:300px; height:30px;" allowTransparency="true">
                 </iframe>
diff --git a/civicrm/templates/CRM/common/civicrm.settings.php.template b/civicrm/templates/CRM/common/civicrm.settings.php.template
index 4d2683f300..65bbd8f920 100644
--- a/civicrm/templates/CRM/common/civicrm.settings.php.template
+++ b/civicrm/templates/CRM/common/civicrm.settings.php.template
@@ -505,6 +505,9 @@ if (!defined('CIVICRM_CLEANURL')) {
   elseif ( function_exists('config_get') && config_get('system.core', 'clean_url') != 0) {
     define('CIVICRM_CLEANURL', 1 );
   }
+  elseif( function_exists('get_option') && get_option('permalink_structure') != '' ) {
+    define('CIVICRM_CLEANURL', 1 );
+  }
   else {
     define('CIVICRM_CLEANURL', 0);
   }
diff --git a/civicrm/templates/CRM/common/l10n.js.tpl b/civicrm/templates/CRM/common/l10n.js.tpl
index 38001a762f..74777751ae 100644
--- a/civicrm/templates/CRM/common/l10n.js.tpl
+++ b/civicrm/templates/CRM/common/l10n.js.tpl
@@ -13,6 +13,7 @@
   // Config settings
   CRM.config.userFramework = {$config->userFramework|@json_encode};
   CRM.config.resourceBase = {$config->userFrameworkResourceURL|@json_encode};
+  CRM.config.packagesBase = {capture assign=packagesBase}{crmResURL expr='[civicrm.packages]/.'}{/capture}{$packagesBase|@json_encode};
   CRM.config.lcMessages = {$config->lcMessages|@json_encode};
   CRM.config.locale = {$locale|@json_encode};
   CRM.config.cid = {$cid|@json_encode};
diff --git a/civicrm/vendor/autoload.php b/civicrm/vendor/autoload.php
index c49a67619c..708749ae27 100644
--- a/civicrm/vendor/autoload.php
+++ b/civicrm/vendor/autoload.php
@@ -4,4 +4,4 @@
 
 require_once __DIR__ . '/composer/autoload_real.php';
 
-return ComposerAutoloaderInit4ee0d0ceec53632120da6413d96e8484::getLoader();
+return ComposerAutoloaderInite6f45a43176252aa6a8458e979f01dd8::getLoader();
diff --git a/civicrm/vendor/civicrm/civicrm-setup/README.md b/civicrm/vendor/civicrm/civicrm-setup/README.md
index 936926015e..a1a31450cc 100644
--- a/civicrm/vendor/civicrm/civicrm-setup/README.md
+++ b/civicrm/vendor/civicrm/civicrm-setup/README.md
@@ -27,7 +27,7 @@ Key features:
 
 * The library can be used by other projects -- such as `cv`, `civicrm-drupal`, `civicrm-wordpress` -- to provide an installation process.
 * It is a *leap*. It can coexist with the old installer, and it lives in a separate project/repo which can be deployed optionally.
-    * To enable it, add the codebase to your civicrm source tree. (This can be done manually - or as part of a build process.)
+    * _Example_: The `civicrm-wordpress` integration is phasing-in support for the new installer. By default, it uses the old installer. If you create a file `civicrm/.use-civicrm-setup`, then it will use the new installer.
 * It has minimal external dependencies. (The codebase for CiviCRM and its dependencies must be available -- but nothing else is needed.)
 
 ## Documentation
diff --git a/civicrm/vendor/civicrm/civicrm-setup/plugins/blocks/header.tpl.php b/civicrm/vendor/civicrm/civicrm-setup/plugins/blocks/header.tpl.php
index fe27df7dcb..65bf8f1625 100644
--- a/civicrm/vendor/civicrm/civicrm-setup/plugins/blocks/header.tpl.php
+++ b/civicrm/vendor/civicrm/civicrm-setup/plugins/blocks/header.tpl.php
@@ -1,9 +1,13 @@
 <?php if (!defined('CIVI_SETUP')): exit("Installation plugins must only be loaded by the installer.\n"); endif; ?>
-<div class="civicrm-logo"><strong><?php echo ts('Version %1', array(1 => "{$civicrm_version} {$model->cms}")); ?></strong><br/>
-    <span><img src=<?php echo $installURLPath . "block_small.png"?> /></span>
-  </div>
-
-<h1><?php echo ts("CiviCRM Installer"); ?></h1>
+<div class="civicrm-setup-header">
+	<div class="title">
+		<h1><?php echo ts("Thanks for choosing CiviCRM. You're nearly there!"); ?><hr></h1>
+	</div>
+	<div class="civicrm-logo"><strong><?php echo ts('Version %1', array(1 => "{$civicrm_version} {$model->cms}")); ?></strong>
+	    <span><img src=<?php echo $installURLPath . "updated-logo.jpg"?> /></span>
+	 </div>
+</div>
+<h2><?php echo ts("CiviCRM Installer"); ?></h2>
 
 <noscript>
 <p class="error"><?php echo ts("Error: Javascipt appears to be disabled. The CiviCRM web-based installer requires Javascript.");?></p>
diff --git a/civicrm/vendor/civicrm/civicrm-setup/plugins/checkRequirements/CheckDbWellFormed.civi-setup.php b/civicrm/vendor/civicrm/civicrm-setup/plugins/checkRequirements/CheckDbWellFormed.civi-setup.php
index 46e00deded..d48925c3de 100644
--- a/civicrm/vendor/civicrm/civicrm-setup/plugins/checkRequirements/CheckDbWellFormed.civi-setup.php
+++ b/civicrm/vendor/civicrm/civicrm-setup/plugins/checkRequirements/CheckDbWellFormed.civi-setup.php
@@ -32,7 +32,10 @@ if (!defined('CIVI_SETUP')) {
       }
 
       foreach ($db as $k => $v) {
-        if (!is_scalar($v)) {
+        if ($k === 'password' && empty($v)) {
+          $e->addWarning('database', "$dbField.$k", "The property \"$dbField.$k\" is blank. This may be correct in some controlled environments; it could also be a mistake or a symptom of an insecure configuration.");
+        }
+        elseif (!is_scalar($v)) {
           $e->addError('database', "$dbField.$k", "The property \"$dbField.$k\" is not well-formed.");
           $errors++;
         }
diff --git a/civicrm/vendor/civicrm/civicrm-setup/plugins/checkRequirements/CoreRequirementsAdapter.civi-setup.php b/civicrm/vendor/civicrm/civicrm-setup/plugins/checkRequirements/CoreRequirementsAdapter.civi-setup.php
index 5e915ffefd..f0d15507c3 100644
--- a/civicrm/vendor/civicrm/civicrm-setup/plugins/checkRequirements/CoreRequirementsAdapter.civi-setup.php
+++ b/civicrm/vendor/civicrm/civicrm-setup/plugins/checkRequirements/CoreRequirementsAdapter.civi-setup.php
@@ -18,7 +18,7 @@ if (!defined('CIVI_SETUP')) {
     $r = new \Civi\Install\Requirements();
 
     \Civi\Setup::log()->info(sprintf('[%s] Run Requirements::checkSystem()', basename(__FILE__)));
-    $systemMsgs = $r->checkSystem(array(/* we do this elsewhere */));
+    $systemMsgs = $r->checkSystem(array(/* no $file_paths to pass - we check those elsewhere */));
     _corereqadapter_addMessages($e, 'system', $systemMsgs);
 
     \Civi\Setup::log()->info(sprintf('[%s] Run Requirements::checkDatabase()', basename(__FILE__)));
diff --git a/civicrm/vendor/civicrm/civicrm-setup/plugins/common/LogEvents.civi-setup.php b/civicrm/vendor/civicrm/civicrm-setup/plugins/common/LogEvents.civi-setup.php
index ad2c393117..fe23cd6b64 100644
--- a/civicrm/vendor/civicrm/civicrm-setup/plugins/common/LogEvents.civi-setup.php
+++ b/civicrm/vendor/civicrm/civicrm-setup/plugins/common/LogEvents.civi-setup.php
@@ -8,7 +8,7 @@
 if (!defined('CIVI_SETUP')) {
   exit("Installation plugins must only be loaded by the installer.\n");
 }
-use \Civi\Setup;
+use Civi\Setup;
 
 $setup = Setup::instance();
 
diff --git a/civicrm/vendor/civicrm/civicrm-setup/plugins/init/Backdrop.civi-setup.php b/civicrm/vendor/civicrm/civicrm-setup/plugins/init/Backdrop.civi-setup.php
index df3a74bdd8..57e867f90c 100644
--- a/civicrm/vendor/civicrm/civicrm-setup/plugins/init/Backdrop.civi-setup.php
+++ b/civicrm/vendor/civicrm/civicrm-setup/plugins/init/Backdrop.civi-setup.php
@@ -33,7 +33,7 @@ if (!defined('CIVI_SETUP')) {
     $cmsPath = $object->cmsRootPath();
 
     // Compute settingsPath.
-    $model->settingsPath = $cmsPath . DIRECTORY_SEPARATOR .     'civicrm.settings.php';
+    $model->settingsPath = $cmsPath . DIRECTORY_SEPARATOR . 'civicrm.settings.php';
 
     $model->templateCompilePath = 'FIXME';
 
diff --git a/civicrm/vendor/civicrm/civicrm-setup/plugins/init/Drupal.civi-setup.php b/civicrm/vendor/civicrm/civicrm-setup/plugins/init/Drupal.civi-setup.php
index 8f51f99032..75e7c5a3d4 100644
--- a/civicrm/vendor/civicrm/civicrm-setup/plugins/init/Drupal.civi-setup.php
+++ b/civicrm/vendor/civicrm/civicrm-setup/plugins/init/Drupal.civi-setup.php
@@ -12,7 +12,7 @@ if (!defined('CIVI_SETUP')) {
 \Civi\Setup::dispatcher()
   ->addListener('civi.setup.checkAuthorized', function (\Civi\Setup\Event\CheckAuthorizedEvent $e) {
     $model = $e->getModel();
-    if ($model->cms !== 'Drupal') {
+    if ($model->cms !== 'Drupal' || !function_exists('user_access')) {
       return;
     }
 
@@ -31,7 +31,7 @@ if (!defined('CIVI_SETUP')) {
     // Compute settingsPath.
     $drupalSystem = new CRM_Utils_System_Drupal();
     $cmsPath = $drupalSystem->cmsRootPath();
-    $siteDir = _drupal_civisetup_getSiteDir($cmsPath, $_SERVER['SCRIPT_FILENAME']);
+    $siteDir = \Civi\Setup\DrupalUtil::getDrupalSiteDir($cmsPath);
     $model->settingsPath = implode(DIRECTORY_SEPARATOR,
       [$cmsPath, 'sites', $siteDir, 'civicrm.settings.php']);
 
@@ -89,46 +89,3 @@ function _drupal_civisetup_getPrivateFiles() {
 
   return $filePrivatePath;
 }
-
-/**
- * @param $cmsPath
- * @param $str
- *
- * @return string
- */
-function _drupal_civisetup_getSiteDir($cmsPath, $str) {
-  static $siteDir = '';
-
-  if ($siteDir) {
-    return $siteDir;
-  }
-
-  $sites = CIVICRM_DIRECTORY_SEPARATOR . 'sites' . CIVICRM_DIRECTORY_SEPARATOR;
-  $modules = CIVICRM_DIRECTORY_SEPARATOR . 'modules' . CIVICRM_DIRECTORY_SEPARATOR;
-  preg_match("/" . preg_quote($sites, CIVICRM_DIRECTORY_SEPARATOR) .
-    "([\-a-zA-Z0-9_.]+)" .
-    preg_quote($modules, CIVICRM_DIRECTORY_SEPARATOR) . "/",
-    $_SERVER['SCRIPT_FILENAME'], $matches
-  );
-  $siteDir = isset($matches[1]) ? $matches[1] : 'default';
-
-  if (strtolower($siteDir) == 'all') {
-    // For this case - use drupal's way of finding out multi-site directory
-    $uri = explode(CIVICRM_DIRECTORY_SEPARATOR, $_SERVER['SCRIPT_FILENAME']);
-    $server = explode('.', implode('.', array_reverse(explode(':', rtrim($_SERVER['HTTP_HOST'], '.')))));
-    for ($i = count($uri) - 1; $i > 0; $i--) {
-      for ($j = count($server); $j > 0; $j--) {
-        $dir = implode('.', array_slice($server, -$j)) . implode('.', array_slice($uri, 0, $i));
-        if (file_exists($cmsPath . CIVICRM_DIRECTORY_SEPARATOR .
-          'sites' . CIVICRM_DIRECTORY_SEPARATOR . $dir
-        )) {
-          $siteDir = $dir;
-          return $siteDir;
-        }
-      }
-    }
-    $siteDir = 'default';
-  }
-
-  return $siteDir;
-}
diff --git a/civicrm/vendor/civicrm/civicrm-setup/plugins/init/Drupal8.civi-setup.php b/civicrm/vendor/civicrm/civicrm-setup/plugins/init/Drupal8.civi-setup.php
new file mode 100644
index 0000000000..a6f296d806
--- /dev/null
+++ b/civicrm/vendor/civicrm/civicrm-setup/plugins/init/Drupal8.civi-setup.php
@@ -0,0 +1,92 @@
+<?php
+/**
+ * @file
+ *
+ * Determine default settings for Drupal 8.
+ */
+
+if (!defined('CIVI_SETUP')) {
+  exit("Installation plugins must only be loaded by the installer.\n");
+}
+
+\Civi\Setup::dispatcher()
+  ->addListener('civi.setup.checkAuthorized', function (\Civi\Setup\Event\CheckAuthorizedEvent $e) {
+    $model = $e->getModel();
+    if ($model->cms !== 'Drupal8' || !is_callable(['Drupal', 'currentUser'])) {
+      return;
+    }
+
+    \Civi\Setup::log()->info(sprintf('[%s] Handle %s', basename(__FILE__), 'checkAuthorized'));
+    $e->setAuthorized(\Drupal::currentUser()->hasPermission('administer modules'));
+  });
+
+\Civi\Setup::dispatcher()
+  ->addListener('civi.setup.init', function (\Civi\Setup\Event\InitEvent $e) {
+    $model = $e->getModel();
+    if ($model->cms !== 'Drupal8' || !is_callable(['Drupal', 'currentUser'])) {
+      return;
+    }
+    \Civi\Setup::log()->info(sprintf('[%s] Handle %s', basename(__FILE__), 'init'));
+
+    $cmsPath = \Drupal::root();
+
+    // Compute settingsPath.
+    $siteDir = \Civi\Setup\DrupalUtil::getDrupalSiteDir($cmsPath);
+    $model->settingsPath = implode(DIRECTORY_SEPARATOR, [$cmsPath, 'sites', $siteDir, 'civicrm.settings.php']);
+
+    if (($loadGenerated = \Drupal\Core\Site\Settings::get('civicrm_load_generated', NULL)) !== NULL) {
+      $model->loadGenerated = $loadGenerated;
+    }
+
+    // Compute DSN.
+    $connectionOptions = \Drupal::database()->getConnectionOptions();
+    $model->db = $model->cmsDb = array(
+      'server' => \Civi\Setup\DbUtil::encodeHostPort($connectionOptions['host'], $connectionOptions['port'] ?: NULL),
+      'username' => $connectionOptions['username'],
+      'password' => $connectionOptions['password'],
+      'database' => $connectionOptions['database'],
+    );
+
+    // Compute cmsBaseUrl.
+    if (empty($model->cmsBaseUrl)) {
+      global $base_url, $base_path;
+      $model->cmsBaseUrl = $base_url . $base_path;
+    }
+
+    // Compute general paths
+    $model->paths['civicrm.files']['url'] = implode('/', [$model->cmsBaseUrl, \Drupal\Core\StreamWrapper\PublicStream::basePath(), 'civicrm']);
+    $model->paths['civicrm.files']['path'] = implode(DIRECTORY_SEPARATOR, [_drupal8_civisetup_getPublicFiles(), 'civicrm']);
+
+    // Compute templateCompileDir.
+    $model->templateCompilePath = implode(DIRECTORY_SEPARATOR, [_drupal8_civisetup_getPrivateFiles(), 'civicrm', 'templates_c']);
+
+    // Compute default locale.
+    $langcode = \Drupal::languageManager()->getCurrentLanguage()->getId();
+    $model->lang = \Civi\Setup\LocaleUtil::pickClosest($langcode, $model->getField('lang', 'options'));
+  });
+
+function _drupal8_civisetup_getPublicFiles() {
+  $filePublicPath = \Drupal\Core\StreamWrapper\PublicStream::basePath();
+
+  if (!$filePublicPath) {
+    throw new \Civi\Setup\Exception\InitException("Failed to identify public files path");
+  }
+  elseif (!CRM_Utils_File::isAbsolute($filePublicPath)) {
+    $filePublicPath = \Drupal::root() . DIRECTORY_SEPARATOR . $filePublicPath;
+  }
+
+  return $filePublicPath;
+}
+
+function _drupal8_civisetup_getPrivateFiles() {
+  $filePrivatePath = \Drupal\Core\StreamWrapper\PrivateStream::basePath();
+
+  if (!$filePrivatePath) {
+    $filePrivatePath = _drupal8_civisetup_getPublicFiles();
+  }
+  elseif ($filePrivatePath && !CRM_Utils_File::isAbsolute($filePrivatePath)) {
+    $filePrivatePath = \Drupal::root() . DIRECTORY_SEPARATOR . $filePrivatePath;
+  }
+
+  return $filePrivatePath;
+}
diff --git a/civicrm/vendor/civicrm/civicrm-setup/plugins/installDatabase/BootstrapCivi.civi-setup.php b/civicrm/vendor/civicrm/civicrm-setup/plugins/installDatabase/BootstrapCivi.civi-setup.php
index f7c8f08a16..b2c0a17446 100644
--- a/civicrm/vendor/civicrm/civicrm-setup/plugins/installDatabase/BootstrapCivi.civi-setup.php
+++ b/civicrm/vendor/civicrm/civicrm-setup/plugins/installDatabase/BootstrapCivi.civi-setup.php
@@ -17,7 +17,7 @@ if (!defined('CIVI_SETUP')) {
       define('CIVICRM_SETTINGS_PATH', $e->getModel()->settingsPath);
     }
 
-    if (CIVICRM_SETTINGS_PATH !== $e->getModel()->settingsPath) {
+    if (realpath(CIVICRM_SETTINGS_PATH) !== realpath($e->getModel()->settingsPath)) {
       throw new \RuntimeException(sprintf("Cannot boot: The civicrm.settings.php path appears inconsistent (%s vs %s)", CIVICRM_SETTINGS_PATH, $e->getModel()->settingsPath));
     }
 
diff --git a/civicrm/vendor/civicrm/civicrm-setup/plugins/installDatabase/FlushDrupal8.civi-setup.php b/civicrm/vendor/civicrm/civicrm-setup/plugins/installDatabase/FlushDrupal8.civi-setup.php
new file mode 100644
index 0000000000..05836729da
--- /dev/null
+++ b/civicrm/vendor/civicrm/civicrm-setup/plugins/installDatabase/FlushDrupal8.civi-setup.php
@@ -0,0 +1,56 @@
+<?php
+/**
+ * @file
+ *
+ * Finalize any extra CMS changes in Drupal.
+ */
+
+if (!defined('CIVI_SETUP')) {
+  exit("Installation plugins must only be loaded by the installer.\n");
+}
+
+\Civi\Setup::dispatcher()
+  ->addListener('civi.setup.installDatabase', function (\Civi\Setup\Event\InstallDatabaseEvent $e) {
+    if ($e->getModel()->cms !== 'Drupal8') {
+      return;
+    }
+    \Civi\Setup::log()->info(sprintf('[%s] Flush CMS metadata', basename(__FILE__)));
+
+    system_rebuild_module_data();
+    \Drupal::service('module_installer')->install(['civicrm', 'civicrmtheme']);
+    drupal_flush_all_caches();
+    civicrm_install_set_drupal8_perms();
+
+  }, \Civi\Setup::PRIORITY_LATE - 50);
+
+function civicrm_install_set_drupal8_perms() {
+  $perms = array(
+    'access all custom data',
+    'access uploaded files',
+    'make online contributions',
+    'profile create',
+    'profile edit',
+    'profile view',
+    'register for events',
+    'view event info',
+    'view event participants',
+    'access CiviMail subscribe/unsubscribe pages',
+  );
+
+  // Adding a permission that has not yet been assigned to a module by
+  // a hook_permission implementation results in a database error.
+  // CRM-9042
+
+  /** @var \Drupal\user\PermissionHandlerInterface $permissionHandler */
+  $permissionHandler = \Drupal::service('user.permissions');
+
+  $allPerms = array_keys($permissionHandler->getPermissions());
+  foreach (array_diff($perms, $allPerms) as $perm) {
+    \Drupal::logger('my_module')->error('Cannot grant the %perm permission because it does not yet exist.', [
+      '%perm' => $perm,
+    ]);
+  }
+  $perms = array_intersect($perms, $allPerms);
+  user_role_grant_permissions(DRUPAL_AUTHENTICATED_RID, $perms);
+  user_role_grant_permissions(DRUPAL_ANONYMOUS_RID, $perms);
+}
diff --git a/civicrm/vendor/civicrm/civicrm-setup/plugins/installDatabase/InstallSchema.civi-setup.php b/civicrm/vendor/civicrm/civicrm-setup/plugins/installDatabase/InstallSchema.civi-setup.php
index 79c798c29e..fec273ce07 100644
--- a/civicrm/vendor/civicrm/civicrm-setup/plugins/installDatabase/InstallSchema.civi-setup.php
+++ b/civicrm/vendor/civicrm/civicrm-setup/plugins/installDatabase/InstallSchema.civi-setup.php
@@ -9,8 +9,36 @@ if (!defined('CIVI_SETUP')) {
   exit("Installation plugins must only be loaded by the installer.\n");
 }
 
-\Civi\Setup::dispatcher()
-  ->addListener('civi.setup.checkRequirements', function (\Civi\Setup\Event\CheckRequirementsEvent $e) {
+class InstallSchemaPlugin implements \Symfony\Component\EventDispatcher\EventSubscriberInterface {
+
+  public static function getSubscribedEvents() {
+    return [
+      'civi.setup.checkRequirements' => [
+        ['checkXmlFiles', 0],
+        ['checkSqlFiles', 0],
+      ],
+      'civi.setup.installDatabase' => [
+        ['installDatabase', 0],
+      ],
+    ];
+  }
+
+  public function checkXmlFiles(\Civi\Setup\Event\CheckRequirementsEvent $e) {
+    $m = $e->getModel();
+    $files = array(
+      'xmlMissing' => implode(DIRECTORY_SEPARATOR, [$m->srcPath, 'xml']),
+      'xmlSchemaMissing' => implode(DIRECTORY_SEPARATOR, [$m->srcPath, 'xml', 'schema', 'Schema.xml']),
+      'xmlVersionMissing' => implode(DIRECTORY_SEPARATOR, [$m->srcPath, 'xml', 'version.xml']),
+    );
+
+    foreach ($files as $key => $file) {
+      if (!file_exists($file)) {
+        $e->addError('system', $key, "Schema file is missing: \"$file\"");
+      }
+    }
+  }
+
+  public function checkSqlFiles(\Civi\Setup\Event\CheckRequirementsEvent $e) {
     \Civi\Setup::log()->info(sprintf('[%s] Handle %s', basename(__FILE__), 'checkRequirements'));
     $seedLanguage = $e->getModel()->lang;
     $sqlPath = $e->getModel()->srcPath . DIRECTORY_SEPARATOR . 'sql';
@@ -25,44 +53,63 @@ if (!defined('CIVI_SETUP')) {
       return;
     }
 
-    $files = array(
-      $sqlPath . DIRECTORY_SEPARATOR . "civicrm_data.{$seedLanguage}.mysql",
-      $sqlPath . DIRECTORY_SEPARATOR . "civicrm_acl.{$seedLanguage}.mysql",
-    );
-
-    foreach ($files as $file) {
-      if (!file_exists($file)) {
-        $e->addError('system', 'langMissing', "Language schema file is missing: \"$file\"");
-        return;
-      }
+    if (!file_exists($e->getModel()->settingsPath)) {
+      $e->addError('system', 'settingsPath', sprintf('The CiviCRM setting file is missing.'));
     }
 
     $e->addInfo('system', 'lang', "Language $seedLanguage is allowed.");
-  });
+  }
 
-\Civi\Setup::dispatcher()
-  ->addListener('civi.setup.installDatabase', function (\Civi\Setup\Event\InstallDatabaseEvent $e) {
+  public function installDatabase(\Civi\Setup\Event\InstallDatabaseEvent $e) {
     \Civi\Setup::log()->info(sprintf('[%s] Install database schema', basename(__FILE__)));
 
     $model = $e->getModel();
 
     $sqlPath = $model->srcPath . DIRECTORY_SEPARATOR . 'sql';
+    $spec = $this->loadSpecification($model->srcPath);
 
-    \Civi\Setup\DbUtil::sourceSQL($model->db, $sqlPath . DIRECTORY_SEPARATOR . 'civicrm.mysql');
+    $conn = \Civi\Setup\DbUtil::connect($model->db);
+    \CRM_Core_I18n::$SQL_ESCAPER = function($text) use ($conn) {
+      return $conn->escape_string($text);
+    };
 
+    \Civi\Setup::log()->info(sprintf('[%s] Load basic tables', basename(__FILE__)));
+    \Civi\Setup\DbUtil::sourceSQL($model->db, \Civi\Setup\SchemaGenerator::generateCreateSql($model->srcPath, $spec->database, $spec->tables));
+
+    $seedLanguage = $model->lang;
     if (!empty($model->loadGenerated)) {
-      \Civi\Setup\DbUtil::sourceSQL($model->db, $sqlPath . DIRECTORY_SEPARATOR . 'civicrm_generated.mysql', TRUE);
+      \Civi\Setup::log()->info(sprintf('[%s] Load sample data', basename(__FILE__)));
+      // At time of writing, `generateSampleData()` is not yet a full replacement for `civicrm_generated.mysql`.
+      \Civi\Setup\DbUtil::sourceSQL($model->db, file_get_contents($sqlPath . DIRECTORY_SEPARATOR . 'civicrm_generated.mysql'));
+      // \Civi\Setup\DbUtil::sourceSQL($model->db, \Civi\Setup\SchemaGenerator::generateSampleData($model->srcPath));
     }
-    else {
-      $seedLanguage = $model->lang;
-      if ($seedLanguage && $seedLanguage !== 'en_US') {
-        \Civi\Setup\DbUtil::sourceSQL($model->db, $sqlPath . DIRECTORY_SEPARATOR . "civicrm_data.{$seedLanguage}.mysql");
-        \Civi\Setup\DbUtil::sourceSQL($model->db, $sqlPath . DIRECTORY_SEPARATOR . "civicrm_acl.{$seedLanguage}.mysql");
-      }
-      else {
-        \Civi\Setup\DbUtil::sourceSQL($model->db, $sqlPath . DIRECTORY_SEPARATOR . 'civicrm_data.mysql');
-        \Civi\Setup\DbUtil::sourceSQL($model->db, $sqlPath . DIRECTORY_SEPARATOR . 'civicrm_acl.mysql');
-      }
+    elseif ($seedLanguage) {
+      global $tsLocale;
+      $tsLocale = $seedLanguage;
+      \Civi\Setup::log()->info(sprintf('[%s] Load basic data', basename(__FILE__)));
+      \Civi\Setup\DbUtil::sourceSQL($model->db, \Civi\Setup\SchemaGenerator::generateBasicData($model->srcPath));
     }
 
-  });
+    require_once $model->settingsPath;
+    \Civi\Core\Container::boot(TRUE);
+
+    \CRM_Core_I18n::$SQL_ESCAPER = NULL;
+  }
+
+  /**
+   * @param string $srcPath
+   * @return \CRM_Core_CodeGen_Specification
+   */
+  protected function loadSpecification($srcPath) {
+    $schemaFile = implode(DIRECTORY_SEPARATOR, [$srcPath, 'xml', 'schema', 'Schema.xml']);
+    $versionFile = implode(DIRECTORY_SEPARATOR, [$srcPath, 'xml', 'version.xml']);
+    $xmlBuilt = \CRM_Core_CodeGen_Util_Xml::parse($versionFile);
+    $buildVersion = preg_replace('/^(\d{1,2}\.\d{1,2})\.(\d{1,2}|\w{4,7})$/i', '$1', $xmlBuilt->version_no);
+    $specification = new \CRM_Core_CodeGen_Specification();
+    $specification->parse($schemaFile, $buildVersion, FALSE);
+    return $specification;
+  }
+
+}
+
+\Civi\Setup::dispatcher()->addSubscriber(new InstallSchemaPlugin());
diff --git a/civicrm/vendor/civicrm/civicrm-setup/plugins/installFiles/GenerateSiteKey.civi-setup.php b/civicrm/vendor/civicrm/civicrm-setup/plugins/installFiles/GenerateSiteKey.civi-setup.php
index c4c099844b..b055f32f1c 100644
--- a/civicrm/vendor/civicrm/civicrm-setup/plugins/installFiles/GenerateSiteKey.civi-setup.php
+++ b/civicrm/vendor/civicrm/civicrm-setup/plugins/installFiles/GenerateSiteKey.civi-setup.php
@@ -13,6 +13,23 @@ if (!defined('CIVI_SETUP')) {
   ->addListener('civi.setup.installFiles', function (\Civi\Setup\Event\InstallFilesEvent $e) {
     \Civi\Setup::log()->info(sprintf('[%s] Handle %s', basename(__FILE__), 'installFiles'));
 
-    $e->getModel()->siteKey = \CRM_Utils_String::createRandom(32, \CRM_Utils_String::ALPHANUMERIC);
+    $toAlphanum = function($bits) {
+      return preg_replace(';[^a-zA-Z0-9];', '', base64_encode($bits));
+    };
+
+    if (!empty($e->getModel()->siteKey)) {
+      // skip
+    }
+    elseif (function_exists('random_bytes')) {
+      $e->getModel()->siteKey = $toAlphanum(random_bytes(32));
+    }
+    elseif (function_exists('openssl_random_pseudo_bytes')) {
+      $e->getModel()->siteKey = $toAlphanum(openssl_random_pseudo_bytes(32));
+    }
+    else {
+      throw new \RuntimeException("Failed to generate a random site key");
+    }
+
+    \Civi\Setup::log()->info(sprintf('[%s] Done %s', basename(__FILE__), 'installFiles'));
 
   }, \Civi\Setup::PRIORITY_PREPARE);
diff --git a/civicrm/vendor/civicrm/civicrm-setup/plugins/installFiles/InstallSettingsFile.civi-setup.php b/civicrm/vendor/civicrm/civicrm-setup/plugins/installFiles/InstallSettingsFile.civi-setup.php
index 330f0e3e1d..3581eb3bed 100644
--- a/civicrm/vendor/civicrm/civicrm-setup/plugins/installFiles/InstallSettingsFile.civi-setup.php
+++ b/civicrm/vendor/civicrm/civicrm-setup/plugins/installFiles/InstallSettingsFile.civi-setup.php
@@ -13,7 +13,7 @@ if (!defined('CIVI_SETUP')) {
  * Validate the $model.
  */
 \Civi\Setup::dispatcher()
-  ->addListener('civi.setup.checkRequirements', function(\Civi\Setup\Event\CheckRequirementsEvent $e){
+  ->addListener('civi.setup.checkRequirements', function(\Civi\Setup\Event\CheckRequirementsEvent $e) {
     \Civi\Setup::log()->info(sprintf('[%s] Handle %s', basename(__FILE__), 'checkRequirements'));
 
     /**
@@ -52,7 +52,8 @@ if (!defined('CIVI_SETUP')) {
     $params = array();
     $params['crmRoot'] = addslashes(rtrim($m->srcPath, DIRECTORY_SEPARATOR) . DIRECTORY_SEPARATOR);
     $params['templateCompileDir'] = addslashes($m->templateCompilePath);
-    $params['frontEnd'] = 0; // ??why??
+    // ??why is frontEnd=0??
+    $params['frontEnd'] = 0;
     $params['baseURL'] = addslashes(rtrim($m->cmsBaseUrl, '/'));
     $params['dbUser'] = addslashes($m->db['username']);
     $params['dbPass'] = addslashes($m->db['password']);
diff --git a/civicrm/vendor/civicrm/civicrm-setup/plugins/uninstallFiles/UninstallSettingsFile.civi-setup.php b/civicrm/vendor/civicrm/civicrm-setup/plugins/uninstallFiles/UninstallSettingsFile.civi-setup.php
index aec95b0514..b10ab4be7c 100644
--- a/civicrm/vendor/civicrm/civicrm-setup/plugins/uninstallFiles/UninstallSettingsFile.civi-setup.php
+++ b/civicrm/vendor/civicrm/civicrm-setup/plugins/uninstallFiles/UninstallSettingsFile.civi-setup.php
@@ -16,7 +16,7 @@ if (!defined('CIVI_SETUP')) {
     $file = $e->getModel()->settingsPath;
     if (file_exists($file)) {
       if (!\Civi\Setup\FileUtil::isDeletable($file)) {
-        throw new \Exception("Cannot remove $file");
+        throw new \Exception("Cannot remove \"$file\". Please check permissions on the file and directory.");
       }
       unlink($file);
     }
diff --git a/civicrm/vendor/civicrm/civicrm-setup/res/template.css b/civicrm/vendor/civicrm/civicrm-setup/res/template.css
index f1cda3c10d..4d05aba3f5 100644
--- a/civicrm/vendor/civicrm/civicrm-setup/res/template.css
+++ b/civicrm/vendor/civicrm/civicrm-setup/res/template.css
@@ -1,6 +1,64 @@
 body {
   background: #eee;
 }
+/* Header */
+.civicrm-setup-header{
+  height: 300px;
+  width: 100%;
+  display: block;
+}
+
+.civicrm-setup-header .title{
+  width: 25%;
+  position: absolute;
+  overflow: hidden;
+  float: left;
+  margin-left: 10%;
+  margin-top: 50px;
+  margin-right: 20%; 
+  display: inline-flex;
+}
+
+.civicrm-setup-header h1{
+  line-height: 35px;
+  color: #ddd;
+  position: relative;
+  left: 400px;
+  -webkit-animation: slide 1s forwards;
+  -webkit-animation-delay: 0.5s;
+  animation: slide 1s forwards;
+  animation-delay: 0.5s;
+
+}
+
+@-webkit-keyframes slide{
+    100% { left: 0; color:#555;}
+}
+
+@keyframes slide{
+    100% { left: 0; color: #555;}
+}
+
+  
+.civicrm-setup-header hr{
+  border-bottom: 2px solid #fff;
+  border-top: 2px solid #ddd;
+}
+
+.civicrm-setup-body .civicrm-logo {
+  float: right;
+  width: 30%;
+  display: grid;
+  margin-top: 50px;
+  margin-right: 10%;
+}
+
+.civicrm-setup-body .civicrm-logo img{
+  width: 100%;
+}
+
+
+/* Header End */
 
 .civicrm-setup-body #All {
   font-family: Arial, sans-serif;
@@ -13,16 +71,13 @@ body {
   max-width: 1200px;
 }
 
-.civicrm-setup-body .civicrm-logo {
-  float: right;
-}
-
 .civicrm-setup-body form {
-  margin: 0;
+  margin: 3%;
 }
 
-.civicrm-setup-body h1 {
+.civicrm-setup-body h2 {
   margin-top: 0;
+  display: inline-block;
 }
 
 .civicrm-setup-body li {
@@ -31,7 +86,7 @@ body {
 
 .civicrm-setup-body label span {
   float: left;
-  width: 14em;
+  width: 120px;
 }
 
 .civicrm-setup-body p.error {
@@ -101,9 +156,10 @@ body {
 
 .civicrm-setup-body .comp-box {
   height: 3.5em;
-  width: 30%;
+  width: 31%;
   display: inline-block;
   padding: 0.5em;
+  padding-top: 15px;
   margin: 0.25em;
   border: 1px dashed #aaa;
   background: #eee;
@@ -155,16 +211,49 @@ body {
   margin: 2em 0.5em;
 }
 .civicrm-setup-body input[type=submit] {
-  padding:5px 15px;
-  background:#44f;
+  padding:15px 25px;
+  background:#82C459;
   color: white;
   border:0 none;
   cursor:pointer;
   -webkit-border-radius: 5px;
   border-radius: 5px;
+  font-size: 20px;
 }
 .civicrm-setup-body input[type=submit]:hover {
-  background: #33e;
+  background: #60A237;
 }
 
 .civicrm-setup-body .settingsTable input[type=text] { width: 80%; }
+
+
+
+@media only screen and (max-width: 801px){
+  .civicrm-setup-body .comp-box{
+    width: 45%;
+  }
+}
+
+@media only screen and (max-width: 635px){
+  .civicrm-setup-header .title{
+    width: 45%;
+    margin-left: 5%;
+    margin-top: 30px;
+  }
+
+  .civicrm-setup-body .settingsTable{
+    display: block;
+    overflow-x: auto;
+    white-space: nowrap;
+    width: 95%;
+    margin: 10px 2% 10px 2%;
+  }
+
+}
+
+@media only screen and (max-width: 503px){
+  .civicrm-setup-body .comp-box{
+    width: 95%;
+  }
+}
+
diff --git a/civicrm/vendor/civicrm/civicrm-setup/res/updated-logo.jpg b/civicrm/vendor/civicrm/civicrm-setup/res/updated-logo.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..bdb9e006e24b61e73753b18c60c1aec6bed938bc
GIT binary patch
literal 27097
zcmbrm1ymf();2o0JHg%E-5mzE;E>?%?he7--66O;1h?SsL4vyk36MKU-gC~s{&m-P
zzIAWW(_K@w_pWDachB_jYvtDtAWYK3(hLAlPyo;Y003A3EEoU)3F?6k5F}t=|LOyd
zz`y|zf5u@!lXw8Azcc_lF#Lb_-N0!6p#cW~z|sHo!9kM1z%l+A2TA>>$^66r=lJU!
zAfs$y?_%$4Vede~&cp)X5d$hf{>A|Spb&uR03h%wr3rpZ1^xY*qx>_6`m#eDG1@xj
z!OUUA0i)%9`s)HfC2C@CWC}3(0-^we0K9{QfQCl`04P2I0PKh$P2m6lTkl`%fDix_
z<nIRBL%~3SUT`o_pdCCcEF3H>JQ6$tsKFy4A|n2Np`f6lp`c)6VPRq8{=0!eLqo&E
z!DAvJVPc^nqhbAf;(y!u)ek^}1sp+;K!BkEz|p`U(7=8T0?t4t0|$rrkF5XzXc$N+
za0pm1kV7DT@BY&uKoells31*$H%KrD$lqT2Edc@*4U&WviUk9j6dm&;8wV%52pN{L
zgD80b#XB^RPr#ue5ul+U!T-{O4rr*Ptd8hpqAF~VBrJx3^?hQhP8j3~1v^3P&L3xu
z5;;T)#WB^O9IhzP0pPzE`VWqeq-X%t01^=gFqU{jG7ON*A;2M_e?$EP7Ni|1E2=1o
zilHORRbWCv{l~u9YmprX<zH(6M35M8Gzc^h=5~?)==J}#$M<yGSo^<`!@75Xou-7$
z#8!MF?KOO{@$J8_$kP>NzBH>EOlNRiw09W&)R}ywv!X=uUm4%|emxS5%o8wMI#I4~
zsb-eaB%t@W?`Y)65}T6t{cr5x{0x{iVTwvQ&fmkgNsxM667_&Lqz`!pqczi{oyKWB
z0slop<fKkcZyIm4lj!Z-F>knYr%;%M@mybdB6HVI($O^k1a2m6HrK|vG`d6YmC|#s
z|5+R~ww^MdM<=pL{hPr>O_v7KR=7|%PS0(AD(qd|@k=;0`DU!YvA*-CgMHqcF_K72
zOts71EcU4{AhF+WF>0hf2s(QKV&$NxV}B5gf(H3~54ai7KiN2W0SJf;@2BUPbKATB
zU=Si?=HChc09?DCoxOzc40cy<x1@6bw1kK;h;=K(?9L6DL+dk#%lQDlEo+ik?i^is
zCLyo6;~|2z@KPnAEJe!X0i*s(clO*b085jw_GT$|PQN@K!YyyAu)!bAs|0F0_ak|C
z*QO5IZ5Ah>CE?!|>87@P`=nL1q2f6b#r4*Ua8r9Vdyp>$lLm}@b<V<QpL11ov>pYW
zVCGw=-8O)%K??`XJxY?y1xW;{aLwLs)r=$na8^z)ueT5OxtptN>jso@W5_6a#`j;>
zy6d1ktzvBLLPieG&W;|8&X1f=X8-`7>%t01t5CZdpVP}p=s_(!pVQ*Fo%UGW34Y@v
zK=`yqX?ND@t|3(QzM2zf_ccatOHo@b!MX2-vuM@)<`CC2FUUsFFe(F8@3WWMw-3ee
z1!W6=xSQvG{n*?YX&}|wL#DR0@bK<9t3G4ez<*&VK~f-y_RGja`b(XqNu)MXR!~^k
zz%*aFKQhsiubIu6XFLE3q!4i;QLj(y(ecE`=KMrLbH}TPv1;#+NWzXPURt-rS&fZF
zn^CO=)4#I~MpH<tTw_)}_%OQNYtv#{)z<9W{YbvkkDHexBxy&LHC}u>inb%G!`l^r
z#eTRu!8V8q)Q~t5RGxY9)4#WsTbVnrK<pGJ5^gvfd5`4Xv)V+aoyoQafY-O@fi=pW
zPA|nv3g^1Ad}mpSoHY1S?KWEB1K`vjkvKM%uUre$s<fY-Pwlg=KFE}5A$Z7|{s<;+
zX>8x)rJqA|rr(Y1`zNgXqdv9x>f3tUWzI^rlB{1do@UhnDryeI&osJk-MI8XXCpA>
zt*>c)X8KT{z25Y;n%nibMDTb?t7^>G7dTn?W9!=U>}M9nZ$HQWFj2Ky?y(yl$N({g
zUlM@~+d%iBo^A_(gc(1F$BWg?NL%9V=eaPD(Pv$;Z)d^WHJPg<@-C<Aku%fno>126
z?R~GbqApZEDDe6Z{D>&L`2<%wy$GJ~ewzl$`5gXGHO^dUO2}?8!s*SVJMi#aK;gxC
zL!A>eEkxwH*q^J>X+A$w;8Nf4a&kGf3{Y=%CSzafZR9F!T&lP@*y3ILS$=SPQA&}B
zd;ZK9007|lT_3*6>ynlHM6dn^2wAC6-<<5Yy)Q;nI?R#h&BiKqJ)g_O<%U86nsAAn
zdWu@^f}GD0v`Af$^vApwpffNxqlc8f;Qwh=G}=>j&4#z`dPk=FednHbfl8^FqlY{}
zD<dsVdu>-{(84|fr<I`s)o#;e1s`;ZbaV?m4{hv>la0M6A<Ckdf)*R)WU-A(l-#+l
zr<PZ)sq<V}8Dv|lBGbMA04%S2)6eNGP}YrWt$@MP^ufi`PIdQLCFhyNN6$kwWOJxW
z)zlR1qPV)l&cv{C)TfgL_eN%dbH7@j;yX6mXFjJDMv%cAJhcuFP3C^|ZS-zmihu@S
z7n+YJ5qnS=&L)vJ+<IX5ThC-JwQ=5V54+{%;HyvRO0GZ`AK^K!4rM7dt9N&-g1bTU
z!`Ygx7HYGoavUe88Ov^NJ<q%aZglDo&i0^$j3az{P{SIk^cn$$CIA9uOW+rvA`$?Q
zBWbjqn?JwZ4hO~WfrCynt)<A>d=-=V2kk6=A`{G>FeSN(PGJLK2F%<rg@45a7~Dij
zbv4n?BOBSG1`uB8Fd5ny#2SK<wp6Z+oR{mmTwqPfl&_Z%k<Y?l;(%bUv@&SXokM*+
z+V9pazJg$C`jb&gI<FIJ=iX9Bd$->1ht{9;BU1!7)<^h1I1_AnFASuJn{5=8{yTnC
zMa|wL#q)LFkP2$u)#)@fl`fvY2;5eLvj;6!$jRYvSr7_nzgo9Q%01WY7P{1*Tj{9j
z{Mftc10I>I-?@CR(*fZ`?fUH1ac$@;om#Cx0uo(zL8mKDZJe<YhiA9)dVab}c#8is
z>Gfd-O4yr;ozwe}+ngIzpuw(gYiclWn%9ML17^mM$cqweRp!>N8A*#0tmo!3ms?2x
zZRZVVwX~bPhUK0{E~l5X|0}9tu#-!}6dT(vHzsS8eEx-9<~_EvF@|O@JD0Vt3n`Y>
zht(|o9&h4QcqMVF?V>WqAW$6!gnn0BT#m%JU#$Il4$4#jSk(nzR@dY(Lq<x+&r@$Z
zPs*Q!n=SwdQ3}l5Sov7m3p~7>Hx~eozGK$3KMLQ;juO3o<M9!g^wGZi)5Q|6k=i0?
z!A^t!Slyjq_V{Co3!6#ZN*m4bgXavu&~?~eaOda$S@4jIa<tv~uBMhZN4WnTFi42;
zb9}s5-wF9T4qS#2+(HGx{$J7e{De=FB-BP!3jp9GTz{A^nu@nM1JcYiXEA>S`G%gO
z5+UO!vUj#ddq=E+y=%8LdTx`M)kBzD&joMSzj8Dml4?ly^M$>6?liq#!-)kLLcMBP
zXO_pI^~GMg<_}8^clI9wV?5RNt^{4Vr+l%Lf))#lmjdU}TYR@~rHl!xuMrwo07<H9
zr4JMBG*)9f^?%DtwXBYaN(ayL+vCtf)-t!T{b1q$74rz=WtFw>e1E*7Zobe?;Q&B{
z3rW*z#?94^46EnJaxk1%eFZrR5UpU)+A1zhAq?PVoe-*avou)wUFL3@Cx}X}K=B(s
zH$41j1>>&)zhP`o^su|R`N%-(SS=29@bQuY?21zTb<U=`d*VEAf0Qz2D8Ae@&j4a4
zpy&&d+{{m9$Z`YbhccF%&D3YWag9n8+__YcqCn*Z&y%c(!|}rARhvNr1O$?qF1M!Z
z{lkj-s^{iqRs&#eA&gzDMVR3J;m|EjgW%!m=h1J#V4=%+7j5{+-cyHl(9~V~o|oMD
zi2k0Z>;gvs7Oy>iPy&D=p|b{hAosTY3`C8a{cr~W3tYy1`N1l9NIvb^4X}O&(X|T#
zKHd+z3kHB>{xKG&+$qU|!n^aV`j%ZiSYyx?>T)0Pw2nSco7GPT^@WSu-;w=4HE`?{
zB~1e+Vuf>Gr<5qEAE$T<lv)Oy%RJE+qFLPTiheChIsX&??>TV%G$l11TIlbQ_PWgG
zO6_r9S4We|YxdDLX}Ge1u7{^)pcDUpY0yC_9xcA+<<yIdBWYRw5Q?1Dkm!p7Z{D5k
z%`F1IuN431Cgi!VDb&&dyO*Ur*mP><yhW^Mdb_xoSKYb`DvbZF5fa@hewc`zfL@MZ
zT;uaDKlpD9zvl-ZqHFn||2LHX&<KNWctCe?05B-<UjUoev*$=lT?DGpRHLHNOiCD%
zkyjzTnRZ<9t*kiq^=6WZR48aYHDBH_=LW$G?=A7{g^jPNRsLj|RJk9b$EBOBp?wm{
zOJfc1MmSl+<COcj#EXYULym&^WERw<SrnYpKklpPEytC#|M=PVea{(s|L{$GH&)^o
zfM_70(PK+az01r8HV8xS0EZWnfB;i%3{If4NX1#tr6N(9<XMS{I3Zdx7V{SXpIP_@
zLuecr2RUv46PKW{$MoT4N)vG;=@eK`mH|YTq76^qH&pRtC=j2%zM*NTKRDr?G~!K<
z5obpmtFgY@ch<t0GdeInU@u{)|1y00;^?hMz|nsGm*gFY<QE`+)xF@DPi8Iihfr}q
z&iJ>cAr7@xX=a#_X_d+CQ1-Kh1J+$dVZweJ%a2u$h+c`@gYVA@_MP*!wt)1CLh`&S
zCzJcvbyAvwS$sYXG8SVd(R<FTbyY&f7;G7e&W@UK?E~@0p6og62118KLhT#5T(Dz@
zjpj;;KqOp-gls#1u6Lndjm%V~f9#D-j*cg_-EVkZ2)YwxCBzS5vyTqey+qO?=q<xL
zbw#&3*I*|l@;2Y{Ui6PRZ{1?vio6LkAM93)OiYZV3Ar_Vcy{q*AYQBU$7Me|LWR$Z
zvrgLcF%^u7mmAI+3r<5_%eJ$=YH**QxEVm?z3?uK)Xss4HR<Lat`8F8{#0_E#*oX+
zj-D;|Jt<C`h!--^@kNioUx^u=U`2P2^=CntfXDH~%`X5N@0538nD+KRykh_2<p=TV
zeoum+zfQv+CX)1z?*6;+4>yR6?cUZ~4m!mSBoG$AiHz{($2&Md8!**a)9)X0#`+3)
z-;YcC=)Krc@#^r`49t%8-LPn&>{0pVP!EqmzIbPTB8%UbgM)$KFyq29Ww3tny5S9m
z!M${e+iQFBgmZNGHV`LuyrD$&1OWJpkC{aiX!1_G6OI5!<zgbBDZIF)Blb3_CP2ud
zZOd}^w2^o$r=*G8lAd^YbmO0Jj<)wa4LUp#^CBWThKJ6tDo1+ta))KM-;BXWhQe_y
zr-S#*KEAP;uP$Wa(JnkX4ajfQZ1S9`Wuz62I(fI-SQq;tle5%6^L8ERH9BM`XH-!Q
z&}U7i+Tkbqxp?u)ZwE&abB?mfTdpU;P-k5^>P|W_CJ`AXfZrhI{xGp|sT~+HBN7(>
z3ojjTT{-*<0DDe-<FWkx37OfN9))CgzqxO6c0WTi5hsVED_bG>lY!v#MO>ojc^1rd
zlF(EucS;;Y63#JU*mM}{A;ySa2I49KqTt3`#LDHK@Kj@cEY$~$q-*CUPh=%`#%Pzg
z;Sl4#{k)L2yk!hSfiUeZKcWkF>AwI*oz{uicJg^%JlB-=uWKg`Sp78Mzd3b2zV{xq
z8Oz?^_qbqoCeL`ay1ra?@oeLN@%!T`gAXY<HWY2mHQt50$XIN9guei`R6;A7(XDS&
ze^GQLVV&t2C{6U2N=%M~Nq1;I{$O^e^`zcmqP|~+UO64sJ)IqYG2KfNhka_ZKG><v
z3d<Y6zOL#e|A;<8apOqf+-N3kDV#Li%jl%Fjlmu~{`k~<gIF^~wtL;fgw6iExVK$%
z)Lw8NMh>CQgc4OTeiQR0=F%k=kThZ_KHNx7`-HhiUbTBwi|hVyr#Rw|`{tSi;q=j)
z5dX!QdX-Zkj(Qb-*U^s&{YI%@PwBKl@_ISCbGazxaqY2+fS^nopUj9K_>#-{WIcNA
zdle+wH-_ucbkNYF=#CL})2R6uz_B@iO%qDk9iwdQhV`2yLxU1IxlcF({%#_$l#Bk*
z84qU-&5@s9&EsXW>#uvJl}LxqO^v^vdG2|e#yDjN({o1*J$W|$MUgEynUd4)<7Kz?
z$3ZB=1EVO{U6OCypL&O{F}kclcgVOrqz*nAV^)8`S$XItASQIs3fR*xI`Il)pt$a>
zbXS>veQWl3IPK8>1xRdz`{}vKBre1NYo4oDk-xXGKe~z|A9I7l^9>b%MDWIK&c#cJ
zncj{#5uESF|2Ta+pEmTQB{$O0*_Pd+G}LDx7_~NBmgtAR>#x_oVK?l;)`9ETfSUsI
zH-rl&kqK&0`o@QIR#uT5ycOsCsbl=~1){K<lOp0Bopin(JW;*h55hK4Ah3<({6BCN
zB=@DlIvklD3<V<$Yf^IXT#G6!5O`-7#Uvo<)nHEzkpvGp*?mc*HO|S@Pm5kIs^1>=
z&+V#V9-Q29>fv%vFnM5OEpU^+uCHgy1wP6}ygGfq^0TAG($l0lgBfCQW(Q6Tp=f`I
z?lQI&0uo-Qp;0@>{xzD*_iIp;@34zMzGTEoyzxd|WM)sFYR36>mgGIr{sQ<T3H!$_
zb6kH}4IImiH<V)w$D`rXn?^M&<uX&m&%aU5n!cWr&fODB8)FR`Ke%<W9L&%k$%%bq
zf4RS5Ft}h#lpY72(S|xt|7M+9#?IH|p~<lU7a~~<&o|!D+YJlVCn^?gy(K#Zo+A3T
zm)c<i)|NbySEq0OI-p7=V108sZuBC*a+pZP#ErjeIR8%uHvR%o3SVAVoKvL<R$<)G
zw6&Gje^2iVCeYV=!zbo6b>wa9aBS<^C<)!W5^E`yU=Fg!3w@|cXwka4HXX?1$z#8A
z45MQ7eEh(Ld>R)qv!f{-I`UOpK*NqH+m4x=*3jck05c;@#$ZJ15<m1TT!|CoU~d@-
zVP|hiojI6%xFD(1z#Hm`r3N4DNt<(j*XI!-B=qX~mEjj)OzG$2@f(+2#O*3xq9qmW
zv^6xM{j|5v5^`61`aJo-b&YuVo>&|T79-p4-c;sNokc3FIqL3SUqzcob&`5|dLxLY
z1erJnUO+&rX)Gd!Jpf?!sFgD=7Zb;4t<zWVsFlcDZ4Dh99%*uX_$Irb|M(OYo40RB
z+prs`l*X`_Cm5}Tqju9MiBB4L>;nR1APMuMmguXA!}O@&eHIgq`YPL0+l7$)Q+^PG
zMNj%Z%v=9H-q#++kG-q$MPWb<H?0Q-0$S(Nq2VZW;!;nVnl;6#jV~+TjHMG$SjU_D
zjEv+mxQGa}lwUbS$ovG)g|SJU+Snx)zE*wO)q1@7E*BVx1u3kgfI%G>zw5-3UC;AU
zwe0xfBH-h%{9<E$eqa0N$_(^v#h)v)%X^HNq-+I<PYP)#a4~{m)t+#*Fvr6UA>h%7
z^i6qC^Sg|drVYrw^9-B%-eDQ6eTs&*y3F&4n=-{4GT%Z%-Lc!0qbgVvu<{+@;-I`y
z<_be--NjlBZaO2jmdn0K8mBk2X>@yopVt~{oUH098%pR_oCzY(`{(~uEG3o{-U=7}
z+Tjda<w-%+#@90wZ4qUS)Paa62hPw8MX_E&NU>GWDjE#@D4AMr)$qIhfHa<2T8pz6
zjp^276g`S*ma<HED427RiBjeXC6YykuEAbd+A5XY(C_d3#DmB0LZRsT{BhNtgSE9H
z!5!P7W)~Scc0*;V;eu%wv>{_U+m}aKf4nQss(oboa9dEeXySY1GTPzt-ujb#3Opea
zc2SOr!o7Fgo$Wup7$}N`5tY5AxZ+?n$s?r)TJExTjEb^(@=Nj02jDrlm_hin!)wNv
zRIemoa@Unvs9V-_n7RWoXI;-==U9&-dL>j9<Truc6l-js7IBK)Rqbb^tKzzmJ3m5)
ztO98rt!wkC&*u{ZHhH`(qLs@Z6gQ!$Hqn5bQZ%=xKrX|3C87@S_)@##?ZSamkm^g;
z_Ikly;yn?3iK^_<2zc-^mPE(vk-$031g*+<M%^W_M~Au+SyWl!ak9gLYB3Yss`hhv
z7pI)9RShABTk$b$t`zyjLG_V58=$o|R2Acocyicmia5v?Ki)akfsppf>d%L(RCg16
z!_2_0)OO(*YgLpTR;iQ>jtM2-<o5!$N~l~kT)f+$Z_{*yF^IE^;1WxO=P*dbV|S%`
zrFB;%UZ1nJYf&``$lkSpnm1Y)IQj&V(6mwkZqcraH`3vD96pOSi<zXRFpEdAmXIt-
z4!f9D!F?>(@e2_930pCxN-4RcIs(krma8bs*KL+645W-qKObmumw7AR)@3Vr;AcJ%
zkY+qzwUKgFyv9H4ikrvjn|`5|w^|uf_((`46rzu_TvuzT--JVReoXag(&V=QFV;J<
zqv7sQZ}{{4K508zs#3c=kZY>Bv5I0QaXXUyk~<5Ug5S@Vlv~o)2QFHl1&1Ymi%x-8
zAlVAp7Ux#ns`ia{nA1Z`lE}>H@H?XAV3|D>cURgjVLGzeIWCwhv=@OBL+}@Oy`<lI
zf48lF|3QDbtJYI<-Y@jjS98&?IIEOcV&^3L3L{s+c$m_Q#g~=pgdEt7QBviQMkRrl
zeM;t+k>-kD!Ed*KCmTfok71(lmYJ-<tzX$_G^`V{is4^Ii2mbUjKjNfS;yW5B-bN-
zlfw@u^slym5*^}iqW7t)aCD$N2OgxByT-e|W&5Obpx1gU2Hc^{vk^;xx5S@={Q}6#
zHH19(x~{?Ys~DEMis}zi5X&YwWZHb_i6TdpdUxiaS%F|eK_eeh0I~Q0b%7ThKyrF_
z(OFb*fv_Pw<GTY<Dtc1umtaJ;$T&l!oB`o$=K(wJ5+Q37FmqP8UBXGWR`aicg|-w|
zP;&|i<<duSJ;r}V=UadtE8QVhg`;~m!?ag!ly3G`&^je#_N_1>qi?`AA%|xmi(bV^
z(zeUWa$ObCX%JdyKuuXiXg~|aN|3T~lQ(a7(=-KbSZGp0YngVOGIo|&6Gk|_d*Va=
z_F4`3t6rGrGc$);R4qqbYu&-m+#P+Kts=Ubb;@T2i}bX(cg03`At#P?BK}rUR^G~3
z3p++z?bwn{RMFUcltLAS1BJ)%F%Jdt<=ei@uHg>(cDbj>J0e?&dFr!v5v$^#6_WW?
z3BMCnbMcwcP``d=>|lr7J~APzz7yFNRY5Vx=5VMtte>U57tvN|FdHoouay9;OM9mh
zCoA3+v?Jlmf#Hg(>I>pyLy`Ig5P4YZnSdP66kiBSf@j%K&Qc{kDP3hZmhqA{MKk!;
z-RB+j5Mrh&Z+a)*;ZYyGvZQvD&Oq@~UDu^rbkX}<qjfE+R!V)2sF;K7?$eT*6ap02
zSQcTjAbCp*2O-Nv38rORaoG2u@4z4BEyw(>xOd0hKcr%?%5Cpb(C&{1w57|rDkmqP
zCaG50tt5QCs7>*iI!WEc&O%q=zLF*MJd<vsd5Kx<eJmu3RBD!N1^z6Ls|8LqP#tlL
zm{mxBhJNL-x^^fOisOPOJqEVOugVIFLBC=&gsZI^AvKA2Q-bV7XB5zF@*8np2lPnc
zp|)2$nDSKcx<mR;5?4KoaPgsNvtiYMo(K@PU@Kf)OJ^iuG9SnWR^r`6Oqh0eR41g`
zLW@|N)R!{Tr42T5)#A!n$3Q}ePhzH<2ptP%u%imN&7`w5cg5rq>r}Qt@_a{F`OX4&
zo#;MXxFRlo8dtf7D3CA%274(4_&<ga_7ZbVTY$u0ba9squ|%ZgqKhxUlWE3dpr^T0
zSgVOWs*52FDIF4*k*a_xjP@eKB$ue}Cbyk55X3Z|FMd6mH_q?I(1`j45dYX|=+^%u
zhHKFTy4GU(&%3&L!<iqE>zYkgbtn8TJ4TsyXs!vaCwiIN?(<BWva}cpzCel6mLmjT
zw%7S?oh%WI7`*j-#=H3;1-$jLo&bH$mS=~0t+JN1d~5~Vo;*_C)O<_Y>edAfVqO2g
zXLWFBVeq@?6#fS0G5X?XT9@D=vnH0+wZe$ASYVG6eX&HvW&-P-L_`Kg$!K(t&FH(L
zE|I@w;y34Hb56Y_MZnWC4g&xExJn?#PM##%lJYOW9}+My5XmpVu($a7<ELsBPP`^~
zw$Bt7lGd}2evLG;=w=vF9QnyZF6w5v$59To9sbBz?&N{>D(=7zs^)iuW^LnzOfl`-
zdXPNh>It8VmWj&M=r84NBAQP0l}Kw>ZP}dpe6KlhZ~SmwN*Bk7)>s;XcAH_7VrZ!@
zkg?f|wlQp`lN4|gO^gwK0otS}GUEDAUg>}ZOG-~_?~j9B%th3}*HTvnURk;H#IwU`
zqtEDchKx7SIdKM)$ZJ@7e-0{88S7(+9z?YDsk$WVo(X6B>cOa<M6}e^kD5QKEO{T3
zd?=)_MV(kf|9lbbP{6H5ts{Gh5naKUH|NiDM+}o-TqQBHMf&WFV)D_KGEMk>^0cY%
z4n_uq*!(*I4Nhhbud`66;&JwO9H2|BqB&QDw(BI-AZZ4TpZ;x<O8GDSR4Gu%ig31a
zbXsfu)HK8W*Rr$4j;15(=pk$JhJ*S1L!2V2@^dx<4C8P;^uE0tWMwmch8RG2g1i~|
zRbmyP*&(1T_${vbJ6Cp2*t9Gm^%7a48FGAj1jYJ37dH*ZxXiFrw>rqI`S)<0;grQR
zPRm4@K8<7M4eW^BCyty6I!#jVBJk+q6z&7dmjtgFkL#Kql2qb2LyeTAQ5JZzXI5Hw
z&@G-|U%7r7S!=6&=a@vG6$qo)K_S1_J&(q?$+@5}pLtGb!B<hZDIn1*uEfUfEUS|(
z^GGhosX`#-cA(f9ya=1O@26P3L96(;kmlrEadbDOKSD^J>>l1Nifvp3`Nr!xnkVo<
z+TyISHW^zCOKW6B#8rXJ$UO|s-Si~gLoW|SF-g@=t0VTw5L!lI%|h|yrk?FPFwf)~
zz<HljL9Nk<lUi7U4-D9oqfuUj^&7%V=9MHqp?^H5;JNW0Jc}xr>(8((%~nMZN?Hx^
zU+0Qr6xHHRrZ%<A#l3aV-ja%rJjSHD6|>tlv5A)dF1U#nY9tj+kAZgdx#pzM+EmNC
zzy2IeA5Kdsqhjzz;!#Na-6hrh=3}4E6eT_|8i}OZTqL5Wsd=o)n7{J<9GY4ziisEV
z*AwMruWACpYaI(yCEM}&N=Yc2HXWFH+E@!p82r!8=9*aA9`7yqM5EXHXcp;q7@AlL
zu;BfdH&3^a$~v!uO0s3Sl5lWEb?#xaPUZBnq}V$eT|!J<`_AGduRJj+i5jI*d^9p~
zbk|L}^4vR!ep($BjPV9fq{cYD1fIq1qnP-Uc$1Tlsw`?nv@OhTD;Nb#lzKNzpYt8R
zKfo+7qSurFrz0D+e5J#!ogdI^!5huB_Pr|1{gPRe@3API-I1|{j;fi@$ffwWg?twZ
zRk66k^J(0M6IWdLJ_>zH!=zx-l5S0413POz9Nk{Q<&Occs^q1poRKfm6I!Cfs#QXN
zBt)MQI-GF(7p4F?*rTk$&CkBkUTnt1EkarIq!zIm!#g$Ql^@hbd)kocOeOh4O9}M%
zJ9>8~kSb%L93@{qAt}Ua(Q9X>XtR>06u(LfKgfI9ki*WoWIeKRNvCV!bZ?EuH~iMU
z$m@ykQQYUFp=@-vOoP{vO{FC+3U_~~fw7mN24kY&F6P>2Rrxp$-VU0#mgh&s?lo|k
zYkV@tZhJc1oOq=W;;F#B_fW_bwD8ST6kFF_9I?9umD@Z*s@58FF;?73{hm2s+IC!G
z_8e3f+$@t@5$EJu`Au8f7AFNQC8^HN{XC?Bb)#>4aAMY~(E&ZE<F@BHR=X+t%;P2m
z`L6xzeyzIa*3eWosB&^QnJ{G1dbB9MX6Jl;-_kJd-=)+~5E;4?HQ|%C&MRwW=XXIa
zDPkh4fyS_!2-9t^jU%$lZ$w8&)4tk<v_vj6k}!v`#NbP7?;89|bKSw8jSn*iwH$Zw
z?>xi(wzUEtSAF~)!nO&6_18Yqat3P&U_D5zWKVRh!dl|Xv7zqKtcr;ct--|Tsp)>H
zH-@i8&6<SkjJs*|-~TaMFN_C{PE`akAyj6m5~XC}K<MxzSsn@>4@zH8B^c!qMgh6O
z28MBX)K=P18{6?)81w-7&zQQ@d7Wev-kla0L$(m#*%^z?7gqL<;RIY262t7qK)S=m
zNbmE?!kE+j(;ffMDCOrxcaiw;YX;8KR|T5s?&tTPwD4^YmALx@R(V$@CW`_}J{K3u
z--^dowp8@Drr0!5<e`OM5OSd4wUzNt9ujQBDjbAtj(9R;T++SG*1#v56<G#^z?CmR
z!lasAuj92tAt*+(mkd-;7sl-91Q2b}^o74bl!iSt#bn32D$nQCvD944#nBB?Ih4I?
zYGj{=x<`y&-Q^&^hz*vy+zD4KrUx;4ImOamw$wy&=Wz}edQg6v(DNtl-5`HLdfOo$
zwSR!E^-$t;P-`!=`UOaE^Csyysb|zk0<$K58Rebok$wNi83jw77@15g$w>)kVXp)z
z6t+F4H&GV0J*!_kzY04XgYs<%lipNJIu~=iT5Lh^j?}WQST3eNdVRb_tupy{o%!4#
zFQcIlB)qa!xwSwi?Y@UzkB1?abAZ{#S$wC`MV&w$$zu2m05~oferGgTpzyhbVl=A2
z`*W3pk;2}NEVp{*#@EVFq~h~hzRQ0r7=ENFiQn%-{o5@?pNRaf^WG4sr@>n0&_h<B
z=(+}a?W>eyj=5S>{4lNqBn$u63aq(yU#<q~%xxd8L_rR7{r-Pk(mbKyf;CxHRhGWQ
zGj)6NY;h_OU#8EKS}AWRk`c!-+Px~c9WB3Pv9OgQB4&d*p~tiBDj@}7TtR!f8;#@t
zh0hYd-_79NV+hxctymeHBR@R`!5!bB2?0%;xCQyVqUi>$^d=#6%=Q2jwSsaJzG@-)
zgz$GD!EVnV_YmEx7kuAIZZ{`ZnRfA&7M#5&c#x7#MPZFLUod}@xSxG%Jg_G*)%5V8
zeSbjs)7L1pp%RM{-qMv8S~`<p6VrAowu8{SnU;LeCL*1`Kg>PG08RV>ITMs1+8yDz
zT>QKSnU7so)dP34Rei4W5kpec4Y3#L{eh%Xm~iQX_vW4G?~vgfYy?;l?)vqm<`73X
zNbj@?%!(=_{yL^)Fs8{|ayO{IC4<vLo~OR0>QmQ@dnn?i_6}yz--s)a!$&d4J`UlF
zDaMVp5I;Ywa%A>xc2Vi}$?-u?fh%4kDG>&GX1%l*w9Z>0eq+!oU=^!nxm-WREc1{V
zzp5Q1Z5{cz?3NC%5LS<L5piawe=usBY|Ai?zQ(0YLF2bGFLGTO#jTtcZs`2*MY(Q?
zC-JnG%q0oN!<&Z72}z7CdUMbA9Z0dV&Qgj%CR|y+&+OcOH697&Q4)q4wwvCTi{m6b
zb3rpU<e}dy_F?!NG4g+>R9V0-bblk+9&FycJ6ZeLL%+MpSrb()+M~D))nbO2uGBbW
zI48}|qWsy;M+;J6?XJl;y=!utj|R4@-r|}x0ei9tqII#@$p#|MoveKSuI38-B?xIv
zJ~W$)6+HfyDe!*+Qgv5qjlJ+%6dCWq+K20t<GoI^B6c^8`j+~Z<-ZlI{K_d<dPASJ
zGpHcd4L48Z{j|8EWJ;cxkzKxIOf$K)8~e}^r}h$a`kkQ3$k4;J40JVU&#=5Dy>HYE
z`WWXXu3Tx{c-GQdpjlK#GkM#UI0q5CrQ~AvA{d(Z3ON_tJ>;Cdd542`1aYZ|&2aKu
ztaxAY*#q{khL-$WC+xofDfMN^DiNVOOF1x^lwIr}Jc$z`mx{OY#)S&FDMkwCmOQP3
zvJKRH7yMl8zMppqof94XyE@V*SQd0H&i{2T0SrDq3>y>6393n2QmDJ43&*mRR@yE{
z@880aRsQ~fXmi@aNQoN({cDJ!@q@&InZ+pGav@dK>4Rg*;Iq=hP}nsLhR5u-q;c?Z
zlbH8Oxro7y&-Vv!VVwAe(57#RiG~lOqareV(_jj<rbeJLG*LL2R3&2Dw5wBvx{jyH
zPNXk@804oD^l86=f-wwVUrv^u0DM=F`e*-uNA!6Lc~9mD%)CX2`=W9{_qV4htFspi
zNAN|8z$uafWB7R$)Z5SKav>j|%%84uU@>SDOI(pC`zUcgYi1JI_EAFNcs_Y~I83KH
zf1~^nMvd2GN&BdrhM6Z?#7Sr_@=a*n$eOlXUkoBhQsT2-I4FKAzp`BfRM73IeA}_-
z>z?Jzn2j(KqY6;zD6^cT+ebxDAmQ*AJ!uFvAb;G;bbN7~=DAxH^K27p1Zv|A8j8Tl
z)FC5d$7AtIcrj99BV%W#Did7Fg@YKJrLRXg_8#|g9giDAZXFyu<}?b5KgE|Lz@SXt
zpdGlE$lPYiemD7-49>bxdc7ie5m~9gzFRpOCijwIx^T2r-Xy2Wf;5+%#M*Z%+L@h&
z^lVBlYN1sp%Z02wN{Knm_povb(KHGoemL*(du}*CYRVKG=&`}^Bu(S!j^}t;rq2B=
zWXGlMV2FmRXnK`AdF<CV<x$QXpgO^%VujpQir}DDy_ro`XXGOv+g#*`DdXH66S3^%
zx1NE7)<&0^FV67~3odF@DY00v0+nsFt_n5TkgM1>{?tP?@e>BieN1SbcUg)7oL@|9
zGjxD2+~is;>Psdk^ThJ~+$mH*-uH`Q>EfT|=+<Nk7#gUWrBfr9{0i^$22M<8IT&O<
zQGo9erorf=TjIL3xk(sGnZIi}=ndaxFp%?T-a#XMT>g8T2mvNc`U`L%3t2^Qa`)jo
zJX*W+4FMw#Z&!sLVGV=?<y6dg)X$_RF^V+aH$g|z#mE5gR3^FN7DTFRnR3(&LR1uE
zL0)wp@8J2oJuAo-#Abms2;rHUj!n%;pR2_B`Ws5P%P*}5p)h{;LQXY(BL|G&X$%YI
zj5&F07epIger#QX;<MX(lHnmmENbF%h1COa&&)M%&0t;Ygp-I>S1BBjPOn2?=sUvL
zE|BAH>95C4{SS>q6CVgwH5upLo{BytnQ<Qj9deXbd=|b}+8?BlMdIRfKuHH`iI26v
z6b||zWCC%gjgR$}TS+P`&%=KKI2XmR=dVTW$5Ff_U}a>xP*HTIhx85zQ39S99zQ6Z
ztJP|vozo$96;iL>%U5lt=iEFNh)L#?c`-HC-C}c>BO(?Hu__1TN{{tUN<r9#-%^Uj
zx;0+XA)2$m|1=-O{|qa1JW9U5l^)iWHM6NKe%}xJkY94lM)gR((;a4@)3ZX)z{vdV
zjfNjfYF9uMNHF6&A1^)D&5h*AUC>b%^7so7C{m1A?V0tkL(aSpvniv)PWrq61?Xsl
zZ%286rMHh`*sf*5*@zR_d?;#(uTAin|0dLSC}u+PR1RzF8Q#pB^>O6QB1lYTze4g!
z_`96JGIe8qa=B*;Jnn#xDoyF5t}n~%w;s<LVB-i@4)<j*wU-L`x7W^}s**NUuP3N$
zyWxxC8Me>c9Ud5tc78CxhIfd4L)@m5lr}1>;K2K<ao1FS(w~F~iQ_qOYghWi+y*_0
zcXNVy>)UI|^rq66%7e>TLZ6{RSI_;9+3e?Y&-lP0V{?);{j=myNNVr#egRbe?6u1%
zkt1_jY2uQ8s@LiI?j#1*o2pV(s+4?mNaL*VoPRZ`c|XWB%?vgZ=1D5v`9-y9v_{hR
zwj#X)i<Pw~i&bo%>6x-pt^Ly}Y9-HU73rdw0DDZ<y8qq$SKi|*Vgp!I_|b)DR|6Hb
zhoxDX4`vBusr%BkKRUgnw=g3EQK;oA*iCv@6GH%P8#@kPJOkZdY3pnB>1MiYcrEIJ
zlb&sFCH1>vj=$el^-2PgZrBtQ>V+?H?hB$)tyGd@25Gu0xg2FE4#5P6%Apw;w*pqK
z4go73y2)@iBvDH`0poF87sZ%R(+JY=?dp{hxOL7_Fa&w?_L*dt`-WxM$PKTUs`@t(
zoNU39NkmOFV<rQtI9n#75)YxC=0f3Yhu^t>0q9@ze)O*X0$9Ip|48RYBc2P<!+oM@
zKP}P@k@hxMG=)vnb68Sb+}}7FNyLaRTP;;oFES~hCf~Qc+55zMt~afN14r2|E3_#P
zRT|>H?G)_^_&KjB(Ed><l-@xFgW7B`;B?>}x=-M|63b!P7hey@hoy>N05b168j;as
zvXh+QPU~Q1h6+k`y2;qiq!=&;q6Pv4i}x3&L}5C%N6d7~90MPnc&p1vP<-2~AC+Nc
zR`I5JX=HK>A|XGLFu=TM<Ue?C*JrvTYo=J+*%!<ll-KbGJL_KMqo$ZRYJV?<qh1*T
z00KX<zWbj2>{ElyWkur<jRn?pSrozEJF>6wTenl+)Eir&m?QmEq0e*-jo<2@J>q@=
zP+=N5KC98Y)|L+m_m<{L&Wn4*1JSEsu2FwtPa=zYPWXxs*^o|mJaQfo+&!YyVt&<y
zwsI3j+Ln>+h2GM?<B=I(8M}-Gko3huNrz-#^bBH>4mgho1vEh3%J(2Mi^3;lhMiW6
zHgQn6ZpuP`kvmotj1q9QTTs*uS~ugp8X&dANqq}N(#n8iPsX_`wC&8|QId*38ZyrQ
z0ar1GK|<ja(@pal;8I3iRCvQ>o3v^aa-`TUDjmi?>GUY1JzX}wE9nThfSmISsHC>K
zvGdZ0z9lw&AgvC>ywxCD$P(ubY#*Rtcr~8st%g?h*RIVE4}EpHVamlc>Qpk{sr~D)
ztHg@{ulMg$QYKW<Sum>(+T)lOWLDPWPx9%5IS%CnPo=zkt-~jFe9U^JK9PLdaMHL_
zxb5ox>@4;~Brm`=0{7q>f+;gV{QjN$OxYycb4TONs}A&_+_Ah*wRaPl+DT}hA9kwq
z@l9JIx6DndpYqIb#Pr@>RZitt`>~5ep7->YjzI?X?Hdm|FZB^+)f@{iK2fNIJ&pIf
zgX|7ZY$f<nD&p=N>%S?<ZiKS6xtt;lJ+7~jBfhh#5dc#Zd#G@yXnFzbcYliTLkFY%
z!RW1vIeK|?5wVb#kJo!0D47@d3qZlQ&n#3Qyx2^8GjdW|v%=OLXJi2F_n}hXnwSwG
zm1w`W7GZ+-u0yjymN}x9{Oxq~7og)-_#)PfYW`U@)JBW2!PoLTpCvQ6CWq}M=(ilG
zIP`z5o*4uCfmyI#qlGE<@X`(zI|9Xd(-?RZ`1A`91b?dtdN!dfL_-!LKdkXvo_x2<
z2g;%2-IaJR=}9QzJJS>kG@5|%CNTsUmri%P`MH*r*Q4U0qzAr&C*qEo_J=jvpI1HX
zAIR0&QNNF^-dSX%eosMCoW5{gKCW@&@$Gd#m1%~0CKf~ft%|ap>XU`un&_GmNR=1Z
z@qO@Dy&p8L9J<gM{F+J5OGh#ON4`A^5d*UO$&mX#)hNDp@;`{otC>x5h?FX!b1f&z
z5?rpHX_&61taOyB;#M9LJ7LCc%D~&LGJ3QXF82B2))G|YYXZ{6zbaqDK<7t+<GqJ9
z;^%-&I02uoMcCuK;Xw^T<6r67=L`_=Wxtda2z`c|BQW39zRc_Zzk3p@Zqt79t44->
ze<}};N|;F@gZP73DHN2tG%|J1^MaMHO1r%aZ}gx;wm=Gr-{+0)qDCuB2}72-(>t3u
zp$;~;TB^h9)ws)Le_2XOrO%O3NhqoV$1^4jfm73<d{)&s)!2ANxtRJ#mp8iTg_G8k
z55<pGEf<$p+{G)~SICm0WeRzI?=gIZx01N$%A1d`Pp1N5aS#Y-tZ9zxUZ3YJq5M8u
z9&dYxu3q_pY##{AD%`H5sz4Dk{6O7EDJLTwm?x&s{`l<Z-Eaj8cYU1q8G?EI&vT|Q
zmlef9CeqZ7XMYoPM?BDwCB_!{4B1z9kokgJP<GJfjN(thePpT&J)HF&t*+3l(DF*o
z0!GYs0})_f!<&yH6Y}(5X;OpoMCK=Xe<v*QkV@uwSu0cJ{-+#bsLyE-M{%1%{Eabz
z1?+a+zW^~{%9L*9zW{Z@DM*K<FOHpuQoisKRt0R7Oey-355CtAlfZ9HwH%L=KCzf2
znB3DNMU;B!X9Cl*iqkaSVs%O1M>p@7#avLIVRy{GKX-@{#~&W4QjoC3nx&6NdHPw>
z?Ww6}t8y{YPYN{VDWweN-AV%~%%m%x|CHB9rXaNgqT)=g_@ZNqAI;|1ZlDA<YDnAu
zA$0#Y{KK!+&AOs;lrYEc{c<5<Gfn2PgSN(rTeZM%HE6!Br)<AmWoLZtnzD2GR48Ur
zF`cH?RjvGqKXFU3$-SucUQ)MA*h1wM%<^^i8@H%pyJ{speQFtLE;e@)s47Xrqr&SR
zy>QS(m<+jRs_GobbZh=VyBwUJxOX*jXC@UGmoRKluMVgDIlfS*-A-}iTG$OG{F!W1
z_$(Cf1_DEv!$a|ycA2U~+j*)4PMf#=_5Ghy2?e|}Oqb>P+pEdBfx>jy5gfwp^>Jit
zHu6XR-9TlgHX1|Y3+#2gr!pqcxntn*GrNK0RLK(Asqxh{H{5s23|QXVBQ-N7O_?<H
zGeIl-ULG%xT0L)Uf#u@)IIB}^L0Jhy((g4kW=Yt>r|owoJDuso^3UY}NCYq-nRD^i
z$GB~?PhU=PQu!Uw=jM;dvOm?t&T%Yfz=*ZkAZ;%9LN=$je57Bqz=W&>6McaJ+7l&x
znH-7l-EUVa?|pr2Kb4855NL*~cPmIX(4Q_LMbaDW?zIAt)P1Z?=gu#Fi||Cxe7w6%
zI3IMH3QX2~?8y)^jyHKM-BnYV<fa;%t$^mbbYnQf{?<b{k}#g$m}#7rT=${E=jsC(
zOsY6B=BIu!lhRD5#`>L?_qerWhnk9T`(Fj%AzOGC?gTdT*3#d^jq8gXa?iO9x5uvT
zEr58SZ=Ip<c%^)g$E4eQIb#gI|5);G5A)C^z)76VR#qku2=Y(>R=3OeKDM$evyWT`
zWjvIb67AeAQF^DX8$1N&qPKBK=1XZq1?+(%EoS7H%kNXtywT90*b((;m<8+vig*$5
zXGP%VVSK|AHxXSIifN)f7T@@wqtpHM{=2GqeQwvCGG(1<h3KR3xhU}YgI*KM2uj)>
zF<@@o%-s0d643BiJF8}Vn>YU6wB!4ntB}~m!oCx6`&2N{w}F>XR~<kAbAHepJ-ALT
zQjBVnUB5*!hjUA~;d694MfByQnXi+r=_PGj^Z;poQMj<xEl*kh!*KHc3%0LNyC#!h
zuu~En#a%%t!599V7!u0nis$UjyQKHi`gB5ky`TN@T^va1a}mbh7DqeR(vkWmJn=1>
z!`?%@9g}Jw;n$KB;s?7w;S<L_`Rtyna&lq7EY67i6mj34>ljq=3r>^Xr{!{#li%Fl
zq5%W_O7-@`pF1?rFK++bp*g&Kl3xOSgA9@7C+ft3n!eny?E2!IC8{lE{V_iT4>7@3
zjXqh+kBwRkab`W6+dB{Q4hf325ckE5Yksg=Dt~7E2pm79^Q>5Tbsj@QW0Dm3SQzG#
z9;3&JCaN+mQQ^Db>YQT4KAv2bnpi@_@TC6aNS4NoNZnU9UiJ&H1Dnlef!Z_>Yw`1x
zygKOiAS8vaLcEzu&sNkmKStG3pSH<#H|sGxzhg$Kf}<vR4IaEexm=wNvxI8{lJA&Q
z2r`nEs#q$O+6#hR#XlT*DWhqiA37p6ddw`ewWlt&uB|cKqF%IFN#<|?Ii%!js<I{3
zb=<Kq6nRmQJWrWpLUUced0n)`^0b-GC4<00)dT!h(lGYDT{t2hyJdJ7t}0$#GqY3~
z_B<1u`aAG6CZ^UGr=~z)8n&){)A|r+4#|vKfY;2Vy`xMF12VXEU9m@TsV&R36X${g
zpS3NC!xtq%Dy2}o`??v)$B+{%)FIg!)Zuu!90v8VE2nvTEM(ZZ_}KTX1iA}#YI*27
zk&~rFe5xZ`VU$C%4mjnFUr5S`$T4J+)Ex4ua~NsOb-9AzRd(3s?cc4=DL^OVkzMSd
zN@~TuBl*2(H&>NySmd4>pY1g($J$OHgR-QEv=9QPY3VisBlwU@Wr;o=@B6R$krB&k
zL2zy8ZvK6+2fj#%9zB`CqB?o43Y+rBt%HNJ;vDQ6)VfJSSXL7XJy-@{b*fXP&7*TB
z)-W$JQn2T{GRLBrh~>2BO^cltU@(9&F&`<a2DI^z1RxQlWR_?q5e6ehp!(6Bw6mHv
zNS5xJObmr_+6&E^5FQ=CrIPYeutHm{&`^1f$Ly>)Gl7VR8c}3g&`65cVYMkUf)j!W
zS;uxaMis51PexK+Dr+G>6ZG_GC~ErMRgOxXe$^JQRU9QUfpgP+a>5W3q9RUWDpfLu
zoB)?CwdH9Ad8CeM=@zvwA|o<9Bhg6+ng;nBg`-=!0JKrIWcXA!pb8}vDhGyc|I|3&
zVI>=tHDA)!QM-A?g`hI2IySKMx6bbf)Y*Ok;?aiITHE5yB^pb)8q$2!&q^F3GloCQ
zdOIMh!<9s42q1INexo*}4^f|DEXc%j-&HA445j3khP1JSTMir!7or_nE8YQ%YI?Fb
z!?tL@q>Fom)Ku+AZViz}Euo#pd>s7eU7(<ZBT61-mz{Aj9)Go)z8zK`CmIyP8|PXK
znzzjE+MRQb@$FQ;dfXm4aCOeU<Zf_r_)r`((jTvtuTO<4#u!lcA*Of^^JpO~gvtew
z`Tp^72*oW>;w6H4viDE2L;REM&QF+7^!ej3!U+(rvM_t0Ls%|3yv_EE8f(w>nK0Ms
z97U1Z15k)Zta>MTL&MofkhE4S%5KXUpWiL0x)<aPG2)5vg_S!4kM+W3oOM+!@nF0Z
z#+78TiI|mZ3I>x^jCb-WuM7(G#os{Bt_Hvmun00(7{^cr9?N|}=S03+pN$XzGh>wP
zh%|~=>Wt0k(u9b(;FwBoEH9<W=yoT>qLodNEm5s$6x|A)Y$J4;4I}VCJx|S=Gt@li
zhf<KxE}YIohLPuB-EpcQmjD%%^*#n;jz%#@*~upUlu>KeA~invwFUh*92_fxBS^d*
z+!;k$+-7(BcD=C1OiFg`X2Sbz{ks~kyA?;!hXM0(vlcv@osDW=Z!7x_?+3_B@o=tY
ztW!SEInS^Rr)Oh-)-H1q+fZVD<4<9j?_jlK%FSrn9)ijQmQ+N{CGsrZ%B)WZ18Y(W
z1|mOJaj@>jpw0<0WU~*XKrUwWt65{N9!hi7E8FMdr(i4qD^oBI3KbJUlM6go&X&DV
zOnGK8zV8Uy7Y8EGlv8OWd=&SW@NljtjrpKM6k!+^a(bu~Q>Pen3CgMRC4D=LXXQAl
z?L)H^UQ`Bh<1MX^7ERB-X;mbtHI6rUWG@bg6LIn8fLruzOZz&^`$r^wsmc73scq%y
zG=Dx%Xk7XWfWQ?ZzYOw|zF5+>Oi60#-C}K#9HrMKB+KDvlWQleS>2(irBoOC?0F0R
z)3B@;`5ZDyiuaF88xH2{rF@gWC2$93`qGeV^u#bur78Gg>yPc-ZRU~?HKn8mS(E$0
zqJ1Ha4DKBqTjF)Dzz`Pz=Gmp+$ru%0UNu@^WL{`Gbtd1^w;X>u1PLIKq+tErV@c3{
zoHQ~@K0UxLQ&M9JX@Q|PMPoh{hFd<rvwyXJ^}S|<$?LVlc#h~<c~T+|hAZo_^SykI
z&NFAM-pNkMN(GuIq-D~`M0g0aj!A03a*har?<ugG23?V<6<P_|t6Fh{E&~&-cD+=P
ze<{gJIhLnm&1~KubwZk2swb8(tEE)oLynWj<3cW^rIY^qf~!Qmc{IHN^%YI|IY-b0
zbs8g<hbD;Iq)}eM8A;7hpB*S=&6V{+X??UKO4OmvIkvZ_i4kGcu2U)HQ8IUZ2bOgT
z@h;&TkamFseMp;!V(udW)XeohSk@6mab#VWs%5ae{QIGAp;T-7Ts#zBlDor&MChzC
zN6p+NFfRxuH8Cz0h@dBbMf<}!sCYUEtpAKK5YU@k@!^$B!oX)a8l;2n9zTVP6goib
z(~!Ja4ITqx*kdG$EjIzd*A0B|&*ZvPpLU}~AD4a<62dCDO%jTVe0*`_np1s7B)7#C
zmGUQs49jbkx5a&lDtT%J)rbH5PYTpTAjSXBE#B~dBO&PJf3eVxSjT?_6Yl~s`ToDI
zNDkF%qnz<y$P$`T6?fxR{tGZ#Tw3;!k{_pIAZa{UKxz=e_y>xFF_S+~2|#-@U{#`9
zVj@sTmTdzINWs|hmUavxhDelR_m9Yqw;@QurAU-P+yGKq(o!VK^I3B5Ct93dIYEPX
z6OyP=-C*=HV9sE>oq(hlgCU7jAW;<Ybdj|{z7rr6sQ-HtrAXx6N|eEgIHgD=IvX6L
z0D?pTDN@`Z6Z$~H-z5Pl|DQs>Iw-EC>3eZ^0t5>#ixVKhHNfH$B)BHHE-t~{JrFD`
zy0`|H-~_kePH<f`z<oEl_dZ{}e?0G3wRLK$PoG~;%gpIL(=%nMbS@x<?0tsFK`1Ba
z1?~`>{u?R@#7HDB0&fHbmM8f}=Xt>?t4ScLsCh{4!4aIk{|71|u0C`h{s>EWB+*1`
zHk_W_zrclFZY1Ac35QbQ`3)rtj2P1W4Ha>oAc|G-+rmrsjUiD(2I0fMq0;W)6na-J
z;v~2fd6r}xvV@l3qO<R4D&@;prFwrufhypXMC$1ikZ>&=Dw609UeEdJPp?$gqK4?5
z6n;Zxj>9R0Z{9H^FIgn%vLs>UB(x&Tff(Tm#%7d9Rx$j6DklUn+_C)@y5l)770Dnv
zgjMTEMCA;()pFF3;M3nw0}P2O&2Y>lN&SyQv`LuDi3ALnO?Sxe7y>8S5`Hn@{q9vc
zuS8Pk?*>B>gdx$3p#?;f1j3vHvA`+OLrg9p3wR@v%M?@n4-cH}zy0JB!Lz@n{@dMu
z>DdBrV~74b$lq-8Gt1fr|5ebxP;uCo{{OcB59Y$9|DQNG$e&R8KS2K1E!98S1_C_W
zz=tpX$cH>vLczkMT=r20(4-S?-C@r+s&WOcrVz(`eZS(|5he%XU@(#Onvi0Dt~~b9
z2KkEtcKlZFm1p=Ud82wH7Tx>F{O9)MCW+Dz&3+*S^v?q_G4>1Q+kJ?<?@Uy6wk%XI
z)B~`gN{sSk$}{&4dJfaM-h|T^^Qj?Fpd`E+f>B?0fB%z%XjCXC;Ja?5dbrEy11L69
zE%oFVL|SL|SVQOD*e`P*ZNg~4!mCyN`t*UOv~tbL40tFV<|Lw4rI0{eJ0+@H6aq3O
zCYuw)o<?u3@Rqz#A;YQN=qO94MHq`=P*avm4CXKdzEg)3G>2u9v?mj&)e@h4uVJ2L
z3WL@GnClmLE(+exV1IE^@}7`vL%b)t%*-e?9d0(%NF^i3Q!iil?NJkGLeQW7b*-)=
zXq8ix=+f-C+7lkKgID^7=R54J35jK1s{-#;QCK1q#!u#R37~!t7Nck+s0QU7L5THT
z#4U3x1qecug1ijkyYyG~=~G}%Vt|#_?qu|>#t>#rU*&6Y={h)I3+ESVs?k-L`3Q}^
zbTZ{?xXvFd#THgXxv5B@=|16?t)!*9l-$=!u6{e-VGe!9M1&zX3p+<HGdXQxt)7#E
zsZH%7U27J<J#F!{59|6e{0^tvYO)@^x%;`$YhPaA)C6Um%@MJn1R`gBHRM#{QcjYP
z?j1E<+*gW|C||e4N8%jTfX9@-02%`zcy@S8_!i)%M}RQb1(M9lID1o^L?1VpPq0Am
zGc-eySq(_l?$XFe3{xU=$XF$BeVqUhcy35dRS=jlG|p<xY|2)mY~&#dzVuh&3%7cU
zJ3;O)DX=a~f%YY7r|IZoO-7cOmd-^sKhmKs`xR_4{n9!(<K0979(sJUlrHKsL4ur6
z+Nf?by-Ry<t$1fF$7fE5{c}6CgX~8K-c03&Y>jT{KGsA^CD8V<@~EA`tR%J<7|2Kv
z+tcFn_en;^NFRzKa8VH>4j35;G=VGH!9RkQI|Aav1Vi@&7=J{Ac&dtUf{Ov~T;d3w
z+T28ulwod2ReP*-N)R|;)rXykO9pKrb!2Aw`Kc+qI!e{_o}WdDX5e9<7;B`qB!5jg
z+NhWCjgiXZd~&DTw&MyW%hyNxHxpj?_xLbKpgdDz&`qaHXgsoDh@z0$39E3K^&9E$
zKT%KzLk{Jl%3lFK)Ex+&N2g~JZ_+o@xLH45#IgaQnpyN1d)!q0dA?+(7mY4fs`B*A
zBt|bej^5&JPRg+JQY@CUe)3nSuH#B<c)$Caa~mQA-3y;tKODUiA@;Ni@gol@>Nww<
zOfc#hx2P-9TXv<AqhEy7W`#?V`DO2$EPe1RekAw&HYnvSL^smdAvI8@nT)Ms?!1wj
zbc9;VU4W<k=`>R?Rew&WOLUjp%|_U60nyQ7SWd9|MXi=(Q;PqrFe<TxVWfXbSAWp{
zt}YH80jf+bBU3SmbiK(U9fF7$A-l<UJodvTMT0UpN<52F;yquoVfzE09bydw-q`s}
z{+E&hP&18i-!oc}kEK>ix{>#ByBPU*)Au;FQ+C1OyioVrV*<Y))owN%><dATbl?zI
zC-L{`{r&2{p3(CV+hs?ZAFCkia#8;U_=1DzMu<&kN)FaDQkB_35t>OoL7zLBNF-n6
zGpS#(p_cqgUCqX}MEiNZmz+vYq}F6-<YW}lNeVk+gZ!?l?9#z|-<p@_8dE!;ACo~Y
zV=6!vQNXgsEc^A5nd$RnlM{aCltn=D9=R8nDCLM@EIo##6~3=V4H9i?+VQbEHC>HN
z@AgXD9ssf1WW6N_<qkb|iH&5w>ecqyLg8_uNYaj?%qhE%Iz}xD#@;?qb0^&fAKXhI
zMZ7Lj#ScWCwW}F??lR@L{xf4#tc@z_In-IA4*8veR;g^CI!l)~8dTlPLwY9aR$xO2
zO*WB&j^CY7QzVt(ml_5Q{2V+Iq$gT!1-qj-<<+I>9V<&#t)lW~9$M$7YJm}{tkAld
zs0*iD!~#qTI>CxZ%TFl~{~0hQHUJ-B!e6@k@YM>L!7h$4UwMZRY)22MznR>vY1E3D
zUES@lJ!o6X$v1m2QnkaR1OI%_l~fHe(^o>;zi>uUvlf1=fe~+~<)`YG%?4qVx;QX@
z=escSCd$VUtmSLx>A<iAXhgD7si25P#t{=z#3@Ks>!ow3((wNd(zlJ~4!ZT1tTZiV
zFoC!=J?u*74s2@ICAo6GcW*zOxmgiN00eL`U@6KWTnX*3d2Q*?%BEAunrX!=;&Lzp
zbup|saPqcs7)^PCQt*`+2qmrM&0m7}XuS~iNH5TNOibQKy6<R2TW}8&>tbMoH(bV+
zO@OgIx`kG*W(t6-9u|p+RY&<%<jjnBL{^QwbQF{An_-;jekolsb85ek6t^+L)+r{B
z>QmkvLGauoQo3qwAD6*r2VR|=EKUZhH{X<syOh^vedlMrnnZout*O3Cbt4_9bym}g
z;>R=wqVG7FQ4NIK+~Cf<g6_RlExw}D{V^gZqc@mP7CXBllAasVq?=qc(q6fEwfm66
ziyldDVNFm~^^!CMXlM7qMrH@d3w6`+2C3s6yW=c+2TAJJ@BH}EIVF=OBvhw{*+N=*
z=7_kpSxoAvsM8}7oa*~?#p@LZq6q<aoB~ZMe9{I>&!zL$MRpmpIIVP03z(_Wdb^sg
zZlkrzW7pdw9Z_Qqh$e(@W7t*<6uR38`GY&|LFd5V+F7aMe9s!@{^>`oG)znKl4`>^
z^S(;pXH|MRZQX2O<TAMl=uOLzYmHbOVrKadvYb9X?C&f7c~IEc)L>yT^u#87$m<ql
zchGNG6XzY*wwByq8&HFe=h`&i8iI6yq2&OTlrtI31LOsxzV2Q2%_LFe6t?LJPxh0I
z=AHLuy*g|AM;p#8A`>Gohp8)KmWUn$g%=isy?4)NeS%d?&C3z%rr-qtKC`hnWFPSI
zkDOM8i!t^gw<K(nuOdpg%aBDZK#|P)Bm|66!Fd*|Mj;x0R#uycXM?pKRGF!&ggOa!
zsNGRSKxdTo*0vbx6i^620wsWLw*xxbe7JKcK_|aJ$tW^LSuU6S>}xtZ^0usK;d)<&
zw6jX#>JDNa;a8UHlRZ=XEf{(Jg^@o|*%!gUqX{a!ABkOHQWnNIw<XwM{Ijj5%)NS%
zc=dhIM_W*#cECHpTN=P{gBP(ZKZ5`an_}*cRs$63u$SVTn?0U4j~RY~gFyE~h-c$p
zcXB2O6YE3nC8ncQ(BGoXK+U?04CB>j-$&$sogi~o6nH6D5B>&-4&|b}4H9mVNw$Kq
zc6{6{!Q)*^PR-4li*CUR@V{%_zckj`UB0@w_mIwduJIQjDsJM-f=uK>5po2QI0PF!
zM-a9JR3fmAhiLx=NFk+(4#vOZ631SrpHm~<toC3PZrfhSm9E*eR420Ri_WDt|ME=5
z+A!FpOHKPY8jZipBcFv9@Rc@QG}>NXiBSRC(gGwjU=IUXmbjU~1aIbfzf~tpk7r#=
ze%p+(vN$E6CLI*i8S|S@b~(&Vlj<f8Mxc88EGLqs`#Jg`$`~vU*k!2a@a+;9x?DVK
z5K`70qV4`QJ?_>euiyqmTR7N^*ML5x)1Co4$Bb{MF)<DB^5iz@wvG1PD#6;#k=B*u
z>b*H_o=fBnA(QE0<Qq%fj`lGe8_VUtGO`~x<|>j}8<TG;#o<qBde2o>o4_m*=<S;+
znQ-Gy>dF}^ic->2F<UN2Brg-6c0`Hpo1PnXVWbt@tW8eI0l`f_yJkQX5G+o+ywR<H
zAi>E(Fab)W?b1VEc;mVy7<!dg`5_h`vAY?Th)$5KM#G?9@)GX2WGvCv7uJ|U4!_Wu
z3#+6A36%;QY6pV1DWN~b4u_iE$X15hFrUE}XOs@6-EykB-gxgU8sgpX)w+#xri9-m
z4tVYol3EH=ZOO!kgYmszTZIM$bBeVLglmr8IZdD8CD0Nqu!O%FaZ`)WUu3P0VBErz
z9gG#LJ^e1dQT5N*o$tyIw2DvE6d4NgrX5vaK+Eo3&xtkKWw)nfyuO1rsO?p@VCV^l
zNRUXzA&V)FfAiu3b}ttjVYNI*h)w!5R)$1>bj!<O`DJVcXRc2)RdS-D|IBrb<9P=G
zfv~U;IhADsX9EXG7+K35AH9#M+o;QVKjDZlc22lwu?8Xmx{OmS0nK^`F=d!?PKs!l
zI`aqTR}|;S{t_o4oZt&wt;<}u?d6u;G1k*1A20MBL)p<l;Z_q^W``Z0UB*D7_j9|)
zh+%M|j!H~7s<88_;LZo{v!@TbkfVtSB=k7K*dY6UY|5?X)iAY{0hM^3PJ;Tkn0qom
zgNm~*HkVR9JCu&gNx#;nce677Ck`s{LAjn<xF-Rc&qlWmgcYY1hqI^#e5??w)VWBa
zE*9!~q_^81UL{?WQw?9J*ff2ScDMJ3c4aYPZjy92xd&2B^;)PHE=5B%*qlPKPhLl1
zxg$Ov4~ev~(dtqRFu0gr4>M`dqNm9~H})NsJx?=jqmfrhT|U?hQtmoV%ctYoO~^_t
zNVl3=OH!$)_7Ke8(@rG{YQ&VC)F09?l_YEbV*7WPoN=VTCM;)O^3$`}!4y!^Xz=nH
zwpVm0MM)-x8DXAJ3(G?XXg<Dol}C`Fw@}W^)Xi-#=<uE`m0uibe%Zhn>FTi$8A0Rq
zE5wq~e^F~{EuE=5+?PK;C0)qE+xT|4Z8sI?;Cs^hi)<~Cwe)8TIos)zlPs?Z79Cgq
zdAoJAVBqw(GZXh*eV9~7R{4SFC^f-Uf&~1*nn<T|B1f4Wj`@P|=SEw4s>z8?lB>F|
zLz(!yz6{jYY{?<<OuM4iW$a~Ij_FcdUg^&Aji_ipG%qCp$f$UP6Q=6i6+uQ3KC_Ey
zM6(F;rQIp;d^9LPE1*>$5vW@7a*vPLN#UupYhO+xZvw#t$!6bFbQq06MqYrjXG=LX
zL;|ZaLe(F!rI(1s7#vPYv$~N_v>1Iglxkd%r9(hX|0Eq)+TWKN;9-;kBgX+Y0)S6y
z3!RmX)M(}HX@L!-M<Tm5AOf?WXtk__!7L%O0OBsgqU(f==7?O$Qo#i}kIwadi5PqY
z02yL}iIX#pDpb|QtVb<UE-)b^Li0Pq-Z>AQCGC%F#=R2lS3B}?O86KBVba7x0XbLZ
zH9^R#e5B;O=(03juD*#~n>~211Sm=}w(FxLk<b?izxe*LQCd_xS~tlG;fyQ!k}9Yc
zLT8tvo9v0JOp!#iarb)!Rx#{COr^4~aV|W{4<Z4K+KBlPkd7PIePxpGBQNl+KNX8m
z#W~tUM}0$Sb8POOi!2QZKonokO4JAy`Jv1$d&E_(Nsl)4SkgQU31?;`-so-T24`gC
zojDP-AX73ZHoo@)F$okNG38S=$zlG<LZ;c?r+=~){km(J_D*vYd76Rq+b<L$*3aP!
zY;@)ftb#1X*oueL&Oqb2cm+U!31asEGKTM`h;039JQ<R6DT{S_Fpblyl_Jm;NO}cz
z4XC&Zz@_-EUs$nZc)02H0?0lJKP5J?*W<+-Ogioi8-5|+<5Li|o;uZ!p461HNo>Px
z^v}cv@c*0P2(`5y<3%&u?=`v{QAg6STIII}tC5afTAz5fMe3slUS@^Fm-B_T>}eyL
z81ozW)FnFlV#*vaKG#|S14+Ndh|Mpi8Qh^A86N18g|qIy`{BJAvyIf!TC{n1`<<6@
zWhHu`BRQ)bKuDL4r%|U7g)#Enp0`UBOb5=OsjS8{D6g>$S;f<NW0`iCR*oFT-g-$o
zV?%(bcQCYep5Mf#`96v2GVf^3rAPC0_S<v|A57x2*@0q;ut5r<ESL_c-b5J8{?WY1
zmIv04<y!6ASegnU!#}-`jqm?<5dAea5gJh|_S%;Y#x#~O3=|G+(^1Nb-e*M6QvPf}
z>twnnheS+9V$^deGei}Fe|w3ywI$i>;uJUh^=RrHtG*K;qdmJm1D2@$>fKSY0=wyJ
z^B)2?{!$3=S-_b*k!Co_cLykjWdd-=8~taq=|A6k{G=}!fhjG^jnhm|T9r3_cw61d
z)EeMu1`XMa=nJj9Cg!aWBA?-aJ`>zcTT$w{yy3vHtD)rYqlU>)eVr3Em*Vq`)%1x^
z>L5vG){Re((bJ9!_2Gs&V{yY_jqNjZvZ{T{)+uedE#v!Fx;TgTHi)K0+X{U+^n+Ra
z*u_xTUjS<WZCyc9*^|fFJ-n*XA!jD+BXRupl*1=KvHI>M1Ego2%GASQmg5+Qa;!gw
zmY;0j=d{9(rKC<iz}amIR&)>NoK*3dLRXIEPp(TgNTf0XH(G-EKJkD^JcFzZS7+kJ
z8{{6iZ`IYir{ebfrmGXqx?zop+1%G#1X1mcyHA%8_9oGKVvA9!8;;z?CZsX9F%){1
zLK^3-^Rc>gH51wVME;n<5vCCNO)#qO1FyoG1j)sE-&Xbq&b*$*Fqt{tboNXPv*3Wr
zz+*$C#TK*%FrJOE`C{YVu~ciOOkD|@n=(0N4#22e0-fdit5QQOC^vX_s<01D<dL;)
z;pIf{*|MLWFa4pCXd5vhd57-B;^#ozWRyLv#PDS5q8Z}g(t(a;Bd1INO+I0@+F7Q%
zRGg$-ZA~nUHjIw|gFmrmV-V9o@4$o8?IL6X0p&RxF(p%WLP3K1QMq&;HjnPFeQWE?
zc(`?k|KDXf)=Ym-N=eMECxK@y$>u{W)o44-^!|h%uWEr3@4CG<ZTO;j80+-L3q8~0
zjci1P4g;4pxU&etWjLESO6+pWk~sA&PP@(X&{>#Vl@vCy<8SBMoAMAbF`9}Qol#|D
z{9uo3mCUz#N>?2j8i@@6kglJIS_|X0c&48ax<#p=T!W=&UgoXbT!xQl-aCJv*{zwW
zF8Hys*Hdn54vfSY*0Y`xH5}xWR2<0lc1j`wex(dDZ<`qPt_ugF(za&-gi~c_&NtIH
z{$Eq9O^zR@F}qh=%94C%5(cp8HQy{I=y*-<pFs>#&*Ce%ug`}<a2oU8Fnd13ZbiH4
zfcaiO5HQnKv^}VPf+#b`UiRi8H*k!;6aL6|rzb%fRqJ|I^9MR{ha3cJ%+SWY!Wn8z
zAN>j_C$<nM8Q?d&Y|K>+C7PT48@*WZFF+Z3A)+2xWw=-im+8+_O?o*;oybeRP-8zv
zoCXbw33P#3rR>g3-!eksy{EM*tQUS9L9X|eb&D<IHix36!lf6FCB0+?@SSRGXnyom
z2gl9+SVfDBR8Z3F`g>p6FdO5ny@@UnZI=xReCq`Lw9_Z8D#}d8HG2aboOUDT?~{Y}
z5)7pSOm&sY%vAM5OLy=(4M#t`rK=6|({-$xu|&mer*bM-tSkKdl7qP2)nck8>*%pX
zKQZ#o8WrHicR$Z~wO+CkwY-Ry)=qf2%;b~73>!i>{w1`Ex%cifCKks&v5*wS%vMM9
z-&Ue_V{aBC5xbY_znT!apO?5iG(;M&pvc#L5JLLl)>G{<DQ_=<yjpz^4qg9S61A~v
znX`rq!qrAsj1GNN!o@)6EGTGFo^aC8b;JfB8Al-t1H{1w+r&SWo7dUDjS(2f{Pahd
z-Yb?M;c4Eb?twMcmHQ1c=&xixr6x!iA6(3QW0`7Z5?P5{&J24aMB%iEOV}EA>*Xg_
z+9!93S0;aE_Qu;~d`Wff$H3G59%i@B2xSv|C;*WuJ#KKpM0Tt*f}4~H=E1v8Qo=Jg
zyjSGA`IZfI=?1@@Rq^uHHUBv`MD1sUi)q}V`DyXVqqD@=2juE<s;fA6`vMZU-w7$+
znr9gpxx>Tl;@(d)>NdVC`S2q^zq8?yzqPYKf4o!z9^SWxD0TU2Y#BF@>$`%~3r&|$
zxB1EtO54lVToo_`R3N_SEwB5N^+iK)Dx8n?mCuxq@8s|uYqL~Uv-ch%ySCW9|LHu5
zxZ%rt>rj)^ZuC=$&?V5o|CU?r{W>xg<)x#?MWVt;0lug^bbQaV5f#>7eYNqu!KC_b
zMv}$8H4r~by(^D!v)B{O!&O4&XSao;lC3}Gh&I*>q1QNwAgSPVf|xyECK)64s}BLY
zrW4C6U36b3v<3d7U(##)kEM#k*|b;_`IazU;m$IEq~k63uo|DWMS3`8A+YvrgRFeR
zGnH2NbRbM4N|`;Wjb5TS@I7PP{U&jtwh?{;m$%k9x`iS&(?`_`rWL*<zWP_&P-zEc
z1YO{Z8iyyX61=SXD1#@S-04GA8!FmNrdivD%fA4bD+Ohb6q6Us*|`sSpT=gA1s~pX
zo=tc}3>+%535dQtFGyek-1|^xDrJ5aCkIp26|q6(#>f$H$%zF7gzRNd=o3dk-!#z9
ztMNB;vf}jT)zuKWm`~q8xFC^HsjnaWW<KS6xmal}YTxeMks3ZM{ihD&_sWR#&pQI8
z=~v*s2CJF}KdB;#32Q9dh(3?;0pfMRONd6DR7T!So+O6KcH0GH87;e^+CZ&VJf^Py
zdeW0fxrZ6k(j`V;MnikNBOuA2>*ZdiM00%Ekiw88h!KhQw!G}uJtT_Qq9PN0>y6#a
z_~b*S(y0`~hjUPzSrS`Oti?2ufu}99H|xj3*9_OtYQ}k^4Mo)<gVEKihc}kYEw!fS
z#H=s&)H)~fbDnp1DgfW!y3%1ji}WjzNsg4}i-)nO?x~GGaGya+*LUiE7$@Xeg1%w@
z{OE^{r&__|91xO;+4nMIMnA1k?J&^zBN*%Xv4)unFISG%;8^Zr3;Q8h{hhGLsdkKu
z5T7*n-oya&H#-Vr*``a+m+9N(RN3P7W!i3Ibj^a=<t{=pMq1q3EvK!99xIitC-a6k
zR_s2pt{&dC)W`7dXjv>Yyuq;T5J817D!M16;>bEotePm!Ir&YHAfjZq+w>-UcVXzg
zx7cXfJA2(moJn%6Spr55mw#I(`qZH2z7{2ZYfao-WTL3k>szvF9Oc!Cx5EW1*IR~}
zjes_f%Khe^Xb^1|76VN9FCIP~18b+b8Oyuw)W1Hk?mmd8bWT+tx-Q9Lf9XIfoZSQ(
z|NIMJ^Ph{AC*HtyC9A{x_^<x_L-}+U`B723Tc39<>ES1=nHTPdi7NSw0zz9>1`3E3
zd2Vt2zM4|va$yfzE3SaZd2Bd9Vjg(~J|LrQCqjp%cDi&9*%*fzU1yFAHMs|ktVW2&
zZh<Uz11_av9iAxPEpBe{O)q6ZHhr<Jb+Sy@Uw|6<#G!XOt~Y(JS{?4?A9B7G|A3e3
zr4Rvj#23n4#ZIe8-T0k7o4?QAFlB^+H5WP^sDplKu<%X>T-+*JN?-(o%<>buzd3xc
z!7lPvLtlnU3#(arGyq~ph4dl<Mx^Mw|CWiS$d!h}Ys;0UP{(s!;-Emlu#rMlIh8OX
z`wifi=@%c0{<E=?i|U2WH2eeNo1ox0D~t8?UA?a!p7y@>3~gV&WM_#8yce5^z^<1P
zU_(oz5+g}|7&Q_U;R@Kl|L7}?Caz3h?DK0s`JHd=+hX2(-Q|UcbwDMimj2A)z+y-7
zYOeW)BDgbG*}#YgXS@$sJH_%+k-k+ixTuV1TGDOlW~1S}J_U6S9KF&3f!bIYG=R5`
zi}2Wme1U4KalxExomlHa#$Ek>wvRoX%WRK5wbG{t(MYqUi5z^Df={-;<yv#qIn0v1
zuDk1Y{IC!4>d?E-_4bPo36j=ni_W7J^eiCA{RH<%kX4oAa4YI3x95KKI#iwh6vh;i
zTJ3alj54eDy()hJ^yK37TTCv#75C(ehQA4STnjyWfnYceKeLXd7nyu}&X_$@MP-IZ
z-C%LdrM4g(Wku|db{Ts5UTrF0ObT^K5+yZ6LfQ953IV}E9}}T+48M(N7vonN0)I(<
zgDf>-h6`{W29Mz8Vu8kF%PDh6yTHw{1=J0*w;$P{XHPmh8xIvpx6mT5diDCdd8XPs
zi-}Z6m1ssoc%(p9k6ZUyE@6Csv<puLjWc-p3MOYqjfECEO5j_SVe-Pz2k@lS2Q9wv
zbcW3L&-pGl7mnr@stPyqwYb9O|2Qv6W&WeJyhT1iXYd)7xaw&ra#(qoZXrPfdXn{T
zTiODguUVy&LO?(X_jc~sy)KjK1Hb)iF=}NRLGtI!-IoMa+&<c*5}Df9>eZC)(pV{p
zibQEPGN9gM^ql*K^RJAfS*ZlW!;#|qg#_*RNT^>$s`t<8`%Pm>n1ux1eg<(zo)&k3
zAH_RZ<>+r9hsCq?L**Us_;X%yT9Jy60xJ%{*NvT;r>Zq)7uLz@D;&q`1l|ssdvljT
zHJ{E})?9O9hNHxHq)u{DF2%@EvCg$i!&OgW9YqHEV|^XarE?33_YE3=73EHUJUL(P
zA?_^*jK5QB?U?z`1Ipw|@HwG)|MC38iFNq=sZ!?1PI8d%5+ixIdxB5XY1PcH=_6l}
zOp6)c(c1t;eX)CZszjkR+q$_D&nz^Y<oeoar@6tS{T#|Wq&zWzkhf6`7R0J}<Ko00
z`)Sf((8+L^*W&XSrJ#d-*{RPK2<el2{wU3N@k%DANo?0ILZh$f3AzH4_X`l$$-=;9
z*{2)Z(@d@V-%OezmS8|ylG%X2UkM`KEl<I|0zCIX%}9W4^o2J|;G2hJAgxxL96199
znVYEj{8){zB&Nx!KXVRp*`RN=a_1~=ep}8%=jlnw_fbPY!<@qSNzG)>tZM8hY+Yo|
zzsOJ6cX0ZR&w>Q6|E2YZ$;-?9lD>m((<-O(3i$Lj8H2V($A@x##~0kG#6djb;4N#^
zE>1B?<6=vr)(5c9WVj;VyC8V5M-GcQVS`MX3t3gavSMSDh&g!@i$+pb@#<_5v}`_B
R-xBUjG|2GrxBqM5e*h`HETI4Z

literal 0
HcmV?d00001

diff --git a/civicrm/vendor/civicrm/civicrm-setup/src/Setup.php b/civicrm/vendor/civicrm/civicrm-setup/src/Setup.php
index ffb1a292ca..682b0b712f 100644
--- a/civicrm/vendor/civicrm/civicrm-setup/src/Setup.php
+++ b/civicrm/vendor/civicrm/civicrm-setup/src/Setup.php
@@ -11,7 +11,6 @@ use Civi\Setup\Event\InstallFilesEvent;
 use Civi\Setup\Event\UninstallDatabaseEvent;
 use Civi\Setup\Event\UninstallFilesEvent;
 use Civi\Setup\Exception\InitException;
-use Psr\Log\LoggerInterface;
 use Psr\Log\NullLogger;
 use Symfony\Component\EventDispatcher\EventDispatcher;
 
@@ -38,7 +37,7 @@ class Setup {
   protected $model;
 
   /**
-   * @var LoggerInterface
+   * @var \Psr\Log\LoggerInterface
    */
   protected $log;
 
@@ -56,7 +55,7 @@ class Setup {
    *   Use this to add, remove, or re-order callbacks.
    *   function(array $files) => array
    *   Ex: ['hello' => '/var/www/plugins/hello.civi-setup.php']
-   * @param LoggerInterface $log
+   * @param \Psr\Log\LoggerInterface $log
    */
   public static function init($modelValues = array(), $pluginCallback = NULL, $log = NULL) {
     if (!defined('CIVI_SETUP')) {
diff --git a/civicrm/vendor/civicrm/civicrm-setup/src/Setup/DbUtil.php b/civicrm/vendor/civicrm/civicrm-setup/src/Setup/DbUtil.php
index 15c8a3e4b7..054fe8d731 100644
--- a/civicrm/vendor/civicrm/civicrm-setup/src/Setup/DbUtil.php
+++ b/civicrm/vendor/civicrm/civicrm-setup/src/Setup/DbUtil.php
@@ -29,7 +29,7 @@ class DbUtil {
     return sprintf('mysql://%s:%s@%s/%s',
       $db['username'],
       $db['password'],
-      self::encodeHostPort($db['host'], $db['port']),
+      $db['server'],
       $db['database']
     );
   }
@@ -96,17 +96,17 @@ class DbUtil {
 
   /**
    * @param array $db
-   * @param string $fileName
+   * @param string $SQLcontent
    * @param bool $lineMode
    *   What does this mean? Seems weird.
    */
-  public static function sourceSQL($db, $fileName, $lineMode = FALSE) {
+  public static function sourceSQL($db, $SQLcontent, $lineMode = FALSE) {
     $conn = self::connect($db);
 
-    $conn->query('SET NAMES utf8');
+    $conn->query('SET NAMES ' . ($conn->server_version < 50503 ? 'utf8' : 'utf8mb4'));
 
     if (!$lineMode) {
-      $string = file_get_contents($fileName);
+      $string = $SQLcontent;
 
       // change \r\n to fix windows issues
       $string = str_replace("\r\n", "\n", $string);
@@ -132,23 +132,24 @@ class DbUtil {
       }
     }
     else {
-      $fd = fopen($fileName, "r");
-      while ($string = fgets($fd)) {
-        $string = preg_replace("/^#[^\n]*$/m", "\n", $string);
-        $string = preg_replace("/^(--[^-]).*/m", "\n", $string);
-
-        $string = trim($string);
-        if (!empty($string)) {
-          if ($result = $conn->query($string)) {
-            if (is_object($result)) {
-              mysqli_free_result($result);
-            }
-          }
-          else {
-            throw new SqlException("Cannot execute $string: " . mysqli_error($conn));
-          }
-        }
-      }
+      throw new \RuntimeException("Not implemented: lineMode");
+      //      $fd = fopen($SQLcontent, "r");
+      //      while ($string = fgets($fd)) {
+      //        $string = preg_replace("/^#[^\n]*$/m", "\n", $string);
+      //        $string = preg_replace("/^(--[^-]).*/m", "\n", $string);
+      //
+      //        $string = trim($string);
+      //        if (!empty($string)) {
+      //          if ($result = $conn->query($string)) {
+      //            if (is_object($result)) {
+      //              mysqli_free_result($result);
+      //            }
+      //          }
+      //          else {
+      //            throw new SqlException("Cannot execute $string: " . mysqli_error($conn));
+      //          }
+      //        }
+      //      }
     }
   }
 
@@ -214,7 +215,7 @@ class DbUtil {
     $sql = sprintf("SELECT table_name FROM information_schema.TABLES  WHERE TABLE_SCHEMA='%s' AND TABLE_TYPE = 'VIEW'",
       $conn->escape_string($databaseName));
 
-    return array_map(function($arr){
+    return array_map(function($arr) {
       return $arr['table_name'];
     }, self::fetchAll($conn, $sql));
   }
@@ -233,7 +234,7 @@ class DbUtil {
     $sql = sprintf("SELECT table_name FROM information_schema.TABLES  WHERE TABLE_SCHEMA='%s' AND TABLE_TYPE = 'BASE TABLE'",
       $conn->escape_string($databaseName));
 
-    return array_map(function($arr){
+    return array_map(function($arr) {
       return $arr['table_name'];
     }, self::fetchAll($conn, $sql));
   }
diff --git a/civicrm/vendor/civicrm/civicrm-setup/src/Setup/DrupalUtil.php b/civicrm/vendor/civicrm/civicrm-setup/src/Setup/DrupalUtil.php
new file mode 100644
index 0000000000..ea17ae4606
--- /dev/null
+++ b/civicrm/vendor/civicrm/civicrm-setup/src/Setup/DrupalUtil.php
@@ -0,0 +1,67 @@
+<?php
+namespace Civi\Setup;
+
+class DrupalUtil {
+
+  /**
+   * @param $cmsPath
+   *
+   * @return string
+   */
+  public static function getDrupalSiteDir($cmsPath) {
+    if (function_exists('conf_path')) {
+      return basename(conf_path());
+    }
+    elseif (class_exists('Drupal')) {
+      return basename(\Drupal::service('site.path'));
+    }
+    else {
+      throw new \Exception('Cannot detect path under Drupal "sites/".');
+      // The old 'install/index.php' system duplicated the conf_path() logic so that it could work pre-boot.
+      // With civicrm-setup, the CMS should always be booted first, so we should never go down this path.
+      // For the moment, the code is kept below in case it turns out we do need this for some reason.
+    }
+
+    /*
+    static $siteDir = '';
+
+    if ($siteDir) {
+      return $siteDir;
+    }
+
+    // The SCRIPT_FILENAME check was copied over from the 'install/index.php' system.
+    // It probably doesn't make sense in the context of civicrm-setup b/c we don't know what the SCRIPT will be
+    // and instead rely on $model inputs.
+
+    $sites = DIRECTORY_SEPARATOR . 'sites' . DIRECTORY_SEPARATOR;
+    $modules = DIRECTORY_SEPARATOR . 'modules' . DIRECTORY_SEPARATOR;
+    preg_match("/" . preg_quote($sites, DIRECTORY_SEPARATOR) .
+      "([\-a-zA-Z0-9_.]+)" .
+      preg_quote($modules, DIRECTORY_SEPARATOR) . "/",
+      $_SERVER['SCRIPT_FILENAME'], $matches
+    );
+    $siteDir = isset($matches[1]) ? $matches[1] : 'default';
+
+    if (strtolower($siteDir) == 'all') {
+      // For this case - use drupal's way of finding out multi-site directory
+      $uri = explode(DIRECTORY_SEPARATOR, $_SERVER['SCRIPT_FILENAME']);
+      $server = explode('.', implode('.', array_reverse(explode(':', rtrim($_SERVER['HTTP_HOST'], '.')))));
+      for ($i = count($uri) - 1; $i > 0; $i--) {
+        for ($j = count($server); $j > 0; $j--) {
+          $dir = implode('.', array_slice($server, -$j)) . implode('.', array_slice($uri, 0, $i));
+          if (file_exists($cmsPath . DIRECTORY_SEPARATOR .
+            'sites' . DIRECTORY_SEPARATOR . $dir
+          )) {
+            $siteDir = $dir;
+            return $siteDir;
+          }
+        }
+      }
+      $siteDir = 'default';
+    }
+
+    return $siteDir;
+    */
+  }
+
+}
diff --git a/civicrm/vendor/civicrm/civicrm-setup/src/Setup/Event/CheckInstalledEvent.php b/civicrm/vendor/civicrm/civicrm-setup/src/Setup/Event/CheckInstalledEvent.php
index 06e409244e..87273e4d65 100644
--- a/civicrm/vendor/civicrm/civicrm-setup/src/Setup/Event/CheckInstalledEvent.php
+++ b/civicrm/vendor/civicrm/civicrm-setup/src/Setup/Event/CheckInstalledEvent.php
@@ -11,7 +11,12 @@ class CheckInstalledEvent extends BaseSetupEvent {
   /**
    * @var bool
    */
-  private $settingInstalled = NULL, $databaseInstalled = NULL;
+  private $settingInstalled = NULL;
+
+  /**
+   * @var bool
+   */
+  private $databaseInstalled = NULL;
 
   /**
    * @return bool
diff --git a/civicrm/vendor/civicrm/civicrm-setup/src/Setup/FileUtil.php b/civicrm/vendor/civicrm/civicrm-setup/src/Setup/FileUtil.php
index 0842be88da..54a86bf863 100644
--- a/civicrm/vendor/civicrm/civicrm-setup/src/Setup/FileUtil.php
+++ b/civicrm/vendor/civicrm/civicrm-setup/src/Setup/FileUtil.php
@@ -30,4 +30,16 @@ class FileUtil {
     return is_writable(dirname($path));
   }
 
+  /**
+   * @param $prefix
+   *
+   * @return string
+   */
+  public static function createTempDir($prefix) {
+    $newTempDir = tempnam(sys_get_temp_dir(), $prefix) . '.d';
+    mkdir($newTempDir, 0755, TRUE);
+
+    return $newTempDir;
+  }
+
 }
diff --git a/civicrm/vendor/civicrm/civicrm-setup/src/Setup/LocaleUtil.php b/civicrm/vendor/civicrm/civicrm-setup/src/Setup/LocaleUtil.php
index e54ed98a27..fe0c9f0e60 100644
--- a/civicrm/vendor/civicrm/civicrm-setup/src/Setup/LocaleUtil.php
+++ b/civicrm/vendor/civicrm/civicrm-setup/src/Setup/LocaleUtil.php
@@ -12,6 +12,9 @@ class LocaleUtil {
    * @param array $availLangs
    *   List of available languages.
    *   Ex: ['en_US' => 'English (US)', 'fr_CA' => 'French (Canadian)'].
+   * @param string $default
+   *   The locale to use if none other can be determined.
+   *   Ex: 'en_US'.
    * @return string
    *   Ex: 'en_US'.
    */
diff --git a/civicrm/vendor/civicrm/civicrm-setup/src/Setup/Model.php b/civicrm/vendor/civicrm/civicrm-setup/src/Setup/Model.php
index abacfb07cc..68100aef34 100644
--- a/civicrm/vendor/civicrm/civicrm-setup/src/Setup/Model.php
+++ b/civicrm/vendor/civicrm/civicrm-setup/src/Setup/Model.php
@@ -144,6 +144,12 @@ class Model {
       'type' => 'array',
       'value' => array(),
     ));
+    $this->addField(array(
+      'description' => 'List of mandatory settings',
+      'name' => 'mandatorySettings',
+      'type' => 'array',
+      'value' => array(),
+    ));
     $this->addField(array(
       'description' => 'Open-ended list of private, adhoc fields/flags/tags',
       'name' => 'extras',
diff --git a/civicrm/vendor/civicrm/civicrm-setup/src/Setup/PackageUtil.php b/civicrm/vendor/civicrm/civicrm-setup/src/Setup/PackageUtil.php
new file mode 100644
index 0000000000..e0dbcf3b37
--- /dev/null
+++ b/civicrm/vendor/civicrm/civicrm-setup/src/Setup/PackageUtil.php
@@ -0,0 +1,33 @@
+<?php
+namespace Civi\Setup;
+
+class PackageUtil {
+
+  /**
+   * Locate the civicrm-packages source tree.
+   *
+   * @param string $srcPath
+   *   The path to the civicrm-core source tree.
+   * @return string
+   *   The path to the civicrm-packages source tree.
+   */
+  public static function getPath($srcPath) {
+    global $civicrm_paths;
+
+    $candidates = [
+      // TODO: Trace the code-path and allow reading $model for packages dir?
+      $civicrm_paths['civicrm.packages'] ?? NULL,
+      implode(DIRECTORY_SEPARATOR, [$srcPath, 'packages']),
+      implode(DIRECTORY_SEPARATOR, [dirname($srcPath), 'civicrm-packages']),
+    ];
+
+    foreach ($candidates as $candidate) {
+      if (!empty($candidate) && file_exists($candidate)) {
+        return $candidate;
+      }
+    }
+
+    throw new \RuntimeException("Failed to locate civicrm-packages");
+  }
+
+}
diff --git a/civicrm/vendor/civicrm/civicrm-setup/src/Setup/SchemaGenerator.php b/civicrm/vendor/civicrm/civicrm-setup/src/Setup/SchemaGenerator.php
new file mode 100644
index 0000000000..c27f5fadab
--- /dev/null
+++ b/civicrm/vendor/civicrm/civicrm-setup/src/Setup/SchemaGenerator.php
@@ -0,0 +1,90 @@
+<?php
+namespace Civi\Setup;
+
+class SchemaGenerator {
+
+  /**
+   * Return translated SQL content using tpl, mainly contain SQL codes on table CREATE/DROP
+   *
+   * @param string $srcPath
+   * @param array $database
+   * @param array $tables
+   * @return string
+   */
+  public static function generateCreateSql($srcPath, $database, $tables) {
+    $template = new Template($srcPath, 'sql');
+
+    $template->assign('database', $database);
+    $template->assign('tables', $tables);
+    $dropOrder = array_reverse(array_keys($tables));
+    $template->assign('dropOrder', $dropOrder);
+    $template->assign('mysql', 'modern');
+
+    return $template->getContent('schema.tpl');
+  }
+
+  /**
+   * Generate an example set of data, including the basic data as well
+   * as some example records/entities (e.g. case-types, membership types).
+   *
+   * @param string $srcPath
+   *
+   * @return string
+   */
+  public static function generateSampleData($srcPath) {
+    $versionFile = implode(DIRECTORY_SEPARATOR, [$srcPath, 'xml', 'version.xml']);
+    $xml = \CRM_Core_CodeGen_Util_Xml::parse($versionFile);
+
+    $template = new Template($srcPath, 'sql');
+    $template->assign('db_version', $xml->version_no);
+
+    // If you're going to use the full data generator...
+    //    "DROP TABLE IF EXISTS zipcodes"
+    //    .... file_get_contents($sqlPath . DIRECTORY_SEPARATOR . 'zipcodes.mysql')...
+
+    $sections = [
+      'civicrm_country.tpl',
+      'civicrm_state_province.tpl',
+      'civicrm_currency.tpl',
+      'civicrm_data.tpl',
+      'civicrm_acl.tpl',
+      'civicrm_sample.tpl',
+      'case_sample.tpl',
+      'civicrm_version_sql.tpl',
+      'civicrm_navigation.tpl',
+    ];
+
+    // DROP TABLE IF EXISTS zipcodes;
+
+    return $template->getConcatContent($sections);
+  }
+
+  /**
+   * Generate a minimalist set of basic data, such as
+   * common option-values and countries.
+   *
+   * @param string $srcPath
+   *
+   * @return string
+   *   SQL
+   */
+  public static function generateBasicData($srcPath) {
+    $versionFile = implode(DIRECTORY_SEPARATOR, [$srcPath, 'xml', 'version.xml']);
+    $xml = \CRM_Core_CodeGen_Util_Xml::parse($versionFile);
+
+    $template = new Template($srcPath, 'sql');
+    $template->assign('db_version', $xml->version_no);
+
+    $sections = [
+      'civicrm_country.tpl',
+      'civicrm_state_province.tpl',
+      'civicrm_currency.tpl',
+      'civicrm_data.tpl',
+      'civicrm_acl.tpl',
+      'civicrm_version_sql.tpl',
+      'civicrm_navigation.tpl',
+    ];
+    return $template->getConcatContent($sections);
+  }
+
+}
diff --git a/civicrm/vendor/civicrm/civicrm-setup/src/Setup/SmartyUtil.php b/civicrm/vendor/civicrm/civicrm-setup/src/Setup/SmartyUtil.php
new file mode 100644
index 0000000000..aa3f612dcb
--- /dev/null
+++ b/civicrm/vendor/civicrm/civicrm-setup/src/Setup/SmartyUtil.php
@@ -0,0 +1,33 @@
+<?php
+namespace Civi\Setup;
+
+class SmartyUtil {
+
+  /**
+   * Create a Smarty instance.
+   *
+   * @return \Smarty
+   */
+  public static function createSmarty($srcPath) {
+    require_once 'CRM/Core/I18n.php';
+
+    $packagePath = PackageUtil::getPath($srcPath);
+    require_once $packagePath . DIRECTORY_SEPARATOR . 'Smarty' . DIRECTORY_SEPARATOR . 'Smarty.class.php';
+
+    $smarty = new \Smarty();
+    $smarty->template_dir = implode(DIRECTORY_SEPARATOR, [$srcPath, 'xml', 'templates']);
+    $smarty->plugins_dir = [
+      implode(DIRECTORY_SEPARATOR, [$packagePath, 'Smarty', 'plugins']),
+      implode(DIRECTORY_SEPARATOR, [$srcPath, 'CRM', 'Core', 'Smarty', 'plugins']),
+    ];
+    $smarty->compile_dir = \Civi\Setup\FileUtil::createTempDir('templates_c');
+    $smarty->clear_all_cache();
+
+    // CRM-5308 / CRM-3507 - we need {localize} to work in the templates
+    require_once implode(DIRECTORY_SEPARATOR, [$srcPath, 'CRM', 'Core', 'Smarty', 'plugins', 'block.localize.php']);
+    $smarty->register_block('localize', 'smarty_block_localize');
+
+    return $smarty;
+  }
+
+}
diff --git a/civicrm/vendor/civicrm/civicrm-setup/src/Setup/Template.php b/civicrm/vendor/civicrm/civicrm-setup/src/Setup/Template.php
new file mode 100644
index 0000000000..7ead78bcd6
--- /dev/null
+++ b/civicrm/vendor/civicrm/civicrm-setup/src/Setup/Template.php
@@ -0,0 +1,79 @@
+<?php
+namespace Civi\Setup;
+
+class Template {
+
+  protected $filetype;
+
+  protected $smarty;
+  protected $beautifier;
+
+  public function __construct($srcPath, $fileType) {
+    $this->filetype = $fileType;
+
+    $this->smarty = \Civi\Setup\SmartyUtil::createSmarty($srcPath);
+
+    $this->assign('generated', "DO NOT EDIT.  Generated by Installer");
+
+    if ($this->filetype === 'php') {
+      $packagePath = PackageUtil::getPath($srcPath);
+      require_once implode(DIRECTORY_SEPARATOR, [$packagePath, 'PHP', 'Beautifier.php']);
+      // create an instance
+      $this->beautifier = new PHP_Beautifier();
+      $this->beautifier->addFilter('ArrayNested');
+      // add one or more filters
+      $this->beautifier->setIndentChar(' ');
+      $this->beautifier->setIndentNumber(2);
+      $this->beautifier->setNewLine("\n");
+    }
+  }
+
+  public function assign($tpl_var, $value = NULL) {
+    return $this->smarty->assign($tpl_var, $value);
+  }
+
+  /**
+   * Run template generator.
+   *
+   * @param string $infile
+   *   Filename of the template, without a path.
+   * @return string
+   */
+  public function getContent($infile) {
+    $contents = $this->smarty->fetch($infile);
+
+    if ($this->filetype === 'php') {
+      $this->beautifier->setInputString($contents);
+      $this->beautifier->process();
+      $contents = $this->beautifier->get();
+      // The beautifier isn't as beautiful as one would hope. Here's some extra string fudging.
+      $replacements = [
+        ') ,' => '),',
+        "\n  }\n}\n" => "\n  }\n\n}\n",
+        '=> true,' => '=> TRUE,',
+        '=> false,' => '=> FALSE,',
+      ];
+      $contents = str_replace(array_keys($replacements), array_values($replacements), $contents);
+      $contents = preg_replace('#(\s*)\\/\\*\\*#', "\n\$1/**", $contents);
+      // Convert old array syntax to new square brackets
+      $contents = CRM_Core_CodeGen_Util_ArraySyntaxConverter::convert($contents);
+    }
+
+    return $contents;
+  }
+
+  /**
+   * @param array $inputs
+   *   Template filenames.
+   */
+  public function getConcatContent($inputs) {
+    $content = '';
+    foreach ($inputs as $infile) {
+      // FIXME: does not beautify.  Document.
+      $content .= $this->smarty->fetch($infile) . "\n";
+    }
+
+    return $content;
+  }
+
+}
diff --git a/civicrm/vendor/civicrm/civicrm-setup/src/Setup/UI/SetupController.php b/civicrm/vendor/civicrm/civicrm-setup/src/Setup/UI/SetupController.php
index 4c54db7dfa..841c7c71c1 100644
--- a/civicrm/vendor/civicrm/civicrm-setup/src/Setup/UI/SetupController.php
+++ b/civicrm/vendor/civicrm/civicrm-setup/src/Setup/UI/SetupController.php
@@ -175,11 +175,14 @@ class SetupController implements SetupControllerInterface {
   }
 
   public function createError($message, $title = 'Error') {
-    return array(array(), $this->render($this->getResourcePath('error.html'), [
-      'errorTitle' => htmlentities($title),
-      'errorMsg' => htmlentities($message),
-      'installURLPath' => $this->urls['res'],
-    ]));
+    return [
+      [],
+      $this->render($this->getResourcePath('error.html'), [
+        'errorTitle' => htmlentities($title),
+        'errorMsg' => htmlentities($message),
+        'installURLPath' => $this->urls['res'],
+      ]),
+    ];
   }
 
   /**
@@ -225,6 +228,8 @@ class SetupController implements SetupControllerInterface {
    * @param array $fields
    *   HTTP inputs -- e.g. with a form element like this:
    *   `<input type="submit" name="civisetup[action][Foo]" value="Do the foo">`
+   * @param string $default
+   *   The action-name to return if no other action is identified.
    * @return string
    *   The name of the action.
    *   Ex: 'Foo'.
diff --git a/civicrm/vendor/composer/autoload_real.php b/civicrm/vendor/composer/autoload_real.php
index 1d308d29d5..5d9c2db3d9 100644
--- a/civicrm/vendor/composer/autoload_real.php
+++ b/civicrm/vendor/composer/autoload_real.php
@@ -2,7 +2,7 @@
 
 // autoload_real.php @generated by Composer
 
-class ComposerAutoloaderInit4ee0d0ceec53632120da6413d96e8484
+class ComposerAutoloaderInite6f45a43176252aa6a8458e979f01dd8
 {
     private static $loader;
 
@@ -19,9 +19,9 @@ class ComposerAutoloaderInit4ee0d0ceec53632120da6413d96e8484
             return self::$loader;
         }
 
-        spl_autoload_register(array('ComposerAutoloaderInit4ee0d0ceec53632120da6413d96e8484', 'loadClassLoader'), true, true);
+        spl_autoload_register(array('ComposerAutoloaderInite6f45a43176252aa6a8458e979f01dd8', 'loadClassLoader'), true, true);
         self::$loader = $loader = new \Composer\Autoload\ClassLoader();
-        spl_autoload_unregister(array('ComposerAutoloaderInit4ee0d0ceec53632120da6413d96e8484', 'loadClassLoader'));
+        spl_autoload_unregister(array('ComposerAutoloaderInite6f45a43176252aa6a8458e979f01dd8', 'loadClassLoader'));
 
         $includePaths = require __DIR__ . '/include_paths.php';
         $includePaths[] = get_include_path();
@@ -31,7 +31,7 @@ class ComposerAutoloaderInit4ee0d0ceec53632120da6413d96e8484
         if ($useStaticLoader) {
             require_once __DIR__ . '/autoload_static.php';
 
-            call_user_func(\Composer\Autoload\ComposerStaticInit4ee0d0ceec53632120da6413d96e8484::getInitializer($loader));
+            call_user_func(\Composer\Autoload\ComposerStaticInite6f45a43176252aa6a8458e979f01dd8::getInitializer($loader));
         } else {
             $map = require __DIR__ . '/autoload_namespaces.php';
             foreach ($map as $namespace => $path) {
@@ -52,19 +52,19 @@ class ComposerAutoloaderInit4ee0d0ceec53632120da6413d96e8484
         $loader->register(true);
 
         if ($useStaticLoader) {
-            $includeFiles = Composer\Autoload\ComposerStaticInit4ee0d0ceec53632120da6413d96e8484::$files;
+            $includeFiles = Composer\Autoload\ComposerStaticInite6f45a43176252aa6a8458e979f01dd8::$files;
         } else {
             $includeFiles = require __DIR__ . '/autoload_files.php';
         }
         foreach ($includeFiles as $fileIdentifier => $file) {
-            composerRequire4ee0d0ceec53632120da6413d96e8484($fileIdentifier, $file);
+            composerRequiree6f45a43176252aa6a8458e979f01dd8($fileIdentifier, $file);
         }
 
         return $loader;
     }
 }
 
-function composerRequire4ee0d0ceec53632120da6413d96e8484($fileIdentifier, $file)
+function composerRequiree6f45a43176252aa6a8458e979f01dd8($fileIdentifier, $file)
 {
     if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
         require $file;
diff --git a/civicrm/vendor/composer/autoload_static.php b/civicrm/vendor/composer/autoload_static.php
index 1d937c6802..f98e998adc 100644
--- a/civicrm/vendor/composer/autoload_static.php
+++ b/civicrm/vendor/composer/autoload_static.php
@@ -4,7 +4,7 @@
 
 namespace Composer\Autoload;
 
-class ComposerStaticInit4ee0d0ceec53632120da6413d96e8484
+class ComposerStaticInite6f45a43176252aa6a8458e979f01dd8
 {
     public static $files = array (
         '320cde22f66dd4f5d3fd621d3e88b98f' => __DIR__ . '/..' . '/symfony/polyfill-ctype/bootstrap.php',
@@ -476,11 +476,11 @@ class ComposerStaticInit4ee0d0ceec53632120da6413d96e8484
     public static function getInitializer(ClassLoader $loader)
     {
         return \Closure::bind(function () use ($loader) {
-            $loader->prefixLengthsPsr4 = ComposerStaticInit4ee0d0ceec53632120da6413d96e8484::$prefixLengthsPsr4;
-            $loader->prefixDirsPsr4 = ComposerStaticInit4ee0d0ceec53632120da6413d96e8484::$prefixDirsPsr4;
-            $loader->prefixesPsr0 = ComposerStaticInit4ee0d0ceec53632120da6413d96e8484::$prefixesPsr0;
-            $loader->fallbackDirsPsr0 = ComposerStaticInit4ee0d0ceec53632120da6413d96e8484::$fallbackDirsPsr0;
-            $loader->classMap = ComposerStaticInit4ee0d0ceec53632120da6413d96e8484::$classMap;
+            $loader->prefixLengthsPsr4 = ComposerStaticInite6f45a43176252aa6a8458e979f01dd8::$prefixLengthsPsr4;
+            $loader->prefixDirsPsr4 = ComposerStaticInite6f45a43176252aa6a8458e979f01dd8::$prefixDirsPsr4;
+            $loader->prefixesPsr0 = ComposerStaticInite6f45a43176252aa6a8458e979f01dd8::$prefixesPsr0;
+            $loader->fallbackDirsPsr0 = ComposerStaticInite6f45a43176252aa6a8458e979f01dd8::$fallbackDirsPsr0;
+            $loader->classMap = ComposerStaticInite6f45a43176252aa6a8458e979f01dd8::$classMap;
 
         }, null, ClassLoader::class);
     }
diff --git a/civicrm/vendor/composer/installed.json b/civicrm/vendor/composer/installed.json
index 48b3529d7d..3553e4d46c 100644
--- a/civicrm/vendor/composer/installed.json
+++ b/civicrm/vendor/composer/installed.json
@@ -161,24 +161,24 @@
     },
     {
         "name": "civicrm/civicrm-setup",
-        "version": "v0.2.0",
-        "version_normalized": "0.2.0.0",
+        "version": "v0.4.0",
+        "version_normalized": "0.4.0.0",
         "source": {
             "type": "git",
             "url": "https://github.com/civicrm/civicrm-setup.git",
-            "reference": "e7991aff516c3fff952bed8f90832804a134358a"
+            "reference": "8417d0c62b6e725ef7a49a75935995d0269cbbe8"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/civicrm/civicrm-setup/zipball/e7991aff516c3fff952bed8f90832804a134358a",
-            "reference": "e7991aff516c3fff952bed8f90832804a134358a",
+            "url": "https://api.github.com/repos/civicrm/civicrm-setup/zipball/8417d0c62b6e725ef7a49a75935995d0269cbbe8",
+            "reference": "8417d0c62b6e725ef7a49a75935995d0269cbbe8",
             "shasum": ""
         },
         "require": {
             "psr/log": "~1.0",
             "symfony/event-dispatcher": "^2.6.13 || ~3.0"
         },
-        "time": "2018-01-23T06:26:55+00:00",
+        "time": "2020-01-18T03:46:43+00:00",
         "type": "library",
         "installation-source": "dist",
         "autoload": {
@@ -638,7 +638,8 @@
         "keywords": [
             "mimetype",
             "php"
-        ]
+        ],
+        "abandoned": true
     },
     {
         "name": "league/csv",
@@ -1742,27 +1743,27 @@
     },
     {
         "name": "psr/log",
-        "version": "1.1.0",
-        "version_normalized": "1.1.0.0",
+        "version": "1.1.2",
+        "version_normalized": "1.1.2.0",
         "source": {
             "type": "git",
             "url": "https://github.com/php-fig/log.git",
-            "reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd"
+            "reference": "446d54b4cb6bf489fc9d75f55843658e6f25d801"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/php-fig/log/zipball/6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd",
-            "reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd",
+            "url": "https://api.github.com/repos/php-fig/log/zipball/446d54b4cb6bf489fc9d75f55843658e6f25d801",
+            "reference": "446d54b4cb6bf489fc9d75f55843658e6f25d801",
             "shasum": ""
         },
         "require": {
             "php": ">=5.3.0"
         },
-        "time": "2018-11-20T15:27:04+00:00",
+        "time": "2019-11-01T11:05:21+00:00",
         "type": "library",
         "extra": {
             "branch-alias": {
-                "dev-master": "1.0.x-dev"
+                "dev-master": "1.1.x-dev"
             }
         },
         "installation-source": "dist",
@@ -2624,7 +2625,8 @@
         "keywords": [
             "escaper",
             "zf2"
-        ]
+        ],
+        "abandoned": "laminas/laminas-escaper"
     },
     {
         "name": "zetacomponents/base",
@@ -2694,17 +2696,17 @@
     },
     {
         "name": "zetacomponents/mail",
-        "version": "dev-master",
-        "version_normalized": "9999999-dev",
+        "version": "1.9.1",
+        "version_normalized": "1.9.1.0",
         "source": {
             "type": "git",
             "url": "https://github.com/zetacomponents/Mail.git",
-            "reference": "b60e9a543f6c3d9a9ec74452d4ff5736a1c63a77"
+            "reference": "4dc71ccbcc8b67951a2efe47d3fcc2aeaa7f530d"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/zetacomponents/Mail/zipball/b60e9a543f6c3d9a9ec74452d4ff5736a1c63a77",
-            "reference": "b60e9a543f6c3d9a9ec74452d4ff5736a1c63a77",
+            "url": "https://api.github.com/repos/zetacomponents/Mail/zipball/4dc71ccbcc8b67951a2efe47d3fcc2aeaa7f530d",
+            "reference": "4dc71ccbcc8b67951a2efe47d3fcc2aeaa7f530d",
             "shasum": ""
         },
         "require": {
@@ -2713,14 +2715,14 @@
         "require-dev": {
             "zetacomponents/unit-test": "*"
         },
-        "time": "2019-02-13T11:33:09+00:00",
+        "time": "2020-01-17T11:18:01+00:00",
         "type": "library",
         "extra": {
             "patches_applied": {
                 "CiviCRM Custom Patches for ZetaCompoents mail": "tools/scripts/composer/patches/civicrm-custom-patches-zetacompoents-mail.patch"
             }
         },
-        "installation-source": "source",
+        "installation-source": "dist",
         "autoload": {
             "classmap": [
                 "src"
@@ -2761,14 +2763,14 @@
             {
                 "name": "Alexandru Stanoi"
             },
-            {
-                "name": "Christian Michel"
-            },
             {
                 "name": "Sinisa Dukaric"
             },
             {
                 "name": "Mikko Koppanen"
+            },
+            {
+                "name": "Christian Michel"
             }
         ],
         "description": "The component allows you construct and/or parse Mail messages conforming to  the mail standard. It has support for attachments, multipart messages and HTML  mail. It also interfaces with SMTP to send mail or IMAP, POP3 or mbox to  retrieve e-mail.",
diff --git a/civicrm/vendor/psr/log/Psr/Log/LoggerInterface.php b/civicrm/vendor/psr/log/Psr/Log/LoggerInterface.php
index 5ea72438b5..e695046e30 100644
--- a/civicrm/vendor/psr/log/Psr/Log/LoggerInterface.php
+++ b/civicrm/vendor/psr/log/Psr/Log/LoggerInterface.php
@@ -118,6 +118,8 @@ interface LoggerInterface
      * @param array  $context
      *
      * @return void
+     *
+     * @throws \Psr\Log\InvalidArgumentException
      */
     public function log($level, $message, array $context = array());
 }
diff --git a/civicrm/vendor/psr/log/Psr/Log/LoggerTrait.php b/civicrm/vendor/psr/log/Psr/Log/LoggerTrait.php
index 867225df1d..e392fef0a0 100644
--- a/civicrm/vendor/psr/log/Psr/Log/LoggerTrait.php
+++ b/civicrm/vendor/psr/log/Psr/Log/LoggerTrait.php
@@ -135,6 +135,8 @@ trait LoggerTrait
      * @param array  $context
      *
      * @return void
+     *
+     * @throws \Psr\Log\InvalidArgumentException
      */
     abstract public function log($level, $message, array $context = array());
 }
diff --git a/civicrm/vendor/psr/log/Psr/Log/NullLogger.php b/civicrm/vendor/psr/log/Psr/Log/NullLogger.php
index d8cd682c8f..c8f7293b1c 100644
--- a/civicrm/vendor/psr/log/Psr/Log/NullLogger.php
+++ b/civicrm/vendor/psr/log/Psr/Log/NullLogger.php
@@ -20,6 +20,8 @@ class NullLogger extends AbstractLogger
      * @param array  $context
      *
      * @return void
+     *
+     * @throws \Psr\Log\InvalidArgumentException
      */
     public function log($level, $message, array $context = array())
     {
diff --git a/civicrm/vendor/psr/log/README.md b/civicrm/vendor/psr/log/README.md
index 5571a25e8d..a9f20c437b 100644
--- a/civicrm/vendor/psr/log/README.md
+++ b/civicrm/vendor/psr/log/README.md
@@ -38,6 +38,12 @@ class Foo
         if ($this->logger) {
             $this->logger->info('Doing work');
         }
+           
+        try {
+            $this->doSomethingElse();
+        } catch (Exception $exception) {
+            $this->logger->error('Oh no!', array('exception' => $exception));
+        }
 
         // do something useful
     }
diff --git a/civicrm/vendor/psr/log/composer.json b/civicrm/vendor/psr/log/composer.json
index 87934d707e..3f6d4eea4c 100644
--- a/civicrm/vendor/psr/log/composer.json
+++ b/civicrm/vendor/psr/log/composer.json
@@ -20,7 +20,7 @@
     },
     "extra": {
         "branch-alias": {
-            "dev-master": "1.0.x-dev"
+            "dev-master": "1.1.x-dev"
         }
     }
 }
diff --git a/civicrm/vendor/zetacomponents/mail/ChangeLog b/civicrm/vendor/zetacomponents/mail/ChangeLog
index 5a90d8cb1f..de8b12300f 100644
--- a/civicrm/vendor/zetacomponents/mail/ChangeLog
+++ b/civicrm/vendor/zetacomponents/mail/ChangeLog
@@ -1,7 +1,27 @@
-1.8.4 - [RELEASEDATE]
+1.9.1 - Friday 17 January 2020
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
+- Fixed syntax errors introduced in 1.9.0.
+
+
+1.9.0 - Thursday 16 January 2020
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+- Fixed #31: Provide a listLimit option to prevent fetch queries from exceeding
+  the server's query size limit. (Mark Burdett)
+- Fixed #77: Curly-brace syntax for array and string access is deprecated in
+  PHP 7.4
+- Add support for XOAUTH2 authentication method for IMAP. (Seamus Lee)
+
+
+1.8.4 - Thursday 17 October 2019
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+- Fixed #51: User names and passwords need to be escaped if they contain
+  spaces. (Mark Burdett)
 - Fixed #61: create_function() is deprecated in PHP 7.2. (Derick Rethans)
+- Fixed implode() argument order. (Michael Kliewe)
+- Fixed regexp patterns for PHP 7.3 and later. (Derick Rethans)
 
 
 1.8.3 - Saturday 18 November 2017
diff --git a/civicrm/vendor/zetacomponents/mail/src/options/imap_options.php b/civicrm/vendor/zetacomponents/mail/src/options/imap_options.php
index e0976077d5..ba18206af4 100644
--- a/civicrm/vendor/zetacomponents/mail/src/options/imap_options.php
+++ b/civicrm/vendor/zetacomponents/mail/src/options/imap_options.php
@@ -42,6 +42,9 @@
  * @property bool $uidReferencing
  *           Specifies if the IMAP commands will operate with message unique
  *           IDs or with message numbers (default).
+ * @property int $listLimit
+ *           Specifies the maximum number of messages to be returned by the
+ *           listMessages() method, or 0 for no limit (default).
  *
  * @package Mail
  * @version //autogen//
@@ -60,6 +63,7 @@ class ezcMailImapTransportOptions extends ezcMailTransportOptions
     public function __construct( array $options = array() )
     {
         $this->uidReferencing = false;
+        $this->listLimit = 0;
 
         parent::__construct( $options );
     }
@@ -87,6 +91,14 @@ class ezcMailImapTransportOptions extends ezcMailTransportOptions
                 $this->properties[$name] = $value;
                 break;
 
+            case 'listLimit':
+                if ( !is_int( $value ) || $value < 0 )
+                {
+                    throw new ezcBaseValueException( $name, $value, 'int >= 0' );
+                }
+                $this->properties[$name] = $value;
+                break;
+
             default:
                 parent::__set( $name, $value );
         }
diff --git a/civicrm/vendor/zetacomponents/mail/src/tools.php b/civicrm/vendor/zetacomponents/mail/src/tools.php
index 115079c7c2..6bac570bee 100644
--- a/civicrm/vendor/zetacomponents/mail/src/tools.php
+++ b/civicrm/vendor/zetacomponents/mail/src/tools.php
@@ -9,9 +9,9 @@
  * to you under the Apache License, Version 2.0 (the
  * "License"); you may not use this file except in compliance
  * with the License.  You may obtain a copy of the License at
- * 
+ *
  *   http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an
  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -105,7 +105,7 @@ class ezcMailTools
         if ( $name !== '' )
         {
             // remove the quotes around the name part if they are already there
-            if ( $name{0} === '"' && $name{strlen( $name ) - 1} === '"' )
+            if ( $name[0] === '"' && $name[strlen( $name ) - 1] === '"' )
             {
                 $name = substr( $name, 1, -1 );
             }
@@ -761,7 +761,7 @@ class ezcMailTools
      * $contentIdArray = array( 'consoletools-table.png@1421450' => 'http://localhost/consoletools-table.jpg' );
      * $text = "<html> Embedded image: <img src='cid:consoletools-table.png@1421450'/> </html>";
      * $htmlBody = ezcMailTools::replaceContentIdRefs( $text, $contentIdArray );
-     * // $htmlBody is now: 
+     * // $htmlBody is now:
      * // <html> Embedded image: <img src='http://localhost/consoletools-table.jpg'/> </html>
      * ?>
      * </code>
diff --git a/civicrm/vendor/zetacomponents/mail/src/transports/imap/imap_set.php b/civicrm/vendor/zetacomponents/mail/src/transports/imap/imap_set.php
index 25d1f42051..93e5ef2451 100644
--- a/civicrm/vendor/zetacomponents/mail/src/transports/imap/imap_set.php
+++ b/civicrm/vendor/zetacomponents/mail/src/transports/imap/imap_set.php
@@ -221,8 +221,8 @@ class ezcMailImapSet implements ezcMailParserSet
                     }
                     return $data;
                 }
+                return $data;
             }
-            return $data;
         }
         return null;
     }
diff --git a/civicrm/vendor/zetacomponents/mail/src/transports/imap/imap_transport.php b/civicrm/vendor/zetacomponents/mail/src/transports/imap/imap_transport.php
index 15426738ce..e632af315a 100644
--- a/civicrm/vendor/zetacomponents/mail/src/transports/imap/imap_transport.php
+++ b/civicrm/vendor/zetacomponents/mail/src/transports/imap/imap_transport.php
@@ -9,9 +9,9 @@
  * to you under the Apache License, Version 2.0 (the
  * "License"); you may not use this file except in compliance
  * with the License.  You may obtain a copy of the License at
- * 
+ *
  *   http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an
  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -244,6 +244,16 @@ class ezcMailImapTransport
      */
     const SERVER_GIMAP = 'Gimap';
 
+    /**
+     * Authenticate with 'AUTH LOGIN'.
+     */
+    const AUTH_LOGIN = 'LOGIN';
+
+    /**
+     * Authenticate with 'AUTH XOAUTH2'.
+     */
+    const AUTH_XOAUTH2 = 'XOAUTH2';
+
     /**
      * Basic flags are used by {@link setFlag()} and {@link clearFlag()}
      *
@@ -411,7 +421,7 @@ class ezcMailImapTransport
      */
     public function __destruct()
     {
-        try 
+        try
         {
             $this->disconnect();
         }
@@ -463,7 +473,7 @@ class ezcMailImapTransport
         {
             case 'options':
                 return $this->options;
-            
+
             default:
                 throw new ezcBasePropertyNotFoundException( $name );
         }
@@ -509,6 +519,23 @@ class ezcMailImapTransport
         }
     }
 
+    /**
+     * Returns an array with the authentication methods supported by the
+     * IMAP transport class (not by the IMAP server!).
+     *
+     * The returned array has the methods sorted by their relative strengths,
+     * so stronger methods are first in the array.
+     *
+     * @return array(string)
+     */
+    public static function getSupportedAuthMethods()
+    {
+        return array(
+            ezcMailImapTransport::AUTH_LOGIN,
+            ezcMailImapTransport::AUTH_XOAUTH2,
+        );
+    }
+
     /**
      * Authenticates the user to the IMAP server with $user and $password.
      *
@@ -535,17 +562,28 @@ class ezcMailImapTransport
      * @param string $password
      * @return bool
      */
-    public function authenticate( $user, $password )
+    public function authenticate( $user, $password, $method = ezcMailImapTransport::AUTH_LOGIN )
     {
+        if ( !in_array( $method, self::getSupportedAuthMethods() ) )
+        {
+            throw new ezcMailTransportException( "Unsupported Authentication method used" );
+        }
         if ( $this->state != self::STATE_NOT_AUTHENTICATED )
         {
             throw new ezcMailTransportException( "Tried to authenticate when there was no connection or when already authenticated." );
         }
 
-        $tag = $this->getNextTag();
-        $user = addcslashes($user, '\"');
-        $password = addcslashes($password, '\"');
-        $this->connection->sendData( "{$tag} LOGIN \"{$user}\" \"{$password}\"" );
+        switch ( $method )
+        {
+            case self::AUTH_LOGIN:
+                $this->sendLogin( $user, $password );
+                break;
+
+            case self::AUTH_XOAUTH2:
+                $this->sendXOAuth2( $user, $password );
+                break;
+
+        }
         $response = trim( $this->connection->getLine() );
         // hack for gmail, to fix issue #15837: imap.google.com (google gmail) changed IMAP response
         if ( $this->serverType === self::SERVER_GIMAP && strpos( $response, "* CAPABILITY" ) === 0 )
@@ -565,6 +603,14 @@ class ezcMailImapTransport
         }
         if ( $this->responseType( $response ) != self::RESPONSE_OK )
         {
+            // If we are using the XOAuth2 SASL mechanism we will get a base64 encoded response back to get standard
+            // response back we then need to send a blank response "\r\n" to the authentication response.
+            // @see https://developers.google.com/gmail/imap/xoauth2-protocol
+            if ( $method === self::AUTH_XOAUTH2 )
+            {
+                $this->connection->sendData( "\r\n" );
+                $response = trim( $this->connection->getLine() );
+            }
             throw new ezcMailTransportException( "The IMAP server did not accept the username and/or password: {$response}." );
         }
         else
@@ -575,6 +621,30 @@ class ezcMailImapTransport
         return true;
     }
 
+    /**
+     * Tries to login to the SMTP server with 'AUTH LOGIN'
+     */
+    private function sendLogin( $user, $password )
+    {
+        $user = addcslashes( $user, '\"' );
+        $password = addcslashes( $password, '\"' );
+        $tag = $this->getNextTag();
+        $this->connection->sendData( "{$tag} LOGIN \"{$user}\" \"{$password}\"" );
+    }
+
+    /**
+     * Tries to login to the IMAP server with 'AUTH XOAUTH2'
+     * This is constructed as per the Google documentation on authenticating
+     * with XOAuth2
+     * @see https://developers.google.com/gmail/imap/xoauth2-protocol
+     */
+    private function sendXOAuth2( $user, $password )
+    {
+        $digest = base64_encode("user={$user}\1auth=Bearer {$password}\1\1");
+        $tag = $this->getNextTag();
+        $this->connection->sendData( "{$tag} AUTHENTICATE XOAUTH2 {$digest}" );
+    }
+
     /**
      * Returns an array with the names of the available mailboxes for the user
      * currently authenticated on the IMAP server.
@@ -741,7 +811,7 @@ class ezcMailImapTransport
 
         // if the mailbox selection will be successful, $state will be STATE_SELECTED
         // or STATE_SELECTED_READONLY, depending on the $readOnly parameter
-        if ( $readOnly !== true ) 
+        if ( $readOnly !== true )
         {
             $this->connection->sendData( "{$tag} SELECT \"{$mailbox}\"" );
             $state = self::STATE_SELECTED;
@@ -880,7 +950,7 @@ class ezcMailImapTransport
         return true;
     }
 
-    /** 
+    /**
      * Copies message(s) from the currently selected mailbox to mailbox
      * $destination.
      *
@@ -930,10 +1000,10 @@ class ezcMailImapTransport
         {
             throw new ezcMailTransportException( "Can't call copyMessages() on the IMAP transport when a mailbox is not selected." );
         }
-    
+
         $tag = $this->getNextTag();
         $this->connection->sendData( "{$tag} {$uid}COPY {$messages} \"{$destination}\"" );
-        
+
         $response = trim( $this->getResponse( $tag ) );
         if ( $this->responseType( $response ) != self::RESPONSE_OK )
         {
@@ -983,7 +1053,7 @@ class ezcMailImapTransport
 
         $messageList = array();
         $messages = array();
- 
+
         // get the numbers of the existing messages
         $tag = $this->getNextTag();
         $command = "{$tag} SEARCH UNDELETED";
@@ -1012,9 +1082,12 @@ class ezcMailImapTransport
         {
             // get the sizes of the messages
             $tag = $this->getNextTag();
-            $mailBatchSize = defined('MAIL_BATCH_SIZE') ? MAIL_BATCH_SIZE : 1000;
-            $truncatedMessageList = array_slice($messageList, 0, $mailBatchSize);
-            $query = trim( implode( ',', $truncatedMessageList ) );
+            // The listLimit option will prevent fetch queries from exceeding
+            // the IMAP server's query size limit.
+            if ( $this->options->listLimit ) {
+                $messageList = array_slice( $messageList, 0, $this->options->listLimit );
+            }
+            $query = trim( implode( ',', $messageList ) );
             $this->connection->sendData( "{$tag} FETCH {$query} RFC822.SIZE" );
             $response = $this->getResponse( 'FETCH (' );
             $currentMessage = trim( reset( $messageList ) );
@@ -2497,7 +2570,7 @@ class ezcMailImapTransport
      *
      * @param string $flag
      * @return string
-     */ 
+     */
     protected function normalizeFlag( $flag )
     {
         $flag = strtoupper( $flag );
diff --git a/civicrm/xml/GenCode.php b/civicrm/xml/GenCode.php
index cee7f1475a..65e13eb23e 100644
--- a/civicrm/xml/GenCode.php
+++ b/civicrm/xml/GenCode.php
@@ -4,7 +4,8 @@ if (PHP_SAPI !== 'cli') {
   die("GenCode can only be run from command line.");
 }
 
-ini_set('include_path', '.' . PATH_SEPARATOR . '..' . DIRECTORY_SEPARATOR . 'packages' . PATH_SEPARATOR . '..');
+$includes = ['.', '../packages', '../../civicrm-packages', '..'];
+ini_set('include_path', implode(PATH_SEPARATOR, $includes));
 // make sure the memory_limit is at least 512 MB
 $memLimitString = trim(ini_get('memory_limit'));
 $memLimitUnit = strtolower(substr($memLimitString, -1));
@@ -27,6 +28,8 @@ date_default_timezone_set('UTC');
 
 define('CIVICRM_UF', 'Drupal');
 define('CIVICRM_UF_BASEURL', '/');
+define('CIVICRM_L10N_BASEDIR', getenv('CIVICRM_L10N_BASEDIR') ? getenv('CIVICRM_L10N_BASEDIR') : __DIR__ . '/../l10n');
+$GLOBALS['civicrm_paths']['cms.root']['url'] = 'http://gencode.example.com/do-not-use';
 
 require_once 'CRM/Core/ClassLoader.php';
 CRM_Core_ClassLoader::singleton()->register();
diff --git a/civicrm/xml/schema/Contact/Contact.xml b/civicrm/xml/schema/Contact/Contact.xml
index 262358eaf1..28a2ee98f7 100644
--- a/civicrm/xml/schema/Contact/Contact.xml
+++ b/civicrm/xml/schema/Contact/Contact.xml
@@ -238,7 +238,7 @@
       <type>Text</type>
       <size>30</size>
     </html>
-
+    <contactType>Organization</contactType>
     <import>true</import>
     <headerPattern>/^legal|(l(egal\s)?name)$/i</headerPattern>
     <comment>Legal Name.</comment>
diff --git a/civicrm/xml/schema/Core/Address.xml b/civicrm/xml/schema/Core/Address.xml
index 97ea97b375..49bbcc38b5 100644
--- a/civicrm/xml/schema/Core/Address.xml
+++ b/civicrm/xml/schema/Core/Address.xml
@@ -9,7 +9,9 @@
   <log>true</log>
   <field>
     <name>id</name>
+    <uniqueName>address_id</uniqueName>
     <type>int unsigned</type>
+    <export>true</export>
     <title>Address ID</title>
     <required>true</required>
     <comment>Unique Address ID</comment>
@@ -55,13 +57,13 @@
   </index>
   <field>
     <name>is_primary</name>
-    <title>Is Address Primary?</title>
+    <title>Primary address</title>
     <type>boolean</type>
     <default>0</default>
     <comment>Is this the primary address.</comment>
     <add>2.0</add>
     <html>
-      <type>CheckBox</type>
+      <type>Radio</type>
     </html>
   </field>
   <index>
diff --git a/civicrm/xml/schema/Core/Domain.xml b/civicrm/xml/schema/Core/Domain.xml
index f947878559..1dc87d1bc9 100644
--- a/civicrm/xml/schema/Core/Domain.xml
+++ b/civicrm/xml/schema/Core/Domain.xml
@@ -93,6 +93,7 @@
     <comment>Backend configuration.</comment>
     <serialize>PHP</serialize>
     <add>1.6</add>
+    <drop>5.23</drop>
   </field>
   <field>
     <name>version</name>
diff --git a/civicrm/xml/schema/Core/Email.xml b/civicrm/xml/schema/Core/Email.xml
index c9881ac4f8..90f7a7bef5 100644
--- a/civicrm/xml/schema/Core/Email.xml
+++ b/civicrm/xml/schema/Core/Email.xml
@@ -76,18 +76,14 @@
   </index>
   <field>
     <name>is_primary</name>
+    <title>Primary email</title>
     <type>boolean</type>
     <default>0</default>
-    <comment>Is this the primary email for this contact and location.</comment>
+    <comment>Is this the primary email address</comment>
     <add>1.1</add>
-  </field>
-  <field>
-    <name>is_primary</name>
-    <title>Is Primary email</title>
-    <type>boolean</type>
-    <default>0</default>
-    <comment>Is this the primary?</comment>
-    <add>2.0</add>
+    <html>
+      <type>Radio</type>
+    </html>
   </field>
   <index>
     <name>index_is_primary</name>
diff --git a/civicrm/xml/schema/Core/IM.xml b/civicrm/xml/schema/Core/IM.xml
index ce4e3961e6..74b0cd8e6c 100644
--- a/civicrm/xml/schema/Core/IM.xml
+++ b/civicrm/xml/schema/Core/IM.xml
@@ -87,9 +87,12 @@
   </index>
   <field>
     <name>is_primary</name>
-    <title>Is IM Primary?</title>
+    <title>Primary IM</title>
     <type>boolean</type>
     <default>0</default>
+    <html>
+      <type>Radio</type>
+    </html>
     <comment>Is this the primary IM for this contact and location.</comment>
     <add>1.1</add>
   </field>
diff --git a/civicrm/xml/schema/Core/OpenID.xml b/civicrm/xml/schema/Core/OpenID.xml
index a7b2e2aba9..1aa5c579f6 100644
--- a/civicrm/xml/schema/Core/OpenID.xml
+++ b/civicrm/xml/schema/Core/OpenID.xml
@@ -73,9 +73,12 @@
   </field>
   <field>
     <name>is_primary</name>
-    <title>Is OpenID Primary?</title>
+    <title>Primary ID</title>
     <type>boolean</type>
     <default>0</default>
+    <html>
+      <type>Radio</type>
+    </html>
     <comment>Is this the primary email for this contact and location.</comment>
     <add>2.0</add>
   </field>
diff --git a/civicrm/xml/schema/Core/Phone.xml b/civicrm/xml/schema/Core/Phone.xml
index f3703dc8f5..f6531dbf7c 100644
--- a/civicrm/xml/schema/Core/Phone.xml
+++ b/civicrm/xml/schema/Core/Phone.xml
@@ -55,9 +55,12 @@
   </index>
   <field>
     <name>is_primary</name>
-    <title>Is Phone Primary?</title>
+    <title>Primary phone</title>
     <type>boolean</type>
     <default>0</default>
+    <html>
+      <type>Radio</type>
+    </html>
     <comment>Is this the primary phone for this contact and location.</comment>
     <add>1.1</add>
   </field>
diff --git a/civicrm/xml/schema/Financial/PaymentProcessorType.xml b/civicrm/xml/schema/Financial/PaymentProcessorType.xml
index 27273978a9..72ea65d2b2 100644
--- a/civicrm/xml/schema/Financial/PaymentProcessorType.xml
+++ b/civicrm/xml/schema/Financial/PaymentProcessorType.xml
@@ -19,10 +19,10 @@
   </primaryKey>
   <field>
     <name>name</name>
-    <title>Payment Processor variable name to be used in code</title>
+    <title>Payment Processor Type variable name to be used in code</title>
     <type>varchar</type>
     <length>64</length>
-    <comment>Payment Processor Name.</comment>
+    <comment>Payment Processor Type Name.</comment>
     <add>1.8</add>
     <required>true</required>
   </field>
diff --git a/civicrm/xml/templates/civicrm_data.tpl b/civicrm/xml/templates/civicrm_data.tpl
index d85d0d7786..d076d8ef14 100644
--- a/civicrm/xml/templates/civicrm_data.tpl
+++ b/civicrm/xml/templates/civicrm_data.tpl
@@ -535,7 +535,7 @@ VALUES
   (@option_group_id_acConRef, '{ts escape="sql"}City{/ts}'            , 5, 'city'          , NULL, 0, NULL, 5, NULL, 0, 0, 1, NULL, NULL, NULL),
   (@option_group_id_acConRef, '{ts escape="sql"}State/Province{/ts}'  , 6, 'state_province', NULL, 0, NULL, 6, NULL, 0, 0, 1, NULL, NULL, NULL),
   (@option_group_id_acConRef, '{ts escape="sql"}Country{/ts}'         , 7, 'country'       , NULL, 0, NULL, 7, NULL, 0, 0, 1, NULL, NULL, NULL),
-  (@option_group_id_acConRef, '{ts escape="sql"}Postal Code{/ts}'     , 8, 'country'       , NULL, 0, NULL, 8, NULL, 0, 0, 1, NULL, NULL, NULL),
+  (@option_group_id_acConRef, '{ts escape="sql"}Postal Code{/ts}'     , 8, 'postal_code'   , NULL, 0, NULL, 8, NULL, 0, 0, 1, NULL, NULL, NULL),
 
   (@option_group_id_adOpt, '{ts escape="sql"}Street Address{/ts}'    ,  1, 'street_address', NULL, 0, NULL,  1, NULL, 0, 0, 1, NULL, NULL, NULL),
   (@option_group_id_adOpt, '{ts escape="sql"}Supplemental Address 1{/ts}'  ,  2, 'supplemental_address_1', NULL, 0, NULL,  2, NULL, 0, 0, 1, NULL, NULL, NULL),
@@ -707,6 +707,7 @@ VALUES
   (@option_group_id_mp, 'Maildir', 2, 'Maildir', NULL, 0, NULL, 2, NULL, 0, 0, 1, NULL, NULL , NULL),
   (@option_group_id_mp, 'POP3',    3, 'POP3',    NULL, 0, NULL, 3, NULL, 0, 0, 1, NULL, NULL , NULL),
   (@option_group_id_mp, 'Localdir', 4, 'Localdir', NULL, 0, NULL, 4, NULL, 0, 0, 1, NULL, NULL , NULL),
+  (@option_group_id_mp, 'IMAP XOAUTH2', 5, 'IMAP_XOAUTH2', NULL, 0, NULL, 5, NULL, 0, 0, 0, NULL, NULL , NULL),
 
 -- priority
   (@option_group_id_priority, '{ts escape="sql"}Urgent{/ts}', 1, 'Urgent', NULL, 0, NULL, 1, NULL, 0, 0, 1, NULL, NULL, NULL),
@@ -740,7 +741,6 @@ VALUES
    (@option_group_id_website, 'Work',     1, 'Work',     NULL, 0, 1, 1, NULL, 0, 0, 1, NULL, NULL, NULL),
    (@option_group_id_website, 'Main',     2, 'Main',     NULL, 0, NULL, 2, NULL, 0, 0, 1, NULL, NULL, NULL),
    (@option_group_id_website, 'Facebook', 3, 'Facebook', NULL, 0, NULL, 3, NULL, 0, 0, 1, NULL, NULL, NULL),
-   (@option_group_id_website, 'Google+',  4, 'Google_',  NULL, 0, NULL, 4, NULL, 0, 0, 1, NULL, NULL, NULL),
    (@option_group_id_website, 'Instagram',  5, 'Instagram',  NULL, 0, NULL, 5, NULL, 0, 0, 1, NULL, NULL, NULL),
    (@option_group_id_website, 'LinkedIn',  6, 'LinkedIn',  NULL, 0, NULL, 6, NULL, 0, 0, 1, NULL, NULL, NULL),
    (@option_group_id_website, 'MySpace',  7, 'MySpace',  NULL, 0, NULL, 7, NULL, 0, 0, 1, NULL, NULL, NULL),
@@ -925,17 +925,17 @@ VALUES
    (@option_group_id_name_badge, '{ts escape="sql"}Hanging Badge 3-3/4" x 4-3"/4{/ts}', '{literal}{"paper-size":"a4","orientation":"portrait","font-name":"times","font-size":6,"font-style":"","NX":2,"NY":2,"metric":"mm","lMargin":10,"tMargin":28,"SpaceX":0,"SpaceY":0,"width":96,"height":121,"lPadding":5,"tPadding":5}{/literal}', 'Hanging Badge 3-3/4" x 4-3"/4', NULL, 0, NULL, 4, NULL, 0, 0, 1, NULL, NULL, NULL),
 
 -- Mailing Label Formats
-  (@option_group_id_label, '{ts escape="sql"}Avery 3475{/ts}', '{literal}{"paper-size":"a4","orientation":"portrait","font-name":"helvetica","font-size":10,"font-style":"","metric":"mm","lMargin":0,"tMargin":5,"NX":3,"NY":8,"SpaceX":0,"SpaceY":0,"width":70,"height":36,"lPadding":5.08,"tPadding":5.08}{/literal}',                   '3475',  'Avery', NULL, 0, 1,  NULL, 0, 1, 1, NULL, NULL, NULL),
-  (@option_group_id_label, '{ts escape="sql"}Avery 5160{/ts}', '{literal}{"paper-size":"letter","orientation":"portrait","font-name":"helvetica","font-size":8,"font-style":"","metric":"in","lMargin":0.21975,"tMargin":0.5,"NX":3,"NY":10,"SpaceX":0.14,"SpaceY":0,"width":2.5935,"height":1,"lPadding":0.20,"tPadding":0.20}{/literal}', '5160',  'Avery', NULL, 0, 2,  NULL, 0, 1, 1, NULL, NULL, NULL),
-  (@option_group_id_label, '{ts escape="sql"}Avery 5161{/ts}', '{literal}{"paper-size":"letter","orientation":"portrait","font-name":"helvetica","font-size":8,"font-style":"","metric":"in","lMargin":0.175,"tMargin":0.5,"NX":2,"NY":10,"SpaceX":0.15625,"SpaceY":0,"width":4,"height":1,"lPadding":0.20,"tPadding":0.20}{/literal}',     '5161',  'Avery', NULL, 0, 3,  NULL, 0, 1, 1, NULL, NULL, NULL),
-  (@option_group_id_label, '{ts escape="sql"}Avery 5162{/ts}', '{literal}{"paper-size":"letter","orientation":"portrait","font-name":"helvetica","font-size":8,"font-style":"","metric":"in","lMargin":0.1525,"tMargin":0.88,"NX":2,"NY":7,"SpaceX":0.195,"SpaceY":0,"width":4,"height":1.33,"lPadding":0.20,"tPadding":0.20}{/literal}',   '5162',  'Avery', NULL, 0, 4,  NULL, 0, 1, 1, NULL, NULL, NULL),
-  (@option_group_id_label, '{ts escape="sql"}Avery 5163{/ts}', '{literal}{"paper-size":"letter","orientation":"portrait","font-name":"helvetica","font-size":8,"font-style":"","metric":"in","lMargin":0.18,"tMargin":0.5,"NX":2,"NY":5,"SpaceX":0.14,"SpaceY":0,"width":4,"height":2,"lPadding":0.20,"tPadding":0.20}{/literal}',          '5163',  'Avery', NULL, 0, 5,  NULL, 0, 1, 1, NULL, NULL, NULL),
-  (@option_group_id_label, '{ts escape="sql"}Avery 5164{/ts}', '{literal}{"paper-size":"letter","orientation":"portrait","font-name":"helvetica","font-size":12,"font-style":"","metric":"in","lMargin":0.156,"tMargin":0.5,"NX":2,"NY":3,"SpaceX":0.1875,"SpaceY":0,"width":4,"height":3.33,"lPadding":0.20,"tPadding":0.20}{/literal}',   '5164',  'Avery', NULL, 0, 6,  NULL, 0, 1, 1, NULL, NULL, NULL),
-  (@option_group_id_label, '{ts escape="sql"}Avery 8600{/ts}', '{literal}{"paper-size":"letter","orientation":"portrait","font-name":"helvetica","font-size":8,"font-style":"","metric":"mm","lMargin":7.1,"tMargin":19,"NX":3,"NY":10,"SpaceX":9.5,"SpaceY":3.1,"width":66.6,"height":25.4,"lPadding":5.08,"tPadding":5.08}{/literal}',    '8600',  'Avery', NULL, 0, 7,  NULL, 0, 1, 1, NULL, NULL, NULL),
-  (@option_group_id_label, '{ts escape="sql"}Avery L7160{/ts}', '{literal}{"paper-size":"a4","orientation":"portrait","font-name":"helvetica","font-size":9,"font-style":"","metric":"in","lMargin":0.28,"tMargin":0.6,"NX":3,"NY":7,"SpaceX":0.1,"SpaceY":0,"width":2.5,"height":1.5,"lPadding":0.20,"tPadding":0.20}{/literal}',          'L7160', 'Avery', NULL, 0, 8,  NULL, 0, 1, 1, NULL, NULL, NULL),
-  (@option_group_id_label, '{ts escape="sql"}Avery L7161{/ts}', '{literal}{"paper-size":"a4","orientation":"portrait","font-name":"helvetica","font-size":9,"font-style":"","metric":"in","lMargin":0.28,"tMargin":0.35,"NX":3,"NY":6,"SpaceX":0.1,"SpaceY":0,"width":2.5,"height":1.83,"lPadding":0.20,"tPadding":0.20}{/literal}',        'L7161', 'Avery', NULL, 0, 9,  NULL, 0, 1, 1, NULL, NULL, NULL),
-  (@option_group_id_label, '{ts escape="sql"}Avery L7162{/ts}', '{literal}{"paper-size":"a4","orientation":"portrait","font-name":"helvetica","font-size":9,"font-style":"","metric":"in","lMargin":0.18,"tMargin":0.51,"NX":2,"NY":8,"SpaceX":0.1,"SpaceY":0,"width":3.9,"height":1.33,"lPadding":0.20,"tPadding":0.20}{/literal}',        'L7162', 'Avery', NULL, 0, 10, NULL, 0, 1, 1, NULL, NULL, NULL),
-  (@option_group_id_label, '{ts escape="sql"}Avery L7163{/ts}', '{literal}{"paper-size":"a4","orientation":"portrait","font-name":"helvetica","font-size":9,"font-style":"","metric":"in","lMargin":0.18,"tMargin":0.6,"NX":2,"NY":7,"SpaceX":0.1,"SpaceY":0,"width":3.9,"height":1.5,"lPadding":0.20,"tPadding":0.20}{/literal}',          'L7163', 'Avery', NULL, 0, 11, NULL, 0, 1, 1, NULL, NULL, NULL),
+  (@option_group_id_label, '{ts escape="sql"}Avery 3475{/ts}', '{literal}{"paper-size":"a4","orientation":"portrait","font-name":"dejavusans","font-size":10,"font-style":"","metric":"mm","lMargin":0,"tMargin":5,"NX":3,"NY":8,"SpaceX":0,"SpaceY":0,"width":70,"height":36,"lPadding":5.08,"tPadding":5.08}{/literal}',                   '3475',  'Avery', NULL, 0, 1,  NULL, 0, 1, 1, NULL, NULL, NULL),
+  (@option_group_id_label, '{ts escape="sql"}Avery 5160{/ts}', '{literal}{"paper-size":"letter","orientation":"portrait","font-name":"dejavusans","font-size":8,"font-style":"","metric":"in","lMargin":0.21975,"tMargin":0.5,"NX":3,"NY":10,"SpaceX":0.14,"SpaceY":0,"width":2.5935,"height":1,"lPadding":0.20,"tPadding":0.20}{/literal}', '5160',  'Avery', NULL, 0, 2,  NULL, 0, 1, 1, NULL, NULL, NULL),
+  (@option_group_id_label, '{ts escape="sql"}Avery 5161{/ts}', '{literal}{"paper-size":"letter","orientation":"portrait","font-name":"dejavusans","font-size":8,"font-style":"","metric":"in","lMargin":0.175,"tMargin":0.5,"NX":2,"NY":10,"SpaceX":0.15625,"SpaceY":0,"width":4,"height":1,"lPadding":0.20,"tPadding":0.20}{/literal}',     '5161',  'Avery', NULL, 0, 3,  NULL, 0, 1, 1, NULL, NULL, NULL),
+  (@option_group_id_label, '{ts escape="sql"}Avery 5162{/ts}', '{literal}{"paper-size":"letter","orientation":"portrait","font-name":"dejavusans","font-size":8,"font-style":"","metric":"in","lMargin":0.1525,"tMargin":0.88,"NX":2,"NY":7,"SpaceX":0.195,"SpaceY":0,"width":4,"height":1.33,"lPadding":0.20,"tPadding":0.20}{/literal}',   '5162',  'Avery', NULL, 0, 4,  NULL, 0, 1, 1, NULL, NULL, NULL),
+  (@option_group_id_label, '{ts escape="sql"}Avery 5163{/ts}', '{literal}{"paper-size":"letter","orientation":"portrait","font-name":"dejavusans","font-size":8,"font-style":"","metric":"in","lMargin":0.18,"tMargin":0.5,"NX":2,"NY":5,"SpaceX":0.14,"SpaceY":0,"width":4,"height":2,"lPadding":0.20,"tPadding":0.20}{/literal}',          '5163',  'Avery', NULL, 0, 5,  NULL, 0, 1, 1, NULL, NULL, NULL),
+  (@option_group_id_label, '{ts escape="sql"}Avery 5164{/ts}', '{literal}{"paper-size":"letter","orientation":"portrait","font-name":"dejavusans","font-size":12,"font-style":"","metric":"in","lMargin":0.156,"tMargin":0.5,"NX":2,"NY":3,"SpaceX":0.1875,"SpaceY":0,"width":4,"height":3.33,"lPadding":0.20,"tPadding":0.20}{/literal}',   '5164',  'Avery', NULL, 0, 6,  NULL, 0, 1, 1, NULL, NULL, NULL),
+  (@option_group_id_label, '{ts escape="sql"}Avery 8600{/ts}', '{literal}{"paper-size":"letter","orientation":"portrait","font-name":"dejavusans","font-size":8,"font-style":"","metric":"mm","lMargin":7.1,"tMargin":19,"NX":3,"NY":10,"SpaceX":9.5,"SpaceY":3.1,"width":66.6,"height":25.4,"lPadding":5.08,"tPadding":5.08}{/literal}',    '8600',  'Avery', NULL, 0, 7,  NULL, 0, 1, 1, NULL, NULL, NULL),
+  (@option_group_id_label, '{ts escape="sql"}Avery L7160{/ts}', '{literal}{"paper-size":"a4","orientation":"portrait","font-name":"dejavusans","font-size":9,"font-style":"","metric":"in","lMargin":0.28,"tMargin":0.6,"NX":3,"NY":7,"SpaceX":0.1,"SpaceY":0,"width":2.5,"height":1.5,"lPadding":0.20,"tPadding":0.20}{/literal}',          'L7160', 'Avery', NULL, 0, 8,  NULL, 0, 1, 1, NULL, NULL, NULL),
+  (@option_group_id_label, '{ts escape="sql"}Avery L7161{/ts}', '{literal}{"paper-size":"a4","orientation":"portrait","font-name":"dejavusans","font-size":9,"font-style":"","metric":"in","lMargin":0.28,"tMargin":0.35,"NX":3,"NY":6,"SpaceX":0.1,"SpaceY":0,"width":2.5,"height":1.83,"lPadding":0.20,"tPadding":0.20}{/literal}',        'L7161', 'Avery', NULL, 0, 9,  NULL, 0, 1, 1, NULL, NULL, NULL),
+  (@option_group_id_label, '{ts escape="sql"}Avery L7162{/ts}', '{literal}{"paper-size":"a4","orientation":"portrait","font-name":"dejavusans","font-size":9,"font-style":"","metric":"in","lMargin":0.18,"tMargin":0.51,"NX":2,"NY":8,"SpaceX":0.1,"SpaceY":0,"width":3.9,"height":1.33,"lPadding":0.20,"tPadding":0.20}{/literal}',        'L7162', 'Avery', NULL, 0, 10, NULL, 0, 1, 1, NULL, NULL, NULL),
+  (@option_group_id_label, '{ts escape="sql"}Avery L7163{/ts}', '{literal}{"paper-size":"a4","orientation":"portrait","font-name":"dejavusans","font-size":9,"font-style":"","metric":"in","lMargin":0.18,"tMargin":0.6,"NX":2,"NY":7,"SpaceX":0.1,"SpaceY":0,"width":3.9,"height":1.5,"lPadding":0.20,"tPadding":0.20}{/literal}',          'L7163', 'Avery', NULL, 0, 11, NULL, 0, 1, 1, NULL, NULL, NULL),
 
 -- Communication Styles
   (@option_group_id_communication_style, '{ts escape="sql"}Formal{/ts}'  , 1, 'formal'  , NULL, 0, 1, 1, NULL, 0, 0, 1, NULL, NULL, NULL),
diff --git a/civicrm/xml/templates/civicrm_msg_template.tpl b/civicrm/xml/templates/civicrm_msg_template.tpl
index 805a67cba4..b664df6674 100644
--- a/civicrm/xml/templates/civicrm_msg_template.tpl
+++ b/civicrm/xml/templates/civicrm_msg_template.tpl
@@ -106,16 +106,16 @@ INSERT INTO civicrm_msg_template
   (msg_title,      msg_subject,                  msg_text,                  msg_html,                  workflow_id,        is_default, is_reserved) VALUES
 {foreach from=$ovNames key=gName item=ovs name=for_groups}
 {foreach from=$ovs key=vName item=title name=for_values}
-      {fetch assign=subject file="`$smarty.const.SMARTY_DIR`/../../xml/templates/message_templates/`$vName`_subject.tpl"}
-      {fetch assign=text    file="`$smarty.const.SMARTY_DIR`/../../xml/templates/message_templates/`$vName`_text.tpl"}
-      {fetch assign=html    file="`$smarty.const.SMARTY_DIR`/../../xml/templates/message_templates/`$vName`_html.tpl"}
+      {fetch assign=subject file="`$gencodeXmlDir`/templates/message_templates/`$vName`_subject.tpl"}
+      {fetch assign=text    file="`$gencodeXmlDir`/templates/message_templates/`$vName`_text.tpl"}
+      {fetch assign=html    file="`$gencodeXmlDir`/templates/message_templates/`$vName`_html.tpl"}
       ('{$title}', '{$subject|escape:"quotes"}', '{$text|escape:"quotes"}', '{$html|escape:"quotes"}', @tpl_ovid_{$vName}, 1,          0),
       ('{$title}', '{$subject|escape:"quotes"}', '{$text|escape:"quotes"}', '{$html|escape:"quotes"}', @tpl_ovid_{$vName}, 0,          1) {if $smarty.foreach.for_groups.last and $smarty.foreach.for_values.last};{else},{/if}
 {/foreach}
 {/foreach}
 
 {php}
-  $dir = SMARTY_DIR . '/../../xml/templates/message_templates/sample';
+  $dir = $this->_tpl_vars['gencodeXmlDir'] . '/templates/message_templates/sample';
   $templates = array();
   foreach (preg_grep('/\.tpl$/', scandir($dir)) as $filename) {
     $templates[] = array('name' => basename($filename, '.tpl'), 'filename' => "$dir/$filename");
diff --git a/civicrm/xml/templates/message_templates/contribution_offline_receipt_html.tpl b/civicrm/xml/templates/message_templates/contribution_offline_receipt_html.tpl
index c68ad33d0a..4f7b8819f3 100644
--- a/civicrm/xml/templates/message_templates/contribution_offline_receipt_html.tpl
+++ b/civicrm/xml/templates/message_templates/contribution_offline_receipt_html.tpl
@@ -37,6 +37,14 @@
        {ts}Contribution Information{/ts}
       </th>
      </tr>
+     <tr>
+      <td {$labelStyle}>
+       {ts}Contributor Name{/ts}
+      </td>
+      <td {$valueStyle}>
+       {contact.display_name}
+      </td>
+     </tr>
      <tr>
       <td {$labelStyle}>
        {ts}Financial Type{/ts}
diff --git a/civicrm/xml/templates/message_templates/contribution_offline_receipt_text.tpl b/civicrm/xml/templates/message_templates/contribution_offline_receipt_text.tpl
index 2012417303..50e0cd4e37 100644
--- a/civicrm/xml/templates/message_templates/contribution_offline_receipt_text.tpl
+++ b/civicrm/xml/templates/message_templates/contribution_offline_receipt_text.tpl
@@ -8,6 +8,7 @@
 {ts}Contribution Information{/ts}
 
 ===========================================================
+{ts}Contributor{/ts}: {contact.display_name}
 {ts}Financial Type{/ts}: {$formValues.contributionType_name}
 {if $lineItem}
 {foreach from=$lineItem item=value key=priceset}
diff --git a/civicrm/xml/templates/message_templates/participant_confirm_html.tpl b/civicrm/xml/templates/message_templates/participant_confirm_html.tpl
index 75745fd10f..ed1d2b7b0d 100644
--- a/civicrm/xml/templates/message_templates/participant_confirm_html.tpl
+++ b/civicrm/xml/templates/message_templates/participant_confirm_html.tpl
@@ -39,7 +39,7 @@
   {/if}
   {if $event.allow_selfcancelxfer }
   {ts}This event allows for{/ts}
-  {capture assign=selfService}{crmURL p='civicrm/event/selfsvcupdate' q="reset=1&pid=`$participantID`&{contact.checksum}" h=0 a=1 fe=1}{/capture}
+  {capture assign=selfService}{crmURL p='civicrm/event/selfsvcupdate' q="reset=1&pid=`$participant.id`&{contact.checksum}" h=0 a=1 fe=1}{/capture}
        <a href="{$selfService}"> {ts}self service cancel or transfer{/ts}</a>
   {/if}
 
diff --git a/civicrm/xml/version.xml b/civicrm/xml/version.xml
index 54074b81d7..500e0126f4 100644
--- a/civicrm/xml/version.xml
+++ b/civicrm/xml/version.xml
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="iso-8859-1" ?>
 <version>
-  <version_no>5.22.1</version_no>
+  <version_no>5.23.0</version_no>
 </version>
diff --git a/includes/civicrm.basepage.php b/includes/civicrm.basepage.php
index 9ce1a35e93..3750637d55 100644
--- a/includes/civicrm.basepage.php
+++ b/includes/civicrm.basepage.php
@@ -300,6 +300,9 @@ class CiviCRM_For_WordPress_Basepage {
       restore_current_blog();
     }
 
+    // Make sure Rewrite Rules are flushed.
+    delete_option( 'civicrm_rules_flushed' );
+
     return $page_id;
 
   }
diff --git a/languages/civicrm.pot b/languages/civicrm.pot
index 22349420e7..9250ed70af 100644
--- a/languages/civicrm.pot
+++ b/languages/civicrm.pot
@@ -1,184 +1,107 @@
-# Copyright (C) 2014 CiviCRM
+# Copyright (C) 2020 CiviCRM
 # This file is distributed under the same license as the CiviCRM package.
 msgid ""
 msgstr ""
-"Project-Id-Version: CiviCRM 4.6\n"
-"Report-Msgid-Bugs-To: http://wordpress.org/tag/civicrm\n"
-"POT-Creation-Date: 2014-11-11 09:48:56+00:00\n"
+"Project-Id-Version: CiviCRM 4.7\n"
+"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/civicrm\n"
+"POT-Creation-Date: 2020-02-14 10:30:38+00:00\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"PO-Revision-Date: 2014-MO-DA HO:MI+ZONE\n"
+"PO-Revision-Date: 2020-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
 
-#: assets/templates/civicrm.modal.php:49
-msgid "Can't find your form? Make sure it is active."
+#: civicrm/CRM/Admin/Page/Access.php:43
+msgid "behavior.modal"
 msgstr ""
 
-#: assets/templates/civicrm.modal.php:54
-msgid "Select Page Type"
-msgstr ""
-
-#: assets/templates/civicrm.modal.php:56
-msgid "Contribution Page"
-msgstr ""
-
-#: assets/templates/civicrm.modal.php:59
-msgid "Event Page"
-msgstr ""
-
-#: assets/templates/civicrm.modal.php:62
-msgid "Profile"
-msgstr ""
-
-#: assets/templates/civicrm.modal.php:64
-msgid "User Dashboard"
-msgstr ""
-
-#: assets/templates/civicrm.modal.php:66
-msgid "Petition"
-msgstr ""
-
-#: assets/templates/civicrm.modal.php:116
-msgid "Event Info Page"
-msgstr ""
-
-#: assets/templates/civicrm.modal.php:118
-msgid "Event Registration Page"
-msgstr ""
-
-#: assets/templates/civicrm.modal.php:125
-msgid "Live Page"
-msgstr ""
-
-#: assets/templates/civicrm.modal.php:127
-msgid "Test Drive"
-msgstr ""
-
-#: assets/templates/civicrm.modal.php:134
-msgid "Create"
-msgstr ""
-
-#: assets/templates/civicrm.modal.php:136
-msgid "Edit"
-msgstr ""
-
-#: assets/templates/civicrm.modal.php:138
-msgid "View"
-msgstr ""
-
-#: assets/templates/civicrm.modal.php:140
-msgid "Search/Public Directory"
-msgstr ""
-
-#: assets/templates/civicrm.modal.php:145
-msgid "If you only insert one shortcode, you can choose to override all page content with the content of the shortcode."
-msgstr ""
-
-#: assets/templates/civicrm.modal.php:147
-msgid "Override page content"
-msgstr ""
-
-#: assets/templates/civicrm.modal.php:149
-msgid "Don't override"
-msgstr ""
-
-#: assets/templates/civicrm.modal.php:156
-msgid "Cancel"
-msgstr ""
-
-#: civicrm.php:168 civicrm.php:260
+#: civicrm.php:241 civicrm.php:337
 msgid "Only one instance of CiviCRM_For_WordPress please"
 msgstr ""
 
-#: civicrm.php:175
+#: civicrm.php:250
 msgid "Please do not serialize CiviCRM_For_WordPress"
 msgstr ""
 
-#: civicrm.php:539
-msgid "CiviCRM requires PHP Version %s or greater. You are running PHP Version %s"
+#: civicrm.php:853
+msgid "CiviCRM requires PHP version %1$s or greater. You are running PHP version %2$s"
 msgstr ""
 
-#: civicrm.php:567
+#: civicrm.php:902
 msgid "Please review the <a href=\"%s\">WordPress Installation Guide</a> and the <a href=\"%s\">Trouble-shooting page</a> for assistance. If you still need help installing, you can often find solutions to your issue by searching for the error message in the <a href=\"%s\">installation support section of the community forum</a>."
 msgstr ""
 
-#: civicrm.php:575
+#: civicrm.php:910
 msgid "Click <a href=\"%s\">here</a> for fresh install."
 msgstr ""
 
-#: civicrm.php:604
+#: civicrm.php:939
 msgid "Oops! - The path for including CiviCRM code files is not set properly. Most likely there is an error in the <em>civicrm_root</em> setting in your CiviCRM settings file (%s)."
 msgstr ""
 
-#: civicrm.php:609
+#: civicrm.php:944
 msgid "civicrm_root is currently set to: <em>%s</em>."
 msgstr ""
 
-#: civicrm.php:705 civicrm.php:706 civicrm.php:882
-#: includes/civicrm.shortcodes.modal.php:106
-#: includes/civicrm.shortcodes.php:417
+#: civicrm.php:1044 civicrm.php:1045 includes/civicrm.basepage.php:280
+#: includes/civicrm.shortcodes.modal.php:93 includes/civicrm.shortcodes.php:489
 msgid "CiviCRM"
 msgstr ""
 
-#: civicrm.php:724 civicrm.php:725
+#: civicrm.php:1060 civicrm.php:1061
 msgid "CiviCRM Installer"
 msgstr ""
 
-#: civicrm.php:779
+#: civicrm.php:1148
 msgid "CiviCRM is almost ready."
 msgstr ""
 
-#: civicrm.php:782
+#: civicrm.php:1151
 msgid "You must <a href=\"%s\">configure CiviCRM</a> for it to work."
 msgstr ""
 
-#: civicrm.php:885
+#: includes/civicrm.basepage.php:283
 msgid "Do not delete this page. Page content is generated by CiviCRM."
 msgstr ""
 
-#: includes/civicrm.shortcodes.modal.php:106
+#: includes/civicrm.shortcodes.modal.php:93
 msgid "Add CiviCRM Public Pages"
 msgstr ""
 
-#: includes/civicrm.shortcodes.modal.php:345
-msgid "Please select a CiviCRM front-end page type"
+#: includes/civicrm.shortcodes.php:302 includes/civicrm.shortcodes.php:355
+msgid "Do not know how to handle this shortcode."
 msgstr ""
 
-#: includes/civicrm.shortcodes.php:322
+#: includes/civicrm.shortcodes.php:365
 msgid "Content via CiviCRM"
 msgstr ""
 
-#: includes/civicrm.shortcodes.php:405
+#: includes/civicrm.shortcodes.php:476
 msgid "Find out more..."
 msgstr ""
 
-#: includes/civicrm.shortcodes.php:416
+#: includes/civicrm.shortcodes.php:488
 msgid "CiviCRM.org - Growing and Sustaining Relationships"
 msgstr ""
 
-#: includes/civicrm.shortcodes.php:419
+#: includes/civicrm.shortcodes.php:491
 msgid "Empowered by %s"
 msgstr ""
 
-#: includes/civicrm.shortcodes.php:606 includes/civicrm.shortcodes.php:644
-msgid "Do not know how to handle this shortcode"
-msgstr ""
-
-#: includes/civicrm.shortcodes.php:711
+#: includes/civicrm.shortcodes.php:850
 msgid "Register for %s"
 msgstr ""
 
-#: includes/civicrm.shortcodes.php:743
+#: includes/civicrm.shortcodes.php:882
 msgid "Dashboard"
 msgstr ""
 
-#: includes/civicrm.users.php:125
+#: includes/civicrm.users.php:138
 msgid "You do not have permission to access this content."
 msgstr ""
 
-#: includes/civicrm.users.php:262
+#: includes/civicrm.users.php:292
 msgid "Anonymous User"
 msgstr ""
 #. Plugin Name of the plugin/theme
@@ -186,7 +109,7 @@ msgid "CiviCRM"
 msgstr ""
 
 #. Plugin URI of the plugin/theme
-msgid "http://wiki.civicrm.org/confluence/display/CRMDOC/WordPress+Installation+Guide+for+CiviCRM+4.5"
+msgid "https://docs.civicrm.org/sysadmin/en/latest/install/wordpress/"
 msgstr ""
 
 #. Description of the plugin/theme
@@ -198,5 +121,5 @@ msgid "CiviCRM LLC"
 msgstr ""
 
 #. Author URI of the plugin/theme
-msgid "http://civicrm.org/"
+msgid "https://civicrm.org/"
 msgstr ""
diff --git a/wp-rest/.editorconfig b/wp-rest/.editorconfig
deleted file mode 100644
index 09dc3747d3..0000000000
--- a/wp-rest/.editorconfig
+++ /dev/null
@@ -1,9 +0,0 @@
-# EditorConfig is awesome: https://editorconfig.org
-
-# Not top-most EditorConfig file
-root = false
-
-# Tab indentation
-[*.php]
-indent_style = tab
-indent_size = 4
diff --git a/wp-rest/Autoloader.php b/wp-rest/Autoloader.php
deleted file mode 100644
index 0111866615..0000000000
--- a/wp-rest/Autoloader.php
+++ /dev/null
@@ -1,115 +0,0 @@
-<?php
-/**
- * Autoloader class.
- *
- * @since 0.1
- */
-
-namespace CiviCRM_WP_REST;
-
-class Autoloader {
-
-	/**
-	 * Instance.
-	 *
-	 * @since 0.1
-	 * @var string
-	 */
-	private static $instance = null;
-
-	/**
-	 * Namespace.
-	 *
-	 * @since 0.1
-	 * @var string
-	 */
-	private $namespace = 'CiviCRM_WP_REST';
-
-	/**
-	 * Autoloader directory sources.
-	 *
-	 * @since 0.1
-	 * @var array
-	 */
-	private static $source_directories = [];
-
-	/**
-	 * Constructor.
-	 *
-	 * @since 0.1
-	 */
-	private function __construct() {
-
-		$this->register_autoloader();
-
-	}
-
-	/**
-	 * Creates an instance of this class.
-	 *
-	 * @since 0.1
-	 */
-	private static function instance() {
-
-		if ( ! self::$instance ) self::$instance = new self;
-
-	}
-
-	/**
-	 * Adds a directory source.
-	 *
-	 * @since 0.1
-	 * @param string $source The source path
-	 */
-	public static function add_source( string $source_path ) {
-
-		// make sure we have an instance
-		self::instance();
-
-		if ( ! is_readable( trailingslashit( $source_path ) ) )
-			return \WP_Error( 'civicrm_wp_rest_error', sprintf( __( 'The source %s is not readable.', 'civicrm' ), $source ) );
-
-		self::$source_directories[] = $source_path;
-
-	}
-
-	/**
-	 * Registers the autoloader.
-	 *
-	 * @since 0.1
-	 * @return bool Wehather the autoloader has been registered or not
-	 */
-	private function register_autoloader() {
-
-		return spl_autoload_register( [ $this, 'autoload' ] );
-
-	}
-
-	/**
-	 * Loads the classes.
-	 *
-	 * @since 0.1
-	 * @param string $class_name The class name to load
-	 */
-	private function autoload( $class_name ) {
-
-		$parts = explode( '\\', $class_name );
-
-		if ( $this->namespace !== $parts[0] ) return;
-
-		// remove namespace and join class path
-		$class_path = str_replace( '_', '-', implode( DIRECTORY_SEPARATOR, array_slice( $parts, 1 ) ) );
-
-		array_map( function( $source_path ) use ( $class_path ) {
-
-			$path = $source_path . $class_path . '.php';
-
-			if ( ! file_exists( $path ) ) return;
-
-			require $path;
-
-		}, static::$source_directories );
-
-	}
-
-}
diff --git a/wp-rest/Civi/Mailing-Hooks.php b/wp-rest/Civi/Mailing-Hooks.php
deleted file mode 100644
index b765e1c911..0000000000
--- a/wp-rest/Civi/Mailing-Hooks.php
+++ /dev/null
@@ -1,197 +0,0 @@
-<?php
-/**
- * CiviCRM Mailing_Hooks class.
- *
- * @since 0.1
- */
-
-namespace CiviCRM_WP_REST\Civi;
-
-class Mailing_Hooks {
-
-	/**
-	 * Mailing Url endpoint.
-	 *
-	 * @since 0.1
-	 * @var string
-	 */
-	public $url_endpoint;
-
-	/**
-	 * Mailing Open endpoint.
-	 *
-	 * @since 0.1
-	 * @var string
-	 */
-	public $open_endpoint;
-
-	/**
-	 * The parsed WordPress REST url.
-	 *
-	 * @since 1.0
-	 * @var array
-	 */
-	public $parsed_rest_url;
-
-	/**
-	 * Constructor.
-	 *
-	 * @since 0.1
-	 */
-	public function __construct() {
-
-		$this->url_endpoint = rest_url( 'civicrm/v3/url' );
-
-		$this->open_endpoint = rest_url( 'civicrm/v3/open' );
-
-		$this->parsed_rest_url = parse_url( rest_url() );
-
-	}
-
-	/**
-	 * Register hooks.
-	 *
-	 * @since 0.1
-	 */
-	public function register_hooks() {
-
-		add_filter( 'civicrm_alterMailParams', [ $this, 'do_mailing_urls' ], 10, 2 );
-
-		add_filter( 'civicrm_alterExternUrl', [ $this, 'alter_mailing_extern_urls' ], 10, 6 );
-
-	}
-
-	/**
-	 * Replaces the open, and click
-	 * tracking URLs for a mailing (CiviMail)
-	 * with thier REST counterparts.
-	 *
-	 * @uses 'civicrm_alterExternUrl' filter
-	 *
-	 * @param \GuzzleHttp\Psr7\Uri $url
-	 * @param string|null $path
-	 * @param string|null $query
-	 * @param string|null $fragment
-	 * @param bool|null $absolute
-	 * @param bool|null $isSSL
-	 */
-	public function alter_mailing_extern_urls( &$url, $path, $query, $fragment, $absolute, $isSSL ) {
-
-		if ( $path == 'extern/url' ) {
-			$url = $url
-				->withHost( $this->parsed_rest_url['host'] )
-				->withPath( "{$this->parsed_rest_url['path']}civicrm/v3/url" );
-		}
-
-		if ( $path == 'extern/open' ) {
-			$url = $url
-				->withHost( $this->parsed_rest_url['host'] )
-				->withPath( "{$this->parsed_rest_url['path']}civicrm/v3/open" );
-		}
-
-	}
-
-	/**
-	 * Filters the mailing html and replaces calls to 'extern/url.php' and
-	 * 'extern/open.php' with their REST counterparts 'civicrm/v3/url' and 'civicrm/v3/open'.
-	 *
-	 * @uses 'civicrm_alterMailParams'
-	 *
-	 * @since 0.1
-	 * @param array &$params Mail params
-	 * @param string $context The Context
-	 * @return array $params The filtered Mail params
-	 */
-	public function do_mailing_urls( &$params, $context ) {
-
-		if ( in_array( $context, [ 'civimail', 'flexmailer' ] ) ) {
-
-			$params['html'] = $this->is_mail_tracking_url_alterable( $params['html'] )
-				? $this->replace_html_mailing_tracking_urls( $params['html'] )
-				: $params['html'];
-
-			$params['text'] = $this->is_mail_tracking_url_alterable( $params['text'] )
-				? $this->replace_text_mailing_tracking_urls( $params['text'] )
-				: $params['text'];
-
-		}
-
-		return $params;
-
-	}
-
-	/**
-	 * Replace html mailing tracking urls.
-	 *
-	 * @since 0.1
-	 * @param string $contnet The mailing content
-	 * @return string $content The mailing content
-	 */
-	public function replace_html_mailing_tracking_urls( string $content ) {
-
-		$doc = \phpQuery::newDocument( $content );
-
-		foreach ( $doc[ '[href*="civicrm/extern/url.php"], [src*="civicrm/extern/open.php"]' ] as $element ) {
-
-			$href = pq( $element )->attr( 'href' );
-			$src = pq( $element )->attr( 'src' );
-
-			// replace extern/url
-			if ( strpos( $href, 'civicrm/extern/url.php' ) )	{
-
-				$query_string = strstr( $href, '?' );
-				pq( $element )->attr( 'href', $this->url_endpoint . $query_string );
-
-			}
-
-			// replace extern/open
-			if ( strpos( $src, 'civicrm/extern/open.php' ) ) {
-
-				$query_string = strstr( $src, '?' );
-				pq( $element )->attr( 'src', $this->open_endpoint . $query_string );
-
-			}
-
-			unset( $href, $src, $query_string );
-
-		}
-
-		return $doc->html();
-
-	}
-
-	/**
-	 * Replace text mailing tracking urls.
-	 *
-	 * @since 0.1
-	 * @param string $contnet The mailing content
-	 * @return string $content The mailing content
-	 */
-	public function replace_text_mailing_tracking_urls( string $content ) {
-
-		// replace extern url
-		$content = preg_replace( '/http.*civicrm\/extern\/url\.php/i', $this->url_endpoint, $content );
-
-		// replace open url
-		$content = preg_replace( '/http.*civicrm\/extern\/open\.php/i', $this->open_endpoint, $content );
-
-		return $content;
-
-	}
-
-	/**
-	 * Checks whether for a given mail
-	 * content (text or html) the tracking URLs
-	 * are alterable/need to be altered.
-	 *
-	 * @since 0.1
-	 * @param string $content The mail content (text or  html)
-	 * @return bool $is_alterable
-	 */
-	public function is_mail_tracking_url_alterable( string $content ) {
-
-		return strpos( $content, 'civicrm/extern/url.php' ) || strpos( $content, 'civicrm/extern/open.php' );
-
-	}
-
-}
diff --git a/wp-rest/Controller/AuthorizeIPN.php b/wp-rest/Controller/AuthorizeIPN.php
deleted file mode 100644
index 4cd9da9a97..0000000000
--- a/wp-rest/Controller/AuthorizeIPN.php
+++ /dev/null
@@ -1,123 +0,0 @@
-<?php
-/**
- * AuthorizeIPN controller class.
- *
- * Replacement for CiviCRM's 'extern/authorizeIPN.php'.
- *
- * @see https://docs.civicrm.org/sysadmin/en/latest/setup/payment-processors/authorize-net/#shell-script-testing-method
- *
- * @since 0.1
- */
-
-namespace CiviCRM_WP_REST\Controller;
-
-class AuthorizeIPN extends Base {
-
-	/**
-	 * The base route.
-	 *
-	 * @since 0.1
-	 * @var string
-	 */
-	protected $rest_base = 'authorizeIPN';
-
-	/**
-	 * Registers routes.
-	 *
-	 * @since 0.1
-	 */
-	public function register_routes() {
-
-		register_rest_route( $this->get_namespace(), $this->get_rest_base(), [
-			[
-				'methods' => \WP_REST_Server::ALLMETHODS,
-				'callback' => [ $this, 'get_item' ]
-			]
-		] );
-
-	}
-
-	/**
-	 * Get items.
-	 *
-	 * @since 0.1
-	 * @param WP_REST_Request $request
-	 */
-	public function get_item( $request ) {
-
-		/**
-		 * Filter request params.
-		 *
-		 * @since 0.1
-		 * @param array $params
-		 * @param WP_REST_Request $request
-		 */
-		$params = apply_filters( 'civi_wp_rest/controller/authorizeIPN/params', $request->get_params(), $request );
-
-		$authorize_IPN = new \CRM_Core_Payment_AuthorizeNetIPN( $params );
-
-		// log notification
-		\Civi::log()->alert( 'payment_notification processor_name=AuthNet', $params );
-
-		/**
-		 * Filter AuthorizeIPN object.
-		 *
-		 * @param CRM_Core_Payment_AuthorizeNetIPN $authorize_IPN
-		 * @param array $params
-		 * @param WP_REST_Request $request
-		 */
-		$authorize_IPN = apply_filters( 'civi_wp_rest/controller/authorizeIPN/instance', $authorize_IPN, $params, $request );
-
-		try {
-
-			if ( ! method_exists( $authorize_IPN, 'main' ) || ! $this->instance_of_crm_base_ipn( $authorize_IPN ) )
-				return $this->civi_rest_error( sprintf( __( '%s must implement a "main" method.', 'civicrm' ), get_class( $authorize_IPN ) ) );
-
-			$result = $authorize_IPN->main();
-
-		} catch ( \CRM_Core_Exception $e ) {
-
-			\Civi::log()->error( $e->getMessage() );
-			\Civi::log()->error( 'error data ', [ 'data' => $e->getErrorData() ] );
-			\Civi::log()->error( 'REQUEST ', [ 'params' => $params ] );
-
-			return $this->civi_rest_error( $e->getMessage() );
-
-		}
-
-		return rest_ensure_response( $result );
-
-	}
-
-	/**
-	 * Checks whether object is an instance of CRM_Core_Payment_AuthorizeNetIPN or CRM_Core_Payment_BaseIPN.
-	 *
-	 * Needed because the instance is being filtered through 'civi_wp_rest/controller/authorizeIPN/instance'.
-	 *
-	 * @since 0.1
-	 * @param CRM_Core_Payment_AuthorizeNetIPN|CRM_Core_Payment_BaseIPN $object
-	 * @return bool
-	 */
-	public function instance_of_crm_base_ipn( $object ) {
-
-		return $object instanceof \CRM_Core_Payment_BaseIPN || $object instanceof \CRM_Core_Payment_AuthorizeNetIPN;
-
-	}
-
-	/**
-	 * Item schema.
-	 *
-	 * @since 0.1
-	 * @return array $schema
-	 */
-	public function get_item_schema() {}
-
-	/**
-	 * Item arguments.
-	 *
-	 * @since 0.1
-	 * @return array $arguments
-	 */
-	public function get_item_args() {}
-
-}
diff --git a/wp-rest/Controller/Base.php b/wp-rest/Controller/Base.php
deleted file mode 100644
index 61ab9b3c63..0000000000
--- a/wp-rest/Controller/Base.php
+++ /dev/null
@@ -1,111 +0,0 @@
-<?php
-/**
- * Base controller class.
- *
- * @since 0.1
- */
-
-namespace CiviCRM_WP_REST\Controller;
-
-use CiviCRM_WP_REST\Endpoint\Endpoint_Interface;
-
-abstract class Base extends \WP_REST_Controller implements Endpoint_Interface {
-
-	/**
-	 * Route namespace.
-	 *
-	 * @since 0.1
-	 * @var string
-	 */
-	protected $namespace = 'civicrm/v3';
-
-	/**
-	 * Gets the endpoint namespace.
-	 *
-	 * @since 0.1
-	 * @return string $namespace
-	 */
-	public function get_namespace() {
-
-		return $this->namespace;
-
-	}
-
-	/**
-	 * Gets the rest base route.
-	 *
-	 * @since 0.1
-	 * @return string $rest_base
-	 */
-	public function get_rest_base() {
-
-		return '/' . $this->rest_base;
-
-	}
-
-	/**
-	 * Retrieves the endpoint ie. '/civicrm/v3/rest'.
-	 *
-	 * @since 0.1
-	 * @return string $rest_base
-	 */
-	public function get_endpoint() {
-
-		return '/' . $this->get_namespace() . $this->get_rest_base();
-
-	}
-
-	/**
-	 * Checks whether the requested route is equal to this endpoint.
-	 *
-	 * @since 0.1
-	 * @param WP_REST_Request $request
-	 * @return bool $is_current_endpoint True if it's equal, false otherwise
-	 */
-	public function is_current_endpoint( $request ) {
-
-		return $this->get_endpoint() == $request->get_route();
-
-	}
-
-	/**
-	 * Authorization status code.
-	 *
-	 * @since 0.1
-	 * @return int $status
-	 */
-	protected function authorization_status_code() {
-
-		$status = 401;
-
-		if ( is_user_logged_in() ) $status = 403;
-
-		return $status;
-
-	}
-
-	/**
-	 * Wrapper for WP_Error.
-	 *
-	 * @since 0.1
-	 * @param string|\CiviCRM_API3_Exception|\WP_Error $error
-	 * @param mixed $data Error data
-	 * @return WP_Error $error
-	 */
-	protected function civi_rest_error( $error, $data = [] ) {
-
-		if ( $error instanceof \CiviCRM_API3_Exception ) {
-
-			return $error->getExtraParams();
-
-		} elseif ( $error instanceof \WP_Error ) {
-
-			return $error;
-
-		}
-
-		return new \WP_Error( 'civicrm_rest_api_error', $error, empty( $data ) ? [ 'status' => $this->authorization_status_code() ] : $data );
-
-	}
-
-}
diff --git a/wp-rest/Controller/Cxn.php b/wp-rest/Controller/Cxn.php
deleted file mode 100644
index 7f7cca5c56..0000000000
--- a/wp-rest/Controller/Cxn.php
+++ /dev/null
@@ -1,125 +0,0 @@
-<?php
-/**
- * Cxn controller class.
- *
- * CiviConnect endpoint, replacement for CiviCRM's 'extern/cxn.php'.
- *
- * @since 0.1
- */
-
-namespace CiviCRM_WP_REST\Controller;
-
-class Cxn extends Base {
-
-	/**
-	 * The base route.
-	 *
-	 * @since 0.1
-	 * @var string
-	 */
-	protected $rest_base = 'cxn';
-
-	/**
-	 * Registers routes.
-	 *
-	 * @since 0.1
-	 */
-	public function register_routes() {
-
-		register_rest_route( $this->get_namespace(), $this->get_rest_base(), [
-			[
-				'methods' => \WP_REST_Server::ALLMETHODS,
-				'callback' => [ $this, 'get_item' ]
-			]
-		] );
-
-	}
-
-	/**
-	 * Get items.
-	 *
-	 * @since 0.1
-	 * @param WP_REST_Request $request
-	 */
-	public function get_item( $request ) {
-
-		/**
-		 * Filter request params.
-		 *
-		 * @since 0.1
-		 * @param array $params
-		 * @param WP_REST_Request $request
-		 */
-		$params = apply_filters( 'civi_wp_rest/controller/cxn/params', $request->get_params(), $request );
-
-		// init connection server
-		$cxn = \CRM_Cxn_BAO_Cxn::createApiServer();
-
-		/**
-		 * Filter connection server object.
-		 *
-		 * @param Civi\Cxn\Rpc\ApiServer $cxn
-		 * @param array $params
-		 * @param WP_REST_Request $request
-		 */
-		$cxn = apply_filters( 'civi_wp_rest/controller/cxn/instance', $cxn, $params, $request );
-
-		try {
-
-			$result = $cxn->handle( $request->get_body() );
-
-		} catch ( Civi\Cxn\Rpc\Exception\CxnException $e ) {
-
-			return $this->civi_rest_error( $e->getMessage() );
-
-		} catch ( Civi\Cxn\Rpc\Exception\ExpiredCertException $e ) {
-
-			return $this->civi_rest_error( $e->getMessage() );
-
-		} catch ( Civi\Cxn\Rpc\Exception\InvalidCertException $e ) {
-
-			return $this->civi_rest_error( $e->getMessage() );
-
-		} catch ( Civi\Cxn\Rpc\Exception\InvalidMessageException $e ) {
-
-			return $this->civi_rest_error( $e->getMessage() );
-
-		} catch ( Civi\Cxn\Rpc\Exception\GarbledMessageException $e ) {
-
-			return $this->civi_rest_error( $e->getMessage() );
-
-		}
-
-		/**
-		 * Bypass WP and send request from Cxn.
-		 */
-		add_filter( 'rest_pre_serve_request', function( $served, $response, $request, $server ) use ( $result ) {
-
-			// Civi\Cxn\Rpc\Message->send()
-			$result->send();
-
-			return true;
-
-		}, 10, 4 );
-
-		return rest_ensure_response( $result );
-
-	}
-
-	/**
-	 * Item schema.
-	 *
-	 * @since 0.1
-	 * @return array $schema
-	 */
-	public function get_item_schema() {}
-
-	/**
-	 * Item arguments.
-	 *
-	 * @since 0.1
-	 * @return array $arguments
-	 */
-	public function get_item_args() {}
-
-}
diff --git a/wp-rest/Controller/Open.php b/wp-rest/Controller/Open.php
deleted file mode 100644
index 450ef991a3..0000000000
--- a/wp-rest/Controller/Open.php
+++ /dev/null
@@ -1,129 +0,0 @@
-<?php
-/**
- * Open controller class.
- *
- * @since 0.1
- */
-
-namespace CiviCRM_WP_REST\Controller;
-
-class Open extends Base {
-
-	/**
-	 * The base route.
-	 *
-	 * @since 0.1
-	 * @var string
-	 */
-	protected $rest_base = 'open';
-
-	/**
-	 * Registers routes.
-	 *
-	 * @since 0.1
-	 */
-	public function register_routes() {
-
-		register_rest_route( $this->get_namespace(), $this->get_rest_base(), [
-			[
-				'methods' => \WP_REST_Server::READABLE,
-				'callback' => [ $this, 'get_item' ],
-				'args' => $this->get_item_args()
-			],
-			'schema' => [ $this, 'get_item_schema' ]
-		] );
-
-	}
-
-	/**
-	 * Get item.
-	 *
-	 * @since 0.1
-	 * @param WP_REST_Request $request
-	 */
-	public function get_item( $request ) {
-
-		$queue_id = $request->get_param( 'q' );
-
-		// track open
-		\CRM_Mailing_Event_BAO_Opened::open( $queue_id );
-
-		// serve tracker file
-		add_filter( 'rest_pre_serve_request', [ $this, 'serve_tracker_file' ], 10, 4 );
-
-	}
-
-	/**
-	 * Serves the tracker gif file.
-	 *
-	 * @since 0.1
-	 * @param bool $served Whether the request has been served
-	 * @param WP_REST_Response $result
-	 * @param WP_REST_Request $request
-	 * @param WP_REST_Server $server
-	 * @return bool $served Whether the request has been served
-	 */
-	public function serve_tracker_file( $served, $result, $request, $server ) {
-
-		// tracker file path
-		$file = CIVICRM_PLUGIN_DIR . 'civicrm/i/tracker.gif';
-
-		// set headers
-		$server->send_header( 'Content-type', 'image/gif' );
-		$server->send_header( 'Cache-Control', 'must-revalidate, post-check=0, pre-check=0' );
-		$server->send_header( 'Content-Description', 'File Transfer' );
-		$server->send_header( 'Content-Disposition', 'inline; filename=tracker.gif' );
-		$server->send_header( 'Content-Length', filesize( $file ) );
-
-		$buffer = readfile( $file );
-
-		return true;
-
-	}
-
-	/**
-	 * Item schema.
-	 *
-	 * @since 0.1
-	 * @return array $schema
-	 */
-	public function get_item_schema() {
-
-		return [
-			'$schema' => 'http://json-schema.org/draft-04/schema#',
-			'title' => 'civicrm/v3/open',
-			'description' => __( 'CiviCRM Open endpoint', 'civicrm' ),
-			'type' => 'object',
-			'required' => [ 'q' ],
-			'properties' => [
-				'q' => [
-					'type' => 'integer'
-				]
-			]
-		];
-
-	}
-
-	/**
-	 * Item arguments.
-	 *
-	 * @since 0.1
-	 * @return array $arguments
-	 */
-	public function get_item_args() {
-
-		return [
-			'q' => [
-				'type' => 'integer',
-				'required' => true,
-				'validate_callback' => function( $value, $request, $key ) {
-
-					return is_numeric( $value );
-
-				}
-			]
-		];
-
-	}
-
-}
diff --git a/wp-rest/Controller/PayPalIPN.php b/wp-rest/Controller/PayPalIPN.php
deleted file mode 100644
index 5b5c380045..0000000000
--- a/wp-rest/Controller/PayPalIPN.php
+++ /dev/null
@@ -1,134 +0,0 @@
-<?php
-/**
- * PayPalIPN controller class.
- *
- * PayPal IPN endpoint, replacement for CiviCRM's 'extern/ipn.php'.
- *
- * @since 0.1
- */
-
-namespace CiviCRM_WP_REST\Controller;
-
-class PayPalIPN extends Base {
-
-	/**
-	 * The base route.
-	 *
-	 * @since 0.1
-	 * @var string
-	 */
-	protected $rest_base = 'ipn';
-
-	/**
-	 * Registers routes.
-	 *
-	 * @since 0.1
-	 */
-	public function register_routes() {
-
-		register_rest_route( $this->get_namespace(), $this->get_rest_base(), [
-			[
-				'methods' => \WP_REST_Server::ALLMETHODS,
-				'callback' => [ $this, 'get_item' ]
-			]
-		] );
-
-	}
-
-	/**
-	 * Get items.
-	 *
-	 * @since 0.1
-	 * @param WP_REST_Request $request
-	 */
-	public function get_item( $request ) {
-
-		/**
-		 * Filter request params.
-		 *
-		 * @since 0.1
-		 * @param array $params
-		 * @param WP_REST_Request $request
-		 */
-		$params = apply_filters( 'civi_wp_rest/controller/ipn/params', $request->get_params(), $request );
-
-		if ( $request->get_method() == 'GET' ) {
-
-			// paypal standard
-			$paypal_IPN = new \CRM_Core_Payment_PayPalIPN( $params );
-
-			// log notification
-			\Civi::log()->alert( 'payment_notification processor_name=PayPal_Standard', $params );
-
-		} else {
-
-			// paypal pro
-			$paypal_IPN = new \CRM_Core_Payment_PayPalProIPN( $params );
-
-			// log notification
-			\Civi::log()->alert( 'payment_notification processor_name=PayPal', $params );
-
-		}
-
-		/**
-		 * Filter PayPalIPN object.
-		 *
-		 * @param CRM_Core_Payment_PayPalIPN|CRM_Core_Payment_PayPalProIPN $paypal_IPN
-		 * @param array $params
-		 * @param WP_REST_Request $request
-		 */
-		$paypal_IPN = apply_filters( 'civi_wp_rest/controller/ipn/instance', $paypal_IPN, $params, $request );
-
-		try {
-
-			if ( ! method_exists( $paypal_IPN, 'main' ) || ! $this->instance_of_crm_base_ipn( $paypal_IPN ) )
-				return $this->civi_rest_error( sprintf( __( '%s must implement a "main" method.', 'civicrm' ), get_class( $paypal_IPN ) ) );
-
-			$result = $paypal_IPN->main();
-
-		} catch ( \CRM_Core_Exception $e ) {
-
-			\Civi::log()->error( $e->getMessage() );
-			\Civi::log()->error( 'error data ', [ 'data' => $e->getErrorData() ] );
-			\Civi::log()->error( 'REQUEST ', [ 'params' => $params ] );
-
-			return $this->civi_rest_error( $e->getMessage() );
-
-		}
-
-		return rest_ensure_response( $result );
-
-	}
-
-	/**
-	 * Checks whether object is an instance of CRM_Core_Payment_BaseIPN|CRM_Core_Payment_PayPalProIPN|CRM_Core_Payment_PayPalIPN.
-	 *
-	 * Needed because the instance is being filtered through 'civi_wp_rest/controller/ipn/instance'.
-	 *
-	 * @since 0.1
-	 * @param CRM_Core_Payment_BaseIPN|CRM_Core_Payment_PayPalProIPN|CRM_Core_Payment_PayPalIPN $object
-	 * @return bool
-	 */
-	public function instance_of_crm_base_ipn( $object ) {
-
-		return $object instanceof \CRM_Core_Payment_BaseIPN || $object instanceof \CRM_Core_Payment_PayPalProIPN || $object instanceof \CRM_Core_Payment_PayPalIPN;
-
-	}
-
-	/**
-	 * Item schema.
-	 *
-	 * @since 0.1
-	 * @return array $schema
-	 */
-	public function get_item_schema() {}
-
-	/**
-	 * Item arguments.
-	 *
-	 * @since 0.1
-	 * @return array $arguments
-	 */
-	public function get_item_args() {}
-
-}
diff --git a/wp-rest/Controller/PxIPN.php b/wp-rest/Controller/PxIPN.php
deleted file mode 100644
index d68fc8d787..0000000000
--- a/wp-rest/Controller/PxIPN.php
+++ /dev/null
@@ -1,139 +0,0 @@
-<?php
-/**
- * PxIPN controller class.
- *
- * PxPay IPN endpoint, replacement for CiviCRM's 'extern/pxIPN.php'.
- *
- * @since 0.1
- */
-
-namespace CiviCRM_WP_REST\Controller;
-
-class PxIPN extends Base {
-
-	/**
-	 * The base route.
-	 *
-	 * @since 0.1
-	 * @var string
-	 */
-	protected $rest_base = 'pxIPN';
-
-	/**
-	 * Registers routes.
-	 *
-	 * @since 0.1
-	 */
-	public function register_routes() {
-
-		register_rest_route( $this->get_namespace(), $this->get_rest_base(), [
-			[
-				'methods' => \WP_REST_Server::ALLMETHODS,
-				'callback' => [ $this, 'get_item' ]
-			]
-		] );
-
-	}
-
-	/**
-	 * Get items.
-	 *
-	 * @since 0.1
-	 * @param WP_REST_Request $request
-	 */
-	public function get_item( $request ) {
-
-		/**
-		 * Filter payment processor params.
-		 *
-		 * @since 0.1
-		 * @param array $params
-		 * @param WP_REST_Request $request
-		 */
-		$params = apply_filters(
-			'civi_wp_rest/controller/pxIPN/params',
-			$this->get_payment_processor_args( $request ),
-			$request
-		);
-
-		// log notification
-		\Civi::log()->alert( 'payment_notification processor_name=Payment_Express', $params );
-
-		try {
-
-			$result = \CRM_Core_Payment_PaymentExpressIPN::main( ...$params );
-
-		} catch ( \CRM_Core_Exception $e ) {
-
-			\Civi::log()->error( $e->getMessage() );
-			\Civi::log()->error( 'error data ', [ 'data' => $e->getErrorData() ] );
-			\Civi::log()->error( 'REQUEST ', [ 'params' => $params ] );
-
-			return $this->civi_rest_error( $e->getMessage() );
-
-		}
-
-		return rest_ensure_response( $result );
-
-	}
-
-	/**
-	 * Get payment processor necessary params.
-	 *
-	 * @since 0.1
-	 * @param WP_REST_Resquest $request
-	 * @return array $args
-	 */
-	public function get_payment_processor_args( $request ) {
-
-		// get payment processor types
-		$payment_processor_types = civicrm_api3( 'PaymentProcessor', 'getoptions', [
-			'field' => 'payment_processor_type_id'
-		] );
-
-		// payment processor params
-		$params = apply_filters( 'civi_wp_rest/controller/pxIPN/payment_processor_params', [
-			'user_name' => $request->get_param( 'userid' ),
-			'payment_processor_type_id' => array_search(
-				'DPS Payment Express',
-				$payment_processor_types['values']
-			),
-			'is_active' => 1,
-			'is_test' => 0
-		] );
-
-		// get payment processor
-		$payment_processor = civicrm_api3( 'PaymentProcessor', 'get', $params );
-
-		$args = $payment_processor['values'][$payment_processor['id']];
-
-		$method = empty( $args['signature'] ) ? 'pxpay' : 'pxaccess';
-
-		return [
-			$method,
-			$request->get_param( 'result' ),
-			$args['url_site'],
-			$args['user_name'],
-			$args['password'],
-			$args['signature']
-		];
-
-	}
-
-	/**
-	 * Item schema.
-	 *
-	 * @since 0.1
-	 * @return array $schema
-	 */
-	public function get_item_schema() {}
-
-	/**
-	 * Item arguments.
-	 *
-	 * @since 0.1
-	 * @return array $arguments
-	 */
-	public function get_item_args() {}
-
-}
diff --git a/wp-rest/Controller/Rest.php b/wp-rest/Controller/Rest.php
deleted file mode 100644
index 1fe15caae9..0000000000
--- a/wp-rest/Controller/Rest.php
+++ /dev/null
@@ -1,561 +0,0 @@
-<?php
-/**
- * Rest controller class.
- *
- * @since 0.1
- */
-
-namespace CiviCRM_WP_REST\Controller;
-
-class Rest extends Base {
-
-	/**
-	 * The base route.
-	 *
-	 * @since 0.1
-	 * @var string
-	 */
-	protected $rest_base = 'rest';
-
-	/**
-	 * Registers routes.
-	 *
-	 * @since 0.1
-	 */
-	public function register_routes() {
-
-		register_rest_route( $this->get_namespace(), $this->get_rest_base(), [
-			[
-				'methods' => \WP_REST_Server::ALLMETHODS,
-				'callback' => [ $this, 'get_items' ],
-				'permission_callback' => [ $this, 'permissions_check' ],
-				'args' => $this->get_item_args()
-			],
-			'schema' => [ $this, 'get_item_schema' ]
-		] );
-
-	}
-
-	/**
-	 * Check get permission.
-	 *
-	 * @since 0.1
-	 * @param WP_REST_Request $request
-	 * @return bool
-	 */
-	public function permissions_check( $request ) {
-
-		/**
-		 * Opportunity to bypass CiviCRM's
-		 * authentication ('api_key' and 'site_key'),
-		 * return 'true' or 'false' to grant
-		 * or deny access to this endpoint.
-		 *
-		 * To deny and throw an error, return either
-		 * a string, an array, or a \WP_Error.
-		 *
-		 * NOTE: if you use your won authentication,
-		 * you still must log in the user in order
-		 * to respect/apply CiviCRM ACLs.
-		 *
-		 * @since 0.1
-		 * @param null|bool|string|array|\WP_Error $grant_auth Grant, deny, or error
-		 * @param \WP_REST_Request $request The request
-		 */
-		$grant_auth = apply_filters( 'civi_wp_rest/controller/rest/permissions_check', null, $request );
-
-		if ( is_bool( $grant_auth ) ) {
-
-			return $grant_auth;
-
-		} elseif ( is_string( $grant_auth ) ) {
-
-			return $this->civi_rest_error( $grant_auth );
-
-		} elseif ( is_array( $grant_auth ) ) {
-
-			return $this->civi_rest_error( __( 'CiviCRM WP REST permission check error.', 'civicrm' ), $grant_auth );
-
-		} elseif ( $grant_auth instanceof \WP_Error ) {
-
-			return $grant_auth;
-
-		} else {
-
-			if ( ! $this->is_valid_api_key( $request ) )
-				return $this->civi_rest_error( __( 'Param api_key is not valid.', 'civicrm' ) );
-
-			if ( ! $this->is_valid_site_key() )
-				return $this->civi_rest_error( __( 'Param key is not valid.', 'civicrm' ) );
-
-			return true;
-
-		}
-
-	}
-
-	/**
-	 * Get items.
-	 *
-	 * @since 0.1
-	 * @param WP_REST_Request $request
-	 */
-	public function get_items( $request ) {
-
-		/**
-		 * Filter formatted api params.
-		 *
-		 * @since 0.1
-		 * @param array $params
-		 * @param WP_REST_Request $request
-		 */
-		$params = apply_filters( 'civi_wp_rest/controller/rest/api_params', $this->get_formatted_api_params( $request ), $request );
-
-		try {
-
-			$items = civicrm_api3( ...$params );
-
-		} catch ( \CiviCRM_API3_Exception $e ) {
-
-			$items = $this->civi_rest_error( $e );
-
-		}
-
-		if ( ! isset( $items ) || empty( $items ) )
-			return rest_ensure_response( [] );
-
-		/**
-		 * Filter civi api result.
-		 *
-		 * @since 0.1
-		 * @param array $items
-		 * @param WP_REST_Request $request
-		 */
-		$data = apply_filters( 'civi_wp_rest/controller/rest/api_result', $items, $params, $request );
-
-		// only collections of items, ie any action but 'getsingle'
-		if ( isset( $data['values'] ) ) {
-
-			$data['values'] = array_reduce( $items['values'] ?? $items, function( $items, $item ) use ( $request ) {
-
-				$response = $this->prepare_item_for_response( $item, $request );
-
-				$items[] = $this->prepare_response_for_collection( $response );
-
-				return $items;
-
-			}, [] );
-
-		}
-
-		$response = rest_ensure_response( $data );
-
-		// check wheather we need to serve xml or json
-		if ( ! in_array( 'json', array_keys( $request->get_params() ) ) ) {
-
-			/**
-			 * Adds our response holding Civi data before dispatching.
-			 *
-			 * @since 0.1
-			 * @param WP_HTTP_Response $result Result to send to client
-			 * @param WP_REST_Server $server The REST server
-			 * @param WP_REST_Request $request The request
-			 * @return WP_HTTP_Response $result Result to send to client
-			 */
-			add_filter( 'rest_post_dispatch', function( $result, $server, $request ) use ( $response ) {
-
-				return $response;
-
-			}, 10, 3 );
-
-			// serve xml
-			add_filter( 'rest_pre_serve_request', [ $this, 'serve_xml_response' ], 10, 4 );
-
-		} else {
-
-			// return json
-			return $response;
-
-		}
-
-	}
-
-	/**
-	 * Get formatted api params.
-	 *
-	 * @since 0.1
-	 * @param WP_REST_Resquest $request
-	 * @return array $params
-	 */
-	public function get_formatted_api_params( $request ) {
-
-		$args = $request->get_params();
-
-		$entity = $args['entity'];
-		$action = $args['action'];
-
-		// unset unnecessary args
-		unset( $args['entity'], $args['action'], $args['key'], $args['api_key'] );
-
-		if ( ! isset( $args['json'] ) || is_numeric( $args['json'] ) ) {
-
-			$params = $args;
-
-		} else {
-
-			$params = is_string( $args['json'] ) ? json_decode( $args['json'], true ) : [];
-
-		}
-
-		// ensure check permissions is enabled
-		$params['check_permissions'] = true;
-
-		return [ $entity, $action, $params ];
-
-	}
-
-	/**
-	 * Matches the item data to the schema.
-	 *
-	 * @since 0.1
-	 * @param object $item
-	 * @param WP_REST_Request $request
-	 */
-	public function prepare_item_for_response( $item, $request ) {
-
-		return rest_ensure_response( $item );
-
-	}
-
-	/**
-	 * Serves XML response.
-	 *
-	 * @since 0.1
-	 * @param bool $served Whether the request has already been served
-	 * @param WP_REST_Response $result
-	 * @param WP_REST_Request $request
-	 * @param WP_REST_Server $server
-	 */
-	public function serve_xml_response( $served, $result, $request, $server ) {
-
-		// get xml from response
-		$xml = $this->get_xml_formatted_data( $result->get_data() );
-
-		// set content type header
-		$server->send_header( 'Content-Type', 'text/xml' );
-
-		echo $xml;
-
-		return true;
-
-	}
-
-	/**
-	 * Formats CiviCRM API result to XML.
-	 *
-	 * @since 0.1
-	 * @param array $data The CiviCRM api result
-	 * @return string $xml The formatted xml
-	 */
-	protected function get_xml_formatted_data( array $data ) {
-
-		// xml document
-		$xml = new \DOMDocument();
-
-		// result set element <ResultSet>
-		$result_set = $xml->createElement( 'ResultSet' );
-
-		// xmlns:xsi attribute
-		$result_set->setAttribute( 'xmlns:xsi', 'http://www.w3.org/2001/XMLSchema-instance' );
-
-		// count attribute
-		if ( isset( $data['count'] ) ) $result_set->setAttribute( 'count', $data['count'] );
-
-		// build result from result => values
-		if ( isset( $data['values'] ) ) {
-
-			array_map( function( $item ) use ( $result_set, $xml ) {
-
-				// result element <Result>
-				$result = $xml->createElement( 'Result' );
-
-				// format item
-				$result = $this->get_xml_formatted_item( $item, $result, $xml );
-
-				// append result to result set
-				$result_set->appendChild( $result );
-
-			}, $data['values'] );
-
-		} else {
-
-			// result element <Result>
-			$result = $xml->createElement( 'Result' );
-
-			// format item
-			$result = $this->get_xml_formatted_item( $data, $result, $xml );
-
-			// append result to result set
-			$result_set->appendChild( $result );
-
-		}
-
-		// append result set
-		$xml->appendChild( $result_set );
-
-		return $xml->saveXML();
-
-	}
-
-	/**
-	 * Formats a single api result to xml.
-	 *
-	 * @since 0.1
-	 * @param array $item The single api result
-	 * @param DOMElement $parent The parent element to append to
-	 * @param DOMDocument $doc The document
-	 * @return DOMElement $parent The parent element
-	 */
-	public function get_xml_formatted_item( array $item, \DOMElement $parent, \DOMDocument $doc ) {
-
-		// build field => values
-		array_map( function( $field, $value ) use ( $parent, $doc ) {
-
-			// entity field element
-			$element = $doc->createElement( $field );
-
-			// handle array values
-			if ( is_array( $value ) ) {
-
-				array_map( function( $key, $val ) use ( $element, $doc ) {
-
-					// child element, append underscore '_' otherwise createElement
-					// will throw an Invalid character exception as elements cannot start with a number
-					$child = $doc->createElement( '_' . $key, $val );
-
-					// append child
-					$element->appendChild( $child );
-
-				}, array_keys( $value ), $value );
-
-			} else {
-
-				// assign value
-				$element->nodeValue = $value;
-
-			}
-
-			// append element
-			$parent->appendChild( $element );
-
-		}, array_keys( $item ), $item );
-
-		return $parent;
-
-	}
-
-	/**
-	 * Item schema.
-	 *
-	 * @since 0.1
-	 * @return array $schema
-	 */
-	public function get_item_schema() {
-
-		return [
-			'$schema' => 'http://json-schema.org/draft-04/schema#',
-			'title' => 'civicrm/v3/rest',
-			'description' => __( 'CiviCRM API3 WP rest endpoint wrapper', 'civicrm' ),
-			'type' => 'object',
-			'required' => [ 'entity', 'action', 'params' ],
-			'properties' => [
-				'is_error' => [
-					'type' => 'integer'
-				],
-				'version' => [
-					'type' => 'integer'
-				],
-				'count' => [
-					'type' => 'integer'
-				],
-				'values' => [
-					'type' => 'array'
-				]
-			]
-		];
-
-	}
-
-	/**
-	 * Item arguments.
-	 *
-	 * @since 0.1
-	 * @return array $arguments
-	 */
-	public function get_item_args() {
-
-		return [
-			'key' => [
-				'type' => 'string',
-				'required' => false,
-				'validate_callback' => function( $value, $request, $key ) {
-
-					return $this->is_valid_site_key();
-
-				}
-			],
-			'api_key' => [
-				'type' => 'string',
-				'required' => false,
-				'validate_callback' => function( $value, $request, $key ) {
-
-					return $this->is_valid_api_key( $request );
-
-				}
-			],
-			'entity' => [
-				'type' => 'string',
-				'required' => true,
-				'validate_callback' => function( $value, $request, $key ) {
-
-					return is_string( $value );
-
-				}
-			],
-			'action' => [
-				'type' => 'string',
-				'required' => true,
-				'validate_callback' => function( $value, $request, $key ) {
-
-					return is_string( $value );
-
-				}
-			],
-			'json' => [
-				'type' => ['integer', 'string', 'array'],
-				'required' => false,
-				'validate_callback' => function( $value, $request, $key ) {
-
-					return is_numeric( $value ) || is_array( $value ) || $this->is_valid_json( $value );
-
-				}
-			]
-		];
-
-	}
-
-	/**
-	 * Checks if string is a valid json.
-	 *
-	 * @since 0.1
-	 * @param string $param
-	 * @return bool
-	 */
-	protected function is_valid_json( $param ) {
-
-		$param = json_decode( $param, true );
-
-		if ( ! is_array( $param ) ) return false;
-
- 		return ( json_last_error() == JSON_ERROR_NONE );
-
-	}
-
-	/**
-	 * Validates the site key.
-	 *
-	 * @since 0.1
-	 * @return bool $is_valid_site_key
-	 */
-	private function is_valid_site_key() {
-
-		return \CRM_Utils_System::authenticateKey( false );
-
-	}
-
-	/**
-	 * Validates the api key.
-	 *
-	 * @since 0.1
-	 * @param WP_REST_Resquest $request
-	 * @return bool $is_valid_api_key
-	 */
-	private function is_valid_api_key( $request ) {
-
-		$api_key = $request->get_param( 'api_key' );
-
-		if ( ! $api_key ) return false;
-
-		$contact_id = \CRM_Core_DAO::getFieldValue( 'CRM_Contact_DAO_Contact', $api_key, 'id', 'api_key' );
-
-		// validate contact and login
-		if ( $contact_id ) {
-
-			$wp_user = $this->get_wp_user( $contact_id );
-
-			$this->do_user_login( $wp_user );
-
-			return true;
-
-		}
-
-		return false;
-
-	}
-
-	/**
-	 * Get WordPress user data.
-	 *
-	 * @since 0.1
-	 * @param int $contact_id The contact id
-	 * @return bool|WP_User $user The WordPress user data
-	 */
-	protected function get_wp_user( int $contact_id ) {
-
-		try {
-
-			// Get CiviCRM domain group ID from constant, if set.
-			$domain_id = defined( 'CIVICRM_DOMAIN_ID' ) ? CIVICRM_DOMAIN_ID : 0;
-
-			// If this fails, get it from config.
-			if ( $domain_id === 0 ) {
-				$domain_id = \CRM_Core_Config::domainID();
-			}
-
-			// Call API.
-			$uf_match = civicrm_api3( 'UFMatch', 'getsingle', [
-				'contact_id' => $contact_id,
-				'domain_id' => $domain_id,
-			] );
-
-		} catch ( \CiviCRM_API3_Exception $e ) {
-
-			return $this->civi_rest_error( $e->getMessage() );
-
-		}
-
-		$wp_user = get_userdata( $uf_match['uf_id'] );
-
-		return $wp_user;
-
-	}
-
-	/**
-	 * Logs in the WordPress user, needed to respect CiviCRM ACL and permissions.
-	 *
-	 * @since 0.1
-	 * @param  WP_User $user
-	 */
-	protected function do_user_login( \WP_User $user ) {
-
-		if ( is_user_logged_in() ) return;
-
-		wp_set_current_user( $user->ID, $user->user_login );
-
-		wp_set_auth_cookie( $user->ID );
-
-		do_action( 'wp_login', $user->user_login, $user );
-
-	}
-
-}
diff --git a/wp-rest/Controller/Soap.php b/wp-rest/Controller/Soap.php
deleted file mode 100644
index 17402cc579..0000000000
--- a/wp-rest/Controller/Soap.php
+++ /dev/null
@@ -1,98 +0,0 @@
-<?php
-/**
- * Soap controller class.
- *
- * Soap endpoint, replacement for CiviCRM's 'extern/soap.php'.
- *
- * @since 0.1
- */
-
-namespace CiviCRM_WP_REST\Controller;
-
-class Soap extends Base {
-
-	/**
-	 * The base route.
-	 *
-	 * @since 0.1
-	 * @var string
-	 */
-	protected $rest_base = 'soap';
-
-	/**
-	 * Registers routes.
-	 *
-	 * @since 0.1
-	 */
-	public function register_routes() {
-
-		register_rest_route( $this->get_namespace(), $this->get_rest_base(), [
-			[
-				'methods' => \WP_REST_Server::ALLMETHODS,
-				'callback' => [ $this, 'get_item' ]
-			]
-		] );
-
-	}
-
-	/**
-	 * Get items.
-	 *
-	 * @since 0.1
-	 * @param WP_REST_Request $request
-	 */
-	public function get_item( $request ) {
-
-		/**
-		 * Filter request params.
-		 *
-		 * @since 0.1
-		 * @param array $params
-		 * @param WP_REST_Request $request
-		 */
-		$params = apply_filters( 'civi_wp_rest/controller/soap/params', $request->get_params(), $request );
-
-		// init soap server
-		$soap_server = new \SoapServer(
-			NULL,
-			[
-				'uri' => 'urn:civicrm',
-				'soap_version' => SOAP_1_2,
-			]
-		);
-
-		$crm_soap_server = new \CRM_Utils_SoapServer();
-
-		$soap_server->setClass( 'CRM_Utils_SoapServer', \CRM_Core_Config::singleton()->userFrameworkClass );
-		$soap_server->setPersistence( SOAP_PERSISTENCE_SESSION );
-
-		/**
-		 * Bypass WP and send request from Soap server.
-		 */
-		add_filter( 'rest_pre_serve_request', function( $served, $response, $request, $server ) use ( $soap_server ) {
-
-			$soap_server->handle();
-
-			return true;
-
-		}, 10, 4 );
-
-	}
-
-	/**
-	 * Item schema.
-	 *
-	 * @since 0.1
-	 * @return array $schema
-	 */
-	public function get_item_schema() {}
-
-	/**
-	 * Item arguments.
-	 *
-	 * @since 0.1
-	 * @return array $arguments
-	 */
-	public function get_item_args() {}
-
-}
diff --git a/wp-rest/Controller/Url.php b/wp-rest/Controller/Url.php
deleted file mode 100644
index 6f1009f8fd..0000000000
--- a/wp-rest/Controller/Url.php
+++ /dev/null
@@ -1,216 +0,0 @@
-<?php
-/**
- * Url controller class.
- *
- * @since 0.1
- */
-
-namespace CiviCRM_WP_REST\Controller;
-
-class Url extends Base {
-
-	/**
-	 * The base route.
-	 *
-	 * @since 0.1
-	 * @var string
-	 */
-	protected $rest_base = 'url';
-
-	/**
-	 * Registers routes.
-	 *
-	 * @since 0.1
-	 */
-	public function register_routes() {
-
-		register_rest_route( $this->get_namespace(), $this->get_rest_base(), [
-			[
-				'methods' => \WP_REST_Server::READABLE,
-				'callback' => [ $this, 'get_item' ],
-				'args' => $this->get_item_args()
-			],
-			'schema' => [ $this, 'get_item_schema' ]
-		] );
-
-	}
-
-	/**
-	 * Get items.
-	 *
-	 * @since 0.1
-	 * @param WP_REST_Request $request
-	 */
-	public function get_item( $request ) {
-
-		/**
-		 * Filter formatted api params.
-		 *
-		 * @since 0.1
-		 * @param array $params
-		 * @param WP_REST_Request $request
-		 */
-		$params = apply_filters( 'civi_wp_rest/controller/url/params', $this->get_formatted_params( $request ), $request );
-
-		// track url
-		$url = \CRM_Mailing_Event_BAO_TrackableURLOpen::track( $params['queue_id'], $params['url_id'] );
-
-		/**
-		 * Filter url.
-		 *
-		 * @param string $url
-		 * @param array $params
-		 * @param WP_REST_Request $request
-		 */
-		$url = apply_filters( 'civi_wp_rest/controller/url/before_parse_url', $url, $params, $request );
-
-		// parse url
-		$url = $this->parse_url( $url, $params );
-
-		$this->do_redirect( $url );
-
-	}
-
-	/**
-	 * Get formatted api params.
-	 *
-	 * @since 0.1
-	 * @param WP_REST_Resquest $request
-	 * @return array $params
-	 */
-	protected function get_formatted_params( $request ) {
-
-		$args = $request->get_params();
-
-		$params = [
-			'queue_id' => isset( $args['qid'] ) ? $args['qid'] ?? '' : $args['q'] ?? '',
-			'url_id' => $args['u']
-		];
-
-		// unset unnecessary args
-		unset( $args['qid'], $args['u'], $args['q'] );
-
-		if ( ! empty( $args ) ) {
-
-			$params['query'] = http_build_query( $args );
-
-		}
-
-		return $params;
-
-	}
-
-	/**
-	 * Parses the url.
-	 *
-	 * @since 0.1
-	 * @param string $url
-	 * @param array $params
-	 * @return string $url
-	 */
-	protected function parse_url( $url, $params ) {
-
-		// CRM-18320 - Fix encoded ampersands
-		$url = str_replace( '&amp;', '&', $url );
-
-		// CRM-7103 - Look for additional query variables and append them
-		if ( isset( $params['query'] ) && strpos( $url, '?' ) ) {
-
-			$url .= '&' . $params['query'];
-
-		} elseif ( isset( $params['query'] ) ) {
-
-			$url .= '?' . $params['query'];
-
-		}
-
-		if ( strpos( $url, 'mailto' ) ) $url = strstr( $url, 'mailto' );
-
-		return apply_filters( 'civi_wp_rest/controller/url/parsed_url', $url, $params );
-
-	}
-
-	/**
-	 * Do redirect.
-	 *
-	 * @since 0.1
-	 * @param string $url
-	 */
-	protected function do_redirect( $url ) {
-
-		wp_redirect( $url );
-
-		exit;
-
-	}
-
-	/**
-	 * Item schema.
-	 *
-	 * @since 0.1
-	 * @return array $schema
-	 */
-	public function get_item_schema() {
-
-		return [
-			'$schema' => 'http://json-schema.org/draft-04/schema#',
-			'title' => 'civicrm_api3/v3/url',
-			'description' => __( 'CiviCRM API3 wrapper', 'civicrm' ),
-			'type' => 'object',
-			'required' => [ 'qid', 'u' ],
-			'properties' => [
-				'qid' => [
-					'type' => 'integer'
-				],
-				'q' => [
-					'type' => 'integer'
-				],
-				'u' => [
-					'type' => 'integer'
-				]
-			]
-		];
-
-	}
-
-	/**
-	 * Item arguments.
-	 *
-	 * @since 0.1
-	 * @return array $arguments
-	 */
-	public function get_item_args() {
-
-		return [
-			'qid' => [
-				'type' => 'integer',
-				'required' => false,
-				'validate_callback' => function( $value, $request, $key ) {
-
-					return is_numeric( $value );
-
-				}
-			],
-			'q' => [
-				'type' => 'integer',
-				'required' => false,
-				'validate_callback' => function( $value, $request, $key ) {
-
-					return is_numeric( $value );
-
-				}
-			],
-			'u' => [
-				'type' => 'integer',
-				'required' => true,
-				'validate_callback' => function( $value, $request, $key ) {
-
-					return is_numeric( $value );
-
-				}
-			]
-		];
-
-	}
-
-}
diff --git a/wp-rest/Controller/Widget.php b/wp-rest/Controller/Widget.php
deleted file mode 100644
index 13fa1e2add..0000000000
--- a/wp-rest/Controller/Widget.php
+++ /dev/null
@@ -1,214 +0,0 @@
-<?php
-/**
- * Widget controller class.
- *
- * Widget endpoint, replacement for CiviCRM's 'extern/widget.php'
- *
- * @since 0.1
- */
-
-namespace CiviCRM_WP_REST\Controller;
-
-class Widget extends Base {
-
-	/**
-	 * The base route.
-	 *
-	 * @since 0.1
-	 * @var string
-	 */
-	protected $rest_base = 'widget';
-
-	/**
-	 * Registers routes.
-	 *
-	 * @since 0.1
-	 */
-	public function register_routes() {
-
-		register_rest_route( $this->get_namespace(), $this->get_rest_base(), [
-			[
-				'methods' => \WP_REST_Server::READABLE,
-				'callback' => [ $this, 'get_item' ],
-				'args' => $this->get_item_args()
-			],
-			'schema' => [ $this, 'get_item_schema' ]
-		] );
-
-	}
-
-	/**
-	 * Get item.
-	 *
-	 * @since 0.1
-	 * @param WP_REST_Request $request
-	 */
-	public function get_item( $request ) {
-
-		/**
-		 * Filter mandatory params.
-		 *
-		 * @since 0.1
-		 * @param array $params
-		 * @param WP_REST_Request $request
-		 */
-		$params = apply_filters(
-			'civi_wp_rest/controller/widget/params',
-			$this->get_mandatory_params( $request ),
-			$request
-		);
-
-		$jsonvar = 'jsondata';
-
-		if ( ! empty( $request->get_param( 'format' ) ) ) $jsonvar .= $request->get_param( 'cpageId' );
-
-		$data = \CRM_Contribute_BAO_Widget::getContributionPageData( ...$params );
-
-		$response = 'var ' . $jsonvar . ' = ' . json_encode( $data ) . ';';
-
-		/**
-		 * Adds our response data before dispatching.
-		 *
-		 * @since 0.1
-		 * @param WP_HTTP_Response $result Result to send to client
-		 * @param WP_REST_Server $server The REST server
-		 * @param WP_REST_Request $request The request
-		 * @return WP_HTTP_Response $result Result to send to client
-		 */
-		add_filter( 'rest_post_dispatch', function( $result, $server, $request ) use ( $response ) {
-
-			return rest_ensure_response( $response );
-
-		}, 10, 3 );
-
-		// serve javascript
-		add_filter( 'rest_pre_serve_request', [ $this, 'serve_javascript' ], 10, 4 );
-
-	}
-
-	/**
-	 * Get mandatory params from request.
-	 *
-	 * @since 0.1
-	 * @param WP_REST_Resquest $request
-	 * @return array $params The widget params
-	 */
-	protected function get_mandatory_params( $request ) {
-
-		$args = $request->get_params();
-
-		return [
-			$args['cpageId'],
-			$args['widgetId'],
-			$args['includePending'] ?? false
-		];
-
-	}
-
-	/**
-	 * Serve jsondata response.
-	 *
-	 * @since 0.1
-	 * @param bool $served Whether the request has already been served
-	 * @param WP_REST_Response $result
-	 * @param WP_REST_Request $request
-	 * @param WP_REST_Server $server
-	 * @return bool $served
-	 */
-	public function serve_javascript( $served, $result, $request, $server ) {
-
-		// set content type header
-		$server->send_header( 'Expires', gmdate( 'D, d M Y H:i:s \G\M\T', time() + 60 ) );
-		$server->send_header( 'Content-Type', 'application/javascript' );
-		$server->send_header( 'Cache-Control', 'max-age=60, public' );
-
-		echo $result->get_data();
-
-		return true;
-
-	}
-
-	/**
-	 * Item schema.
-	 *
-	 * @since 0.1
-	 * @return array $schema
-	 */
-	public function get_item_schema() {
-
-		return [
-			'$schema' => 'http://json-schema.org/draft-04/schema#',
-			'title' => 'civicrm_api3/v3/widget',
-			'description' => __( 'CiviCRM API3 wrapper', 'civicrm' ),
-			'type' => 'object',
-			'required' => [ 'cpageId', 'widgetId' ],
-			'properties' => [
-				'cpageId' => [
-					'type' => 'integer',
-					'minimum' => 1
-				],
-				'widgetId' => [
-					'type' => 'integer',
-					'minimum' => 1
-				],
-				'format' => [
-					'type' => 'integer'
-				],
-				'includePending' => [
-					'type' => 'boolean'
-				]
-			]
-		];
-
-	}
-
-	/**
-	 * Item arguments.
-	 *
-	 * @since 0.1
-	 * @return array $arguments
-	 */
-	public function get_item_args() {
-
-		return [
-			'cpageId' => [
-				'type' => 'integer',
-				'required' => true,
-				'validate_callback' => function( $value, $request, $key ) {
-
-					return is_numeric( $value );
-
-				}
-			],
-			'widgetId' => [
-				'type' => 'integer',
-				'required' => true,
-				'validate_callback' => function( $value, $request, $key ) {
-
-					return is_numeric( $value );
-
-				}
-			],
-			'format' => [
-				'type' => 'integer',
-				'required' => false,
-				'validate_callback' => function( $value, $request, $key ) {
-
-					return is_numeric( $value );
-
-				}
-			],
-			'includePending' => [
-				'type' => 'boolean',
-				'required' => false,
-				'validate_callback' => function( $value, $request, $key ) {
-
-					return is_string( $value );
-
-				}
-			]
-		];
-
-	}
-
-}
diff --git a/wp-rest/Endpoint/Endpoint-Interface.php b/wp-rest/Endpoint/Endpoint-Interface.php
deleted file mode 100644
index 9497cde509..0000000000
--- a/wp-rest/Endpoint/Endpoint-Interface.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-/**
- * Endpoint Interface class.
- *
- * @since 0.1
- */
-
-namespace CiviCRM_WP_REST\Endpoint;
-
-interface Endpoint_Interface {
-
-	/**
-	 * Registers routes.
-	 *
-	 * @since 0.1
-	 */
-	public function register_routes();
-
-	/**
-	 * Item schema.
-	 *
-	 * @since 0.1
-	 * @return array $schema
-	 */
-	public function get_item_schema();
-
-	/**
-	 * Item arguments.
-	 *
-	 * @since 0.1
-	 * @return array $arguments
-	 */
-	public function get_item_args();
-
-}
diff --git a/wp-rest/Plugin.php b/wp-rest/Plugin.php
deleted file mode 100644
index 8c94296c71..0000000000
--- a/wp-rest/Plugin.php
+++ /dev/null
@@ -1,204 +0,0 @@
-<?php
-/**
- * Main plugin class.
- *
- * @since 0.1
- */
-
-namespace CiviCRM_WP_REST;
-
-use CiviCRM_WP_REST\Civi\Mailing_Hooks;
-
-class Plugin {
-
-	/**
-	 * Constructor.
-	 *
-	 * @since 0.1
-	 */
-	public function __construct() {
-
-		$this->register_hooks();
-
-		$this->setup_objects();
-
-	}
-
-	/**
-	 * Register hooks.
-	 *
-	 * @since 1.0
-	 */
-	protected function register_hooks() {
-
-		add_action( 'rest_api_init', [ $this, 'register_rest_routes' ] );
-
-		add_filter( 'rest_pre_dispatch', [ $this, 'bootstrap_civi' ], 10, 3 );
-
-		add_filter( 'rest_post_dispatch',  [ $this, 'maybe_reset_wp_timezone' ], 10, 3);
-
-	}
-
-	/**
-	 * Bootstrap CiviCRM when hitting a the 'civicrm' namespace.
-	 *
-	 * @since 0.1
-	 * @param mixed $result
-	 * @param WP_REST_Server $server REST server instance
-	 * @param WP_REST_Request $request The request
-	 * @return mixed $result
-	 */
-	public function bootstrap_civi( $result, $server, $request ) {
-
-		if ( false !== strpos( $request->get_route(), 'civicrm' ) ) {
-
-			$this->maybe_set_user_timezone( $request );
-
-			civi_wp()->initialize();
-
-		}
-
-		return $result;
-
-	}
-
-	/**
-	 * Setup objects.
-	 *
-	 * @since 0.1
-	 */
-	private function setup_objects() {
-
-		/**
- 		 * Filter to replace the mailing tracking URLs.
- 		 *
- 		 * @since 0.1
- 		 * @param bool $replace_mailing_tracking_urls
- 		 */
- 		$replace_mailing_tracking_urls = apply_filters( 'civi_wp_rest/plugin/replace_mailing_tracking_urls', false );
-
- 		// keep CIVICRM_WP_REST_REPLACE_MAILING_TRACKING for backwards compatibility
- 		if (
- 			$replace_mailing_tracking_urls
- 			|| ( defined( 'CIVICRM_WP_REST_REPLACE_MAILING_TRACKING' ) && CIVICRM_WP_REST_REPLACE_MAILING_TRACKING )
- 		) {
-			// register mailing hooks
-			$mailing_hooks = ( new Mailing_Hooks )->register_hooks();
-
-		}
-
-	}
-
-	/**
-	 * Registers Rest API routes.
-	 *
-	 * @since 0.1
-	 */
-	public function register_rest_routes() {
-
-		// rest endpoint
-		$rest_controller = new Controller\Rest;
-		$rest_controller->register_routes();
-
-		// url controller
-		$url_controller = new Controller\Url;
-		$url_controller->register_routes();
-
-		// open controller
-		$open_controller = new Controller\Open;
-		$open_controller->register_routes();
-
-		// authorizenet controller
-		$authorizeIPN_controller = new Controller\AuthorizeIPN;
-		$authorizeIPN_controller->register_routes();
-
-		// paypal controller
-		$paypalIPN_controller = new Controller\PayPalIPN;
-		$paypalIPN_controller->register_routes();
-
-		// pxpay controller
-		$paypalIPN_controller = new Controller\PxIPN;
-		$paypalIPN_controller->register_routes();
-
-		// civiconnect controller
-		$cxn_controller = new Controller\Cxn;
-		$cxn_controller->register_routes();
-
-		// widget controller
-		$widget_controller = new Controller\Widget;
-		$widget_controller->register_routes();
-
-		// soap controller
-		$soap_controller = new Controller\Soap;
-		$soap_controller->register_routes();
-
-		/**
-		 * Opportunity to add more rest routes.
-		 *
-		 * @since 0.1
-		 */
-		do_action( 'civi_wp_rest/plugin/rest_routes_registered' );
-
-	}
-
-	/**
-	 * Sets the timezone to the users timezone when
-	 * calling the civicrm/v3/rest endpoint.
-	 *
-	 * @since 0.1
-	 * @param WP_REST_Request $request The request
-	 */
-	private function maybe_set_user_timezone( $request ) {
-
-		if ( $request->get_route() != '/civicrm/v3/rest' ) return;
-
-		$timezones = [
-			'wp_timezone' => date_default_timezone_get(),
-			'user_timezone' => get_option( 'timezone_string', false )
-		];
-
-		// filter timezones
-		add_filter( 'civi_wp_rest/plugin/timezones', function() use ( $timezones ) {
-
-			return $timezones;
-
-		} );
-
-		if ( empty( $timezones['user_timezone'] ) ) return;
-
-		/**
-		 * CRM-12523
-		 * CRM-18062
-		 * CRM-19115
-		 */
-		date_default_timezone_set( $timezones['user_timezone'] );
-		\CRM_Core_Config::singleton()->userSystem->setMySQLTimeZone();
-
-	}
-
-	/**
-	 * Resets the timezone to the original WP
-	 * timezone after calling the civicrm/v3/rest endpoint.
-	 *
-	 * @since 0.1
-	 * @param mixed $result
-	 * @param WP_REST_Server $server REST server instance
-	 * @param WP_REST_Request $request The request
-	 * @return mixed $result
-	 */
-	public function maybe_reset_wp_timezone( $result, $server, $request ) {
-
-		if ( $request->get_route() != '/civicrm/v3/rest' ) return $result;
-
-		$timezones = apply_filters( 'civi_wp_rest/plugin/timezones', null );
-
-		if ( empty( $timezones['wp_timezone'] ) ) return $result;
-
-		// reset wp timezone
-		date_default_timezone_set( $timezones['wp_timezone'] );
-
-		return $result;
-
-	}
-
-}
diff --git a/wp-rest/README.md b/wp-rest/README.md
deleted file mode 100644
index 77234de84a..0000000000
--- a/wp-rest/README.md
+++ /dev/null
@@ -1,59 +0,0 @@
-# CiviCRM WP REST API Wrapper
-
-This is a WordPress plugin that aims to expose CiviCRM's [extern](https://github.com/civicrm/civicrm-core/tree/master/extern) scripts as WordPress REST endpoints.
-
-This plugin requires:
-
--   PHP 7.1+
--   WordPress 4.7+
--   CiviCRM to be installed and activated.
-
-### Endpoints
-
-1. `civicrm/v3/rest` - a wrapper around `civicrm_api3()`
-
-    **Parameters**:
-
-    - `key` - **required**, the site key
-    - `api_key` - **required**, the contact api key
-    - `entity` - **required**, the API entity
-    - `action` - **required**, the API action
-    - `json` - **optional**, json formatted string with the API parameters/argumets, or `1` as in `json=1`
-
-    By default all calls to `civicrm/v3/rest` return XML formatted results, to get `json` formatted result pass `json=1` or a json formatted string with the API parameters, like in the example 2 below.
-
-    **Examples**:
-
-    1. `https://example.com/wp-json/civicrm/v3/rest?entity=Contact&action=get&key=<site_key>&api_key=<api_key>&group=Administrators`
-
-    2. `https://example.com/wp-json/civicrm/v3/rest?entity=Contact&action=get&key=<site_key>&api_key=<api_key>&json={"group": "Administrators"}`
-
-2. `civicrm/v3/url` - a substition for `civicrm/extern/url.php` mailing tracking
-
-3. `civicrm/v3/open` - a substition for `civicrm/extern/open.php` mailing tracking
-
-4. `civicrm/v3/authorizeIPN` - a substition for `civicrm/extern/authorizeIPN.php` (for testing Authorize.net as per [docs](https://docs.civicrm.org/sysadmin/en/latest/setup/payment-processors/authorize-net/#shell-script-testing-method))
-
-    **_Note_**: this endpoint has **not been tested**
-
-5. `civicrm/v3/ipn` - a substition for `civicrm/extern/ipn.php` (for PayPal Standard and Pro live transactions)
-
-    **_Note_**: this endpoint has **not been tested**
-
-6. `civicrm/v3/cxn` - a substition for `civicrm/extern/cxn.php`
-
-7. `civicrm/v3/pxIPN` - a substition for `civicrm/extern/pxIPN.php`
-
-    **_Note_**: this endpoint has **not been tested**
-
-8. `civicrm/v3/widget` - a substition for `civicrm/extern/widget.php`
-
-9. `civicrm/v3/soap` - a substition for `civicrm/extern/soap.php`
-
-    **_Note_**: this endpoint has **not been tested**
-
-### Settings
-
-Set the `CIVICRM_WP_REST_REPLACE_MAILING_TRACKING` constant to `true` to replace mailing url and open tracking calls with their counterpart REST endpoints, `civicrm/v3/url` and `civicrm/v3/open`.
-
-_Note: use this setting with caution, it may affect performance on large mailings, see `CiviCRM_WP_REST\Civi\Mailing_Hooks` class._
-- 
GitLab