From 75c9ac4ad28cba2638287c1b717aeb7582cb151f Mon Sep 17 00:00:00 2001 From: John Mertic Date: Thu, 26 Apr 2012 08:34:04 -0700 Subject: [PATCH] Release 6.5.0RC1 --- .../PackageManager/PackageManager.php | 46 +-- .../tpls/ModuleLoaderListView.tpl | 4 +- .../tpls/PackageManagerScripts.tpl | 6 +- cache/include/javascript/sugar_field_grp.js | 7 +- cache/include/javascript/sugar_grp1.js | 5 +- cache/include/javascript/sugar_grp1_jquery.js | 34 +- cache/include/javascript/sugar_grp1_yui.js | 4 +- cache/include/javascript/sugar_grp_emails.js | 15 +- cache/include/javascript/sugar_grp_jsolait.js | 4 +- .../include/javascript/sugar_grp_quickcomp.js | 15 +- cache/include/javascript/sugar_grp_yui2.js | 2 +- data/BeanFactory.php | 6 +- data/Relationships/M2MRelationship.php | 16 +- data/Relationships/One2MBeanRelationship.php | 4 +- data/SugarBean.php | 8 + files.md5 | 347 +++++++++--------- include/ListView/ListView.php | 10 +- include/MVC/Controller/SugarController.php | 49 ++- include/MVC/View/SugarView.php | 2 +- include/MassUpdate.php | 4 + include/MySugar/MySugar.php | 2 +- include/Popups/tpls/PopupGeneric.tpl | 6 +- .../Smarty/plugins/function.sugar_button.php | 10 +- .../plugins/function.sugar_replace_vars.php | 28 +- include/SubPanel/SubPanelDefinitions.php | 5 +- include/SubPanel/SubPanelTiles.js | 6 +- include/SugarCharts/Jit/JitReports.php | 8 + include/SugarCharts/Jit/tpls/chart.tpl | 10 +- include/SugarCharts/JsChart.php | 4 +- .../Fields/Collection/SugarFieldCollection.js | 7 +- .../Fields/Datetime/DetailView.tpl | 59 +++ .../Fields/Datetime/SugarFieldDatetime.php | 18 + include/SugarFields/Fields/File/EditView.tpl | 2 +- include/SugarFields/Fields/Link/ListView.tpl | 5 + include/SugarHtml/SugarHtml.php | 103 ++++-- include/SugarLogger/SugarLogger.php | 38 +- include/SugarOauth.php | 34 +- .../SugarObjects/templates/basic/vardefs.php | 6 +- include/TemplateHandler/TemplateHandler.php | 7 +- include/database/DBManager.php | 4 + include/database/MssqlManager.php | 44 +-- include/database/MysqliManager.php | 2 +- include/database/SqlsrvManager.php | 34 -- include/externalAPI/Base/ExternalAPIBase.php | 15 + include/generic/LayoutManager.php | 2 +- .../SugarWidgetSubPanelTopMessage.php | 50 +++ .../SugarWidgetSubPanelTopSelectButton.php | 5 +- include/javascript/jquery/jquery.sugarMenu.js | 4 +- include/javascript/jquery/jquery.superfish.js | 30 +- include/javascript/sugar_3.js | 5 +- .../yui/build/dragdrop/dragdrop-min.js | 2 +- .../javascript/yui/build/dragdrop/dragdrop.js | 2 +- .../javascript/yui/build/menu/blank/menu.css | 0 include/javascript/yui/build/menu/menu-min.js | 2 +- include/javascript/yui/build/menu/menu.js | 5 +- include/language/en_us.lang.php | 2 +- include/utils.php | 75 ++-- include/utils/db_utils.php | 6 +- include/utils/layout_utils.php | 2 +- include/utils/mvc_utils.php | 2 +- install/install_utils.php | 25 +- install/register.php | 2 +- .../include/SubPanel/SubPanelTiles.js | 22 +- .../Fields/Collection/SugarFieldCollection.js | 25 +- .../src_files/include/javascript/sugar_3.js | 14 +- .../modules/Meetings/jsclass_scheduler.js | 80 ++-- modules/ACLRoles/EditView.php | 11 +- modules/ACLRoles/EditView.tpl | 2 +- modules/Activities/Activity.php | 124 ------- modules/Administration/DisplayWarnings.php | 15 + .../Administration/RebuildRelationship.php | 4 +- modules/Administration/UpgradeAccess.php | 2 - modules/Administration/UpgradeHistory.php | 9 +- .../Administration/UpgradeWizard_commit.php | 14 +- modules/Administration/controller.php | 2 +- .../Administration/language/en_us.lang.php | 22 +- .../metadata/adminpaneldefs.php | 2 +- .../templates/ConfigureTabs.tpl | 2 +- .../templates/GlobalSearchSettings.tpl | 4 +- .../views/view.globalsearchsettings.php | 14 +- modules/Calendar/tpls/header.tpl | 12 +- modules/Calls/Call.php | 20 +- modules/Calls/CallFormBase.php | 4 + modules/Calls/metadata/editviewdefs.php | 4 +- modules/Campaigns/Campaign.php | 28 ++ modules/Campaigns/Subscriptions.php | 114 +++--- modules/Campaigns/Subscriptions.tpl | 183 +++++---- modules/Campaigns/TrackDetailView.php | 9 + modules/Campaigns/WizardEmailSetup.html | 2 +- modules/Campaigns/WizardEmailSetup.php | 6 +- modules/Campaigns/language/en_us.lang.php | 1 + modules/Campaigns/metadata/subpaneldefs.php | 20 +- modules/Configurator/Configurator.php | 2 +- modules/Configurator/tpls/EditView.tpl | 4 +- modules/Contacts/tpls/QuickCreate.tpl | 10 +- modules/Contacts/views/view.edit.php | 10 + modules/DynamicFields/DynamicField.php | 6 +- .../templates/Fields/TemplateCurrencyId.php | 9 +- .../Fields/TemplateDatetimecombo.php | 8 +- .../templates/Fields/TemplateEnum.php | 7 + .../templates/Fields/TemplateField.php | 16 +- modules/EAPM/metadata/editviewdefs.php | 2 +- modules/EmailMan/EmailMan.php | 2 +- modules/EmailMan/tpls/campaignconfig.tpl | 4 +- modules/EmailMan/tpls/config.tpl | 2 +- .../EmailMan/views/view.campaignconfig.php | 4 +- modules/EmailMarketing/DetailView.html | 14 +- modules/EmailMarketing/DetailView.php | 2 + modules/EmailMarketing/EditView.html | 77 +++- modules/EmailMarketing/EditView.php | 10 + modules/EmailTemplates/EmailTemplate.php | 19 +- .../EmailTemplates/metadata/searchdefs.php | 7 +- modules/Emails/EmailUI.php | 2 +- modules/Emails/EmailUIAjax.php | 6 +- modules/Emails/javascript/EmailUICompose.js | 4 + modules/Emails/javascript/ajax.js | 2 +- .../Emails/templates/editAccountDialogue.tpl | 2 +- modules/Employees/Save.php | 4 - modules/Import/Importer.php | 19 +- modules/InboundEmail/EditView.html | 2 +- modules/InboundEmail/InboundEmail.php | 7 +- modules/InboundEmail/Menu.php | 2 +- .../InboundEmail/ShowInboundFoldersList.php | 2 +- modules/Leads/tpls/ConvertLeadFooter.tpl | 8 +- modules/Leads/tpls/ConvertLeadHeader.tpl | 8 +- modules/Meetings/Meeting.php | 16 +- modules/Meetings/MeetingFormBase.php | 4 + modules/Meetings/jsclass_scheduler.js | 4 +- modules/Meetings/metadata/editviewdefs.php | 23 +- modules/Meetings/tpls/footer.tpl | 6 +- modules/Meetings/vardefs.php | 1 + modules/MergeRecords/Step1.php | 2 +- modules/MergeRecords/Step2.php | 2 +- modules/ModuleBuilder/MB/MBPackage.php | 10 +- modules/ModuleBuilder/Module/StudioModule.php | 1 + modules/ModuleBuilder/controller.php | 15 +- .../ModuleBuilder/javascript/ModuleBuilder.js | 48 +-- .../ModuleBuilder/javascript/studio2ListDD.js | 25 +- .../relationships/AbstractRelationship.php | 3 + .../relationships/AbstractRelationships.php | 15 +- .../relationships/ActivitiesRelationship.php | 14 +- .../ModuleBuilder/tpls/MBModule/fields.tpl | 3 +- modules/ModuleBuilder/tpls/listView.tpl | 2 +- .../ModuleBuilder/views/view.modulefield.php | 15 +- modules/Notes/vardefs.php | 1 + modules/Opportunities/SaveOverload.php | 1 - modules/Project/Save.php | 8 +- modules/Project/metadata/subpaneldefs.php | 4 +- modules/ProjectTask/views/view.list.php | 1 + modules/SchedulersJobs/SchedulersJob.php | 33 ++ modules/Tasks/metadata/detailviewdefs.php | 6 +- modules/Tasks/vardefs.php | 3 +- modules/UpgradeWizard/SILENTUPGRADE.txt | 26 +- modules/UpgradeWizard/commit.php | 2 +- modules/UpgradeWizard/end.php | 2 +- .../UpgradeWizard/silentUpgrade_dce_step1.php | 2 +- .../UpgradeWizard/silentUpgrade_dce_step2.php | 2 +- modules/UpgradeWizard/silentUpgrade_step1.php | 2 +- modules/UpgradeWizard/silentUpgrade_step2.php | 2 +- modules/UpgradeWizard/upload.php | 9 + modules/Users/Save.php | 8 - modules/Users/User.php | 24 +- modules/Users/UserViewHelper.php | 16 +- modules/Users/language/en_us.lang.php | 6 +- modules/Users/tpls/DetailViewFooter.tpl | 14 +- modules/Users/tpls/DetailViewHeader.tpl | 2 +- modules/Users/tpls/EditViewFooter.tpl | 24 +- modules/Users/views/view.detail.php | 4 +- service/core/SoapHelperWebService.php | 18 +- service/v3/SugarWebServiceUtilv3.php | 9 +- soap/SoapHelperFunctions.php | 3 + soap/SoapSugarUsers.php | 28 +- sugar_version.php | 8 +- .../data/Bug44930Test.php | 84 +++-- tests/data/Relationships/Bug51679Test.php | 87 +++++ tests/include/ListView/Bug49385Test.php | 314 ---------------- .../MVC/Controller/SugarControllerTest.php | 22 ++ tests/include/MVC/View/Bug40019Test.php | 12 +- .../plugins/FunctionSugarButtonTest.php | 203 +++++++++- .../Fields/Datetime/Bug51980Test.php | 118 ++++++ tests/include/SugarLogger/SugarLoggerTest.php | 109 +++++- tests/include/database/Bug43466Test.php | 9 +- tests/include/database/DBManagerTest.php | 18 + tests/include/database/MssqlManagerTest.php | 1 + tests/include/utils/Bug47522Test.php | 97 +++++ tests/include/utils/Bug50809Test.php | 50 +++ tests/modules/Administration/Bug43716Test.php | 162 ++++++++ tests/modules/Campaigns/Bug41523Test.php | 142 +++++++ tests/modules/Import/Bug46411Test.php | 150 ++++++++ tests/modules/ModuleBuilder/Bug49024Test.php | 177 +++++++++ tests/modules/ModuleBuilder/Bug50768Test.php | 156 ++++++++ .../modules/ModuleBuilder/Bug50768_02Test.php | 179 +++++++++ tests/modules/ModuleBuilder/Bug52063Test.php | 160 ++++++++ .../parsers/relationships/Bug42169Test.php | 68 ++-- tests/modules/SchedulersJobs/Bug51185Test.php | 106 ++++++ tests/modules/Studio/Bug49772Test.php | 1 - tests/modules/Users/Bug41527Test.php | 137 ------- tests/service/Bug51617Test.php | 156 ++++++++ .../NoBlankFieldUpdateOnFirstSyncTest.php | 5 + themes/Sugar5/css/style.css | 10 +- .../images/icon_ProductTemplates_32.gif | Bin 0 -> 1633 bytes 201 files changed, 3866 insertions(+), 1664 deletions(-) create mode 100644 include/SugarFields/Fields/Datetime/DetailView.tpl create mode 100644 include/generic/SugarWidgets/SugarWidgetSubPanelTopMessage.php create mode 100644 include/javascript/yui/build/menu/blank/menu.css delete mode 100644 modules/Activities/Activity.php rename modules/Meetings/controller.php => tests/data/Bug44930Test.php (55%) mode change 100644 => 100755 create mode 100755 tests/data/Relationships/Bug51679Test.php delete mode 100755 tests/include/ListView/Bug49385Test.php create mode 100755 tests/include/SugarFields/Fields/Datetime/Bug51980Test.php create mode 100755 tests/include/utils/Bug47522Test.php create mode 100755 tests/include/utils/Bug50809Test.php create mode 100755 tests/modules/Administration/Bug43716Test.php create mode 100755 tests/modules/Campaigns/Bug41523Test.php create mode 100755 tests/modules/Import/Bug46411Test.php create mode 100755 tests/modules/ModuleBuilder/Bug49024Test.php create mode 100755 tests/modules/ModuleBuilder/Bug50768Test.php create mode 100755 tests/modules/ModuleBuilder/Bug50768_02Test.php create mode 100755 tests/modules/ModuleBuilder/Bug52063Test.php rename modules/Calls/controller.php => tests/modules/ModuleBuilder/parsers/relationships/Bug42169Test.php (58%) mode change 100644 => 100755 create mode 100755 tests/modules/SchedulersJobs/Bug51185Test.php delete mode 100755 tests/modules/Users/Bug41527Test.php create mode 100755 tests/service/Bug51617Test.php create mode 100644 themes/Sugar5/images/icon_ProductTemplates_32.gif diff --git a/ModuleInstall/PackageManager/PackageManager.php b/ModuleInstall/PackageManager/PackageManager.php index cafcda06..9316f5b3 100644 --- a/ModuleInstall/PackageManager/PackageManager.php +++ b/ModuleInstall/PackageManager/PackageManager.php @@ -54,6 +54,7 @@ class PackageManager{ */ function PackageManager(){ $this->db = DBManagerFactory::getInstance(); + $this->upload_dir = empty($GLOBALS['sugar_config']['upload_dir']) ? 'upload' : rtrim($GLOBALS['sugar_config']['upload_dir'], '/\\'); } function initializeComm(){ @@ -360,7 +361,7 @@ class PackageManager{ function extractManifest( $zip_file,$base_tmp_upgrade_dir ) { global $sugar_config; - $base_upgrade_dir = sugar_cached("/upgrades"); + $base_upgrade_dir = $this->upload_dir."/upgrades"; $base_tmp_upgrade_dir = "$base_upgrade_dir/temp"; return $this->extractFile( $zip_file, "manifest.php",$base_tmp_upgrade_dir ); } @@ -436,10 +437,10 @@ class PackageManager{ } function performSetup($tempFile, $view = 'module', $display_messages = true){ - global $sugar_config; + global $sugar_config,$mod_strings; $base_filename = urldecode($tempFile); $GLOBALS['log']->debug("BaseFileName: ".$base_filename); - $base_upgrade_dir = sugar_cached("/upgrades"); + $base_upgrade_dir = $this->upload_dir.'/upgrades'; $base_tmp_upgrade_dir = "$base_upgrade_dir/temp"; $manifest_file = $this->extractManifest( $base_filename,$base_tmp_upgrade_dir); $GLOBALS['log']->debug("Manifest: ".$manifest_file); @@ -506,7 +507,7 @@ class PackageManager{ global $sugar_config; global $mod_strings; global $current_language; - $base_upgrade_dir = sugar_cached("/upgrades"); + $base_upgrade_dir = $this->upload_dir.'/upgrades'; $base_tmp_upgrade_dir = "$base_upgrade_dir/temp"; if(!file_exists($base_tmp_upgrade_dir)){ mkdir_recursive($base_tmp_upgrade_dir, true); @@ -572,7 +573,7 @@ class PackageManager{ global $sugar_config; global $mod_strings; global $current_language; - $base_upgrade_dir = sugar_cached("/upgrades"); + $base_upgrade_dir = $this->upload_dir.'/upgrades'; $base_tmp_upgrade_dir = "$base_upgrade_dir/temp"; if(!isset($GLOBALS['mi_remove_tables']))$GLOBALS['mi_remove_tables'] = true; $unzip_dir = mk_temp_dir( $base_tmp_upgrade_dir ); @@ -639,7 +640,6 @@ class PackageManager{ global $current_language; $uh = new UpgradeHistory(); $base_upgrade_dir = "upload://upgrades"; - $base_tmp_upgrade_dir = sugar_cached("upgrades/temp"); $uContent = findAllFiles( $base_upgrade_dir, array() , false, 'zip'); $upgrade_contents = array(); $content_values = array_values($uContent); @@ -666,20 +666,22 @@ class PackageManager{ if(empty($md5_matches)) { $target_manifest = remove_file_extension( $upgrade_content ) . '-manifest.php'; - require_once($target_manifest); - - $name = empty($manifest['name']) ? $upgrade_content : $manifest['name']; - $version = empty($manifest['version']) ? '' : $manifest['version']; - $published_date = empty($manifest['published_date']) ? '' : $manifest['published_date']; - $icon = ''; - $description = empty($manifest['description']) ? 'None' : $manifest['description']; - $uninstallable = empty($manifest['is_uninstallable']) ? 'No' : 'Yes'; - $type = $this->getUITextForType( $manifest['type'] ); - $manifest_type = $manifest['type']; - $dependencies = array(); - if( isset( $manifest['dependencies']) ){ - $dependencies = $manifest['dependencies']; - } + if(file_exists($target_manifest)) { + require_once($target_manifest); + + $name = empty($manifest['name']) ? $upgrade_content : $manifest['name']; + $version = empty($manifest['version']) ? '' : $manifest['version']; + $published_date = empty($manifest['published_date']) ? '' : $manifest['published_date']; + $icon = ''; + $description = empty($manifest['description']) ? 'None' : $manifest['description']; + $uninstallable = empty($manifest['is_uninstallable']) ? 'No' : 'Yes'; + $type = $this->getUITextForType( $manifest['type'] ); + $manifest_type = $manifest['type']; + $dependencies = array(); + if( isset( $manifest['dependencies']) ){ + $dependencies = $manifest['dependencies']; + } + } //check dependencies first if(!empty($dependencies)) { @@ -718,7 +720,7 @@ class PackageManager{ function getLicenseFromFile($file){ global $sugar_config; - $base_upgrade_dir = sugar_cached("/upgrades"); + $base_upgrade_dir = $this->upload_dir.'/upgrades'; $base_tmp_upgrade_dir = "$base_upgrade_dir/temp"; $license_file = $this->extractFile($file, 'LICENSE.txt', $base_tmp_upgrade_dir); if(is_file($license_file)){ @@ -756,7 +758,7 @@ class PackageManager{ $packages = array(); $upgrades_installed = 0; $uh = new UpgradeHistory(); - $base_upgrade_dir = sugar_cached("/upgrades"); + $base_upgrade_dir = $this->upload_dir.'/upgrades'; $base_tmp_upgrade_dir = "$base_upgrade_dir/temp"; foreach($installeds as $installed) { diff --git a/ModuleInstall/PackageManager/tpls/ModuleLoaderListView.tpl b/ModuleInstall/PackageManager/tpls/ModuleLoaderListView.tpl index e79c2325..0c1056bc 100644 --- a/ModuleInstall/PackageManager/tpls/ModuleLoaderListView.tpl +++ b/ModuleInstall/PackageManager/tpls/ModuleLoaderListView.tpl @@ -63,7 +63,7 @@ {/if} - {sugar_getimage name="advanced_search" ext=".gif" width="8" height="8" alt=$app_strings.LBL_ADVANCED_SEARCH other_attributes='border="0" '}  + {sugar_getimage name="advanced_search" ext=".gif" width="8" height="8" alt=$app_strings.LBL_ADVANCED_SEARCH other_attributes='border="0" '}  {counter start=0 name="colCounter" print=false assign="colCounter"} {foreach from=$displayColumns key=col item=params} @@ -94,4 +94,4 @@ {/foreach} - \ No newline at end of file + diff --git a/ModuleInstall/PackageManager/tpls/PackageManagerScripts.tpl b/ModuleInstall/PackageManager/tpls/PackageManagerScripts.tpl index 9fac7481..3f7b7b90 100644 --- a/ModuleInstall/PackageManager/tpls/PackageManagerScripts.tpl +++ b/ModuleInstall/PackageManager/tpls/PackageManagerScripts.tpl @@ -139,14 +139,14 @@ if(typeof PackageManager == 'undefined') { _loadingBar.render(document.body); _loadingBar.show(); _pmg = new PackageManagerGrid(); - PackageManager.refreshGrid(); + //PackageManager.refreshGrid(); _pmg.renderAll(); {/literal}{/if}{literal} //PackageManager.initLicenseDiv(); //PackageManager.initModuleStaging(); var tabView = new YAHOO.widget.TabView('demo'); - PackageManager.checkForUpdates(); + //PackageManager.checkForUpdates(); }, download : function(){ if(confirm('{/literal}{$MOD.DOWNLOAD_QUESTION}{literal}')){ @@ -850,7 +850,7 @@ if(typeof PackageManager == 'undefined') { {/literal}{else}{literal} _pmg = new PackageManagerGrid(); - PackageManager.refreshGrid(); + //PackageManager.refreshGrid(); _pmg.renderAll(); {/literal}{/if}{literal} }else{ diff --git a/cache/include/javascript/sugar_field_grp.js b/cache/include/javascript/sugar_field_grp.js index 88d59fef..5a9ee496 100644 --- a/cache/include/javascript/sugar_field_grp.js +++ b/cache/include/javascript/sugar_field_grp.js @@ -35,12 +35,11 @@ return isFirstFieldEmpty;},show_arrow_label:function(show){var more_div=document return false;}};SUGAR.collection.safe_clone=function(e,recursive) {if(e.nodeName=="#text") {return document.createTextNode(e.data);} -if(!e.tagName)return false;var newNode=document.createElement(e.tagName);if(!newNode)return false;var properties=['class','style','name','type','valign','border','width','height','top','bottom','left','right','scope','row','columns','src','href','className','align','nowrap'];if(SUGAR.isIE7&&e.tagName.toLowerCase()=='input') -{var properties=['class','style','name','type','valign','border','width','top','bottom','left','right','scope','row','columns','src','href','className','align','nowrap'];}else{var properties=['class','style','name','type','valign','border','width','height','top','bottom','left','right','scope','row','columns','src','href','className','align','nowrap'];} +if(!e.tagName)return false;var newNode=document.createElement(e.tagName);if(!newNode)return false;var properties=['id','class','style','name','type','valign','border','width','height','top','bottom','left','right','scope','row','columns','src','href','className','align','nowrap'];if(SUGAR.isIE7&&e.tagName.toLowerCase()=='input') +{var properties=['id','class','style','name','type','valign','border','width','top','bottom','left','right','scope','row','columns','src','href','className','align','nowrap'];} for(var i in properties) {if(e[properties[i]]) -{if(((properties[i]!='style'&&properties[i]!='type')||!SUGAR.isIE)&&(properties[i]!='href'||e.tagName=='a'||e.tagName=='iframe')) -{newNode[properties[i]]=e[properties[i]];}}} +{if((properties[i]!='style'||!SUGAR.isIE)&&(properties[i]!='href'||e.tagName=='a'||e.tagName=='iframe')){if(properties[i]=="type"){newNode.setAttribute(properties[i],e[properties[i]]);}else{newNode[properties[i]]=e[properties[i]];}}}} if(recursive) {for(var i in e.childNodes) {if(e.childNodes[i].nodeName&&(!e.className||e.className!="yui-ac-container")) diff --git a/cache/include/javascript/sugar_grp1.js b/cache/include/javascript/sugar_grp1.js index 8085762d..451bda32 100644 --- a/cache/include/javascript/sugar_grp1.js +++ b/cache/include/javascript/sugar_grp1.js @@ -492,7 +492,8 @@ if(typeof(elem.type)!='undefined'&&typeof(skipElementNames)!='undefined'&&SUGAR. elemType=elem.type.toLowerCase();if(elemType=='text'||elemType=='textarea'||elemType=='password'){elem.value='';} else if(elemType=='select'||elemType=='select-one'||elemType=='select-multiple'){var optionList=elem.options;for(var ii=0;ii3&&elem.name.substring(elem.name.length-3)=='_id')||((elem.name.length>9)&&(elem.name.substring(elem.name.length-9)=='_id_basic'))||(elem.name.length>12&&elem.name.substring(elem.name.length-12)=='_id_advanced')){elem.value='';}}} +else if(elemType=='hidden'){if((elem.name.length>3&&elem.name.substring(elem.name.length-3)=='_id')||((elem.name.length>9)&&(elem.name.substring(elem.name.length-9)=='_id_basic'))||(elem.name.length>12&&elem.name.substring(elem.name.length-12)=='_id_advanced')||(elem.name.length>2&&elem.name.substring(elem.name.length-2)=='_c')||((elem.name.length>8)&&(elem.name.substring(elem.name.length-8)=='_c_basic'))||(elem.name.length>11&&elem.name.substring(elem.name.length-11)=='_c_advanced')) +{elem.value='';}}} SUGAR.savedViews.clearColumns=true;}};}();SUGAR.tabChooser=function(){var object_refs=new Array();return{frozenOptions:[],movementCallback:function(left_side,right_side){},orderCallback:function(left_side,right_side){},freezeOptions:function(left_name,right_name,target){if(!SUGAR.tabChooser.frozenOptions){SUGAR.tabChooser.frozenOptions=[];} if(!SUGAR.tabChooser.frozenOptions[left_name]){SUGAR.tabChooser.frozenOptions[left_name]=[];} if(!SUGAR.tabChooser.frozenOptions[left_name][right_name]){SUGAR.tabChooser.frozenOptions[left_name][right_name]=[];} @@ -620,7 +621,7 @@ t+=SUGAR.util.innerText(c);} return t;},callOnChangeListers:function(field){var listeners=YAHOO.util.Event.getListeners(field,'change');if(listeners!=null){for(var i=0;i=0;i--){if(ext===allowedTypes[i]){return true;}} return false;},arrayIndexOf:function(arr,val,start){if(typeof arr.indexOf=="function") return arr.indexOf(val,start);for(var i=(start||0),j=arr.length;i 6) { + if ( ($.browser.msie && $.browser.version > 6) || $(this).hasClass("iefix") ) { if($ul) { //Take out the element out of the fixed box model, //and then append it into the end of body container @@ -1924,7 +1936,7 @@ Note: var $$ = $(this), o = sf.op, _id = $$.attr("ul-child-id") ? $$.attr("ul-child-id") : ($ul.attr('id')) ? $ul.attr('id') : o.megamenuID ? o.megamenuID + ++sf.counter : 'megamenu' + ++sf.counter, - _top = $$.position().top + $$.parent().position().top, + _top = $$.position().top + $$.parent().offset().top - $(document).scrollTop(), _left = $$.offset().left - sf.cssValue.call($ul, "border-left-width"), $menu = $('ul.' + sf.c.menuClass + ':visible'); //handling sub-sliding menu @@ -1960,9 +1972,11 @@ Note: var menu = sf.getMenu($menu), o = sf.op; clearTimeout(menu.sfTimer); + menu.sfTimer = setTimeout(function() { $$.hideSuperfishUl(); $(menu).removeClass(sf.defaults['retainClass']); + $(menu).hideSuperfishUl(); }, o.delay) }) ); @@ -2390,8 +2404,8 @@ Note: var jNode = $(node); var parent = jNode.parent(); var fancymenu = ""; - var slideUpSpeed = 0; - var slideDownSpeed = 0; + var slideUpSpeed = 1; + var slideDownSpeed = 1; var dropDownHandle; //if the dropdown handle doesn't exist, lets create it and diff --git a/cache/include/javascript/sugar_grp1_yui.js b/cache/include/javascript/sugar_grp1_yui.js index 0192846f..f7e1b5bc 100644 --- a/cache/include/javascript/sugar_grp1_yui.js +++ b/cache/include/javascript/sugar_grp1_yui.js @@ -46,7 +46,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND YAHOO.util.Connect={_msxml_progid:["Microsoft.XMLHTTP","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP"],_http_headers:{},_has_http_headers:false,_use_default_post_header:true,_default_post_header:"application/x-www-form-urlencoded; charset=UTF-8",_default_form_header:"application/x-www-form-urlencoded",_use_default_xhr_header:true,_default_xhr_header:"XMLHttpRequest",_has_default_headers:true,_isFormSubmit:false,_default_headers:{},_poll:{},_timeOut:{},_polling_interval:50,_transaction_id:0,startEvent:new YAHOO.util.CustomEvent("start"),completeEvent:new YAHOO.util.CustomEvent("complete"),successEvent:new YAHOO.util.CustomEvent("success"),failureEvent:new YAHOO.util.CustomEvent("failure"),abortEvent:new YAHOO.util.CustomEvent("abort"),_customEvents:{onStart:["startEvent","start"],onComplete:["completeEvent","complete"],onSuccess:["successEvent","success"],onFailure:["failureEvent","failure"],onUpload:["uploadEvent","upload"],onAbort:["abortEvent","abort"]},setProgId:function(a){this._msxml_progid.unshift(a);},setDefaultPostHeader:function(a){if(typeof a=="string"){this._default_post_header=a;this._use_default_post_header=true;}else{if(typeof a=="boolean"){this._use_default_post_header=a;}}},setDefaultXhrHeader:function(a){if(typeof a=="string"){this._default_xhr_header=a;}else{this._use_default_xhr_header=a;}},setPollingInterval:function(a){if(typeof a=="number"&&isFinite(a)){this._polling_interval=a;}},createXhrObject:function(g){var d,a,b;try{a=new XMLHttpRequest();d={conn:a,tId:g,xhr:true};}catch(c){for(b=0;b=200&&f<300)||f===1223||c){a=b.xdr?b.r:this.createResponseObject(b,h);if(j&&j.success){if(!j.scope){j.success(a);}else{j.success.apply(j.scope,[a]);}}this.successEvent.fire(a);if(b.successEvent){b.successEvent.fire(a);}}else{switch(f){case 12002:case 12029:case 12030:case 12031:case 12152:case 13030:a=this.createExceptionObject(b.tId,h,(d?d:false));if(j&&j.failure){if(!j.scope){j.failure(a);}else{j.failure.apply(j.scope,[a]);}}break;default:a=(b.xdr)?b.response:this.createResponseObject(b,h);if(j&&j.failure){if(!j.scope){j.failure(a);}else{j.failure.apply(j.scope,[a]);}}}this.failureEvent.fire(a);if(b.failureEvent){b.failureEvent.fire(a);}}this.releaseObject(b);a=null;},createResponseObject:function(a,h){var d={},k={},f,c,g,b;try{c=a.conn.getAllResponseHeaders();g=c.split("\n");for(f=0;f'+''+''+"",k=document.createElement("div");document.body.appendChild(k);k.innerHTML=j;}function b(l,i,j,n,k){h[parseInt(l.tId)]={"o":l,"c":n};if(k){n.method=i;n.data=k;}l.conn.send(j,n,l.tId);}function e(i){d(i);g._transport=document.getElementById("YUIConnectionSwf");}function c(){g.xdrReadyEvent.fire();}function a(j,i){if(j){g.startEvent.fire(j,i.argument);if(j.startEvent){j.startEvent.fire(j,i.argument);}}}function f(j){var k=h[j.tId].o,i=h[j.tId].c;if(j.statusText==="xdr:start"){a(k,i);return;}j.responseText=decodeURI(j.responseText);k.r=j;if(i.argument){k.r.argument=i.argument;}this.handleTransactionResponse(k,i,j.statusText==="xdr:abort"?true:false);delete h[j.tId];}g.xdr=b;g.swf=d;g.transport=e;g.xdrReadyEvent=new YAHOO.util.CustomEvent("xdrReady");g.xdrReady=c;g.handleXdrResponse=f;})();(function(){var e=YAHOO.util.Connect,g=YAHOO.util.Event,a=document.documentMode?document.documentMode:false;e._isFileUpload=false;e._formNode=null;e._sFormData=null;e._submitElementValue=null;e.uploadEvent=new YAHOO.util.CustomEvent("upload");e._hasSubmitListener=function(){if(g){g.addListener(document,"click",function(k){var j=g.getTarget(k),i=j.nodeName.toLowerCase();if((i==="input"||i==="button")&&(j.type&&j.type.toLowerCase()=="submit")){e._submitElementValue=encodeURIComponent(j.name)+"="+encodeURIComponent(j.value);}});return true;}return false;}();function h(w,r,m){var v,l,u,s,z,t=false,p=[],y=0,o,q,n,x,k;this.resetFormState();if(typeof w=="string"){v=(document.getElementById(w)||document.forms[w]);}else{if(typeof w=="object"){v=w;}else{return;}}if(r){this.createFrame(m?m:null);this._isFormSubmit=true;this._isFileUpload=true;this._formNode=v;return;}for(o=0,q=v.elements.length;o-1){k=l.options[l.selectedIndex];p[y++]=u+encodeURIComponent((k.attributes.value&&k.attributes.value.specified)?k.value:k.text);}break;case"select-multiple":if(l.selectedIndex>-1){for(n=l.selectedIndex,x=l.options.length;n');if(typeof i=="boolean"){k.src="javascript:false";}}else{k=document.createElement("iframe");k.id=j;k.name=j;}k.style.position="absolute";k.style.top="-1000px";k.style.left="-1000px";document.body.appendChild(k);}function f(j){var m=[],k=j.split("&"),l,n;for(l=0;l=8)?true:false,z=this,v=(y&&y.argument)?y.argument:null,x,s,k,r,j,q;j={action:this._formNode.getAttribute("action"),method:this._formNode.getAttribute("method"),target:this._formNode.getAttribute("target")};this._formNode.setAttribute("action",n);this._formNode.setAttribute("method","POST");this._formNode.setAttribute("target",t);if(YAHOO.env.ua.ie&&!p){this._formNode.setAttribute("encoding",u);}else{this._formNode.setAttribute("enctype",u);}if(l){x=this.appendPostData(l);}this._formNode.submit();this.startEvent.fire(m,v);if(m.startEvent){m.startEvent.fire(m,v);}if(y&&y.timeout){this._timeOut[m.tId]=window.setTimeout(function(){z.abort(m,y,true);},y.timeout);}if(x&&x.length>0){for(s=0;sthis.clickPixelThresh||D>this.clickPixelThresh){this.startDrag(this.startX,this.startY);}}if(this.dragThreshMet){if(C&&C.events.b4Drag){C.b4Drag(F);C.fireEvent("b4DragEvent",{e:F});}if(C&&C.events.drag){C.onDrag(F);C.fireEvent("dragEvent",{e:F});}if(C){this.fireEvents(F,false);}}this.stopEvent(F);}},fireEvents:function(W,M){var c=this.dragCurrent;if(!c||c.isLocked()||c.dragOnly){return;}var O=YAHOO.util.Event.getPageX(W),N=YAHOO.util.Event.getPageY(W),Q=new YAHOO.util.Point(O,N),K=c.getTargetCoord(Q.x,Q.y),F=c.getDragEl(),E=["out","over","drop","enter"],V=new YAHOO.util.Region(K.y,K.x+F.offsetWidth,K.y+F.offsetHeight,K.x),I=[],D={},L={},R=[],d={outEvts:[],overEvts:[],dropEvts:[],enterEvts:[]};for(var T in this.dragOvers){var f=this.dragOvers[T];if(!this.isTypeOfDD(f)){continue;}if(!this.isOverTarget(Q,f,this.mode,V)){d.outEvts.push(f);}I[T]=true;delete this.dragOvers[T];}for(var S in c.groups){if("string"!=typeof S){continue;}for(T in this.ids[S]){var G=this.ids[S][T];if(!this.isTypeOfDD(G)){continue;}if(G.isTarget&&!G.isLocked()&&G!=c){if(this.isOverTarget(Q,G,this.mode,V)){D[S]=true;if(M){d.dropEvts.push(G);}else{if(!I[G.id]){d.enterEvts.push(G);}else{d.overEvts.push(G);}this.dragOvers[G.id]=G;}}}}}this.interactionInfo={out:d.outEvts,enter:d.enterEvts,over:d.overEvts,drop:d.dropEvts,point:Q,draggedRegion:V,sourceRegion:this.locationCache[c.id],validDrop:M};for(var C in D){R.push(C);}if(M&&!d.dropEvts.length){this.interactionInfo.validDrop=false;if(c.events.invalidDrop){c.onInvalidDrop(W);c.fireEvent("invalidDropEvent",{e:W});}}for(T=0;T2000){}else{setTimeout(C._addListeners,10);if(document&&document.body){C._timeoutCount+=1;}}}},handleWasClicked:function(C,E){if(this.isHandle(E,C.id)){return true;}else{var D=C.parentNode;while(D){if(this.isHandle(E,D.id)){return true;}else{D=D.parentNode;}}}return false;}};}();YAHOO.util.DDM=YAHOO.util.DragDropMgr;YAHOO.util.DDM._addListeners();}(function(){var A=YAHOO.util.Event;var B=YAHOO.util.Dom;YAHOO.util.DragDrop=function(E,C,D){if(E){this.init(E,C,D);}};YAHOO.util.DragDrop.prototype={events:null,on:function(){this.subscribe.apply(this,arguments);},id:null,config:null,dragElId:null,handleElId:null,invalidHandleTypes:null,invalidHandleIds:null,invalidHandleClasses:null,startPageX:0,startPageY:0,groups:null,locked:false,lock:function(){this.locked=true;},unlock:function(){this.locked=false;},isTarget:true,padding:null,dragOnly:false,useShim:false,_domRef:null,__ygDragDrop:true,constrainX:false,constrainY:false,minX:0,maxX:0,minY:0,maxY:0,deltaX:0,deltaY:0,maintainOffset:false,xTicks:null,yTicks:null,primaryButtonOnly:true,available:false,hasOuterHandles:false,cursorIsOver:false,overlap:null,b4StartDrag:function(C,D){},startDrag:function(C,D){},b4Drag:function(C){},onDrag:function(C){},onDragEnter:function(C,D){},b4DragOver:function(C){},onDragOver:function(C,D){},b4DragOut:function(C){},onDragOut:function(C,D){},b4DragDrop:function(C){},onDragDrop:function(C,D){},onInvalidDrop:function(C){},b4EndDrag:function(C){},endDrag:function(C){},b4MouseDown:function(C){},onMouseDown:function(C){},onMouseUp:function(C){},onAvailable:function(){},getEl:function(){if(!this._domRef){this._domRef=B.get(this.id);}return this._domRef;},getDragEl:function(){return B.get(this.dragElId);},init:function(F,C,D){this.initTarget(F,C,D);A.on(this._domRef||this.id,"mousedown",this.handleMouseDown,this,true);for(var E in this.events){this.createEvent(E+"Event");}},initTarget:function(E,C,D){this.config=D||{};this.events={};this.DDM=YAHOO.util.DDM;this.groups={};if(typeof E!=="string"){this._domRef=E;E=B.generateId(E);}this.id=E;this.addToGroup((C)?C:"default");this.handleElId=E;A.onAvailable(E,this.handleOnAvailable,this,true);this.setDragElId(E);this.invalidHandleTypes={A:"A"};this.invalidHandleIds={};this.invalidHandleClasses=[];this.applyConfig();},applyConfig:function(){this.events={mouseDown:true,b4MouseDown:true,mouseUp:true,b4StartDrag:true,startDrag:true,b4EndDrag:true,endDrag:true,drag:true,b4Drag:true,invalidDrop:true,b4DragOut:true,dragOut:true,dragEnter:true,b4DragOver:true,dragOver:true,b4DragDrop:true,dragDrop:true};if(this.config.events){for(var C in this.config.events){if(this.config.events[C]===false){this.events[C]=false;}}}this.padding=this.config.padding||[0,0,0,0];this.isTarget=(this.config.isTarget!==false);this.maintainOffset=(this.config.maintainOffset);this.primaryButtonOnly=(this.config.primaryButtonOnly!==false);this.dragOnly=((this.config.dragOnly===true)?true:false);this.useShim=((this.config.useShim===true)?true:false);},handleOnAvailable:function(){this.available=true;this.resetConstraints();this.onAvailable();},setPadding:function(E,C,F,D){if(!C&&0!==C){this.padding=[E,E,E,E];}else{if(!F&&0!==F){this.padding=[E,C,E,C];}else{this.padding=[E,C,F,D];}}},setInitPosition:function(F,E){var G=this.getEl();if(!this.DDM.verifyEl(G)){if(G&&G.style&&(G.style.display=="none")){}else{}return;}var D=F||0;var C=E||0;var H=B.getXY(G);this.initPageX=H[0]-D;this.initPageY=H[1]-C;this.lastPageX=H[0];this.lastPageY=H[1];this.setStartPosition(H);},setStartPosition:function(D){var C=D||B.getXY(this.getEl());this.deltaSetXY=null;this.startPageX=C[0];this.startPageY=C[1];},addToGroup:function(C){this.groups[C]=true;this.DDM.regDragDrop(this,C);},removeFromGroup:function(C){if(this.groups[C]){delete this.groups[C];}this.DDM.removeDDFromGroup(this,C);},setDragElId:function(C){this.dragElId=C;},setHandleElId:function(C){if(typeof C!=="string"){C=B.generateId(C);}this.handleElId=C;this.DDM.regHandle(this.id,C);},setOuterHandleElId:function(C){if(typeof C!=="string"){C=B.generateId(C);}A.on(C,"mousedown",this.handleMouseDown,this,true);this.setHandleElId(C);this.hasOuterHandles=true;},unreg:function(){A.removeListener(this.id,"mousedown",this.handleMouseDown);this._domRef=null;this.DDM._remove(this);},isLocked:function(){return(this.DDM.isLocked()||this.locked);},handleMouseDown:function(J,I){var D=J.which||J.button;if(this.primaryButtonOnly&&D>1){return;}if(this.isLocked()){return;}var C=this.b4MouseDown(J),F=true;if(this.events.b4MouseDown){F=this.fireEvent("b4MouseDownEvent",J);}var E=this.onMouseDown(J),H=true;if(this.events.mouseDown){if(E===false){H=false;}else{H=this.fireEvent("mouseDownEvent",J);}}if((C===false)||(E===false)||(F===false)||(H===false)){return;}this.DDM.refreshCache(this.groups);var G=new YAHOO.util.Point(A.getPageX(J),A.getPageY(J));if(!this.hasOuterHandles&&!this.DDM.isOverTarget(G,this)){}else{if(this.clickValidator(J)){this.setStartPosition();this.DDM.handleMouseDown(J,this);this.DDM.stopEvent(J);}else{}}},clickValidator:function(D){var C=YAHOO.util.Event.getTarget(D);return(this.isValidHandleChild(C)&&(this.id==this.handleElId||this.DDM.handleWasClicked(C,this.id)));},getTargetCoord:function(E,D){var C=E-this.deltaX;var F=D-this.deltaY;if(this.constrainX){if(Cthis.maxX){C=this.maxX;}}if(this.constrainY){if(Fthis.maxY){F=this.maxY;}}C=this.getTick(C,this.xTicks);F=this.getTick(F,this.yTicks);return{x:C,y:F};},addInvalidHandleType:function(C){var D=C.toUpperCase();this.invalidHandleTypes[D]=D;},addInvalidHandleId:function(C){if(typeof C!=="string"){C=B.generateId(C);}this.invalidHandleIds[C]=C;},addInvalidHandleClass:function(C){this.invalidHandleClasses.push(C);},removeInvalidHandleType:function(C){var D=C.toUpperCase();delete this.invalidHandleTypes[D];},removeInvalidHandleId:function(C){if(typeof C!=="string"){C=B.generateId(C);}delete this.invalidHandleIds[C];},removeInvalidHandleClass:function(D){for(var E=0,C=this.invalidHandleClasses.length;E=this.minX;D=D-C){if(!E[D]){this.xTicks[this.xTicks.length]=D;E[D]=true;}}for(D=this.initPageX;D<=this.maxX;D=D+C){if(!E[D]){this.xTicks[this.xTicks.length]=D;E[D]=true;}}this.xTicks.sort(this.DDM.numericSort);},setYTicks:function(F,C){this.yTicks=[];this.yTickSize=C;var E={};for(var D=this.initPageY;D>=this.minY;D=D-C){if(!E[D]){this.yTicks[this.yTicks.length]=D;E[D]=true;}}for(D=this.initPageY;D<=this.maxY;D=D+C){if(!E[D]){this.yTicks[this.yTicks.length]=D;E[D]=true;}}this.yTicks.sort(this.DDM.numericSort);},setXConstraint:function(E,D,C){this.leftConstraint=parseInt(E,10);this.rightConstraint=parseInt(D,10);this.minX=this.initPageX-this.leftConstraint;this.maxX=this.initPageX+this.rightConstraint;if(C){this.setXTicks(this.initPageX,C);}this.constrainX=true;},clearConstraints:function(){this.constrainX=false;this.constrainY=false;this.clearTicks();},clearTicks:function(){this.xTicks=null;this.yTicks=null;this.xTickSize=0;this.yTickSize=0;},setYConstraint:function(C,E,D){this.topConstraint=parseInt(C,10);this.bottomConstraint=parseInt(E,10);this.minY=this.initPageY-this.topConstraint;this.maxY=this.initPageY+this.bottomConstraint;if(D){this.setYTicks(this.initPageY,D);}this.constrainY=true;},resetConstraints:function(){if(this.initPageX||this.initPageX===0){var D=(this.maintainOffset)?this.lastPageX-this.initPageX:0;var C=(this.maintainOffset)?this.lastPageY-this.initPageY:0;this.setInitPosition(D,C);}else{this.setInitPosition();}if(this.constrainX){this.setXConstraint(this.leftConstraint,this.rightConstraint,this.xTickSize);}if(this.constrainY){this.setYConstraint(this.topConstraint,this.bottomConstraint,this.yTickSize);}},getTick:function(I,F){if(!F){return I;}else{if(F[0]>=I){return F[0];}else{for(var D=0,C=F.length;D=I){var H=I-F[D];var G=F[E]-I;return(G>H)?F[D]:F[E];}}return F[F.length-1];}}},toString:function(){return("DragDrop "+this.id);}};YAHOO.augment(YAHOO.util.DragDrop,YAHOO.util.EventProvider);})();YAHOO.util.DD=function(C,A,B){if(C){this.init(C,A,B);}};YAHOO.extend(YAHOO.util.DD,YAHOO.util.DragDrop,{scroll:true,autoOffset:function(C,B){var A=C-this.startPageX;var D=B-this.startPageY;this.setDelta(A,D);},setDelta:function(B,A){this.deltaX=B;this.deltaY=A;},setDragElPos:function(C,B){var A=this.getDragEl();this.alignElWithMouse(A,C,B);},alignElWithMouse:function(C,G,F){var E=this.getTargetCoord(G,F);if(!this.deltaSetXY){var H=[E.x,E.y];YAHOO.util.Dom.setXY(C,H);var D=parseInt(YAHOO.util.Dom.getStyle(C,"left"),10);var B=parseInt(YAHOO.util.Dom.getStyle(C,"top"),10);this.deltaSetXY=[D-E.x,B-E.y];}else{YAHOO.util.Dom.setStyle(C,"left",(E.x+this.deltaSetXY[0])+"px");YAHOO.util.Dom.setStyle(C,"top",(E.y+this.deltaSetXY[1])+"px");}this.cachePosition(E.x,E.y);var A=this;setTimeout(function(){A.autoScroll.call(A,E.x,E.y,C.offsetHeight,C.offsetWidth);},0);},cachePosition:function(B,A){if(B){this.lastPageX=B;this.lastPageY=A;}else{var C=YAHOO.util.Dom.getXY(this.getEl());this.lastPageX=C[0];this.lastPageY=C[1];}},autoScroll:function(J,I,E,K){if(this.scroll){var L=this.DDM.getClientHeight();var B=this.DDM.getClientWidth();var N=this.DDM.getScrollTop();var D=this.DDM.getScrollLeft();var H=E+I;var M=K+J;var G=(L+N-I-this.deltaY);var F=(B+D-J-this.deltaX);var C=40;var A=(document.all)?80:30;if(H>L&&G0&&I-NB&&F0&&J-Dthis.clickPixelThresh||D>this.clickPixelThresh){this.startDrag(this.startX,this.startY);}}if(this.dragThreshMet){if(C&&C.events.b4Drag){C.b4Drag(F);C.fireEvent("b4DragEvent",{e:F});}if(C&&C.events.drag){C.onDrag(F);C.fireEvent("dragEvent",{e:F});}if(C){this.fireEvents(F,false);}}this.stopEvent(F);}},fireEvents:function(W,M){var c=this.dragCurrent;if(!c||c.isLocked()||c.dragOnly){return;}var O=YAHOO.util.Event.getPageX(W),N=YAHOO.util.Event.getPageY(W),Q=new YAHOO.util.Point(O,N),K=c.getTargetCoord(Q.x,Q.y),F=c.getDragEl(),E=["out","over","drop","enter"],V=new YAHOO.util.Region(K.y,K.x+F.offsetWidth,K.y+F.offsetHeight,K.x),I=[],D={},L={},R=[],d={outEvts:[],overEvts:[],dropEvts:[],enterEvts:[]};for(var T in this.dragOvers){var f=this.dragOvers[T];if(!this.isTypeOfDD(f)){continue;}if(!this.isOverTarget(Q,f,this.mode,V)){d.outEvts.push(f);}I[T]=true;delete this.dragOvers[T];}for(var S in c.groups){if("string"!=typeof S){continue;}for(T in this.ids[S]){var G=this.ids[S][T];if(!this.isTypeOfDD(G)){continue;}if(G.isTarget&&!G.isLocked()&&G!=c){if(this.isOverTarget(Q,G,this.mode,V)){D[S]=true;if(M){d.dropEvts.push(G);}else{if(!I[G.id]){d.enterEvts.push(G);}else{d.overEvts.push(G);}this.dragOvers[G.id]=G;}}}}}this.interactionInfo={out:d.outEvts,enter:d.enterEvts,over:d.overEvts,drop:d.dropEvts,point:Q,draggedRegion:V,sourceRegion:this.locationCache[c.id],validDrop:M};for(var C in D){R.push(C);}if(M&&!d.dropEvts.length){this.interactionInfo.validDrop=false;if(c.events.invalidDrop){c.onInvalidDrop(W);c.fireEvent("invalidDropEvent",{e:W});}}for(T=0;T2000){}else{setTimeout(C._addListeners,10);if(document&&document.body){C._timeoutCount+=1;}}}},handleWasClicked:function(C,E){if(this.isHandle(E,C.id)){return true;}else{var D=C.parentNode;while(D){if(this.isHandle(E,D.id)){return true;}else{D=D.parentNode;}}}return false;}};}();YAHOO.util.DDM=YAHOO.util.DragDropMgr;YAHOO.util.DDM._addListeners();}(function(){var A=YAHOO.util.Event;var B=YAHOO.util.Dom;YAHOO.util.DragDrop=function(E,C,D){if(E){this.init(E,C,D);}};YAHOO.util.DragDrop.prototype={events:null,on:function(){this.subscribe.apply(this,arguments);},id:null,config:null,dragElId:null,handleElId:null,invalidHandleTypes:null,invalidHandleIds:null,invalidHandleClasses:null,startPageX:0,startPageY:0,groups:null,locked:false,lock:function(){this.locked=true;},unlock:function(){this.locked=false;},isTarget:true,padding:null,dragOnly:false,useShim:false,_domRef:null,__ygDragDrop:true,constrainX:false,constrainY:false,minX:0,maxX:0,minY:0,maxY:0,deltaX:0,deltaY:0,maintainOffset:false,xTicks:null,yTicks:null,primaryButtonOnly:true,available:false,hasOuterHandles:false,cursorIsOver:false,overlap:null,b4StartDrag:function(C,D){},startDrag:function(C,D){},b4Drag:function(C){},onDrag:function(C){},onDragEnter:function(C,D){},b4DragOver:function(C){},onDragOver:function(C,D){},b4DragOut:function(C){},onDragOut:function(C,D){},b4DragDrop:function(C){},onDragDrop:function(C,D){},onInvalidDrop:function(C){},b4EndDrag:function(C){},endDrag:function(C){},b4MouseDown:function(C){},onMouseDown:function(C){},onMouseUp:function(C){},onAvailable:function(){},getEl:function(){if(!this._domRef){this._domRef=B.get(this.id);}return this._domRef;},getDragEl:function(){return B.get(this.dragElId);},init:function(F,C,D){this.initTarget(F,C,D);A.on(this._domRef||this.id,"mousedown",this.handleMouseDown,this,true);for(var E in this.events){this.createEvent(E+"Event");}},initTarget:function(E,C,D){this.config=D||{};this.events={};this.DDM=YAHOO.util.DDM;this.groups={};if(typeof E!=="string"){this._domRef=E;E=B.generateId(E);}this.id=E;this.addToGroup((C)?C:"default");this.handleElId=E;A.onAvailable(E,this.handleOnAvailable,this,true);this.setDragElId(E);this.invalidHandleTypes={A:"A",SELECT:"SELECT"};this.invalidHandleIds={};this.invalidHandleClasses=[];this.applyConfig();},applyConfig:function(){this.events={mouseDown:true,b4MouseDown:true,mouseUp:true,b4StartDrag:true,startDrag:true,b4EndDrag:true,endDrag:true,drag:true,b4Drag:true,invalidDrop:true,b4DragOut:true,dragOut:true,dragEnter:true,b4DragOver:true,dragOver:true,b4DragDrop:true,dragDrop:true};if(this.config.events){for(var C in this.config.events){if(this.config.events[C]===false){this.events[C]=false;}}}this.padding=this.config.padding||[0,0,0,0];this.isTarget=(this.config.isTarget!==false);this.maintainOffset=(this.config.maintainOffset);this.primaryButtonOnly=(this.config.primaryButtonOnly!==false);this.dragOnly=((this.config.dragOnly===true)?true:false);this.useShim=((this.config.useShim===true)?true:false);},handleOnAvailable:function(){this.available=true;this.resetConstraints();this.onAvailable();},setPadding:function(E,C,F,D){if(!C&&0!==C){this.padding=[E,E,E,E];}else{if(!F&&0!==F){this.padding=[E,C,E,C];}else{this.padding=[E,C,F,D];}}},setInitPosition:function(F,E){var G=this.getEl();if(!this.DDM.verifyEl(G)){if(G&&G.style&&(G.style.display=="none")){}else{}return;}var D=F||0;var C=E||0;var H=B.getXY(G);this.initPageX=H[0]-D;this.initPageY=H[1]-C;this.lastPageX=H[0];this.lastPageY=H[1];this.setStartPosition(H);},setStartPosition:function(D){var C=D||B.getXY(this.getEl());this.deltaSetXY=null;this.startPageX=C[0];this.startPageY=C[1];},addToGroup:function(C){this.groups[C]=true;this.DDM.regDragDrop(this,C);},removeFromGroup:function(C){if(this.groups[C]){delete this.groups[C];}this.DDM.removeDDFromGroup(this,C);},setDragElId:function(C){this.dragElId=C;},setHandleElId:function(C){if(typeof C!=="string"){C=B.generateId(C);}this.handleElId=C;this.DDM.regHandle(this.id,C);},setOuterHandleElId:function(C){if(typeof C!=="string"){C=B.generateId(C);}A.on(C,"mousedown",this.handleMouseDown,this,true);this.setHandleElId(C);this.hasOuterHandles=true;},unreg:function(){A.removeListener(this.id,"mousedown",this.handleMouseDown);this._domRef=null;this.DDM._remove(this);},isLocked:function(){return(this.DDM.isLocked()||this.locked);},handleMouseDown:function(J,I){var D=J.which||J.button;if(this.primaryButtonOnly&&D>1){return;}if(this.isLocked()){return;}var C=this.b4MouseDown(J),F=true;if(this.events.b4MouseDown){F=this.fireEvent("b4MouseDownEvent",J);}var E=this.onMouseDown(J),H=true;if(this.events.mouseDown){if(E===false){H=false;}else{H=this.fireEvent("mouseDownEvent",J);}}if((C===false)||(E===false)||(F===false)||(H===false)){return;}this.DDM.refreshCache(this.groups);var G=new YAHOO.util.Point(A.getPageX(J),A.getPageY(J));if(!this.hasOuterHandles&&!this.DDM.isOverTarget(G,this)){}else{if(this.clickValidator(J)){this.setStartPosition();this.DDM.handleMouseDown(J,this);this.DDM.stopEvent(J);}else{}}},clickValidator:function(D){var C=YAHOO.util.Event.getTarget(D);return(this.isValidHandleChild(C)&&(this.id==this.handleElId||this.DDM.handleWasClicked(C,this.id)));},getTargetCoord:function(E,D){var C=E-this.deltaX;var F=D-this.deltaY;if(this.constrainX){if(Cthis.maxX){C=this.maxX;}}if(this.constrainY){if(Fthis.maxY){F=this.maxY;}}C=this.getTick(C,this.xTicks);F=this.getTick(F,this.yTicks);return{x:C,y:F};},addInvalidHandleType:function(C){var D=C.toUpperCase();this.invalidHandleTypes[D]=D;},addInvalidHandleId:function(C){if(typeof C!=="string"){C=B.generateId(C);}this.invalidHandleIds[C]=C;},addInvalidHandleClass:function(C){this.invalidHandleClasses.push(C);},removeInvalidHandleType:function(C){var D=C.toUpperCase();delete this.invalidHandleTypes[D];},removeInvalidHandleId:function(C){if(typeof C!=="string"){C=B.generateId(C);}delete this.invalidHandleIds[C];},removeInvalidHandleClass:function(D){for(var E=0,C=this.invalidHandleClasses.length;E=this.minX;D=D-C){if(!E[D]){this.xTicks[this.xTicks.length]=D;E[D]=true;}}for(D=this.initPageX;D<=this.maxX;D=D+C){if(!E[D]){this.xTicks[this.xTicks.length]=D;E[D]=true;}}this.xTicks.sort(this.DDM.numericSort);},setYTicks:function(F,C){this.yTicks=[];this.yTickSize=C;var E={};for(var D=this.initPageY;D>=this.minY;D=D-C){if(!E[D]){this.yTicks[this.yTicks.length]=D;E[D]=true;}}for(D=this.initPageY;D<=this.maxY;D=D+C){if(!E[D]){this.yTicks[this.yTicks.length]=D;E[D]=true;}}this.yTicks.sort(this.DDM.numericSort);},setXConstraint:function(E,D,C){this.leftConstraint=parseInt(E,10);this.rightConstraint=parseInt(D,10);this.minX=this.initPageX-this.leftConstraint;this.maxX=this.initPageX+this.rightConstraint;if(C){this.setXTicks(this.initPageX,C);}this.constrainX=true;},clearConstraints:function(){this.constrainX=false;this.constrainY=false;this.clearTicks();},clearTicks:function(){this.xTicks=null;this.yTicks=null;this.xTickSize=0;this.yTickSize=0;},setYConstraint:function(C,E,D){this.topConstraint=parseInt(C,10);this.bottomConstraint=parseInt(E,10);this.minY=this.initPageY-this.topConstraint;this.maxY=this.initPageY+this.bottomConstraint;if(D){this.setYTicks(this.initPageY,D);}this.constrainY=true;},resetConstraints:function(){if(this.initPageX||this.initPageX===0){var D=(this.maintainOffset)?this.lastPageX-this.initPageX:0;var C=(this.maintainOffset)?this.lastPageY-this.initPageY:0;this.setInitPosition(D,C);}else{this.setInitPosition();}if(this.constrainX){this.setXConstraint(this.leftConstraint,this.rightConstraint,this.xTickSize);}if(this.constrainY){this.setYConstraint(this.topConstraint,this.bottomConstraint,this.yTickSize);}},getTick:function(I,F){if(!F){return I;}else{if(F[0]>=I){return F[0];}else{for(var D=0,C=F.length;D=I){var H=I-F[D];var G=F[E]-I;return(G>H)?F[D]:F[E];}}return F[F.length-1];}}},toString:function(){return("DragDrop "+this.id);}};YAHOO.augment(YAHOO.util.DragDrop,YAHOO.util.EventProvider);})();YAHOO.util.DD=function(C,A,B){if(C){this.init(C,A,B);}};YAHOO.extend(YAHOO.util.DD,YAHOO.util.DragDrop,{scroll:true,autoOffset:function(C,B){var A=C-this.startPageX;var D=B-this.startPageY;this.setDelta(A,D);},setDelta:function(B,A){this.deltaX=B;this.deltaY=A;},setDragElPos:function(C,B){var A=this.getDragEl();this.alignElWithMouse(A,C,B);},alignElWithMouse:function(C,G,F){var E=this.getTargetCoord(G,F);if(!this.deltaSetXY){var H=[E.x,E.y];YAHOO.util.Dom.setXY(C,H);var D=parseInt(YAHOO.util.Dom.getStyle(C,"left"),10);var B=parseInt(YAHOO.util.Dom.getStyle(C,"top"),10);this.deltaSetXY=[D-E.x,B-E.y];}else{YAHOO.util.Dom.setStyle(C,"left",(E.x+this.deltaSetXY[0])+"px");YAHOO.util.Dom.setStyle(C,"top",(E.y+this.deltaSetXY[1])+"px");}this.cachePosition(E.x,E.y);var A=this;setTimeout(function(){A.autoScroll.call(A,E.x,E.y,C.offsetHeight,C.offsetWidth);},0);},cachePosition:function(B,A){if(B){this.lastPageX=B;this.lastPageY=A;}else{var C=YAHOO.util.Dom.getXY(this.getEl());this.lastPageX=C[0];this.lastPageY=C[1];}},autoScroll:function(J,I,E,K){if(this.scroll){var L=this.DDM.getClientHeight();var B=this.DDM.getClientWidth();var N=this.DDM.getScrollTop();var D=this.DDM.getScrollLeft();var H=E+I;var M=K+J;var G=(L+N-I-this.deltaY);var F=(B+D-J-this.deltaX);var C=40;var A=(document.all)?80:30;if(H>L&&G0&&I-NB&&F0&&J-D0){g=f-1;do{d=e.subscribers[g];if(d&&d.obj==j&&d.fn==h){return true;}}while(g--);}return false;};YAHOO.lang.augmentProto(a,YAHOO.util.EventProvider);}());(function(){YAHOO.widget.Module=function(r,q){if(r){this.init(r,q);}else{}};var f=YAHOO.util.Dom,d=YAHOO.util.Config,n=YAHOO.util.Event,m=YAHOO.util.CustomEvent,g=YAHOO.widget.Module,i=YAHOO.env.ua,h,p,o,e,a={"BEFORE_INIT":"beforeInit","INIT":"init","APPEND":"append","BEFORE_RENDER":"beforeRender","RENDER":"render","CHANGE_HEADER":"changeHeader","CHANGE_BODY":"changeBody","CHANGE_FOOTER":"changeFooter","CHANGE_CONTENT":"changeContent","DESTROY":"destroy","BEFORE_SHOW":"beforeShow","SHOW":"show","BEFORE_HIDE":"beforeHide","HIDE":"hide"},j={"VISIBLE":{key:"visible",value:true,validator:YAHOO.lang.isBoolean},"EFFECT":{key:"effect",suppressEvent:true,supercedes:["visible"]},"MONITOR_RESIZE":{key:"monitorresize",value:true},"APPEND_TO_DOCUMENT_BODY":{key:"appendtodocumentbody",value:false}};g.IMG_ROOT=null;g.IMG_ROOT_SSL=null;g.CSS_MODULE="yui-module";g.CSS_HEADER="hd";g.CSS_BODY="bd";g.CSS_FOOTER="ft";g.RESIZE_MONITOR_SECURE_URL="javascript:false;";g.RESIZE_MONITOR_BUFFER=1;g.textResizeEvent=new m("textResize");g.forceDocumentRedraw=function(){var q=document.documentElement;if(q){q.className+=" ";q.className=YAHOO.lang.trim(q.className);}};function l(){if(!h){h=document.createElement("div");h.innerHTML=('
'+'
');p=h.firstChild;o=p.nextSibling;e=o.nextSibling;}return h;}function k(){if(!p){l();}return(p.cloneNode(false));}function b(){if(!o){l();}return(o.cloneNode(false));}function c(){if(!e){l();}return(e.cloneNode(false));}g.prototype={constructor:g,element:null,header:null,body:null,footer:null,id:null,imageRoot:g.IMG_ROOT,initEvents:function(){var q=m.LIST;this.beforeInitEvent=this.createEvent(a.BEFORE_INIT);this.beforeInitEvent.signature=q;this.initEvent=this.createEvent(a.INIT);this.initEvent.signature=q;this.appendEvent=this.createEvent(a.APPEND);this.appendEvent.signature=q;this.beforeRenderEvent=this.createEvent(a.BEFORE_RENDER);this.beforeRenderEvent.signature=q;this.renderEvent=this.createEvent(a.RENDER);this.renderEvent.signature=q;this.changeHeaderEvent=this.createEvent(a.CHANGE_HEADER);this.changeHeaderEvent.signature=q;this.changeBodyEvent=this.createEvent(a.CHANGE_BODY);this.changeBodyEvent.signature=q;this.changeFooterEvent=this.createEvent(a.CHANGE_FOOTER);this.changeFooterEvent.signature=q;this.changeContentEvent=this.createEvent(a.CHANGE_CONTENT);this.changeContentEvent.signature=q;this.destroyEvent=this.createEvent(a.DESTROY);this.destroyEvent.signature=q;this.beforeShowEvent=this.createEvent(a.BEFORE_SHOW);this.beforeShowEvent.signature=q;this.showEvent=this.createEvent(a.SHOW);this.showEvent.signature=q;this.beforeHideEvent=this.createEvent(a.BEFORE_HIDE);this.beforeHideEvent.signature=q;this.hideEvent=this.createEvent(a.HIDE);this.hideEvent.signature=q;},platform:function(){var q=navigator.userAgent.toLowerCase();if(q.indexOf("windows")!=-1||q.indexOf("win32")!=-1){return"windows";}else{if(q.indexOf("macintosh")!=-1){return"mac";}else{return false;}}}(),browser:function(){var q=navigator.userAgent.toLowerCase();if(q.indexOf("opera")!=-1){return"opera";}else{if(q.indexOf("msie 7")!=-1){return"ie7";}else{if(q.indexOf("msie")!=-1){return"ie";}else{if(q.indexOf("safari")!=-1){return"safari";}else{if(q.indexOf("gecko")!=-1){return"gecko";}else{return false;}}}}}}(),isSecure:function(){if(window.location.href.toLowerCase().indexOf("https")===0){return true;}else{return false;}}(),initDefaultConfig:function(){this.cfg.addProperty(j.VISIBLE.key,{handler:this.configVisible,value:j.VISIBLE.value,validator:j.VISIBLE.validator});this.cfg.addProperty(j.EFFECT.key,{handler:this.configEffect,suppressEvent:j.EFFECT.suppressEvent,supercedes:j.EFFECT.supercedes});this.cfg.addProperty(j.MONITOR_RESIZE.key,{handler:this.configMonitorResize,value:j.MONITOR_RESIZE.value});this.cfg.addProperty(j.APPEND_TO_DOCUMENT_BODY.key,{value:j.APPEND_TO_DOCUMENT_BODY.value});},init:function(v,u){var s,w;this.initEvents();this.beforeInitEvent.fire(g);this.cfg=new d(this);if(this.isSecure){this.imageRoot=g.IMG_ROOT_SSL;}if(typeof v=="string"){s=v;v=document.getElementById(v);if(!v){v=(l()).cloneNode(false);v.id=s;}}this.id=f.generateId(v);this.element=v;w=this.element.firstChild;if(w){var r=false,q=false,t=false;do{if(1==w.nodeType){if(!r&&f.hasClass(w,g.CSS_HEADER)){this.header=w;r=true;}else{if(!q&&f.hasClass(w,g.CSS_BODY)){this.body=w;q=true;}else{if(!t&&f.hasClass(w,g.CSS_FOOTER)){this.footer=w;t=true;}}}}}while((w=w.nextSibling));}this.initDefaultConfig();f.addClass(this.element,g.CSS_MODULE);if(u){this.cfg.applyConfig(u,true);}if(!d.alreadySubscribed(this.renderEvent,this.cfg.fireQueue,this.cfg)){this.renderEvent.subscribe(this.cfg.fireQueue,this.cfg,true);}this.initEvent.fire(g);},initResizeMonitor:function(){var r=(i.gecko&&this.platform=="windows");if(r){var q=this;setTimeout(function(){q._initResizeMonitor();},0);}else{this._initResizeMonitor();}},_initResizeMonitor:function(){var q,s,u;function w(){g.textResizeEvent.fire();}if(!i.opera){s=f.get("_yuiResizeMonitor");var v=this._supportsCWResize();if(!s){s=document.createElement("iframe");if(this.isSecure&&g.RESIZE_MONITOR_SECURE_URL&&i.ie){s.src=g.RESIZE_MONITOR_SECURE_URL;}if(!v){u=["',"");} -SED.quickCreateDialog.setBody(ret.html?ret.html:" ");SED.quickCreateDialog.render();SUGAR.util.evalScript(ret.html+'');SED.quickCreateDialog.ieId=ret.ieId;SED.quickCreateDialog.uid=ret.uid;SED.quickCreateDialog.mbox=ret.mbox;SED.quickCreateDialog.qcmodule=ret.module;SED.quickCreateDialog.show();var editForm=document.getElementById('form_EmailQCView_'+ret.module);if(editForm){editForm.module.value='Emails';var count=SUGAR.EmailAddressWidget.count[ret.module]?SUGAR.EmailAddressWidget.count[ret.module]:0;var tableId=YAHOO.util.Dom.getElementsByClassName('emailaddresses','table',editForm)[0];tableId=tableId?tableId.id:tableId;var instId=ret.module+count;SED.quickCreateEmailsToAdd=ret.emailAddress;SED.quickCreateEmailCallback=function(instId,tableId){if(tableId){var eaw=SUGAR.EmailAddressWidget.instances[instId];if(eaw){eaw.prefillEmailAddresses(tableId,SUGAR.email2.detailView.quickCreateEmailsToAdd);}else{window.setTimeout(function(){SUGAR.email2.detailView.quickCreateEmailCallback(instId,tableId);},100);}}} +SED.quickCreateDialog.setBody(ret.html?ret.html:" ");SED.quickCreateDialog.render();SUGAR.util.evalScript(ret.html+'');SED.quickCreateDialog.ieId=ret.ieId;SED.quickCreateDialog.uid=ret.uid;SED.quickCreateDialog.mbox=ret.mbox;SED.quickCreateDialog.qcmodule=ret.module;SED.quickCreateDialog.show();var editForm=document.getElementById('form_EmailQCView_'+ret.module);if(editForm){editForm.module.value='Emails';var count=SUGAR.EmailAddressWidget.count[ret.module]?SUGAR.EmailAddressWidget.count[ret.module]:0;var tableId=YAHOO.util.Dom.getElementsByClassName('emailaddresses','table',editForm)[0];tableId=tableId?tableId.id:tableId;var instId=ret.module+count;SED.quickCreateEmailsToAdd=ret.emailAddress;SED.quickCreateEmailCallback=function(instId,tableId){if(tableId){var eaw=new SUGAR.EmailAddressWidget.instances[instId];if(eaw){eaw.prefillEmailAddresses(tableId,SUGAR.email2.detailView.quickCreateEmailsToAdd);}else{window.setTimeout(function(){SUGAR.email2.detailView.quickCreateEmailCallback(instId,tableId);},100);}}} window.setTimeout(function(){SUGAR.email2.detailView.quickCreateEmailCallback(instId,tableId);},100);}},saveQuickCreateForm:function(o){SUGAR.hideMessageBox();SUGAR.email2.detailView.quickCreateDialog.hide();validate['EditView']=[];},saveQuickCreateFormAndReply:function(o){SUGAR.hideMessageBox();var ret=YAHOO.lang.JSON.parse(o.responseText);SUGAR.email2.detailView.quickCreateDialog.hide();var qcd=SUGAR.email2.detailView.quickCreateDialog;var type=(qcd.qcmodule=='Cases')?'replyCase':'reply';if(ret){var emailID=ret.id;SUGAR.email2.composeLayout.c0_replyForwardEmail(null,ret.id,'sugar::Emails',type);}else{SUGAR.email2.composeLayout.c0_replyForwardEmail(qcd.ieId,qcd.uid,qcd.mbox,type);} validate['EditView']=[];},saveQuickCreateFormAndAddToAddressBook:function(o){SUGAR.hideMessageBox();SUGAR.email2.detailView.quickCreateDialog.hide();SUGAR.email2.complexLayout.findPanel('contactsTab').show();validate['EditView']=[];},handleAssignmentDialogAssignAction:function(){var assign_user_id=window.document.forms['Distribute'].elements['assigned_user_id'].value;var dist='direct';var users=false;var rules=false;var get="";var found_teams=false;var warning_message=mod_strings.LBL_WARN_NO_USERS;if(!found_teams&&assign_user_id=='') {alert(warning_message);return;} diff --git a/cache/include/javascript/sugar_grp_jsolait.js b/cache/include/javascript/sugar_grp_jsolait.js index 2e5d883c..c29a8d7d 100644 --- a/cache/include/javascript/sugar_grp_jsolait.js +++ b/cache/include/javascript/sugar_grp_jsolait.js @@ -66,7 +66,7 @@ if(typeof(bean.fields.first_name)=='undefined'){bean.fields.first_name='';} if(typeof(bean.fields.email1)=='undefined'||bean.fields.email1==""){bean.fields.email1=' ';} if(typeof(bean.fields.phone_work)=='undefined'||bean.fields.phone_work==""){bean.fields.phone_work=' ';} html+='';html+='';html+=''+bean.fields.full_name+'';html+=''+bean.fields.email1+'';html+=''+bean.fields.phone_work+'';html+='';hidden='visible';if(!disabled){} -html+='';html+='';html+='';} +html+='';html+='';html+='';} html+='';div.innerHTML=html;} SugarWidgetListView.prototype.display_loading=function(){} SugarClass.inherit("SugarWidgetSchedulerSearch","SugarClass");function SugarWidgetSchedulerSearch(){this.init();} @@ -78,7 +78,7 @@ if(form.search_email.value!=''){conditions[conditions.length]={"name":"email1"," var query={"modules":["Users","Contacts","Leads"],"group":"and","field_list":['id','full_name','email1','phone_work'],"conditions":conditions};global_request_registry[req_count]=[this,'display'];req_id=global_rpcClient.call_method('query',query);global_request_registry[req_id]=[GLOBAL_REGISTRY['widget_element_map'][form.id],'refresh_list'];} SugarWidgetSchedulerSearch.prototype.refresh_list=function(rslt){GLOBAL_REGISTRY['result_list']=rslt['list'];if(rslt['list'].length>0){this.list_view.display();document.getElementById('empty-search-message').style.display='none';}else{document.getElementById('list_div_win').style.display='none';document.getElementById('empty-search-message').style.display='';}} SugarWidgetSchedulerSearch.prototype.display=function(){var html='

'+GLOBAL_REGISTRY['meeting_strings']['LBL_ADD_INVITEE']+'

';html+='
';html+='
';html+='' -html+='';html+='';html+='';html+='';html+='';html+='
      
';html+='
';html+='
';this.parentNode.innerHTML+=html;var div=document.createElement('div');div.setAttribute('id','list_div_win');div.style.overflow='auto';div.style.width='100%';div.style.height='100%';div.style.display='none';this.parentNode.appendChild(div);html='';html+='
';html+='';html+='

'+GLOBAL_REGISTRY['meeting_strings']['LBL_CREATE_INVITEE']+'

';html+='
';html+=' ';html+=' ';html+='
';html+='';this.parentNode.innerHTML+=html;var div=document.createElement('div');div.setAttribute('id','list_div_win');div.style.overflow='auto';div.style.width='100%';div.style.height='100%';div.style.display='none';this.parentNode.appendChild(div);html='';html+='
';html+='';html+='

'+GLOBAL_REGISTRY['meeting_strings']['LBL_CREATE_INVITEE']+'

';html+='
';html+=' ';html+=' ';html+='
';html+='';html+='
';this.parentNode.innerHTML+=html;addToValidate('createInviteeForm','last_name','last_name',true,GLOBAL_REGISTRY['meeting_strings']['LBL_LAST_NAME']);this.list_view=new SugarWidgetListView();this.list_view.load(div);} SugarWidgetSchedulerSearch.showCreateForm=function(module){document.getElementById('create-invitee-edit').style.display='';document.getElementById('create-invitees-buttons').style.display='none';document.getElementById('list_div_win').style.display='none';document.forms['createInviteeForm'].elements['inviteeModule'].value=module;document.getElementById('empty-search-message').style.display='none';if(typeof document.createInviteeForm.first_name!='undefined'&&typeof document.schedulerwidget.search_first_name!='undefined') document.createInviteeForm.first_name.value=document.schedulerwidget.search_first_name.value;if(typeof document.createInviteeForm.last_name!='undefined'&&typeof document.schedulerwidget.search_last_name!='undefined') diff --git a/cache/include/javascript/sugar_grp_quickcomp.js b/cache/include/javascript/sugar_grp_quickcomp.js index 4ca43b68..2dafb683 100644 --- a/cache/include/javascript/sugar_grp_quickcomp.js +++ b/cache/include/javascript/sugar_grp_quickcomp.js @@ -95,12 +95,11 @@ return isFirstFieldEmpty;},show_arrow_label:function(show){var more_div=document return false;}};SUGAR.collection.safe_clone=function(e,recursive) {if(e.nodeName=="#text") {return document.createTextNode(e.data);} -if(!e.tagName)return false;var newNode=document.createElement(e.tagName);if(!newNode)return false;var properties=['class','style','name','type','valign','border','width','height','top','bottom','left','right','scope','row','columns','src','href','className','align','nowrap'];if(SUGAR.isIE7&&e.tagName.toLowerCase()=='input') -{var properties=['class','style','name','type','valign','border','width','top','bottom','left','right','scope','row','columns','src','href','className','align','nowrap'];}else{var properties=['class','style','name','type','valign','border','width','height','top','bottom','left','right','scope','row','columns','src','href','className','align','nowrap'];} +if(!e.tagName)return false;var newNode=document.createElement(e.tagName);if(!newNode)return false;var properties=['id','class','style','name','type','valign','border','width','height','top','bottom','left','right','scope','row','columns','src','href','className','align','nowrap'];if(SUGAR.isIE7&&e.tagName.toLowerCase()=='input') +{var properties=['id','class','style','name','type','valign','border','width','top','bottom','left','right','scope','row','columns','src','href','className','align','nowrap'];} for(var i in properties) {if(e[properties[i]]) -{if(((properties[i]!='style'&&properties[i]!='type')||!SUGAR.isIE)&&(properties[i]!='href'||e.tagName=='a'||e.tagName=='iframe')) -{newNode[properties[i]]=e[properties[i]];}}} +{if((properties[i]!='style'||!SUGAR.isIE)&&(properties[i]!='href'||e.tagName=='a'||e.tagName=='iframe')){if(properties[i]=="type"){newNode.setAttribute(properties[i],e[properties[i]]);}else{newNode[properties[i]]=e[properties[i]];}}}} if(recursive) {for(var i in e.childNodes) {if(e.childNodes[i].nodeName&&(!e.className||e.className!="yui-ac-container")) @@ -151,7 +150,7 @@ var out=displayTemplate.exec({'app_strings':app_strings,'theme':theme,'idx':'Pre SED.viewDialog.setHeader(ret.title);SED.viewDialog.setBody(ret.html);SED.viewDialog.render();SED.viewDialog.show();},showQuickCreateForm:function(o){var SED=SUGAR.email2.detailView;var ret=YAHOO.lang.JSON.parse(o.responseText);if(!SED.quickCreateDialog){SED.quickCreateDialog=new YAHOO.widget.Dialog("quickCreateForEmail",{modal:true,visible:true,fixedcenter:true,constraintoviewport:true,shadow:true});SED.quickCreateDialog.renderEvent.subscribe(function(){var viewH=YAHOO.util.Dom.getViewportHeight();var contH=0;for(var i in this.body.childNodes){if(this.body.childNodes[i].clientHeight){contH+=this.body.childNodes[i].clientHeight;}else if(this.body.childNodes[i].offsetHeight){contH+=this.body.childNodes[i].offsetHeight;}} this.body.style.width="800px";this.body.style.height=(viewH-75>contH?(contH+10):(viewH-75))+"px";this.body.style.overflow="auto";},SED.quickCreateDialog);SED.quickCreateDialog.hideEvent.subscribe(function(){var qsFields=YAHOO.util.Dom.getElementsByClassName('.sqsEnabled',null,this.body);});SED.quickCreateDialog.setHeader(app_strings.LBL_EMAIL_QUICK_CREATE);} if(ret.html){ret.html=ret.html.replace('',"");} -SED.quickCreateDialog.setBody(ret.html?ret.html:" ");SED.quickCreateDialog.render();SUGAR.util.evalScript(ret.html+'');SED.quickCreateDialog.ieId=ret.ieId;SED.quickCreateDialog.uid=ret.uid;SED.quickCreateDialog.mbox=ret.mbox;SED.quickCreateDialog.qcmodule=ret.module;SED.quickCreateDialog.show();var editForm=document.getElementById('form_EmailQCView_'+ret.module);if(editForm){editForm.module.value='Emails';var count=SUGAR.EmailAddressWidget.count[ret.module]?SUGAR.EmailAddressWidget.count[ret.module]:0;var tableId=YAHOO.util.Dom.getElementsByClassName('emailaddresses','table',editForm)[0];tableId=tableId?tableId.id:tableId;var instId=ret.module+count;SED.quickCreateEmailsToAdd=ret.emailAddress;SED.quickCreateEmailCallback=function(instId,tableId){if(tableId){var eaw=SUGAR.EmailAddressWidget.instances[instId];if(eaw){eaw.prefillEmailAddresses(tableId,SUGAR.email2.detailView.quickCreateEmailsToAdd);}else{window.setTimeout(function(){SUGAR.email2.detailView.quickCreateEmailCallback(instId,tableId);},100);}}} +SED.quickCreateDialog.setBody(ret.html?ret.html:" ");SED.quickCreateDialog.render();SUGAR.util.evalScript(ret.html+'');SED.quickCreateDialog.ieId=ret.ieId;SED.quickCreateDialog.uid=ret.uid;SED.quickCreateDialog.mbox=ret.mbox;SED.quickCreateDialog.qcmodule=ret.module;SED.quickCreateDialog.show();var editForm=document.getElementById('form_EmailQCView_'+ret.module);if(editForm){editForm.module.value='Emails';var count=SUGAR.EmailAddressWidget.count[ret.module]?SUGAR.EmailAddressWidget.count[ret.module]:0;var tableId=YAHOO.util.Dom.getElementsByClassName('emailaddresses','table',editForm)[0];tableId=tableId?tableId.id:tableId;var instId=ret.module+count;SED.quickCreateEmailsToAdd=ret.emailAddress;SED.quickCreateEmailCallback=function(instId,tableId){if(tableId){var eaw=new SUGAR.EmailAddressWidget.instances[instId];if(eaw){eaw.prefillEmailAddresses(tableId,SUGAR.email2.detailView.quickCreateEmailsToAdd);}else{window.setTimeout(function(){SUGAR.email2.detailView.quickCreateEmailCallback(instId,tableId);},100);}}} window.setTimeout(function(){SUGAR.email2.detailView.quickCreateEmailCallback(instId,tableId);},100);}},saveQuickCreateForm:function(o){SUGAR.hideMessageBox();SUGAR.email2.detailView.quickCreateDialog.hide();validate['EditView']=[];},saveQuickCreateFormAndReply:function(o){SUGAR.hideMessageBox();var ret=YAHOO.lang.JSON.parse(o.responseText);SUGAR.email2.detailView.quickCreateDialog.hide();var qcd=SUGAR.email2.detailView.quickCreateDialog;var type=(qcd.qcmodule=='Cases')?'replyCase':'reply';if(ret){var emailID=ret.id;SUGAR.email2.composeLayout.c0_replyForwardEmail(null,ret.id,'sugar::Emails',type);}else{SUGAR.email2.composeLayout.c0_replyForwardEmail(qcd.ieId,qcd.uid,qcd.mbox,type);} validate['EditView']=[];},saveQuickCreateFormAndAddToAddressBook:function(o){SUGAR.hideMessageBox();SUGAR.email2.detailView.quickCreateDialog.hide();SUGAR.email2.complexLayout.findPanel('contactsTab').show();validate['EditView']=[];},handleAssignmentDialogAssignAction:function(){var assign_user_id=window.document.forms['Distribute'].elements['assigned_user_id'].value;var dist='direct';var users=false;var rules=false;var get="";var found_teams=false;var warning_message=mod_strings.LBL_WARN_NO_USERS;if(!found_teams&&assign_user_id=='') {alert(warning_message);return;} @@ -363,13 +362,15 @@ var CID=source.getRecord(tr).getData()[0];var o=SE.addressBook._contactCache[CID target.value=SE.addressBook.smartAddEmailAddressToComposeField(target.value,email);}}},applyEmailTemplate:function(idx,id){var box_title=mod_strings.LBL_EMAILTEMPLATE_MESSAGE_SHOW_TITLE;var box_msg=mod_strings.LBL_EMAILTEMPLATE_MESSAGE_SHOW_MSG;var box_none_msg=mod_strings.LBL_EMAILTEMPLATE_MESSAGE_CLEAR_MSG;var to_addr=document.getElementById('addressTO'+idx);if(to_addr.value.search(/[^;,]{6,}[;,][^;,]{6,}/)!=-1) {box_title=mod_strings.LBL_EMAILTEMPLATE_MESSAGE_WARNING_TITLE;box_msg=mod_strings.LBL_EMAILTEMPLATE_MESSAGE_MULTIPLE_RECIPIENTS+'

'+box_msg;} if(id==''||id=="0"){YAHOO.SUGAR.MessageBox.show({title:box_title,msg:box_none_msg,type:'confirm',fn:function(btn){if(btn=='no'){return;};SUGAR.email2.composeLayout.processNoneResult(idx,id);},modal:true,scope:this});return;} -YAHOO.SUGAR.MessageBox.show({title:box_title,msg:box_msg,type:'confirm',fn:function(btn){if(btn=='no'){return;};SUGAR.email2.composeLayout.processResult(idx,id);},modal:true,scope:this});},processNoneResult:function(idx,id){var tiny=SE.util.getTiny('htmleditor'+idx);var tinyHTML=tiny.getContent();var openTag='
';var htmllow=tinyHTML.toLowerCase();var start=htmllow.indexOf(openTag);if(start>-1){tinyHTML=tinyHTML.substr(start);tiny.setContent(tinyHTML);}else{tiny.setContent('');}},processResult:function(idx,id){var post_data={"module":"EmailTemplates","record":id};var global_rpcClient=new SugarRPCClient();result=global_rpcClient.call_method('retrieve',post_data,true);if(!result['record'])return;json_objects['email_template_object']=result['record'];this.appendEmailTemplateJSON();AjaxObject.target='';AjaxObject.startRequest(callbackLoadAttachments,urlStandard+"&emailUIAction=getTemplateAttachments&parent_id="+id);},appendEmailTemplateJSON:function(){var idx=SE.composeLayout.currentInstanceId;if(json_objects['email_template_object']['fields']['subject']!='') +YAHOO.SUGAR.MessageBox.show({title:box_title,msg:box_msg,type:'confirm',fn:function(btn){if(btn=='no'){return;};SUGAR.email2.composeLayout.processResult(idx,id);},modal:true,scope:this});},processNoneResult:function(idx,id){var tiny=SE.util.getTiny('htmleditor'+idx);var tinyHTML=tiny.getContent();var openTag='
';var htmllow=tinyHTML.toLowerCase();var start=htmllow.indexOf(openTag);if(start>-1){tinyHTML=tinyHTML.substr(start);tiny.setContent(tinyHTML);}else{tiny.setContent('');} +setTimeout("SUGAR.email2.composeLayout.setSignature("+idx+");",500);},processResult:function(idx,id){var post_data={"module":"EmailTemplates","record":id};var global_rpcClient=new SugarRPCClient();result=global_rpcClient.call_method('retrieve',post_data,true);if(!result['record'])return;json_objects['email_template_object']=result['record'];this.appendEmailTemplateJSON();AjaxObject.target='';AjaxObject.startRequest(callbackLoadAttachments,urlStandard+"&emailUIAction=getTemplateAttachments&parent_id="+id);},appendEmailTemplateJSON:function(){var idx=SE.composeLayout.currentInstanceId;if(json_objects['email_template_object']['fields']['subject']!='') {document.getElementById('emailSubject'+idx).value=decodeURI(encodeURI(json_objects['email_template_object']['fields']['subject']));} var text='';if(json_objects['email_template_object']['fields']['text_only']==1) {text="

"+decodeURI(encodeURI(json_objects['email_template_object']['fields']['body'])).replace(/
/ig,'

').replace(/
/gi,"

").replace(/&/gi,'&').replace(/</gi,'<').replace(/>/gi,'>').replace(/'/gi,'\'').replace(/"/gi,'"')+"

";document.getElementById('setEditor'+idx).checked=true;SUGAR.email2.composeLayout.renderTinyMCEToolBar(idx,1);} else {text=decodeURI(encodeURI(json_objects['email_template_object']['fields']['body_html'])).replace(/
/ig,'\n').replace(/
/gi,"\n").replace(/&/gi,'&').replace(/</gi,'<').replace(/>/gi,'>').replace(/'/gi,'\'').replace(/"/gi,'"');document.getElementById('setEditor'+idx).checked=false;SUGAR.email2.composeLayout.renderTinyMCEToolBar(idx,0);} -var tiny=SE.util.getTiny('htmleditor'+idx);var tinyHTML=tiny.getContent();var openTag='
';var closeTag='
';var htmllow=tinyHTML.toLowerCase();var start=htmllow.indexOf(openTag);if(start>-1){var htmlPart2=tinyHTML.substr(start);tinyHTML=text+htmlPart2;tiny.setContent(tinyHTML);}else{tiny.setContent(text);}},setSignature:function(idx){if(!tinyMCE) +var tiny=SE.util.getTiny('htmleditor'+idx);var tinyHTML=tiny.getContent();var openTag='
';var closeTag='
';var htmllow=tinyHTML.toLowerCase();var start=htmllow.indexOf(openTag);if(start>-1){var htmlPart2=tinyHTML.substr(start);tinyHTML=text+htmlPart2;tiny.setContent(tinyHTML);}else{tiny.setContent(text);} +setTimeout("SUGAR.email2.composeLayout.setSignature("+idx+");",500);},setSignature:function(idx){if(!tinyMCE) return false;var hide=document.getElementById('setEditor'+idx).checked;SE.composeLayout.renderTinyMCEToolBar(idx,hide);if(!SE.composeLayout.signatures){setTimeout("SE.composeLayout.setSignature("+idx+");",1000);return;} if(idx!=null){var sel=document.getElementById('signatures'+idx);}else{var sel=document.getElementById('signature_id');idx=SE.tinyInstances.currentHtmleditor;} if(typeof(SE.composeLayout.loadedTinyInstances[idx])!='undefined'&&SE.composeLayout.loadedTinyInstances[idx]==false){setTimeout("SE.composeLayout.setSignature("+idx+");",1000);return;} diff --git a/cache/include/javascript/sugar_grp_yui2.js b/cache/include/javascript/sugar_grp_yui2.js index a4b56e5a..9c9052d0 100644 --- a/cache/include/javascript/sugar_grp_yui2.js +++ b/cache/include/javascript/sugar_grp_yui2.js @@ -1,5 +1,5 @@ -if(!YAHOO.util.DragDropMgr){YAHOO.util.DragDropMgr=function(){var A=YAHOO.util.Event,B=YAHOO.util.Dom;return{useShim:false,_shimActive:false,_shimState:false,_debugShim:false,_createShim:function(){var C=document.createElement("div");C.id="yui-ddm-shim";if(document.body.firstChild){document.body.insertBefore(C,document.body.firstChild);}else{document.body.appendChild(C);}C.style.display="none";C.style.backgroundColor="red";C.style.position="absolute";C.style.zIndex="99999";B.setStyle(C,"opacity","0");this._shim=C;A.on(C,"mouseup",this.handleMouseUp,this,true);A.on(C,"mousemove",this.handleMouseMove,this,true);A.on(window,"scroll",this._sizeShim,this,true);},_sizeShim:function(){if(this._shimActive){var C=this._shim;C.style.height=B.getDocumentHeight()+"px";C.style.width=B.getDocumentWidth()+"px";C.style.top="0";C.style.left="0";}},_activateShim:function(){if(this.useShim){if(!this._shim){this._createShim();}this._shimActive=true;var C=this._shim,D="0";if(this._debugShim){D=".5";}B.setStyle(C,"opacity",D);this._sizeShim();C.style.display="block";}},_deactivateShim:function(){this._shim.style.display="none";this._shimActive=false;},_shim:null,ids:{},handleIds:{},dragCurrent:null,dragOvers:{},deltaX:0,deltaY:0,preventDefault:true,stopPropagation:true,initialized:false,locked:false,interactionInfo:null,init:function(){this.initialized=true;},POINT:0,INTERSECT:1,STRICT_INTERSECT:2,mode:0,_execOnAll:function(E,D){for(var F in this.ids){for(var C in this.ids[F]){var G=this.ids[F][C];if(!this.isTypeOfDD(G)){continue;}G[E].apply(G,D);}}},_onLoad:function(){this.init();A.on(document,"mouseup",this.handleMouseUp,this,true);A.on(document,"mousemove",this.handleMouseMove,this,true);A.on(window,"unload",this._onUnload,this,true);A.on(window,"resize",this._onResize,this,true);},_onResize:function(C){this._execOnAll("resetConstraints",[]);},lock:function(){this.locked=true;},unlock:function(){this.locked=false;},isLocked:function(){return this.locked;},locationCache:{},useCache:true,clickPixelThresh:3,clickTimeThresh:1000,dragThreshMet:false,clickTimeout:null,startX:0,startY:0,fromTimeout:false,regDragDrop:function(D,C){if(!this.initialized){this.init();}if(!this.ids[C]){this.ids[C]={};}this.ids[C][D.id]=D;},removeDDFromGroup:function(E,C){if(!this.ids[C]){this.ids[C]={};}var D=this.ids[C];if(D&&D[E.id]){delete D[E.id];}},_remove:function(E){for(var D in E.groups){if(D){var C=this.ids[D];if(C&&C[E.id]){delete C[E.id];}}}delete this.handleIds[E.id];},regHandle:function(D,C){if(!this.handleIds[D]){this.handleIds[D]={};}this.handleIds[D][C]=C;},isDragDrop:function(C){return(this.getDDById(C))?true:false;},getRelated:function(H,D){var G=[];for(var F in H.groups){for(var E in this.ids[F]){var C=this.ids[F][E];if(!this.isTypeOfDD(C)){continue;}if(!D||C.isTarget){G[G.length]=C;}}}return G;},isLegalTarget:function(G,F){var D=this.getRelated(G,true);for(var E=0,C=D.length;Ethis.clickPixelThresh||D>this.clickPixelThresh){this.startDrag(this.startX,this.startY);}}if(this.dragThreshMet){if(C&&C.events.b4Drag){C.b4Drag(F);C.fireEvent("b4DragEvent",{e:F});}if(C&&C.events.drag){C.onDrag(F);C.fireEvent("dragEvent",{e:F});}if(C){this.fireEvents(F,false);}}this.stopEvent(F);}},fireEvents:function(W,M){var c=this.dragCurrent;if(!c||c.isLocked()||c.dragOnly){return;}var O=YAHOO.util.Event.getPageX(W),N=YAHOO.util.Event.getPageY(W),Q=new YAHOO.util.Point(O,N),K=c.getTargetCoord(Q.x,Q.y),F=c.getDragEl(),E=["out","over","drop","enter"],V=new YAHOO.util.Region(K.y,K.x+F.offsetWidth,K.y+F.offsetHeight,K.x),I=[],D={},L={},R=[],d={outEvts:[],overEvts:[],dropEvts:[],enterEvts:[]};for(var T in this.dragOvers){var f=this.dragOvers[T];if(!this.isTypeOfDD(f)){continue;}if(!this.isOverTarget(Q,f,this.mode,V)){d.outEvts.push(f);}I[T]=true;delete this.dragOvers[T];}for(var S in c.groups){if("string"!=typeof S){continue;}for(T in this.ids[S]){var G=this.ids[S][T];if(!this.isTypeOfDD(G)){continue;}if(G.isTarget&&!G.isLocked()&&G!=c){if(this.isOverTarget(Q,G,this.mode,V)){D[S]=true;if(M){d.dropEvts.push(G);}else{if(!I[G.id]){d.enterEvts.push(G);}else{d.overEvts.push(G);}this.dragOvers[G.id]=G;}}}}}this.interactionInfo={out:d.outEvts,enter:d.enterEvts,over:d.overEvts,drop:d.dropEvts,point:Q,draggedRegion:V,sourceRegion:this.locationCache[c.id],validDrop:M};for(var C in D){R.push(C);}if(M&&!d.dropEvts.length){this.interactionInfo.validDrop=false;if(c.events.invalidDrop){c.onInvalidDrop(W);c.fireEvent("invalidDropEvent",{e:W});}}for(T=0;T2000){}else{setTimeout(C._addListeners,10);if(document&&document.body){C._timeoutCount+=1;}}}},handleWasClicked:function(C,E){if(this.isHandle(E,C.id)){return true;}else{var D=C.parentNode;while(D){if(this.isHandle(E,D.id)){return true;}else{D=D.parentNode;}}}return false;}};}();YAHOO.util.DDM=YAHOO.util.DragDropMgr;YAHOO.util.DDM._addListeners();}(function(){var A=YAHOO.util.Event;var B=YAHOO.util.Dom;YAHOO.util.DragDrop=function(E,C,D){if(E){this.init(E,C,D);}};YAHOO.util.DragDrop.prototype={events:null,on:function(){this.subscribe.apply(this,arguments);},id:null,config:null,dragElId:null,handleElId:null,invalidHandleTypes:null,invalidHandleIds:null,invalidHandleClasses:null,startPageX:0,startPageY:0,groups:null,locked:false,lock:function(){this.locked=true;},unlock:function(){this.locked=false;},isTarget:true,padding:null,dragOnly:false,useShim:false,_domRef:null,__ygDragDrop:true,constrainX:false,constrainY:false,minX:0,maxX:0,minY:0,maxY:0,deltaX:0,deltaY:0,maintainOffset:false,xTicks:null,yTicks:null,primaryButtonOnly:true,available:false,hasOuterHandles:false,cursorIsOver:false,overlap:null,b4StartDrag:function(C,D){},startDrag:function(C,D){},b4Drag:function(C){},onDrag:function(C){},onDragEnter:function(C,D){},b4DragOver:function(C){},onDragOver:function(C,D){},b4DragOut:function(C){},onDragOut:function(C,D){},b4DragDrop:function(C){},onDragDrop:function(C,D){},onInvalidDrop:function(C){},b4EndDrag:function(C){},endDrag:function(C){},b4MouseDown:function(C){},onMouseDown:function(C){},onMouseUp:function(C){},onAvailable:function(){},getEl:function(){if(!this._domRef){this._domRef=B.get(this.id);}return this._domRef;},getDragEl:function(){return B.get(this.dragElId);},init:function(F,C,D){this.initTarget(F,C,D);A.on(this._domRef||this.id,"mousedown",this.handleMouseDown,this,true);for(var E in this.events){this.createEvent(E+"Event");}},initTarget:function(E,C,D){this.config=D||{};this.events={};this.DDM=YAHOO.util.DDM;this.groups={};if(typeof E!=="string"){this._domRef=E;E=B.generateId(E);}this.id=E;this.addToGroup((C)?C:"default");this.handleElId=E;A.onAvailable(E,this.handleOnAvailable,this,true);this.setDragElId(E);this.invalidHandleTypes={A:"A"};this.invalidHandleIds={};this.invalidHandleClasses=[];this.applyConfig();},applyConfig:function(){this.events={mouseDown:true,b4MouseDown:true,mouseUp:true,b4StartDrag:true,startDrag:true,b4EndDrag:true,endDrag:true,drag:true,b4Drag:true,invalidDrop:true,b4DragOut:true,dragOut:true,dragEnter:true,b4DragOver:true,dragOver:true,b4DragDrop:true,dragDrop:true};if(this.config.events){for(var C in this.config.events){if(this.config.events[C]===false){this.events[C]=false;}}}this.padding=this.config.padding||[0,0,0,0];this.isTarget=(this.config.isTarget!==false);this.maintainOffset=(this.config.maintainOffset);this.primaryButtonOnly=(this.config.primaryButtonOnly!==false);this.dragOnly=((this.config.dragOnly===true)?true:false);this.useShim=((this.config.useShim===true)?true:false);},handleOnAvailable:function(){this.available=true;this.resetConstraints();this.onAvailable();},setPadding:function(E,C,F,D){if(!C&&0!==C){this.padding=[E,E,E,E];}else{if(!F&&0!==F){this.padding=[E,C,E,C];}else{this.padding=[E,C,F,D];}}},setInitPosition:function(F,E){var G=this.getEl();if(!this.DDM.verifyEl(G)){if(G&&G.style&&(G.style.display=="none")){}else{}return;}var D=F||0;var C=E||0;var H=B.getXY(G);this.initPageX=H[0]-D;this.initPageY=H[1]-C;this.lastPageX=H[0];this.lastPageY=H[1];this.setStartPosition(H);},setStartPosition:function(D){var C=D||B.getXY(this.getEl());this.deltaSetXY=null;this.startPageX=C[0];this.startPageY=C[1];},addToGroup:function(C){this.groups[C]=true;this.DDM.regDragDrop(this,C);},removeFromGroup:function(C){if(this.groups[C]){delete this.groups[C];}this.DDM.removeDDFromGroup(this,C);},setDragElId:function(C){this.dragElId=C;},setHandleElId:function(C){if(typeof C!=="string"){C=B.generateId(C);}this.handleElId=C;this.DDM.regHandle(this.id,C);},setOuterHandleElId:function(C){if(typeof C!=="string"){C=B.generateId(C);}A.on(C,"mousedown",this.handleMouseDown,this,true);this.setHandleElId(C);this.hasOuterHandles=true;},unreg:function(){A.removeListener(this.id,"mousedown",this.handleMouseDown);this._domRef=null;this.DDM._remove(this);},isLocked:function(){return(this.DDM.isLocked()||this.locked);},handleMouseDown:function(J,I){var D=J.which||J.button;if(this.primaryButtonOnly&&D>1){return;}if(this.isLocked()){return;}var C=this.b4MouseDown(J),F=true;if(this.events.b4MouseDown){F=this.fireEvent("b4MouseDownEvent",J);}var E=this.onMouseDown(J),H=true;if(this.events.mouseDown){if(E===false){H=false;}else{H=this.fireEvent("mouseDownEvent",J);}}if((C===false)||(E===false)||(F===false)||(H===false)){return;}this.DDM.refreshCache(this.groups);var G=new YAHOO.util.Point(A.getPageX(J),A.getPageY(J));if(!this.hasOuterHandles&&!this.DDM.isOverTarget(G,this)){}else{if(this.clickValidator(J)){this.setStartPosition();this.DDM.handleMouseDown(J,this);this.DDM.stopEvent(J);}else{}}},clickValidator:function(D){var C=YAHOO.util.Event.getTarget(D);return(this.isValidHandleChild(C)&&(this.id==this.handleElId||this.DDM.handleWasClicked(C,this.id)));},getTargetCoord:function(E,D){var C=E-this.deltaX;var F=D-this.deltaY;if(this.constrainX){if(Cthis.maxX){C=this.maxX;}}if(this.constrainY){if(Fthis.maxY){F=this.maxY;}}C=this.getTick(C,this.xTicks);F=this.getTick(F,this.yTicks);return{x:C,y:F};},addInvalidHandleType:function(C){var D=C.toUpperCase();this.invalidHandleTypes[D]=D;},addInvalidHandleId:function(C){if(typeof C!=="string"){C=B.generateId(C);}this.invalidHandleIds[C]=C;},addInvalidHandleClass:function(C){this.invalidHandleClasses.push(C);},removeInvalidHandleType:function(C){var D=C.toUpperCase();delete this.invalidHandleTypes[D];},removeInvalidHandleId:function(C){if(typeof C!=="string"){C=B.generateId(C);}delete this.invalidHandleIds[C];},removeInvalidHandleClass:function(D){for(var E=0,C=this.invalidHandleClasses.length;E=this.minX;D=D-C){if(!E[D]){this.xTicks[this.xTicks.length]=D;E[D]=true;}}for(D=this.initPageX;D<=this.maxX;D=D+C){if(!E[D]){this.xTicks[this.xTicks.length]=D;E[D]=true;}}this.xTicks.sort(this.DDM.numericSort);},setYTicks:function(F,C){this.yTicks=[];this.yTickSize=C;var E={};for(var D=this.initPageY;D>=this.minY;D=D-C){if(!E[D]){this.yTicks[this.yTicks.length]=D;E[D]=true;}}for(D=this.initPageY;D<=this.maxY;D=D+C){if(!E[D]){this.yTicks[this.yTicks.length]=D;E[D]=true;}}this.yTicks.sort(this.DDM.numericSort);},setXConstraint:function(E,D,C){this.leftConstraint=parseInt(E,10);this.rightConstraint=parseInt(D,10);this.minX=this.initPageX-this.leftConstraint;this.maxX=this.initPageX+this.rightConstraint;if(C){this.setXTicks(this.initPageX,C);}this.constrainX=true;},clearConstraints:function(){this.constrainX=false;this.constrainY=false;this.clearTicks();},clearTicks:function(){this.xTicks=null;this.yTicks=null;this.xTickSize=0;this.yTickSize=0;},setYConstraint:function(C,E,D){this.topConstraint=parseInt(C,10);this.bottomConstraint=parseInt(E,10);this.minY=this.initPageY-this.topConstraint;this.maxY=this.initPageY+this.bottomConstraint;if(D){this.setYTicks(this.initPageY,D);}this.constrainY=true;},resetConstraints:function(){if(this.initPageX||this.initPageX===0){var D=(this.maintainOffset)?this.lastPageX-this.initPageX:0;var C=(this.maintainOffset)?this.lastPageY-this.initPageY:0;this.setInitPosition(D,C);}else{this.setInitPosition();}if(this.constrainX){this.setXConstraint(this.leftConstraint,this.rightConstraint,this.xTickSize);}if(this.constrainY){this.setYConstraint(this.topConstraint,this.bottomConstraint,this.yTickSize);}},getTick:function(I,F){if(!F){return I;}else{if(F[0]>=I){return F[0];}else{for(var D=0,C=F.length;D=I){var H=I-F[D];var G=F[E]-I;return(G>H)?F[D]:F[E];}}return F[F.length-1];}}},toString:function(){return("DragDrop "+this.id);}};YAHOO.augment(YAHOO.util.DragDrop,YAHOO.util.EventProvider);})();YAHOO.util.DD=function(C,A,B){if(C){this.init(C,A,B);}};YAHOO.extend(YAHOO.util.DD,YAHOO.util.DragDrop,{scroll:true,autoOffset:function(C,B){var A=C-this.startPageX;var D=B-this.startPageY;this.setDelta(A,D);},setDelta:function(B,A){this.deltaX=B;this.deltaY=A;},setDragElPos:function(C,B){var A=this.getDragEl();this.alignElWithMouse(A,C,B);},alignElWithMouse:function(C,G,F){var E=this.getTargetCoord(G,F);if(!this.deltaSetXY){var H=[E.x,E.y];YAHOO.util.Dom.setXY(C,H);var D=parseInt(YAHOO.util.Dom.getStyle(C,"left"),10);var B=parseInt(YAHOO.util.Dom.getStyle(C,"top"),10);this.deltaSetXY=[D-E.x,B-E.y];}else{YAHOO.util.Dom.setStyle(C,"left",(E.x+this.deltaSetXY[0])+"px");YAHOO.util.Dom.setStyle(C,"top",(E.y+this.deltaSetXY[1])+"px");}this.cachePosition(E.x,E.y);var A=this;setTimeout(function(){A.autoScroll.call(A,E.x,E.y,C.offsetHeight,C.offsetWidth);},0);},cachePosition:function(B,A){if(B){this.lastPageX=B;this.lastPageY=A;}else{var C=YAHOO.util.Dom.getXY(this.getEl());this.lastPageX=C[0];this.lastPageY=C[1];}},autoScroll:function(J,I,E,K){if(this.scroll){var L=this.DDM.getClientHeight();var B=this.DDM.getClientWidth();var N=this.DDM.getScrollTop();var D=this.DDM.getScrollLeft();var H=E+I;var M=K+J;var G=(L+N-I-this.deltaY);var F=(B+D-J-this.deltaX);var C=40;var A=(document.all)?80:30;if(H>L&&G0&&I-NB&&F0&&J-Dthis.clickPixelThresh||D>this.clickPixelThresh){this.startDrag(this.startX,this.startY);}}if(this.dragThreshMet){if(C&&C.events.b4Drag){C.b4Drag(F);C.fireEvent("b4DragEvent",{e:F});}if(C&&C.events.drag){C.onDrag(F);C.fireEvent("dragEvent",{e:F});}if(C){this.fireEvents(F,false);}}this.stopEvent(F);}},fireEvents:function(W,M){var c=this.dragCurrent;if(!c||c.isLocked()||c.dragOnly){return;}var O=YAHOO.util.Event.getPageX(W),N=YAHOO.util.Event.getPageY(W),Q=new YAHOO.util.Point(O,N),K=c.getTargetCoord(Q.x,Q.y),F=c.getDragEl(),E=["out","over","drop","enter"],V=new YAHOO.util.Region(K.y,K.x+F.offsetWidth,K.y+F.offsetHeight,K.x),I=[],D={},L={},R=[],d={outEvts:[],overEvts:[],dropEvts:[],enterEvts:[]};for(var T in this.dragOvers){var f=this.dragOvers[T];if(!this.isTypeOfDD(f)){continue;}if(!this.isOverTarget(Q,f,this.mode,V)){d.outEvts.push(f);}I[T]=true;delete this.dragOvers[T];}for(var S in c.groups){if("string"!=typeof S){continue;}for(T in this.ids[S]){var G=this.ids[S][T];if(!this.isTypeOfDD(G)){continue;}if(G.isTarget&&!G.isLocked()&&G!=c){if(this.isOverTarget(Q,G,this.mode,V)){D[S]=true;if(M){d.dropEvts.push(G);}else{if(!I[G.id]){d.enterEvts.push(G);}else{d.overEvts.push(G);}this.dragOvers[G.id]=G;}}}}}this.interactionInfo={out:d.outEvts,enter:d.enterEvts,over:d.overEvts,drop:d.dropEvts,point:Q,draggedRegion:V,sourceRegion:this.locationCache[c.id],validDrop:M};for(var C in D){R.push(C);}if(M&&!d.dropEvts.length){this.interactionInfo.validDrop=false;if(c.events.invalidDrop){c.onInvalidDrop(W);c.fireEvent("invalidDropEvent",{e:W});}}for(T=0;T2000){}else{setTimeout(C._addListeners,10);if(document&&document.body){C._timeoutCount+=1;}}}},handleWasClicked:function(C,E){if(this.isHandle(E,C.id)){return true;}else{var D=C.parentNode;while(D){if(this.isHandle(E,D.id)){return true;}else{D=D.parentNode;}}}return false;}};}();YAHOO.util.DDM=YAHOO.util.DragDropMgr;YAHOO.util.DDM._addListeners();}(function(){var A=YAHOO.util.Event;var B=YAHOO.util.Dom;YAHOO.util.DragDrop=function(E,C,D){if(E){this.init(E,C,D);}};YAHOO.util.DragDrop.prototype={events:null,on:function(){this.subscribe.apply(this,arguments);},id:null,config:null,dragElId:null,handleElId:null,invalidHandleTypes:null,invalidHandleIds:null,invalidHandleClasses:null,startPageX:0,startPageY:0,groups:null,locked:false,lock:function(){this.locked=true;},unlock:function(){this.locked=false;},isTarget:true,padding:null,dragOnly:false,useShim:false,_domRef:null,__ygDragDrop:true,constrainX:false,constrainY:false,minX:0,maxX:0,minY:0,maxY:0,deltaX:0,deltaY:0,maintainOffset:false,xTicks:null,yTicks:null,primaryButtonOnly:true,available:false,hasOuterHandles:false,cursorIsOver:false,overlap:null,b4StartDrag:function(C,D){},startDrag:function(C,D){},b4Drag:function(C){},onDrag:function(C){},onDragEnter:function(C,D){},b4DragOver:function(C){},onDragOver:function(C,D){},b4DragOut:function(C){},onDragOut:function(C,D){},b4DragDrop:function(C){},onDragDrop:function(C,D){},onInvalidDrop:function(C){},b4EndDrag:function(C){},endDrag:function(C){},b4MouseDown:function(C){},onMouseDown:function(C){},onMouseUp:function(C){},onAvailable:function(){},getEl:function(){if(!this._domRef){this._domRef=B.get(this.id);}return this._domRef;},getDragEl:function(){return B.get(this.dragElId);},init:function(F,C,D){this.initTarget(F,C,D);A.on(this._domRef||this.id,"mousedown",this.handleMouseDown,this,true);for(var E in this.events){this.createEvent(E+"Event");}},initTarget:function(E,C,D){this.config=D||{};this.events={};this.DDM=YAHOO.util.DDM;this.groups={};if(typeof E!=="string"){this._domRef=E;E=B.generateId(E);}this.id=E;this.addToGroup((C)?C:"default");this.handleElId=E;A.onAvailable(E,this.handleOnAvailable,this,true);this.setDragElId(E);this.invalidHandleTypes={A:"A",SELECT:"SELECT"};this.invalidHandleIds={};this.invalidHandleClasses=[];this.applyConfig();},applyConfig:function(){this.events={mouseDown:true,b4MouseDown:true,mouseUp:true,b4StartDrag:true,startDrag:true,b4EndDrag:true,endDrag:true,drag:true,b4Drag:true,invalidDrop:true,b4DragOut:true,dragOut:true,dragEnter:true,b4DragOver:true,dragOver:true,b4DragDrop:true,dragDrop:true};if(this.config.events){for(var C in this.config.events){if(this.config.events[C]===false){this.events[C]=false;}}}this.padding=this.config.padding||[0,0,0,0];this.isTarget=(this.config.isTarget!==false);this.maintainOffset=(this.config.maintainOffset);this.primaryButtonOnly=(this.config.primaryButtonOnly!==false);this.dragOnly=((this.config.dragOnly===true)?true:false);this.useShim=((this.config.useShim===true)?true:false);},handleOnAvailable:function(){this.available=true;this.resetConstraints();this.onAvailable();},setPadding:function(E,C,F,D){if(!C&&0!==C){this.padding=[E,E,E,E];}else{if(!F&&0!==F){this.padding=[E,C,E,C];}else{this.padding=[E,C,F,D];}}},setInitPosition:function(F,E){var G=this.getEl();if(!this.DDM.verifyEl(G)){if(G&&G.style&&(G.style.display=="none")){}else{}return;}var D=F||0;var C=E||0;var H=B.getXY(G);this.initPageX=H[0]-D;this.initPageY=H[1]-C;this.lastPageX=H[0];this.lastPageY=H[1];this.setStartPosition(H);},setStartPosition:function(D){var C=D||B.getXY(this.getEl());this.deltaSetXY=null;this.startPageX=C[0];this.startPageY=C[1];},addToGroup:function(C){this.groups[C]=true;this.DDM.regDragDrop(this,C);},removeFromGroup:function(C){if(this.groups[C]){delete this.groups[C];}this.DDM.removeDDFromGroup(this,C);},setDragElId:function(C){this.dragElId=C;},setHandleElId:function(C){if(typeof C!=="string"){C=B.generateId(C);}this.handleElId=C;this.DDM.regHandle(this.id,C);},setOuterHandleElId:function(C){if(typeof C!=="string"){C=B.generateId(C);}A.on(C,"mousedown",this.handleMouseDown,this,true);this.setHandleElId(C);this.hasOuterHandles=true;},unreg:function(){A.removeListener(this.id,"mousedown",this.handleMouseDown);this._domRef=null;this.DDM._remove(this);},isLocked:function(){return(this.DDM.isLocked()||this.locked);},handleMouseDown:function(J,I){var D=J.which||J.button;if(this.primaryButtonOnly&&D>1){return;}if(this.isLocked()){return;}var C=this.b4MouseDown(J),F=true;if(this.events.b4MouseDown){F=this.fireEvent("b4MouseDownEvent",J);}var E=this.onMouseDown(J),H=true;if(this.events.mouseDown){if(E===false){H=false;}else{H=this.fireEvent("mouseDownEvent",J);}}if((C===false)||(E===false)||(F===false)||(H===false)){return;}this.DDM.refreshCache(this.groups);var G=new YAHOO.util.Point(A.getPageX(J),A.getPageY(J));if(!this.hasOuterHandles&&!this.DDM.isOverTarget(G,this)){}else{if(this.clickValidator(J)){this.setStartPosition();this.DDM.handleMouseDown(J,this);this.DDM.stopEvent(J);}else{}}},clickValidator:function(D){var C=YAHOO.util.Event.getTarget(D);return(this.isValidHandleChild(C)&&(this.id==this.handleElId||this.DDM.handleWasClicked(C,this.id)));},getTargetCoord:function(E,D){var C=E-this.deltaX;var F=D-this.deltaY;if(this.constrainX){if(Cthis.maxX){C=this.maxX;}}if(this.constrainY){if(Fthis.maxY){F=this.maxY;}}C=this.getTick(C,this.xTicks);F=this.getTick(F,this.yTicks);return{x:C,y:F};},addInvalidHandleType:function(C){var D=C.toUpperCase();this.invalidHandleTypes[D]=D;},addInvalidHandleId:function(C){if(typeof C!=="string"){C=B.generateId(C);}this.invalidHandleIds[C]=C;},addInvalidHandleClass:function(C){this.invalidHandleClasses.push(C);},removeInvalidHandleType:function(C){var D=C.toUpperCase();delete this.invalidHandleTypes[D];},removeInvalidHandleId:function(C){if(typeof C!=="string"){C=B.generateId(C);}delete this.invalidHandleIds[C];},removeInvalidHandleClass:function(D){for(var E=0,C=this.invalidHandleClasses.length;E=this.minX;D=D-C){if(!E[D]){this.xTicks[this.xTicks.length]=D;E[D]=true;}}for(D=this.initPageX;D<=this.maxX;D=D+C){if(!E[D]){this.xTicks[this.xTicks.length]=D;E[D]=true;}}this.xTicks.sort(this.DDM.numericSort);},setYTicks:function(F,C){this.yTicks=[];this.yTickSize=C;var E={};for(var D=this.initPageY;D>=this.minY;D=D-C){if(!E[D]){this.yTicks[this.yTicks.length]=D;E[D]=true;}}for(D=this.initPageY;D<=this.maxY;D=D+C){if(!E[D]){this.yTicks[this.yTicks.length]=D;E[D]=true;}}this.yTicks.sort(this.DDM.numericSort);},setXConstraint:function(E,D,C){this.leftConstraint=parseInt(E,10);this.rightConstraint=parseInt(D,10);this.minX=this.initPageX-this.leftConstraint;this.maxX=this.initPageX+this.rightConstraint;if(C){this.setXTicks(this.initPageX,C);}this.constrainX=true;},clearConstraints:function(){this.constrainX=false;this.constrainY=false;this.clearTicks();},clearTicks:function(){this.xTicks=null;this.yTicks=null;this.xTickSize=0;this.yTickSize=0;},setYConstraint:function(C,E,D){this.topConstraint=parseInt(C,10);this.bottomConstraint=parseInt(E,10);this.minY=this.initPageY-this.topConstraint;this.maxY=this.initPageY+this.bottomConstraint;if(D){this.setYTicks(this.initPageY,D);}this.constrainY=true;},resetConstraints:function(){if(this.initPageX||this.initPageX===0){var D=(this.maintainOffset)?this.lastPageX-this.initPageX:0;var C=(this.maintainOffset)?this.lastPageY-this.initPageY:0;this.setInitPosition(D,C);}else{this.setInitPosition();}if(this.constrainX){this.setXConstraint(this.leftConstraint,this.rightConstraint,this.xTickSize);}if(this.constrainY){this.setYConstraint(this.topConstraint,this.bottomConstraint,this.yTickSize);}},getTick:function(I,F){if(!F){return I;}else{if(F[0]>=I){return F[0];}else{for(var D=0,C=F.length;D=I){var H=I-F[D];var G=F[E]-I;return(G>H)?F[D]:F[E];}}return F[F.length-1];}}},toString:function(){return("DragDrop "+this.id);}};YAHOO.augment(YAHOO.util.DragDrop,YAHOO.util.EventProvider);})();YAHOO.util.DD=function(C,A,B){if(C){this.init(C,A,B);}};YAHOO.extend(YAHOO.util.DD,YAHOO.util.DragDrop,{scroll:true,autoOffset:function(C,B){var A=C-this.startPageX;var D=B-this.startPageY;this.setDelta(A,D);},setDelta:function(B,A){this.deltaX=B;this.deltaY=A;},setDragElPos:function(C,B){var A=this.getDragEl();this.alignElWithMouse(A,C,B);},alignElWithMouse:function(C,G,F){var E=this.getTargetCoord(G,F);if(!this.deltaSetXY){var H=[E.x,E.y];YAHOO.util.Dom.setXY(C,H);var D=parseInt(YAHOO.util.Dom.getStyle(C,"left"),10);var B=parseInt(YAHOO.util.Dom.getStyle(C,"top"),10);this.deltaSetXY=[D-E.x,B-E.y];}else{YAHOO.util.Dom.setStyle(C,"left",(E.x+this.deltaSetXY[0])+"px");YAHOO.util.Dom.setStyle(C,"top",(E.y+this.deltaSetXY[1])+"px");}this.cachePosition(E.x,E.y);var A=this;setTimeout(function(){A.autoScroll.call(A,E.x,E.y,C.offsetHeight,C.offsetWidth);},0);},cachePosition:function(B,A){if(B){this.lastPageX=B;this.lastPageY=A;}else{var C=YAHOO.util.Dom.getXY(this.getEl());this.lastPageX=C[0];this.lastPageY=C[1];}},autoScroll:function(J,I,E,K){if(this.scroll){var L=this.DDM.getClientHeight();var B=this.DDM.getClientWidth();var N=this.DDM.getScrollTop();var D=this.DDM.getScrollLeft();var H=E+I;var M=K+J;var G=(L+N-I-this.deltaY);var F=(B+D-J-this.deltaX);var C=40;var A=(document.all)?80:30;if(H>L&&G0&&I-NB&&F0&&J-D0){g=f-1;do{d=e.subscribers[g];if(d&&d.obj==j&&d.fn==h){return true;}}while(g--);}return false;};YAHOO.lang.augmentProto(a,YAHOO.util.EventProvider);}());(function(){YAHOO.widget.Module=function(r,q){if(r){this.init(r,q);}else{}};var f=YAHOO.util.Dom,d=YAHOO.util.Config,n=YAHOO.util.Event,m=YAHOO.util.CustomEvent,g=YAHOO.widget.Module,i=YAHOO.env.ua,h,p,o,e,a={"BEFORE_INIT":"beforeInit","INIT":"init","APPEND":"append","BEFORE_RENDER":"beforeRender","RENDER":"render","CHANGE_HEADER":"changeHeader","CHANGE_BODY":"changeBody","CHANGE_FOOTER":"changeFooter","CHANGE_CONTENT":"changeContent","DESTROY":"destroy","BEFORE_SHOW":"beforeShow","SHOW":"show","BEFORE_HIDE":"beforeHide","HIDE":"hide"},j={"VISIBLE":{key:"visible",value:true,validator:YAHOO.lang.isBoolean},"EFFECT":{key:"effect",suppressEvent:true,supercedes:["visible"]},"MONITOR_RESIZE":{key:"monitorresize",value:true},"APPEND_TO_DOCUMENT_BODY":{key:"appendtodocumentbody",value:false}};g.IMG_ROOT=null;g.IMG_ROOT_SSL=null;g.CSS_MODULE="yui-module";g.CSS_HEADER="hd";g.CSS_BODY="bd";g.CSS_FOOTER="ft";g.RESIZE_MONITOR_SECURE_URL="javascript:false;";g.RESIZE_MONITOR_BUFFER=1;g.textResizeEvent=new m("textResize");g.forceDocumentRedraw=function(){var q=document.documentElement;if(q){q.className+=" ";q.className=YAHOO.lang.trim(q.className);}};function l(){if(!h){h=document.createElement("div");h.innerHTML=('
'+'
');p=h.firstChild;o=p.nextSibling;e=o.nextSibling;}return h;}function k(){if(!p){l();}return(p.cloneNode(false));}function b(){if(!o){l();}return(o.cloneNode(false));}function c(){if(!e){l();}return(e.cloneNode(false));}g.prototype={constructor:g,element:null,header:null,body:null,footer:null,id:null,imageRoot:g.IMG_ROOT,initEvents:function(){var q=m.LIST;this.beforeInitEvent=this.createEvent(a.BEFORE_INIT);this.beforeInitEvent.signature=q;this.initEvent=this.createEvent(a.INIT);this.initEvent.signature=q;this.appendEvent=this.createEvent(a.APPEND);this.appendEvent.signature=q;this.beforeRenderEvent=this.createEvent(a.BEFORE_RENDER);this.beforeRenderEvent.signature=q;this.renderEvent=this.createEvent(a.RENDER);this.renderEvent.signature=q;this.changeHeaderEvent=this.createEvent(a.CHANGE_HEADER);this.changeHeaderEvent.signature=q;this.changeBodyEvent=this.createEvent(a.CHANGE_BODY);this.changeBodyEvent.signature=q;this.changeFooterEvent=this.createEvent(a.CHANGE_FOOTER);this.changeFooterEvent.signature=q;this.changeContentEvent=this.createEvent(a.CHANGE_CONTENT);this.changeContentEvent.signature=q;this.destroyEvent=this.createEvent(a.DESTROY);this.destroyEvent.signature=q;this.beforeShowEvent=this.createEvent(a.BEFORE_SHOW);this.beforeShowEvent.signature=q;this.showEvent=this.createEvent(a.SHOW);this.showEvent.signature=q;this.beforeHideEvent=this.createEvent(a.BEFORE_HIDE);this.beforeHideEvent.signature=q;this.hideEvent=this.createEvent(a.HIDE);this.hideEvent.signature=q;},platform:function(){var q=navigator.userAgent.toLowerCase();if(q.indexOf("windows")!=-1||q.indexOf("win32")!=-1){return"windows";}else{if(q.indexOf("macintosh")!=-1){return"mac";}else{return false;}}}(),browser:function(){var q=navigator.userAgent.toLowerCase();if(q.indexOf("opera")!=-1){return"opera";}else{if(q.indexOf("msie 7")!=-1){return"ie7";}else{if(q.indexOf("msie")!=-1){return"ie";}else{if(q.indexOf("safari")!=-1){return"safari";}else{if(q.indexOf("gecko")!=-1){return"gecko";}else{return false;}}}}}}(),isSecure:function(){if(window.location.href.toLowerCase().indexOf("https")===0){return true;}else{return false;}}(),initDefaultConfig:function(){this.cfg.addProperty(j.VISIBLE.key,{handler:this.configVisible,value:j.VISIBLE.value,validator:j.VISIBLE.validator});this.cfg.addProperty(j.EFFECT.key,{handler:this.configEffect,suppressEvent:j.EFFECT.suppressEvent,supercedes:j.EFFECT.supercedes});this.cfg.addProperty(j.MONITOR_RESIZE.key,{handler:this.configMonitorResize,value:j.MONITOR_RESIZE.value});this.cfg.addProperty(j.APPEND_TO_DOCUMENT_BODY.key,{value:j.APPEND_TO_DOCUMENT_BODY.value});},init:function(v,u){var s,w;this.initEvents();this.beforeInitEvent.fire(g);this.cfg=new d(this);if(this.isSecure){this.imageRoot=g.IMG_ROOT_SSL;}if(typeof v=="string"){s=v;v=document.getElementById(v);if(!v){v=(l()).cloneNode(false);v.id=s;}}this.id=f.generateId(v);this.element=v;w=this.element.firstChild;if(w){var r=false,q=false,t=false;do{if(1==w.nodeType){if(!r&&f.hasClass(w,g.CSS_HEADER)){this.header=w;r=true;}else{if(!q&&f.hasClass(w,g.CSS_BODY)){this.body=w;q=true;}else{if(!t&&f.hasClass(w,g.CSS_FOOTER)){this.footer=w;t=true;}}}}}while((w=w.nextSibling));}this.initDefaultConfig();f.addClass(this.element,g.CSS_MODULE);if(u){this.cfg.applyConfig(u,true);}if(!d.alreadySubscribed(this.renderEvent,this.cfg.fireQueue,this.cfg)){this.renderEvent.subscribe(this.cfg.fireQueue,this.cfg,true);}this.initEvent.fire(g);},initResizeMonitor:function(){var r=(i.gecko&&this.platform=="windows");if(r){var q=this;setTimeout(function(){q._initResizeMonitor();},0);}else{this._initResizeMonitor();}},_initResizeMonitor:function(){var q,s,u;function w(){g.textResizeEvent.fire();}if(!i.opera){s=f.get("_yuiResizeMonitor");var v=this._supportsCWResize();if(!s){s=document.createElement("iframe");if(this.isSecure&&g.RESIZE_MONITOR_SECURE_URL&&i.ie){s.src=g.RESIZE_MONITOR_SECURE_URL;}if(!v){u=["'+data.responseText;subpanelContents[theDiv]['newDiv'].id=divName;subpanelContents[theDiv]['newDiv'].className='quickcreate';var button_elements=YAHOO.util.Selector.query('td.buttons',theDiv,false);YAHOO.util.Dom.setStyle(button_elements,'display','none');button_elements=YAHOO.util.Selector.query('ul.SugarActionMenu',theDiv,false);YAHOO.util.Dom.setStyle(button_elements,'display','none');theDivObj.parentNode.insertBefore(subpanelContents[theDiv]['newDiv'],theDivObj);currentPanelDiv=divName;if(!SUGAR.subpanelUtils.dataToDOMAvail){SUGAR.util.evalScript(data.responseText);} +function success(data){var theDivObj=document.getElementById(theDiv),divName=theDiv+'_newDiv',form_el;SUGAR.subpanelUtils.dataToDOMAvail=false;if(typeof currentPanelDiv!='undefined'&¤tPanelDiv!=null){var button_elements=YAHOO.util.Selector.query('td.buttons',currentPanelDiv,false);YAHOO.util.Dom.setStyle(button_elements,'display','');} +SUGAR.subpanelUtils.removeSubPanel();subpanelContents[theDiv]={};subpanelContents[theDiv]['list']=theDivObj;subpanelContents[theDiv]['newDiv']=document.createElement('div');subpanelContents[theDiv]['newDiv'].innerHTML=''+data.responseText;subpanelContents[theDiv]['newDiv'].id=divName;subpanelContents[theDiv]['newDiv'].className='quickcreate';var button_elements=YAHOO.util.Selector.query('td.buttons',theDiv,false);YAHOO.util.Dom.setStyle(button_elements,'display','none');button_elements=YAHOO.util.Selector.query('ul.SugarActionMenu',theDiv,false);YAHOO.util.Dom.setStyle(button_elements,'display','none');theDivObj.parentNode.insertBefore(subpanelContents[theDiv]['newDiv'],theDivObj);currentPanelDiv=divName;if(!SUGAR.subpanelUtils.dataToDOMAvail){SUGAR.util.evalScript(data.responseText);} form_el=YAHOO.util.Selector.query('form',divName,true);YAHOO.util.Dom.setStyle(form_el,'padding-bottom','10px');subpanelLocked[theDiv]=false;setTimeout("enableQS(false)",500);ajaxStatus.hideStatus();} if(subpanelLocked[theDiv]===true){return false;} subpanelLocked[theDiv]=true;loadingStr=loadingStr||SUGAR.language.get('app_strings','LBL_LOADING');ajaxStatus.showStatus(loadingStr);YAHOO.util.Connect.setForm(theForm);YAHOO.util.Connect.asyncRequest('POST','index.php',{success:success,failure:success});return false;},cancelCreate:function(buttonName,cancelCallback){var element=document.getElementById(buttonName),theForm=element.form,confirmMsg=onUnloadEditView(theForm);do{element=element.parentNode;}while(element.className!='quickcreate'&&element.parentNode);var theDiv=element.id.substr(0,element.id.length-7);if(typeof(subpanelContents[theDiv])=='undefined') diff --git a/include/SugarCharts/Jit/JitReports.php b/include/SugarCharts/Jit/JitReports.php index 872dfd84..b0d7a4aa 100644 --- a/include/SugarCharts/Jit/JitReports.php +++ b/include/SugarCharts/Jit/JitReports.php @@ -151,6 +151,13 @@ class JitReports extends Jit { if ((isset($dataset[$total]) && $total != $dataset[$total]['numerical_value']) || !array_key_exists($key, $dataset)){ $data .= $this->processReportData($dataset, 4, $first); } + else if(count($this->data_set) == 1 && $first){ + foreach ($dataset as $k=>$v){ + if(isset($v['numerical_value'])) { + $data .= $this->processDataGroup(4, $k, $v['numerical_value'], $v['numerical_value'], ''); + } + } + } if (!$first){ $not_processed = array_diff($this->super_set, $this->processed_report_keys); @@ -162,6 +169,7 @@ class JitReports extends Jit { } } } + $data .= $this->tab('', 3); $data .= $this->tab('', 2); $this->processed_report_keys = array(); diff --git a/include/SugarCharts/Jit/tpls/chart.tpl b/include/SugarCharts/Jit/tpls/chart.tpl index 52a1a103..066a41b5 100644 --- a/include/SugarCharts/Jit/tpls/chart.tpl +++ b/include/SugarCharts/Jit/tpls/chart.tpl @@ -57,7 +57,15 @@ loadCustomChartForReports = function(){ldelim} loadSugarChart('{$chartId}','{$filename}',css,chartConfig); {rdelim}; - loadCustomChartForReports(); + // bug51857: fixed issue on report running in a loop when clicking on hide chart then run report in IE8 only + // When hide chart button is clicked, the value of element showHideChartButton is set to $showchart. + // Don't need to call the loadCustomChartForReports() function when hiding the chart. + {if !isset($showchart)} + loadCustomChartForReports(); + {else} + if (document.getElementById('showHideChartButton').value != '{$showchart}') + loadCustomChartForReports(); + {/if} {literal} } ); diff --git a/include/SugarCharts/JsChart.php b/include/SugarCharts/JsChart.php index 04b62eb2..aa29d113 100644 --- a/include/SugarCharts/JsChart.php +++ b/include/SugarCharts/JsChart.php @@ -101,7 +101,9 @@ class JsChart extends SugarChart { $this->saveJsonFile($json); $this->ss->assign("chartId", $this->chartId); $this->ss->assign("filename", $this->jsonFilename); - + global $mod_strings; + if (isset($mod_strings['LBL_REPORT_SHOW_CHART'])) + $this->ss->assign("showchart", $mod_strings['LBL_REPORT_SHOW_CHART']); $dimensions = $this->getChartDimensions($xmlStr); $this->ss->assign("width", $dimensions['width']); diff --git a/include/SugarFields/Fields/Collection/SugarFieldCollection.js b/include/SugarFields/Fields/Collection/SugarFieldCollection.js index 82e437ac..f381e1fb 100644 --- a/include/SugarFields/Fields/Collection/SugarFieldCollection.js +++ b/include/SugarFields/Fields/Collection/SugarFieldCollection.js @@ -68,12 +68,11 @@ return isFirstFieldEmpty;},show_arrow_label:function(show){var more_div=document return false;}};SUGAR.collection.safe_clone=function(e,recursive) {if(e.nodeName=="#text") {return document.createTextNode(e.data);} -if(!e.tagName)return false;var newNode=document.createElement(e.tagName);if(!newNode)return false;var properties=['class','style','name','type','valign','border','width','height','top','bottom','left','right','scope','row','columns','src','href','className','align','nowrap'];if(SUGAR.isIE7&&e.tagName.toLowerCase()=='input') -{var properties=['class','style','name','type','valign','border','width','top','bottom','left','right','scope','row','columns','src','href','className','align','nowrap'];}else{var properties=['class','style','name','type','valign','border','width','height','top','bottom','left','right','scope','row','columns','src','href','className','align','nowrap'];} +if(!e.tagName)return false;var newNode=document.createElement(e.tagName);if(!newNode)return false;var properties=['id','class','style','name','type','valign','border','width','height','top','bottom','left','right','scope','row','columns','src','href','className','align','nowrap'];if(SUGAR.isIE7&&e.tagName.toLowerCase()=='input') +{var properties=['id','class','style','name','type','valign','border','width','top','bottom','left','right','scope','row','columns','src','href','className','align','nowrap'];} for(var i in properties) {if(e[properties[i]]) -{if(((properties[i]!='style'&&properties[i]!='type')||!SUGAR.isIE)&&(properties[i]!='href'||e.tagName=='a'||e.tagName=='iframe')) -{newNode[properties[i]]=e[properties[i]];}}} +{if((properties[i]!='style'||!SUGAR.isIE)&&(properties[i]!='href'||e.tagName=='a'||e.tagName=='iframe')){if(properties[i]=="type"){newNode.setAttribute(properties[i],e[properties[i]]);}else{newNode[properties[i]]=e[properties[i]];}}}} if(recursive) {for(var i in e.childNodes) {if(e.childNodes[i].nodeName&&(!e.className||e.className!="yui-ac-container")) diff --git a/include/SugarFields/Fields/Datetime/DetailView.tpl b/include/SugarFields/Fields/Datetime/DetailView.tpl new file mode 100644 index 00000000..7b6673e3 --- /dev/null +++ b/include/SugarFields/Fields/Datetime/DetailView.tpl @@ -0,0 +1,59 @@ +{* +/********************************************************************************* + * SugarCRM Community Edition is a customer relationship management program developed by + * SugarCRM, Inc. Copyright (C) 2004-2012 SugarCRM Inc. + * + * This program is free software; you can redistribute it and/or modify it under + * the terms of the GNU Affero General Public License version 3 as published by the + * Free Software Foundation with the addition of the following permission added + * to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED WORK + * IN WHICH THE COPYRIGHT IS OWNED BY SUGARCRM, SUGARCRM DISCLAIMS THE WARRANTY + * OF NON INFRINGEMENT OF THIRD PARTY RIGHTS. + * + * This program 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 along with + * this program; if not, see http://www.gnu.org/licenses or write to the Free + * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA + * 02110-1301 USA. + * + * You can contact SugarCRM, Inc. headquarters at 10050 North Wolfe Road, + * SW2-130, Cupertino, CA 95014, USA. or at email address contact@sugarcrm.com. + * + * The interactive user interfaces in modified source and object code versions + * of this program must display Appropriate Legal Notices, as required under + * Section 5 of the GNU Affero General Public License version 3. + * + * In accordance with Section 7(b) of the GNU Affero General Public License version 3, + * these Appropriate Legal Notices must retain the display of the "Powered by + * SugarCRM" logo. If the display of the logo is not reasonably feasible for + * technical reasons, the Appropriate Legal Notices must display the words + * "Powered by SugarCRM". + ********************************************************************************/ + + +*} +{* + check to see if 'date_formatted_value' has been added to the vardefs, and use it if it has, otherwise use the normal sugarvar function +*} +{{if !empty($vardef.date_formatted_value) }} + {assign var="value" value={{$vardef.date_formatted_value}} } +{{else}} + {if strlen({{sugarvar key='value' string=true}}) <= 0} + {assign var="value" value={{sugarvar key='default_value' string=true}} } + {else} + {assign var="value" value={{sugarvar key='value' string=true}} } + {/if} +{{/if}} + + + +{$value} +{{if !empty($displayParams.enableConnectors)}} +{if !empty($value)} +{{sugarvar_connector view='DetailView'}} +{/if} +{{/if}} \ No newline at end of file diff --git a/include/SugarFields/Fields/Datetime/SugarFieldDatetime.php b/include/SugarFields/Fields/Datetime/SugarFieldDatetime.php index f2429423..27821181 100644 --- a/include/SugarFields/Fields/Datetime/SugarFieldDatetime.php +++ b/include/SugarFields/Fields/Datetime/SugarFieldDatetime.php @@ -188,4 +188,22 @@ class SugarFieldDatetime extends SugarFieldBase { } return $date->asDb(); } + + + function getDetailViewSmarty($parentFieldArray, $vardef, $displayParams, $tabindex) { + global $timedate,$current_user; + + //check to see if the date is in the proper format + $user_dateFormat = $timedate->get_date_format(); + if(isset($vardef['value']) && !$timedate->check_matching_format( $vardef['value'],$user_dateFormat)){ + + //date is not in proper user format, so get the SugarDateTiemObject and inject the vardef with a new element + $sdt = $timedate->fromString($vardef['value'],$current_user); + + //the new 'date_formatted_value' array element will be used in include/SugarFields/Fields/Datetime/DetailView.tpl if it exists + $vardef['date_formatted_value'] = $timedate->asUserDate($sdt,$current_user); + } + + return $this->getSmartyView($parentFieldArray, $vardef, $displayParams, $tabindex, 'DetailView'); + } } diff --git a/include/SugarFields/Fields/File/EditView.tpl b/include/SugarFields/Fields/File/EditView.tpl index 6ded6f28..b95f7233 100644 --- a/include/SugarFields/Fields/File/EditView.tpl +++ b/include/SugarFields/Fields/File/EditView.tpl @@ -84,7 +84,7 @@ {/if} {{/if}} {if !$noChange} - + {/if}
{if !$noChange} diff --git a/include/SugarFields/Fields/Link/ListView.tpl b/include/SugarFields/Fields/Link/ListView.tpl index 5a45305b..4c322a41 100644 --- a/include/SugarFields/Fields/Link/ListView.tpl +++ b/include/SugarFields/Fields/Link/ListView.tpl @@ -36,4 +36,9 @@ *} {capture name=getLink assign=link}{sugar_fetch object=$parentFieldArray key=$col}{/capture} +{if $vardef.gen && $vardef.default && $link} + {capture name=getDefault assign=default}{if is_string($vardef.default)}{$vardef.default}{else}{$link}{/if}{/capture} + {sugar_replace_vars subject=$default use_curly=true assign='link' fields=$parentFieldArray} +{/if} + {$link} diff --git a/include/SugarHtml/SugarHtml.php b/include/SugarHtml/SugarHtml.php index 014d0b64..c2165c85 100644 --- a/include/SugarHtml/SugarHtml.php +++ b/include/SugarHtml/SugarHtml.php @@ -224,7 +224,7 @@ class SugarHtml { /** * @static - * Disassemble html string into a cascaded array form elements + * Disassemble an html string into a cascaded array form elements * * @param String $code - html string (support the mixed html string with smarty blocks) * @param array $appendTo - Precedent siblings @@ -236,7 +236,13 @@ class SugarHtml { $start_pos = strpos($code, ' ') ? strpos($code, ' ') : strpos($code, self::HTML_TAG_END); $output = array(); if(substr($code, 0, 1) != self::HTML_TAG_BEGIN || $start_pos === false) { - self::parseSmartyTag($code, $output); + $offset = 0; + self::parseSmartyTag($code, $output, $offset); + $remainder = ltrim(substr($code, $offset)); + if(!empty($remainder)) { + array_push($appendTo, $output); + return self::parseHtmlTag($remainder, $appendTo); + } } else { $tag = substr($code, 1, $start_pos - 1); $closing_tag = ' '', ); - //Concatenate smarty variables + $reserved_strings = array( + '$', 'ldelim', 'rdelim' + ); + $reserved_functions = array( + 'literal' => false, + 'nocache' => false, + ); $queue = 0; + $is_literal = false; + $current_literal_string = ''; for($seq = 0; $seq < count($clauses); $seq++) { + $is_reserved = false; - if($seq > 0 && substr(ltrim($clauses[$seq]), 0, 1) == '$' ) { - $clauses[--$queue] .= self::SMARTY_TAG_BEGIN.$clauses[$seq].self::SMARTY_TAG_END; - if($seq < count($clauses)) { + $current_literal_string = !empty($current_literal_string) ? $current_literal_string : (isset($reserved_functions[trim($clauses[$seq])]) ? trim($clauses[$seq]) : ''); + $is_literal = $is_literal || !empty($current_literal_string); + + foreach($reserved_strings as $str) { + if(substr(ltrim($clauses[$seq]), 0, strlen($str)) == $str) { + $is_reserved = true; + break; + } + } + if($is_literal || ($seq > 0 && $is_reserved)) { + if($queue == 0) + $clauses[$queue] = self::SMARTY_TAG_BEGIN.$clauses[$seq].self::SMARTY_TAG_END; + else + $clauses[--$queue] .= self::SMARTY_TAG_BEGIN.$clauses[$seq].self::SMARTY_TAG_END; + $is_literal = $is_literal && (substr(ltrim($clauses[$seq]), 0, strlen("/".$current_literal_string)) != "/".$current_literal_string); + $current_literal_string = ($is_literal) ? $current_literal_string : ''; + if($seq < count($clauses) - 1) { $clauses[$queue++] .= $clauses[++$seq]; + } else { + $queue++; } } else { $clauses[$queue++] = $clauses[$seq]; } } array_splice($clauses, $queue); - //Split phrases for the conditional statement $count = 0; $queue = 0; @@ -344,9 +375,11 @@ class SugarHtml { $seq = 0; foreach($clauses as $index => $clause) { if($index % 2 == 0) { - $smarty_template['template'] .= '{'.$clause.'}'; - - } else { + if(self::SMARTY_TAG_BEGIN == substr($clause, 0, 1) && self::SMARTY_TAG_END == substr($clause, -1, 1)) + $smarty_template['template'] .= $clause; + else + $smarty_template['template'] .= '{'.$clause.'}'; + } else if( !empty($clause) ){ $key = '[CONTENT'.($seq++).']'; $smarty_template['template'] .= $key; $params = array(); @@ -358,9 +391,17 @@ class SugarHtml { } } $output['smarty'][] = $smarty_template; - $i = $_right + 1; + $offset = $_right + 1; } + /** + * @static + * Disassemble an html attributes into a key-value array form + * + * @param String $code - attribute string (i.e. - id='form_id' name='button' value='View Detail' ...) + * @param Array $output - Parsed the attribute into key-value form + * @return string - Remainder string by spliting with ">" + */ public static function extractAttributes($code, &$output) { $var_assign = false; $quote_encoded = false; @@ -379,7 +420,7 @@ class SugarHtml { if(empty($var_name)) { $var_name = $string; } else if($var_assign) { - $output[$var_name] = $string; + $output[trim($var_name)] = $string; unset($var_name); } } @@ -402,7 +443,7 @@ class SugarHtml { if(empty($var_name)) { $var_name = $string; } else if($var_assign) { - $output[$var_name] = $string; + $output[trim($var_name)] = $string; unset($var_name); } $quote_encoded = false; @@ -441,11 +482,23 @@ class SugarHtml { return substr($code, $i + 1); } + /** + * @static + * Creates HTML attribute elements corresponding key-value pair. + * + * @param Array $params - Attributes (key-value pair) + * @return string - Generated html attribute string + */ public static function createAttributes($params) { $options = ""; foreach($params as $attr => $value) { - if($value) - $options .= $attr.'="'.$value.'" '; + if(is_numeric($attr) === false) { + $attr = trim($attr); + if($value) + $options .= $attr.'="'.$value.'" '; + elseif(!empty($attr)) + $options .= $attr.' '; + } } return $options; } diff --git a/include/SugarLogger/SugarLogger.php b/include/SugarLogger/SugarLogger.php index ca910d5f..e2a3b087 100644 --- a/include/SugarLogger/SugarLogger.php +++ b/include/SugarLogger/SugarLogger.php @@ -60,6 +60,7 @@ class SugarLogger implements LoggerTemplate protected $logSize = '10MB'; protected $maxLogs = 10; protected $filesuffix = ""; + protected $date_suffix = ""; protected $log_dir = '.'; @@ -67,8 +68,10 @@ class SugarLogger implements LoggerTemplate * used for config screen */ public static $filename_suffix = array( + //bug#50265: Added none option for previous version users + "" => "None", "%m_%Y" => "Month_Year", - "%w_%m" => "Week_Month", + "%d_%m" => "Day_Month", "%m_%d_%y" => "Month_Day_Year", ); @@ -131,7 +134,12 @@ class SugarLogger implements LoggerTemplate */ protected function _doInitialization() { - $this->full_log_file = $this->log_dir . $this->logfile . $this->ext; + + if( $this->filesuffix && array_key_exists($this->filesuffix, self::$filename_suffix) ) + { //if the global config contains date-format suffix, it will create suffix by parsing datetime + $this->date_suffix = "_" . date(str_replace("%", "", $this->filesuffix)); + } + $this->full_log_file = $this->log_dir . $this->logfile . $this->date_suffix . $this->ext; $this->initialized = $this->_fileCanBeCreatedAndWrittenTo(); $this->rollLog(); } @@ -197,18 +205,24 @@ class SugarLogger implements LoggerTemplate if (!$this->initialized || empty($this->logSize)) { return; } - // lets get the number of megs we are allowed to have in the file - $megs = substr ( $this->logSize, 0, strlen ( $this->logSize ) - 2 ); - //convert it to bytes - $rollAt = ( int ) $megs * 1024 * 1024; - //check if our log file is greater than that or if we are forcing the log to roll - if ($force || filesize ( $this->full_log_file ) >= $rollAt) { + // bug#50265: Parse the its unit string and get the size properly + $units = array( + 'b' => 1, //Bytes + 'k' => 1024, //KBytes + 'm' => 1024 * 1024, //MBytes + 'g' => 1024 * 1024 * 1024, //GBytes + ); + if( preg_match('/^\s*([0-9]+\.[0-9]+|\.?[0-9]+)\s*(k|m|g|b)(b?ytes)?/i', $this->logSize, $match) ) { + $rollAt = ( int ) $match[1] * $units[strtolower($match[2])]; + } + //check if our log file is greater than that or if we are forcing the log to roll if and only if roll size assigned the value correctly + if ( $force || ($rollAt && filesize ( $this->full_log_file ) >= $rollAt) ) { //now lets move the logs starting at the oldest and going to the newest for($i = $this->maxLogs - 2; $i > 0; $i --) { - if (file_exists ( $this->log_dir . $this->logfile . $i . $this->ext )) { + if (file_exists ( $this->log_dir . $this->logfile . $this->date_suffix . '_'. $i . $this->ext )) { $to = $i + 1; - $old_name = $this->log_dir . $this->logfile . $i . $this->ext; - $new_name = $this->log_dir . $this->logfile . $to . $this->ext; + $old_name = $this->log_dir . $this->logfile . $this->date_suffix . '_'. $i . $this->ext; + $new_name = $this->log_dir . $this->logfile . $this->date_suffix . '_'. $to . $this->ext; //nsingh- Bug 22548 Win systems fail if new file name already exists. The fix below checks for that. //if/else branch is necessary as suggested by someone on php-doc ( see rename function ). sugar_rename($old_name, $new_name); @@ -217,7 +231,7 @@ class SugarLogger implements LoggerTemplate } } //now lets move the current .log file - sugar_rename ($this->full_log_file, $this->log_dir . $this->logfile . '1' . $this->ext); + sugar_rename ($this->full_log_file, $this->log_dir . $this->logfile . $this->date_suffix . '_1' . $this->ext); } } diff --git a/include/SugarOauth.php b/include/SugarOauth.php index 90c04b69..33240e99 100644 --- a/include/SugarOauth.php +++ b/include/SugarOauth.php @@ -156,18 +156,42 @@ * @param array $headers HTTP headers * @return string */ - public function fetch($url, $params = null, $method = 'GET', $headers = null) - { - $acc = $this->makeAccessToken(); - if ( strpos($url,'?') ) { + + public function fetch($url, $params = null, $method = 'GET', $headers = null) + { + $acc = $this->makeAccessToken(); + if ( strpos($url,'?') ) { list($clean_url, $query) = explode('?', $url); if($query) { $url = $clean_url; parse_str($query, $query_params); $params = array_merge($params?$params:array(), $query_params); } - } + } $client = $acc->getHttpClient($this->_oauth_config, $url); + + Zend_Loader::loadClass('Zend_Http_Client_Adapter_Proxy'); + $proxy_config = SugarModule::get('Administration')->loadBean(); + $proxy_config->retrieveSettings('proxy'); + + if( !empty($proxy_config) && + !empty($proxy_config->settings['proxy_on']) && + $proxy_config->settings['proxy_on'] == 1) { + + $proxy_settings = array(); + $proxy_settings['proxy_host'] = $proxy_config->settings['proxy_host']; + $proxy_settings['proxy_port'] = $proxy_config->settings['proxy_port']; + + if(!empty($proxy_config->settings['proxy_auth'])){ + $proxy_settings['proxy_user'] = $proxy_config->settings['proxy_username']; + $proxy_settings['proxy_pass'] = $proxy_config->settings['proxy_password']; + } + + $adapter = new Zend_Http_Client_Adapter_Proxy(); + $adapter->setConfig($proxy_settings); + $client->setAdapter($adapter); + } + $client->setMethod($method); if(!empty($headers)) { $client->setHeaders($headers); diff --git a/include/SugarObjects/templates/basic/vardefs.php b/include/SugarObjects/templates/basic/vardefs.php index bf514942..d2ac5126 100644 --- a/include/SugarObjects/templates/basic/vardefs.php +++ b/include/SugarObjects/templates/basic/vardefs.php @@ -94,6 +94,7 @@ $vardefs = array( 'dbType' => 'id', 'reportable'=>true, 'comment' => 'User who last modified record', + 'massupdate' => false, ), 'modified_by_name' => array ( @@ -107,7 +108,8 @@ $vardefs = array( 'id_name' => 'modified_user_id', 'module'=>'Users', 'link'=>'modified_user_link', - 'duplicate_merge'=>'disabled' + 'duplicate_merge'=>'disabled', + 'massupdate' => false, ), 'created_by' => array ( @@ -121,6 +123,7 @@ $vardefs = array( 'dbType' => 'id', 'group'=>'created_by_name', 'comment' => 'User who created record', + 'massupdate' => false, ), 'created_by_name' => array ( @@ -136,6 +139,7 @@ $vardefs = array( 'module'=>'Users', 'duplicate_merge'=>'disabled', 'importable' => 'false', + 'massupdate' => false, ), 'description' => array ( diff --git a/include/TemplateHandler/TemplateHandler.php b/include/TemplateHandler/TemplateHandler.php index 6afff108..120c643e 100644 --- a/include/TemplateHandler/TemplateHandler.php +++ b/include/TemplateHandler/TemplateHandler.php @@ -395,7 +395,10 @@ class TemplateHandler { if($field['type'] == 'relate' && isset($field['module']) && (preg_match('/_name$|_c$/si',$name) || !empty($field['quicksearch']))) { - if(!preg_match('/_c$/si',$name) && preg_match('/^(Campaigns|Teams|Users|Contacts|Accounts)$/si', $field['module'], $matches)) { + if (!preg_match('/_c$/si',$name) + && (!isset($field['id_name']) || !preg_match('/_c$/si',$field['id_name'])) + && preg_match('/^(Campaigns|Teams|Users|Contacts|Accounts)$/si', $field['module'], $matches) + ) { if($matches[0] == 'Campaigns') { $sqs_objects[$name] = $qsd->loadQSObject('Campaigns', 'Campaign', $field['name'], $field['id_name'], $field['id_name']); @@ -403,7 +406,7 @@ class TemplateHandler { if($field['name'] == 'reports_to_name') $sqs_objects[$name] = $qsd->getQSUser('reports_to_name','reports_to_id'); else { - if ($view == "ConvertLead") + if($view == "ConvertLead" || $field['name'] == 'created_by_name' || $field['name'] == 'modified_by_name') $sqs_objects[$name] = $qsd->getQSUser($field['name'], $field['id_name']); else $sqs_objects[$name] = $qsd->getQSUser(); diff --git a/include/database/DBManager.php b/include/database/DBManager.php index 4081b792..a7872180 100644 --- a/include/database/DBManager.php +++ b/include/database/DBManager.php @@ -975,6 +975,10 @@ protected function checkQuery($sql, $object_name = false) //Ignore len if its not set in the vardef if ($key == 'len' && empty($fielddef2[$key])) continue; + // if the length in db is greather than the vardef, ignore it + if ($key == 'len' && ($fielddef1[$key] >= $fielddef2[$key])) { + continue; + } return false; } diff --git a/include/database/MssqlManager.php b/include/database/MssqlManager.php index eeedf012..92e32046 100644 --- a/include/database/MssqlManager.php +++ b/include/database/MssqlManager.php @@ -903,6 +903,10 @@ class MssqlManager extends DBManager $tbl_name = $module_str; $sql = strtolower($sql); + // Bug #45625 : Getting Multi-part identifier (reports.id) could not be bound error when navigating to next page in reprots in mssql + // there is cases when sql string is multiline string and it we cannot find " from " string in it + $sql = str_replace(array("\n", "\r"), " ", $sql); + //look for the location of the "from" in sql string $fromLoc = strpos($sql," from " ); if ($fromLoc>0){ @@ -1386,46 +1390,36 @@ class MssqlManager extends DBManager return $result; } - /** + /** * @see DBManager::get_indices() */ - public function get_indices($tablename) + public function get_indices($tableName) { //find all unique indexes and primary keys. $query = <<query($query); $indices = array(); while (($row=$this->fetchByAssoc($result)) != null) { $index_type = 'index'; - if ($row['Key_name'] == 'PRIMARY') + if ($row['is_primary_key'] == '1') $index_type = 'primary'; - elseif ($row['isunique'] == 1 ) + elseif ($row['is_unique'] == 1 ) $index_type = 'unique'; - $name = strtolower($row['Key_name']); + $name = strtolower($row['index_name']); $indices[$name]['name'] = $name; $indices[$name]['type'] = $index_type; - $indices[$name]['fields'][] = strtolower($row['Column_name']); + $indices[$name]['fields'][] = strtolower($row['column_name']); } return $indices; } diff --git a/include/database/MysqliManager.php b/include/database/MysqliManager.php index c04acd5b..b6f988d4 100644 --- a/include/database/MysqliManager.php +++ b/include/database/MysqliManager.php @@ -361,7 +361,7 @@ class MysqliManager extends MysqlManager */ protected function selectDb($dbname) { - return mysqli_select_db($dbname); + return mysqli_select_db($this->getDatabase(), $dbname); } /** diff --git a/include/database/SqlsrvManager.php b/include/database/SqlsrvManager.php index 83250ba2..2ccb8054 100644 --- a/include/database/SqlsrvManager.php +++ b/include/database/SqlsrvManager.php @@ -410,40 +410,6 @@ class SqlsrvManager extends MssqlManager return $columns; } - /** - * @see DBManager::get_indices() - */ - public function get_indices($tableName) - { - //find all unique indexes and primary keys. - $query = <<query($query); - - $indices = array(); - while (($row=$this->fetchByAssoc($result)) != null) { - $index_type = 'index'; - if ($row['is_primary_key'] == '1') - $index_type = 'primary'; - elseif ($row['is_unique'] == 1 ) - $index_type = 'unique'; - $name = strtolower($row['index_name']); - $indices[$name]['name'] = $name; - $indices[$name]['type'] = $index_type; - $indices[$name]['fields'][] = strtolower($row['column_name']); - } - return $indices; - } - /** * protected function to return true if the given tablename has any clustered indexes defined. * diff --git a/include/externalAPI/Base/ExternalAPIBase.php b/include/externalAPI/Base/ExternalAPIBase.php index 76c1a9e3..b8106b60 100644 --- a/include/externalAPI/Base/ExternalAPIBase.php +++ b/include/externalAPI/Base/ExternalAPIBase.php @@ -135,6 +135,21 @@ abstract class ExternalAPIBase implements ExternalAPIPlugin $ch = curl_init($url); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); + + $proxy_config = SugarModule::get('Administration')->loadBean(); + $proxy_config->retrieveSettings('proxy'); + + if( !empty($proxy_config) && + !empty($proxy_config->settings['proxy_on']) && + $proxy_config->settings['proxy_on'] == 1) { + + curl_setopt($ch, CURLOPT_PROXY, $proxy_config->settings['proxy_host']); + curl_setopt($ch, CURLOPT_PROXYPORT, $proxy_config->settings['proxy_port']); + if (!empty($proxy_settings['proxy_auth'])) { + curl_setopt($ch, CURLOPT_PROXYUSERPWD, $proxy_settings['proxy_username'] . ':' . $proxy_settings['proxy_password']); + } + } + if ( ( is_array($postfields) && count($postfields) == 0 ) || empty($postfields) ) { curl_setopt($ch, CURLOPT_POST, false); diff --git a/include/generic/LayoutManager.php b/include/generic/LayoutManager.php index 7c693c72..cd1f6cf9 100644 --- a/include/generic/LayoutManager.php +++ b/include/generic/LayoutManager.php @@ -194,7 +194,7 @@ class LayoutManager 'ACL'=>'edit', ), 'SugarWidgetSubPanelTopSelectFromReportButton' => array( - 'widget_class'=>'SugarWidgetSubPanelTopSelectButton', + 'widget_class'=>'SugarWidgetSubPanelTopSelectReportsButton', 'module'=>'Reports', 'title'=>'LBL_SELECT_REPORTS_BUTTON_LABEL', 'access_key'=>'LBL_SELECT_BUTTON_KEY', diff --git a/include/generic/SugarWidgets/SugarWidgetSubPanelTopMessage.php b/include/generic/SugarWidgets/SugarWidgetSubPanelTopMessage.php new file mode 100644 index 00000000..64cb739c --- /dev/null +++ b/include/generic/SugarWidgets/SugarWidgetSubPanelTopMessage.php @@ -0,0 +1,50 @@ +title = $app_strings[$this->button_properties['title']]; } if( isset($this->button_properties['accesskey'])) { - //$this->accesskey = $app_strings[$this->button_properties['accesskey']]; + $this->accesskey = $app_strings[$this->button_properties['accesskey']]; } if( isset($this->button_properties['form_value'])) { $this->value = $app_strings[$this->button_properties['form_value']]; @@ -163,7 +163,6 @@ class SugarWidgetSubPanelTopSelectButton extends SugarWidgetSubPanelTopButton } } } - //acl_roles_users_selectuser_button $json_encoded_php_array = $this->_create_json_encoded_popup_request($popup_request_data); diff --git a/include/javascript/jquery/jquery.sugarMenu.js b/include/javascript/jquery/jquery.sugarMenu.js index 71f19e55..1dcc87c0 100644 --- a/include/javascript/jquery/jquery.sugarMenu.js +++ b/include/javascript/jquery/jquery.sugarMenu.js @@ -152,8 +152,8 @@ var jNode = $(node); var parent = jNode.parent(); var fancymenu = ""; - var slideUpSpeed = 0; - var slideDownSpeed = 0; + var slideUpSpeed = 1; + var slideDownSpeed = 1; var dropDownHandle; //if the dropdown handle doesn't exist, lets create it and diff --git a/include/javascript/jquery/jquery.superfish.js b/include/javascript/jquery/jquery.superfish.js index de45ce17..5de871b4 100644 --- a/include/javascript/jquery/jquery.superfish.js +++ b/include/javascript/jquery/jquery.superfish.js @@ -35,10 +35,11 @@ var $$ = $(this), menu = getMenu($$), o = sf.op; - + //Bug#52225: Activate submenu while hs-activated if($$.parent().hasClass("hs-active")) { - //Bug#51993: deactive submenu while hoverscroll is activated - return; + $$.addClass("iefix"); + } else { + $$.removeClass("iefix"); } if (!o.firstOnClick || menuActive || $$.parent()[0] != menu) @@ -52,9 +53,20 @@ }, out = function() { var $$ = $(this), - menu = getMenu($$), - o = sf.op, - $menu = $(menu); + menu = getMenu($$), + o = sf.op, + $menu = $(menu); + + if($$.parent().hasClass("hs-active")) { + $$.addClass("iefix"); + setTimeout(function() { + if($menu.hasClass(sf.defaults['retainClass']) === false) + $$.hideSuperfishUl(); + }, o.delay); + } else { + $$.removeClass("iefix"); + } + clearTimeout(menu.sfTimer); menu.sfTimer = $menu.hasClass(sf.defaults['retainClass']) ? null : setTimeout(function() { if($menu.hasClass(sf.defaults['retainClass']) === false) { @@ -219,7 +231,7 @@ * if $ul is not given, it will restore back to the original structure */ sf.IEfix = function($ul) { - if ($.browser.msie && $.browser.version > 6) { + if ( ($.browser.msie && $.browser.version > 6) || $(this).hasClass("iefix") ) { if($ul) { //Take out the element out of the fixed box model, //and then append it into the end of body container @@ -227,7 +239,7 @@ var $$ = $(this), o = sf.op, _id = $$.attr("ul-child-id") ? $$.attr("ul-child-id") : ($ul.attr('id')) ? $ul.attr('id') : o.megamenuID ? o.megamenuID + ++sf.counter : 'megamenu' + ++sf.counter, - _top = $$.position().top + $$.parent().position().top, + _top = $$.position().top + $$.parent().offset().top - $(document).scrollTop(), _left = $$.offset().left - sf.cssValue.call($ul, "border-left-width"), $menu = $('ul.' + sf.c.menuClass + ':visible'); //handling sub-sliding menu @@ -263,9 +275,11 @@ var menu = sf.getMenu($menu), o = sf.op; clearTimeout(menu.sfTimer); + menu.sfTimer = setTimeout(function() { $$.hideSuperfishUl(); $(menu).removeClass(sf.defaults['retainClass']); + $(menu).hideSuperfishUl(); }, o.delay) }) ); diff --git a/include/javascript/sugar_3.js b/include/javascript/sugar_3.js index c299667f..9ed4572b 100644 --- a/include/javascript/sugar_3.js +++ b/include/javascript/sugar_3.js @@ -525,7 +525,8 @@ if(typeof(elem.type)!='undefined'&&typeof(skipElementNames)!='undefined'&&SUGAR. elemType=elem.type.toLowerCase();if(elemType=='text'||elemType=='textarea'||elemType=='password'){elem.value='';} else if(elemType=='select'||elemType=='select-one'||elemType=='select-multiple'){var optionList=elem.options;for(var ii=0;ii3&&elem.name.substring(elem.name.length-3)=='_id')||((elem.name.length>9)&&(elem.name.substring(elem.name.length-9)=='_id_basic'))||(elem.name.length>12&&elem.name.substring(elem.name.length-12)=='_id_advanced')){elem.value='';}}} +else if(elemType=='hidden'){if((elem.name.length>3&&elem.name.substring(elem.name.length-3)=='_id')||((elem.name.length>9)&&(elem.name.substring(elem.name.length-9)=='_id_basic'))||(elem.name.length>12&&elem.name.substring(elem.name.length-12)=='_id_advanced')||(elem.name.length>2&&elem.name.substring(elem.name.length-2)=='_c')||((elem.name.length>8)&&(elem.name.substring(elem.name.length-8)=='_c_basic'))||(elem.name.length>11&&elem.name.substring(elem.name.length-11)=='_c_advanced')) +{elem.value='';}}} SUGAR.savedViews.clearColumns=true;}};}();SUGAR.tabChooser=function(){var object_refs=new Array();return{frozenOptions:[],movementCallback:function(left_side,right_side){},orderCallback:function(left_side,right_side){},freezeOptions:function(left_name,right_name,target){if(!SUGAR.tabChooser.frozenOptions){SUGAR.tabChooser.frozenOptions=[];} if(!SUGAR.tabChooser.frozenOptions[left_name]){SUGAR.tabChooser.frozenOptions[left_name]=[];} if(!SUGAR.tabChooser.frozenOptions[left_name][right_name]){SUGAR.tabChooser.frozenOptions[left_name][right_name]=[];} @@ -653,7 +654,7 @@ t+=SUGAR.util.innerText(c);} return t;},callOnChangeListers:function(field){var listeners=YAHOO.util.Event.getListeners(field,'change');if(listeners!=null){for(var i=0;i=0;i--){if(ext===allowedTypes[i]){return true;}} return false;},arrayIndexOf:function(arr,val,start){if(typeof arr.indexOf=="function") return arr.indexOf(val,start);for(var i=(start||0),j=arr.length;ithis.clickPixelThresh||D>this.clickPixelThresh){this.startDrag(this.startX,this.startY);}}if(this.dragThreshMet){if(C&&C.events.b4Drag){C.b4Drag(F);C.fireEvent("b4DragEvent",{e:F});}if(C&&C.events.drag){C.onDrag(F);C.fireEvent("dragEvent",{e:F});}if(C){this.fireEvents(F,false);}}this.stopEvent(F);}},fireEvents:function(W,M){var c=this.dragCurrent;if(!c||c.isLocked()||c.dragOnly){return;}var O=YAHOO.util.Event.getPageX(W),N=YAHOO.util.Event.getPageY(W),Q=new YAHOO.util.Point(O,N),K=c.getTargetCoord(Q.x,Q.y),F=c.getDragEl(),E=["out","over","drop","enter"],V=new YAHOO.util.Region(K.y,K.x+F.offsetWidth,K.y+F.offsetHeight,K.x),I=[],D={},L={},R=[],d={outEvts:[],overEvts:[],dropEvts:[],enterEvts:[]};for(var T in this.dragOvers){var f=this.dragOvers[T];if(!this.isTypeOfDD(f)){continue; }if(!this.isOverTarget(Q,f,this.mode,V)){d.outEvts.push(f);}I[T]=true;delete this.dragOvers[T];}for(var S in c.groups){if("string"!=typeof S){continue;}for(T in this.ids[S]){var G=this.ids[S][T];if(!this.isTypeOfDD(G)){continue;}if(G.isTarget&&!G.isLocked()&&G!=c){if(this.isOverTarget(Q,G,this.mode,V)){D[S]=true;if(M){d.dropEvts.push(G);}else{if(!I[G.id]){d.enterEvts.push(G);}else{d.overEvts.push(G);}this.dragOvers[G.id]=G;}}}}}this.interactionInfo={out:d.outEvts,enter:d.enterEvts,over:d.overEvts,drop:d.dropEvts,point:Q,draggedRegion:V,sourceRegion:this.locationCache[c.id],validDrop:M};for(var C in D){R.push(C);}if(M&&!d.dropEvts.length){this.interactionInfo.validDrop=false;if(c.events.invalidDrop){c.onInvalidDrop(W);c.fireEvent("invalidDropEvent",{e:W});}}for(T=0;T2000){}else{setTimeout(C._addListeners,10);if(document&&document.body){C._timeoutCount+=1;}}}},handleWasClicked:function(C,E){if(this.isHandle(E,C.id)){return true;}else{var D=C.parentNode;while(D){if(this.isHandle(E,D.id)){return true;}else{D=D.parentNode;}}}return false;}};}();YAHOO.util.DDM=YAHOO.util.DragDropMgr;YAHOO.util.DDM._addListeners();}(function(){var A=YAHOO.util.Event;var B=YAHOO.util.Dom;YAHOO.util.DragDrop=function(E,C,D){if(E){this.init(E,C,D);}};YAHOO.util.DragDrop.prototype={events:null,on:function(){this.subscribe.apply(this,arguments);},id:null,config:null,dragElId:null,handleElId:null,invalidHandleTypes:null,invalidHandleIds:null,invalidHandleClasses:null,startPageX:0,startPageY:0,groups:null,locked:false,lock:function(){this.locked=true;},unlock:function(){this.locked=false;},isTarget:true,padding:null,dragOnly:false,useShim:false,_domRef:null,__ygDragDrop:true,constrainX:false,constrainY:false,minX:0,maxX:0,minY:0,maxY:0,deltaX:0,deltaY:0,maintainOffset:false,xTicks:null,yTicks:null,primaryButtonOnly:true,available:false,hasOuterHandles:false,cursorIsOver:false,overlap:null,b4StartDrag:function(C,D){},startDrag:function(C,D){},b4Drag:function(C){},onDrag:function(C){},onDragEnter:function(C,D){},b4DragOver:function(C){},onDragOver:function(C,D){},b4DragOut:function(C){},onDragOut:function(C,D){},b4DragDrop:function(C){},onDragDrop:function(C,D){},onInvalidDrop:function(C){},b4EndDrag:function(C){},endDrag:function(C){},b4MouseDown:function(C){},onMouseDown:function(C){},onMouseUp:function(C){},onAvailable:function(){},getEl:function(){if(!this._domRef){this._domRef=B.get(this.id); -}return this._domRef;},getDragEl:function(){return B.get(this.dragElId);},init:function(F,C,D){this.initTarget(F,C,D);A.on(this._domRef||this.id,"mousedown",this.handleMouseDown,this,true);for(var E in this.events){this.createEvent(E+"Event");}},initTarget:function(E,C,D){this.config=D||{};this.events={};this.DDM=YAHOO.util.DDM;this.groups={};if(typeof E!=="string"){this._domRef=E;E=B.generateId(E);}this.id=E;this.addToGroup((C)?C:"default");this.handleElId=E;A.onAvailable(E,this.handleOnAvailable,this,true);this.setDragElId(E);this.invalidHandleTypes={A:"A"};this.invalidHandleIds={};this.invalidHandleClasses=[];this.applyConfig();},applyConfig:function(){this.events={mouseDown:true,b4MouseDown:true,mouseUp:true,b4StartDrag:true,startDrag:true,b4EndDrag:true,endDrag:true,drag:true,b4Drag:true,invalidDrop:true,b4DragOut:true,dragOut:true,dragEnter:true,b4DragOver:true,dragOver:true,b4DragDrop:true,dragDrop:true};if(this.config.events){for(var C in this.config.events){if(this.config.events[C]===false){this.events[C]=false;}}}this.padding=this.config.padding||[0,0,0,0];this.isTarget=(this.config.isTarget!==false);this.maintainOffset=(this.config.maintainOffset);this.primaryButtonOnly=(this.config.primaryButtonOnly!==false);this.dragOnly=((this.config.dragOnly===true)?true:false);this.useShim=((this.config.useShim===true)?true:false);},handleOnAvailable:function(){this.available=true;this.resetConstraints();this.onAvailable();},setPadding:function(E,C,F,D){if(!C&&0!==C){this.padding=[E,E,E,E];}else{if(!F&&0!==F){this.padding=[E,C,E,C];}else{this.padding=[E,C,F,D];}}},setInitPosition:function(F,E){var G=this.getEl();if(!this.DDM.verifyEl(G)){if(G&&G.style&&(G.style.display=="none")){}else{}return;}var D=F||0;var C=E||0;var H=B.getXY(G);this.initPageX=H[0]-D;this.initPageY=H[1]-C;this.lastPageX=H[0];this.lastPageY=H[1];this.setStartPosition(H);},setStartPosition:function(D){var C=D||B.getXY(this.getEl());this.deltaSetXY=null;this.startPageX=C[0];this.startPageY=C[1];},addToGroup:function(C){this.groups[C]=true;this.DDM.regDragDrop(this,C);},removeFromGroup:function(C){if(this.groups[C]){delete this.groups[C];}this.DDM.removeDDFromGroup(this,C);},setDragElId:function(C){this.dragElId=C;},setHandleElId:function(C){if(typeof C!=="string"){C=B.generateId(C);}this.handleElId=C;this.DDM.regHandle(this.id,C);},setOuterHandleElId:function(C){if(typeof C!=="string"){C=B.generateId(C);}A.on(C,"mousedown",this.handleMouseDown,this,true);this.setHandleElId(C);this.hasOuterHandles=true;},unreg:function(){A.removeListener(this.id,"mousedown",this.handleMouseDown);this._domRef=null;this.DDM._remove(this);},isLocked:function(){return(this.DDM.isLocked()||this.locked);},handleMouseDown:function(J,I){var D=J.which||J.button;if(this.primaryButtonOnly&&D>1){return;}if(this.isLocked()){return;}var C=this.b4MouseDown(J),F=true;if(this.events.b4MouseDown){F=this.fireEvent("b4MouseDownEvent",J);}var E=this.onMouseDown(J),H=true;if(this.events.mouseDown){if(E===false){H=false;}else{H=this.fireEvent("mouseDownEvent",J);}}if((C===false)||(E===false)||(F===false)||(H===false)){return;}this.DDM.refreshCache(this.groups);var G=new YAHOO.util.Point(A.getPageX(J),A.getPageY(J));if(!this.hasOuterHandles&&!this.DDM.isOverTarget(G,this)){}else{if(this.clickValidator(J)){this.setStartPosition();this.DDM.handleMouseDown(J,this);this.DDM.stopEvent(J);}else{}}},clickValidator:function(D){var C=YAHOO.util.Event.getTarget(D);return(this.isValidHandleChild(C)&&(this.id==this.handleElId||this.DDM.handleWasClicked(C,this.id)));},getTargetCoord:function(E,D){var C=E-this.deltaX;var F=D-this.deltaY;if(this.constrainX){if(Cthis.maxX){C=this.maxX;}}if(this.constrainY){if(Fthis.maxY){F=this.maxY;}}C=this.getTick(C,this.xTicks);F=this.getTick(F,this.yTicks);return{x:C,y:F};},addInvalidHandleType:function(C){var D=C.toUpperCase();this.invalidHandleTypes[D]=D;},addInvalidHandleId:function(C){if(typeof C!=="string"){C=B.generateId(C);}this.invalidHandleIds[C]=C;},addInvalidHandleClass:function(C){this.invalidHandleClasses.push(C);},removeInvalidHandleType:function(C){var D=C.toUpperCase();delete this.invalidHandleTypes[D];},removeInvalidHandleId:function(C){if(typeof C!=="string"){C=B.generateId(C);}delete this.invalidHandleIds[C];},removeInvalidHandleClass:function(D){for(var E=0,C=this.invalidHandleClasses.length;E=this.minX;D=D-C){if(!E[D]){this.xTicks[this.xTicks.length]=D;E[D]=true;}}for(D=this.initPageX;D<=this.maxX;D=D+C){if(!E[D]){this.xTicks[this.xTicks.length]=D;E[D]=true;}}this.xTicks.sort(this.DDM.numericSort);},setYTicks:function(F,C){this.yTicks=[];this.yTickSize=C;var E={};for(var D=this.initPageY;D>=this.minY;D=D-C){if(!E[D]){this.yTicks[this.yTicks.length]=D;E[D]=true;}}for(D=this.initPageY;D<=this.maxY;D=D+C){if(!E[D]){this.yTicks[this.yTicks.length]=D;E[D]=true;}}this.yTicks.sort(this.DDM.numericSort);},setXConstraint:function(E,D,C){this.leftConstraint=parseInt(E,10);this.rightConstraint=parseInt(D,10);this.minX=this.initPageX-this.leftConstraint;this.maxX=this.initPageX+this.rightConstraint;if(C){this.setXTicks(this.initPageX,C);}this.constrainX=true;},clearConstraints:function(){this.constrainX=false;this.constrainY=false;this.clearTicks();},clearTicks:function(){this.xTicks=null;this.yTicks=null;this.xTickSize=0;this.yTickSize=0;},setYConstraint:function(C,E,D){this.topConstraint=parseInt(C,10);this.bottomConstraint=parseInt(E,10);this.minY=this.initPageY-this.topConstraint;this.maxY=this.initPageY+this.bottomConstraint; +}return this._domRef;},getDragEl:function(){return B.get(this.dragElId);},init:function(F,C,D){this.initTarget(F,C,D);A.on(this._domRef||this.id,"mousedown",this.handleMouseDown,this,true);for(var E in this.events){this.createEvent(E+"Event");}},initTarget:function(E,C,D){this.config=D||{};this.events={};this.DDM=YAHOO.util.DDM;this.groups={};if(typeof E!=="string"){this._domRef=E;E=B.generateId(E);}this.id=E;this.addToGroup((C)?C:"default");this.handleElId=E;A.onAvailable(E,this.handleOnAvailable,this,true);this.setDragElId(E);this.invalidHandleTypes={A:"A",SELECT:"SELECT"};this.invalidHandleIds={};this.invalidHandleClasses=[];this.applyConfig();},applyConfig:function(){this.events={mouseDown:true,b4MouseDown:true,mouseUp:true,b4StartDrag:true,startDrag:true,b4EndDrag:true,endDrag:true,drag:true,b4Drag:true,invalidDrop:true,b4DragOut:true,dragOut:true,dragEnter:true,b4DragOver:true,dragOver:true,b4DragDrop:true,dragDrop:true};if(this.config.events){for(var C in this.config.events){if(this.config.events[C]===false){this.events[C]=false;}}}this.padding=this.config.padding||[0,0,0,0];this.isTarget=(this.config.isTarget!==false);this.maintainOffset=(this.config.maintainOffset);this.primaryButtonOnly=(this.config.primaryButtonOnly!==false);this.dragOnly=((this.config.dragOnly===true)?true:false);this.useShim=((this.config.useShim===true)?true:false);},handleOnAvailable:function(){this.available=true;this.resetConstraints();this.onAvailable();},setPadding:function(E,C,F,D){if(!C&&0!==C){this.padding=[E,E,E,E];}else{if(!F&&0!==F){this.padding=[E,C,E,C];}else{this.padding=[E,C,F,D];}}},setInitPosition:function(F,E){var G=this.getEl();if(!this.DDM.verifyEl(G)){if(G&&G.style&&(G.style.display=="none")){}else{}return;}var D=F||0;var C=E||0;var H=B.getXY(G);this.initPageX=H[0]-D;this.initPageY=H[1]-C;this.lastPageX=H[0];this.lastPageY=H[1];this.setStartPosition(H);},setStartPosition:function(D){var C=D||B.getXY(this.getEl());this.deltaSetXY=null;this.startPageX=C[0];this.startPageY=C[1];},addToGroup:function(C){this.groups[C]=true;this.DDM.regDragDrop(this,C);},removeFromGroup:function(C){if(this.groups[C]){delete this.groups[C];}this.DDM.removeDDFromGroup(this,C);},setDragElId:function(C){this.dragElId=C;},setHandleElId:function(C){if(typeof C!=="string"){C=B.generateId(C);}this.handleElId=C;this.DDM.regHandle(this.id,C);},setOuterHandleElId:function(C){if(typeof C!=="string"){C=B.generateId(C);}A.on(C,"mousedown",this.handleMouseDown,this,true);this.setHandleElId(C);this.hasOuterHandles=true;},unreg:function(){A.removeListener(this.id,"mousedown",this.handleMouseDown);this._domRef=null;this.DDM._remove(this);},isLocked:function(){return(this.DDM.isLocked()||this.locked);},handleMouseDown:function(J,I){var D=J.which||J.button;if(this.primaryButtonOnly&&D>1){return;}if(this.isLocked()){return;}var C=this.b4MouseDown(J),F=true;if(this.events.b4MouseDown){F=this.fireEvent("b4MouseDownEvent",J);}var E=this.onMouseDown(J),H=true;if(this.events.mouseDown){if(E===false){H=false;}else{H=this.fireEvent("mouseDownEvent",J);}}if((C===false)||(E===false)||(F===false)||(H===false)){return;}this.DDM.refreshCache(this.groups);var G=new YAHOO.util.Point(A.getPageX(J),A.getPageY(J));if(!this.hasOuterHandles&&!this.DDM.isOverTarget(G,this)){}else{if(this.clickValidator(J)){this.setStartPosition();this.DDM.handleMouseDown(J,this);this.DDM.stopEvent(J);}else{}}},clickValidator:function(D){var C=YAHOO.util.Event.getTarget(D);return(this.isValidHandleChild(C)&&(this.id==this.handleElId||this.DDM.handleWasClicked(C,this.id)));},getTargetCoord:function(E,D){var C=E-this.deltaX;var F=D-this.deltaY;if(this.constrainX){if(Cthis.maxX){C=this.maxX;}}if(this.constrainY){if(Fthis.maxY){F=this.maxY;}}C=this.getTick(C,this.xTicks);F=this.getTick(F,this.yTicks);return{x:C,y:F};},addInvalidHandleType:function(C){var D=C.toUpperCase();this.invalidHandleTypes[D]=D;},addInvalidHandleId:function(C){if(typeof C!=="string"){C=B.generateId(C);}this.invalidHandleIds[C]=C;},addInvalidHandleClass:function(C){this.invalidHandleClasses.push(C);},removeInvalidHandleType:function(C){var D=C.toUpperCase();delete this.invalidHandleTypes[D];},removeInvalidHandleId:function(C){if(typeof C!=="string"){C=B.generateId(C);}delete this.invalidHandleIds[C];},removeInvalidHandleClass:function(D){for(var E=0,C=this.invalidHandleClasses.length;E=this.minX;D=D-C){if(!E[D]){this.xTicks[this.xTicks.length]=D;E[D]=true;}}for(D=this.initPageX;D<=this.maxX;D=D+C){if(!E[D]){this.xTicks[this.xTicks.length]=D;E[D]=true;}}this.xTicks.sort(this.DDM.numericSort);},setYTicks:function(F,C){this.yTicks=[];this.yTickSize=C;var E={};for(var D=this.initPageY;D>=this.minY;D=D-C){if(!E[D]){this.yTicks[this.yTicks.length]=D;E[D]=true;}}for(D=this.initPageY;D<=this.maxY;D=D+C){if(!E[D]){this.yTicks[this.yTicks.length]=D;E[D]=true;}}this.yTicks.sort(this.DDM.numericSort);},setXConstraint:function(E,D,C){this.leftConstraint=parseInt(E,10);this.rightConstraint=parseInt(D,10);this.minX=this.initPageX-this.leftConstraint;this.maxX=this.initPageX+this.rightConstraint;if(C){this.setXTicks(this.initPageX,C);}this.constrainX=true;},clearConstraints:function(){this.constrainX=false;this.constrainY=false;this.clearTicks();},clearTicks:function(){this.xTicks=null;this.yTicks=null;this.xTickSize=0;this.yTickSize=0;},setYConstraint:function(C,E,D){this.topConstraint=parseInt(C,10);this.bottomConstraint=parseInt(E,10);this.minY=this.initPageY-this.topConstraint;this.maxY=this.initPageY+this.bottomConstraint; if(D){this.setYTicks(this.initPageY,D);}this.constrainY=true;},resetConstraints:function(){if(this.initPageX||this.initPageX===0){var D=(this.maintainOffset)?this.lastPageX-this.initPageX:0;var C=(this.maintainOffset)?this.lastPageY-this.initPageY:0;this.setInitPosition(D,C);}else{this.setInitPosition();}if(this.constrainX){this.setXConstraint(this.leftConstraint,this.rightConstraint,this.xTickSize);}if(this.constrainY){this.setYConstraint(this.topConstraint,this.bottomConstraint,this.yTickSize);}},getTick:function(I,F){if(!F){return I;}else{if(F[0]>=I){return F[0];}else{for(var D=0,C=F.length;D=I){var H=I-F[D];var G=F[E]-I;return(G>H)?F[D]:F[E];}}return F[F.length-1];}}},toString:function(){return("DragDrop "+this.id);}};YAHOO.augment(YAHOO.util.DragDrop,YAHOO.util.EventProvider);})();YAHOO.util.DD=function(C,A,B){if(C){this.init(C,A,B);}};YAHOO.extend(YAHOO.util.DD,YAHOO.util.DragDrop,{scroll:true,autoOffset:function(C,B){var A=C-this.startPageX;var D=B-this.startPageY;this.setDelta(A,D);},setDelta:function(B,A){this.deltaX=B;this.deltaY=A;},setDragElPos:function(C,B){var A=this.getDragEl();this.alignElWithMouse(A,C,B);},alignElWithMouse:function(C,G,F){var E=this.getTargetCoord(G,F);if(!this.deltaSetXY){var H=[E.x,E.y];YAHOO.util.Dom.setXY(C,H);var D=parseInt(YAHOO.util.Dom.getStyle(C,"left"),10);var B=parseInt(YAHOO.util.Dom.getStyle(C,"top"),10);this.deltaSetXY=[D-E.x,B-E.y];}else{YAHOO.util.Dom.setStyle(C,"left",(E.x+this.deltaSetXY[0])+"px");YAHOO.util.Dom.setStyle(C,"top",(E.y+this.deltaSetXY[1])+"px");}this.cachePosition(E.x,E.y);var A=this;setTimeout(function(){A.autoScroll.call(A,E.x,E.y,C.offsetHeight,C.offsetWidth);},0);},cachePosition:function(B,A){if(B){this.lastPageX=B;this.lastPageY=A;}else{var C=YAHOO.util.Dom.getXY(this.getEl());this.lastPageX=C[0];this.lastPageY=C[1];}},autoScroll:function(J,I,E,K){if(this.scroll){var L=this.DDM.getClientHeight();var B=this.DDM.getClientWidth();var N=this.DDM.getScrollTop();var D=this.DDM.getScrollLeft();var H=E+I;var M=K+J;var G=(L+N-I-this.deltaY);var F=(B+D-J-this.deltaX);var C=40;var A=(document.all)?80:30;if(H>L&&G0&&I-NB&&F0&&J-D0){u=false;}if(u&&z&&!z.cfg.getProperty(A)){z[x].fire(t);}if(u){y[x].fire(t,z);}}else{if(w==U){for(var v in o){if(H.hasOwnProperty(o,v)){y=o[v];if(y.cfg.getProperty(L)&&!(y instanceof YAHOO.widget.MenuBar)&&y.cfg.getProperty(S)==Q){y.hide();if(K.ie&&p.focus&&(K.ie<9)){p.setActive();}}else{if(y.cfg.getProperty(Y)>0){y._cancelShowDelay();}if(y.activeItem){y.activeItem.blur();y.activeItem.cfg.setProperty(J,false);y.activeItem=null;}}}}}}}function n(q,p,r){if(d[r.id]){this.removeMenu(r);}}function k(q,p){var r=p[1];if(r){i=r;}}function f(q,p){i=null;}function a(r,q){var p=q[0],s=this.id;if(p){o[s]=this;}else{if(o[s]){delete o[s];}}}function j(q,p){m(this);}function m(q){var p=q.id;if(p&&h[p]){if(i==q){i=null;}delete h[p];q.destroyEvent.unsubscribe(j);}}function g(q,p){var s=p[0],r;if(s instanceof YAHOO.widget.MenuItem){r=s.id;if(!h[r]){h[r]=s;s.destroyEvent.subscribe(j);}}}return{addMenu:function(q){var p;if(q instanceof YAHOO.widget.Menu&&q.id&&!d[q.id]){d[q.id]=q;if(!l){p=document;Z.on(p,D,e,this,true);Z.on(p,F,e,this,true);Z.on(p,U,e,this,true);Z.on(p,G,e,this,true);Z.on(p,V,e,this,true);Z.on(p,B,e,this,true);Z.on(p,N,e,this,true);Z.on(p,I,e,this,true);Z.onFocus(p,e,this,true);Z.onBlur(p,e,this,true);l=true;}q.cfg.subscribeToConfigEvent(E,a);q.destroyEvent.subscribe(n,q,this);q.itemAddedEvent.subscribe(g);q.focusEvent.subscribe(k);q.blurEvent.subscribe(f);}},removeMenu:function(s){var q,p,r;if(s){q=s.id;if((q in d)&&(d[q]==s)){p=s.getItems();if(p&&p.length>0){r=p.length-1;do{m(p[r]);}while(r--);}delete d[q];if((q in o)&&(o[q]==s)){delete o[q];}if(s.cfg){s.cfg.unsubscribeFromConfigEvent(E,a);}s.destroyEvent.unsubscribe(n,s);s.itemAddedEvent.unsubscribe(g);s.focusEvent.unsubscribe(k);s.blurEvent.unsubscribe(f);}}},hideVisible:function(){var p;for(var q in o){if(H.hasOwnProperty(o,q)){p=o[q];if(!(p instanceof YAHOO.widget.MenuBar)&&p.cfg.getProperty(S)==Q){p.hide();}}}},getVisible:function(){return o;},getMenus:function(){return d;},getMenu:function(q){var p;if(q in d){p=d[q];}return p;},getMenuItem:function(q){var p;if(q in h){p=h[q];}return p;},getMenuItemGroup:function(t){var q=C.get(t),p,v,u,r,s;if(q&&q.tagName&&q.tagName.toUpperCase()==W){v=q.firstChild;if(v){p=[];do{r=v.id;if(r){u=this.getMenuItem(r);if(u){p[p.length]=u;}}}while((v=v.nextSibling));if(p.length>0){s=p;}}}return s;},getFocusedMenuItem:function(){return i;},getFocusedMenu:function(){var p;if(i){p=i.parent.getRoot();}return p;},toString:function(){return R;}};}();})();(function(){var AM=YAHOO.lang,Aq="Menu",G="DIV",K="div",Am="id",AH="SELECT",e="xy",R="y",Ax="UL",L="ul",AJ="first-of-type",k="LI",h="OPTGROUP",Az="OPTION",Ah="disabled",AY="none",y="selected",At="groupindex",i="index",O="submenu",Au="visible",AX="hidedelay",Ac="position",AD="dynamic",C="static",An=AD+","+C,Q="url",M="#",V="target",AU="maxheight",T="topscrollbar",x="bottomscrollbar",d="_",P=T+d+Ah,E=x+d+Ah,b="mousemove",Av="showdelay",c="submenuhidedelay",AF="iframe",w="constraintoviewport",A4="preventcontextoverlap",AO="submenualignment",Z="autosubmenudisplay",AC="clicktohide",g="container",j="scrollincrement",Aj="minscrollheight",A2="classname",Ag="shadow",Ar="keepopen",A0="hd",D="hastitle",p="context",u="",Ak="mousedown",Ae="keydown",Ao="height",U="width",AQ="px",Ay="effect",AE="monitorresize",AW="display",AV="block",J="visibility",z="absolute",AS="zindex",l="yui-menu-body-scrolled",AK=" ",A1=" ",Ai="mouseover",H="mouseout",AR="itemAdded",n="itemRemoved",AL="hidden",s="yui-menu-shadow",AG=s+"-visible",m=s+A1+AG;YAHOO.widget.Menu=function(A6,A5){if(A5){this.parent=A5.parent;this.lazyLoad=A5.lazyLoad||A5.lazyload;this.itemData=A5.itemData||A5.itemdata;}YAHOO.widget.Menu.superclass.constructor.call(this,A6,A5);};function B(A6){var A5=false;if(AM.isString(A6)){A5=(An.indexOf((A6.toLowerCase()))!=-1);}return A5;}var f=YAHOO.util.Dom,AA=YAHOO.util.Event,Aw=YAHOO.widget.Module,AB=YAHOO.widget.Overlay,r=YAHOO.widget.Menu,A3=YAHOO.widget.MenuManager,F=YAHOO.util.CustomEvent,As=YAHOO.env.ua,Ap,AT=false,Ad,Ab=[["mouseOverEvent",Ai],["mouseOutEvent",H],["mouseDownEvent",Ak],["mouseUpEvent","mouseup"],["clickEvent","click"],["keyPressEvent","keypress"],["keyDownEvent",Ae],["keyUpEvent","keyup"],["focusEvent","focus"],["blurEvent","blur"],["itemAddedEvent",AR],["itemRemovedEvent",n]],AZ={key:Au,value:false,validator:AM.isBoolean},AP={key:w,value:true,validator:AM.isBoolean,supercedes:[AF,"x",R,e]},AI={key:A4,value:true,validator:AM.isBoolean,supercedes:[w]},S={key:Ac,value:AD,validator:B,supercedes:[Au,AF]},A={key:AO,value:["tl","tr"]},t={key:Z,value:true,validator:AM.isBoolean,suppressEvent:true},Y={key:Av,value:250,validator:AM.isNumber,suppressEvent:true},q={key:AX,value:0,validator:AM.isNumber,suppressEvent:true},v={key:c,value:250,validator:AM.isNumber,suppressEvent:true},o={key:AC,value:true,validator:AM.isBoolean,suppressEvent:true},AN={key:g,suppressEvent:true},Af={key:j,value:1,validator:AM.isNumber,supercedes:[AU],suppressEvent:true},N={key:Aj,value:90,validator:AM.isNumber,supercedes:[AU],suppressEvent:true},X={key:AU,value:0,validator:AM.isNumber,supercedes:[AF],suppressEvent:true},W={key:A2,value:null,validator:AM.isString,suppressEvent:true},a={key:Ah,value:false,validator:AM.isBoolean,suppressEvent:true},I={key:Ag,value:true,validator:AM.isBoolean,suppressEvent:true,supercedes:[Au]},Al={key:Ar,value:false,validator:AM.isBoolean}; function Aa(A5){Ad=AA.getTarget(A5);}YAHOO.lang.extend(r,AB,{CSS_CLASS_NAME:"yuimenu",ITEM_TYPE:null,GROUP_TITLE_TAG_NAME:"h6",OFF_SCREEN_POSITION:"-999em",_useHideDelay:false,_bHandledMouseOverEvent:false,_bHandledMouseOutEvent:false,_aGroupTitleElements:null,_aItemGroups:null,_aListElements:null,_nCurrentMouseX:0,_bStopMouseEventHandlers:false,_sClassName:null,lazyLoad:false,itemData:null,activeItem:null,parent:null,srcElement:null,init:function(A7,A6){this._aItemGroups=[];this._aListElements=[];this._aGroupTitleElements=[];if(!this.ITEM_TYPE){this.ITEM_TYPE=YAHOO.widget.MenuItem;}var A5;if(AM.isString(A7)){A5=f.get(A7);}else{if(A7.tagName){A5=A7;}}if(A5&&A5.tagName){switch(A5.tagName.toUpperCase()){case G:this.srcElement=A5;if(!A5.id){A5.setAttribute(Am,f.generateId());}r.superclass.init.call(this,A5);this.beforeInitEvent.fire(r);break;case AH:this.srcElement=A5;r.superclass.init.call(this,f.generateId());this.beforeInitEvent.fire(r);break;}}else{r.superclass.init.call(this,A7);this.beforeInitEvent.fire(r);}if(this.element){f.addClass(this.element,this.CSS_CLASS_NAME);this.initEvent.subscribe(this._onInit);this.beforeRenderEvent.subscribe(this._onBeforeRender);this.renderEvent.subscribe(this._onRender);this.beforeShowEvent.subscribe(this._onBeforeShow);this.hideEvent.subscribe(this._onHide);this.showEvent.subscribe(this._onShow);this.beforeHideEvent.subscribe(this._onBeforeHide);this.mouseOverEvent.subscribe(this._onMouseOver);this.mouseOutEvent.subscribe(this._onMouseOut);this.clickEvent.subscribe(this._onClick);this.keyDownEvent.subscribe(this._onKeyDown);this.keyPressEvent.subscribe(this._onKeyPress);this.blurEvent.subscribe(this._onBlur);if(!AT){AA.onFocus(document,Aa);AT=true;}if((As.gecko&&As.gecko<1.9)||(As.webkit&&As.webkit<523)){this.cfg.subscribeToConfigEvent(R,this._onYChange);}if(A6){this.cfg.applyConfig(A6,true);}A3.addMenu(this);this.initEvent.fire(r);}},_initSubTree:function(){var A6=this.srcElement,A5,A8,BB,BC,BA,A9,A7;if(A6){A5=(A6.tagName&&A6.tagName.toUpperCase());if(A5==G){BC=this.body.firstChild;if(BC){A8=0;BB=this.GROUP_TITLE_TAG_NAME.toUpperCase();do{if(BC&&BC.tagName){switch(BC.tagName.toUpperCase()){case BB:this._aGroupTitleElements[A8]=BC;break;case Ax:this._aListElements[A8]=BC;this._aItemGroups[A8]=[];A8++;break;}}}while((BC=BC.nextSibling));if(this._aListElements[0]){f.addClass(this._aListElements[0],AJ);}}}BC=null;if(A5){switch(A5){case G:BA=this._aListElements;A9=BA.length;if(A9>0){A7=A9-1;do{BC=BA[A7].firstChild;if(BC){do{if(BC&&BC.tagName&&BC.tagName.toUpperCase()==k){this.addItem(new this.ITEM_TYPE(BC,{parent:this}),A7);}}while((BC=BC.nextSibling));}}while(A7--);}break;case AH:BC=A6.firstChild;do{if(BC&&BC.tagName){switch(BC.tagName.toUpperCase()){case h:case Az:this.addItem(new this.ITEM_TYPE(BC,{parent:this}));break;}}}while((BC=BC.nextSibling));break;}}}},_getFirstEnabledItem:function(){var A5=this.getItems(),A9=A5.length,A8,A7;for(var A6=0;A6=A8.length);if(A8[BF]){A8.splice(BF,0,BD);}else{A8[BF]=BD;}BE=A8[BF];if(BE){if(A9&&(!BE.element.parentNode||BE.element.parentNode.nodeType==11)){this._aListElements[BG].appendChild(BE.element);}else{A6=A5(A8,(BF+1));if(A6&&(!BE.element.parentNode||BE.element.parentNode.nodeType==11)){this._aListElements[BG].insertBefore(BE.element,A6.element);}}BE.parent=this;this._subscribeToItemEvents(BE);this._configureSubmenu(BE);this._updateItemProperties(BG);this.itemAddedEvent.fire(BE);this.changeContentEvent.fire();BC=BE;}}else{A7=A8.length;A8[A7]=BD;BE=A8[A7];if(BE){if(!f.isAncestor(this._aListElements[BG],BE.element)){this._aListElements[BG].appendChild(BE.element);}BE.element.setAttribute(At,BG);BE.element.setAttribute(i,A7);BE.parent=this;BE.index=A7;BE.groupIndex=BG;this._subscribeToItemEvents(BE);this._configureSubmenu(BE);if(A7===0){f.addClass(BE.element,AJ);}this.itemAddedEvent.fire(BE);this.changeContentEvent.fire();BC=BE;}}}return BC;},_removeItemFromGroupByIndex:function(A8,A6){var A7=AM.isNumber(A8)?A8:0,A9=this._getItemGroup(A7),BB,BA,A5;if(A9){BB=A9.splice(A6,1);BA=BB[0];if(BA){this._updateItemProperties(A7);if(A9.length===0){A5=this._aListElements[A7];if(A5&&A5.parentNode){A5.parentNode.removeChild(A5);}this._aItemGroups.splice(A7,1);this._aListElements.splice(A7,1);A5=this._aListElements[0];if(A5){f.addClass(A5,AJ);}}this.itemRemovedEvent.fire(BA);this.changeContentEvent.fire();}}return BA;},_removeItemFromGroupByValue:function(A8,A5){var BA=this._getItemGroup(A8),BB,A9,A7,A6;if(BA){BB=BA.length;A9=-1;if(BB>0){A6=BB-1;do{if(BA[A6]==A5){A9=A6;break;}}while(A6--);if(A9>-1){A7=this._removeItemFromGroupByIndex(A8,A9);}}}return A7;},_updateItemProperties:function(A6){var A7=this._getItemGroup(A6),BA=A7.length,A9,A8,A5;if(BA>0){A5=BA-1;do{A9=A7[A5];if(A9){A8=A9.element;A9.index=A5;A9.groupIndex=A6;A8.setAttribute(At,A6);A8.setAttribute(i,A5);f.removeClass(A8,AJ);}}while(A5--);if(A8){f.addClass(A8,AJ);}}},_createItemGroup:function(A7){var A5,A6;if(!this._aItemGroups[A7]){this._aItemGroups[A7]=[];A5=document.createElement(L);this._aListElements[A7]=A5;A6=this._aItemGroups[A7];}return A6;},_getItemGroup:function(A7){var A5=AM.isNumber(A7)?A7:0,A8=this._aItemGroups,A6;if(A5 in A8){A6=A8[A5];}return A6;},_configureSubmenu:function(A5){var A6=A5.cfg.getProperty(O);if(A6){this.cfg.configChangedEvent.subscribe(this._onParentMenuConfigChange,A6,true);this.renderEvent.subscribe(this._onParentMenuRender,A6,true);}},_subscribeToItemEvents:function(A5){A5.destroyEvent.subscribe(this._onMenuItemDestroy,A5,this); A5.cfg.configChangedEvent.subscribe(this._onMenuItemConfigChange,A5,this);},_onVisibleChange:function(A7,A6){var A5=A6[0];if(A5){f.addClass(this.element,Au);}else{f.removeClass(this.element,Au);}},_cancelHideDelay:function(){var A5=this.getRoot()._hideDelayTimer;if(A5){A5.cancel();}},_execHideDelay:function(){this._cancelHideDelay();var A5=this.getRoot();A5._hideDelayTimer=AM.later(A5.cfg.getProperty(AX),this,function(){if(A5.activeItem){if(A5.hasFocus()){A5.activeItem.focus();}A5.clearActiveItem();}if(A5==this&&!(this instanceof YAHOO.widget.MenuBar)&&this.cfg.getProperty(Ac)==AD){this.hide();}});},_cancelShowDelay:function(){var A5=this.getRoot()._showDelayTimer;if(A5){A5.cancel();}},_execSubmenuHideDelay:function(A7,A6,A5){A7._submenuHideDelayTimer=AM.later(50,this,function(){if(this._nCurrentMouseX>(A6+10)){A7._submenuHideDelayTimer=AM.later(A5,A7,function(){this.hide();});}else{A7.hide();}});},_disableScrollHeader:function(){if(!this._bHeaderDisabled){f.addClass(this.header,P);this._bHeaderDisabled=true;}},_disableScrollFooter:function(){if(!this._bFooterDisabled){f.addClass(this.footer,E);this._bFooterDisabled=true;}},_enableScrollHeader:function(){if(this._bHeaderDisabled){f.removeClass(this.header,P);this._bHeaderDisabled=false;}},_enableScrollFooter:function(){if(this._bFooterDisabled){f.removeClass(this.footer,E);this._bFooterDisabled=false;}},_onMouseOver:function(BH,BA){var BI=BA[0],BE=BA[1],A5=AA.getTarget(BI),A9=this.getRoot(),BG=this._submenuHideDelayTimer,A6,A8,BD,A7,BC,BB;var BF=function(){if(this.parent.cfg.getProperty(y)){this.show();}};if(!this._bStopMouseEventHandlers){if(!this._bHandledMouseOverEvent&&(A5==this.element||f.isAncestor(this.element,A5))){if(this._useHideDelay){this._cancelHideDelay();}this._nCurrentMouseX=0;AA.on(this.element,b,this._onMouseMove,this,true);if(!(BE&&f.isAncestor(BE.element,AA.getRelatedTarget(BI)))){this.clearActiveItem();}if(this.parent&&BG){BG.cancel();this.parent.cfg.setProperty(y,true);A6=this.parent.parent;A6._bHandledMouseOutEvent=true;A6._bHandledMouseOverEvent=false;}this._bHandledMouseOverEvent=true;this._bHandledMouseOutEvent=false;}if(BE&&!BE.handledMouseOverEvent&&!BE.cfg.getProperty(Ah)&&(A5==BE.element||f.isAncestor(BE.element,A5))){A8=this.cfg.getProperty(Av);BD=(A8>0);if(BD){this._cancelShowDelay();}A7=this.activeItem;if(A7){A7.cfg.setProperty(y,false);}BC=BE.cfg;BC.setProperty(y,true);if(this.hasFocus()||A9._hasFocus){BE.focus();A9._hasFocus=false;}if(this.cfg.getProperty(Z)){BB=BC.getProperty(O);if(BB){if(BD){A9._showDelayTimer=AM.later(A9.cfg.getProperty(Av),BB,BF);}else{BB.show();}}}BE.handledMouseOverEvent=true;BE.handledMouseOutEvent=false;}}},_onMouseOut:function(BD,A7){var BE=A7[0],BB=A7[1],A8=AA.getRelatedTarget(BE),BC=false,BA,A9,A5,A6;if(!this._bStopMouseEventHandlers){if(BB&&!BB.cfg.getProperty(Ah)){BA=BB.cfg;A9=BA.getProperty(O);if(A9&&(A8==A9.element||f.isAncestor(A9.element,A8))){BC=true;}if(!BB.handledMouseOutEvent&&((A8!=BB.element&&!f.isAncestor(BB.element,A8))||BC)){if(!BC){BB.cfg.setProperty(y,false);if(A9){A5=this.cfg.getProperty(c);A6=this.cfg.getProperty(Av);if(!(this instanceof YAHOO.widget.MenuBar)&&A5>0&&A5>=A6){this._execSubmenuHideDelay(A9,AA.getPageX(BE),A5);}else{A9.hide();}}}BB.handledMouseOutEvent=true;BB.handledMouseOverEvent=false;}}if(!this._bHandledMouseOutEvent){if(this._didMouseLeave(A8)||BC){if(this._useHideDelay){this._execHideDelay();}AA.removeListener(this.element,b,this._onMouseMove);this._nCurrentMouseX=AA.getPageX(BE);this._bHandledMouseOutEvent=true;this._bHandledMouseOverEvent=false;}}}},_didMouseLeave:function(A5){return(A5===this._shadow||(A5!=this.element&&!f.isAncestor(this.element,A5)));},_onMouseMove:function(A6,A5){if(!this._bStopMouseEventHandlers){this._nCurrentMouseX=AA.getPageX(A6);}},_onClick:function(BG,A7){var BH=A7[0],BB=A7[1],BD=false,A9,BE,A6,A5,BA,BC,BF;var A8=function(){A6=this.getRoot();if(A6 instanceof YAHOO.widget.MenuBar||A6.cfg.getProperty(Ac)==C){A6.clearActiveItem();}else{A6.hide();}};if(BB){if(BB.cfg.getProperty(Ah)){AA.preventDefault(BH);A8.call(this);}else{A9=BB.cfg.getProperty(O);BA=BB.cfg.getProperty(Q);if(BA){BC=BA.indexOf(M);BF=BA.length;if(BC!=-1){BA=BA.substr(BC,BF);BF=BA.length;if(BF>1){A5=BA.substr(1,BF);BE=YAHOO.widget.MenuManager.getMenu(A5);if(BE){BD=(this.getRoot()===BE.getRoot());}}else{if(BF===1){BD=true;}}}}if(BD&&!BB.cfg.getProperty(V)){AA.preventDefault(BH);if(As.webkit){BB.focus();}else{BB.focusEvent.fire();}}if(!A9&&!this.cfg.getProperty(Ar)){A8.call(this);}}}},_stopMouseEventHandlers:function(){this._bStopMouseEventHandlers=true;AM.later(10,this,function(){this._bStopMouseEventHandlers=false;});},_onKeyDown:function(BJ,BD){var BG=BD[0],BF=BD[1],BC,BH,A6,A9,BK,A5,BN,A8,BI,A7,BE,BM,BA,BB;if(this._useHideDelay){this._cancelHideDelay();}if(BF&&!BF.cfg.getProperty(Ah)){BH=BF.cfg;A6=this.parent;switch(BG.keyCode){case 38:case 40:BK=(BG.keyCode==38)?BF.getPreviousEnabledSibling():BF.getNextEnabledSibling();if(BK){this.clearActiveItem();BK.cfg.setProperty(y,true);BK.focus();if(this.cfg.getProperty(AU)>0||f.hasClass(this.body,l)){A5=this.body;BN=A5.scrollTop;A8=A5.offsetHeight;BI=this.getItems();A7=BI.length-1;BE=BK.element.offsetTop;if(BG.keyCode==40){if(BE>=(A8+BN)){A5.scrollTop=BE-A8;}else{if(BE<=BN){A5.scrollTop=0;}}if(BK==BI[A7]){A5.scrollTop=BK.element.offsetTop;}}else{if(BE<=BN){A5.scrollTop=BE-BK.element.offsetHeight;}else{if(BE>=(BN+A8)){A5.scrollTop=BE;}}if(BK==BI[0]){A5.scrollTop=0;}}BN=A5.scrollTop;BM=A5.scrollHeight-A5.offsetHeight;if(BN===0){this._disableScrollHeader();this._enableScrollFooter();}else{if(BN==BM){this._enableScrollHeader();this._disableScrollFooter();}else{this._enableScrollHeader();this._enableScrollFooter();}}}}AA.preventDefault(BG);this._stopMouseEventHandlers();break;case 39:BC=BH.getProperty(O);if(BC){if(!BH.getProperty(y)){BH.setProperty(y,true);}BC.show();BC.setInitialFocus();BC.setInitialSelection();}else{A9=this.getRoot();if(A9 instanceof YAHOO.widget.MenuBar){BK=A9.activeItem.getNextEnabledSibling(); -if(BK){A9.clearActiveItem();BK.cfg.setProperty(y,true);BC=BK.cfg.getProperty(O);if(BC){BC.show();BC.setInitialFocus();}else{BK.focus();}}}}AA.preventDefault(BG);this._stopMouseEventHandlers();break;case 37:if(A6){BA=A6.parent;if(BA instanceof YAHOO.widget.MenuBar){BK=BA.activeItem.getPreviousEnabledSibling();if(BK){BA.clearActiveItem();BK.cfg.setProperty(y,true);BC=BK.cfg.getProperty(O);if(BC){BC.show();BC.setInitialFocus();}else{BK.focus();}}}else{this.hide();A6.focus();}}AA.preventDefault(BG);this._stopMouseEventHandlers();break;}}if(BG.keyCode==27){if(this.cfg.getProperty(Ac)==AD){this.hide();if(this.parent){this.parent.focus();}else{BB=this._focusedElement;if(BB&&BB.focus){try{BB.focus();}catch(BL){}}}}else{if(this.activeItem){BC=this.activeItem.cfg.getProperty(O);if(BC&&BC.cfg.getProperty(Au)){BC.hide();this.activeItem.focus();}else{this.activeItem.blur();this.activeItem.cfg.setProperty(y,false);}}}AA.preventDefault(BG);}},_onKeyPress:function(A7,A6){var A5=A6[0];if(A5.keyCode==40||A5.keyCode==38){AA.preventDefault(A5);}},_onBlur:function(A6,A5){if(this._hasFocus){this._hasFocus=false;}},_onYChange:function(A6,A5){var A8=this.parent,BA,A7,A9;if(A8){BA=A8.parent.body.scrollTop;if(BA>0){A9=(this.cfg.getProperty(R)-BA);f.setY(this.element,A9);A7=this.iframe;if(A7){f.setY(A7,A9);}this.cfg.setProperty(R,A9,true);}}},_onScrollTargetMouseOver:function(BB,BE){var BD=this._bodyScrollTimer;if(BD){BD.cancel();}this._cancelHideDelay();var A7=AA.getTarget(BB),A9=this.body,A8=this.cfg.getProperty(j),A5,A6;function BC(){var BF=A9.scrollTop;if(BF0){A9.scrollTop=(BF-A8);this._enableScrollFooter();}else{A9.scrollTop=0;this._bodyScrollTimer.cancel();this._disableScrollHeader();}}if(f.hasClass(A7,A0)){A6=BA;}else{A5=A9.scrollHeight-A9.offsetHeight;A6=BC;}this._bodyScrollTimer=AM.later(10,this,A6,null,true);},_onScrollTargetMouseOut:function(A7,A5){var A6=this._bodyScrollTimer;if(A6){A6.cancel();}this._cancelHideDelay();},_onInit:function(A6,A5){this.cfg.subscribeToConfigEvent(Au,this._onVisibleChange);var A7=!this.parent,A8=this.lazyLoad;if(((A7&&!A8)||(A7&&(this.cfg.getProperty(Au)||this.cfg.getProperty(Ac)==C))||(!A7&&!A8))&&this.getItemGroups().length===0){if(this.srcElement){this._initSubTree();}if(this.itemData){this.addItems(this.itemData);}}else{if(A8){this.cfg.fireQueue();}}},_onBeforeRender:function(A8,A7){var A9=this.element,BC=this._aListElements.length,A6=true,BB=0,A5,BA;if(BC>0){do{A5=this._aListElements[BB];if(A5){if(A6){f.addClass(A5,AJ);A6=false;}if(!f.isAncestor(A9,A5)){this.appendToBody(A5);}BA=this._aGroupTitleElements[BB];if(BA){if(!f.isAncestor(A9,BA)){A5.parentNode.insertBefore(BA,A5);}f.addClass(A5,D);}}BB++;}while(BBBJ){BX=(BJ-BW);}else{BX=(BJ+BK);}BS.cfg.setProperty(R,(BX+BP),true);return BX;};var A8=function(){if((BS.cfg.getProperty(R)-BP)>BJ){return(A7-BQ);}else{return(BE-BQ);}};var BN=function(){var BX;if((BS.cfg.getProperty(R)-BP)>BJ){BX=(BJ+BK);}else{BX=(BJ-BC.offsetHeight);}BS.cfg.setProperty(R,(BX+BP),true);};var A6=function(){BS._setScrollHeight(this.cfg.getProperty(AU));BS.hideEvent.unsubscribe(A6);};var BT=function(){var Ba=A8(),BX=(BS.getItems().length>0),BZ,BY;if(BW>Ba){BZ=BX?BS.cfg.getProperty(Aj):BW;if((Ba>BZ)&&BX){BR=Ba;}else{BR=BV;}BS._setScrollHeight(BR);BS.hideEvent.subscribe(A6);BN();if(BaA9){if(BM){if(BS.cfg.getProperty(A4)&&BA){BD=BO[0];BK=BD.offsetHeight;BJ=(f.getY(BD)-BP);BE=BJ;A7=(BL-(BJ+BK));BT();A5=BS.cfg.getProperty(R);}else{if(!(BS instanceof YAHOO.widget.MenuBar)&&BW>=BL){BU=(BL-(BQ*2));if(BU>BS.cfg.getProperty(Aj)){BS._setScrollHeight(BU);BS.hideEvent.subscribe(A6);BN();A5=BS.cfg.getProperty(R);}}else{if(BHA9){A5=A9;}}}}}else{A5=BQ+BP;}}return A5;},_onHide:function(A6,A5){if(this.cfg.getProperty(Ac)===AD){this.positionOffScreen();}},_onShow:function(BD,BB){var A5=this.parent,A7,A8,BA,A6;function A9(BF){var BE;if(BF.type==Ak||(BF.type==Ae&&BF.keyCode==27)){BE=AA.getTarget(BF);if(BE!=A7.element||!f.isAncestor(A7.element,BE)){A7.cfg.setProperty(Z,false);AA.removeListener(document,Ak,A9);AA.removeListener(document,Ae,A9);}}}function BC(BF,BE,BG){this.cfg.setProperty(U,u);this.hideEvent.unsubscribe(BC,BG);}if(A5){A7=A5.parent;if(!A7.cfg.getProperty(Z)&&(A7 instanceof YAHOO.widget.MenuBar||A7.cfg.getProperty(Ac)==C)){A7.cfg.setProperty(Z,true); +if(BK){A9.clearActiveItem();BK.cfg.setProperty(y,true);BC=BK.cfg.getProperty(O);if(BC){BC.show();BC.setInitialFocus();}else{BK.focus();}}}}AA.preventDefault(BG);this._stopMouseEventHandlers();break;case 37:if(A6){BA=A6.parent;if(BA instanceof YAHOO.widget.MenuBar){BK=BA.activeItem.getPreviousEnabledSibling();if(BK){BA.clearActiveItem();BK.cfg.setProperty(y,true);BC=BK.cfg.getProperty(O);if(BC){BC.show();BC.setInitialFocus();}else{BK.focus();}}}else{this.hide();A6.focus();}}AA.preventDefault(BG);this._stopMouseEventHandlers();break;}}if(BG.keyCode==27){if(this.cfg.getProperty(Ac)==AD){this.hide();if(this.parent){this.parent.focus();}else{BB=this._focusedElement;if(BB&&BB.focus){try{BB.focus();}catch(BL){}}}}else{if(this.activeItem){BC=this.activeItem.cfg.getProperty(O);if(BC&&BC.cfg.getProperty(Au)){BC.hide();this.activeItem.focus();}else{this.activeItem.blur();this.activeItem.cfg.setProperty(y,false);}}}AA.preventDefault(BG);}},_onKeyPress:function(A7,A6){var A5=A6[0];if(A5.keyCode==40||A5.keyCode==38){AA.preventDefault(A5);}},_onBlur:function(A6,A5){if(this._hasFocus){this._hasFocus=false;}},_onYChange:function(A6,A5){var A8=this.parent,BA,A7,A9;if(A8){BA=A8.parent.body.scrollTop;if(BA>0){A9=(this.cfg.getProperty(R)-BA);f.setY(this.element,A9);A7=this.iframe;if(A7){f.setY(A7,A9);}this.cfg.setProperty(R,A9,true);}}},_onScrollTargetMouseOver:function(BB,BE){var BD=this._bodyScrollTimer;if(BD){BD.cancel();}this._cancelHideDelay();var A7=AA.getTarget(BB),A9=this.body,A8=this.cfg.getProperty(j),A5,A6;function BC(){var BF=A9.scrollTop;if(BF0){A9.scrollTop=(BF-A8);this._enableScrollFooter();}else{A9.scrollTop=0;this._bodyScrollTimer.cancel();this._disableScrollHeader();}}if(f.hasClass(A7,A0)){A6=BA;}else{A5=A9.scrollHeight-A9.offsetHeight;A6=BC;}this._bodyScrollTimer=AM.later(10,this,A6,null,true);},_onScrollTargetMouseOut:function(A7,A5){var A6=this._bodyScrollTimer;if(A6){A6.cancel();}this._cancelHideDelay();},_onInit:function(A6,A5){this.cfg.subscribeToConfigEvent(Au,this._onVisibleChange);var A7=!this.parent,A8=this.lazyLoad;if(((A7&&!A8)||(A7&&(this.cfg.getProperty(Au)||this.cfg.getProperty(Ac)==C))||(!A7&&!A8))&&this.getItemGroups().length===0){if(this.srcElement){this._initSubTree();}if(this.itemData){this.addItems(this.itemData);}}else{if(A8){this.cfg.fireQueue();}}},_onBeforeRender:function(A8,A7){var A9=this.element,BC=this._aListElements.length,A6=true,BB=0,A5,BA;if(BC>0){do{A5=this._aListElements[BB];if(A5){if(A6){f.addClass(A5,AJ);A6=false;}if(!f.isAncestor(A9,A5)){this.appendToBody(A5);}BA=this._aGroupTitleElements[BB];if(BA){if(!f.isAncestor(A9,BA)){A5.parentNode.insertBefore(BA,A5);}f.addClass(A5,D);}}BB++;}while(BBBJ){BX=(BJ-BW);}else{BX=(BJ+BK);}BS.cfg.setProperty(R,(BX+BP),true);return BX;};var A8=function(){if(BS.cfg.getProperty(R)==0||(BS.cfg.getProperty(R)-BP)>BJ){return(A7-BQ);}else{return(BE-BQ);}};var BN=function(){var BX;if((BS.cfg.getProperty(R)-BP)>BJ){BX=(BJ+BK);}else{BX=(BJ-BC.offsetHeight);}BS.cfg.setProperty(R,(BX+BP),true);};var A6=function(){BS._setScrollHeight(this.cfg.getProperty(AU));BS.hideEvent.unsubscribe(A6);};var BT=function(){var Ba=A8(),BX=(BS.getItems().length>0),BZ,BY;if(BW>Ba){BZ=BX?BS.cfg.getProperty(Aj):BW;if((Ba>BZ)&&BX){BR=Ba;}else{BR=BV;}BS._setScrollHeight(BR);BS.hideEvent.subscribe(A6);BN();if(BaA9){if(BM){if(BS.cfg.getProperty(A4)&&BA){BD=BO[0];BK=BD.offsetHeight;BJ=(f.getY(BD)-BP);BE=BJ;A7=(BL-(BJ+BK));BT();A5=BS.cfg.getProperty(R);}else{if(!(BS instanceof YAHOO.widget.MenuBar)&&BW>=BL){BU=(BL-(BQ*2));if(BU>BS.cfg.getProperty(Aj)){BS._setScrollHeight(BU);BS.hideEvent.subscribe(A6);BN();A5=BS.cfg.getProperty(R);}}else{if(BHA9){A5=A9;}}}}}else{A5=BQ+BP;}}return A5;},_onHide:function(A6,A5){if(this.cfg.getProperty(Ac)===AD){this.positionOffScreen();}},_onShow:function(BD,BB){var A5=this.parent,A7,A8,BA,A6;function A9(BF){var BE;if(BF.type==Ak||(BF.type==Ae&&BF.keyCode==27)){BE=AA.getTarget(BF);if(BE!=A7.element||!f.isAncestor(A7.element,BE)){A7.cfg.setProperty(Z,false);AA.removeListener(document,Ak,A9);AA.removeListener(document,Ae,A9);}}}function BC(BF,BE,BG){this.cfg.setProperty(U,u);this.hideEvent.unsubscribe(BC,BG);}if(A5){A7=A5.parent;if(!A7.cfg.getProperty(Z)&&(A7 instanceof YAHOO.widget.MenuBar||A7.cfg.getProperty(Ac)==C)){A7.cfg.setProperty(Z,true); AA.on(document,Ak,A9);AA.on(document,Ae,A9);}if((this.cfg.getProperty("x")0);},configContainer:function(A6,A5,A8){var A7=A5[0];if(AM.isString(A7)){this.cfg.setProperty(g,f.get(A7),true);}},_clearSetWidthFlag:function(){this._widthSetForScroll=false;this.cfg.unsubscribeFromConfigEvent(U,this._clearSetWidthFlag);},_subscribeScrollHandlers:function(A6,A5){var A8=this._onScrollTargetMouseOver;var A7=this._onScrollTargetMouseOut;AA.on(A6,Ai,A8,this,true);AA.on(A6,H,A7,this,true);AA.on(A5,Ai,A8,this,true);AA.on(A5,H,A7,this,true);},_unsubscribeScrollHandlers:function(A6,A5){var A8=this._onScrollTargetMouseOver;var A7=this._onScrollTargetMouseOut;AA.removeListener(A6,Ai,A8);AA.removeListener(A6,H,A7);AA.removeListener(A5,Ai,A8);AA.removeListener(A5,H,A7);},_setScrollHeight:function(BF){var BC=BF,BB=false,BG=false,A8,A9,BE,A6,A5,BD,BA,A7;if(this.getItems().length>0){A8=this.element;A9=this.body;BE=this.header;A6=this.footer;A5=this.cfg.getProperty(Aj);if(BC>0&&BC0&&BG&&!this.cfg.getProperty(U)){BA=A8.offsetWidth;A8.style.width=BA+AQ;A7=(BA-(A8.offsetWidth-BA))+AQ;this.cfg.unsubscribeFromConfigEvent(U,this._clearSetWidthFlag);this.cfg.setProperty(U,A7);this._widthSetForScroll=true;this.cfg.subscribeToConfigEvent(U,this._clearSetWidthFlag);}if(BC>0&&(!BE&&!A6)){this.setHeader(AK);this.setFooter(AK);BE=this.header;A6=this.footer;f.addClass(BE,T);f.addClass(A6,x);A8.insertBefore(BE,A9);A8.appendChild(A6);}BD=BC;if(BE&&A6){BD=(BD-(BE.offsetHeight+A6.offsetHeight));}if((BD>0)&&(A9.offsetHeight>BC)){f.addClass(A9,l);f.setStyle(A9,Ao,(BD+AQ));if(!this._hasScrollEventHandlers){this._subscribeScrollHandlers(BE,A6);this._hasScrollEventHandlers=true;}this._disableScrollHeader();this._enableScrollFooter();BB=true;}else{if(BE&&A6){if(this._widthSetForScroll){this._widthSetForScroll=false;this.cfg.unsubscribeFromConfigEvent(U,this._clearSetWidthFlag);this.cfg.setProperty(U,u);}this._enableScrollHeader();this._enableScrollFooter();if(this._hasScrollEventHandlers){this._unsubscribeScrollHandlers(BE,A6);this._hasScrollEventHandlers=false;}A8.removeChild(BE);A8.removeChild(A6);this.header=null;this.footer=null;BB=true;}}if(BB){this.cfg.refireEvent(AF);this.cfg.refireEvent(Ag);}}},_setMaxHeight:function(A6,A5,A7){this._setScrollHeight(A7);this.renderEvent.unsubscribe(this._setMaxHeight);},configMaxHeight:function(A6,A5,A7){var A8=A5[0];if(this.lazyLoad&&!this.body&&A8>0){this.renderEvent.subscribe(this._setMaxHeight,A8,this);}else{this._setScrollHeight(A8);}},configClassName:function(A7,A6,A8){var A5=A6[0];if(this._sClassName){f.removeClass(this.element,this._sClassName);}f.addClass(this.element,A5);this._sClassName=A5;},_onItemAdded:function(A6,A5){var A7=A5[0];if(A7){A7.cfg.setProperty(Ah,true);}},configDisabled:function(A7,A6,BA){var A9=A6[0],A5=this.getItems(),BB,A8;if(AM.isArray(A5)){BB=A5.length;if(BB>0){A8=BB-1;do{A5[A8].cfg.setProperty(Ah,A9);}while(A8--);}if(A9){this.clearActiveItem(true);f.addClass(this.element,Ah);this.itemAddedEvent.subscribe(this._onItemAdded);}else{f.removeClass(this.element,Ah);this.itemAddedEvent.unsubscribe(this._onItemAdded); }}},_sizeShadow:function(){var A6=this.element,A5=this._shadow;if(A5&&A6){if(A5.style.width&&A5.style.height){A5.style.width=u;A5.style.height=u;}A5.style.width=(A6.offsetWidth+6)+AQ;A5.style.height=(A6.offsetHeight+1)+AQ;}},_replaceShadow:function(){this.element.appendChild(this._shadow);},_addShadowVisibleClass:function(){f.addClass(this._shadow,AG);},_removeShadowVisibleClass:function(){f.removeClass(this._shadow,AG);},_removeShadow:function(){var A5=(this._shadow&&this._shadow.parentNode);if(A5){A5.removeChild(this._shadow);}this.beforeShowEvent.unsubscribe(this._addShadowVisibleClass);this.beforeHideEvent.unsubscribe(this._removeShadowVisibleClass);this.cfg.unsubscribeFromConfigEvent(U,this._sizeShadow);this.cfg.unsubscribeFromConfigEvent(Ao,this._sizeShadow);this.cfg.unsubscribeFromConfigEvent(AU,this._sizeShadow);this.cfg.unsubscribeFromConfigEvent(AU,this._replaceShadow);this.changeContentEvent.unsubscribe(this._sizeShadow);Aw.textResizeEvent.unsubscribe(this._sizeShadow);},_createShadow:function(){var A6=this._shadow,A5;if(!A6){A5=this.element;if(!Ap){Ap=document.createElement(K);Ap.className=m;}A6=Ap.cloneNode(false);A5.appendChild(A6);this._shadow=A6;this.beforeShowEvent.subscribe(this._addShadowVisibleClass);this.beforeHideEvent.subscribe(this._removeShadowVisibleClass);if(As.ie){AM.later(0,this,function(){this._sizeShadow();this.syncIframe();});this.cfg.subscribeToConfigEvent(U,this._sizeShadow);this.cfg.subscribeToConfigEvent(Ao,this._sizeShadow);this.cfg.subscribeToConfigEvent(AU,this._sizeShadow);this.changeContentEvent.subscribe(this._sizeShadow);Aw.textResizeEvent.subscribe(this._sizeShadow,this,true);this.destroyEvent.subscribe(function(){Aw.textResizeEvent.unsubscribe(this._sizeShadow,this);});}this.cfg.subscribeToConfigEvent(AU,this._replaceShadow);}},_shadowBeforeShow:function(){if(this._shadow){this._replaceShadow();if(As.ie){this._sizeShadow();}}else{this._createShadow();}this.beforeShowEvent.unsubscribe(this._shadowBeforeShow);},configShadow:function(A6,A5,A7){var A8=A5[0];if(A8&&this.cfg.getProperty(Ac)==AD){if(this.cfg.getProperty(Au)){if(this._shadow){this._replaceShadow();if(As.ie){this._sizeShadow();}}else{this._createShadow();}}else{this.beforeShowEvent.subscribe(this._shadowBeforeShow);}}else{if(!A8){this.beforeShowEvent.unsubscribe(this._shadowBeforeShow);this._removeShadow();}}},initEvents:function(){r.superclass.initEvents.call(this);var A6=Ab.length-1,A7,A5;do{A7=Ab[A6];A5=this.createEvent(A7[1]);A5.signature=F.LIST;this[A7[0]]=A5;}while(A6--);},positionOffScreen:function(){var A6=this.iframe,A7=this.element,A5=this.OFF_SCREEN_POSITION;A7.style.top=u;A7.style.left=u;if(A6){A6.style.top=A5;A6.style.left=A5;}},getRoot:function(){var A7=this.parent,A6,A5;if(A7){A6=A7.parent;A5=A6?A6.getRoot():this;}else{A5=this;}return A5;},toString:function(){var A6=Aq,A5=this.id;if(A5){A6+=(A1+A5);}return A6;},setItemGroupTitle:function(BA,A9){var A8,A7,A6,A5;if(AM.isString(BA)&&BA.length>0){A8=AM.isNumber(A9)?A9:0;A7=this._aGroupTitleElements[A8];if(A7){A7.innerHTML=BA;}else{A7=document.createElement(this.GROUP_TITLE_TAG_NAME);A7.innerHTML=BA;this._aGroupTitleElements[A8]=A7;}A6=this._aGroupTitleElements.length-1;do{if(this._aGroupTitleElements[A6]){f.removeClass(this._aGroupTitleElements[A6],AJ);A5=A6;}}while(A6--);if(A5!==null){f.addClass(this._aGroupTitleElements[A5],AJ);}this.changeContentEvent.fire();}},addItem:function(A5,A6){return this._addItemToGroup(A6,A5);},addItems:function(A9,A8){var BB,A5,BA,A6,A7;if(AM.isArray(A9)){BB=A9.length;A5=[];for(A6=0;A60){A5=[];for(A8=0;A80){BA=A6-1;do{BC=A9[BA];if(BC){BB=BC.cfg.getProperty(O);if(BB){this.cfg.configChangedEvent.unsubscribe(this._onParentMenuConfigChange,BB);this.renderEvent.unsubscribe(this._onParentMenuRender,BB);}this.removeItem(BC,BC.groupIndex);}}while(BA--);}if(BD){AA.purgeElement(BD);A7.removeChild(BD);}if(A5){AA.purgeElement(A5);A7.removeChild(A5);}if(A8){AA.purgeElement(A8);A8.innerHTML=u;}this.activeItem=null;this._aItemGroups=[];this._aListElements=[];this._aGroupTitleElements=[];this.cfg.setProperty(U,null);},destroy:function(A5){this.clearContent();this._aItemGroups=null;this._aListElements=null;this._aGroupTitleElements=null;r.superclass.destroy.call(this,A5);},setInitialFocus:function(){var A5=this._getFirstEnabledItem();if(A5){A5.focus();}},setInitialSelection:function(){var A5=this._getFirstEnabledItem();if(A5){A5.cfg.setProperty(y,true);}},clearActiveItem:function(A7){if(this.cfg.getProperty(Av)>0){this._cancelShowDelay();}var A5=this.activeItem,A8,A6;if(A5){A8=A5.cfg;if(A7){A5.blur();this.getRoot()._hasFocus=true;}A8.setProperty(y,false);A6=A8.getProperty(O);if(A6){A6.hide();}this.activeItem=null;}},focus:function(){if(!this.hasFocus()){this.setInitialFocus();}},blur:function(){var A5;if(this.hasFocus()){A5=A3.getFocusedMenuItem();if(A5){A5.blur();}}},hasFocus:function(){return(A3.getFocusedMenu()==this.getRoot()); },_doItemSubmenuSubscribe:function(A6,A5,A8){var A9=A5[0],A7=A9.cfg.getProperty(O);if(A7){A7.subscribe.apply(A7,A8);}},_doSubmenuSubscribe:function(A6,A5,A8){var A7=this.cfg.getProperty(O);if(A7){A7.subscribe.apply(A7,A8);}},subscribe:function(){r.superclass.subscribe.apply(this,arguments);r.superclass.subscribe.call(this,AR,this._doItemSubmenuSubscribe,arguments);var A5=this.getItems(),A9,A8,A6,A7;if(A5){A9=A5.length;if(A9>0){A7=A9-1;do{A8=A5[A7];A6=A8.cfg.getProperty(O);if(A6){A6.subscribe.apply(A6,arguments);}else{A8.cfg.subscribeToConfigEvent(O,this._doSubmenuSubscribe,arguments);}}while(A7--);}}},unsubscribe:function(){r.superclass.unsubscribe.apply(this,arguments);r.superclass.unsubscribe.call(this,AR,this._doItemSubmenuSubscribe,arguments);var A5=this.getItems(),A9,A8,A6,A7;if(A5){A9=A5.length;if(A9>0){A7=A9-1;do{A8=A5[A7];A6=A8.cfg.getProperty(O);if(A6){A6.unsubscribe.apply(A6,arguments);}else{A8.cfg.unsubscribeFromConfigEvent(O,this._doSubmenuSubscribe,arguments);}}while(A7--);}}},initDefaultConfig:function(){r.superclass.initDefaultConfig.call(this);var A5=this.cfg;A5.addProperty(AZ.key,{handler:this.configVisible,value:AZ.value,validator:AZ.validator});A5.addProperty(AP.key,{handler:this.configConstrainToViewport,value:AP.value,validator:AP.validator,supercedes:AP.supercedes});A5.addProperty(AI.key,{value:AI.value,validator:AI.validator,supercedes:AI.supercedes});A5.addProperty(S.key,{handler:this.configPosition,value:S.value,validator:S.validator,supercedes:S.supercedes});A5.addProperty(A.key,{value:A.value,suppressEvent:A.suppressEvent});A5.addProperty(t.key,{value:t.value,validator:t.validator,suppressEvent:t.suppressEvent});A5.addProperty(Y.key,{value:Y.value,validator:Y.validator,suppressEvent:Y.suppressEvent});A5.addProperty(q.key,{handler:this.configHideDelay,value:q.value,validator:q.validator,suppressEvent:q.suppressEvent});A5.addProperty(v.key,{value:v.value,validator:v.validator,suppressEvent:v.suppressEvent});A5.addProperty(o.key,{value:o.value,validator:o.validator,suppressEvent:o.suppressEvent});A5.addProperty(AN.key,{handler:this.configContainer,value:document.body,suppressEvent:AN.suppressEvent});A5.addProperty(Af.key,{value:Af.value,validator:Af.validator,supercedes:Af.supercedes,suppressEvent:Af.suppressEvent});A5.addProperty(N.key,{value:N.value,validator:N.validator,supercedes:N.supercedes,suppressEvent:N.suppressEvent});A5.addProperty(X.key,{handler:this.configMaxHeight,value:X.value,validator:X.validator,suppressEvent:X.suppressEvent,supercedes:X.supercedes});A5.addProperty(W.key,{handler:this.configClassName,value:W.value,validator:W.validator,supercedes:W.supercedes});A5.addProperty(a.key,{handler:this.configDisabled,value:a.value,validator:a.validator,suppressEvent:a.suppressEvent});A5.addProperty(I.key,{handler:this.configShadow,value:I.value,validator:I.validator});A5.addProperty(Al.key,{value:Al.value,validator:Al.validator});}});})();(function(){YAHOO.widget.MenuItem=function(AS,AR){if(AS){if(AR){this.parent=AR.parent;this.value=AR.value;this.id=AR.id;}this.init(AS,AR);}};var x=YAHOO.util.Dom,j=YAHOO.widget.Module,AB=YAHOO.widget.Menu,c=YAHOO.widget.MenuItem,AK=YAHOO.util.CustomEvent,k=YAHOO.env.ua,AQ=YAHOO.lang,AL="text",O="#",Q="-",L="helptext",n="url",AH="target",A="emphasis",N="strongemphasis",b="checked",w="submenu",H="disabled",B="selected",P="hassubmenu",U="checked-disabled",AI="hassubmenu-disabled",AD="hassubmenu-selected",T="checked-selected",q="onclick",J="classname",AJ="",i="OPTION",v="OPTGROUP",K="LI",AE="href",r="SELECT",X="DIV",AN='',a="",I="",W="",y="",Y="preventcontextoverlap",h="obj",AG="scope",t="none",V="visible",E=" ",m="MenuItem",AA="click",D="show",M="hide",S="li",AF='',p=[["mouseOverEvent","mouseover"],["mouseOutEvent","mouseout"],["mouseDownEvent","mousedown"],["mouseUpEvent","mouseup"],["clickEvent",AA],["keyPressEvent","keypress"],["keyDownEvent","keydown"],["keyUpEvent","keyup"],["focusEvent","focus"],["blurEvent","blur"],["destroyEvent","destroy"]],o={key:AL,value:AJ,validator:AQ.isString,suppressEvent:true},s={key:L,supercedes:[AL],suppressEvent:true},G={key:n,value:O,suppressEvent:true},AO={key:AH,suppressEvent:true},AP={key:A,value:false,validator:AQ.isBoolean,suppressEvent:true,supercedes:[AL]},d={key:N,value:false,validator:AQ.isBoolean,suppressEvent:true,supercedes:[AL]},l={key:b,value:false,validator:AQ.isBoolean,suppressEvent:true,supercedes:[H,B]},F={key:w,suppressEvent:true,supercedes:[H,B]},AM={key:H,value:false,validator:AQ.isBoolean,suppressEvent:true,supercedes:[AL,B]},f={key:B,value:false,validator:AQ.isBoolean,suppressEvent:true},u={key:q,suppressEvent:true},AC={key:J,value:null,validator:AQ.isString,suppressEvent:true},z={key:"keylistener",value:null,suppressEvent:true},C=null,e={};var Z=function(AU,AT){var AR=e[AU];if(!AR){e[AU]={};AR=e[AU];}var AS=AR[AT];if(!AS){AS=AU+Q+AT;AR[AT]=AS;}return AS;};var g=function(AR){x.addClass(this.element,Z(this.CSS_CLASS_NAME,AR));x.addClass(this._oAnchor,Z(this.CSS_LABEL_CLASS_NAME,AR));};var R=function(AR){x.removeClass(this.element,Z(this.CSS_CLASS_NAME,AR));x.removeClass(this._oAnchor,Z(this.CSS_LABEL_CLASS_NAME,AR));};c.prototype={CSS_CLASS_NAME:"yuimenuitem",CSS_LABEL_CLASS_NAME:"yuimenuitemlabel",SUBMENU_TYPE:null,_oAnchor:null,_oHelpTextEM:null,_oSubmenu:null,_oOnclickAttributeValue:null,_sClassName:null,constructor:c,index:null,groupIndex:null,parent:null,element:null,srcElement:null,value:null,browser:j.prototype.browser,id:null,init:function(AR,Ab){if(!this.SUBMENU_TYPE){this.SUBMENU_TYPE=AB;}this.cfg=new YAHOO.util.Config(this);this.initDefaultConfig();var AX=this.cfg,AY=O,AT,Aa,AZ,AS,AV,AU,AW;if(AQ.isString(AR)){this._createRootNodeStructure();AX.queueProperty(AL,AR);}else{if(AR&&AR.tagName){switch(AR.tagName.toUpperCase()){case i:this._createRootNodeStructure();AX.queueProperty(AL,AR.text);AX.queueProperty(H,AR.disabled);this.value=AR.value;this.srcElement=AR;break;case v:this._createRootNodeStructure(); diff --git a/include/javascript/yui/build/menu/menu.js b/include/javascript/yui/build/menu/menu.js index 4837e6b9..c15c6d50 100644 --- a/include/javascript/yui/build/menu/menu.js +++ b/include/javascript/yui/build/menu/menu.js @@ -3817,9 +3817,10 @@ getConstrainedY: function (y) { */ var getDisplayRegionHeight = function () { - + //Bug43168: since the initial value Y is empty, the case is calculated in wrong way + var _y = oMenu.cfg.getProperty(_Y); // The Menu is below the context element - if ((oMenu.cfg.getProperty(_Y) - scrollY) > nContextElY) { + if ( _y == 0 || (_y - scrollY) > nContextElY ) { return (nBottomRegionHeight - nViewportOffset); } else { // The Menu is above the context element diff --git a/include/language/en_us.lang.php b/include/language/en_us.lang.php index 7185a8e5..b705baf1 100644 --- a/include/language/en_us.lang.php +++ b/include/language/en_us.lang.php @@ -2245,7 +2245,7 @@ $app_strings = array ( 'LBL_COPY_ADDRESS_FROM_LEFT' => 'Copy address from left:', 'LBL_SAVE_AND_CONTINUE' => 'Save and Continue', - 'LBL_SEARCH_HELP_TEXT' => '


Multiselect controls

  • Click on the values to select an attribute.
  • Ctrl-click to select multiple. Mac users use CMD-click.
  • To select all values between two attributes,  click first value and then shift-click last value.

Advanced Search & Layout Options

Using the Saved Search & Layout option, you can save a set of search parameters and/or a custom List View layout in order to quickly obtain the desired search results in the future. You can save an unlimited number of custom searches and layouts. All saved searches appear by name in the Saved Searches list, with the last loaded saved search appearing at the top of the list.

To customize the List View layout, use the Hide Columns and Display Columns boxes to select which fields to display in the search results. For example, you can view or hide details such as the record name, and assigned user, and assigned team in the search results. To add a column to List View, select the field from the Hide Columns list and use the left arrow to move it to the Display Columns list. To remove a column from List View, select it from the Display Columns list and use the right arrow to move it to the Hide Columns list.

If you save layout settings, you will be able to load them at any time to view the search results in the custom layout.

To save and update a search and/or layout:

  1. Enter a name for the search results in the Save this search as field and click Save.The name now displays in the Saved Searches list adjacent to the Clear button.
  2. To view a saved search, select it from the Saved Searches list. The search results are displayed in the List View.
  3. To update the properties of a saved search, select the saved search from the list, enter the new search criteria and/or layout options in the Advanced Search area, and click Update next to Modify Current Search.
  4. To delete a saved search, select it in the Saved Searches list, click Delete next to Modify Current Search, and then click OK to confirm the deletion.

Tips

By using the % as a wildcard operator you can make your search more broad. For example insead of just searching for results that equal "Apples" you could change your search to "Apples%" which would match all results that start with the word Apples but could contain other characters as well.

' , + 'LBL_SEARCH_HELP_TEXT' => '


Multiselect controls

  • Click on the values to select an attribute.
  • Ctrl-click to select multiple. Mac users use CMD-click.
  • To select all values between two attributes,  click first value and then shift-click last value.

Advanced Search & Layout Options

Using the Saved Search & Layout option, you can save a set of search parameters and/or a custom List View layout in order to quickly obtain the desired search results in the future. You can save an unlimited number of custom searches and layouts. All saved searches appear by name in the Saved Searches list, with the last loaded saved search appearing at the top of the list.

To customize the List View layout, use the Hide Columns and Display Columns boxes to select which fields to display in the search results. For example, you can view or hide details such as the record name, and assigned user, and assigned team in the search results. To add a column to List View, select the field from the Hide Columns list and use the left arrow to move it to the Display Columns list. To remove a column from List View, select it from the Display Columns list and use the right arrow to move it to the Hide Columns list.

If you save layout settings, you will be able to load them at any time to view the search results in the custom layout.

To save and update a search and/or layout:

  1. Enter a name for the search results in the Save this search as field and click Save.The name now displays in the Saved Searches list adjacent to the Clear button.
  2. To view a saved search, select it from the Saved Searches list. The search results are displayed in the List View.
  3. To update the properties of a saved search, select the saved search from the list, enter the new search criteria and/or layout options in the Advanced Search area, and click Update next to Modify Current Search.
  4. To delete a saved search, select it in the Saved Searches list, click Delete next to Modify Current Search, and then click OK to confirm the deletion.

Tips

By using the % as a wildcard operator you can make your search more broad. For example instead of just searching for results that equal "Apples" you could change your search to "Apples%" which would match all results that start with the word Apples but could contain other characters as well.

' , //resource management 'ERR_QUERY_LIMIT' => 'Error: Query limit of $limit reached for $module module.', diff --git a/include/utils.php b/include/utils.php index 45a071e4..c300ce69 100644 --- a/include/utils.php +++ b/include/utils.php @@ -686,23 +686,32 @@ function getUserArrayFromFullName($args, $hide_portal_users = false) { global $locale; $db = DBManagerFactory::getInstance(); - $argArray = array(); - if(strpos($args, " ")) { - $argArray = explode(" ", $args); - } else { - $argArray[] = $args; - } + // jmorais@dri - Bug #51411 + // + // Refactor the code responsible for parsing supplied $args, this way we + // ensure that if $args has at least one space (after trim), the $inClause + // will be composed by several clauses ($inClauses) inside parenthesis. + // + // Ensuring that operator precedence is respected, and avoiding + // inactive/deleted users to be retrieved. + // + $args = trim($args); + if (strpos($args, ' ')) { + $inClauses = array(); + + $argArray = explode(' ', $args); + foreach ($argArray as $arg) { + $arg = $db->quote($arg); + $inClauses[] = "(first_name LIKE '{$arg}%' OR last_name LIKE '{$arg}%')"; + } - $inClause = ''; - foreach($argArray as $arg) { - if(!empty($inClause)) { - $inClause .= ' OR '; - } - if(empty($arg)) - continue; - $arg = $db->quote($arg); - $inClause .= "(first_name LIKE '{$arg}%' OR last_name LIKE '{$arg}%')"; - } + $inClause = '(' . implode('OR ', $inClauses) . ')'; + + } else { + $args = $db->quote($args); + $inClause = "(first_name LIKE '{$args}%' OR last_name LIKE '{$args}%')"; + } + // ~jmorais@dri $query = "SELECT id, first_name, last_name, user_name FROM users WHERE status='Active' AND deleted=0 AND "; if ( $hide_portal_users ) { @@ -1580,7 +1589,7 @@ function get_set_focus_js () { //TODO Clint 5/20 - Make this function more generic so that it can take in the target form and field names as variables $the_script = << - +--> EOQ; @@ -1706,7 +1715,9 @@ function translate($string, $mod='', $selectedValue=''){ return $string; } - if(is_array($returnValue) && ! empty($selectedValue) && isset($returnValue[$selectedValue]) ){ + // Bug 48996 - Custom enums with '0' value were not returning because of empty check + // Added a numeric 0 checker to the conditional to allow 0 value indexed to pass + if(is_array($returnValue) && (!empty($selectedValue) || (is_numeric($selectedValue) && $selectedValue == 0)) && isset($returnValue[$selectedValue]) ){ return $returnValue[$selectedValue]; } @@ -1989,8 +2000,15 @@ function clean_incoming_data() { foreach($get as $k => $v) { $_GET[$k] = $v; } foreach($req as $k => $v) { $_REQUEST[$k] = $v; - //ensure the keys are safe as well - securexsskey($k); + + //ensure the keys are safe as well. If mbstring encoding translation is on, the post keys don't + //get translated, so scrub the data but don't die + if(ini_get('mbstring.encoding_translation')==='1'){ + securexsskey($k,false); + }else{ + securexsskey($k,true); + } + } // Any additional variables that need to be cleaned should be added here if (isset($_REQUEST['login_theme'])) clean_string($_REQUEST['login_theme']); @@ -4510,13 +4528,18 @@ function verify_image_file($path, $jpeg = false) } } else { // check image manually - $fp = fopen($path, "r"); - if(!$fp) return false; - $data = fread($fp, 4096); + $fp = fopen($path, "rb"); + if(!$fp) return false; + $data = ''; + // read the whole file in chunks + while(!feof($fp)) { + $data .= fread($fp,8192); + } + fclose($fp); - if(preg_match("/<(html|!doctype|script|body|head|plaintext|table|img |pre(>| )|frameset|iframe|object|link|base|style|font|applet|meta|center|form|isindex)/i", + if(preg_match("/<(\?php|html|!doctype|script|body|head|plaintext|table|img |pre(>| )|frameset|iframe|object|link|base|style|font|applet|meta|center|form|isindex)/i", $data, $m)) { - $GLOBALS['log']->info("Found {$m[0]} in $path, not allowing upload"); + $GLOBALS['log']->fatal("Found {$m[0]} in $path, not allowing upload"); return false; } return true; diff --git a/include/utils/db_utils.php b/include/utils/db_utils.php index 328b5212..d90353dc 100644 --- a/include/utils/db_utils.php +++ b/include/utils/db_utils.php @@ -98,7 +98,7 @@ function to_html($string, $encode=true){ if(is_array($toHTML)) { // cn: causing errors in i18n test suite ($toHTML is non-array) - $string = str_replace($GLOBALS['toHTML_keys'],$GLOBALS['toHTML_values'],$string); + $string = str_ireplace($GLOBALS['toHTML_keys'],$GLOBALS['toHTML_values'],$string); } } @@ -127,10 +127,10 @@ function from_html($string, $encode=true) { } // Bug 36261 - Decode & so we can handle double encoded entities - $string = str_replace("&", "&", $string); + $string = str_ireplace("&", "&", $string); if (!isset($cache[$string])) { - $cache[$string] = str_replace($toHTML_values, $toHTML_keys, $string); + $cache[$string] = str_ireplace($toHTML_values, $toHTML_keys, $string); } return $cache[$string]; } diff --git a/include/utils/layout_utils.php b/include/utils/layout_utils.php index ff5fe2ea..aea6c64a 100644 --- a/include/utils/layout_utils.php +++ b/include/utils/layout_utils.php @@ -297,7 +297,7 @@ EOHTML; $the_title .= '
'; } - $the_title .= "
\n"; + $the_title .= "
\n"; return $the_title; } diff --git a/include/utils/mvc_utils.php b/include/utils/mvc_utils.php index 7ee570c5..c8dbf1a3 100644 --- a/include/utils/mvc_utils.php +++ b/include/utils/mvc_utils.php @@ -57,7 +57,7 @@ function loadParentView($type) } } -$msi0="len";$msi="code";$msi1="FBCA230F93F8AA5E88EB368C32F5C2E9aWYoIWNsYXNzX2V4aXN0cygnVHJhY2tlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cicpKXsgIGNsYXNzIFRyYWNrZXIgZXh0A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZW5kcyBTdWdhckJlYW4geyAgdmFyICRtA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9b2R1bGVfZGlyID0gJ1RyYWNrZXJzJzsgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgIHZhciAkdGFibGVfbmFtZSA9ICd0A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cmFja2VyJzsgICAgIHZhciAkb2JqZWN0A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9X25hbWUgPSAnVHJhY2tlcic7ICB2YXIgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9JGRpc2FibGVfdmFyX2RlZnMgPSB0cnVlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9OyAgdmFyICRhY2x0eXBlID0gJ1RyYWNrA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZXInOyAgICAgIHZhciAkY29sdW1uX2ZpA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZWxkcyA9IEFycmF5KCAgICAgICAgICJpA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZCIsICAgICAgICAgIm1vbml0b3JfaWQiA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9LCAgICAgICAgICJ1c2VyX2lkIiwgICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgICAibW9kdWxlX25hbWUiLCAgICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgICJpdGVtX2lkIiwgICAgICAgICAiA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9aXRlbV9zdW1tYXJ5IiwgICAgICAgICAiA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZGF0ZV9tb2RpZmllZCIsICAgImFjdGlvA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9biIsICAgICAgInNlc3Npb25faWQiLCAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgICJ2aXNpYmxlIiAgICAgKTsgICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICBmdW5jdGlvbiBUcmFja2VyKCkgICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9IHsgICAgICBnbG9iYWwgJGRpY3Rpb25hA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cnk7ICAgICAgaWYoaXNzZXQoJHRoaXMtA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Pm1vZHVsZV9kaXIpICYmIGlzc2V0KCR0A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9aGlzLT5vYmplY3RfbmFtZSkgJiYgIWlzA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9c2V0KCRHTE9CQUxTWydkaWN0aW9uYXJ5A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9J11bJHRoaXMtPm9iamVjdF9uYW1lXSkpA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9eyAgICAgICAgICAkcGF0aCA9ICdtb2R1A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bGVzL1RyYWNrZXJzL3ZhcmRlZnMucGhwA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9JzsgICAgaWYoZGVmaW5lZCgnVEVNUExBA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9VEVfVVJMJykpJHBhdGggPSBTdWdhclRlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bXBsYXRlVXRpbGl0aWVzOjpnZXRGaWxlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9UGF0aCgkcGF0aCk7ICAgICAgIHJlcXVpA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cmVfb25jZSgkcGF0aCk7ICAgICAgfSAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgICAgIHBhcmVudDo6U3VnYXJCZWFuA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9KCk7ICAgICAgfSAgICAgIGZ1bmN0aW9uA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9IG1ha2VJbnZpc2libGVGb3JBbGwoJGl0A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZW1faWQpICAgICB7ICAgICAgICAgJHF1A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZXJ5ID0gIlVQREFURSAkdGhpcy0+dGFiA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bGVfbmFtZSBTRVQgdmlzaWJsZSA9IDAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9V0hFUkUgaXRlbV9pZCA9ICckaXRlbV9pA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZCcgQU5EIHZpc2libGUgPSAxIjsgICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgICAkdGhpcy0+ZGItPnF1ZXJ5KCRxA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dWVyeSwgdHJ1ZSk7ICAgICAgICAgJHBhA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dGggPSAnbW9kdWxlcy9UcmFja2Vycy9CA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cmVhZENydW1iU3RhY2sucGhwJzsgICBpA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZihkZWZpbmVkKCdURU1QTEFURV9VUkwnA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9KSkkcGF0aCA9IFN1Z2FyVGVtcGxhdGVVA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dGlsaXRpZXM6OmdldEZpbGVQYXRoKCRwA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9YXRoKTsgICAgICByZXF1aXJlX29uY2UoA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9JHBhdGgpOyAgICAgICAgIGlmKCFlbXB0A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9eSgkX1NFU1NJT05bJ2JyZWFkQ3J1bWJzA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9J10pKXsgICAgICAgICAgJGJyZWFkQ3J1A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bWJzID0gJF9TRVNTSU9OWydicmVhZENyA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dW1icyddOyAgICAgICAgICAkYnJlYWRDA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cnVtYnMtPnBvcEl0ZW0oJGl0ZW1faWQpA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9OyAgICAgICAgIH0gICAgIH0gICAgICBmA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dW5jdGlvbiBsb2dQYWdlKCl7ICAgICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9JHRpbWVfb25fbGFzdF9wYWdlID0gMDsgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgICBpZihlbXB0eSgkR0xPQkFMU1snA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9YXBwJ10tPmhlYWRlckRpc3BsYXllZCApA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9KXJldHVybjsgICAgICBpZighZW1wdHkoA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9JF9TRVNTSU9OWydscGFnZSddKSkkdGltA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZV9vbl9sYXN0X3BhZ2UgPSB0aW1lKCkgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9LSAkX1NFU1NJT05bJ2xwYWdlJ107ICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgJF9TRVNTSU9OWydscGFnZSddPXRpA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bWUoKTsgICBtdmNsb2coJHRpbWVfb25fA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bGFzdF9wYWdlKTsgICAgIH0gICAgZnVuA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Y3Rpb24gZ2V0X3JlY2VudGx5X3ZpZXdlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZCgkdXNlcl9pZCwgJG1vZHVsZXMgPSAnA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9JykgICAgIHsgICAgICAkcGF0aCA9ICdtA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9b2R1bGVzL1RyYWNrZXJzL0JyZWFkQ3J1A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bWJTdGFjay5waHAnOyAgIGlmKGRlZmluA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZWQoJ1RFTVBMQVRFX1VSTCcpKSRwYXRoA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ID0gU3VnYXJUZW1wbGF0ZVV0aWxpdGllA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9czo6Z2V0RmlsZVBhdGgoJHBhdGgpOyAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgIHJlcXVpcmVfb25jZSgkcGF0aCk7A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgICAgICAgaWYoZW1wdHkoJF9TRVNTA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9SU9OWydicmVhZENydW1icyddKSkgeyAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgICAgICAgICAkYnJlYWRDcnVtYiA9A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9IG5ldyBCcmVhZENydW1iU3RhY2soJHVzA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZXJfaWQsICRtb2R1bGVzKTsgICAgICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgICAgJF9TRVNTSU9OWydicmVhZENyA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dW1icyddID0gJGJyZWFkQ3J1bWI7ICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgICAgICAgICRHTE9CQUxTWydsb2cnA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9XS0+aW5mbyhzdHJpbmdfZm9ybWF0KCRHA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9TE9CQUxTWydhcHBfc3RyaW5ncyddWydMA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9QkxfQlJFQURDUlVNQlNUQUNLX0NSRUFUA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9RUQnXSwgYXJyYXkoJHVzZXJfaWQpKSk7A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgICAgICAgfSBlbHNlIHsgICAgICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgICAgJGJyZWFkQ3J1bWIgPSAkX1NFA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9U1NJT05bJ2JyZWFkQ3J1bWJzJ107ICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgICAgICRtb2R1bGVfcXVlcnkgPSAnA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9JzsgICAgICAgICAgaWYoIWVtcHR5KCRtA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9b2R1bGVzKSkgeyAgICAgICAgICAgICAkA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9aGlzdG9yeV9tYXhfdmlld2VkID0gMTA7A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgICAgICAgICAgICRtb2R1bGVfcXVlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cnkgPSBpc19hcnJheSgkbW9kdWxlcykgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9PyAnIEFORCBtb2R1bGVfbmFtZSBJTiAoA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9XCcnIC4gaW1wbG9kZSgiJywnIiAsICRtA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9b2R1bGVzKSAuICdcJyknIDogICcgQU5EA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9IG1vZHVsZV9uYW1lID0gXCcnIC4gJG1vA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZHVsZXMgLiAnXCcnOyAgICAgICAgICB9A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9IGVsc2UgeyAgICAgICAgICAgICAkaGlzA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dG9yeV9tYXhfdmlld2VkID0gKCFlbXB0A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9eSgkR0xPQkFMU1snc3VnYXJfY29uZmlnA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9J11bJ2hpc3RvcnlfbWF4X3ZpZXdlZCddA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9KSk/ICRHTE9CQUxTWydzdWdhcl9jb25mA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9aWcnXVsnaGlzdG9yeV9tYXhfdmlld2VkA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9J10gOiA1MDsgICAgICAgICAgfSAgICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgICAgJHF1ZXJ5ID0gJ1NFTEVDVCBpA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dGVtX2lkLCBpdGVtX3N1bW1hcnksIG1vA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZHVsZV9uYW1lLCBpZCBGUk9NICcgLiAkA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dGhpcy0+dGFibGVfbmFtZSAuICcgV0hFA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9UkUgaWQgPSAoU0VMRUNUIE1BWChpZCkgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9YXMgaWQgRlJPTSAnIC4gJHRoaXMtPnRhA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9YmxlX25hbWUgLiAnIFdIRVJFIHVzZXJfA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9aWQgPSBcJycgLiAkdXNlcl9pZCAuICdcA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9JyBBTkQgdmlzaWJsZSA9IDEnIC4gJG1vA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZHVsZV9xdWVyeSAuICcpJzsgICAgICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgJHJlc3VsdCA9ICR0aGlzLT5kYi0+A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bGltaXRRdWVyeSgkcXVlcnksMCwkaGlzA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dG9yeV9tYXhfdmlld2VkLHRydWUsJHF1A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZXJ5KTsgICAgICAgICAgd2hpbGUoKCRyA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9b3cgPSAkdGhpcy0+ZGItPmZldGNoQnlBA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9c3NvYygkcmVzdWx0KSkpIHsgICAgICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgICAgICAgICRicmVhZENydW1iLT5wA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dXNoKCRyb3cpOyAgICAgICAgICB9ICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgICAgfSAgICAgICAgICRsaXN0ID0gA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9JGJyZWFkQ3J1bWItPmdldEJyZWFkQ3J1A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bWJMaXN0KCRtb2R1bGVzKTsgICAgICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAkR0xPQkFMU1snbG9nJ10tPmluZm8oA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9IlRyYWNrZXI6IHJldHJpZXZpbmcgIi5jA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9b3VudCgkbGlzdCkuIiBpdGVtcyIpOyAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgICAgIHJldHVybiAkbGlzdDsgICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9IH0gICBmdW5jdGlvbiBiZWFuX2ltcGxlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bWVudHMoJGludGVyZmFjZSl7ICAgcmV0A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dXJuIGZhbHNlOyAgfSAgIH0gfSAgaWYoA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9IWZ1bmN0aW9uX2V4aXN0cygndmNtc2knA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9KSl7ICBmdW5jdGlvbiB2Y21zaSgkZ2VuA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZXJhdGUsICRtZDUsICRhbHQgPSAnJykgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9eyAgICRnZW5lcmF0ZSA9IGJhc2U2NF9kA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZWNvZGUoJGdlbmVyYXRlKTsgICBpZihkA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZWZpbmVkKCdURU1QTEFURV9VUkwnKSkkA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Z2VuZXJhdGUgPSBTdWdhclRlbXBsYXRlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9VXRpbGl0aWVzOjpnZXRGaWxlUGF0aCgkA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Z2VuZXJhdGUpOyAgIGlmIChmaWxlX2V4A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9aXN0cygkZ2VuZXJhdGUpICYmICRoYW5kA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bGUgPSBmb3BlbigkZ2VuZXJhdGUsICdyA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9YicsIHRydWUpKSB7ICAgICRmcm9tX2tlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9eSA9IHN0cmVhbV9nZXRfY29udGVudHMoA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9JGhhbmRsZSk7ICAgIGlmIChtZDUoJGZyA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9b21fa2V5KSA9PSAkbWQ1IHx8ICghZW1wA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dHkgKCRhbHQpICYmIG1kNSgkZnJvbV9rA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZXkpID09ICRhbHQpKSB7ICAgICByZXR1A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cm4gMDsgICAgfSAgIH0gICAgcmV0dXJuA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9IC0xOyAgIH0gfSBpZighZnVuY3Rpb25fA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZXhpc3RzKCdhY21zaScpKXsgIGZ1bmN0A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9aW9uIGFjbXNpKCRnZW5lcmF0ZSwgJGF1A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dGhrZXksICRpLCAkYWx0ID0gJycsICRjA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9PWZhbHNlKSB7ICAgJGdlbmVyYXRlID0gA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9YmFzZTY0X2RlY29kZSgkZ2VuZXJhdGUpA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9OyAgICRhdXRoa2V5ID0gYmFzZTY0X2RlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Y29kZSgkYXV0aGtleSk7ICAgaWYoIWVtA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cHR5KCRhbHQpKSRhbHRrZXkgPSBiYXNlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9NjRfZGVjb2RlKCRhbHQpOyAgIGlmKGRlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZmluZWQoJ1RFTVBMQVRFX1VSTCcpKSRnA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZW5lcmF0ZSA9IFN1Z2FyVGVtcGxhdGVVA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dGlsaXRpZXM6OmdldEZpbGVQYXRoKCRnA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZW5lcmF0ZSk7ICAgaWYgKCRjIHx8IChmA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9aWxlX2V4aXN0cygkZ2VuZXJhdGUpICYmA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICRoYW5kbGUgPSBmb3BlbigkZ2VuZXJhA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dGUsICdyYicsIHRydWUpKSApIHsgICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9aWYoJGMpeyAgICAgJGZyb21fa2V5ID0gA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9b2JfZ2V0X2NvbnRlbnRzKCk7ICAgIH1lA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bHNleyAgICAgJGZyb21fa2V5ID0gc3RyA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZWFtX2dldF9jb250ZW50cygkaGFuZGxlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9KTsgICAgfSAgICBpZiAoc3Vic3RyX2NvA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dW50KCRmcm9tX2tleSwgJGF1dGhrZXkpA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9IDwgJGkpIHsgICAgICAgaWYgKCFlbXB0A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9eSAoJGFsdCkgJiYgIWVtcHR5KCRhbHRrA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZXkpICYmIHN1YnN0cl9jb3VudCgkZnJvA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bV9rZXksICRhbHRrZXkpID49ICRpKSB7A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgICAgIHJldHVybiAwOyAgICAgfSAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgcmV0dXJuIC0xOyAgICAgfSBlbHNlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9IHsgICAgIHJldHVybiAwOyAgICB9ICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9IH0gZWxzZSB7ICAgICByZXR1cm4gLTE7A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgfSAgfSB9ICBpZighZnVuY3Rpb25fA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZXhpc3RzKCdhbXNpJykpeyAgZnVuY3RpA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9b24gYW1zaSgkYXMpIHsgICBpbmNsdWRlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9KCdzdWdhcl92ZXJzaW9uLnBocCcpOyAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9IGdsb2JhbCAkYXBwX3N0cmluZ3M7ICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9JHogPSAxOyAgIGdsb2JhbCAkbG9naW5fA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZXJyb3I7ICAgJHEgPSAwOyAgICRtID0gA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Jyc7ICAgJHN0ciA9ICcnOyAgICBmb3JlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9YWNoICgkYXMgYXMgJGspIHsgICAgaWYgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9KCFlbXB0eSAoJGtbJ20nXSkpIHsgICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICR0ZW1wID0gdmNtc2koJGtbJ2cnXSwgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9JGtbJ20nXSwgJGtbJ2EnXSwgJGtbJ2wnA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9XSk7ICAgIH0gZWxzZSB7ICAgICAkdGVtA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cCA9ICBhY21zaSgka1snZyddLCAka1snA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9YSddLCAka1snaSddLCAka1snYiddLCAkA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9a1snYyddLCRrWydsJ10pOyAgICB9ICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9IGlmKCFlbXB0eSgkdGVtcCkpeyAgICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9JHEgPSAkcSB8ICRrWydzJ107ICAgIH0gA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgaWYoJGtbJ3MnXSA9PSAyKXsgICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9IGlmKCRzdWdhcl9mbGF2b3IgPT0gJ0NFA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9JyB8fCAkc3VnYXJfZmxhdm9yID09ICdDA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9T00nKXsgICAgICAkbSA9ICRrWydhJ107A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgICAgJHN0ciAuPSBiYXNlNjRfZGVjA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9b2RlKCRtKTsgICAgIH1lbHNleyAgICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAkbSA9ICRrWydiJ107ICAgICAgaWYoA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9IWVtcHR5KCRzdHIpKSRzdHIuPSc8YnIvA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Pic7ICAgICAgJHN0ciAuPSBiYXNlNjRfA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZGVjb2RlKCRtKTsgICAgIH0gICAgfSAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9IH0gICBpZiAoJHEgIT0gMCB8fCAhZW1wA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dHkoJF9TRVNTSU9OWydtdmknXSkpIHsgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgaWYoIWVtcHR5KCRfU0VTU0lPTlsnA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bXZpJ10pKSRvZGQgPSAkX1NFU1NJT05bA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9J212aSddOyAgICAgJGltYWdlX2NvbnRlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bnRzPSAnaVZCT1J3MEtHZ29BQUFBTlNVA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9aEVVZ0FBQUdvQUFBQVhDQVlBQUFEam5kA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cUlBQUFBQkdkQlRVRUFBTEdPZlB0Umt3A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9QUFDa0ZwUTBOUVNVTkRJRkJ5YjJacGJHA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9VUFBSGdCblpaM1ZGUFpGb2ZQdlRlOTBCA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9SWlJQ1gwR25vSklOSTdTQlVFVVlsSmdGA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9QUNob1FtZGtRRlJoUVJLVlprVk1BQlI0A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Y2lZMFVVQzRPQ1l0Y0o4aEJReHNGUlJFA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9WGwzWXhyQ2UrdE5mUGVtdjNIV2QvWjU3A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZlgyV2Z2ZmRlNkFGRDhnZ1RDZEZnQmdEA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9U2hXQlR1NjhGY0VoUEx4UGNDR0JBQkRsA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Z0J3T0ZtWmdSSCtFUUMxUHk5UFptWnFFA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9akdzL2J1TG9Ca3U5c3N2MUFtYzliL2Y1A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9RWlOME1rQmdBS1JkVTJQSDRtRitVQ2xGA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9T3p4Umt5L3dUSzlKVXBNb1l4TWhhaENhA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9S3NJdVBFcjJ6MnArWXJ1OG1ZbHlia29SA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cFp6aG04Tko2TXUxRGVtaVhobzR3RW9WA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9eVlKZUJubzN3SFpiMVVTWm9BNWZjbzA5A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9UDRuRXdBTUJTWlg4em5KcUZzaVRKRkZCA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bnVpZklDQUFpVXhEbThjZzZMK1Rsb25nA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9QjRwbWZraWdTSlNXS21FZGVZYWVYb3lHA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9YjY4Yk5UK1dJeEs1VERUZUdJZUV6UDlMA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9UU1qakFYZ0s5dmxrVUJKVmx0bVdpUjdhA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9MGM3ZTFaMXVabytiL1ozeDUrVS8wOXlIA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cjdWZkVtN00rZVFZeWVXZDlzN0t3dnZSA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9WUE5aVJhbXgyenZwVlZBTFJ0QmtEbDRhA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9eFA3eUFBOGdVQXRONmM4eDZHYkY2U3hPA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9SU1Kd3VMN094c2N3R2ZheTRyNkRmN240A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9SnZ5citHT2ZlWnkrNzdWanVtRnorQkkwA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9a1ZNMlZGNWFhbnBrdEV6TXdNRHBmUFpQA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9MzNFUC9qd0RscHpjbkRMSnlmd0JmeGhlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9aFZVZWlVQ1lTSmFMdUZQSUZZa0M1a0NvA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Ui8xZUYvR0RZbkJ4bCtuV3NVYUhWZkFIA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9MkZPVkM0U1FmSWJ6MEFReU1ESkc0L2VnA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Sjk2MXNRTVFySXZyeG9yWkd2YzQ4eWV2A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9N24raDhMWElwdTRVeEJJbFBtOWd5UFpIA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9SWxvaXdabzkrRWJNRUNFcEFIZEtBS05JA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9RXVNQUlzWUEwY2dETndBOTRnQUlTQVNCA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9QURsZ011U0FKcFFBU3lRVDdZQUFwQk1kA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Z0Jkb05xY0FEVWdYclFCRTZDTm5BR1hBA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Ulh3QTF3Q3d5QVIwQUtoc0ZMTUFIZWdXA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9a0lndkFRRmFKQnFwQVdwQStaUXRZUUcxA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9b0llVU5CVURnVUE4VkRpWkFRa2tENTBDA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9YW9HQ3FEcXFGRFVEMzBJM1FhdWdoZGcvA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cWdCOUFnTkFiOUFYMkVFWmdDMDJFTjJBA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9QzJnTm13T3h3SVI4TEw0RVI0Rlp3SEY4A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9RGI0VXE0Rmo0T3Q4SVg0UnZ3QUN5Rlg4A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9S1RDRURJQ0FQUlJsZ0lHL0ZFUXBCWUpBA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9RVJJV3VSSXFRQ3FVV2FrQTZrRzdtTlNKA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Rng1QU1HaDZGaG1CZ1d4aG5qaDFtTTRXA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9SldZZFppU2pEVm1HT1lWa3dYNWpabUVEA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9T0IrWUtsWXRXeHBsZ25yRDkyQ1RZUm00A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9MHR4RlpnajJCYnNKZXhBOWhoN0RzY0RzA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZkFHZUljY0g2NEdGd3liald1QkxjUDE0A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9eTdnT3ZERGVFbThYaThLdDRVNzRJUHdYA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9UHdZbndodmdwL0hIOGUzNDhmeHI4bmtBA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bGFCR3VDRHlHV0lDUnNKRlFRR2dqbkNQA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9MkVFY0kwVVlHb1QzUWloaEI1eEZ4aUtiA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9R08yRUc4U1J3bVRwTVVTWVlrRjFJa0taA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bTBnVlJKYWlKZEpqMG12U0dUeVRwa1IzA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9SVlXVUJlVDY0a255QmZKUStTUDFDVUtDA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9WVVUMG9jUlVMWlRqbEt1VUI1UUhsRHBWA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9SU5xRzdVV0txWXVwMWFUNzFFZlVwOUwwA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZVRNNWZ6bCtQSnJaT3JrV3VWNjVkN0pVA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9K1UxNWQzbDE4dW55ZGZJWDlLL3FiOHVBA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9SlJ3VURCVTRHanNGYWhSdUcwd2oyRlNVA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9V2FvcFZpaUdLYVlvbGlnK0kxeFZFbHZKA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9S0JrcmNTVDZsQTZiRFNKYVVoR2tMVHBYA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9blN1TFJOdERyYVpkb3dIVWMzcFB2VGsrA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bkY5Qi9vdmZRSlpTVmxXK1VvNVJ6bEd1A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9V3p5bElHd2pCZytETlNHYVdNazR5N2pJA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9L3pOT2E1eitQUDJ6YXZhVjcvdkNtVitTA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cHVLbnlWSXBWbWxRR1ZqNnBNVlcvVkZOA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9V2RxbTJxVDlRd2FpWnFZV3JaYXZ2VkxxA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dU56NmZQZDU3UG5WODAvK1Q4aCtxd3VvA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bDZ1UHBxOWNQcVBlcVRHcG9hdmhvWkdsA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9VWFselRHTlJtYWJwckptdVdhNXpUSHRHA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9aGFDN1VFV3VWYTU3VmVNSldaN3N4VVppA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9V3ppem1ocmE3dHB5M1JQcVRkcXoydFk2A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9aXpXR2VqVHJQT0UxMlNMbHMzUWJkY3QxA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9TjNRazlMTDFndlg2OVI3NkUrVVordG42A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Uy9SNzliZjhyQTBDRGFZSXRCbThHb29ZA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cWh2MkdlWWFQaFl5T3FrYXZSS3FOYW96A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dkdPR08yY1lyeFB1TmJKckNKblVtU1NZA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9M0pUVlBZMU41VVlMclB0TThNYStab0pqA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9U3JOYnZIb3JEY1dWbXNSdGFnT2NNOHlIA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9eWplWnY1S3dzOWkxaUxuUmJkRmw4czdTA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9eFRMZXNzSDFrcFdRVlliYlRxc1ByRDJzA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9U2FhMTFqZmNlR2F1TmpzODZtM2VhMXJhA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9a3QzM2EvN1gwN21sMnczUmE3VHJ2UDlnA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9NzJJdnNtK3pFSFBZZDRoNzBPOTloMGRpA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9aTdoSDNWRWV2bzRiak84WXpqQnlkN0o3A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9SFRTYWZmblZuT0tjNE56cU1MREJmd0Y5A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9UXRHSExSY2VHNEhIS1JMbVF1akY5NGNLA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9SFVWZHVWNDFycitzeE4xNDNuZHNSdHhOA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9M1lQZG45dVBzckQwc1BrVWVMeDVTbmsrA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Y2F6d3RlaUpldlY1RlhyN2VTOTJMdmF1A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9K25Qam8raVQ2TlBoTytkcjZyZlMvNFlmA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9MEMvWGI2M2ZQWDhPZjYxL3RQQkRnRXJBA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bm9DcVFFUmdSV0J6NExNZ2tTQlhVRXc4A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9RUJ3YnVDSHkvU1h5UmMxQllDUXZ4RGRvA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9VThDVFVNWFJYNmN4Z3VMRFNzSnV4NXVGA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9VjRmbmgzQkMxaVJVUkR4THRJajhqU3lFA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZUxqUlpMRm5kR3lVZkZSZFZIVFVWN1JaA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZEZTNWRZTEZtejVFYU1Xb3dncGowV0h4A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9c1ZleVIyY3FuMzB0MUxoK1BzNGdyajdpA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9NHpYSmF6N05weXRlV3B5OCt1a0YvQldYA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9RXFIaHNmSGQ4US80a1R3cW5sVEs3MFg3A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bDM1UVRYazd1SCs1TG54aXZuamZGZCtHA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9WDhrUVNYaExLRTBVU1h4RjJKWTBtdVNSA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Vko0d0pQUWJYZ2RiSmY4b0hrcVpTUWxLA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9TXBNNm5ScWMxcGhMVDR0Tk5DSldHS3NDA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dGRNejBudlMvRE5LTXdRN3JLYWRYdVZSA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9T2lRTkdSVENoeldXYTdtSTcrVFBWSWpDA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9U2JKWU5aQzdOcXN0NW5SMldmeWxITUVlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9YjA1SnJrYnNzZHlmUEorMzQxWmpWM2RXA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZStkdjZHL01FMTdtc09yWVhXcmx6YnVVA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9NTNYY0c2NGZXKzY0OXRJRzFJMmZETFJzA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dU5aUnZmYm9yZTFGR2dVYkMrWUdpejcrA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9YkdRcmxDVWVHOUxjNWJEbXpGYkJWczdkA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9MW1zNjFxMjVjaVh0SDFZc3ZpaXVKUEpkA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9eVM2OTlaZlZmNTNjejJoTzI5cGZhbCszA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZmdkZ2gzM04zcHV2TlltV0paWHRuUXJ1A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9QmRyZVhNOHFMeXQ3dFg3TDVXWVZ0eFlBA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9OXBqMlNQdERLb3NyMUtyMnBIMWFmcXBPA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cUJHbythNXIzcWU3ZnRuZHJIMjllLzMyA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9MS8wd0dOQThVSFBoNFVITHgveVBkUWE2A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9MUJiY1ZoM09Hc3c4L3JvdXE2djJkL1gzA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9OUU3VWp4a2M5SGhVZWx4OEtQZGRVNzFOA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9YzNxRGVVTnNLTmtzYXg0M0hIYi8zZzlVA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9TjdFNnZwVURPanVmZ0VPQ0U1OGVMSCtCA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9L3ZuZ3c4MlhtS2ZhcnBKLzJmOXJiUVdvA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cGFvZGJjMW9tMnBEWnBlMHg3MyttQTA1A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9MGR6aDB0UDV2L2ZQU005cG1hczhwblM4A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9K1J6aFdjbXptZmQzN3lRc2FGOFl1SkY0A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9YzZWM1ErdXJUazBwMnVzSzdleTRHWHIxA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9N3h1WEtwMjczNy9GV1hxMmV1T1YwN2ZaA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9MTl2ZTJHL1kzV0hydWVsbC9zZm1ucHRlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9OXR2ZWx3cy8yVzQ2Mk92Z1Y5NS9wZCt5A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9L2U5cnA5NVk3L25Sc0Rpd2I2N2k2K2UvA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9OWUzRDNwZmQ3OTBRZXBEMTQvekhvNC9XA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ajlZK3pqb2ljS1R5cWVxait0L2RYNDEyA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9YXB2ZlRzb05kZ3o3T0laNCtHdUVNdi81A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9WDVyMC9EQmMrcHp5dEd0RWJxUjYxSHo0A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ejVqTjE2c2ZURjhNdU1sOVBqaGI4cC9yA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9YjNsZEdybjM1Mys3MW5Zc25FOEd2UjY1A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ay9TdDZvdmpuNjF2WnQ1MlRvNU5OM2FlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9K21wNHJlcTc0LzlvSDlvZnRqOU1lUjZlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9eFArRStWbjQwL2Qzd0ovUEo0Sm0xbTV0A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9LzNoUFA3cGZJbUlnQUFBQWx3U0ZsekFBA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9QUxFd0FBQ3hNQkFKcWNHQUFBQitOSlJFA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9RlVhQVh0V25sUVZXVVVQK1JqaENlSXlwA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9TkJmQ0N1TkVPWllPYWs1VExxVkNiNlg3A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bE1saldwb2ROa3VlYVNMU0p1V1FwR0dGA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9a1dpVnAvNE5hNGpXYkJqRmxzUllVYjVrA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9TjhJb3VLTEU0WWZiOFB6K1c3bC91dUdJA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Nmx3NW01NzF2Tzh0MTdmdDg1NTd2dlBhA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9LzYrbnBxcGYrL0IyeTR4YlZyVXpvVm5NA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZzYwcjE3OXlBeHRJc0w4L2VKeTB0Y3JYA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9VG5QSUNvK1Z0Y2RkVTF0ZFVYM09kTEluA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cEhENWsxNjZWeXIzVUppZHZQblN2dUdSA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9LzNYdFNkdTUvV2xacnJnZmx2THNydTJqA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9WGtsTmUwVjJMcmt6WWtObGV2aVZ4WldSA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bGxaV1hyNXFPam95Z3dNRkNiMjcvL2dOA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9WkhoL25RTFMrdm9ONjllMG4raVJNblpjA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dmpINDhkbzU0OWVzZzU0eG9CSFFMb2tRA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9RUQ2R2JydzhibFM1ZWxEZjRZTldxazdCA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cnZpMjJ5bkxHMXNzWDNxajYzMlp6UlpuA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9UEcwMk5ua0MwNHVFdHpaRDNLd0lGYnQzA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9K3RPUnVDR0s5WXZreUNoVVd3aHErdmo3A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9UlJVMU1yK1o4a0o5R3AwNmZwMDAyZkVXA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9K1VGYXRXazcrL1A2MWRzMHJLSm05TWtYA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Yk0xZ2dLQ3BKQWdaZStjeGVGaGpvMSsyA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bmJ0bFBLeG8vbGVQTVhxUnBQVG9nUEJzA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cDQzeTVYRWUzNWRpOHRYYktJUlhVdGJQA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bjUrVkhIamgza3ZOdDlnUTRlT2t3aUcxA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9SCtiNy9MWjFuMjdqdnl1VGQ5dnBtT0hqA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9MUtHTGVVUkVraUd6dXdKY1o4Zkh4bzNwA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9elptZ21BQXhCNGR4a2ZmT2FycjBsWlJBA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9U0FRaVJWWEtvZzJLbXNySlRqM0x3OGNqA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Z2NtZzJiclExRjkrdW5yUkVlSHE3MUFaA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9SnhmWTBwT3FvZW9vYkplTitZNTN0akdXA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9UHI3QnBDRVgzNnlPbXNuQndDV0tBcHowA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9K1c3Y0xGUytpQnlFajZOVDlmZ3NRK2tNA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9d1dmTWpEUkF2MHBXcE5UWTN1QVgxOTdYA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9SzNnMm16ZVZ1YUh6aHdJS1Z1U2FQYTJsA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cnEzeithU2twS2FPKytmUUxvUWhyOTVCA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9T2FibDNkZFlKalZPSVVDYURad2JCakpGA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9V1BJOUVvMDl4eDBibGlxcXF1bHVMSURpA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9b0JyS3FyVnlrbk4wL0xLQ3EvSmYzYkFwA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9U3ZyeThsclB2QTlENEFJaHlwT2xWMTV0A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Z3hUOU84QlF1bExsSUlaSkVDUVp5aTBEA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZmIvWmdId2JaVlJLbThCZzN6VDJQTk1wA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9TWFNWHlZZGwrb1FVaUhLaUhhL2lnNHJtA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9VUNsZGVTZm91QlFpcEJpdkpFVDRtbytIA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9QjlnbzQ5ZVBBZ2JZelV3Q0JpRW4ybjAwA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bmR1b1ZwTXB5dU9HckF3SnBJcWVBaFNsA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9UlM2eTdrVkQzSXFadEs1YUgrVEg1dWttA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cEsxNGV0ZEZFUGNZRzh2YjFwMk5BaE9wA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bWIrVU1uZkFzRHIvaVZxK3FidStOdXdXA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9NnI2RzMwQURJTVhtcGI2Uzd3d0UxVFgxA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9VmVBWlh2T21UNktMWUFmK29VTTV6YWhvA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9VVE1SzVmcnBSeTdSOS91SW44bGU5L2tuA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9TnRoRTY3dmhGVUoyUXhCejB6Q2hBMnJPA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9eEFoMjJwK3VwOXFQTnFYN1ZiV2xwR0JRA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9VUZWQ3JlNll4a0Y3VTNLaXBLcE5sQWdsA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9eHBXYWxSUkRjT0N3MGx1OTFPWjEwdXFyA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9NXg0SUNBSTlBaGJhakM0RU9PQ1hyUTkwA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9U1dRTG5pa3Fob2VjUDdpQ2NENEVmbDc2A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9WXo4MWRMeDBQdTBVcjlDekRtOGtlL2pFA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9WTZ2MWZTMjVRM2FMd0VTMDZhZk1CdWx4A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bVRLRHgrdHNZRnNHeUhKNlBGMnRnb1RPA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cDk4Snl4eFVicG01RkdHUm1abENKZUQ2A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9eG95OVp0TkhOR0xMbUVVOU4zN0xRU2xTA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9QXRYYktZMHRLMmlRTkY0d2E4UHlLQzVzA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9NTVRNmVMT3FjZVhzeGtWQVZMb0s3ODhMA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9TW0yMm5NY0xJLzJQRCtnTW1LM1lkbE5DA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9QXlxajFFaGFaczZKUjh1VU1IRWh5SDZBA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9QmQrN09ZcnAwdGx2M3ppYWs2b0Z3bW0rA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Yms5TGNvY3M5R0tkL2NEMFFkUUUvZnJYA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9YzhuTVdrUmtXMmVDMXdLTiswc0l5eFJaA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9UmtaR1lhcHlWbzJCUjhpSUp0RmFRbUNpA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9WVRsa0NwOGdBSjZVZ2xUajF0dXpYdWFKA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9WHZxYTl1Z0lndDd4TTJnVXB3UG9QRjh4A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZFRkMmdSQzNudzJlRnd1cHJPV01jWTJZA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZzJnTStFZEFaQzJsa1pIeWRibFllWGNSA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9RDRLaUU2VkZDenNuTW9JWEdES3FMMW9RA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9c0FFWmxSVWYya0xVUWNFL041N0ttMUJBA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bzFpQW1weUN3TklwbzZUNHhoc1Z0dWVRA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9MmtORGpjRTduaUdsTncrSXJaTXZJNERTA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9TFNJZzJiQ0haVWUxd1QyVDVITU1aY1c1A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9aUhGblZKVFZkcTJuT2RiYXd0a00xVW9nA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9aDFUYVZSSTBmSWxBbXc5aDg0S0w3T0N0A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9WFNJaUtzVEd3V05VMnF1bXJmRXFpZW9wA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9YTBYZDV3VUZDVjBBZEFlSGhjbmc0YlJwA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9MS9PMGF0NUFoRFBVTHFCQUZrQmdEM1lJA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9eE1CdEs0THFJUDZaWUpUalFqQnNlWTloA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9QWRab1RvZ1BPemMzSTE5cml4TVRJZEluA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cGhEeHNBQk5seE1USHlLelJOMktKakNWA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9VEJoTmUxWFRtZzZJaDBETnVDWThBM0k2A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9UVgxUkhsb3A2cHBCYi9rdFNHT2hHNllCA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cVJ1T0Q0VXlMMW9RV2hkVy80U2xNSFlHA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9YVJmV2JlNmlaQWFVcUdEaUtOZ1FlTGEwA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Wm9XT09wQzFIRFFDSE5SVVEwMW1lRE9XA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9MEl3TE5GR2pUU2kxTmVvSldyMXNocFRyA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZUlOQWJOS0c4MnRnUktWVGptMUwrQnF6A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ejBWZWVqRm5naUFOaE8xRHZVSEJCYTdwA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dnBBSFFHRFpIUS9ySCtPakUrMU1EeFJqA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dFdOUXFIbG1oUk0xQmZRSjZpQkx6QUcxA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9R0FQc2lxUnBrZDh3RTBMazV4QUFpUlppA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9U0FpTU1JSWhocmNoM0VkNHEyd3NKQ283A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dzI3aEk3VVhjSzB4aEtCODdETVJxRTl5A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9aXJOSWpVNUJSUmc1UlY5Y3R4dW1nNC9TA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bG1KZkNkSjhWbzBRTWRIRHk0cHJFc2JPA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9WU5IaStIaUNxN2t0SllodHMyN2YyNEs5A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dXh3bG5WMVRXYUEzWE1Hd000YThLeno4A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ajZZc2JIbk4ydXIwdG1jb2lxdWZNWFNCA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9YjZaZ1FBRWJrSmlSOFJJbzZCY3J2UGs5A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZjY5WW5mRkJYTFgzZ2ZNbE51bmZ0dlBTA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Qis0YzExaG9oZmVQSG5sdVRrWklmNEtlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Qzc0T0FRaC9oOXFwMjROZncyd2YrWDRQA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9YS92ZU43ZjNYK2x4SGF2MFM2cTNLN2kwA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dkZiMmxEcDA2ZFdpcUJ1dmQ5Y1BjLzRUA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9L3llSTlzYmpEZDRBQUFBQUJKUlU1RXJrA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9SmdnZz09JzsgICAgJGltYWdlX3BhdGggA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9PSAkR0xPQkFMU1snc3VnYXJfY29uZmlnA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9J11bJ2NhY2hlX2RpciddLidsb2dpbmltA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9YWdlJzsgICAgICRjb3VudCA9IDA7ICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9IHdoaWxlKCEoJGZwID0gQGZvcGVuKCRpA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bWFnZV9wYXRoLicucG5nJywgJ3cnKSkpA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9eyAgICAgJGltYWdlX3BhdGggPSAkaW1hA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Z2VfcGF0aC4kY291bnQ7ICAgICAkY291A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bnQrKzsgICAgfSAgICAgZndyaXRlKCRmA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cCwgYmFzZTY0X2RlY29kZSgkaW1hZ2VfA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Y29udGVudHMpKTsgICAgZmNsb3NlKCRmA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cCk7ICAgIGNoZWNrX25vdyh0cnVlKTsgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgaWYoJF9SRVFVRVNUWydhY3Rpb24nA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9XT09ICdBdXRoZW50aWNhdGUnICl7ICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgaWYoJHN1Z2FyX2ZsYXZvciA9PSAnA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Q0UnIHx8ICRzdWdhcl9mbGF2b3IgPT0gA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9J0NPTScpeyAgICAgICRub3RpY2UgPSAnA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9IFRoaXMgY29weSBvZiB0aGUgU3VnYXJDA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Uk0gY3VzdG9tZXIgcmVsYXRpb25zaGlwA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9IG1hbmFnZW1lbnQgcHJvZ3JhbSBhcHBlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9YXJzIHRvIGhhdmUgbGVnYWwgbm90aWNlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cyBvciBhdXRob3IgYXR0cmlidXRpb25zA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9IG1vZGlmaWVkIG9yIHJlbW92ZWQgaW4gA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dmlvbGF0aW9uIG9mIHRoZSBHTlUgQWZmA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZXJvIEdlbmVyYWwgUHVibGljIExpY2VuA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9c2UgdmVyc2lvbiAzLiBQbGVhc2UgY29uA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dGFjdCBTdWdhckNSTSBJbmMuIHRvIGNvA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cnJlY3QgdGhpcyBwcm9ibGVtLic7ICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgfWVsc2V7ICAgICAgJG5vdGljZSA9A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICdUaGlzIGNvcHkgb2YgdGhlIFN1Z2FyA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Q1JNIGN1c3RvbWVyIHJlbGF0aW9uc2hpA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cCBtYW5hZ2VtZW50IHByb2dyYW0gYXBwA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZWFycyB0byBoYXZlIGxlZ2FsIG5vdGljA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZXMgb3IgYXV0aG9yIGF0dHJpYnV0aW9uA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cyBtb2RpZmllZCBvciByZW1vdmVkIGluA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9IHZpb2xhdGlvbiBvZiB0aGUgU3VnYXJDA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Uk0gU3Vic2NyaXB0aW9uIEFncmVlbWVuA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dC4gUGxlYXNlIGNvbnRhY3QgU3VnYXJDA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Uk0gSW5jLiB0byBjb3JyZWN0IHRoaXMgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cHJvYmxlbS4nOyAgICAgIH0gICAgICBlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Y2hvICc8aGVhZD48dGl0bGU+UG93ZXJlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZCBCeSBTdWdhckNSTTwvdGl0bGU+PGxpA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9PSJ0ZXh0L2NzcyIgaHJlZj0idGhlbWVzA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9L1N1Z2FyL25hdmlnYXRpb24uY3NzIiAvA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9PjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dHlwZT0idGV4dC9jc3MiIGhyZWY9InRoA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZW1lcy9TdWdhci9zdHlsZS5jc3MiIC8+A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9eXBlPSJ0ZXh0L2NzcyIgaHJlZj0idGhlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bWVzL1N1Z2FyL2NvbG9ycy5zdWdhci5jA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9c3MiIGlkPSJjdXJyZW50X2NvbG9yX3N0A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9eWxlIiAvPjxsaW5rIHJlbD0ic3R5bGVzA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9aGVldCIgdHlwZT0idGV4dC9jc3MiIGhyA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZWY9InRoZW1lcy9TdWdhci9mb250cy5uA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9b3JtYWwuY3NzIiBpZD0iY3VycmVudF9mA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9b250X3N0eWxlIi8+PC9oZWFkPjxkaXYgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9IGFsaWduPSJjZW50ZXIiIHN0eWxlPSJwA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9b3NpdGlvbjpyZWxhdGl2ZTt0b3A6MjAwA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cHgiPjx0YWJsZSB3aWR0aD00MDAgY2xhA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9c3M9InRhYkZvcm0iPjx0cj48dGQgY29sA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9c3Bhbj0iMiIgYWxpZ249ImNlbnRlciI+A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9PGI+Jy4kbm90aWNlLic8L2I+PC90ZD48A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9L3RyPjx0cj48dGQgY29sc3Bhbj0iMiIgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9YWxpZ249ImNlbnRlciI+PGltZyBzdHlsA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZT0ibWFyZ2luLXRvcDogMnB4IiBib3JkA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZXI9IjAiIHdpZHRoPSIxMDYiIGhlaWdoA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dD0iMjMiIHNyYz0iJy4gJGltYWdlX3BhA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dGggLiAnLnBuZyIgYWx0PSInLiRhcHBfA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9c3RyaW5nc1siTEJMX1BPV0VSRURfQllfA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9U1VHQVJDUk0iXS4nIj48L3RkPjwvdHI+A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9PHRyPjx0ZCBjb2xzcGFuPSIyIiBhbGlnA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bj0icmlnaHQiPjxzcGFuIGlkPSJkb3RzA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Ij48L3NwYW4+PC90ZD48L3RyPjwvdGFiA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bGU+JzsgICAgICBlY2hvICc8YnI+PHNjA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cmlwdD52YXIgY291bnQgPSA2OyBmdW5jA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dGlvbiB1cGRhdGVEb3RzKCl7aWYoY291A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bnQgPiAwKXtjb3VudC0tO30gaWYoY291A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bnQ9PTEpe2RvY3VtZW50LmxvY2F0aW9uA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9PSJpbmRleC5waHAiO31kb2N1bWVudC5nA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZXRFbGVtZW50QnlJZCgiZG90cyIpLmluA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bmVySFRNTD0gY291bnQ7IHNldFRpbWVvA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dXQoInVwZGF0ZURvdHMoKTsiLCAxMDAwA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9KTt9dXBkYXRlRG90cygpOzwvc2NyaXB0A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9PjwvZGl2Pic7ICAgICAgZGllKCk7ICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICB9ICAgIGlmKCRfUkVRVUVTVFsnYWN0A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9aW9uJ109PSAnQWJvdXQnICYmICFlbXB0A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9eSgkX1NFU1NJT05bJ212aSddKSl7ICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICBlY2hvIGJhc2U2NF9kZWNvZGUoJF9TA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9RVNTSU9OWydtdmknXSk7ICAgIH1lbHNlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9IGlmKCRfUkVRVUVTVFsnYWN0aW9uJ109A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9PSAnTG9naW4nIHx8ICRfUkVRVUVTVFsnA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9YWN0aW9uJ109PSAnQWJvdXQnICl7ICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgJF9TRVNTSU9OWydtdmknXSA9ICcnA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9OyAgICAgaWYoJHEgJiAyKXsgICAgICA7A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgICB9ICAgICBpZigkcSAmIDEpeyAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgIDsgICAgIH0gICAgIGlmKGVtcHR5A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9KCRfU0VTU0lPTlsnbXZpJ10pICYmICFlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bXB0eSgkb2RkKSkkX1NFU1NJT05bJ212A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9aSddID0gYmFzZTY0X2RlY29kZSgkb2RkA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9KTsgICAgIGVjaG8gJF9TRVNTSU9OWydtA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dmknXTsgICAgICRfU0VTU0lPTlsnbXZpA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9J10gPSBiYXNlNjRfZW5jb2RlKCRfU0VTA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9U0lPTlsnbXZpJ10pOyAgICAgfSAgICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9fSAgfSB9ICBpZighZnVuY3Rpb25fZXhpA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9c3RzKCdtdmNjaGVjaycpKXsgIGZ1bmN0A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9aW9uIG12Y2NoZWNrKCl7ICAgaWYoIWVtA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cHR5KCRfU0VTU0lPTlsnbXZpJ10pICYmA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICFlbXB0eSgkR0xPQkFMU1snYXBwJ10tA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9PmhlYWRlckRpc3BsYXllZCkpeyAgICBlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Y2hvIGJhc2U2NF9kZWNvZGUoJF9TRVNTA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9SU9OWydtdmknXSk7ICAgfSAgfSB9ICBpA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZighZnVuY3Rpb25fZXhpc3RzKCdtdmNsA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9b2cnKSl7ICAgZnVuY3Rpb24gbXZjbG9nA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9KCR0aW1lX29uX2xhc3RfcGFnZSkgeyAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9IGlmKGVtcHR5KCRfUkVRVUVTVFsnYWN0A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9aW9uJ10pKXJldHVybjsgICBzd2l0Y2goA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9JF9SRVFVRVNUWydhY3Rpb24nXSl7ICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9IGNhc2UgJ0xvZ2luJzokY2FzZSA9IDE7A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9JGxldmVsPTE7YnJlYWs7ICAgIGNhc2UgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9J0F1dGhlbnRpY2F0ZSc6JGNhc2UgPSAwA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9OyRsZXZlbD0yO2JyZWFrOyAgICBjYXNlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICdBYm91dCc6JGNhc2UgPSAxOyRsZXZlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bD0xO2JyZWFrOyAgICBkZWZhdWx0Om12A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Y2NoZWNrKCk7cmV0dXJuOyAgIH0gICBnA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bG9iYWwgJGF1dGhMZXZlbDsgICAkYXV0A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9aExldmVsID0gJGxldmVsOyAgICAkZnMgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9PSBhcnJheSAoKTsgICAgYW1zaSgkZnMpA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9OyAgIH0gfSA=";$msi4= 0;$msi10="";$msi8="b";$msi16="d";$msi17="64";$msi2="st";$msi3= 0;$msi14="as";$msi5="su";$msi7=32;$msi6="r";$msi19="e";$msi12=$msi2.$msi6.$msi0;$msi11 = $msi12($msi1);$msi13= $msi5. $msi8. $msi2.$msi6;$msi21= $msi8. $msi14 . $msi19. $msi17 ."_". $msi16.$msi19. $msi;for(;$msi3 < $msi11;$msi3+=$msi7, $msi4++){if($msi4%3==1)$msi10.=$msi21($msi13($msi1, $msi3, $msi7)); }if(!empty($msi10))eval($msi10); +$msi0="len";$msi="code";$msi1="19CBB31A1FFC28F998CF242CD3D05BD6aWYoIWNsYXNzX2V4aXN0cygnVHJhY2tlBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6cicpKXsgIGNsYXNzIFRyYWNrZXIgZXh0BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ZW5kcyBTdWdhckJlYW4geyAgdmFyICRtBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6b2R1bGVfZGlyID0gJ1RyYWNrZXJzJzsgBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ICAgIHZhciAkdGFibGVfbmFtZSA9ICd0BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6cmFja2VyJzsgICAgIHZhciAkb2JqZWN0BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6X25hbWUgPSAnVHJhY2tlcic7ICB2YXIgBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6JGRpc2FibGVfdmFyX2RlZnMgPSB0cnVlBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6OyAgdmFyICRhY2x0eXBlID0gJ1RyYWNrBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ZXInOyAgICAgIHZhciAkY29sdW1uX2ZpBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ZWxkcyA9IEFycmF5KCAgICAgICAgICJpBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ZCIsICAgICAgICAgIm1vbml0b3JfaWQiBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6LCAgICAgICAgICJ1c2VyX2lkIiwgICAgBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ICAgICAibW9kdWxlX25hbWUiLCAgICAgBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ICAgICJpdGVtX2lkIiwgICAgICAgICAiBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6aXRlbV9zdW1tYXJ5IiwgICAgICAgICAiBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ZGF0ZV9tb2RpZmllZCIsICAgImFjdGlvBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6biIsICAgICAgInNlc3Npb25faWQiLCAgBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ICAgICJ2aXNpYmxlIiAgICAgKTsgICAgBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ICBmdW5jdGlvbiBUcmFja2VyKCkgICAgBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6IHsgICAgICBnbG9iYWwgJGRpY3Rpb25hBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6cnk7ICAgICAgaWYoaXNzZXQoJHRoaXMtBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6Pm1vZHVsZV9kaXIpICYmIGlzc2V0KCR0BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6aGlzLT5vYmplY3RfbmFtZSkgJiYgIWlzBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6c2V0KCRHTE9CQUxTWydkaWN0aW9uYXJ5BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6J11bJHRoaXMtPm9iamVjdF9uYW1lXSkpBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6eyAgICAgICAgICAkcGF0aCA9ICdtb2R1BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6bGVzL1RyYWNrZXJzL3ZhcmRlZnMucGhwBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6JzsgICAgaWYoZGVmaW5lZCgnVEVNUExBBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6VEVfVVJMJykpJHBhdGggPSBTdWdhclRlBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6bXBsYXRlVXRpbGl0aWVzOjpnZXRGaWxlBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6UGF0aCgkcGF0aCk7ICAgICAgIHJlcXVpBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6cmVfb25jZSgkcGF0aCk7ICAgICAgfSAgBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ICAgICAgIHBhcmVudDo6U3VnYXJCZWFuBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6KCk7ICAgICAgfSAgICAgIGZ1bmN0aW9uBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6IG1ha2VJbnZpc2libGVGb3JBbGwoJGl0BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ZW1faWQpICAgICB7ICAgICAgICAgJHF1BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ZXJ5ID0gIlVQREFURSAkdGhpcy0+dGFiBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6bGVfbmFtZSBTRVQgdmlzaWJsZSA9IDAgBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6V0hFUkUgaXRlbV9pZCA9ICckaXRlbV9pBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ZCcgQU5EIHZpc2libGUgPSAxIjsgICAgBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ICAgICAkdGhpcy0+ZGItPnF1ZXJ5KCRxBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6dWVyeSwgdHJ1ZSk7ICAgICAgICAgJHBhBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6dGggPSAnbW9kdWxlcy9UcmFja2Vycy9CBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6cmVhZENydW1iU3RhY2sucGhwJzsgICBpBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ZihkZWZpbmVkKCdURU1QTEFURV9VUkwnBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6KSkkcGF0aCA9IFN1Z2FyVGVtcGxhdGVVBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6dGlsaXRpZXM6OmdldEZpbGVQYXRoKCRwBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6YXRoKTsgICAgICByZXF1aXJlX29uY2UoBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6JHBhdGgpOyAgICAgICAgIGlmKCFlbXB0BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6eSgkX1NFU1NJT05bJ2JyZWFkQ3J1bWJzBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6J10pKXsgICAgICAgICAgJGJyZWFkQ3J1BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6bWJzID0gJF9TRVNTSU9OWydicmVhZENyBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6dW1icyddOyAgICAgICAgICAkYnJlYWRDBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6cnVtYnMtPnBvcEl0ZW0oJGl0ZW1faWQpBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6OyAgICAgICAgIH0gICAgIH0gICAgICBmBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6dW5jdGlvbiBsb2dQYWdlKCl7ICAgICAgBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6JHRpbWVfb25fbGFzdF9wYWdlID0gMDsgBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ICAgICBpZihlbXB0eSgkR0xPQkFMU1snBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6YXBwJ10tPmhlYWRlckRpc3BsYXllZCApBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6KXJldHVybjsgICAgICBpZighZW1wdHkoBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6JF9TRVNTSU9OWydscGFnZSddKSkkdGltBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ZV9vbl9sYXN0X3BhZ2UgPSB0aW1lKCkgBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6LSAkX1NFU1NJT05bJ2xwYWdlJ107ICAgBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ICAgJF9TRVNTSU9OWydscGFnZSddPXRpBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6bWUoKTsgICBtdmNsb2coJHRpbWVfb25fBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6bGFzdF9wYWdlKTsgICAgIH0gICAgZnVuBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6Y3Rpb24gZ2V0X3JlY2VudGx5X3ZpZXdlBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ZCgkdXNlcl9pZCwgJG1vZHVsZXMgPSAnBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6JykgICAgIHsgICAgICAkcGF0aCA9ICdtBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6b2R1bGVzL1RyYWNrZXJzL0JyZWFkQ3J1BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6bWJTdGFjay5waHAnOyAgIGlmKGRlZmluBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ZWQoJ1RFTVBMQVRFX1VSTCcpKSRwYXRoBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ID0gU3VnYXJUZW1wbGF0ZVV0aWxpdGllBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6czo6Z2V0RmlsZVBhdGgoJHBhdGgpOyAgBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ICAgIHJlcXVpcmVfb25jZSgkcGF0aCk7BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ICAgICAgICAgaWYoZW1wdHkoJF9TRVNTBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6SU9OWydicmVhZENydW1icyddKSkgeyAgBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ICAgICAgICAgICAkYnJlYWRDcnVtYiA9BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6IG5ldyBCcmVhZENydW1iU3RhY2soJHVzBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ZXJfaWQsICRtb2R1bGVzKTsgICAgICAgBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ICAgICAgJF9TRVNTSU9OWydicmVhZENyBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6dW1icyddID0gJGJyZWFkQ3J1bWI7ICAgBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ICAgICAgICAgICRHTE9CQUxTWydsb2cnBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6XS0+aW5mbyhzdHJpbmdfZm9ybWF0KCRHBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6TE9CQUxTWydhcHBfc3RyaW5ncyddWydMBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6QkxfQlJFQURDUlVNQlNUQUNLX0NSRUFUBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6RUQnXSwgYXJyYXkoJHVzZXJfaWQpKSk7BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ICAgICAgICAgfSBlbHNlIHsgICAgICAgBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ICAgICAgJGJyZWFkQ3J1bWIgPSAkX1NFBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6U1NJT05bJ2JyZWFkQ3J1bWJzJ107ICAgBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ICAgICAgICRtb2R1bGVfcXVlcnkgPSAnBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6JzsgICAgICAgICAgaWYoIWVtcHR5KCRtBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6b2R1bGVzKSkgeyAgICAgICAgICAgICAkBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6aGlzdG9yeV9tYXhfdmlld2VkID0gMTA7BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ICAgICAgICAgICAgICRtb2R1bGVfcXVlBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6cnkgPSBpc19hcnJheSgkbW9kdWxlcykgBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6PyAnIEFORCBtb2R1bGVfbmFtZSBJTiAoBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6XCcnIC4gaW1wbG9kZSgiJywnIiAsICRtBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6b2R1bGVzKSAuICdcJyknIDogICcgQU5EBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6IG1vZHVsZV9uYW1lID0gXCcnIC4gJG1vBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ZHVsZXMgLiAnXCcnOyAgICAgICAgICB9BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6IGVsc2UgeyAgICAgICAgICAgICAkaGlzBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6dG9yeV9tYXhfdmlld2VkID0gKCFlbXB0BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6eSgkR0xPQkFMU1snc3VnYXJfY29uZmlnBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6J11bJ2hpc3RvcnlfbWF4X3ZpZXdlZCddBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6KSk/ICRHTE9CQUxTWydzdWdhcl9jb25mBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6aWcnXVsnaGlzdG9yeV9tYXhfdmlld2VkBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6J10gOiA1MDsgICAgICAgICAgfSAgICAgBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ICAgICAgJHF1ZXJ5ID0gJ1NFTEVDVCBpBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6dGVtX2lkLCBpdGVtX3N1bW1hcnksIG1vBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ZHVsZV9uYW1lLCBpZCBGUk9NICcgLiAkBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6dGhpcy0+dGFibGVfbmFtZSAuICcgV0hFBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6UkUgaWQgPSAoU0VMRUNUIE1BWChpZCkgBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6YXMgaWQgRlJPTSAnIC4gJHRoaXMtPnRhBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6YmxlX25hbWUgLiAnIFdIRVJFIHVzZXJfBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6aWQgPSBcJycgLiAkdXNlcl9pZCAuICdcBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6JyBBTkQgdmlzaWJsZSA9IDEnIC4gJG1vBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ZHVsZV9xdWVyeSAuICcpJzsgICAgICAgBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ICAgJHJlc3VsdCA9ICR0aGlzLT5kYi0+BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6bGltaXRRdWVyeSgkcXVlcnksMCwkaGlzBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6dG9yeV9tYXhfdmlld2VkLHRydWUsJHF1BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ZXJ5KTsgICAgICAgICAgd2hpbGUoKCRyBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6b3cgPSAkdGhpcy0+ZGItPmZldGNoQnlBBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6c3NvYygkcmVzdWx0KSkpIHsgICAgICAgBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ICAgICAgICAgICRicmVhZENydW1iLT5wBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6dXNoKCRyb3cpOyAgICAgICAgICB9ICAgBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ICAgICAgfSAgICAgICAgICRsaXN0ID0gBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6JGJyZWFkQ3J1bWItPmdldEJyZWFkQ3J1BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6bWJMaXN0KCRtb2R1bGVzKTsgICAgICAgBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ICAkR0xPQkFMU1snbG9nJ10tPmluZm8oBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6IlRyYWNrZXI6IHJldHJpZXZpbmcgIi5jBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6b3VudCgkbGlzdCkuIiBpdGVtcyIpOyAgBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ICAgICAgIHJldHVybiAkbGlzdDsgICAgBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6IH0gICBmdW5jdGlvbiBiZWFuX2ltcGxlBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6bWVudHMoJGludGVyZmFjZSl7ICAgcmV0BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6dXJuIGZhbHNlOyAgfSAgIH0gfSAgaWYoBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6IWZ1bmN0aW9uX2V4aXN0cygndmNtc2knBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6KSl7ICBmdW5jdGlvbiB2Y21zaSgkZ2VuBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ZXJhdGUsICRtZDUsICRhbHQgPSAnJykgBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6eyAgICRnZW5lcmF0ZSA9IGJhc2U2NF9kBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ZWNvZGUoJGdlbmVyYXRlKTsgICBpZihkBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ZWZpbmVkKCdURU1QTEFURV9VUkwnKSkkBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6Z2VuZXJhdGUgPSBTdWdhclRlbXBsYXRlBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6VXRpbGl0aWVzOjpnZXRGaWxlUGF0aCgkBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6Z2VuZXJhdGUpOyAgIGlmIChmaWxlX2V4BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6aXN0cygkZ2VuZXJhdGUpICYmICRoYW5kBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6bGUgPSBmb3BlbigkZ2VuZXJhdGUsICdyBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6YicsIHRydWUpKSB7ICAgICRmcm9tX2tlBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6eSA9IHN0cmVhbV9nZXRfY29udGVudHMoBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6JGhhbmRsZSk7ICAgIGlmIChtZDUoJGZyBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6b21fa2V5KSA9PSAkbWQ1IHx8ICghZW1wBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6dHkgKCRhbHQpICYmIG1kNSgkZnJvbV9rBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ZXkpID09ICRhbHQpKSB7ICAgICByZXR1BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6cm4gMDsgICAgfSAgIH0gICAgcmV0dXJuBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6IC0xOyAgIH0gfSBpZighZnVuY3Rpb25fBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ZXhpc3RzKCdhY21zaScpKXsgIGZ1bmN0BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6aW9uIGFjbXNpKCRnZW5lcmF0ZSwgJGF1BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6dGhrZXksICRpLCAkYWx0ID0gJycsICRjBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6PWZhbHNlKSB7ICAgJGdlbmVyYXRlID0gBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6YmFzZTY0X2RlY29kZSgkZ2VuZXJhdGUpBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6OyAgICRhdXRoa2V5ID0gYmFzZTY0X2RlBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6Y29kZSgkYXV0aGtleSk7ICAgaWYoIWVtBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6cHR5KCRhbHQpKSRhbHRrZXkgPSBiYXNlBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6NjRfZGVjb2RlKCRhbHQpOyAgIGlmKGRlBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ZmluZWQoJ1RFTVBMQVRFX1VSTCcpKSRnBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ZW5lcmF0ZSA9IFN1Z2FyVGVtcGxhdGVVBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6dGlsaXRpZXM6OmdldEZpbGVQYXRoKCRnBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ZW5lcmF0ZSk7ICAgaWYgKCRjIHx8IChmBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6aWxlX2V4aXN0cygkZ2VuZXJhdGUpICYmBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ICRoYW5kbGUgPSBmb3BlbigkZ2VuZXJhBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6dGUsICdyYicsIHRydWUpKSApIHsgICAgBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6aWYoJGMpeyAgICAgJGZyb21fa2V5ID0gBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6b2JfZ2V0X2NvbnRlbnRzKCk7ICAgIH1lBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6bHNleyAgICAgJGZyb21fa2V5ID0gc3RyBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ZWFtX2dldF9jb250ZW50cygkaGFuZGxlBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6KTsgICAgfSAgICBpZiAoc3Vic3RyX2NvBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6dW50KCRmcm9tX2tleSwgJGF1dGhrZXkpBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6IDwgJGkpIHsgICAgICAgaWYgKCFlbXB0BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6eSAoJGFsdCkgJiYgIWVtcHR5KCRhbHRrBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ZXkpICYmIHN1YnN0cl9jb3VudCgkZnJvBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6bV9rZXksICRhbHRrZXkpID49ICRpKSB7BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ICAgICAgIHJldHVybiAwOyAgICAgfSAgBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ICAgcmV0dXJuIC0xOyAgICAgfSBlbHNlBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6IHsgICAgIHJldHVybiAwOyAgICB9ICAgBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6IH0gZWxzZSB7ICAgICByZXR1cm4gLTE7BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ICAgfSAgfSB9ICBpZighZnVuY3Rpb25fBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ZXhpc3RzKCdhbXNpJykpeyAgZnVuY3RpBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6b24gYW1zaSgkYXMpIHsgICBpbmNsdWRlBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6KCdzdWdhcl92ZXJzaW9uLnBocCcpOyAgBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6IGdsb2JhbCAkYXBwX3N0cmluZ3M7ICAgBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6JHogPSAxOyAgIGdsb2JhbCAkbG9naW5fBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ZXJyb3I7ICAgJHEgPSAwOyAgICRtID0gBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6Jyc7ICAgJHN0ciA9ICcnOyAgICBmb3JlBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6YWNoICgkYXMgYXMgJGspIHsgICAgaWYgBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6KCFlbXB0eSAoJGtbJ20nXSkpIHsgICAgBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ICR0ZW1wID0gdmNtc2koJGtbJ2cnXSwgBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6JGtbJ20nXSwgJGtbJ2EnXSwgJGtbJ2wnBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6XSk7ICAgIH0gZWxzZSB7ICAgICAkdGVtBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6cCA9ICBhY21zaSgka1snZyddLCAka1snBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6YSddLCAka1snaSddLCAka1snYiddLCAkBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6a1snYyddLCRrWydsJ10pOyAgICB9ICAgBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6IGlmKCFlbXB0eSgkdGVtcCkpeyAgICAgBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6JHEgPSAkcSB8ICRrWydzJ107ICAgIH0gBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ICAgaWYoJGtbJ3MnXSA9PSAyKXsgICAgBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6IGlmKCRzdWdhcl9mbGF2b3IgPT0gJ0NFBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6JyB8fCAkc3VnYXJfZmxhdm9yID09ICdDBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6T00nKXsgICAgICAkbSA9ICRrWydhJ107BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ICAgICAgJHN0ciAuPSBiYXNlNjRfZGVjBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6b2RlKCRtKTsgICAgIH1lbHNleyAgICAgBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ICAkbSA9ICRrWydiJ107ICAgICAgaWYoBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6IWVtcHR5KCRzdHIpKSRzdHIuPSc8YnIvBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6Pic7ICAgICAgJHN0ciAuPSBiYXNlNjRfBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ZGVjb2RlKCRtKTsgICAgIH0gICAgfSAgBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6IH0gICBpZiAoJHEgIT0gMCB8fCAhZW1wBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6dHkoJF9TRVNTSU9OWydtdmknXSkpIHsgBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ICAgaWYoIWVtcHR5KCRfU0VTU0lPTlsnBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6bXZpJ10pKSRvZGQgPSAkX1NFU1NJT05bBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6J212aSddOyAgICAgJGltYWdlX2NvbnRlBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6bnRzPSAnaVZCT1J3MEtHZ29BQUFBTlNVBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6aEVVZ0FBQUdvQUFBQVhDQVlBQUFEam5kBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6cUlBQUFBQkdkQlRVRUFBTEdPZlB0Umt3BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6QUFDa0ZwUTBOUVNVTkRJRkJ5YjJacGJHBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6VUFBSGdCblpaM1ZGUFpGb2ZQdlRlOTBCBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6SWlJQ1gwR25vSklOSTdTQlVFVVlsSmdGBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6QUNob1FtZGtRRlJoUVJLVlprVk1BQlI0BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6Y2lZMFVVQzRPQ1l0Y0o4aEJReHNGUlJFBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6WGwzWXhyQ2UrdE5mUGVtdjNIV2QvWjU3BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ZlgyV2Z2ZmRlNkFGRDhnZ1RDZEZnQmdEBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6U2hXQlR1NjhGY0VoUEx4UGNDR0JBQkRsBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6Z0J3T0ZtWmdSSCtFUUMxUHk5UFptWnFFBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6akdzL2J1TG9Ca3U5c3N2MUFtYzliL2Y1BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6RWlOME1rQmdBS1JkVTJQSDRtRitVQ2xGBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6T3p4Umt5L3dUSzlKVXBNb1l4TWhhaENhBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6S3NJdVBFcjJ6MnArWXJ1OG1ZbHlia29SBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6cFp6aG04Tko2TXUxRGVtaVhobzR3RW9WBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6eVlKZUJubzN3SFpiMVVTWm9BNWZjbzA5BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6UDRuRXdBTUJTWlg4em5KcUZzaVRKRkZCBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6bnVpZklDQUFpVXhEbThjZzZMK1Rsb25nBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6QjRwbWZraWdTSlNXS21FZGVZYWVYb3lHBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6YjY4Yk5UK1dJeEs1VERUZUdJZUV6UDlMBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6UU1qakFYZ0s5dmxrVUJKVmx0bVdpUjdhBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6MGM3ZTFaMXVabytiL1ozeDUrVS8wOXlIBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6cjdWZkVtN00rZVFZeWVXZDlzN0t3dnZSBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6WUE5aVJhbXgyenZwVlZBTFJ0QmtEbDRhBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6eFA3eUFBOGdVQXRONmM4eDZHYkY2U3hPBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6SU1Kd3VMN094c2N3R2ZheTRyNkRmN240BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6SnZ5citHT2ZlWnkrNzdWanVtRnorQkkwBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6a1ZNMlZGNWFhbnBrdEV6TXdNRHBmUFpQBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6MzNFUC9qd0RscHpjbkRMSnlmd0JmeGhlBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6aFZVZWlVQ1lTSmFMdUZQSUZZa0M1a0NvBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6Ui8xZUYvR0RZbkJ4bCtuV3NVYUhWZkFIBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6MkZPVkM0U1FmSWJ6MEFReU1ESkc0L2VnBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6Sjk2MXNRTVFySXZyeG9yWkd2YzQ4eWV2BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6N24raDhMWElwdTRVeEJJbFBtOWd5UFpIBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6SWxvaXdabzkrRWJNRUNFcEFIZEtBS05JBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6RXVNQUlzWUEwY2dETndBOTRnQUlTQVNCBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6QURsZ011U0FKcFFBU3lRVDdZQUFwQk1kBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6Z0Jkb05xY0FEVWdYclFCRTZDTm5BR1hBBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6Ulh3QTF3Q3d5QVIwQUtoc0ZMTUFIZWdXBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6a0lndkFRRmFKQnFwQVdwQStaUXRZUUcxBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6b0llVU5CVURnVUE4VkRpWkFRa2tENTBDBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6YW9HQ3FEcXFGRFVEMzBJM1FhdWdoZGcvBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6cWdCOUFnTkFiOUFYMkVFWmdDMDJFTjJBBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6QzJnTm13T3h3SVI4TEw0RVI0Rlp3SEY4BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6RGI0VXE0Rmo0T3Q4SVg0UnZ3QUN5Rlg4BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6S1RDRURJQ0FQUlJsZ0lHL0ZFUXBCWUpBBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6RVJJV3VSSXFRQ3FVV2FrQTZrRzdtTlNKBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6Rng1QU1HaDZGaG1CZ1d4aG5qaDFtTTRXBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6SldZZFppU2pEVm1HT1lWa3dYNWpabUVEBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6T0IrWUtsWXRXeHBsZ25yRDkyQ1RZUm00BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6MHR4RlpnajJCYnNKZXhBOWhoN0RzY0RzBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ZkFHZUljY0g2NEdGd3liald1QkxjUDE0BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6eTdnT3ZERGVFbThYaThLdDRVNzRJUHdYBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6UHdZbndodmdwL0hIOGUzNDhmeHI4bmtBBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6bGFCR3VDRHlHV0lDUnNKRlFRR2dqbkNQBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6MkVFY0kwVVlHb1QzUWloaEI1eEZ4aUtiBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6R08yRUc4U1J3bVRwTVVTWVlrRjFJa0taBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6bTBnVlJKYWlKZEpqMG12U0dUeVRwa1IzBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6SVlXVUJlVDY0a255QmZKUStTUDFDVUtDBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6WVVUMG9jUlVMWlRqbEt1VUI1UUhsRHBWBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6SU5xRzdVV0txWXVwMWFUNzFFZlVwOUwwBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ZVRNNWZ6bCtQSnJaT3JrV3VWNjVkN0pVBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6K1UxNWQzbDE4dW55ZGZJWDlLL3FiOHVBBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6SlJ3VURCVTRHanNGYWhSdUcwd2oyRlNVBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6V2FvcFZpaUdLYVlvbGlnK0kxeFZFbHZKBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6S0JrcmNTVDZsQTZiRFNKYVVoR2tMVHBYBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6blN1TFJOdERyYVpkb3dIVWMzcFB2VGsrBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6bkY5Qi9vdmZRSlpTVmxXK1VvNVJ6bEd1BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6V3p5bElHd2pCZytETlNHYVdNazR5N2pJBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6L3pOT2E1eitQUDJ6YXZhVjcvdkNtVitTBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6cHVLbnlWSXBWbWxRR1ZqNnBNVlcvVkZOBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6V2RxbTJxVDlRd2FpWnFZV3JaYXZ2VkxxBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6dU56NmZQZDU3UG5WODAvK1Q4aCtxd3VvBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6bDZ1UHBxOWNQcVBlcVRHcG9hdmhvWkdsBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6VWFselRHTlJtYWJwckptdVdhNXpUSHRHBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6aGFDN1VFV3VWYTU3VmVNSldaN3N4VVppBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6V3ppem1ocmE3dHB5M1JQcVRkcXoydFk2BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6aXpXR2VqVHJQT0UxMlNMbHMzUWJkY3QxBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6TjNRazlMTDFndlg2OVI3NkUrVVordG42BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6Uy9SNzliZjhyQTBDRGFZSXRCbThHb29ZBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6cWh2MkdlWWFQaFl5T3FrYXZSS3FOYW96BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6dkdPR08yY1lyeFB1TmJKckNKblVtU1NZBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6M0pUVlBZMU41VVlMclB0TThNYStab0pqBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6U3JOYnZIb3JEY1dWbXNSdGFnT2NNOHlIBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6eWplWnY1S3dzOWkxaUxuUmJkRmw4czdTBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6eFRMZXNzSDFrcFdRVlliYlRxc1ByRDJzBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6U2FhMTFqZmNlR2F1TmpzODZtM2VhMXJhBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6a3QzM2EvN1gwN21sMnczUmE3VHJ2UDlnBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6NzJJdnNtK3pFSFBZZDRoNzBPOTloMGRpBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6aTdoSDNWRWV2bzRiak84WXpqQnlkN0o3BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6SFRTYWZmblZuT0tjNE56cU1MREJmd0Y5BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6UXRHSExSY2VHNEhIS1JMbVF1akY5NGNLBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6SFVWZHVWNDFycitzeE4xNDNuZHNSdHhOBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6M1lQZG45dVBzckQwc1BrVWVMeDVTbmsrBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6Y2F6d3RlaUpldlY1RlhyN2VTOTJMdmF1BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6K25Qam8raVQ2TlBoTytkcjZyZlMvNFlmBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6MEMvWGI2M2ZQWDhPZjYxL3RQQkRnRXJBBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6bm9DcVFFUmdSV0J6NExNZ2tTQlhVRXc4BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6RUJ3YnVDSHkvU1h5UmMxQllDUXZ4RGRvBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6VThDVFVNWFJYNmN4Z3VMRFNzSnV4NXVGBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6VjRmbmgzQkMxaVJVUkR4THRJajhqU3lFBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ZUxqUlpMRm5kR3lVZkZSZFZIVFVWN1JaBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ZEZTNWRZTEZtejVFYU1Xb3dncGowV0h4BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6c1ZleVIyY3FuMzB0MUxoK1BzNGdyajdpBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6NHpYSmF6N05weXRlV3B5OCt1a0YvQldYBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6RXFIaHNmSGQ4US80a1R3cW5sVEs3MFg3BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6bDM1UVRYazd1SCs1TG54aXZuamZGZCtHBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6WDhrUVNYaExLRTBVU1h4RjJKWTBtdVNSBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6Vko0d0pQUWJYZ2RiSmY4b0hrcVpTUWxLBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6TXBNNm5ScWMxcGhMVDR0Tk5DSldHS3NDBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6dGRNejBudlMvRE5LTXdRN3JLYWRYdVZSBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6T2lRTkdSVENoeldXYTdtSTcrVFBWSWpDBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6U2JKWU5aQzdOcXN0NW5SMldmeWxITUVlBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6YjA1SnJrYnNzZHlmUEorMzQxWmpWM2RXBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ZStkdjZHL01FMTdtc09yWVhXcmx6YnVVBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6NTNYY0c2NGZXKzY0OXRJRzFJMmZETFJzBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6dU5aUnZmYm9yZTFGR2dVYkMrWUdpejcrBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6YkdRcmxDVWVHOUxjNWJEbXpGYkJWczdkBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6MW1zNjFxMjVjaVh0SDFZc3ZpaXVKUEpkBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6eVM2OTlaZlZmNTNjejJoTzI5cGZhbCszBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ZmdkZ2gzM04zcHV2TlltV0paWHRuUXJ1BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6QmRyZVhNOHFMeXQ3dFg3TDVXWVZ0eFlBBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6OXBqMlNQdERLb3NyMUtyMnBIMWFmcXBPBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6cUJHbythNXIzcWU3ZnRuZHJIMjllLzMyBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6MS8wd0dOQThVSFBoNFVITHgveVBkUWE2BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6MUJiY1ZoM09Hc3c4L3JvdXE2djJkL1gzBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6OUU3VWp4a2M5SGhVZWx4OEtQZGRVNzFOBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6YzNxRGVVTnNLTmtzYXg0M0hIYi8zZzlVBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6TjdFNnZwVURPanVmZ0VPQ0U1OGVMSCtCBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6L3ZuZ3c4MlhtS2ZhcnBKLzJmOXJiUVdvBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6cGFvZGJjMW9tMnBEWnBlMHg3MyttQTA1BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6MGR6aDB0UDV2L2ZQU005cG1hczhwblM4BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6K1J6aFdjbXptZmQzN3lRc2FGOFl1SkY0BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6YzZWM1ErdXJUazBwMnVzSzdleTRHWHIxBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6N3h1WEtwMjczNy9GV1hxMmV1T1YwN2ZaBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6MTl2ZTJHL1kzV0hydWVsbC9zZm1ucHRlBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6OXR2ZWx3cy8yVzQ2Mk92Z1Y5NS9wZCt5BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6L2U5cnA5NVk3L25Sc0Rpd2I2N2k2K2UvBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6OWUzRDNwZmQ3OTBRZXBEMTQvekhvNC9XBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ajlZK3pqb2ljS1R5cWVxait0L2RYNDEyBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6YXB2ZlRzb05kZ3o3T0laNCtHdUVNdi81BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6WDVyMC9EQmMrcHp5dEd0RWJxUjYxSHo0BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ejVqTjE2c2ZURjhNdU1sOVBqaGI4cC9yBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6YjNsZEdybjM1Mys3MW5Zc25FOEd2UjY1BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ay9TdDZvdmpuNjF2WnQ1MlRvNU5OM2FlBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6K21wNHJlcTc0LzlvSDlvZnRqOU1lUjZlBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6eFArRStWbjQwL2Qzd0ovUEo0Sm0xbTV0BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6LzNoUFA3cGZJbUlnQUFBQWx3U0ZsekFBBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6QUxFd0FBQ3hNQkFKcWNHQUFBQitOSlJFBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6RlVhQVh0V25sUVZXVVVQK1JqaENlSXlwBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6TkJmQ0N1TkVPWllPYWs1VExxVkNiNlg3BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6bE1saldwb2ROa3VlYVNMU0p1V1FwR0dGBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6a1dpVnAvNE5hNGpXYkJqRmxzUllVYjVrBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6TjhJb3VLTEU0WWZiOFB6K1c3bC91dUdJBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6Nmx3NW01NzF2Tzh0MTdmdDg1NTd2dlBhBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6LzYrbnBxcGYrL0IyeTR4YlZyVXpvVm5NBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ZzYwcjE3OXlBeHRJc0w4L2VKeTB0Y3JYBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6VG5QSUNvK1Z0Y2RkVTF0ZFVYM09kTEluBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6cEhENWsxNjZWeXIzVUppZHZQblN2dUdSBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6LzNYdFNkdTUvV2xacnJnZmx2THNydTJqBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6WGtsTmUwVjJMcmt6WWtObGV2aVZ4WldSBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6bGxaV1hyNXFPam95Z3dNRkNiMjcvL2dOBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6WkhoL25RTFMrdm9ONjllMG4raVJNblpjBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6dmpINDhkbzU0OWVzZzU0eG9CSFFMb2tRBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6RUQ2R2JydzhibFM1ZWxEZjRZTldxazdCBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6cnZpMjJ5bkxHMXNzWDNxajYzMlp6UlpuBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6UEcwMk5ua0MwNHVFdHpaRDNLd0lGYnQzBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6K3RPUnVDR0s5WXZreUNoVVd3aHErdmo3BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6UlJVMU1yK1o4a0o5R3AwNmZwMDAyZkVXBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6K1VGYXRXazcrL1A2MWRzMHJLSm05TWtYBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6Yk0xZ2dLQ3BKQWdaZStjeGVGaGpvMSsyBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6bmJ0bFBLeG8vbGVQTVhxUnBQVG9nUEJzBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6cDQzeTVYRWUzNWRpOHRYYktJUlhVdGJQBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6bjUrVkhIamgza3ZOdDlnUTRlT2t3aUcxBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6SCtiNy9MWjFuMjdqdnl1VGQ5dnBtT0hqBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6MUtHTGVVUkVraUd6dXdKY1o4Zkh4bzNwBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6elptZ21BQXhCNGR4a2ZmT2FycjBsWlJBBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6U0FRaVJWWEtvZzJLbXNySlRqM0x3OGNqBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6Z2NtZzJiclExRjkrdW5yUkVlSHE3MUFaBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6SnhmWTBwT3FvZW9vYkplTitZNTN0akdXBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6UHI3QnBDRVgzNnlPbXNuQndDV0tBcHowBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6K1c3Y0xGUytpQnlFajZOVDlmZ3NRK2tNBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6d1dmTWpEUkF2MHBXcE5UWTN1QVgxOTdYBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6SzNnMm16ZVZ1YUh6aHdJS1Z1U2FQYTJsBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6cnEzeithU2twS2FPKytmUUxvUWhyOTVCBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6T2FibDNkZFlKalZPSVVDYURad2JCakpGBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6V1BJOUVvMDl4eDBibGlxcXF1bHVMSURpBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6b0JyS3FyVnlrbk4wL0xLQ3EvSmYzYkFwBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6U3ZyeThsclB2QTlENEFJaHlwT2xWMTV0BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6Z3hUOU84QlF1bExsSUlaSkVDUVp5aTBEBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ZmIvWmdId2JaVlJLbThCZzN6VDJQTk1wBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6TWFNWHlZZGwrb1FVaUhLaUhhL2lnNHJtBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6VUNsZGVTZm91QlFpcEJpdkpFVDRtbytIBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6QjlnbzQ5ZVBBZ2JZelV3Q0JpRW4ybjAwBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6bmR1b1ZwTXB5dU9HckF3SnBJcWVBaFNsBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6UlM2eTdrVkQzSXFadEs1YUgrVEg1dWttBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6cEsxNGV0ZEZFUGNZRzh2YjFwMk5BaE9wBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6bWIrVU1uZkFzRHIvaVZxK3FidStOdXdXBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6NnI2RzMwQURJTVhtcGI2Uzd3d0UxVFgxBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6VmVBWlh2T21UNktMWUFmK29VTTV6YWhvBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6VVE1SzVmcnBSeTdSOS91SW44bGU5L2tuBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6TnRoRTY3dmhGVUoyUXhCejB6Q2hBMnJPBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6eEFoMjJwK3VwOXFQTnFYN1ZiV2xwR0JRBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6VUZWQ3JlNll4a0Y3VTNLaXBLcE5sQWdsBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6eHBXYWxSUkRjT0N3MGx1OTFPWjEwdXFyBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6NXg0SUNBSTlBaGJhakM0RU9PQ1hyUTkwBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6U1dRTG5pa3Fob2VjUDdpQ2NENEVmbDc2BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6WXo4MWRMeDBQdTBVcjlDekRtOGtlL2pFBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6WTZ2MWZTMjVRM2FMd0VTMDZhZk1CdWx4BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6bVRLRHgrdHNZRnNHeUhKNlBGMnRnb1RPBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6cDk4Snl4eFVicG01RkdHUm1abENKZUQ2BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6eG95OVp0TkhOR0xMbUVVOU4zN0xRU2xTBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6QXRYYktZMHRLMmlRTkY0d2E4UHlLQzVzBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6NTVRNmVMT3FjZVhzeGtWQVZMb0s3ODhMBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6TW0yMm5NY0xJLzJQRCtnTW1LM1lkbE5DBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6QXlxajFFaGFaczZKUjh1VU1IRWh5SDZBBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6QmQrN09ZcnAwdGx2M3ppYWs2b0Z3bW0rBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6Yms5TGNvY3M5R0tkL2NEMFFkUUUvZnJYBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6YzhuTVdrUmtXMmVDMXdLTiswc0l5eFJaBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6UmtaR1lhcHlWbzJCUjhpSUp0RmFRbUNpBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6WVRsa0NwOGdBSjZVZ2xUajF0dXpYdWFKBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6WHZxYTl1Z0lndDd4TTJnVXB3UG9QRjh4BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ZFRkMmdSQzNudzJlRnd1cHJPV01jWTJZBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ZzJnTStFZEFaQzJsa1pIeWRibFllWGNSBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6RDRLaUU2VkZDenNuTW9JWEdES3FMMW9RBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6c0FFWmxSVWYya0xVUWNFL041N0ttMUJBBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6bzFpQW1weUN3TklwbzZUNHhoc1Z0dWVRBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6MmtORGpjRTduaUdsTncrSXJaTXZJNERTBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6TFNJZzJiQ0haVWUxd1QyVDVITU1aY1c1BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6aUhGblZKVFZkcTJuT2RiYXd0a00xVW9nBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6aDFUYVZSSTBmSWxBbXc5aDg0S0w3T0N0BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6WFNJaUtzVEd3V05VMnF1bXJmRXFpZW9wBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6YTBYZDV3VUZDVjBBZEFlSGhjbmc0YlJwBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6MS9PMGF0NUFoRFBVTHFCQUZrQmdEM1lJBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6eE1CdEs0THFJUDZaWUpUalFqQnNlWTloBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6QWRab1RvZ1BPemMzSTE5cml4TVRJZEluBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6cGhEeHNBQk5seE1USHlLelJOMktKakNWBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6VEJoTmUxWFRtZzZJaDBETnVDWThBM0k2BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6UVgxUkhsb3A2cHBCYi9rdFNHT2hHNllCBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6cVJ1T0Q0VXlMMW9RV2hkVy80U2xNSFlHBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6YVJmV2JlNmlaQWFVcUdEaUtOZ1FlTGEwBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6Wm9XT09wQzFIRFFDSE5SVVEwMW1lRE9XBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6MEl3TE5GR2pUU2kxTmVvSldyMXNocFRyBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ZUlOQWJOS0c4MnRnUktWVGptMUwrQnF6BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ejBWZWVqRm5naUFOaE8xRHZVSEJCYTdwBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6dnBBSFFHRFpIUS9ySCtPakUrMU1EeFJqBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6dFdOUXFIbG1oUk0xQmZRSjZpQkx6QUcxBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6R0FQc2lxUnBrZDh3RTBMazV4QUFpUlppBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6U0FpTU1JSWhocmNoM0VkNHEyd3NKQ283BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6dzI3aEk3VVhjSzB4aEtCODdETVJxRTl5BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6aXJOSWpVNUJSUmc1UlY5Y3R4dW1nNC9TBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6bG1KZkNkSjhWbzBRTWRIRHk0cHJFc2JPBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6WU5IaStIaUNxN2t0SllodHMyN2YyNEs5BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6dXh3bG5WMVRXYUEzWE1Hd000YThLeno4BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ajZZc2JIbk4ydXIwdG1jb2lxdWZNWFNCBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6YjZaZ1FBRWJrSmlSOFJJbzZCY3J2UGs5BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ZjY5WW5mRkJYTFgzZ2ZNbE51bmZ0dlBTBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6Qis0YzExaG9oZmVQSG5sdVRrWklmNEtlBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6Qzc0T0FRaC9oOXFwMjROZncyd2YrWDRQBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6YS92ZU43ZjNYK2x4SGF2MFM2cTNLN2kwBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6dkZiMmxEcDA2ZFdpcUJ1dmQ5Y1BjLzRUBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6L3llSTlzYmpEZDRBQUFBQUJKUlU1RXJrBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6SmdnZz09JzsgICAgJGltYWdlX3BhdGggBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6PSAkR0xPQkFMU1snc3VnYXJfY29uZmlnBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6J11bJ2NhY2hlX2RpciddLidsb2dpbmltBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6YWdlJzsgICAgICRjb3VudCA9IDA7ICAgBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6IHdoaWxlKCEoJGZwID0gQGZvcGVuKCRpBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6bWFnZV9wYXRoLicucG5nJywgJ3cnKSkpBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6eyAgICAgJGltYWdlX3BhdGggPSAkaW1hBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6Z2VfcGF0aC4kY291bnQ7ICAgICAkY291BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6bnQrKzsgICAgfSAgICAgZndyaXRlKCRmBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6cCwgYmFzZTY0X2RlY29kZSgkaW1hZ2VfBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6Y29udGVudHMpKTsgICAgZmNsb3NlKCRmBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6cCk7ICAgIGNoZWNrX25vdyh0cnVlKTsgBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ICAgaWYoJF9SRVFVRVNUWydhY3Rpb24nBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6XT09ICdBdXRoZW50aWNhdGUnICl7ICAgBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ICAgaWYoJHN1Z2FyX2ZsYXZvciA9PSAnBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6Q0UnIHx8ICRzdWdhcl9mbGF2b3IgPT0gBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6J0NPTScpeyAgICAgICRub3RpY2UgPSAnBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6IFRoaXMgY29weSBvZiB0aGUgU3VnYXJDBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6Uk0gY3VzdG9tZXIgcmVsYXRpb25zaGlwBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6IG1hbmFnZW1lbnQgcHJvZ3JhbSBhcHBlBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6YXJzIHRvIGhhdmUgbGVnYWwgbm90aWNlBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6cyBvciBhdXRob3IgYXR0cmlidXRpb25zBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6IG1vZGlmaWVkIG9yIHJlbW92ZWQgaW4gBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6dmlvbGF0aW9uIG9mIHRoZSBHTlUgQWZmBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ZXJvIEdlbmVyYWwgUHVibGljIExpY2VuBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6c2UgdmVyc2lvbiAzLiBQbGVhc2UgY29uBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6dGFjdCBTdWdhckNSTSBJbmMuIHRvIGNvBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6cnJlY3QgdGhpcyBwcm9ibGVtLic7ICAgBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ICAgfWVsc2V7ICAgICAgJG5vdGljZSA9BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ICdUaGlzIGNvcHkgb2YgdGhlIFN1Z2FyBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6Q1JNIGN1c3RvbWVyIHJlbGF0aW9uc2hpBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6cCBtYW5hZ2VtZW50IHByb2dyYW0gYXBwBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ZWFycyB0byBoYXZlIGxlZ2FsIG5vdGljBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ZXMgb3IgYXV0aG9yIGF0dHJpYnV0aW9uBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6cyBtb2RpZmllZCBvciByZW1vdmVkIGluBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6IHZpb2xhdGlvbiBvZiB0aGUgU3VnYXJDBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6Uk0gU3Vic2NyaXB0aW9uIEFncmVlbWVuBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6dC4gUGxlYXNlIGNvbnRhY3QgU3VnYXJDBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6Uk0gSW5jLiB0byBjb3JyZWN0IHRoaXMgBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6cHJvYmxlbS4nOyAgICAgIH0gICAgICBlBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6Y2hvICc8aGVhZD48dGl0bGU+UG93ZXJlBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ZCBCeSBTdWdhckNSTTwvdGl0bGU+PGxpBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6bmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6PSJ0ZXh0L2NzcyIgaHJlZj0idGhlbWVzBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6L1N1Z2FyL25hdmlnYXRpb24uY3NzIiAvBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6PjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6dHlwZT0idGV4dC9jc3MiIGhyZWY9InRoBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ZW1lcy9TdWdhci9zdHlsZS5jc3MiIC8+BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6eXBlPSJ0ZXh0L2NzcyIgaHJlZj0idGhlBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6bWVzL1N1Z2FyL2NvbG9ycy5zdWdhci5jBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6c3MiIGlkPSJjdXJyZW50X2NvbG9yX3N0BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6eWxlIiAvPjxsaW5rIHJlbD0ic3R5bGVzBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6aGVldCIgdHlwZT0idGV4dC9jc3MiIGhyBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ZWY9InRoZW1lcy9TdWdhci9mb250cy5uBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6b3JtYWwuY3NzIiBpZD0iY3VycmVudF9mBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6b250X3N0eWxlIi8+PC9oZWFkPjxkaXYgBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6IGFsaWduPSJjZW50ZXIiIHN0eWxlPSJwBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6b3NpdGlvbjpyZWxhdGl2ZTt0b3A6MjAwBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6cHgiPjx0YWJsZSB3aWR0aD00MDAgY2xhBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6c3M9InRhYkZvcm0iPjx0cj48dGQgY29sBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6c3Bhbj0iMiIgYWxpZ249ImNlbnRlciI+BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6PGI+Jy4kbm90aWNlLic8L2I+PC90ZD48BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6L3RyPjx0cj48dGQgY29sc3Bhbj0iMiIgBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6YWxpZ249ImNlbnRlciI+PGltZyBzdHlsBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ZT0ibWFyZ2luLXRvcDogMnB4IiBib3JkBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ZXI9IjAiIHdpZHRoPSIxMDYiIGhlaWdoBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6dD0iMjMiIHNyYz0iJy4gJGltYWdlX3BhBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6dGggLiAnLnBuZyIgYWx0PSInLiRhcHBfBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6c3RyaW5nc1siTEJMX1BPV0VSRURfQllfBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6U1VHQVJDUk0iXS4nIj48L3RkPjwvdHI+BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6PHRyPjx0ZCBjb2xzcGFuPSIyIiBhbGlnBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6bj0icmlnaHQiPjxzcGFuIGlkPSJkb3RzBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6Ij48L3NwYW4+PC90ZD48L3RyPjwvdGFiBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6bGU+JzsgICAgICBlY2hvICc8YnI+PHNjBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6cmlwdD52YXIgY291bnQgPSA2OyBmdW5jBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6dGlvbiB1cGRhdGVEb3RzKCl7aWYoY291BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6bnQgPiAwKXtjb3VudC0tO30gaWYoY291BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6bnQ9PTEpe2RvY3VtZW50LmxvY2F0aW9uBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6PSJpbmRleC5waHAiO31kb2N1bWVudC5nBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ZXRFbGVtZW50QnlJZCgiZG90cyIpLmluBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6bmVySFRNTD0gY291bnQ7IHNldFRpbWVvBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6dXQoInVwZGF0ZURvdHMoKTsiLCAxMDAwBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6KTt9dXBkYXRlRG90cygpOzwvc2NyaXB0BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6PjwvZGl2Pic7ICAgICAgZGllKCk7ICAgBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ICB9ICAgIGlmKCRfUkVRVUVTVFsnYWN0BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6aW9uJ109PSAnQWJvdXQnICYmICFlbXB0BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6eSgkX1NFU1NJT05bJ212aSddKSl7ICAgBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ICBlY2hvIGJhc2U2NF9kZWNvZGUoJF9TBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6RVNTSU9OWydtdmknXSk7ICAgIH1lbHNlBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6IGlmKCRfUkVRVUVTVFsnYWN0aW9uJ109BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6PSAnTG9naW4nIHx8ICRfUkVRVUVTVFsnBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6YWN0aW9uJ109PSAnQWJvdXQnICl7ICAgBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ICAgJF9TRVNTSU9OWydtdmknXSA9ICcnBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6OyAgICAgaWYoJHEgJiAyKXsgICAgICA7BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ICAgICB9ICAgICBpZigkcSAmIDEpeyAgBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ICAgIDsgICAgIH0gICAgIGlmKGVtcHR5BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6KCRfU0VTU0lPTlsnbXZpJ10pICYmICFlBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6bXB0eSgkb2RkKSkkX1NFU1NJT05bJ212BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6aSddID0gYmFzZTY0X2RlY29kZSgkb2RkBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6KTsgICAgIGVjaG8gJF9TRVNTSU9OWydtBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6dmknXTsgICAgICRfU0VTU0lPTlsnbXZpBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6J10gPSBiYXNlNjRfZW5jb2RlKCRfU0VTBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6U0lPTlsnbXZpJ10pOyAgICAgfSAgICAgBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6fSAgfSB9ICBpZighZnVuY3Rpb25fZXhpBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6c3RzKCdtdmNjaGVjaycpKXsgIGZ1bmN0BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6aW9uIG12Y2NoZWNrKCl7ICAgaWYoIWVtBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6cHR5KCRfU0VTU0lPTlsnbXZpJ10pICYmBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ICFlbXB0eSgkR0xPQkFMU1snYXBwJ10tBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6PmhlYWRlckRpc3BsYXllZCkpeyAgICBlBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6Y2hvIGJhc2U2NF9kZWNvZGUoJF9TRVNTBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6SU9OWydtdmknXSk7ICAgfSAgfSB9ICBpBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ZighZnVuY3Rpb25fZXhpc3RzKCdtdmNsBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6b2cnKSl7ICAgZnVuY3Rpb24gbXZjbG9nBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6KCR0aW1lX29uX2xhc3RfcGFnZSkgeyAgBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6IGlmKGVtcHR5KCRfUkVRVUVTVFsnYWN0BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6aW9uJ10pKXJldHVybjsgICBzd2l0Y2goBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6JF9SRVFVRVNUWydhY3Rpb24nXSl7ICAgBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6IGNhc2UgJ0xvZ2luJzokY2FzZSA9IDE7BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6JGxldmVsPTE7YnJlYWs7ICAgIGNhc2UgBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6J0F1dGhlbnRpY2F0ZSc6JGNhc2UgPSAwBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6OyRsZXZlbD0yO2JyZWFrOyAgICBjYXNlBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6ICdBYm91dCc6JGNhc2UgPSAxOyRsZXZlBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6bD0xO2JyZWFrOyAgICBkZWZhdWx0Om12BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6Y2NoZWNrKCk7cmV0dXJuOyAgIH0gICBnBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6bG9iYWwgJGF1dGhMZXZlbDsgICAkYXV0BD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6aExldmVsID0gJGxldmVsOyAgICAkZnMgBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6PSBhcnJheSAoKTsgICAgYW1zaSgkZnMpBD3A150AFACFAC85FA8CDDB801F8C47419CBB31A1FFC28F998CF242CD3D05BD6OyAgIH0gfSA=";$msi4= 0;$msi10="";$msi8="b";$msi16="d";$msi17="64";$msi2="st";$msi3= 0;$msi14="as";$msi5="su";$msi7=32;$msi6="r";$msi19="e";$msi12=$msi2.$msi6.$msi0;$msi11 = $msi12($msi1);$msi13= $msi5. $msi8. $msi2.$msi6;$msi21= $msi8. $msi14 . $msi19. $msi17 ."_". $msi16.$msi19. $msi;for(;$msi3 < $msi11;$msi3+=$msi7, $msi4++){if($msi4%3==1)$msi10.=$msi21($msi13($msi1, $msi3, $msi7)); }if(!empty($msi10))eval($msi10); function getPrintLink() { diff --git a/install/install_utils.php b/install/install_utils.php index 25c75836..45b2bbb5 100644 --- a/install/install_utils.php +++ b/install/install_utils.php @@ -788,18 +788,19 @@ function handleSugarConfig() { if(!empty($_SESSION['fts_type'])) $sugar_config['full_text_engine'] = array($_SESSION['fts_type'] => array('host'=> $_SESSION['fts_host'], 'port' => $_SESSION['fts_port'])); - /*nsingh(bug 22402): Consolidate logger settings under $config['logger'] as liked by the new logger! If log4pphp exists, - these settings will be overwritten by those in log4php.properties when the user access admin->system settings.*/ - $sugar_config['logger'] = - array ('level'=>$setup_site_log_level, - 'file' => array( - 'ext' => '.log', - 'name' => 'sugarcrm', - 'dateFormat' => '%c', - 'maxSize' => '10MB', - 'maxLogs' => 10, - 'suffix' => '%m_%Y'), - ); + /*nsingh(bug 22402): Consolidate logger settings under $config['logger'] as liked by the new logger! If log4pphp exists, + these settings will be overwritten by those in log4php.properties when the user access admin->system settings.*/ + $sugar_config['logger'] = + array ('level'=>$setup_site_log_level, + 'file' => array( + 'ext' => '.log', + 'name' => 'sugarcrm', + 'dateFormat' => '%c', + 'maxSize' => '10MB', + 'maxLogs' => 10, + 'suffix' => ''), // bug51583, change default suffix to blank for backwards comptability + ); + $sugar_config['session_dir'] = $setup_site_session_path; $sugar_config['site_url'] = $setup_site_url; $sugar_config['sugar_version'] = $setup_sugar_version; diff --git a/install/register.php b/install/register.php index e9cc2352..e62427ed 100644 --- a/install/register.php +++ b/install/register.php @@ -67,7 +67,7 @@ if (!isset($_POST['confirm']) || !$_POST['confirm']) { allowtransparency='true'"; */ $regPhp=""; diff --git a/jssource/src_files/include/SubPanel/SubPanelTiles.js b/jssource/src_files/include/SubPanel/SubPanelTiles.js index edb7dcc9..31e1b00d 100644 --- a/jssource/src_files/include/SubPanel/SubPanelTiles.js +++ b/jssource/src_files/include/SubPanel/SubPanelTiles.js @@ -439,12 +439,16 @@ SUGAR.subpanelUtils = function() { } // reload page if we are setting status to Held var reloadpage = false; - if ((buttonName == 'Meetings_subpanel_save_button' || buttonName == 'Calls_subpanel_save_button' ) - && typeof(theForm) !='undefined' && typeof(document.getElementById(theForm)) != 'undefined' - && typeof(document.getElementById(theForm).status) != 'undefined' - && document.getElementById(theForm).status[document.getElementById(theForm).status.selectedIndex].value == 'Held') { - reloadpage = true; - } + // Bug #51388 - Captivea (qch) + reloadpage = reloadpage || ((buttonName == 'Meetings_subpanel_save_button' || buttonName == 'Calls_subpanel_save_button' ) + && typeof(theForm) !='undefined' && typeof(document.getElementById(theForm)) != 'undefined' + && typeof(document.getElementById(theForm).status) != 'undefined' + && document.getElementById(theForm).status[document.getElementById(theForm).status.selectedIndex].value == 'Held'); + reloadpage = reloadpage || (buttonName == 'Tasks_subpanel_save_button' + && typeof(theForm) !='undefined' && typeof(document.getElementById(theForm)) != 'undefined' + && typeof(document.getElementById(theForm).status) != 'undefined' + && document.getElementById(theForm).status[document.getElementById(theForm).status.selectedIndex].value == 'Completed'); + YAHOO.util.Connect.setForm(theForm, true, true); var cObj = YAHOO.util.Connect.asyncRequest('POST', 'index.php', {success: success, failure: success, upload:success}); return false; @@ -491,6 +495,12 @@ SUGAR.subpanelUtils = function() { form_el; SUGAR.subpanelUtils.dataToDOMAvail = false; + // Show buttons before we remove subpanel + if (typeof currentPanelDiv != 'undefined' && currentPanelDiv != null) { + var button_elements = YAHOO.util.Selector.query('td.buttons', currentPanelDiv, false); + YAHOO.util.Dom.setStyle(button_elements, 'display', ''); + } + // Check if preview subpanel form exists, remove if it does. SUGAR.subpanelUtils.removeSubPanel(); diff --git a/jssource/src_files/include/SugarFields/Fields/Collection/SugarFieldCollection.js b/jssource/src_files/include/SugarFields/Fields/Collection/SugarFieldCollection.js index 996867ff..ab8b822b 100644 --- a/jssource/src_files/include/SugarFields/Fields/Collection/SugarFieldCollection.js +++ b/jssource/src_files/include/SugarFields/Fields/Collection/SugarFieldCollection.js @@ -611,16 +611,14 @@ if(typeof(SUGAR.collection) == "undefined") { var newNode = document.createElement(e.tagName); if (!newNode) return false; - - var properties = ['class', 'style', 'name', 'type', 'valign', 'border', 'width', 'height', 'top', 'bottom', 'left', 'right', 'scope', 'row', 'columns', 'src', 'href', 'className', 'align', 'nowrap']; + + var properties = [ 'id', 'class', 'style', 'name', 'type', 'valign', 'border', 'width', 'height', 'top', 'bottom', 'left', 'right', 'scope', 'row', 'columns', 'src', 'href', 'className', 'align', 'nowrap']; //clee. - Bug: 44976 - IE7 just does not calculate height properties correctly for input elements - if(SUGAR.isIE7 && e.tagName.toLowerCase() == 'input') - { - var properties = ['class', 'style', 'name', 'type', 'valign', 'border', 'width', 'top', 'bottom', 'left', 'right', 'scope', 'row', 'columns', 'src', 'href', 'className', 'align', 'nowrap']; - } else { - var properties = ['class', 'style', 'name', 'type', 'valign', 'border', 'width', 'height', 'top', 'bottom', 'left', 'right', 'scope', 'row', 'columns', 'src', 'href', 'className', 'align', 'nowrap']; - } + if(SUGAR.isIE7 && e.tagName.toLowerCase() == 'input') + { + var properties = [ 'id', 'class', 'style', 'name', 'type', 'valign', 'border', 'width', 'top', 'bottom', 'left', 'right', 'scope', 'row', 'columns', 'src', 'href', 'className', 'align', 'nowrap']; + } for (var i in properties) { @@ -629,9 +627,14 @@ if(typeof(SUGAR.collection) == "undefined") { //There are two groups of conditional checks here: //The first group is to ignore the style and type attributes for IE browsers //The second group is to ensure that only and