diff --git a/docs/vbs/umn/ALL_META.TXT.json b/docs/vbs/umn/ALL_META.TXT.json new file mode 100644 index 000000000..876b5b493 --- /dev/null +++ b/docs/vbs/umn/ALL_META.TXT.json @@ -0,0 +1,432 @@ +[ + { + "uri":"en-us_topic_0015667845.html", + "product_code":"vbs", + "code":"1", + "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", + "doc_type":"usermanual", + "kw":"Service Overview", + "title":"Service Overview", + "githuburl":"" + }, + { + "uri":"en-us_topic_0015667828.html", + "product_code":"vbs", + "code":"2", + "des":"Volume Backup Service (VBS) provides snapshot-based data protection for Elastic Volume Service (EVS) disks.VBS secures your data, even if an EVS disk is faulty or encount", + "doc_type":"usermanual", + "kw":"VBS,Service Overview,User Guide", + "title":"VBS", + "githuburl":"" + }, + { + "uri":"en-us_topic_0031627299.html", + "product_code":"vbs", + "code":"3", + "des":"You can use VBS to back up and restore EVS disks. VBS provides the following functions:EVS disk-specific backupPolicy-driven data backupBackup data managementEVS disk res", + "doc_type":"usermanual", + "kw":"VBS Functions,Service Overview,User Guide", + "title":"VBS Functions", + "githuburl":"" + }, + { + "uri":"en-us_topic_0015667831.html", + "product_code":"vbs", + "code":"4", + "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", + "doc_type":"usermanual", + "kw":"Related Services,Service Overview,User Guide", + "title":"Related Services", + "githuburl":"" + }, + { + "uri":"en-us_topic_0071078294.html", + "product_code":"vbs", + "code":"5", + "des":"The public cloud system provides two types of user permissions by default: user management and resource management. User management refers to the management of users and ", + "doc_type":"usermanual", + "kw":"User Permissions,Service Overview,User Guide", + "title":"User Permissions", + "githuburl":"" + }, + { + "uri":"en-us_topic_0071076576.html", + "product_code":"vbs", + "code":"6", + "des":"A backup policy, including the backup period and retention rules, can automate data backup of EVS disks. Backup policies are user specific.Instant Restore is a feature th", + "doc_type":"usermanual", + "kw":"Basic Concepts,Service Overview,User Guide", + "title":"Basic Concepts", + "githuburl":"" + }, + { + "uri":"en-us_topic_0170379340.html", + "product_code":"vbs", + "code":"7", + "des":"A region and availability zone (AZ) identify the location of a data center. You can create resources in a specific region and AZ.A region is a physical data center, which", + "doc_type":"usermanual", + "kw":"Region and AZ,Service Overview,User Guide", + "title":"Region and AZ", + "githuburl":"" + }, + { + "uri":"en-us_topic_0015667841.html", + "product_code":"vbs", + "code":"8", + "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", + "doc_type":"usermanual", + "kw":"Getting Started", + "title":"Getting Started", + "githuburl":"" + }, + { + "uri":"en-us_topic_0042416420.html", + "product_code":"vbs", + "code":"9", + "des":"Figure 1 shows the process for VBS related operations.Creating VBS backups includes the creation of manual backup tasks and automatic backup tasks.To restore an EVS disk ", + "doc_type":"usermanual", + "kw":"Operation Procedure,Getting Started,User Guide", + "title":"Operation Procedure", + "githuburl":"" + }, + { + "uri":"en-us_topic_0015667820.html", + "product_code":"vbs", + "code":"10", + "des":"You can create backups for your EVS disks to protect the disk data through the VBS console or the EVS console.An EVS disk can be backed up only when its status is Availab", + "doc_type":"usermanual", + "kw":"Creating a VBS Backup,Getting Started,User Guide", + "title":"Creating a VBS Backup", + "githuburl":"" + }, + { + "uri":"en-us_topic_0015667840.html", + "product_code":"vbs", + "code":"11", + "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", + "doc_type":"usermanual", + "kw":"Operation Guide", + "title":"Operation Guide", + "githuburl":"" + }, + { + "uri":"en-us_topic_0015667849.html", + "product_code":"vbs", + "code":"12", + "des":"You can set filtering criteria to query wanted backups, add tags to backups for grouped management, and share your backups with other projects.CSBS backups of ECSs are al", + "doc_type":"usermanual", + "kw":"VBS Backup Management,Operation Guide,User Guide", + "title":"VBS Backup Management", + "githuburl":"" + }, + { + "uri":"en-us_topic_0033745918.html", + "product_code":"vbs", + "code":"13", + "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", + "doc_type":"usermanual", + "kw":"Data Backup Using a Backup Policy", + "title":"Data Backup Using a Backup Policy", + "githuburl":"" + }, + { + "uri":"en-us_topic_0112805383.html", + "product_code":"vbs", + "code":"14", + "des":"To implement periodic automatic backup on EVS disks, you need to create a backup policy first. Then the system will periodically perform backups according to the executio", + "doc_type":"usermanual", + "kw":"Creating a Backup Policy,Data Backup Using a Backup Policy,User Guide", + "title":"Creating a Backup Policy", + "githuburl":"" + }, + { + "uri":"en-us_topic_0112805384.html", + "product_code":"vbs", + "code":"15", + "des":"After creating a backup policy, you can associate EVS disks to the backup policy. Later, the system will back up the EVS disks automatically according to the execution ti", + "doc_type":"usermanual", + "kw":"Associating EVS Disks with a Backup Policy or Disassociating Them from a Backup Policy,Data Backup U", + "title":"Associating EVS Disks with a Backup Policy or Disassociating Them from a Backup Policy", + "githuburl":"" + }, + { + "uri":"en-us_topic_0112805385.html", + "product_code":"vbs", + "code":"16", + "des":"To query an EVS disk from a backup policy with a large number of EVS disks associated, you can set filtering criteria to search it.", + "doc_type":"usermanual", + "kw":"Searching for Associated EVS Disks,Data Backup Using a Backup Policy,User Guide", + "title":"Searching for Associated EVS Disks", + "githuburl":"" + }, + { + "uri":"en-us_topic_0112805386.html", + "product_code":"vbs", + "code":"17", + "des":"On the Backup Jobs panel of the backup policy, you can view all backup jobs of the selected backup policy. If a backup job is in the Failed or Timed out state, you can cl", + "doc_type":"usermanual", + "kw":"Viewing Backup Jobs,Data Backup Using a Backup Policy,User Guide", + "title":"Viewing Backup Jobs", + "githuburl":"" + }, + { + "uri":"en-us_topic_0112805387.html", + "product_code":"vbs", + "code":"18", + "des":"You can add tags to a backup policy as well as edit and delete these tags. Tags are used to filter and manage backup resources only.Adding tagsIn the upper left corner of", + "doc_type":"usermanual", + "kw":"Managing Backup Policy Tags,Data Backup Using a Backup Policy,User Guide", + "title":"Managing Backup Policy Tags", + "githuburl":"" + }, + { + "uri":"en-us_topic_0112805388.html", + "product_code":"vbs", + "code":"19", + "des":"You can edit, enable, execute, and delete backup policies.Editing a backup policyIn the Operation column of the backup policy that you want to modify, click Edit. The Edi", + "doc_type":"usermanual", + "kw":"(Optional) Other Operations with Backup Policies,Data Backup Using a Backup Policy,User Guide", + "title":"(Optional) Other Operations with Backup Policies", + "githuburl":"" + }, + { + "uri":"en-us_topic_0015667886.html", + "product_code":"vbs", + "code":"20", + "des":"You can use VBS backups to restore EVS disks to a given point in time or create EVS disks. Data on the EVS disks is equivalent to the backup data.You can use a VBS backup", + "doc_type":"usermanual", + "kw":"Data Restoration Using a VBS Backup,Operation Guide,User Guide", + "title":"Data Restoration Using a VBS Backup", + "githuburl":"" + }, + { + "uri":"en-us_topic_0115393304.html", + "product_code":"vbs", + "code":"21", + "des":"CTS records operations of VBS resources, facilitating query, audit, and backtracking.You have enabled CTS and the tracker is running properly. For details about how to en", + "doc_type":"usermanual", + "kw":"Viewing VBS Traces,Operation Guide,User Guide", + "title":"Viewing VBS Traces", + "githuburl":"" + }, + { + "uri":"en-us_topic_0153835047.html", + "product_code":"vbs", + "code":"22", + "des":"Quotas can limit the number or amount of resources available to users, such as the maximum number of ECSs or EVS disks that can be created.If the existing resource quota ", + "doc_type":"usermanual", + "kw":"Quotas,Operation Guide,User Guide", + "title":"Quotas", + "githuburl":"" + }, + { + "uri":"en-us_topic_0033871603.html", + "product_code":"vbs", + "code":"23", + "des":"This section explains how to use VBS to ensure data security in different scenarios, its limitations, and its typical operations.VBS applies to the following scenarios:Ha", + "doc_type":"usermanual", + "kw":"VBS Operation Instances,Operation Guide,User Guide", + "title":"VBS Operation Instances", + "githuburl":"" + }, + { + "uri":"en-us_topic_0015667819.html", + "product_code":"vbs", + "code":"24", + "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", + "doc_type":"usermanual", + "kw":"FAQs", + "title":"FAQs", + "githuburl":"" + }, + { + "uri":"en-us_topic_0086521573.html", + "product_code":"vbs", + "code":"25", + "des":"Table 1 lists the differences between Cloud Server Backup Service (CSBS) and Volume Backup Service (VBS).", + "doc_type":"usermanual", + "kw":"What Are the Differences Between CSBS and VBS?,FAQs,User Guide", + "title":"What Are the Differences Between CSBS and VBS?", + "githuburl":"" + }, + { + "uri":"en-us_topic_0015667847.html", + "product_code":"vbs", + "code":"26", + "des":"Yes. Users can create a backup policy and associate the backup policy with multiple EVS disks. Then the backup policy can be executed to back up the multiple EVS disks at", + "doc_type":"usermanual", + "kw":"Does VBS Support Simultaneous Backup of All EVS Disks on a Server?,FAQs,User Guide", + "title":"Does VBS Support Simultaneous Backup of All EVS Disks on a Server?", + "githuburl":"" + }, + { + "uri":"en-us_topic_0015667851.html", + "product_code":"vbs", + "code":"27", + "des":"VBS can back up EVS disks that are being used. When a server is running, data is written onto EVS disks on the server, and some newly generated data is stored in the serv", + "doc_type":"usermanual", + "kw":"Do I Need to Stop the Server Before Backing Up EVS Disks on a Server Using VBS?,FAQs,User Guide", + "title":"Do I Need to Stop the Server Before Backing Up EVS Disks on a Server Using VBS?", + "githuburl":"" + }, + { + "uri":"en-us_topic_0057324230.html", + "product_code":"vbs", + "code":"28", + "des":"No. Currently VBS supports only backup and restoration within a region but not across regions.", + "doc_type":"usermanual", + "kw":"Does VBS Support Cross-Region Backup and Restoration?,FAQs,User Guide", + "title":"Does VBS Support Cross-Region Backup and Restoration?", + "githuburl":"" + }, + { + "uri":"en-us_topic_0015667830.html", + "product_code":"vbs", + "code":"29", + "des":"Yes. Before restoring the EVS disk data using a VBS backup, you must stop the server to which the EVS disk is attached, and detach the EVS disk from the server. After the", + "doc_type":"usermanual", + "kw":"Do I Need to Stop the Server Before Restoring EVS Disk Data with a VBS Backup?,FAQs,User Guide", + "title":"Do I Need to Stop the Server Before Restoring EVS Disk Data with a VBS Backup?", + "githuburl":"" + }, + { + "uri":"en-us_topic_0104564767.html", + "product_code":"vbs", + "code":"30", + "des":"CSBS backups of ECSs are also displayed on the VBS backup page and can be distinguished from VBS backups by Source in the backup details.To use CSBS to back up a server i", + "doc_type":"usermanual", + "kw":"Why Are CSBS Backups Displayed on the VBS Backup Page?,FAQs,User Guide", + "title":"Why Are CSBS Backups Displayed on the VBS Backup Page?", + "githuburl":"" + }, + { + "uri":"en-us_topic_0018011371.html", + "product_code":"vbs", + "code":"31", + "des":"Yes. You can restore the system disk using a VBS backup. Before restoring the system disk, you must detach it from the ECS.You can also use a VBS backup of the system dis", + "doc_type":"usermanual", + "kw":"Can a VBS Backup of a System Disk Be Used to Restore the System Disk of an ECS?,FAQs,User Guide", + "title":"Can a VBS Backup of a System Disk Be Used to Restore the System Disk of an ECS?", + "githuburl":"" + }, + { + "uri":"en-us_topic_0018020175.html", + "product_code":"vbs", + "code":"32", + "des":"Yes. After restoration, the capacity of the expanded EVS disk goes back to the original capacity before expansion. If you want to use the capacity added to the disk, you ", + "doc_type":"usermanual", + "kw":"Can I Use a VBS Backup to Restore an EVS Disk Whose Capacity Has Been Expanded?,FAQs,User Guide", + "title":"Can I Use a VBS Backup to Restore an EVS Disk Whose Capacity Has Been Expanded?", + "githuburl":"" + }, + { + "uri":"en-us_topic_0018011683.html", + "product_code":"vbs", + "code":"33", + "des":"Yes.This quota exists to prevent resource overuse. If you need to create more VBS backups, contact the administrator to apply for a higher quota.", + "doc_type":"usermanual", + "kw":"Is There a Quota Limit on the Number of Backups?,FAQs,User Guide", + "title":"Is There a Quota Limit on the Number of Backups?", + "githuburl":"" + }, + { + "uri":"en-us_topic_0046276032.html", + "product_code":"vbs", + "code":"34", + "des":"Exceptions in VBS mainly include abnormal states of VBS backups and backup jobs. Take the following measures to handle these exceptions.", + "doc_type":"usermanual", + "kw":"What Can I Do In Case of Exceptions in VBS?,FAQs,User Guide", + "title":"What Can I Do In Case of Exceptions in VBS?", + "githuburl":"" + }, + { + "uri":"en-us_topic_0067558642.html", + "product_code":"vbs", + "code":"35", + "des":"Tags are used to identify and classify backups that are automatically or manually generated with VBS. Tags are used to filter and manage backup resources only. All backup", + "doc_type":"usermanual", + "kw":"Why Add Tags to a VBS Backup or Backup Policy?,FAQs,User Guide", + "title":"Why Add Tags to a VBS Backup or Backup Policy?", + "githuburl":"" + }, + { + "uri":"en-us_topic_0105911995.html", + "product_code":"vbs", + "code":"36", + "des":"Yes. Up to 24 automatic backup jobs can be executed per day. Manual backup jobs have no such restriction.The minimum frequency for policy-driven backup is once per integr", + "doc_type":"usermanual", + "kw":"Does Backup Can Be Performed Several Times a Day?,FAQs,User Guide", + "title":"Does Backup Can Be Performed Several Times a Day?", + "githuburl":"" + }, + { + "uri":"en-us_topic_0105943829.html", + "product_code":"vbs", + "code":"37", + "des":"Yes. If an EVS disk you select to be associated with the target policy has been associated with another one, the system will disassociate it from the original policy and ", + "doc_type":"usermanual", + "kw":"Can a Disk Only Be Associated With One Policy?,FAQs,User Guide", + "title":"Can a Disk Only Be Associated With One Policy?", + "githuburl":"" + }, + { + "uri":"en-us_topic_0126537915.html", + "product_code":"vbs", + "code":"38", + "des":"After an initial full backup, an ECS continues to be backed up incrementally by default.The initial full backup covers data on every disk of the ECS. If a 100 GB disk con", + "doc_type":"usermanual", + "kw":"What Are Full Backup and Incremental Backup?,FAQs,User Guide", + "title":"What Are Full Backup and Incremental Backup?", + "githuburl":"" + }, + { + "uri":"en-us_topic_0126537916.html", + "product_code":"vbs", + "code":"39", + "des":"Both backups and snapshots provide data redundancy for EVS disks to improve data reliability. Table 1 lists the differences between them.", + "doc_type":"usermanual", + "kw":"What Are the Differences Between Backups and Snapshots?,FAQs,User Guide", + "title":"What Are the Differences Between Backups and Snapshots?", + "githuburl":"" + }, + { + "uri":"en-us_topic_0127994691.html", + "product_code":"vbs", + "code":"40", + "des":"This situation appears because the deletion operations are asynchronous. After a backup is deleted, no fee will be generated. The underlying backup data will be deleted g", + "doc_type":"usermanual", + "kw":"Why Is the Remaining Space Not Changed After a Backup Is Deleted?,FAQs,User Guide", + "title":"Why Is the Remaining Space Not Changed After a Backup Is Deleted?", + "githuburl":"" + }, + { + "uri":"en-us_topic_0035111666.html", + "product_code":"vbs", + "code":"41", + "des":"Failed to attach EVS disks despite following the procedure: Create EVS disks using the same VBS backup (XFS file system backup) and attach them to the same server (to whi", + "doc_type":"usermanual", + "kw":"Troubleshooting Cases,User Guide", + "title":"Troubleshooting Cases", + "githuburl":"" + }, + { + "uri":"en-us_topic_0041062628.html", + "product_code":"vbs", + "code":"42", + "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", + "doc_type":"usermanual", + "kw":"Change History,User Guide", + "title":"Change History", + "githuburl":"" + }, + { + "uri":"en-us_topic_0047898517.html", + "product_code":"vbs", + "code":"43", + "des":"For details about the terms involved in this document, see Glossary.", + "doc_type":"usermanual", + "kw":"Glossary,User Guide", + "title":"Glossary", + "githuburl":"" + } +] \ No newline at end of file diff --git a/docs/vbs/umn/CLASS.TXT.json b/docs/vbs/umn/CLASS.TXT.json new file mode 100644 index 000000000..2090864b7 --- /dev/null +++ b/docs/vbs/umn/CLASS.TXT.json @@ -0,0 +1,389 @@ +[ + { + "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", + "product_code":"vbs", + "title":"Service Overview", + "uri":"en-us_topic_0015667845.html", + "doc_type":"usermanual", + "p_code":"", + "code":"1" + }, + { + "desc":"Volume Backup Service (VBS) provides snapshot-based data protection for Elastic Volume Service (EVS) disks.VBS secures your data, even if an EVS disk is faulty or encount", + "product_code":"vbs", + "title":"VBS", + "uri":"en-us_topic_0015667828.html", + "doc_type":"usermanual", + "p_code":"1", + "code":"2" + }, + { + "desc":"You can use VBS to back up and restore EVS disks. VBS provides the following functions:EVS disk-specific backupPolicy-driven data backupBackup data managementEVS disk res", + "product_code":"vbs", + "title":"VBS Functions", + "uri":"en-us_topic_0031627299.html", + "doc_type":"usermanual", + "p_code":"1", + "code":"3" + }, + { + "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", + "product_code":"vbs", + "title":"Related Services", + "uri":"en-us_topic_0015667831.html", + "doc_type":"usermanual", + "p_code":"1", + "code":"4" + }, + { + "desc":"The public cloud system provides two types of user permissions by default: user management and resource management. User management refers to the management of users and ", + "product_code":"vbs", + "title":"User Permissions", + "uri":"en-us_topic_0071078294.html", + "doc_type":"usermanual", + "p_code":"1", + "code":"5" + }, + { + "desc":"A backup policy, including the backup period and retention rules, can automate data backup of EVS disks. Backup policies are user specific.Instant Restore is a feature th", + "product_code":"vbs", + "title":"Basic Concepts", + "uri":"en-us_topic_0071076576.html", + "doc_type":"usermanual", + "p_code":"1", + "code":"6" + }, + { + "desc":"A region and availability zone (AZ) identify the location of a data center. You can create resources in a specific region and AZ.A region is a physical data center, which", + "product_code":"vbs", + "title":"Region and AZ", + "uri":"en-us_topic_0170379340.html", + "doc_type":"usermanual", + "p_code":"1", + "code":"7" + }, + { + "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", + "product_code":"vbs", + "title":"Getting Started", + "uri":"en-us_topic_0015667841.html", + "doc_type":"usermanual", + "p_code":"", + "code":"8" + }, + { + "desc":"Figure 1 shows the process for VBS related operations.Creating VBS backups includes the creation of manual backup tasks and automatic backup tasks.To restore an EVS disk ", + "product_code":"vbs", + "title":"Operation Procedure", + "uri":"en-us_topic_0042416420.html", + "doc_type":"usermanual", + "p_code":"8", + "code":"9" + }, + { + "desc":"You can create backups for your EVS disks to protect the disk data through the VBS console or the EVS console.An EVS disk can be backed up only when its status is Availab", + "product_code":"vbs", + "title":"Creating a VBS Backup", + "uri":"en-us_topic_0015667820.html", + "doc_type":"usermanual", + "p_code":"8", + "code":"10" + }, + { + "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", + "product_code":"vbs", + "title":"Operation Guide", + "uri":"en-us_topic_0015667840.html", + "doc_type":"usermanual", + "p_code":"", + "code":"11" + }, + { + "desc":"You can set filtering criteria to query wanted backups, add tags to backups for grouped management, and share your backups with other projects.CSBS backups of ECSs are al", + "product_code":"vbs", + "title":"VBS Backup Management", + "uri":"en-us_topic_0015667849.html", + "doc_type":"usermanual", + "p_code":"11", + "code":"12" + }, + { + "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", + "product_code":"vbs", + "title":"Data Backup Using a Backup Policy", + "uri":"en-us_topic_0033745918.html", + "doc_type":"usermanual", + "p_code":"11", + "code":"13" + }, + { + "desc":"To implement periodic automatic backup on EVS disks, you need to create a backup policy first. Then the system will periodically perform backups according to the executio", + "product_code":"vbs", + "title":"Creating a Backup Policy", + "uri":"en-us_topic_0112805383.html", + "doc_type":"usermanual", + "p_code":"13", + "code":"14" + }, + { + "desc":"After creating a backup policy, you can associate EVS disks to the backup policy. Later, the system will back up the EVS disks automatically according to the execution ti", + "product_code":"vbs", + "title":"Associating EVS Disks with a Backup Policy or Disassociating Them from a Backup Policy", + "uri":"en-us_topic_0112805384.html", + "doc_type":"usermanual", + "p_code":"13", + "code":"15" + }, + { + "desc":"To query an EVS disk from a backup policy with a large number of EVS disks associated, you can set filtering criteria to search it.", + "product_code":"vbs", + "title":"Searching for Associated EVS Disks", + "uri":"en-us_topic_0112805385.html", + "doc_type":"usermanual", + "p_code":"13", + "code":"16" + }, + { + "desc":"On the Backup Jobs panel of the backup policy, you can view all backup jobs of the selected backup policy. If a backup job is in the Failed or Timed out state, you can cl", + "product_code":"vbs", + "title":"Viewing Backup Jobs", + "uri":"en-us_topic_0112805386.html", + "doc_type":"usermanual", + "p_code":"13", + "code":"17" + }, + { + "desc":"You can add tags to a backup policy as well as edit and delete these tags. Tags are used to filter and manage backup resources only.Adding tagsIn the upper left corner of", + "product_code":"vbs", + "title":"Managing Backup Policy Tags", + "uri":"en-us_topic_0112805387.html", + "doc_type":"usermanual", + "p_code":"13", + "code":"18" + }, + { + "desc":"You can edit, enable, execute, and delete backup policies.Editing a backup policyIn the Operation column of the backup policy that you want to modify, click Edit. The Edi", + "product_code":"vbs", + "title":"(Optional) Other Operations with Backup Policies", + "uri":"en-us_topic_0112805388.html", + "doc_type":"usermanual", + "p_code":"13", + "code":"19" + }, + { + "desc":"You can use VBS backups to restore EVS disks to a given point in time or create EVS disks. Data on the EVS disks is equivalent to the backup data.You can use a VBS backup", + "product_code":"vbs", + "title":"Data Restoration Using a VBS Backup", + "uri":"en-us_topic_0015667886.html", + "doc_type":"usermanual", + "p_code":"11", + "code":"20" + }, + { + "desc":"CTS records operations of VBS resources, facilitating query, audit, and backtracking.You have enabled CTS and the tracker is running properly. For details about how to en", + "product_code":"vbs", + "title":"Viewing VBS Traces", + "uri":"en-us_topic_0115393304.html", + "doc_type":"usermanual", + "p_code":"11", + "code":"21" + }, + { + "desc":"Quotas can limit the number or amount of resources available to users, such as the maximum number of ECSs or EVS disks that can be created.If the existing resource quota ", + "product_code":"vbs", + "title":"Quotas", + "uri":"en-us_topic_0153835047.html", + "doc_type":"usermanual", + "p_code":"11", + "code":"22" + }, + { + "desc":"This section explains how to use VBS to ensure data security in different scenarios, its limitations, and its typical operations.VBS applies to the following scenarios:Ha", + "product_code":"vbs", + "title":"VBS Operation Instances", + "uri":"en-us_topic_0033871603.html", + "doc_type":"usermanual", + "p_code":"11", + "code":"23" + }, + { + "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", + "product_code":"vbs", + "title":"FAQs", + "uri":"en-us_topic_0015667819.html", + "doc_type":"usermanual", + "p_code":"", + "code":"24" + }, + { + "desc":"Table 1 lists the differences between Cloud Server Backup Service (CSBS) and Volume Backup Service (VBS).", + "product_code":"vbs", + "title":"What Are the Differences Between CSBS and VBS?", + "uri":"en-us_topic_0086521573.html", + "doc_type":"usermanual", + "p_code":"24", + "code":"25" + }, + { + "desc":"Yes. Users can create a backup policy and associate the backup policy with multiple EVS disks. Then the backup policy can be executed to back up the multiple EVS disks at", + "product_code":"vbs", + "title":"Does VBS Support Simultaneous Backup of All EVS Disks on a Server?", + "uri":"en-us_topic_0015667847.html", + "doc_type":"usermanual", + "p_code":"24", + "code":"26" + }, + { + "desc":"VBS can back up EVS disks that are being used. When a server is running, data is written onto EVS disks on the server, and some newly generated data is stored in the serv", + "product_code":"vbs", + "title":"Do I Need to Stop the Server Before Backing Up EVS Disks on a Server Using VBS?", + "uri":"en-us_topic_0015667851.html", + "doc_type":"usermanual", + "p_code":"24", + "code":"27" + }, + { + "desc":"No. Currently VBS supports only backup and restoration within a region but not across regions.", + "product_code":"vbs", + "title":"Does VBS Support Cross-Region Backup and Restoration?", + "uri":"en-us_topic_0057324230.html", + "doc_type":"usermanual", + "p_code":"24", + "code":"28" + }, + { + "desc":"Yes. Before restoring the EVS disk data using a VBS backup, you must stop the server to which the EVS disk is attached, and detach the EVS disk from the server. After the", + "product_code":"vbs", + "title":"Do I Need to Stop the Server Before Restoring EVS Disk Data with a VBS Backup?", + "uri":"en-us_topic_0015667830.html", + "doc_type":"usermanual", + "p_code":"24", + "code":"29" + }, + { + "desc":"CSBS backups of ECSs are also displayed on the VBS backup page and can be distinguished from VBS backups by Source in the backup details.To use CSBS to back up a server i", + "product_code":"vbs", + "title":"Why Are CSBS Backups Displayed on the VBS Backup Page?", + "uri":"en-us_topic_0104564767.html", + "doc_type":"usermanual", + "p_code":"24", + "code":"30" + }, + { + "desc":"Yes. You can restore the system disk using a VBS backup. Before restoring the system disk, you must detach it from the ECS.You can also use a VBS backup of the system dis", + "product_code":"vbs", + "title":"Can a VBS Backup of a System Disk Be Used to Restore the System Disk of an ECS?", + "uri":"en-us_topic_0018011371.html", + "doc_type":"usermanual", + "p_code":"24", + "code":"31" + }, + { + "desc":"Yes. After restoration, the capacity of the expanded EVS disk goes back to the original capacity before expansion. If you want to use the capacity added to the disk, you ", + "product_code":"vbs", + "title":"Can I Use a VBS Backup to Restore an EVS Disk Whose Capacity Has Been Expanded?", + "uri":"en-us_topic_0018020175.html", + "doc_type":"usermanual", + "p_code":"24", + "code":"32" + }, + { + "desc":"Yes.This quota exists to prevent resource overuse. If you need to create more VBS backups, contact the administrator to apply for a higher quota.", + "product_code":"vbs", + "title":"Is There a Quota Limit on the Number of Backups?", + "uri":"en-us_topic_0018011683.html", + "doc_type":"usermanual", + "p_code":"24", + "code":"33" + }, + { + "desc":"Exceptions in VBS mainly include abnormal states of VBS backups and backup jobs. Take the following measures to handle these exceptions.", + "product_code":"vbs", + "title":"What Can I Do In Case of Exceptions in VBS?", + "uri":"en-us_topic_0046276032.html", + "doc_type":"usermanual", + "p_code":"24", + "code":"34" + }, + { + "desc":"Tags are used to identify and classify backups that are automatically or manually generated with VBS. Tags are used to filter and manage backup resources only. All backup", + "product_code":"vbs", + "title":"Why Add Tags to a VBS Backup or Backup Policy?", + "uri":"en-us_topic_0067558642.html", + "doc_type":"usermanual", + "p_code":"24", + "code":"35" + }, + { + "desc":"Yes. Up to 24 automatic backup jobs can be executed per day. Manual backup jobs have no such restriction.The minimum frequency for policy-driven backup is once per integr", + "product_code":"vbs", + "title":"Does Backup Can Be Performed Several Times a Day?", + "uri":"en-us_topic_0105911995.html", + "doc_type":"usermanual", + "p_code":"24", + "code":"36" + }, + { + "desc":"Yes. If an EVS disk you select to be associated with the target policy has been associated with another one, the system will disassociate it from the original policy and ", + "product_code":"vbs", + "title":"Can a Disk Only Be Associated With One Policy?", + "uri":"en-us_topic_0105943829.html", + "doc_type":"usermanual", + "p_code":"24", + "code":"37" + }, + { + "desc":"After an initial full backup, an ECS continues to be backed up incrementally by default.The initial full backup covers data on every disk of the ECS. If a 100 GB disk con", + "product_code":"vbs", + "title":"What Are Full Backup and Incremental Backup?", + "uri":"en-us_topic_0126537915.html", + "doc_type":"usermanual", + "p_code":"24", + "code":"38" + }, + { + "desc":"Both backups and snapshots provide data redundancy for EVS disks to improve data reliability. Table 1 lists the differences between them.", + "product_code":"vbs", + "title":"What Are the Differences Between Backups and Snapshots?", + "uri":"en-us_topic_0126537916.html", + "doc_type":"usermanual", + "p_code":"24", + "code":"39" + }, + { + "desc":"This situation appears because the deletion operations are asynchronous. After a backup is deleted, no fee will be generated. The underlying backup data will be deleted g", + "product_code":"vbs", + "title":"Why Is the Remaining Space Not Changed After a Backup Is Deleted?", + "uri":"en-us_topic_0127994691.html", + "doc_type":"usermanual", + "p_code":"24", + "code":"40" + }, + { + "desc":"Failed to attach EVS disks despite following the procedure: Create EVS disks using the same VBS backup (XFS file system backup) and attach them to the same server (to whi", + "product_code":"vbs", + "title":"Troubleshooting Cases", + "uri":"en-us_topic_0035111666.html", + "doc_type":"usermanual", + "p_code":"", + "code":"41" + }, + { + "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", + "product_code":"vbs", + "title":"Change History", + "uri":"en-us_topic_0041062628.html", + "doc_type":"usermanual", + "p_code":"", + "code":"42" + }, + { + "desc":"For details about the terms involved in this document, see Glossary.", + "product_code":"vbs", + "title":"Glossary", + "uri":"en-us_topic_0047898517.html", + "doc_type":"usermanual", + "p_code":"", + "code":"43" + } +] \ No newline at end of file diff --git a/docs/vbs/umn/PARAMETERS.txt b/docs/vbs/umn/PARAMETERS.txt new file mode 100644 index 000000000..6da8d5f07 --- /dev/null +++ b/docs/vbs/umn/PARAMETERS.txt @@ -0,0 +1,3 @@ +version="" +language="en-us" +type="" \ No newline at end of file diff --git a/docs/vbs/umn/en-us_image_0075595478.png b/docs/vbs/umn/en-us_image_0075595478.png new file mode 100644 index 000000000..6c7dac72c Binary files /dev/null and b/docs/vbs/umn/en-us_image_0075595478.png differ diff --git a/docs/vbs/umn/en-us_image_0075595645.png b/docs/vbs/umn/en-us_image_0075595645.png new file mode 100644 index 000000000..f2c9aac5e Binary files /dev/null and b/docs/vbs/umn/en-us_image_0075595645.png differ diff --git a/docs/vbs/umn/en-us_image_0086680618.png b/docs/vbs/umn/en-us_image_0086680618.png new file mode 100644 index 000000000..283a89e91 Binary files /dev/null and b/docs/vbs/umn/en-us_image_0086680618.png differ diff --git a/docs/vbs/umn/en-us_image_0087010200.png b/docs/vbs/umn/en-us_image_0087010200.png new file mode 100644 index 000000000..1ffd951a8 Binary files /dev/null and b/docs/vbs/umn/en-us_image_0087010200.png differ diff --git a/docs/vbs/umn/en-us_image_0112805744.png b/docs/vbs/umn/en-us_image_0112805744.png new file mode 100644 index 000000000..395aa2bd8 Binary files /dev/null and b/docs/vbs/umn/en-us_image_0112805744.png differ diff --git a/docs/vbs/umn/en-us_image_0112805763.png b/docs/vbs/umn/en-us_image_0112805763.png new file mode 100644 index 000000000..395aa2bd8 Binary files /dev/null and b/docs/vbs/umn/en-us_image_0112805763.png differ diff --git a/docs/vbs/umn/en-us_image_0112807393.png b/docs/vbs/umn/en-us_image_0112807393.png new file mode 100644 index 000000000..faa6c64a3 Binary files /dev/null and b/docs/vbs/umn/en-us_image_0112807393.png differ diff --git a/docs/vbs/umn/en-us_image_0112807405.png b/docs/vbs/umn/en-us_image_0112807405.png new file mode 100644 index 000000000..b7ce19344 Binary files /dev/null and b/docs/vbs/umn/en-us_image_0112807405.png differ diff --git a/docs/vbs/umn/en-us_image_0123883658.png b/docs/vbs/umn/en-us_image_0123883658.png new file mode 100644 index 000000000..283602146 Binary files /dev/null and b/docs/vbs/umn/en-us_image_0123883658.png differ diff --git a/docs/vbs/umn/en-us_image_0128947790.png b/docs/vbs/umn/en-us_image_0128947790.png new file mode 100644 index 000000000..283602146 Binary files /dev/null and b/docs/vbs/umn/en-us_image_0128947790.png differ diff --git a/docs/vbs/umn/en-us_image_0142058549.png b/docs/vbs/umn/en-us_image_0142058549.png new file mode 100644 index 000000000..92fd65188 Binary files /dev/null and b/docs/vbs/umn/en-us_image_0142058549.png differ diff --git a/docs/vbs/umn/en-us_image_0148405236.png b/docs/vbs/umn/en-us_image_0148405236.png new file mode 100644 index 000000000..1256d43d4 Binary files /dev/null and b/docs/vbs/umn/en-us_image_0148405236.png differ diff --git a/docs/vbs/umn/en-us_image_0148405304.png b/docs/vbs/umn/en-us_image_0148405304.png new file mode 100644 index 000000000..91696aada Binary files /dev/null and b/docs/vbs/umn/en-us_image_0148405304.png differ diff --git a/docs/vbs/umn/en-us_image_0148411635.png b/docs/vbs/umn/en-us_image_0148411635.png new file mode 100644 index 000000000..1909444d2 Binary files /dev/null and b/docs/vbs/umn/en-us_image_0148411635.png differ diff --git a/docs/vbs/umn/en-us_image_0148548673.png b/docs/vbs/umn/en-us_image_0148548673.png new file mode 100644 index 000000000..1909444d2 Binary files /dev/null and b/docs/vbs/umn/en-us_image_0148548673.png differ diff --git a/docs/vbs/umn/en-us_image_0148548842.png b/docs/vbs/umn/en-us_image_0148548842.png new file mode 100644 index 000000000..1909444d2 Binary files /dev/null and b/docs/vbs/umn/en-us_image_0148548842.png differ diff --git a/docs/vbs/umn/en-us_image_0148561644.png b/docs/vbs/umn/en-us_image_0148561644.png new file mode 100644 index 000000000..b9ad39852 Binary files /dev/null and b/docs/vbs/umn/en-us_image_0148561644.png differ diff --git a/docs/vbs/umn/en-us_image_0148562574.png b/docs/vbs/umn/en-us_image_0148562574.png new file mode 100644 index 000000000..541894181 Binary files /dev/null and b/docs/vbs/umn/en-us_image_0148562574.png differ diff --git a/docs/vbs/umn/en-us_image_0148563132.png b/docs/vbs/umn/en-us_image_0148563132.png new file mode 100644 index 000000000..3df8d9a15 Binary files /dev/null and b/docs/vbs/umn/en-us_image_0148563132.png differ diff --git a/docs/vbs/umn/en-us_image_0148568289.png b/docs/vbs/umn/en-us_image_0148568289.png new file mode 100644 index 000000000..85dc3e787 Binary files /dev/null and b/docs/vbs/umn/en-us_image_0148568289.png differ diff --git a/docs/vbs/umn/en-us_image_0152727234.png b/docs/vbs/umn/en-us_image_0152727234.png new file mode 100644 index 000000000..35e283157 Binary files /dev/null and b/docs/vbs/umn/en-us_image_0152727234.png differ diff --git a/docs/vbs/umn/en-us_image_0152878917.png b/docs/vbs/umn/en-us_image_0152878917.png new file mode 100644 index 000000000..dfceb8f97 Binary files /dev/null and b/docs/vbs/umn/en-us_image_0152878917.png differ diff --git a/docs/vbs/umn/en-us_image_0152878946.png b/docs/vbs/umn/en-us_image_0152878946.png new file mode 100644 index 000000000..dfceb8f97 Binary files /dev/null and b/docs/vbs/umn/en-us_image_0152878946.png differ diff --git a/docs/vbs/umn/en-us_image_0152879159.png b/docs/vbs/umn/en-us_image_0152879159.png new file mode 100644 index 000000000..8d07d7a7a Binary files /dev/null and b/docs/vbs/umn/en-us_image_0152879159.png differ diff --git a/docs/vbs/umn/en-us_image_0152879164.png b/docs/vbs/umn/en-us_image_0152879164.png new file mode 100644 index 000000000..8d07d7a7a Binary files /dev/null and b/docs/vbs/umn/en-us_image_0152879164.png differ diff --git a/docs/vbs/umn/en-us_image_0152879176.png b/docs/vbs/umn/en-us_image_0152879176.png new file mode 100644 index 000000000..43474b2f9 Binary files /dev/null and b/docs/vbs/umn/en-us_image_0152879176.png differ diff --git a/docs/vbs/umn/en-us_image_0152879212.png b/docs/vbs/umn/en-us_image_0152879212.png new file mode 100644 index 000000000..70bed9b93 Binary files /dev/null and b/docs/vbs/umn/en-us_image_0152879212.png differ diff --git a/docs/vbs/umn/en-us_image_0152879222.png b/docs/vbs/umn/en-us_image_0152879222.png new file mode 100644 index 000000000..c9b3b1616 Binary files /dev/null and b/docs/vbs/umn/en-us_image_0152879222.png differ diff --git a/docs/vbs/umn/en-us_image_0152879230.png b/docs/vbs/umn/en-us_image_0152879230.png new file mode 100644 index 000000000..01873516f Binary files /dev/null and b/docs/vbs/umn/en-us_image_0152879230.png differ diff --git a/docs/vbs/umn/en-us_image_0152879240.png b/docs/vbs/umn/en-us_image_0152879240.png new file mode 100644 index 000000000..6b09d6e42 Binary files /dev/null and b/docs/vbs/umn/en-us_image_0152879240.png differ diff --git a/docs/vbs/umn/en-us_image_0152879311.png b/docs/vbs/umn/en-us_image_0152879311.png new file mode 100644 index 000000000..fda247ca6 Binary files /dev/null and b/docs/vbs/umn/en-us_image_0152879311.png differ diff --git a/docs/vbs/umn/en-us_image_0162814404.png b/docs/vbs/umn/en-us_image_0162814404.png new file mode 100644 index 000000000..711783469 Binary files /dev/null and b/docs/vbs/umn/en-us_image_0162814404.png differ diff --git a/docs/vbs/umn/en-us_image_0184026531.png b/docs/vbs/umn/en-us_image_0184026531.png new file mode 100644 index 000000000..1303a51c2 Binary files /dev/null and b/docs/vbs/umn/en-us_image_0184026531.png differ diff --git a/docs/vbs/umn/en-us_image_0275513364.png b/docs/vbs/umn/en-us_image_0275513364.png new file mode 100644 index 000000000..1909444d2 Binary files /dev/null and b/docs/vbs/umn/en-us_image_0275513364.png differ diff --git a/docs/vbs/umn/en-us_topic_0015667819.html b/docs/vbs/umn/en-us_topic_0015667819.html new file mode 100644 index 000000000..1ccd7e39e --- /dev/null +++ b/docs/vbs/umn/en-us_topic_0015667819.html @@ -0,0 +1,41 @@ + + +

FAQs

+
+
+ +
+ diff --git a/docs/vbs/umn/en-us_topic_0015667820.html b/docs/vbs/umn/en-us_topic_0015667820.html new file mode 100644 index 000000000..ccf10f516 --- /dev/null +++ b/docs/vbs/umn/en-us_topic_0015667820.html @@ -0,0 +1,105 @@ + + +

Creating a VBS Backup

+

You can create backups for your EVS disks to protect the disk data through the VBS console or the EVS console.

+

Precautions

+
+

Create a VBS Backup (Method 1)

  1. Log in to the management console.
  2. Click . Under Storage, click Volume Backup Service.
  3. Click in the upper left corner of the management console and select a region and a project.
  4. On the VBS page, click Create Backup.
  5. From the EVS disk list on the left, click to select the EVS disks you want to back up. Then they appear in the Selected Disks list on the right. See Figure 1. You can click in the Operation column to delete EVS disks that do not need to be backed up.

    Figure 1 Selecting a disk
    +

    +

    The system will identify whether the selected EVS disk is encrypted. If it is encrypted, its backup data will be stored in encrypted mode.

    +

    In earlier versions, backup data of encrypted EVS disks is stored in non-encrypted mode. In the current version, newly generated backup data is stored in encrypted mode; however, historical non-encrypted backups will remain unchanged.

    +
    +

  6. Confirm that the EVS disks selected for backup are correct. Then in the Configure Backup area below, set Auto Backup or Immediate Backup or both. See Figure 2.

    Figure 2 Configuring backup schemes
    +

    Auto Backup: The selected EVS disks will be associated with the backup policy. If the policy is enabled, the EVS disks will be automatically backed up according to the backup policy. If the selected EVS disks have been associated with another backup policy, they will be disassociated from that backup policy first and then associated with the new backup policy.

    +

    Immediate Backup: backs up the selected EVS disks at once.

    +
    +
    • Select Auto Backup: In the Backup Policy drop-down list, select an existing one. You can also click Create Policy to create a new one. For details, see Data Backup Using a Backup Policy.
    • Select Immediate Backup: Enter the backup name and description. Table 1 describes the parameters. +
      + + + + + + + + + + + + + +
      Table 1 Parameter description

      Parameter

      +

      Description

      +

      Example Value

      +

      Name

      +

      The name can only contain letters, digits, underscores (_), and hyphens (-). It cannot contain special characters or start with auto. If you select only one EVS disk to back up, the backup name ranges from 1 to 64 characters. If you select more than one EVS disk to back up, the backup name ranges from 1 to 59 characters.

      +

      disk01_backup

      +

      Description

      +

      The description consists of 0 to 64 characters and cannot contain a greater-than sign (>) or less-than sign (<).

      +

      for_test

      +
      +
      +
    +

  7. Determine whether to select Enable next to Full Backup. If Full Backup is enabled, the generated full backup and later generated incremental backups will support instant restoration. When you use Instant Restore for the first time through APIs and the to-be-restored disk has been backed up before the feature is enabled, enable full backup. After doing this, the disk backups generated through APIs will support instant restoration.
  8. Add tags to the backup.

    A tag is represented in the form of a key-value pair. Tags are used to identify, classify, and search for cloud resources. Tags are used to filter and manage backup resources only. A backup can have a maximum of 10 tags.

    +
    Table 2 describes parameters of a tag. +
    + + + + + + + + + + + + + +
    Table 2 Parameter description

    Parameter

    +

    Description

    +

    Example Value

    +

    Key

    +

    Each tag of a backup has a unique key. The key of a tag is user-definable or is selected from those of existing tags in Tag Management Service (TMS).

    +

    The naming rules for a tag key are as follows:

    +
    • It ranges from 1 to 36 Unicode characters.
    • It can contain only letters, digits, hyphens (-), and underscores (_).
    +

    Key_0001

    +

    Value

    +

    The values of tags can be repetitive and can be blank.

    +

    The naming rules for a tag value are as follows:

    +
    • It ranges from 0 to 43 Unicode characters.
    • It can contain only letters, digits, hyphens (-), and underscores (_).
    +

    Value_0001

    +
    +
    +
    +

  9. Click Create Now.
  10. Confirm the VBS backup information and click Submit.
  11. Switch back to the VBS backup list.

    You can refresh the page after 10 seconds to view the backup creation status. When the Status of the backup changes to Available, the VBS backup has been successfully created.

    +

+
+

Create a VBS Backup (Method 2)

  1. Log in to the management console.
  2. Click . Under Storage, click Volume Backup Service.
  3. Click in the upper left corner of the management console and select a region and a project.
  4. Locate the row that contains the target EVS disk. Click More in the Operation column and select Back Up.
  5. From the EVS disk list on the left, click to select the EVS disks you want to back up. Then they appear in the Selected Disks list on the right. See Figure 3. You can click in the Operation column to delete EVS disks that do not need to be backed up.

    Figure 3 Selecting a disk
    +

    The system will identify whether the selected EVS disk is encrypted. If it is encrypted, its backup data will be stored in encrypted mode.

    +

    In earlier versions, backup data of encrypted EVS disks is stored in non-encrypted mode. In the current version, newly generated backup data is stored in encrypted mode; however, historical non-encrypted backups will remain unchanged.

    +
    +

  6. Confirm that the EVS disks selected for backup are correct. Then in the Configure Backup area below, set Auto Backup or Immediate Backup or both. See Figure 4.

    Figure 4 Configuring backup schemes
    +

    Auto Backup: The selected EVS disks will be associated with the backup policy and will be automatically backed up according to the backup policy. If the selected EVS disks have been associated with another backup policy, they will be disassociated from that backup policy first and then associated with the new backup policy.

    +

    Immediate Backup: backs up the selected EVS disks at once.

    +
    +
    • Select Auto Backup: In the Backup Policy drop-down list, select an existing one. You can also click Create Policy to create a new one. For details, see Data Backup Using a Backup Policy.
    • Select Immediate Backup: Enter the backup name and description. Table 1 describes the parameters.
    +
    +

  7. Determine whether to select Enable next to Full Backup. If Full Backup is enabled, the generated full backup and later generated incremental backups will support instant restoration. When you use Instant Restore for the first time through APIs and the to-be-restored disk has been backed up before the feature is enabled, enable full backup. After doing this, the disk backups generated through APIs will support instant restoration.
  8. Add tags to the VBS backup. Table 2 describes the parameters.

    A tag is represented in the form of a key-value pair. Tags are used to identify, classify, and search for cloud resources. Tags are used to filter and manage backup resources only. A backup can have a maximum of 10 tags.

    +

  9. Click Create Now.
  10. Confirm the VBS backup information and click Submit.
  11. Switch back to the VBS backup list.

    You can refresh the page after 10 seconds to view the backup creation status. When the Status of the backup changes to Available, the VBS backup has been successfully created.

    +

+
+
+
+ +
+ + + \ No newline at end of file diff --git a/docs/vbs/umn/en-us_topic_0015667828.html b/docs/vbs/umn/en-us_topic_0015667828.html new file mode 100644 index 000000000..a5f081cb7 --- /dev/null +++ b/docs/vbs/umn/en-us_topic_0015667828.html @@ -0,0 +1,14 @@ + + +

VBS

+

Volume Backup Service (VBS) provides snapshot-based data protection for Elastic Volume Service (EVS) disks.

+

VBS secures your data, even if an EVS disk is faulty or encounters a logical error (for example, mis-deletion, hacker attacks, and virus infection). It allows you to effortlessly back up your data, and these data backups can be used to restore data quickly.

+

VBS supports both full and incremental backup modes. By default, the system performs a full backup initially, and then performs incremental backups. You can use a data backup generated in either backup mode to restore the source EVS disk to the state the EVS disk was in when the backup was created.

+

VBS allows one-click backup and restoration for the EVS disks on servers all through its easy-to-use platform. These servers are Elastic Cloud Servers (ECSs).

+
+
+ +
+ diff --git a/docs/vbs/umn/en-us_topic_0015667830.html b/docs/vbs/umn/en-us_topic_0015667830.html new file mode 100644 index 000000000..bf640b973 --- /dev/null +++ b/docs/vbs/umn/en-us_topic_0015667830.html @@ -0,0 +1,11 @@ + + +

Do I Need to Stop the Server Before Restoring EVS Disk Data with a VBS Backup?

+

Yes. Before restoring the EVS disk data using a VBS backup, you must stop the server to which the EVS disk is attached, and detach the EVS disk from the server. After the EVS disk data is restored, attach the EVS disk to the server and start the server.

+
+
+ +
+ diff --git a/docs/vbs/umn/en-us_topic_0015667831.html b/docs/vbs/umn/en-us_topic_0015667831.html new file mode 100644 index 000000000..3a9d8da5b --- /dev/null +++ b/docs/vbs/umn/en-us_topic_0015667831.html @@ -0,0 +1,94 @@ + + +

Related Services

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Table 1 Related services

Interactive Function

+

Related Service

+

Reference

+

The VBS service provides the data backup function for EVS disks. Data backups can be used to create EVS disks.

+

Elastic Volume Service (EVS)

+

+

+

Creating a VBS Backup

+

Data Restoration Using a VBS Backup

+

Both CSBS and VBS are backup services and provide backup protection for tenant data. The backup generated by CSBS is also displayed on the VBS page. Table 2 describes the differences between CSBS and VBS.

+

Cloud Server Backup Service (CSBS)

+

VBS Backup Management

+

The encryption feature relies on KMS. If an EVS disk is encrypted, its backup data will be stored in encrypted mode.

+

Key Management Service (KMS)

+

Creating a VBS Backup

+

Working with TMS, VBS supports tag presetting and backup filtering and management.

+

Tag Management Service (TMS)

+

VBS Backup Management

+

Managing Backup Policy Tags

+

VBS adopts SMN to notify users of VBS backup information.

+

Simple Message Notification (SMN)

+

Viewing Backup Jobs

+
+
+ +
+ + + + + + + + + + + + + + + + + +
Table 2 CSBS and VBS

Item

+

CSBS

+

VBS

+

Backup and restoration objects

+

All EVS disks (including system and data disks) on a single ECS

+

One or more specified EVS disks (system or data disks)

+

Recommended scenario

+

An entire ECS needs to be protected.

+

Only data disks need to be backed up, because the system disk does not contain personal data.

+

Advantages

+

All EVS disks on an ECS have consistent data. They are backed up at the same time, eliminating the problem of data inconsistency caused by backups generated at different points in time.

+

Data is secure while the service is cost-competitive.

+
+
+
+
+ +
+ diff --git a/docs/vbs/umn/en-us_topic_0015667840.html b/docs/vbs/umn/en-us_topic_0015667840.html new file mode 100644 index 000000000..1d773497f --- /dev/null +++ b/docs/vbs/umn/en-us_topic_0015667840.html @@ -0,0 +1,21 @@ + + +

Operation Guide

+
+
+ +
+ diff --git a/docs/vbs/umn/en-us_topic_0015667841.html b/docs/vbs/umn/en-us_topic_0015667841.html new file mode 100644 index 000000000..cd912aed9 --- /dev/null +++ b/docs/vbs/umn/en-us_topic_0015667841.html @@ -0,0 +1,13 @@ + + +

Getting Started

+
+
+ +
+ diff --git a/docs/vbs/umn/en-us_topic_0015667845.html b/docs/vbs/umn/en-us_topic_0015667845.html new file mode 100644 index 000000000..f65bd8907 --- /dev/null +++ b/docs/vbs/umn/en-us_topic_0015667845.html @@ -0,0 +1,21 @@ + + +

Service Overview

+
+
+ +
+ diff --git a/docs/vbs/umn/en-us_topic_0015667847.html b/docs/vbs/umn/en-us_topic_0015667847.html new file mode 100644 index 000000000..2c770780f --- /dev/null +++ b/docs/vbs/umn/en-us_topic_0015667847.html @@ -0,0 +1,11 @@ + + +

Does VBS Support Simultaneous Backup of All EVS Disks on a Server?

+

Yes. Users can create a backup policy and associate the backup policy with multiple EVS disks. Then the backup policy can be executed to back up the multiple EVS disks at the same time.

+
+
+ +
+ diff --git a/docs/vbs/umn/en-us_topic_0015667849.html b/docs/vbs/umn/en-us_topic_0015667849.html new file mode 100644 index 000000000..efbb8e2cf --- /dev/null +++ b/docs/vbs/umn/en-us_topic_0015667849.html @@ -0,0 +1,96 @@ + + +

VBS Backup Management

+

You can set filtering criteria to query wanted backups, add tags to backups for grouped management, and share your backups with other projects.

+

CSBS backups of ECSs are also displayed on the VBS backup page and can be distinguished from VBS backups by Source in the backup details.

+

After Instant Restore is enabled, each backup will be marked with a letter C or E at the right of its name to show whether it supports instant restoration. A backup marked with letter C is a common backup and does not support instant restoration. A backup marked with letter E is an enhanced backup and supports instant restoration. For details, see Instant Restore.

+

Searching for a VBS Backup

  1. Log in to the management console.
  2. Click in the upper left corner of the management console and select a region and a project.
  3. Click . Under Storage, click Volume Backup Service.
  4. Search for backups.

    • On the top of the list, select My backups and Backups shared with me in the drop-down list.
      • On the My backups page, search for backups by backup name, backup ID, KMS key ID, or disk ID, and then click to search. See Figure 1.
        Figure 1 My backups
        +
      • On the Backups shared with me page, you can see the time when the backup is shared in the Shared column. You can search for backups by backup name, backup ID, disk ID, or owner project ID, as shown in Figure 2. Click to search.
        Figure 2 Backups shared with me
        +
      +
    • Above the page, select a state to search for backups.
    • In the upper right corner of the page, you can click the Search by Tag tab to search for backups.
      • On the Search by Tag tab page that is displayed, enter a tag key and a tag value (must be among existing keys and values), click , and then click Search.
      • You can use more than one tag for a combination search. Each time after a key and a value are entered, click . The added tag search criteria are displayed under the text boxes. When more than one tag is added, they will be applied together for a combination search. A maximum of 10 tags can be added at the same time.
      • You can click Reset under the search criteria to reset the search criteria.
      +
    +

  5. Click in the row of a VBS backup to view its details.

    The Created column in the backup list indicates the time when the backup was created.

    +
    +

+
+

View the Status of a Backup Job

After creating backup jobs, you can view backup job status in Job Status above the backup list.

+

The backup job status can be:

+ +
+

Delete a VBS Backup

To delete unwanted VBS backups, ensure the backups' statuses are Available or Error and Source is VBS.

+

Backups whose Source is CSBS can be deleted only on the CSBS management console.

+
  1. Log in to the management console.
  2. Click in the upper left corner of the management console and select a region and a project.
  3. Click . Under Storage, click Volume Backup Service.
  4. Locate the row that contains the target VBS backup in the backup list.
  5. Click Delete in the Operation column.
  6. In the dialog box displayed, confirm the information and click OK. See Figure 3.

    Figure 3 Deleting a backup
    +

  7. Optional: To delete multiple backups in a batch, click to select them, and then click the Delete button above the list. In the dialog box that is displayed, confirm the deletion information and click OK.
+
+

Manage Tags of a VBS Backup

You can add tags to a backup as well as edit and delete these tags. Tags are used to filter and manage backup resources only.

+
  1. Log in to the management console.
  2. Click in the upper left corner of the management console and select a region and a project.
  3. Click . Under Storage, click Volume Backup Service.
  4. Click in the row of a VBS backup to view its details.
  5. Click Tags in the details area to expand the tag management panel.

    The panel displays all tags of the VBS backup.

    +
    • Adding tags
      1. Click Add Tag in the upper left corner.
      2. In the dialog box that is displayed, set the key and value of the new tag. For details, see Figure 4.

        A tag is represented in the form of a key-value pair. Tags are used to identify, classify, and search for cloud resources. A backup can have a maximum of 10 tags.

        +

        Table 1 describes parameters of a tag.

        + +
        + + + + + + + + + + + + + +
        Table 1 Parameter description

        Parameter

        +

        Description

        +

        Example Value

        +

        Key

        +

        Each tag of a backup has a unique key. The key of a tag is user-definable or is selected from those of existing tags in TMS.

        +

        The naming rules for a tag key are as follows:

        +
        • It ranges from 1 to 36 Unicode characters.
        • It can contain only letters, digits, hyphens (-), and underscores (_).
        +

        Key_0001

        +

        Value

        +

        The values of tags can be repetitive and can be blank.

        +

        The naming rules for a tag value are as follows:

        +
        • It ranges from 0 to 43 Unicode characters.
        • It can contain only letters, digits, hyphens (-), and underscores (_).
        +

        Value_0001

        +
        +
        +
        Figure 4 Adding tags
        +
      3. Click OK.
      +
    • Editing a tag
      1. In the Operation column of the tag that you want to edit, click Edit.
      2. In the Edit Tag dialog box that is displayed, modify the tag value. Table 1 describes the parameters.

        If the updated tag is identical to an existing one, only one is retained.

        +
      3. Click OK.
      +
    • Deleting a tag
      1. In the Operation column of the tag that you want to delete, click Delete.
      2. In the dialog box that is displayed, confirm the deletion information.
      3. Click OK.
      +
    • Searching for backups by tag

      For details, see Searching for a VBS Backup.

      +
    +

+
+

Manage Shared VBS Backups

A tenant can share a backup with other tenants.

+

Encrypted backups cannot be shared. Backups of common I/O (performance optimized I) and ultra-high I/O (latency optimized) disks cannot be shared.

+

Backups cannot be shared across regions. This indicates that projects sharing a backup must be in the same region as the backup.

+
  1. Log in to the management console.
  2. Click in the upper left corner of the management console and select a region and a project.
  3. Click . Under Storage, click Volume Backup Service.
  4. Click in the row of a backup.
  5. Click Shares in the backup details area to expand the share management panel.

    The panel displays the ID list of projects with which the backup is shared.

    +
    • Adding a share
    +
    1. In the upper left corner, click Share Backup, and then the Share Backup dialog box is displayed. For details, see Figure 5.
      Figure 5 Adding a share
      +
    2. Enter the project ID of the target tenant.

      A project ID is a string of 32 characters that can contain letters and digits but cannot be digits only.

      +
      +
    3. Click Add in the dialog box to add another project ID. A tenant can share a backup with another 10 tenants.
    4. Click OK.
    +
    • Deleting a share
    +
    1. Select a share that you want to delete, and click Unshare in the Operation column.
    2. In the dialog box that is displayed, confirm the deletion information.
    3. Click OK.
    +

+
+
+
+ +
+ + + \ No newline at end of file diff --git a/docs/vbs/umn/en-us_topic_0015667851.html b/docs/vbs/umn/en-us_topic_0015667851.html new file mode 100644 index 000000000..597cb5ad8 --- /dev/null +++ b/docs/vbs/umn/en-us_topic_0015667851.html @@ -0,0 +1,12 @@ + + +

Do I Need to Stop the Server Before Backing Up EVS Disks on a Server Using VBS?

+

VBS can back up EVS disks that are being used. When a server is running, data is written onto EVS disks on the server, and some newly generated data is stored in the server memory as cached data. During EVS disk backup, the data in the memory will not be automatically written onto the EVS disk, resulting in data inconsistency between the EVS disk and its backup.

+

To ensure data consistency and integrity, back up EVS disks during off-peak hours when no data write operations are being performed on the EVS disks, or stop all data write operations on the EVS disks before backup. For a strict requirement for data integrity, stop the server (cached data is written to EVS disks) and start an offline backup job.

+
+
+ +
+ diff --git a/docs/vbs/umn/en-us_topic_0015667886.html b/docs/vbs/umn/en-us_topic_0015667886.html new file mode 100644 index 000000000..58df13034 --- /dev/null +++ b/docs/vbs/umn/en-us_topic_0015667886.html @@ -0,0 +1,40 @@ + + +

Data Restoration Using a VBS Backup

+

You can use VBS backups to restore EVS disks to a given point in time or create EVS disks. Data on the EVS disks is equivalent to the backup data.

+

Restore an EVS Disk Using a VBS Backup

You can use a VBS backup to restore an EVS disk to the time when the backup was created.

+

Before restoring the disk data, stop the server to which the EVS disk is attached and detach the EVS disk from the server. After the EVS disk data is restored, attach the EVS disk to the server and start the server.

+
  • If a server disk has been backed up and the operating system was changed after the backup, the backup may not be able to restore the disk because of the disk ID change. In this case, you can use the backup to create a new disk and mount the new disk as a data disk to the server.
  • Servers or disks at the disaster recovery (DR) site can be restored only when DR protection is disabled for servers deployed with Storage Disaster Recovery Service.
+
+

Instant Restore is a feature that provides the instant restoration function for fast restoring disk data, greatly reducing the restoration time compared with the normal restoration function. For details, see Instant Restore.

+

Only VBS backups in the My backups list can be used for a restoration. Those VBS backups in the Backups shared with me list are unavailable for a restoration.

+
  1. Log in to the management console.
  2. Click in the upper left corner of the management console and select a region and a project.
  3. Click . Under Storage, click Volume Backup Service.
  4. On the Volume Backup Service page, if the Status of the VBS backup is Available, click Restore Disk in the Operation column.
  5. Click OK as prompted. See Figure 1. Then, check whether the data is restored successfully.

    You can refresh the page after 10 seconds to view the data restoration status. When the Status of the backup changes back to Available, the restoration has been successfully completed.

    +
    Figure 1 Disk restoration
    +

+
+

Creating an EVS Disk Using a VBS Backup

You can use a VBS backup to create an EVS disk. After the EVS disk is created, the data on the new disk is the same as that in the VBS backup.

+

Instant Restore also supports fast disk creation using backups, saving your time. For details, see Instant Restore.

+

VBS backups in both the My backups and Backups shared with me lists can be used to create EVS disks.

+
+
  1. Log in to the management console.
  2. Click in the upper left corner of the management console and select a region and a project.
  3. Click . Under Storage, click Volume Backup Service.
  4. In the My Backups or Backups shared with me list, confirm that the Status of the VBS backup is Available and click Create Disk in the Operation column.
  5. Set the disk parameters.

    For details about these parameters, see the parameter description table in section Creating an EVS Disk in the Elastic Volume Service User Guide.

    +

    Note the following items when setting disk parameters:

    +
    • You can choose the same AZ to which the owning EVS disk of the backup data belongs, or you can choose a different AZ.
    • The capacity of the newly created EVS disk cannot be smaller than that of the source EVS disk of the backup data.

      If it is larger than the backup capacity, initialize the incremental disk space. For details, see section Initializing an EVS Disk (Linux) in the Elastic Volume Service User Guide.

      +
    • You can create a disk of any type regardless of the backup's disk type.
    • Batch creation is not supported when using backup data to create EVS disks. You can create only one EVS disk at a time.
    +
    +

  6. Click Create Now.
  7. Confirm the VBS backup information and click Submit.
  8. Switch back to the Elastic Volume Service page. Check whether the EVS disk is successfully created.

    Instant restoration only takes several minutes to create a new disk by using a backup.

    +

    This disk status changes from Creating to Available, Restoring, then Available. Instant restoration is so fast that you may not notice the Restoring state. If the state changes from Creating to Available, the new disk is successfully created. If the state changes from Restoring to Available, backup data is successfully restored to the created EVS disk.

    +

+
+
+ +
+ + + \ No newline at end of file diff --git a/docs/vbs/umn/en-us_topic_0018011371.html b/docs/vbs/umn/en-us_topic_0018011371.html new file mode 100644 index 000000000..8b869efed --- /dev/null +++ b/docs/vbs/umn/en-us_topic_0018011371.html @@ -0,0 +1,12 @@ + + +

Can a VBS Backup of a System Disk Be Used to Restore the System Disk of an ECS?

+

Yes. You can restore the system disk using a VBS backup. Before restoring the system disk, you must detach it from the ECS.

+

You can also use a VBS backup of the system disk to create new EVS disks. However, newly created EVS disks cannot be used as system disks.

+
+
+ +
+ diff --git a/docs/vbs/umn/en-us_topic_0018011683.html b/docs/vbs/umn/en-us_topic_0018011683.html new file mode 100644 index 000000000..6fdd17e35 --- /dev/null +++ b/docs/vbs/umn/en-us_topic_0018011683.html @@ -0,0 +1,12 @@ + + +

Is There a Quota Limit on the Number of Backups?

+

Yes.

+

This quota exists to prevent resource overuse. If you need to create more VBS backups, contact the administrator to apply for a higher quota.

+
+
+ +
+ diff --git a/docs/vbs/umn/en-us_topic_0018020175.html b/docs/vbs/umn/en-us_topic_0018020175.html new file mode 100644 index 000000000..532076f71 --- /dev/null +++ b/docs/vbs/umn/en-us_topic_0018020175.html @@ -0,0 +1,11 @@ + + +

Can I Use a VBS Backup to Restore an EVS Disk Whose Capacity Has Been Expanded?

+

Yes. After restoration, the capacity of the expanded EVS disk goes back to the original capacity before expansion. If you want to use the capacity added to the disk, you need to attach the restored disk to an ECS, log in to the ECS, and then manually modify the file system configuration. For detailed operations, see sections about post-expansion operations on EVS disks in the Elastic Volume Service User Guide.

+
+
+ +
+ diff --git a/docs/vbs/umn/en-us_topic_0031627299.html b/docs/vbs/umn/en-us_topic_0031627299.html new file mode 100644 index 000000000..67f6ed0e5 --- /dev/null +++ b/docs/vbs/umn/en-us_topic_0031627299.html @@ -0,0 +1,12 @@ + + +

VBS Functions

+

You can use VBS to back up and restore EVS disks. VBS provides the following functions:

+ +
+
+ +
+ diff --git a/docs/vbs/umn/en-us_topic_0033745918.html b/docs/vbs/umn/en-us_topic_0033745918.html new file mode 100644 index 000000000..6e326c84c --- /dev/null +++ b/docs/vbs/umn/en-us_topic_0033745918.html @@ -0,0 +1,25 @@ + + +

Data Backup Using a Backup Policy

+
+
+ + + +
+ diff --git a/docs/vbs/umn/en-us_topic_0033871603.html b/docs/vbs/umn/en-us_topic_0033871603.html new file mode 100644 index 000000000..f673cafc6 --- /dev/null +++ b/docs/vbs/umn/en-us_topic_0033871603.html @@ -0,0 +1,26 @@ + + +

VBS Operation Instances

+

This section explains how to use VBS to ensure data security in different scenarios, its limitations, and its typical operations.

+

Scenarios

VBS applies to the following scenarios:

+ +
+

Requirements and Limitations

+
+

EVS Disk Data Backup

VBS works only on EVS disks. For details, see Creating a VBS Backup.

+
+

EVS Disk Data Restoration

You can use a VBS backup to restore an EVS disk to the time when the backup was created.

+

Before restoring the disk data, stop the server to which the EVS disk is attached and detach the EVS disk from the server. After the restoration is complete, re-attach the EVS disk and start the server. For details, see Data Restoration Using a VBS Backup.

+
+

Creating an EVS Disk Using a VBS Backup

After an EVS disk is created using a data backup, the initial data of the new EVS disk is the same as the initial backup data. For details, see Creating an EVS Disk Using a VBS Backup.

+
+
+
+ +
+ diff --git a/docs/vbs/umn/en-us_topic_0035111666.html b/docs/vbs/umn/en-us_topic_0035111666.html new file mode 100644 index 000000000..c53088210 --- /dev/null +++ b/docs/vbs/umn/en-us_topic_0035111666.html @@ -0,0 +1,17 @@ + + +

Troubleshooting Cases

+

Symptom

Failed to attach EVS disks despite following the procedure: Create EVS disks using the same VBS backup (XFS file system backup) and attach them to the same server (to which multiple EVS disks with XFS file system backup have been attached). Running the mount command to attach EVS disks fails.

+
+

Possible Causes

The superblock of an EVS disk (with XFS file systems) stores a universally unique identifier (UUID) about the file system. If a server has multiple disks (with XFS file systems), multiple UUIDs will exist on the server. Multiple disks may have the same UUID, which can cause the file system mounting to fail.

+
+

Fault Diagnosis

When attaching an EVS disk, use parameters without UUID control or reallocate a new UUID to ensure that each UUID is unique.

+
+

Procedure

  1. Log in to the server to which EVS disks failed to be attached.
  2. Resolve the problem in either of the following ways:

    • Use a parameter without UUID when attaching an EVS disk: Run mount -o nouuid /dev/Device name /Mount path, for example:

      mount -o nouuid /dev/sda6 /mnt/aa

      +
    • Reallocate a new UUID: Run xfs_admin -U generate /dev/Device name.
    +

    Because setting a parameter without UUID requires you to execute the command every time, you are advised to reallocate a new UUID.

    +
    +

+
+
+ diff --git a/docs/vbs/umn/en-us_topic_0041062628.html b/docs/vbs/umn/en-us_topic_0041062628.html new file mode 100644 index 000000000..aa2ece6ed --- /dev/null +++ b/docs/vbs/umn/en-us_topic_0041062628.html @@ -0,0 +1,177 @@ + + +

Change History

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Release Date

+

Description

+

2021-12-20

+

Updated the following content:

+

Deleted descriptions of BMSs in section 1.1 "VBS."

+

2021-07-26

+

Updated the following content:

+

Added the backup constraint on the EVS disk size.

+

2019-03-30

+

Updated the following content:

+

Updated some screenshots.

+

2018-08-20

+

Updated the following content:

+

Accepted in OTC 3.2.

+

2018-07-30

+

Updated the following content:

+

Added description of setting backup times on specified hours as well as setting retention rules by week and by day.

+

2018-05-28

+

Updated the following content:

+

Accepted in OTC 3.1.

+

2018-05-18

+

Updated the following content:

+
  • Added description of the relationship between VBS and TMS.
  • Modified description of tag-related parameters.
  • Spit section 3.2.
  • Widened the first column of table 1-1.
+

2018-04-30

+

Updated the following content:

+
  • Modified the characters supported by tags.
  • Modified section "Related Services".
  • Updated the EVS disk states that do not support association with backup policies in "Associate EVS Disks with a Backup Policy or Disassociate Them from a Backup Policy".
  • Deleted the backup restrictions on EVS disk capacity and ECS status from "Precautions".
+

2018-01-23

+

Updated the following content:

+
  • Updated the document based on the new console layout.
  • Updated the description of shared backups in section "Manage Shared VBS Backups".
  • Added a question "What Are the Differences Between CSBS and VBS?"
+

2017-10-26

+

Updated the following content:

+

Added the statement of "These tags are used to filter and manage backup resources only."

+

2017-10-13

+

Updated the following content:

+
  • Added the description of searching for backups by tag.
  • Added "Example Value" to the parameter description of tags.
+

2017-09-30

+

Updated the following content:

+

Updated the description of backup sharing.

+

2017-09-08

+

Updated the following content:

+

Added the description of backup sharing.

+

2017-07-30

+

Updated the following content:

+
  • Added the description of tags.
  • Added a question "Why Add Tags to a VBS Backup or Backup Policy?"
  • Added the section of "Basic Concepts."
  • Added the operation of selecting a region and a project for a login.
+

2017-05-22

+

Updated the following content:

+
  • Changed the two different font colors to black.
  • Changed "however, historical non-encrypted backups will be unchanged." to "however, historical non-encrypted backups will remain unchanged."
  • Changed "cache data" to "cached data".
  • Updated the description of cached data in section 4.2 Must I Stop the ECS Before Backing Up EVS Disks on an ECS Using VBS?
  • Updated the parameter description for "Backup Time " in section 3.2 Data Backup Using a Backup Policy.
+

2017-04-28

+

Updated the following content:

+
  • Updated the note for "Create an EVS Disk Using a VBS Backup" in section 3.3 Data Restoration Using a VBS Backup.
  • Deleted all limitations about SCSI EVS disks.
  • Updated the note for backing up encrypted EVS disks in section 2.2 Creating a VBS Backup.
  • Updated the answer to the question of "Must I Stop the ECS Before Backing Up EVS Disks on an ECS Using VBS" in chapter 4 FAQs.
  • Updated the parameter description for "Create a Backup Policy" in section 3.2 Data Backup Using a Backup Policy.
+

2017-03-30

+

Updated the following content:

+
  • Added section 1.5 User Permissions.
  • Updated the note for "Precautions" in section 2.2 Creating a VBS Backup.
  • Updated the note for "Create a Backup Policy" and "Associate EVS Disks with a Backup Policy or Disassociate Them from a Backup Policy" in section 3.2 Data Backup Using a Backup Policy.
  • Updated the note for "Create an EVS Disk Using a VBS Backup" in section 3.3 Data Restoration Using a VBS Backup.
+

2017-02-28

+

Updated the following content:

+
  • Updated the note for "View Backup Jobs" in section 3.2 Data Backup Using a Backup Policy.
  • Deleted the note for "(Optional) Other Operations with Backup Policies" in section 3.2 Data Backup Using a Backup Policy.
+

2017-02-08

+

Updated the following content:

+
  • Added "View the Status of a Backup Job" in section 3.1 VBS Backup Management.
  • Updated the description of step 4 and the note of step 5 for "Search for a VBS Backup" in section 3.1 VBS Backup Management.
+

2017-01-20

+

Updated the following content:

+
  • Added "Search for Associated EVS Disks" in section 3.2 Data Backup Using a Backup Policy.
  • Added the description of encrypted EVS disks in section 3.2 Data Backup Using a Backup Policy.
  • Added the description of parameters Disk Encryption and Key Name in section 3.3 Data Restoration Using a VBS Backup.
  • Added the steps of searching for associated EVS disks in section 3.2 Data Backup Using a Data Backup Policy.
  • Updated the description of parameter Backups in section 3.2 Data Backup Using a Backup Policy.
  • Updated the steps of associating EVS disks in section 3.2 Data Backup Using a Backup Policy.
  • Deleted the note for "Create an EVS Disk Using a VBS Backup" in section 3.3 Data Restoration Using a VBS Backup.
+

2017-01-14

+

Updated the following content:

+
  • Added Step 4 to "Delete a VBS Backup" in section 3.1 VBS Backup Management.
  • Added section 4.9 What Can I Do Against Exceptions in VBS.
  • Updated the operation of associating EVS disks in section 3.2 Data Backup Using a Backup Policy.
  • Updated the description of backup jobs in section 3.2 Data Backup Using a Backup Policy.
  • Updated the description of the default backup policy in section 3.2 Data Backup Using a Backup Policy.
  • Updated the description of parameters AZ, Disk Type, and Quantity in Table "Parameter description" of section 3.3 Data Restoration Using a VBS Backup.
  • Changed the Back Up button to Back Up Again in section 3.2 Data Backup Using a Backup Policy.
+

2016-12-30

+

Updated the following content:

+

Updated section 3.2 Data Backup Using a Backup Policy.

+

2016-11-30

+

Updated the following content:

+
  • Added section 1.4 Backup Policy Overview.
  • Added section 3.2 Data Backup Using a Backup Policy.
+

2016-11-24

+

Updated the following content:

+
  • Added section 2.1 Operation Procedure.
  • Added Step 3 description in "Delete a VBS Backup" of section 3.1 VBS Backup Management.
+

2016-10-19

+

Updated the following content:

+

Added VBS troubleshooting cases.

+

2016-07-15

+

Updated the following content:

+

Added VBS operation instances.

+

2017-02-14

+

This issue is the first official release.

+
+
+
+
+ diff --git a/docs/vbs/umn/en-us_topic_0042416420.html b/docs/vbs/umn/en-us_topic_0042416420.html new file mode 100644 index 000000000..f49381bde --- /dev/null +++ b/docs/vbs/umn/en-us_topic_0042416420.html @@ -0,0 +1,15 @@ + + +

Operation Procedure

+

Figure 1 shows the process for VBS related operations.

+
Figure 1 Operation procedure flowchart
+

Creating VBS backups includes the creation of manual backup tasks and automatic backup tasks.

+

To restore an EVS disk using its backup data, you can restore the backup data to the original disk or use the backup data to create a new disk.

+
+
+
+ +
+ diff --git a/docs/vbs/umn/en-us_topic_0046276032.html b/docs/vbs/umn/en-us_topic_0046276032.html new file mode 100644 index 000000000..b57e271ff --- /dev/null +++ b/docs/vbs/umn/en-us_topic_0046276032.html @@ -0,0 +1,52 @@ + + +

What Can I Do In Case of Exceptions in VBS?

+

Exceptions in VBS mainly include abnormal states of VBS backups and backup jobs. Take the following measures to handle these exceptions.

+ +
+ + + + + + + + + + +
Table 1 Measures in case of abnormal VBS backup states

State

+

Handling Suggestion

+

Error

+

Delete the VBS backups in the Error state and re-create them.

+

Deletion failed

+

Contact the administrator and do not perform any operation on the backup data before related personnel respond. If you want a quick response, contact the administrator immediately upon discovering the problem.

+
+
+ +
+ + + + + + + + + + +
Table 2 Measures in case of abnormal VBS backup job states

State

+

Handling Suggestion

+

Timed out

+
  1. In the Backup Name column of the backup job list, check whether the backup name is displayed.
    • If yes, locate the backup on the VBS backup list according to the backup name. Check whether the backup is in the Available state. If it is in the Available state, the backup job is successful and no further actions are required. If no, click Back Up Again in the Operation column to perform a manual backup operation.
    • If no, click Back Up Again in the Operation column to perform a manual backup operation.
    +
  2. If the problem persists, contact the administrator and do not perform any operation on the backup data before related personnel respond. If you want a quick response, contact the administrator immediately upon discovering the problem.
+

Failed

+
  1. Above the VBS backup list, you can see messages indicating the backup usage. If the backup quantity quota is not sufficient to support your new backups, contact the administrator to apply for a higher quota. Then click Back Up Again in the Operation column of the Backup Jobs list to perform a manual backup operation.
  2. In the EVS list, check whether the EVS disk to be backed up is in the Available or In-use state. If no, after the EVS disk restores to the Available or In-use state, click Back Up Again in the Operation column of the Backup Jobs list to perform a manual backup operation.
  3. In the VBS backup list, check whether the EVS disk is in the Disk Name column and the backup state is Creating. If yes, after the backup restores to the Available state, click Back Up Again in the Operation column of the Backup Jobs list to perform a manual backup operation.
  4. For other circumstances, click Back Up Again in the Operation column of the Backup Jobs list to perform a manual backup operation. If the backup job state is still abnormal, contact the administrator, and do not perform any operation on the backup data before related personnel respond. If you want a quick response, contact the administrator immediately upon discovering the problem.
+
+
+
+
+ +
+ diff --git a/docs/vbs/umn/en-us_topic_0047898517.html b/docs/vbs/umn/en-us_topic_0047898517.html new file mode 100644 index 000000000..d5513dcff --- /dev/null +++ b/docs/vbs/umn/en-us_topic_0047898517.html @@ -0,0 +1,6 @@ + + +

Glossary

+

For details about the terms involved in this document, see Glossary.

+
+ diff --git a/docs/vbs/umn/en-us_topic_0057324230.html b/docs/vbs/umn/en-us_topic_0057324230.html new file mode 100644 index 000000000..a42b7a952 --- /dev/null +++ b/docs/vbs/umn/en-us_topic_0057324230.html @@ -0,0 +1,11 @@ + + +

Does VBS Support Cross-Region Backup and Restoration?

+

No. Currently VBS supports only backup and restoration within a region but not across regions.

+
+
+ +
+ diff --git a/docs/vbs/umn/en-us_topic_0067558642.html b/docs/vbs/umn/en-us_topic_0067558642.html new file mode 100644 index 000000000..9cd5cb690 --- /dev/null +++ b/docs/vbs/umn/en-us_topic_0067558642.html @@ -0,0 +1,12 @@ + + +

Why Add Tags to a VBS Backup or Backup Policy?

+

Tags are used to identify and classify backups that are automatically or manually generated with VBS. Tags are used to filter and manage backup resources only. All backups with tags are centrally managed in TMS. They can be filtered by search criteria. When a tag is added to a backup policy, the tag applies to all backups generated by the backup policy.

+

A tag is described using a key-value pair. A backup or backup policy can have a maximum of 10 tags by default. Each tag has only one key and one value. The key and value can exist in either sequence in a tag. Each key is unique among all tags of a VBS backup or backup policy, whereas values can be repetitive or blank.

+
+
+ +
+ diff --git a/docs/vbs/umn/en-us_topic_0071076576.html b/docs/vbs/umn/en-us_topic_0071076576.html new file mode 100644 index 000000000..0e8b20d32 --- /dev/null +++ b/docs/vbs/umn/en-us_topic_0071076576.html @@ -0,0 +1,21 @@ + + +

Basic Concepts

+

Backup Policies

A backup policy, including the backup period and retention rules, can automate data backup of EVS disks. Backup policies are user specific.

+
+

Instant Restore

Instant Restore is a feature that provides the instant restoration function for restoring disk data and creating disks using backups, which is much faster than the normal restoration function.

+

Backups generated before the Instant Restore feature is enabled do not support instant restoration. To use the feature, perform a full backup operation and select Enable next to Full Backup when creating the backup. For details, see Creating a VBS Backup. After Instant Restore is enabled, manual backups for EVS disks that have not been backed up automatically support instant restoration, without requiring the selection of Enable next to Full Backup.

+

No matter whether an EVS disk has been backup or not, its automatic backups generated after Instant Restore is enabled do not support instant restoration, unless you manually perform a full backup on it.

+

When you use Instant Restore for the first time through APIs and the to-be-restored disk has been backed up before the feature is enabled, you need to perform a full backup on the disk on the console or directly call the API for creating a full backup (POST /v2/{tenant_id}/cloudbackups). After doing this, the disk backups generated through APIs will support instant restoration.

+
+

Enhanced Backup

After Instant Restore is enabled, each backup will be marked with a letter C or E at the right of its name to show whether it supports instant restoration. A backup marked with letter C is a common backup and does not support instant restoration. A backup marked with letter E is an enhanced backup and supports instant restoration.

+
+

Project

Projects are used to group and isolate OpenStack resources (computing, storage, and network resources). A project can be a department or a project team. Multiple projects can be created for one account.

+
+
+
+ +
+ diff --git a/docs/vbs/umn/en-us_topic_0071078294.html b/docs/vbs/umn/en-us_topic_0071078294.html new file mode 100644 index 000000000..aa13a7176 --- /dev/null +++ b/docs/vbs/umn/en-us_topic_0071078294.html @@ -0,0 +1,12 @@ + + +

User Permissions

+

The public cloud system provides two types of user permissions by default: user management and resource management. User management refers to the management of users and user groups. Resource management refers to the control operations that can be performed by users on cloud service resources.

+

For details, see Permissions.

+
+
+ +
+ diff --git a/docs/vbs/umn/en-us_topic_0086521573.html b/docs/vbs/umn/en-us_topic_0086521573.html new file mode 100644 index 000000000..eb414dbc3 --- /dev/null +++ b/docs/vbs/umn/en-us_topic_0086521573.html @@ -0,0 +1,44 @@ + + +

What Are the Differences Between CSBS and VBS?

+

Table 1 lists the differences between Cloud Server Backup Service (CSBS) and Volume Backup Service (VBS).

+ +
+ + + + + + + + + + + + + + + + + +
Table 1 Differences

Item

+

VBS

+

CSBS

+

Backup objects

+

One or more specified EVS disks (system or data disks)

+

All EVS disks (including system and data disks) on a single ECS

+

Recommended scenario

+

Only data disks need to be backed up, because the system disk does not contain personal data.

+

An entire ECS needs to be protected.

+

Advantages

+

Data is secure while the service is cost-competitive.

+

All EVS disks on an ECS have consistent data. They are backed up at the same time, eliminating the problem of data inconsistency caused by backups generated at different points in time.

+
+
+
+
+ +
+ diff --git a/docs/vbs/umn/en-us_topic_0104564767.html b/docs/vbs/umn/en-us_topic_0104564767.html new file mode 100644 index 000000000..dcb3633e6 --- /dev/null +++ b/docs/vbs/umn/en-us_topic_0104564767.html @@ -0,0 +1,13 @@ + + +

Why Are CSBS Backups Displayed on the VBS Backup Page?

+

CSBS backups of ECSs are also displayed on the VBS backup page and can be distinguished from VBS backups by Source in the backup details.

+

To use CSBS to back up a server is to back up every disk of the server. These disk backups are displayed on the VBS backup list and can be directly used to restore disks.

+

Backups whose Source is CSBS can be deleted only on the CSBS page.

+
+
+ +
+ diff --git a/docs/vbs/umn/en-us_topic_0105911995.html b/docs/vbs/umn/en-us_topic_0105911995.html new file mode 100644 index 000000000..a836b5270 --- /dev/null +++ b/docs/vbs/umn/en-us_topic_0105911995.html @@ -0,0 +1,12 @@ + + +

Does Backup Can Be Performed Several Times a Day?

+

Yes. Up to 24 automatic backup jobs can be executed per day. Manual backup jobs have no such restriction.

+

The minimum frequency for policy-driven backup is once per integral hour. Manual backup can be performed at any frequency.

+
+
+ +
+ diff --git a/docs/vbs/umn/en-us_topic_0105943829.html b/docs/vbs/umn/en-us_topic_0105943829.html new file mode 100644 index 000000000..e1d8a17c0 --- /dev/null +++ b/docs/vbs/umn/en-us_topic_0105943829.html @@ -0,0 +1,11 @@ + + +

Can a Disk Only Be Associated With One Policy?

+

Yes. If an EVS disk you select to be associated with the target policy has been associated with another one, the system will disassociate it from the original policy and then associate it with the target one.

+
+
+ +
+ diff --git a/docs/vbs/umn/en-us_topic_0112805383.html b/docs/vbs/umn/en-us_topic_0112805383.html new file mode 100644 index 000000000..c91483b7f --- /dev/null +++ b/docs/vbs/umn/en-us_topic_0112805383.html @@ -0,0 +1,121 @@ + + +

Creating a Backup Policy

+

To implement periodic automatic backup on EVS disks, you need to create a backup policy first. Then the system will periodically perform backups according to the execution time specified in the backup policy. You can choose to use the default backup policy provided by the system or create one as needed.

+

The system automatically creates EVS disk data backups and deletes expired data backups only when a backup policy is created and enabled.

+

You can create a backup policy to associate all those EVS disks whose data needs to be periodically backed up.

+
  • The system provides a default backup policy for associating EVS disks. This default backup policy can be enabled, disabled, edited, and executed. For details about how to execute the default backup policy, see Executing a backup policy. For details about how to edit the default backup policy, see Editing a backup policy.
  • In addition to the default backup policy, you can create another 31 backup policies. Once there are 32 backup policies in total, the Create Policy button becomes unavailable and no more policies can be created.
  • Deleting expired automatic data backups does not delete manual data backups.
+
+
  1. Log in to the management console.
  2. Click in the upper left corner of the management console and select a region and a project.
  3. Click . Under Storage, click Volume Backup Service.
  4. On the Volume Backup Service page, click Policies to go to the Policies tab page.

    The Policies tab page displays existing backup policies. Expand the desired backup policy to view EVS disks associated with it.

    +

  5. Click Create Backup Policy to expand the setting items. See Figure 1. Table 1 describes the backup policy parameters.

    Figure 1 Creating a backup policy
    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Table 1 Parameter description

    Parameter

    +

    Description

    +

    Remarks

    +

    Name

    +

    The name is a string of 1 to 64 characters consisting of letters, digits, underscores (_), and hyphens (-), and cannot start with default.

    +

    Example value: autobk_78ba

    +

    Execution Time

    +

    Detailed time for backing up data of the EVS disks associated with the backup policy.

    +

    Backup can be scheduled on integral hours and multiple selections are supported.

    +

    Example value: 02:00

    +

    Backup Period

    +

    Weekly: specifies on which days of each week the backup job will be executed. You can select all.

    +

    Daily: specifies the interval (every 1 to 14 days) for executing the backup job (on the hour).

    +

    Example value: Every 3 days

    +

    If you select Daily, the first backup time is irrelevant to the time when the backup policy is created. A backup policy takes effect from the month when it is created. Policies with the same Backup Period execute backup jobs at the same times. For example, if a backup policy with "Every 3 days" is created on the second date of a month, the first backup will be created on the fourth date of the month. "Every 3 days" indicates that backups will be created on the first date, fourth date, seventh date, and so on.

    +

    To ensure stable service running, back up EVS disks during off-peak hours.

    +

    Retention Rule

    +

    Time Period: You can choose to retain backups for one month, three months, six months, or one year, or for any desired number (2 to 99999) of days.

    +

    Backup Quantity: specifies the maximum allowed number of backups for a single EVS disk.

    +
    NOTE:

    Set this parameter based on the applied quota. For example, if 10 EVS disks are associated with the backup policy and this parameter is set to 10, then at least a quota of 100 backups is required. If the applied quota is smaller than 100, the backup job will fail due to the insufficient quota. To view the quota, read the related tip above the VBS backup list.

    +
    +

    Example value: 6

    +

    A more frequent backup of EVS disks creates more backups and delivers a higher level of data protection but occupies more storage space. Determine the backup frequency based on the data importance and service volume. Perform relatively frequent backup operations for important data.

    +

    When the number of backups to be retained has exceeded the value of Backup Quantity, the system automatically deletes the earliest backups. After a backup is deleted, the other backups can still be used for restoration.

    +

    Retain the first backup in this month

    +

    If you select this option, the initial data backup in the current month will be retained.

    +

    The first backup in the current month will not be deleted. For example, if the current month is February, the first backup generated in February will not be deleted during February. The first backup generated in January, together with other backups generated in January, will be deleted in sequence.

    +

    Enable

    +

    You can turn on the switch () to enable the backup policy or turn off the switch () to disable the backup policy.

    +

    If you have disabled the backup policy or have turned off the switch (), you can select the backup policy in the backup policy list and turn on the switch () to enable it.

    +
    +
    +

  6. Add tags to the backup.

    A tag is represented in the form of a key-value pair. Tags are used to identify, classify, and search for cloud resources.

    +

    Tags added in a backup policy apply to all backups generated using the backup policy. Tags are used to filter and manage backup resources only. A backup policy can have a maximum of 10 tags.

    +
    Table 2 describes parameters of a tag. +
    + + + + + + + + + + + + + +
    Table 2 Parameter description

    Parameter

    +

    Description

    +

    Example Value

    +

    Key

    +

    Each tag of a backup has a unique key. The key of a tag is user-definable or is selected from those of existing tags in TMS.

    +

    The naming rules for a tag key are as follows:

    +
    • It ranges from 1 to 36 Unicode characters.
    • It can contain only letters, digits, hyphens (-), and underscores (_).
    +

    Key_0001

    +

    Value

    +

    The values of tags can be repetitive and can be blank.

    +

    The naming rules for a tag value are as follows:

    +
    • It ranges from 0 to 43 Unicode characters.
    • It can contain only letters, digits, hyphens (-), and underscores (_).
    +

    Value_0001

    +
    +
    +
    +

  7. Click OK.
+
+
+ +
+ + + \ No newline at end of file diff --git a/docs/vbs/umn/en-us_topic_0112805384.html b/docs/vbs/umn/en-us_topic_0112805384.html new file mode 100644 index 000000000..0d877ebe7 --- /dev/null +++ b/docs/vbs/umn/en-us_topic_0112805384.html @@ -0,0 +1,33 @@ + + +

Associating EVS Disks with a Backup Policy or Disassociating Them from a Backup Policy

+

After creating a backup policy, you can associate EVS disks to the backup policy. Later, the system will back up the EVS disks automatically according to the execution times specified in the backup policy. If an EVS disk no longer needs automatic backup, you can disassociate it from the backup policy.

+

Procedure

  1. Log in to the management console.
  2. Click in the upper left corner of the management console and select a region and a project.
  3. Click . Under Storage, click Volume Backup Service.
  4. On the Volume Backup Service page, click Policies to go to the Policies tab page.
  5. Select an existing backup policy and click . The list of associated EVS disks is displayed.

    • Associating disks
      1. Click Associate. Alternatively, click Associate Disk in the Operation column.

        The Associate Disk dialog box is displayed listing the EVS disks.

        +
      2. Select the EVS disks that need to be associated with the backup policy (EVS disks in Awaiting transfer, Expansion failed, Restoration failed, Rollback failed, Error, or Deletion failed state cannot be associated).

        You can select EVS disks that have been associated with other backup policies. However, the system will disassociate them from the relevant backup policies and then associate them with the new backup policy.

        +
        +
      3. Optional: In the search box above the list, select a state and specify whether to search for an EVS disk by EVS disk name, EVS disk ID, or ECS ID and enter the corresponding value to search.
      4. Confirm the selected EVS disks to add them to the Selected Disks list on the right.
      5. Optional: In the search box above the Selected Disks list, specify whether to search for an EVS disk by its name or ID and enter the corresponding value to search. If the EVS disk is displayed, it has been selected.
      6. Confirm that the correct EVS disks are selected and click OK to complete the association. See Figure 1.
        Figure 1 Associating a disk
        +

        If you select a large number (greater than 40) of EVS disks, the association operation may take a long time and a dialog box is displayed asking you whether to continue the association operation. Click OK to continue.

        +
        +
        +
      7. Ensure that the backup policy is enabled. When the point in time specified by the backup policy arrives, select the backup policy. Then on the Backup Jobs panel, ensure that a backup job is generated.
      8. On the VBS backup list, locate the needed backup according to Name (the Backup Name specified in the backup job). When the Status is Available, the backup job of the associated EVS disks is complete.
      +
    • Disassociating EVS disks
      1. In the list of associated EVS disks, locate the EVS disk to be disassociated from the backup policy and click Disassociate in the Operation column.

        The Disassociate Disk dialog box is displayed.

        +
      2. Optional: In the list of associated EVS disks, select one or more EVS disks to be disassociated from the backup policy and click Disassociate above the list.

        The Disassociate Disk dialog box is displayed.

        +
      3. Confirm the EVS disk information and click OK.

        The Associated Disks panel does not display the EVS disks that are disassociated from this backup policy.

        +
      +
    +

+
+
+
+ +
+ + + \ No newline at end of file diff --git a/docs/vbs/umn/en-us_topic_0112805385.html b/docs/vbs/umn/en-us_topic_0112805385.html new file mode 100644 index 000000000..9e55f81db --- /dev/null +++ b/docs/vbs/umn/en-us_topic_0112805385.html @@ -0,0 +1,22 @@ + + +

Searching for Associated EVS Disks

+

To query an EVS disk from a backup policy with a large number of EVS disks associated, you can set filtering criteria to search it.

+

Procedure

  1. Log in to the management console.
  2. Click in the upper left corner of the management console and select a region and a project.
  3. Click . Under Storage, click Volume Backup Service.
  4. On the Volume Backup Service page, click Policies to go to the Policies tab page.
  5. Click in the row of the desired policy. The list of associated EVS disks is displayed in the Associated Disks panel.
  6. In the upper right corner of the list, select a state to search for EVS disks in the state.
  7. (Optional) Specify whether to search for an EVS disk by its name or ID and enter the corresponding value, and click to search. SeeFigure 1.

    Figure 1 Searching for associated EVS disks
    +

    +

+
+
+
+ +
+ + + \ No newline at end of file diff --git a/docs/vbs/umn/en-us_topic_0112805386.html b/docs/vbs/umn/en-us_topic_0112805386.html new file mode 100644 index 000000000..f29748d8c --- /dev/null +++ b/docs/vbs/umn/en-us_topic_0112805386.html @@ -0,0 +1,17 @@ + + +

Viewing Backup Jobs

+

On the Backup Jobs panel of the backup policy, you can view all backup jobs of the selected backup policy. If a backup job is in the Failed or Timed out state, you can click Back Up Again in the Operation column to manually back up the EVS disk again.

+

In the upper right corner of the list, you can select a state from the All statuses drop-down list to search for backup jobs.

+

The Backup Jobs list can show policy-driven backup jobs that have been executed in the past 30 days.

+

For policy-driven backup jobs executed more than 30 days ago, you can check whether they are successful on the VBS backup list:

+
  1. If a backup was generated at the specified point in time more than 30 days ago and it is in the Available state, the backup job is successful.
  2. If the expected backup is not displayed, the existing number of backups has not reached the maximum allowed value and you have not deleted it, or the backup is displayed but it is in the Error state, the backup job has failed.

    For Failed backup jobs that were completed in the last date, the management console can report alarms to tenants through email and text message (if tenants have registered their email addresses and mobile phone numbers).

    +
    +
+
+
+ +
+ diff --git a/docs/vbs/umn/en-us_topic_0112805387.html b/docs/vbs/umn/en-us_topic_0112805387.html new file mode 100644 index 000000000..9d7096167 --- /dev/null +++ b/docs/vbs/umn/en-us_topic_0112805387.html @@ -0,0 +1,25 @@ + + +

Managing Backup Policy Tags

+

You can add tags to a backup policy as well as edit and delete these tags. Tags are used to filter and manage backup resources only.

+
  1. Log in to the management console.
  2. Click in the upper left corner of the management console and select a region and a project.
  3. Click . Under Storage, click Volume Backup Service.
  4. On the Volume Backup Service page, click Policies to go to the Policies tab page.
  5. In the row of the desired policy, click . The Tags panel displays existing tags of the backup policy.

    • Adding tags
      1. In the upper left corner of the Tags panel, click Add Tag.
      2. In the dialog box that is displayed, set the key and value of the new tag. Table 2 describes the parameters.

        A backup policy can have a maximum of 10 tags. For details, see Figure 1.

        +
        Figure 1 Adding tags
        +
      3. Click OK.
      +
    • Editing a tag
      1. In the Operation column of the tag that you want to edit, click Edit.
      2. In the Edit Tag dialog box that is displayed, modify the tag value. Table 2 describes the parameters.
      3. Click OK.
      +
    • Deleting a tag
      1. In the Operation column of the tag that you want to delete, click Delete.
      2. In the dialog box that is displayed, confirm the deletion information.
      3. Click OK.
      +
    +

+
+
+ +
+ + + \ No newline at end of file diff --git a/docs/vbs/umn/en-us_topic_0112805388.html b/docs/vbs/umn/en-us_topic_0112805388.html new file mode 100644 index 000000000..219d9265a --- /dev/null +++ b/docs/vbs/umn/en-us_topic_0112805388.html @@ -0,0 +1,35 @@ + + +

(Optional) Other Operations with Backup Policies

+

You can edit, enable, execute, and delete backup policies.

+
  1. Log in to the management console.
  2. Click in the upper left corner of the management console and select a region and a project.
  3. Click . Under Storage, click Volume Backup Service.
  4. On the Volume Backup Service page, click Policies to go to the Policies tab page.

    • Editing a backup policy
      1. In the Operation column of the backup policy that you want to modify, click Edit. The Edit Backup Policy dialog box is displayed. See Figure 1.
        Figure 1 Editing backup policies
        +
      2. Modify the backup policy parameters. Table 1 describes the parameters.
      3. Click OK.
      +
    • Enabling a backup policy

      In the Operation column of the backup policy you want to enable, click Edit. On the displayed page, click to turn on this option.

      +

      Alternatively, you can choose More > Enable in the Operation column for the backup policy. In the dialog box that is displayed asking your confirmation, click OK.

      +

      After the backup policy is successfully enabled, the policy status in the Enable column changes to Enabled, and the system will automatically execute periodic backup jobs based on policy settings.

      +
    • Executing a backup policy

      Before performing this operation, check whether EVS disks are associated with the backup policy. If not, associate EVS disks with the backup policy first.

      +
      +
      1. When the backup policy is associated with EVS disks, select the backup policy, and choose More > Execute in the Operation column.

        A confirmation dialog box is displayed. See Figure 2.

        +
        Figure 2 Executing a backup policy
        +
      2. Confirm the backup policy parameter information and click OK.

        On the Backup Jobs panel, view all the backup jobs executed based on this backup policy.

        +
      +
    • Deleting a backup policy

      After a backup policy is deleted, the backup data that has already been generated by the backup policy is still available.

      +
      +
      1. Select the backup policy that you want to delete, and choose More > Delete in the Operation column. The Delete Backup Policy dialog box is displayed. See Figure 3.
        Figure 3 Deleting a backup policy
        +
      2. Confirm the deletion information and click OK.
      +
    +

+
+
+ +
+ + + \ No newline at end of file diff --git a/docs/vbs/umn/en-us_topic_0115393304.html b/docs/vbs/umn/en-us_topic_0115393304.html new file mode 100644 index 000000000..33edc6888 --- /dev/null +++ b/docs/vbs/umn/en-us_topic_0115393304.html @@ -0,0 +1,139 @@ + + +

Viewing VBS Traces

+

Scenarios

CTS records operations of VBS resources, facilitating query, audit, and backtracking.

+
+

Prerequisites

You have enabled CTS and the tracker is running properly. For details about how to enable CTS, see section "Enabling CTS" in the Cloud Trace Service User Guide.

+

+
+

Key Operations Recorded by CTS

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Table 1 VBS operations that can be recorded by CTS

Operation

+

Resource Type

+

Trace

+

Creating a backup

+

vbs

+

bksCreateBackup

+

Deleting a backup

+

vbs

+

bksDeleteBackup

+

Restoring a backup

+

vbs

+

bksRestoreBackup

+

Associating a backup policy

+

autobackup

+

addPolicyResource

+

Disassociating a backup policy

+

autobackup

+

deletePolicyResource

+

Executing a backup policy

+

autobackup

+

actionPolicy

+

Creating a backup policy

+

autobackup

+

createPolicy

+

Deleting a backup policy

+

autobackup

+

deletePolicy

+

Modifying a backup policy

+

autobackup

+

modifyPolicy

+

Creating a backup scheduled by a backup policy

+

autobackup

+

scheduleCreateBackup

+

Automatically deleting a backup scheduled by a backup policy

+

autobackup

+

scheduleDeleteBackup

+

Batch adding or modifying tags of a backup policy

+

autobackup

+

batchAddPolicyTag

+

Batch deleting tags of a backup policy

+

autobackup

+

batchDeletePolicyTag

+

Adding or modifying a backup policy tag

+

autobackup

+

addPolicyTag

+

Deleting a backup policy tag

+

autobackup

+

deletePolicyTag

+
+
+
+

Viewing CTS Traces

  1. Log in to the management console.
  2. In the upper left corner of the page, click and select the desired region and project.
  3. Click Service List. Under Management & Deployment, click Cloud Trace Service.
  4. In the navigation pane on the left, choose Trace List.
  5. On the trace list page, click Filter. In the displayed box, specify Trace Source, Resource Type, and Search By, and click Query to query the specified traces.

    For details about other operations, see section "Querying Real-Time Traces" in the Cloud Trace Service User Guide.

    +

+
+

Disabling or Enabling a Tracker

This section describes how to disable an existing tracker on the CTS console. After the tracker is disabled, the system will stop recording operations, but you can still view existing operation records.

+
  1. Log in to the management console.
  2. In the upper left corner of the page, click and select the desired region and project.
  3. Click Service List. Under Management & Deployment, click Cloud Trace Service.
  4. Click Tracker in the left pane.
  5. Click Disable on the right of the tracker information.
  6. Click OK.
  7. After the tracker is disabled, its status changes from Disable to Enable. To enable the tracker again, click Enable and then click OK. The system will start recording operations again.
+
+
+
+ +
+ diff --git a/docs/vbs/umn/en-us_topic_0126537915.html b/docs/vbs/umn/en-us_topic_0126537915.html new file mode 100644 index 000000000..05d4b2318 --- /dev/null +++ b/docs/vbs/umn/en-us_topic_0126537915.html @@ -0,0 +1,14 @@ + + +

What Are Full Backup and Incremental Backup?

+

After an initial full backup, an ECS continues to be backed up incrementally by default.

+ +

VBS allows you to use any backup (no matter it is a full or incremental one) to restore the data of the entire EVS disk. By virtue of this, manual or automatic deletion of a backup will not affect the restoration function.

+

Suppose EVS disk X has backups A, B, and C (in time sequence) and every backup involves data changes. If backup B is deleted, you can still use backup A or C to restore data.

+
+
+ +
+ diff --git a/docs/vbs/umn/en-us_topic_0126537916.html b/docs/vbs/umn/en-us_topic_0126537916.html new file mode 100644 index 000000000..f1dd4a5ad --- /dev/null +++ b/docs/vbs/umn/en-us_topic_0126537916.html @@ -0,0 +1,51 @@ + + +

What Are the Differences Between Backups and Snapshots?

+

Both backups and snapshots provide data redundancy for EVS disks to improve data reliability. Table 1 lists the differences between them.

+ +
+ + + + + + + + + + + + + + + + + + + +
Table 1 Differences between backups and snapshots

Technology

+

Saved In

+

Synchronization

+

DR Range

+

Service Recovery

+

Backup

+

Backup data is stored in OBS, instead of EVS disks. This realizes data restoration upon EVS disk data loss or corruption.

+

A backup is the data copy of an EVS disk at a given point in time. VBS provides automatic backup by configuring backup policies. Deleting an EVS disk will not clear its backups.

+

A snapshot and its source EVS disk reside in the same AZ.

+

Data can be recovered and services can be restored by restoring the backup data to original disks or creating new disks from backups, ensuring superb data reliability.

+

Snapshot

+

Snapshot data is stored with EVS disk data.

+
NOTE:

Creation of and rollback to snapshots are faster than creation of and restoration from backups, because the latter requires data migration that consumes extra time.

+
+

A snapshot is the state of an EVS disk at a specific point in time. When you delete an EVS disk, the snapshots of the EVS disk are also deleted.

+

A snapshot and its source EVS disk reside in the same AZ.

+

You can use a snapshot to roll back its original EVS disk or create an EVS disk for data restoration and service recovery.

+
+
+
+
+ +
+ diff --git a/docs/vbs/umn/en-us_topic_0127994691.html b/docs/vbs/umn/en-us_topic_0127994691.html new file mode 100644 index 000000000..1c865e682 --- /dev/null +++ b/docs/vbs/umn/en-us_topic_0127994691.html @@ -0,0 +1,11 @@ + + +

Why Is the Remaining Space Not Changed After a Backup Is Deleted?

+

This situation appears because the deletion operations are asynchronous. After a backup is deleted, no fee will be generated. The underlying backup data will be deleted gradually based on the backup size within three days. After the underlying backup data is deleted, the remaining space will change accordingly.

+
+
+ +
+ diff --git a/docs/vbs/umn/en-us_topic_0153835047.html b/docs/vbs/umn/en-us_topic_0153835047.html new file mode 100644 index 000000000..29daa7188 --- /dev/null +++ b/docs/vbs/umn/en-us_topic_0153835047.html @@ -0,0 +1,24 @@ + + +

Quotas

+

What Is Quota?

Quotas can limit the number or amount of resources available to users, such as the maximum number of ECSs or EVS disks that can be created.

+

If the existing resource quota cannot meet your service requirements, you can apply for a higher quota.

+
+

How Do I View My Quotas?

  1. Log in to the management console.
  2. Click in the upper left corner and select the desired region and project.
  3. In the upper right corner of the page, click .

    The Service Quota page is displayed.

    +
  4. View the used and total quota of each type of resources on the displayed page.

    If a quota cannot meet service requirements, apply for a higher quota.

    +
+
+

How Do I Apply for a Higher Quota?

The system does not support online quota adjustment. If you need to adjust a quota, call the hotline or send an email to the customer service mailbox. Customer service personnel will timely process your request for quota adjustment and inform you of the real-time progress by making a call or sending an email.

+

Before dialing the hotline number or sending an email, make sure that the following information has been obtained:

+ +

Learn how to obtain the service hotline and email address.

+
+
+
+ +
+ diff --git a/docs/vbs/umn/en-us_topic_0170379340.html b/docs/vbs/umn/en-us_topic_0170379340.html new file mode 100644 index 000000000..e3e68f27d --- /dev/null +++ b/docs/vbs/umn/en-us_topic_0170379340.html @@ -0,0 +1,22 @@ + + +

Region and AZ

+

Concept

A region and availability zone (AZ) identify the location of a data center. You can create resources in a specific region and AZ.

+ +

Figure 1 shows the relationship between regions and AZs.

+
Figure 1 Regions and AZs
+
+

Selecting a Region

Select a region closest to your target users for lower network latency and quick access.

+
+

Selecting an AZ

When deploying resources, consider your applications' requirements on disaster recovery (DR) and network latency.

+ +
+

Regions and Endpoints

Before you use an API to call resources, specify its region and endpoint. For more details, see Regions and Endpoints.

+
+
+
+ +
+ diff --git a/docs/vbs/umn/public_sys-resources/ExpandCollapse.js b/docs/vbs/umn/public_sys-resources/ExpandCollapse.js new file mode 100644 index 000000000..3f1b7db00 --- /dev/null +++ b/docs/vbs/umn/public_sys-resources/ExpandCollapse.js @@ -0,0 +1 @@ +var expandClassName="dropdownexpand";var collapseClassName="dropdowncollapse";var collapseTableClassName="dropdowncollapsetable";var href="";function ExpandorCollapseNode(a){a=a.parentNode;if(a.className==expandClassName){a.className=collapseClassName}else{a.className=expandClassName}}function ExpandorCollapseTableNode(a){a=a.parentNode;if(a.className==expandClassName){a.className=collapseTableClassName}else{a.className=expandClassName}}function ExpandorCollapseAllNodes(g,h,c){var a=g.getAttribute("title");var b=g.parentNode;if(a=="collapse"){g.setAttribute("title","expand");g.className="dropdownAllButtonexpand";g.innerHTML=h}else{g.setAttribute("title","collapse");g.className="dropdownAllButtoncollapse";g.innerHTML=c}var f=b.getElementsByTagName("*");for(var d=0;d-1){ExpandForHref(href.substring(href.lastIndexOf("#")+1))}}catch(a){}}; \ No newline at end of file diff --git a/docs/vbs/umn/public_sys-resources/caution_3.0-en-us.png b/docs/vbs/umn/public_sys-resources/caution_3.0-en-us.png new file mode 100644 index 000000000..60f607621 Binary files /dev/null and b/docs/vbs/umn/public_sys-resources/caution_3.0-en-us.png differ diff --git a/docs/vbs/umn/public_sys-resources/commonltr.css b/docs/vbs/umn/public_sys-resources/commonltr.css new file mode 100644 index 000000000..c5480b0ab --- /dev/null +++ b/docs/vbs/umn/public_sys-resources/commonltr.css @@ -0,0 +1 @@ +body{font-size:10pt;font-family:Arial;margin:1.5em;border-top:2pt;padding-top:1em;padding-bottom:2em}.msgph{font-family:Courier New}.rowlinecopyright{color:red;margin-top:10pt}.unresolved{background-color:skyblue}.noTemplate{background-color:yellow}.base{background-color:#fff}.nested0{margin-top:1em}.p{margin-top:.6em;margin-bottom:.6em}p{margin-top:.5em;margin-bottom:.5em}.note p{margin-top:.5em;margin-bottom:.5em}.tip p{margin-top:.5em;margin-bottom:.5em}.danger p{margin-top:.5em;margin-bottom:.5em}.notice p{margin-top:.5em;margin-bottom:.5em}.warning p{margin-top:.5em;margin-bottom:.5em}.caution p{margin-top:.5em;margin-bottom:.5em}.attention p{margin-top:.5em;margin-bottom:.5em}table p{margin-top:.2em;margin-bottom:.2em}table .p{margin-top:.4em;margin-bottom:.2em}.figcap{font-size:10pt}img{margin-top:.3em}.figdesc{font-style:normal}.figborder{border-style:solid;padding-left:3px;border-width:2px;padding-right:3px;margin-top:1em;border-color:Silver}.figsides{border-left:2px solid;padding-left:3px;border-right:2px solid;padding-right:3px;margin-top:1em;border-color:Silver}.figtop{border-top:2px solid;margin-top:1em;border-color:Silver}.figbottom{border-bottom:2px solid;border-color:Silver}.figtopbot{border-top:2px solid;border-bottom:2px solid;margin-top:1em;border-color:Silver}.fignone{font-size:10pt;margin-top:8pt;margin-bottom:8pt}.familylinks{margin-top:1.5em;margin-bottom:1em}.ullinks{list-style-type:none}.linklist{margin-bottom:1em}.linklistwithchild{margin-left:1.5em;margin-bottom:1em}.sublinklist{margin-left:1.5em;margin-bottom:1em}.relconcepts{margin-top:.6em;margin-bottom:.6em}.reltasks{margin-top:.6em;margin-bottom:.6em}.relref{margin-top:.6em;margin-bottom:.6em}.relinfo{margin-top:.6em;margin-bottom:.6em}.breadcrumb{font-size:smaller;margin-bottom:.6em}.prereq{margin-left:20px}.parentlink{margin-top:.6em;margin-bottom:.6em}.nextlink{margin-top:.6em;margin-bottom:.6em}.previouslink{margin-top:.6em;margin-bottom:.6em}.topictitle1{margin-top:0;margin-bottom:1em;font-size:14pt;color:#007af4}.topictitle2{margin-top:1pc;margin-bottom:.45em;font-size:1.17em;color:#007af4}.topictitle3{margin-top:1pc;margin-bottom:.17em;font-size:1.17em;font-weight:bold;color:#007af4}.topictitle4{margin-top:.83em;font-size:1.17em;font-weight:bold}.topictitle5{font-size:1.17em;font-weight:bold}.topictitle6{font-size:1.17em;font-style:italic}.sectiontitle{margin-top:1em;margin-bottom:1em;color:black;font-size:10.5pt;font-weight:bold;color:#007af4;overflow:auto}.section{margin-top:1em;margin-bottom:1em}.example{margin-top:1em;margin-bottom:1em}.sectiontitle2contents:link{color:#007af4}.sectiontitle2contents:visited{color:#800080}.note{margin-top:1em;margin-bottom:1em;background-color:#ffc}.notetitle{font-weight:bold}.notelisttitle{font-weight:bold}.tip{margin-top:1em;margin-bottom:1em;background-color:#ffc}.tiptitle{font-weight:bold}.fastpath{margin-top:1em;margin-bottom:1em;background-color:#ffc}.fastpathtitle{font-weight:bold}.important{margin-top:1em;margin-bottom:1em;background-color:#ffc}.importanttitle{font-weight:bold}.remember{margin-top:1em;margin-bottom:1em;background-color:#ffc}.remembertitle{font-weight:bold}.restriction{margin-top:1em;margin-bottom:1em;background-color:#ffc}.restrictiontitle{font-weight:bold}.attention{margin-top:1em;margin-bottom:1em;background-color:#ffc}.attentiontitle{font-weight:bold}.dangertitle{font-weight:bold}.danger{margin-top:1em;margin-bottom:1em;background-color:#ffc}.noticetitle{font-weight:bold}.notice{margin-top:1em;margin-bottom:1em;background-color:#ffc}.warningtitle{font-weight:bold}.warning{margin-top:1em;margin-bottom:1em;background-color:#ffc}.cautiontitle{font-weight:bold}.caution{margin-top:1em;margin-bottom:1em;background-color:#ffc}ul.simple{list-style-type:none}li ul{margin-top:.6em}li{margin-top:.6em;margin-bottom:.6em}.note li{margin-top:.2em;margin-bottom:.2em}.tip li{margin-top:.2em;margin-bottom:.2em}.danger li{margin-top:.2em;margin-bottom:.2em}.warning li{margin-top:.2em;margin-bottom:.2em}.notice li{margin-top:.2em;margin-bottom:.2em}.caution li{margin-top:.2em;margin-bottom:.2em}.attention li{margin-top:.2em;margin-bottom:.2em}table li{margin-top:.2em;margin-bottom:.2em}ol{margin-top:1em;margin-bottom:1em;margin-left:2.4em;padding-left:0}ul{margin-top:1em;margin-bottom:1em;margin-left:2.0em;padding-left:0}ol ul{list-style:disc}ul ul{list-style:square}ol ul ul{list-style:square}ol ul{list-style-type:disc}table ol{margin-top:.4em;margin-bottom:.4em;list-style:decimal}table ul{margin-top:.4em;margin-bottom:.4em;list-style:disc}table ul ul{margin-top:.4em;margin-bottom:.4em;list-style:square}table ol ol{margin-top:.4em;margin-bottom:.4em;list-style:lower-alpha}table ol ul{margin-top:.4em;margin-bottom:.4em;list-style:disc}table ul ol{margin-top:.4em;margin-bottom:.4em;list-style:decimal}.substepthirdol{list-style-type:lower-roman}.firstcol{font-weight:bold}th{background-color:#cfcfcf}table{margin-top:8pt;margin-bottom:12pt;width:100%}table caption{margin-top:8pt;text-align:left}.bold{font-weight:bold}.boldItalic{font-weight:bold;font-style:italic}.italic{font-style:italic}.underlined{text-decoration:underline}.var{font-style:italic}.shortcut{text-decoration:underline}.dlterm{font-weight:bold}dd{margin-top:.5em;margin-bottom:.5em}.dltermexpand{font-weight:bold;margin-top:1em}*[compact="yes"]>li{margin-top:0}*[compact="no"]>li{margin-top:.53em}.liexpand{margin-top:1em;margin-bottom:1em}.sliexpand{margin-top:1em;margin-bottom:1em}.dlexpand{margin-top:1em;margin-bottom:1em}.ddexpand{margin-top:1em;margin-bottom:1em}.stepexpand{margin-top:.3em;margin-bottom:.3em}.substepexpand{margin-top:.3em;margin-bottom:.3em}div.imageleft{text-align:left}div.imagecenter{text-align:center}div.imageright{text-align:right}div.imagejustify{text-align:justify}div.noblankline{text-align:center}div.noblankline img{margin-top:0}pre.screen{margin-top:2px;margin-bottom:2px;padding:1.5px 1.5px 0 1.5px;border:0;background-color:#ddd;white-space:pre}pre.codeblock{margin-top:2px;margin-bottom:2px;padding:1.5px 1.5px 0 1.5px;border:0;background-color:#ddd;white-space:pre}.hrcopyright{color:#3f4e5d;margin-top:18pt}.hwcopyright{text-align:center}.comment{margin:2px 2px 2px 2px;font-family:Arial;font-size:10pt;background-color:#bfb;color:#000}.dropdownAllButtonexpand{cursor:pointer;background-repeat:no-repeat;background-position:0 4px;padding-left:15px;background-image:url(icon-arrowrt.gif);text-decoration:underline;color:#007af4}.dropdownAllButtoncollapse{cursor:pointer;background-repeat:no-repeat;background-position:0 4px;padding-left:15px;background-image:url(icon-arrowdn.gif);text-decoration:underline;color:#007af4;text-decoration:underline;color:#007af4}.dropdowntitle{background-repeat:no-repeat;background-position:0 4px;padding-left:15px;cursor:pointer;text-decoration:underline;color:#007af4}.dropdownexpand .dropdowntitle{background-image:url(icon-arrowdn.gif);text-decoration:underline;color:#007af4;margin:0 0 8px 0}.dropdowncollapse .dropdowncontext{display:none}.dropdowncollapse .dropdowntitle{background-image:url(icon-arrowrt.gif);text-decoration:underline;color:#007af4}.dropdowncollapsetable{border:0}.dropdowncollapsetable .dropdowncontext{display:none}.dropdowncollapsetable .dropdowntitle{background-image:url(icon-arrowrt.gif);text-decoration:underline;color:#007af4}pre{font-size:10pt;font-weight:normal;margin-left:9;margin-top:2;margin-bottom:2}.termcolor{color:blue;cursor:pointer}#dhtmlgoodies_tooltip{background-color:#f0f0d2;border:1px solid #000;position:absolute;display:none;z-index:20000;padding:2px;font-size:.9em;-moz-border-radius:6px;font-family:"Trebuchet MS","Lucida Sans Unicode",Arial,sans-serif}#dhtmlgoodies_tooltipShadow{position:absolute;background-color:#555;display:none;z-index:10000;opacity:.7;filter:alpha(opacity=70);-khtml-opacity:.7;-moz-opacity:.7;-moz-border-radius:6px}.freeze{position:fixed;_position:absolute;_top:expression(eval(document.documentElement.scrollTop));left:10;top:0} \ No newline at end of file diff --git a/docs/vbs/umn/public_sys-resources/commonltr_print.css b/docs/vbs/umn/public_sys-resources/commonltr_print.css new file mode 100644 index 000000000..a59823141 --- /dev/null +++ b/docs/vbs/umn/public_sys-resources/commonltr_print.css @@ -0,0 +1 @@ +body{font-size:12.0pt;margin:1.5em;margin-left:1.6cm}.msgph{font-family:Courier New}.rowlinecopyright{color:red;margin-top:10pt}.unresolved{background-color:skyblue}.noTemplate{background-color:yellow}.base{background-color:#fff}.nested0{margin-top:1em}.p{margin-top:1em}p{margin-top:.5em;margin-bottom:.5em}.note p{margin-top:.5em;margin-bottom:.5em}.tip p{margin-top:.5em;margin-bottom:.5em}.danger p{margin-top:.5em;margin-bottom:.5em}.warning p{margin-top:.5em;margin-bottom:.5em}.notice p{margin-top:.5em;margin-bottom:.5em}.caution p{margin-top:.5em;margin-bottom:.5em}.attention p{margin-top:.5em;margin-bottom:.5em}table p{margin-top:.2em;margin-bottom:.2em}table .p{margin-top:.4em;margin-bottom:.2em}.covertable{border:0;width:100% cellpadding:8pt;cellspacing:8pt}.cover_productname{font-size:15.0pt;font-family:"Arial"}.cover_manualtitle{font-size:24.0pt;font-weight:bold;font-family:"Arial"}.cover_manualsubtitle{font-size:18.0pt;font-weight:bold;font-family:"Arial"}.cover_heading{font-size:12.0pt;font-weight:bold;font-family:"Arial"}.cover_text{font-size:9.0pt;font-family:"Arial"}.tocheading,.heading1,.topictitle1{margin-top:40.0pt;margin-right:0;margin-bottom:20.0pt;margin-left:-1cm;text-align:left;border:0;border-bottom:solid windowtext .5pt;font-size:22.0pt;font-family:"Arial";font-weight:bold}.topictitlenumber1{font-size:72.0pt;font-family:"Book Antiqua";font-weight:bold}.topictitle2{margin-top:10.0pt;margin-right:0;margin-bottom:8.0pt;margin-left:-1cm;text-indent:0;font-size:18.0pt;font-family:"Arial";font-weight:bold}.topictitle3{margin-top:10.0pt;margin-right:0;margin-bottom:8.0pt;margin-left:0;text-indent:0;font-size:16.0pt;font-family:"Book Antiqua";font-weight:bold}.topictitle4{margin-top:10.0pt;margin-right:0;margin-bottom:8.0pt;margin-left:0;text-indent:0;font-size:14.0pt;font-family:"Book Antiqua";font-weight:bold}.topictitle5{margin-top:10.0pt;margin-right:0;margin-bottom:8.0pt;margin-left:0;text-indent:0;font-size:13.0pt;font-family:"Book Antiqua";font-weight:bold}.blocklabel,.topictitle6{margin-top:15.0pt;margin-right:0;margin-bottom:4.0pt;margin-left:0;text-indent:0;font-size:13.0pt;font-family:"Book Antiqua";font-weight:bold}.sectiontitle{margin-top:15.0pt;margin-right:0;margin-bottom:4.0pt;margin-left:-1cm;text-indent:0;font-size:13.0pt;font-family:"Arial";font-weight:bold}.tocentry1{margin-top:8.0pt;margin-right:0;margin-bottom:4.0pt;margin-left:0;line-height:12.0pt;font-size:12.0pt;font-family:"Book Antiqua";font-weight:bold}.tocentry2{margin-top:4.0pt;margin-right:0;margin-bottom:4.0pt;margin-left:0;line-height:12.0pt;font-size:11.0pt;font-family:"Times New Roman"}.tocentry3{margin-top:4.0pt;margin-right:0;margin-bottom:4.0pt;margin-left:0;line-height:12.0pt;font-size:11.0pt;font-family:"Times New Roman"}.tocentry4{margin-top:4.0pt;margin-right:0;margin-bottom:4.0pt;margin-left:0;line-height:12.0pt;font-size:11.0pt;font-family:"Times New Roman"}.tocentry5{margin-top:4.0pt;margin-right:0;margin-bottom:4.0pt;margin-left:0;line-height:12.0pt;font-size:11.0pt;font-family:"Times New Roman"}.tofentry1{margin-top:8.0pt;margin-right:0;margin-bottom:4.0pt;margin-left:0;line-height:12.0pt;font-size:11.0pt;font-family:"Times New Roman";font-weight:normal}.totentry1{margin-top:8.0pt;margin-right:0;margin-bottom:4.0pt;margin-left:0;line-height:12.0pt;font-size:11.0pt;font-family:"Times New Roman";font-weight:normal}.indexheading{margin-top:15.0pt;margin-right:0;margin-bottom:4.0pt;margin-left:0;text-indent:0;font-size:13.0pt;font-family:"Book Antiqua";font-weight:bold}.indexentry1{margin-top:4pt;margin-right:0;margin-bottom:0;margin-left:0;line-height:12.0pt;font-size:12.0pt;font-family:"Times New Roman"}.indexentry2{margin-top:0;margin-right:0;margin-bottom:0;margin-left:24.0pt;line-height:12.0pt;font-size:12.0pt}.indexentry3{margin-top:0;margin-right:0;margin-bottom:0;margin-left:48pt;line-height:12.0pt;font-size:12.0pt}.figurenumber{font-weight:bold}.tablenumber{font-weight:bold}.familylinks{margin-top:1.5em;margin-bottom:1em}.figcap{font-size:11.0pt}.tablecap{font-size:11.0pt}.figdesc{font-style:normal}.fignone{margin-top:8.0pt}.figborder{border-style:solid;padding-left:3px;border-width:2px;padding-right:3px;margin-top:1em;border-color:Silver}.figsides{border-left:2px solid;padding-left:3px;border-right:2px solid;padding-right:3px;margin-top:1em;border-color:Silver}.figtop{border-top:2px solid;margin-top:1em;border-color:Silver}.figbottom{border-bottom:2px solid;border-color:Silver}.figtopbot{border-top:2px solid;border-bottom:2px solid;margin-top:1em;border-color:Silver}.ullinks{margin-left:0;list-style-type:none}.ulchildlink{margin-top:1em;margin-bottom:1em}.olchildlink{margin-top:1em;margin-bottom:1em;margin-left:1em}.linklist{margin-bottom:1em}.linklistwithchild{margin-left:1.5em;margin-bottom:1em}.sublinklist{margin-left:1.5em;margin-bottom:1em}.relconcepts{margin-left:1cm;margin-top:1em;margin-bottom:1em}.reltasks{margin-left:1cm;margin-top:1em;margin-bottom:1em}.relref{margin-left:1cm;margin-top:1em;margin-bottom:1em}.relinfo{margin-top:1em;margin-bottom:1em}.breadcrumb{font-size:smaller;margin-bottom:1em}.prereq{margin-left:0}.parentlink{margin-top:.6em;margin-bottom:.6em}.nextlink{margin-top:.6em;margin-bottom:.6em}.previouslink{margin-top:.6em;margin-bottom:.6em}.section{margin-top:1em;margin-bottom:1em}.example{margin-top:1em;margin-bottom:1em}table .note{margin-top:1em;margin-bottom:1em;border:0;font-size:10.0pt;font-family:"Times New Roman"}.note{margin-top:1em;margin-bottom:1em;border:0;font-size:10.0pt;border-top:solid .5pt;border-bottom:solid .5pt}.notetitle{font-weight:bold;font-size:11.0pt}.notelisttitle{font-weight:bold}table .tip{margin-top:1em;margin-bottom:1em;border:0;font-size:10.0pt;font-family:"Times New Roman"}.tip{margin-top:1em;margin-bottom:1em;border:0;font-size:10.0pt;border-top:solid .5pt;border-bottom:solid .5pt}.tiptitle{font-weight:bold;font-size:11.0pt}table .fastpath{margin-top:1em;margin-bottom:1em;border:0;font-size:10.0pt;font-family:"Times New Roman"}.fastpath{margin-top:1em;margin-bottom:1em;border:0;font-size:10.0pt;border-top:solid .5pt;border-bottom:solid .5pt}.fastpathtitle{font-weight:bold;font-size:11.0pt}table .important{margin-top:1em;margin-bottom:1em;border:0;font-size:10.0pt;font-family:"Times New Roman";font-style:italic}.important{margin-top:1em;margin-bottom:1em;border:0;font-size:10.0pt;border-top:solid .5pt;border-bottom:solid .5pt}.importanttitle{font-weight:bold;font-size:11.0pt}table .remember{margin-top:1em;margin-bottom:1em;border:0;font-size:10.0pt;font-family:"Times New Roman";font-style:italic}.remember{margin-top:1em;margin-bottom:1em;border:0;font-size:10.0pt;border-top:solid .5pt;border-bottom:solid .5pt}.remembertitle{font-weight:bold;font-size:11.0pt}table .restriction{margin-top:1em;margin-bottom:1em;border:0;font-size:10.0pt;font-family:"Times New Roman";font-style:italic}.restriction{margin-top:1em;margin-bottom:1em;border:0;font-size:10.0pt;border-top:solid .5pt;border-bottom:solid .5pt}.restrictiontitle{font-weight:bold;font-size:11.0pt}table .attention{margin-top:1em;margin-bottom:1em;border:0;font-size:10.0pt;font-family:"Times New Roman"}.attention{margin-top:1em;margin-bottom:1em;border:0;border-top:solid .5pt;border-bottom:solid .5pt}.attentiontitle{font-weight:bold}table .danger{margin-top:1em;margin-bottom:1em;border:0;font-size:10.0pt;font-family:"Times New Roman"}.dangertitle{font-weight:bold}.danger{margin-top:1em;margin-bottom:1em;border:0;border-top:solid .5pt;border-bottom:solid .5pt}table .notice{margin-top:1em;margin-bottom:1em;border:0;font-size:10.0pt;font-family:"Times New Roman"}.noticetitle{font-weight:bold}.notice{margin-top:1em;margin-bottom:1em;border:0;border-top:solid .5pt;border-bottom:solid .5pt}table .warning{margin-top:1em;margin-bottom:1em;border:0;font-size:10.0pt;font-family:"Times New Roman"}.warningtitle{font-weight:bold}.warning{margin-top:1em;margin-bottom:1em;border:0;border-top:solid .5pt;border-bottom:solid .5pt}table .caution{margin-top:1em;margin-bottom:1em;border:0;font-size:10.0pt;font-family:"Times New Roman"}table caption{margin-top:8pt;text-align:left;font-weight:bold}.tablenoborder{margin-top:8pt}.cautiontitle{font-weight:bold}.caution{margin-top:1em;margin-bottom:1em;border:0;border-top:solid .5pt;border-bottom:solid .5pt}ul.simple{list-style-type:none}li ul{margin-top:.6em}li{margin-top:.6em;margin-bottom:.6em}.note li{margin-top:.2em;margin-bottom:.2em}.tip li{margin-top:.2em;margin-bottom:.2em}.danger li{margin-top:.2em;margin-bottom:.2em}.warning li{margin-top:.2em;margin-bottom:.2em}.notice li{margin-top:.2em;margin-bottom:.2em}.caution li{margin-top:.2em;margin-bottom:.2em}.attention li{margin-top:.2em;margin-bottom:.2em}table li{margin-top:.2em;margin-bottom:.2em}.firstcol{font-weight:bold}th{background-color:#cfcfcf}.bold{font-weight:bold}.boldItalic{font-weight:bold;font-style:italic}.italic{font-style:italic}.underlined{text-decoration:underline}.var{font-style:italic}.shortcut{text-decoration:underline}.dlterm{font-weight:bold}dd{margin-top:.5em;margin-bottom:.5em}.dltermexpand{font-weight:bold;margin-top:1em}*[compact="yes"]>li{margin-top:0}*[compact="no"]>li{margin-top:.53em}.liexpand{margin-top:1em;margin-bottom:1em}.sliexpand{margin-top:1em;margin-bottom:1em}.dlexpand{margin-top:1em;margin-bottom:1em}.ddexpand{margin-top:1em;margin-bottom:1em}.stepexpand{margin-top:1em;margin-bottom:1em}.substepexpand{margin-top:1em;margin-bottom:1em}table{margin-top:8pt;margin-bottom:10.0pt;width:100%}thead{font-size:10.0pt;font-family:"Book Antiqua";font-weight:bold}tbody{font-size:11.0pt}ol{margin-top:1em;margin-bottom:1em;margin-left:1.7em;-webkit-padding-start:0}ul{margin-top:1em;margin-bottom:1em;margin-left:1.2em;-webkit-padding-start:0}ol ul{list-style:disc}ul ul{list-style:square}ol ol{list-style-type:lower-alpha}table ol{margin-top:.4em;margin-bottom:.4em;list-style:decimal}table ul{margin-top:.4em;margin-bottom:.4em;list-style:disc}table ul ul{margin-top:.4em;margin-bottom:.4em;list-style:square}table ol ol{margin-top:.4em;margin-bottom:.4em;list-style:lower-alpha}table ol ul{margin-top:.4em;margin-bottom:.4em;list-style:disc}table ul ol{margin-top:.4em;margin-bottom:.4em;list-style:decimal}.substepthirdol{list-style-type:lower-roman}div.imageleft{text-align:left}div.imagecenter{text-align:center}div.imageright{text-align:right}div.imagejustify{text-align:justify}div.noblankline{text-align:center}div.noblankline img{margin-top:0}pre{font-size:10.0pt;border-width:2px;padding:2px;margin-top:5px;margin-bottom:5px;white-space:pre-wrap;white-space:-moz-pre-wrap;white-space:-pre-wrap;white-space:-o-pre-wrap;word-wrap:break-word}pre.screen{margin-top:2px;margin-bottom:2px;padding:1.5px 1.5px 0 1.5px;border:0;white-space:pre}pre.codeblock{margin-top:2px;margin-bottom:2px;padding:1.5px 1.5px 0 1.5px;border:0;white-space:pre}.dropdownAllButtonexpand{cursor:pointer;background-repeat:no-repeat;background-position:0 4px;padding-left:15px;background-image:url(icon-arrowrt.gif);text-decoration:underline;color:#007af4}.dropdownAllButtoncollapse{cursor:pointer;background-repeat:no-repeat;background-position:0 4px;padding-left:15px;background-image:url(icon-arrowdn.gif);text-decoration:underline;color:#007af4;text-decoration:underline;color:#007af4}.dropdowntitle{background-repeat:no-repeat;background-position:0 4px;padding-left:15px;cursor:pointer;text-decoration:underline;color:#007af4}.dropdownexpand .dropdowntitle{background-image:url(icon-arrowdn.gif);text-decoration:underline;color:#007af4;margin:0 0 8px 0}.dropdowncollapse .dropdowntitle{background-image:url(icon-arrowrt.gif);text-decoration:underline;color:#007af4;margin:0 0 8px 0}.dropdowncollapsetable .dropdowntitle{background-image:url(icon-arrowrt.gif);text-decoration:underline;color:#007af4;margin:0 0 8px 0}.prefacesectiontitle1{margin-top:10.0pt;margin-right:0;margin-bottom:8.0pt;margin-left:-1cm;text-indent:0;font-size:18.0pt;font-family:"Book Antiqua";font-weight:bold;overflow:auto}.termcolor{color:blue;cursor:pointer}#dhtmlgoodies_tooltip{background-color:#f0f0d2;border:1px solid #000;position:absolute;display:none;z-index:20000;padding:2px;font-size:.9em;-moz-border-radius:6px;font-family:"Trebuchet MS","Lucida Sans Unicode",Arial,sans-serif}#dhtmlgoodies_tooltipShadow{position:absolute;background-color:#555;display:none;z-index:10000;opacity:.7;filter:alpha(opacity=70);-khtml-opacity:.7;-moz-opacity:.7;-moz-border-radius:6px}.freeze{position:fixed;_position:absolute;_top:expression(eval(document.documentElement.scrollTop));left:10;top:0}.hrcopyright{color:#3f4e5d;margin-top:18pt;margin-left:-1cm}.hwcopyright{text-align:center;font-family:Arial;margin-left:-1cm} \ No newline at end of file diff --git a/docs/vbs/umn/public_sys-resources/commonrtl.css b/docs/vbs/umn/public_sys-resources/commonrtl.css new file mode 100644 index 000000000..947a9a033 --- /dev/null +++ b/docs/vbs/umn/public_sys-resources/commonrtl.css @@ -0,0 +1,2 @@ +.msgph{font-family:Courier New}.unresolved{background-color:#87ceeb}.noTemplate{background-color:#ff0}.base{background-color:#fff}/*! Add space for top level topics */.nested0,.p{margin-top:1em}/*! div with class=p is used for paragraphs that contain blocks, to keep the XHTML valid *//*! Default of italics to set apart figure captions */.figcap,.italic,.var{font-style:italic}.figdesc{font-style:normal}/*! Use @frame to create frames on figures */.figborder{padding-left:3px;padding-right:3px;margin-top:1em;border:2px solid Silver}.figsides{margin-top:1em;padding-left:3px;padding-right:3px;border-left:2px solid Silver;border-right:2px solid Silver}.figtop{border-top:2px solid Silver;margin-top:1em}.figbottom{border-bottom:2px solid Silver}.figtopbot{border-top:2px solid Silver;border-bottom:2px solid Silver;margin-top:1em}/*! Most link groups are created with
. Ensure they have space before and after. */.ullinks,ul.simple{list-style-type:none}.attention,.danger,.ddexpand,.dlexpand,.example,.fastpath,.important,.liexpand,.linklist,.note,.notice,.olchildlink,.relconcepts,.relinfo,.relref,.reltasks,.remember,.restriction,.section,.sliexpand,.stepexpand,.substepexpand,.tip,.ulchildlink,.warning{margin-top:1em;margin-bottom:1em}.linklistwithchild,.sublinklist{margin-top:1em;margin-right:1.5em;margin-bottom:1em}.breadcrumb{font-size:smaller;margin-bottom:1em}.prereq{margin-right:20px}/*! Set heading sizes, getting smaller for deeper nesting */.topictitle1{font-size:1.34em;margin-top:0;margin-bottom:.1em}.topictitle2,.topictitle3,.topictitle4,.topictitle5,.topictitle6,.sectiontitle{font-size:1.17em}.topictitle2{margin-top:1pc;margin-bottom:.45em}.topictitle3{margin-top:1pc;margin-bottom:.17em;font-weight:700}.topictitle4{margin-top:.83em;font-weight:700}.topictitle5{font-weight:700}.topictitle6{font-style:italic}.sectiontitle{margin-top:1em;margin-bottom:0;color:#000;font-weight:700}/*! All note formats have the same default presentation */.attentiontitle,.bold,.cautiontitle,.dangertitle,.dlterm,.fastpathtitle,.firstcol,.importanttitle,.notelisttitle,.notetitle,.noticetitle,.parmname,.remembertitle,.restrictiontitle,.tiptitle,.uicontrol,.warningtitle{font-weight:700}.caution{font-weight:700;margin-bottom:1em}/*! Simple lists do not get a bullet *//*! Used on the first column of a table, when rowheader="firstcol" is used *//*! Various basic phrase styles */.boldItalic{font-weight:700;font-style:italic}.shortcut,.underlined{text-decoration:underline}/*! 2008-10-27 keyword采用跟随上下文的样式 +*//*! Default of bold for definition list terms *//*! Use CSS to expand lists with @compact="no" */.dltermexpand{font-weight:700;margin-top:1em}[compact="yes"]>li{margin-top:0}[compact="no"]>li{margin-top:.53em}/*! Align images based on @align on topic/image */div.imageleft,.text-align-left{text-align:left}div.imagecenter,.text-align-center{text-align:center}div.imageright,.text-align-right{text-align:right}div.imagejustify,.text-align-justify{text-align:justify}.cellrowborder{border-right:0;border-top:0;border-left:1px solid;border-bottom:1px solid}.row-nocellborder{border-left:hidden;border-right:0;border-top:0;border-bottom:1px solid}.cell-norowborder{border-top:0;border-bottom:hidden;border-right:0;border-left:1px solid}.nocellnorowborder{border:0;border-left:hidden;border-bottom:hidden}pre.codeblock,pre.screen{padding:5px;border:outset;background-color:#ccc;margin-top:2px;margin-bottom:2px;white-space:pre} \ No newline at end of file diff --git a/docs/vbs/umn/public_sys-resources/danger_3.0-en-us.png b/docs/vbs/umn/public_sys-resources/danger_3.0-en-us.png new file mode 100644 index 000000000..47a9c7235 Binary files /dev/null and b/docs/vbs/umn/public_sys-resources/danger_3.0-en-us.png differ diff --git a/docs/vbs/umn/public_sys-resources/delta.gif b/docs/vbs/umn/public_sys-resources/delta.gif new file mode 100644 index 000000000..0d1b1f674 Binary files /dev/null and b/docs/vbs/umn/public_sys-resources/delta.gif differ diff --git a/docs/vbs/umn/public_sys-resources/deltaend.gif b/docs/vbs/umn/public_sys-resources/deltaend.gif new file mode 100644 index 000000000..cc7da0fc8 Binary files /dev/null and b/docs/vbs/umn/public_sys-resources/deltaend.gif differ diff --git a/docs/vbs/umn/public_sys-resources/icon-arrowdn.gif b/docs/vbs/umn/public_sys-resources/icon-arrowdn.gif new file mode 100644 index 000000000..84eec9be2 Binary files /dev/null and b/docs/vbs/umn/public_sys-resources/icon-arrowdn.gif differ diff --git a/docs/vbs/umn/public_sys-resources/icon-arrowrt.gif b/docs/vbs/umn/public_sys-resources/icon-arrowrt.gif new file mode 100644 index 000000000..39583d168 Binary files /dev/null and b/docs/vbs/umn/public_sys-resources/icon-arrowrt.gif differ diff --git a/docs/vbs/umn/public_sys-resources/icon-caution.gif b/docs/vbs/umn/public_sys-resources/icon-caution.gif new file mode 100644 index 000000000..079c79b26 Binary files /dev/null and b/docs/vbs/umn/public_sys-resources/icon-caution.gif differ diff --git a/docs/vbs/umn/public_sys-resources/icon-danger.gif b/docs/vbs/umn/public_sys-resources/icon-danger.gif new file mode 100644 index 000000000..079c79b26 Binary files /dev/null and b/docs/vbs/umn/public_sys-resources/icon-danger.gif differ diff --git a/docs/vbs/umn/public_sys-resources/icon-huawei.gif b/docs/vbs/umn/public_sys-resources/icon-huawei.gif new file mode 100644 index 000000000..a31d60f89 Binary files /dev/null and b/docs/vbs/umn/public_sys-resources/icon-huawei.gif differ diff --git a/docs/vbs/umn/public_sys-resources/icon-note.gif b/docs/vbs/umn/public_sys-resources/icon-note.gif new file mode 100644 index 000000000..31be2b039 Binary files /dev/null and b/docs/vbs/umn/public_sys-resources/icon-note.gif differ diff --git a/docs/vbs/umn/public_sys-resources/icon-notice.gif b/docs/vbs/umn/public_sys-resources/icon-notice.gif new file mode 100644 index 000000000..409070650 Binary files /dev/null and b/docs/vbs/umn/public_sys-resources/icon-notice.gif differ diff --git a/docs/vbs/umn/public_sys-resources/icon-tip.gif b/docs/vbs/umn/public_sys-resources/icon-tip.gif new file mode 100644 index 000000000..c47bae05c Binary files /dev/null and b/docs/vbs/umn/public_sys-resources/icon-tip.gif differ diff --git a/docs/vbs/umn/public_sys-resources/icon-warning.gif b/docs/vbs/umn/public_sys-resources/icon-warning.gif new file mode 100644 index 000000000..079c79b26 Binary files /dev/null and b/docs/vbs/umn/public_sys-resources/icon-warning.gif differ diff --git a/docs/vbs/umn/public_sys-resources/imageResize.js b/docs/vbs/umn/public_sys-resources/imageResize.js new file mode 100644 index 000000000..e4c520739 --- /dev/null +++ b/docs/vbs/umn/public_sys-resources/imageResize.js @@ -0,0 +1,4 @@ +/** IDP renames $ to $$$,jQueryHW2 */ +var $$$,jQueryHW2; +jQueryHW2 = $$$ = $; +function image_size(a){$$$(window).on('load',function(){$$$(a).each(function(){var e=$$$(this);var f=e.width();var d=e.height();var b=f;var c=d;e.click(function(){tb_show("",this.src,false)})})})}; \ No newline at end of file diff --git a/docs/vbs/umn/public_sys-resources/imageclose.gif b/docs/vbs/umn/public_sys-resources/imageclose.gif new file mode 100644 index 000000000..56818c26b Binary files /dev/null and b/docs/vbs/umn/public_sys-resources/imageclose.gif differ diff --git a/docs/vbs/umn/public_sys-resources/imageclosehover.gif b/docs/vbs/umn/public_sys-resources/imageclosehover.gif new file mode 100644 index 000000000..3bcf231f1 Binary files /dev/null and b/docs/vbs/umn/public_sys-resources/imageclosehover.gif differ diff --git a/docs/vbs/umn/public_sys-resources/imagemax.gif b/docs/vbs/umn/public_sys-resources/imagemax.gif new file mode 100644 index 000000000..49fe390b1 Binary files /dev/null and b/docs/vbs/umn/public_sys-resources/imagemax.gif differ diff --git a/docs/vbs/umn/public_sys-resources/imagemaxhover.gif b/docs/vbs/umn/public_sys-resources/imagemaxhover.gif new file mode 100644 index 000000000..387b0a981 Binary files /dev/null and b/docs/vbs/umn/public_sys-resources/imagemaxhover.gif differ diff --git a/docs/vbs/umn/public_sys-resources/jquery-migrate-1.2.1.min.js b/docs/vbs/umn/public_sys-resources/jquery-migrate-1.2.1.min.js new file mode 100644 index 000000000..fc18734e9 --- /dev/null +++ b/docs/vbs/umn/public_sys-resources/jquery-migrate-1.2.1.min.js @@ -0,0 +1,2 @@ +/*! jQuery Migrate v1.2.1 | (c) 2005, 2013 jQuery Foundation, Inc. and other contributors | jquery.org/license */ +jQueryHW2.migrateMute===void 0&&(jQueryHW2.migrateMute=!0),function(e,t,n){function r(n){var r=t.console;i[n]||(i[n]=!0,e.migrateWarnings.push(n),r&&r.warn&&!e.migrateMute&&(r.warn("JQMIGRATE: "+n),e.migrateTrace&&r.trace&&r.trace()))}function a(t,a,i,o){if(Object.defineProperty)try{return Object.defineProperty(t,a,{configurable:!0,enumerable:!0,get:function(){return r(o),i},set:function(e){r(o),i=e}}),n}catch(s){}e._definePropertyBroken=!0,t[a]=i}var i={};e.migrateWarnings=[],!e.migrateMute&&t.console&&t.console.log&&t.console.log("JQMIGRATE: Logging is active"),e.migrateTrace===n&&(e.migrateTrace=!0),e.migrateReset=function(){i={},e.migrateWarnings.length=0},"BackCompat"===document.compatMode&&r("jQueryHW2 is not compatible with Quirks Mode");var o=e("",{size:1}).attr("size")&&e.attrFn,s=e.attr,u=e.attrHooks.value&&e.attrHooks.value.get||function(){return null},c=e.attrHooks.value&&e.attrHooks.value.set||function(){return n},l=/^(?:input|button)$/i,d=/^[238]$/,p=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,f=/^(?:checked|selected)$/i;a(e,"attrFn",o||{},"jQueryHW2.attrFn is deprecated"),e.attr=function(t,a,i,u){var c=a.toLowerCase(),g=t&&t.nodeType;return u&&(4>s.length&&r("jQueryHW2.fn.attr( props, pass ) is deprecated"),t&&!d.test(g)&&(o?a in o:e.isFunction(e.fn[a])))?e(t)[a](i):("type"===a&&i!==n&&l.test(t.nodeName)&&t.parentNode&&r("Can't change the 'type' of an input or button in IE 6/7/8"),!e.attrHooks[c]&&p.test(c)&&(e.attrHooks[c]={get:function(t,r){var a,i=e.prop(t,r);return i===!0||"boolean"!=typeof i&&(a=t.getAttributeNode(r))&&a.nodeValue!==!1?r.toLowerCase():n},set:function(t,n,r){var a;return n===!1?e.removeAttr(t,r):(a=e.propFix[r]||r,a in t&&(t[a]=!0),t.setAttribute(r,r.toLowerCase())),r}},f.test(c)&&r("jQueryHW2.fn.attr('"+c+"') may use property instead of attribute")),s.call(e,t,a,i))},e.attrHooks.value={get:function(e,t){var n=(e.nodeName||"").toLowerCase();return"button"===n?u.apply(this,arguments):("input"!==n&&"option"!==n&&r("jQueryHW2.fn.attr('value') no longer gets properties"),t in e?e.value:null)},set:function(e,t){var a=(e.nodeName||"").toLowerCase();return"button"===a?c.apply(this,arguments):("input"!==a&&"option"!==a&&r("jQueryHW2.fn.attr('value', val) no longer sets properties"),e.value=t,n)}};var g,h,v=e.fn.init,m=e.parseJSON,y=/^([^<]*)(<[\w\W]+>)([^>]*)$/;e.fn.init=function(t,n,a){var i;return t&&"string"==typeof t&&!e.isPlainObject(n)&&(i=y.exec(e.trim(t)))&&i[0]&&("<"!==t.charAt(0)&&r("$(html) HTML strings must start with '<' character"),i[3]&&r("$(html) HTML text after last tag is ignored"),"#"===i[0].charAt(0)&&(r("HTML string cannot start with a '#' character"),e.error("JQMIGRATE: Invalid selector string (XSS)")),n&&n.context&&(n=n.context),e.parseHTML)?v.call(this,e.parseHTML(i[2],n,!0),n,a):v.apply(this,arguments)},e.fn.init.prototype=e.fn,e.parseJSON=function(e){return e||null===e?m.apply(this,arguments):(r("jQueryHW2.parseJSON requires a valid JSON string"),null)},e.uaMatch=function(e){e=e.toLowerCase();var t=/(chrome)[ \/]([\w.]+)/.exec(e)||/(webkit)[ \/]([\w.]+)/.exec(e)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(e)||/(msie) ([\w.]+)/.exec(e)||0>e.indexOf("compatible")&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(e)||[];return{browser:t[1]||"",version:t[2]||"0"}},e.browser||(g=e.uaMatch(navigator.userAgent),h={},g.browser&&(h[g.browser]=!0,h.version=g.version),h.chrome?h.webkit=!0:h.webkit&&(h.safari=!0),e.browser=h),a(e,"browser",e.browser,"jQueryHW2.browser is deprecated"),e.sub=function(){function t(e,n){return new t.fn.init(e,n)}e.extend(!0,t,this),t.superclass=this,t.fn=t.prototype=this(),t.fn.constructor=t,t.sub=this.sub,t.fn.init=function(r,a){return a&&a instanceof e&&!(a instanceof t)&&(a=t(a)),e.fn.init.call(this,r,a,n)},t.fn.init.prototype=t.fn;var n=t(document);return r("jQueryHW2.sub() is deprecated"),t},e.ajaxSetup({converters:{"text json":e.parseJSON}});var b=e.fn.data;e.fn.data=function(t){var a,i,o=this[0];return!o||"events"!==t||1!==arguments.length||(a=e.data(o,t),i=e._data(o,t),a!==n&&a!==i||i===n)?b.apply(this,arguments):(r("Use of jQueryHW2.fn.data('events') is deprecated"),i)};var j=/\/(java|ecma)script/i,w=e.fn.andSelf||e.fn.addBack;e.fn.andSelf=function(){return r("jQueryHW2.fn.andSelf() replaced by jQueryHW2.fn.addBack()"),w.apply(this,arguments)},e.clean||(e.clean=function(t,a,i,o){a=a||document,a=!a.nodeType&&a[0]||a,a=a.ownerDocument||a,r("jQueryHW2.clean() is deprecated");var s,u,c,l,d=[];if(e.merge(d,e.buildFragment(t,a).childNodes),i)for(c=function(e){return!e.type||j.test(e.type)?o?o.push(e.parentNode?e.parentNode.removeChild(e):e):i.appendChild(e):n},s=0;null!=(u=d[s]);s++)e.nodeName(u,"script")&&c(u)||(i.appendChild(u),u.getElementsByTagName!==n&&(l=e.grep(e.merge([],u.getElementsByTagName("script")),c),d.splice.apply(d,[s+1,0].concat(l)),s+=l.length));return d});var Q=e.event.add,x=e.event.remove,k=e.event.trigger,N=e.fn.toggle,T=e.fn.live,M=e.fn.die,S="ajaxStart|ajaxStop|ajaxSend|ajaxComplete|ajaxError|ajaxSuccess",C=RegExp("\\b(?:"+S+")\\b"),H=/(?:^|\s)hover(\.\S+|)\b/,A=function(t){return"string"!=typeof t||e.event.special.hover?t:(H.test(t)&&r("'hover' pseudo-event is deprecated, use 'mouseenter mouseleave'"),t&&t.replace(H,"mouseenter$1 mouseleave$1"))};e.event.props&&"attrChange"!==e.event.props[0]&&e.event.props.unshift("attrChange","attrName","relatedNode","srcElement"),e.event.dispatch&&a(e.event,"handle",e.event.dispatch,"jQueryHW2.event.handle is undocumented and deprecated"),e.event.add=function(e,t,n,a,i){e!==document&&C.test(t)&&r("AJAX events should be attached to document: "+t),Q.call(this,e,A(t||""),n,a,i)},e.event.remove=function(e,t,n,r,a){x.call(this,e,A(t)||"",n,r,a)},e.fn.error=function(){var e=Array.prototype.slice.call(arguments,0);return r("jQueryHW2.fn.error() is deprecated"),e.splice(0,0,"error"),arguments.length?this.bind.apply(this,e):(this.triggerHandler.apply(this,e),this)},e.fn.toggle=function(t,n){if(!e.isFunction(t)||!e.isFunction(n))return N.apply(this,arguments);r("jQueryHW2.fn.toggle(handler, handler...) is deprecated");var a=arguments,i=t.guid||e.guid++,o=0,s=function(n){var r=(e._data(this,"lastToggle"+t.guid)||0)%o;return e._data(this,"lastToggle"+t.guid,r+1),n.preventDefault(),a[r].apply(this,arguments)||!1};for(s.guid=i;a.length>o;)a[o++].guid=i;return this.click(s)},e.fn.live=function(t,n,a){return r("jQueryHW2.fn.live() is deprecated"),T?T.apply(this,arguments):(e(this.context).on(t,this.selector,n,a),this)},e.fn.die=function(t,n){return r("jQueryHW2.fn.die() is deprecated"),M?M.apply(this,arguments):(e(this.context).off(t,this.selector||"**",n),this)},e.event.trigger=function(e,t,n,a){return n||C.test(e)||r("Global events are undocumented and deprecated"),k.call(this,e,t,n||document,a)},e.each(S.split("|"),function(t,n){e.event.special[n]={setup:function(){var t=this;return t!==document&&(e.event.add(document,n+"."+e.guid,function(){e.event.trigger(n,null,t,!0)}),e._data(this,n,e.guid++)),!1},teardown:function(){return this!==document&&e.event.remove(document,n+"."+e._data(this,n)),!1}}})}(jQueryHW2,window); \ No newline at end of file diff --git a/docs/vbs/umn/public_sys-resources/jquery-ui.min.js b/docs/vbs/umn/public_sys-resources/jquery-ui.min.js new file mode 100644 index 000000000..ba0b043dc --- /dev/null +++ b/docs/vbs/umn/public_sys-resources/jquery-ui.min.js @@ -0,0 +1,12 @@ +/*! jQuery UI - v1.12.1 - 2016-10-02 +* Includes: widget.js, position.js, data.js, disable-selection.js, focusable.js, form-reset-mixin.js, jquery-1-7.js, keycode.js, labels.js, scroll-parent.js, tabbable.js, unique-id.js, widgets/draggable.js, widgets/droppable.js, widgets/resizable.js, widgets/selectable.js, widgets/sortable.js, widgets/accordion.js, widgets/autocomplete.js, widgets/button.js, widgets/checkboxradio.js, widgets/controlgroup.js, widgets/datepicker.js, widgets/dialog.js, widgets/menu.js, widgets/mouse.js, widgets/progressbar.js, widgets/selectmenu.js, widgets/slider.js, widgets/spinner.js, widgets/tabs.js, widgets/tooltip.js, effect.js, effects/effect-blind.js, effects/effect-bounce.js, effects/effect-clip.js, effects/effect-drop.js, effects/effect-explode.js, effects/effect-fade.js, effects/effect-fold.js, effects/effect-highlight.js, effects/effect-puff.js, effects/effect-pulsate.js, effects/effect-scale.js, effects/effect-shake.js, effects/effect-size.js, effects/effect-slide.js, effects/effect-transfer.js +* Copyright jQueryHW2 Foundation and other contributors; Licensed MIT */ + +(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):t(jQueryHW2)})(function(t){function e(t){for(var e=t.css("visibility");"inherit"===e;)t=t.parent(),e=t.css("visibility");return"hidden"!==e}function i(t){for(var e,i;t.length&&t[0]!==document;){if(e=t.css("position"),("absolute"===e||"relative"===e||"fixed"===e)&&(i=parseInt(t.css("zIndex"),10),!isNaN(i)&&0!==i))return i;t=t.parent()}return 0}function s(){this._curInst=null,this._keyEvent=!1,this._disabledInputs=[],this._datepickerShowing=!1,this._inDialog=!1,this._mainDivId="ui-datepicker-div",this._inlineClass="ui-datepicker-inline",this._appendClass="ui-datepicker-append",this._triggerClass="ui-datepicker-trigger",this._dialogClass="ui-datepicker-dialog",this._disableClass="ui-datepicker-disabled",this._unselectableClass="ui-datepicker-unselectable",this._currentClass="ui-datepicker-current-day",this._dayOverClass="ui-datepicker-days-cell-over",this.regional=[],this.regional[""]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"mm/dd/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},this._defaults={showOn:"focus",showAnim:"fadeIn",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:!1,hideIfNoPrevNext:!1,navigationAsDateFormat:!1,gotoCurrent:!1,changeMonth:!1,changeYear:!1,yearRange:"c-10:c+10",showOtherMonths:!1,selectOtherMonths:!1,showWeek:!1,calculateWeek:this.iso8601Week,shortYearCutoff:"+10",minDate:null,maxDate:null,duration:"fast",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:"",altFormat:"",constrainInput:!0,showButtonPanel:!1,autoSize:!1,disabled:!1},t.extend(this._defaults,this.regional[""]),this.regional.en=t.extend(!0,{},this.regional[""]),this.regional["en-US"]=t.extend(!0,{},this.regional.en),this.dpDiv=n(t("
"))}function n(e){var i="button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a";return e.on("mouseout",i,function(){t(this).removeClass("ui-state-hover"),-1!==this.className.indexOf("ui-datepicker-prev")&&t(this).removeClass("ui-datepicker-prev-hover"),-1!==this.className.indexOf("ui-datepicker-next")&&t(this).removeClass("ui-datepicker-next-hover")}).on("mouseover",i,o)}function o(){t.datepicker._isDisabledDatepicker(p.inline?p.dpDiv.parent()[0]:p.input[0])||(t(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"),t(this).addClass("ui-state-hover"),-1!==this.className.indexOf("ui-datepicker-prev")&&t(this).addClass("ui-datepicker-prev-hover"),-1!==this.className.indexOf("ui-datepicker-next")&&t(this).addClass("ui-datepicker-next-hover"))}function a(e,i){t.extend(e,i);for(var s in i)null==i[s]&&(e[s]=i[s]);return e}function r(t){return function(){var e=this.element.val();t.apply(this,arguments),this._refresh(),e!==this.element.val()&&this._trigger("change")}}t.ui=t.ui||{},t.ui.version="1.12.1";var h=0,l=Array.prototype.slice;t.cleanData=function(e){return function(i){var s,n,o;for(o=0;null!=(n=i[o]);o++)try{s=t._data(n,"events"),s&&s.remove&&t(n).triggerHandler("remove")}catch(a){}e(i)}}(t.cleanData),t.widget=function(e,i,s){var n,o,a,r={},h=e.split(".")[0];e=e.split(".")[1];var l=h+"-"+e;return s||(s=i,i=t.Widget),t.isArray(s)&&(s=t.extend.apply(null,[{}].concat(s))),t.expr[":"][l.toLowerCase()]=function(e){return!!t.data(e,l)},t[h]=t[h]||{},n=t[h][e],o=t[h][e]=function(t,e){return this._createWidget?(arguments.length&&this._createWidget(t,e),void 0):new o(t,e)},t.extend(o,n,{version:s.version,_proto:t.extend({},s),_childConstructors:[]}),a=new i,a.options=t.widget.extend({},a.options),t.each(s,function(e,s){return t.isFunction(s)?(r[e]=function(){function t(){return i.prototype[e].apply(this,arguments)}function n(t){return i.prototype[e].apply(this,t)}return function(){var e,i=this._super,o=this._superApply;return this._super=t,this._superApply=n,e=s.apply(this,arguments),this._super=i,this._superApply=o,e}}(),void 0):(r[e]=s,void 0)}),o.prototype=t.widget.extend(a,{widgetEventPrefix:n?a.widgetEventPrefix||e:e},r,{constructor:o,namespace:h,widgetName:e,widgetFullName:l}),n?(t.each(n._childConstructors,function(e,i){var s=i.prototype;t.widget(s.namespace+"."+s.widgetName,o,i._proto)}),delete n._childConstructors):i._childConstructors.push(o),t.widget.bridge(e,o),o},t.widget.extend=function(e){for(var i,s,n=l.call(arguments,1),o=0,a=n.length;a>o;o++)for(i in n[o])s=n[o][i],n[o].hasOwnProperty(i)&&void 0!==s&&(e[i]=t.isPlainObject(s)?t.isPlainObject(e[i])?t.widget.extend({},e[i],s):t.widget.extend({},s):s);return e},t.widget.bridge=function(e,i){var s=i.prototype.widgetFullName||e;t.fn[e]=function(n){var o="string"==typeof n,a=l.call(arguments,1),r=this;return o?this.length||"instance"!==n?this.each(function(){var i,o=t.data(this,s);return"instance"===n?(r=o,!1):o?t.isFunction(o[n])&&"_"!==n.charAt(0)?(i=o[n].apply(o,a),i!==o&&void 0!==i?(r=i&&i.jquery?r.pushStack(i.get()):i,!1):void 0):t.error("no such method '"+n+"' for "+e+" widget instance"):t.error("cannot call methods on "+e+" prior to initialization; "+"attempted to call method '"+n+"'")}):r=void 0:(a.length&&(n=t.widget.extend.apply(null,[n].concat(a))),this.each(function(){var e=t.data(this,s);e?(e.option(n||{}),e._init&&e._init()):t.data(this,s,new i(n,this))})),r}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"
",options:{classes:{},disabled:!1,create:null},_createWidget:function(e,i){i=t(i||this.defaultElement||this)[0],this.element=t(i),this.uuid=h++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=t(),this.hoverable=t(),this.focusable=t(),this.classesElementLookup={},i!==this&&(t.data(i,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===i&&this.destroy()}}),this.document=t(i.style?i.ownerDocument:i.document||i),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this.options=t.widget.extend({},this.options,this._getCreateOptions(),e),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){var e=this;this._destroy(),t.each(this.classesElementLookup,function(t,i){e._removeClass(i,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:t.noop,widget:function(){return this.element},option:function(e,i){var s,n,o,a=e;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof e)if(a={},s=e.split("."),e=s.shift(),s.length){for(n=a[e]=t.widget.extend({},this.options[e]),o=0;s.length-1>o;o++)n[s[o]]=n[s[o]]||{},n=n[s[o]];if(e=s.pop(),1===arguments.length)return void 0===n[e]?null:n[e];n[e]=i}else{if(1===arguments.length)return void 0===this.options[e]?null:this.options[e];a[e]=i}return this._setOptions(a),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return"classes"===t&&this._setOptionClasses(e),this.options[t]=e,"disabled"===t&&this._setOptionDisabled(e),this},_setOptionClasses:function(e){var i,s,n;for(i in e)n=this.classesElementLookup[i],e[i]!==this.options.classes[i]&&n&&n.length&&(s=t(n.get()),this._removeClass(n,i),s.addClass(this._classes({element:s,keys:i,classes:e,add:!0})))},_setOptionDisabled:function(t){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!t),t&&(this._removeClass(this.hoverable,null,"ui-state-hover"),this._removeClass(this.focusable,null,"ui-state-focus"))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(e){function i(i,o){var a,r;for(r=0;i.length>r;r++)a=n.classesElementLookup[i[r]]||t(),a=e.add?t(t.unique(a.get().concat(e.element.get()))):t(a.not(e.element).get()),n.classesElementLookup[i[r]]=a,s.push(i[r]),o&&e.classes[i[r]]&&s.push(e.classes[i[r]])}var s=[],n=this;return e=t.extend({element:this.element,classes:this.options.classes||{}},e),this._on(e.element,{remove:"_untrackClassesElement"}),e.keys&&i(e.keys.match(/\S+/g)||[],!0),e.extra&&i(e.extra.match(/\S+/g)||[]),s.join(" ")},_untrackClassesElement:function(e){var i=this;t.each(i.classesElementLookup,function(s,n){-1!==t.inArray(e.target,n)&&(i.classesElementLookup[s]=t(n.not(e.target).get()))})},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){s="boolean"==typeof s?s:i;var n="string"==typeof t||null===t,o={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s};return o.element.toggleClass(this._classes(o),s),this},_on:function(e,i,s){var n,o=this;"boolean"!=typeof e&&(s=i,i=e,e=!1),s?(i=n=t(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),t.each(s,function(s,a){function r(){return e||o.options.disabled!==!0&&!t(this).hasClass("ui-state-disabled")?("string"==typeof a?o[a]:a).apply(o,arguments):void 0}"string"!=typeof a&&(r.guid=a.guid=a.guid||r.guid||t.guid++);var h=s.match(/^([\w:-]*)\s*(.*)$/),l=h[1]+o.eventNamespace,c=h[2];c?n.on(l,c,r):i.on(l,r)})},_off:function(e,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.off(i).off(i),this.bindings=t(this.bindings.not(e).get()),this.focusable=t(this.focusable.not(e).get()),this.hoverable=t(this.hoverable.not(e).get())},_delay:function(t,e){function i(){return("string"==typeof t?s[t]:t).apply(s,arguments)}var s=this;return setTimeout(i,e||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){this._addClass(t(e.currentTarget),null,"ui-state-hover")},mouseleave:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-hover")}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){this._addClass(t(e.currentTarget),null,"ui-state-focus")},focusout:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-focus")}})},_trigger:function(e,i,s){var n,o,a=this.options[e];if(s=s||{},i=t.Event(i),i.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),i.target=this.element[0],o=i.originalEvent)for(n in o)n in i||(i[n]=o[n]);return this.element.trigger(i,s),!(t.isFunction(a)&&a.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},t.each({show:"fadeIn",hide:"fadeOut"},function(e,i){t.Widget.prototype["_"+e]=function(s,n,o){"string"==typeof n&&(n={effect:n});var a,r=n?n===!0||"number"==typeof n?i:n.effect||i:e;n=n||{},"number"==typeof n&&(n={duration:n}),a=!t.isEmptyObject(n),n.complete=o,n.delay&&s.delay(n.delay),a&&t.effects&&t.effects.effect[r]?s[e](n):r!==e&&s[r]?s[r](n.duration,n.easing,o):s.queue(function(i){t(this)[e](),o&&o.call(s[0]),i()})}}),t.widget,function(){function e(t,e,i){return[parseFloat(t[0])*(u.test(t[0])?e/100:1),parseFloat(t[1])*(u.test(t[1])?i/100:1)]}function i(e,i){return parseInt(t.css(e,i),10)||0}function s(e){var i=e[0];return 9===i.nodeType?{width:e.width(),height:e.height(),offset:{top:0,left:0}}:t.isWindow(i)?{width:e.width(),height:e.height(),offset:{top:e.scrollTop(),left:e.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:e.outerWidth(),height:e.outerHeight(),offset:e.offset()}}var n,o=Math.max,a=Math.abs,r=/left|center|right/,h=/top|center|bottom/,l=/[\+\-]\d+(\.[\d]+)?%?/,c=/^\w+/,u=/%$/,d=t.fn.position;t.position={scrollbarWidth:function(){if(void 0!==n)return n;var e,i,s=t("
"),o=s.children()[0];return t("body").append(s),e=o.offsetWidth,s.css("overflow","scroll"),i=o.offsetWidth,e===i&&(i=s[0].clientWidth),s.remove(),n=e-i},getScrollInfo:function(e){var i=e.isWindow||e.isDocument?"":e.element.css("overflow-x"),s=e.isWindow||e.isDocument?"":e.element.css("overflow-y"),n="scroll"===i||"auto"===i&&e.widthi?"left":e>0?"right":"center",vertical:0>r?"top":s>0?"bottom":"middle"};l>p&&p>a(e+i)&&(u.horizontal="center"),c>f&&f>a(s+r)&&(u.vertical="middle"),u.important=o(a(e),a(i))>o(a(s),a(r))?"horizontal":"vertical",n.using.call(this,t,u)}),h.offset(t.extend(D,{using:r}))})},t.ui.position={fit:{left:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=t.left-e.collisionPosition.marginLeft,h=n-r,l=r+e.collisionWidth-a-n;e.collisionWidth>a?h>0&&0>=l?(i=t.left+h+e.collisionWidth-a-n,t.left+=h-i):t.left=l>0&&0>=h?n:h>l?n+a-e.collisionWidth:n:h>0?t.left+=h:l>0?t.left-=l:t.left=o(t.left-r,t.left)},top:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollTop:s.offset.top,a=e.within.height,r=t.top-e.collisionPosition.marginTop,h=n-r,l=r+e.collisionHeight-a-n;e.collisionHeight>a?h>0&&0>=l?(i=t.top+h+e.collisionHeight-a-n,t.top+=h-i):t.top=l>0&&0>=h?n:h>l?n+a-e.collisionHeight:n:h>0?t.top+=h:l>0?t.top-=l:t.top=o(t.top-r,t.top)}},flip:{left:function(t,e){var i,s,n=e.within,o=n.offset.left+n.scrollLeft,r=n.width,h=n.isWindow?n.scrollLeft:n.offset.left,l=t.left-e.collisionPosition.marginLeft,c=l-h,u=l+e.collisionWidth-r-h,d="left"===e.my[0]?-e.elemWidth:"right"===e.my[0]?e.elemWidth:0,p="left"===e.at[0]?e.targetWidth:"right"===e.at[0]?-e.targetWidth:0,f=-2*e.offset[0];0>c?(i=t.left+d+p+f+e.collisionWidth-r-o,(0>i||a(c)>i)&&(t.left+=d+p+f)):u>0&&(s=t.left-e.collisionPosition.marginLeft+d+p+f-h,(s>0||u>a(s))&&(t.left+=d+p+f))},top:function(t,e){var i,s,n=e.within,o=n.offset.top+n.scrollTop,r=n.height,h=n.isWindow?n.scrollTop:n.offset.top,l=t.top-e.collisionPosition.marginTop,c=l-h,u=l+e.collisionHeight-r-h,d="top"===e.my[1],p=d?-e.elemHeight:"bottom"===e.my[1]?e.elemHeight:0,f="top"===e.at[1]?e.targetHeight:"bottom"===e.at[1]?-e.targetHeight:0,g=-2*e.offset[1];0>c?(s=t.top+p+f+g+e.collisionHeight-r-o,(0>s||a(c)>s)&&(t.top+=p+f+g)):u>0&&(i=t.top-e.collisionPosition.marginTop+p+f+g-h,(i>0||u>a(i))&&(t.top+=p+f+g))}},flipfit:{left:function(){t.ui.position.flip.left.apply(this,arguments),t.ui.position.fit.left.apply(this,arguments)},top:function(){t.ui.position.flip.top.apply(this,arguments),t.ui.position.fit.top.apply(this,arguments)}}}}(),t.ui.position,t.extend(t.expr[":"],{data:t.expr.createPseudo?t.expr.createPseudo(function(e){return function(i){return!!t.data(i,e)}}):function(e,i,s){return!!t.data(e,s[3])}}),t.fn.extend({disableSelection:function(){var t="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.on(t+".ui-disableSelection",function(t){t.preventDefault()})}}(),enableSelection:function(){return this.off(".ui-disableSelection")}}),t.ui.focusable=function(i,s){var n,o,a,r,h,l=i.nodeName.toLowerCase();return"area"===l?(n=i.parentNode,o=n.name,i.href&&o&&"map"===n.nodeName.toLowerCase()?(a=t("img[usemap='#"+o+"']"),a.length>0&&a.is(":visible")):!1):(/^(input|select|textarea|button|object)$/.test(l)?(r=!i.disabled,r&&(h=t(i).closest("fieldset")[0],h&&(r=!h.disabled))):r="a"===l?i.href||s:s,r&&t(i).is(":visible")&&e(t(i)))},t.extend(t.expr[":"],{focusable:function(e){return t.ui.focusable(e,null!=t.attr(e,"tabindex"))}}),t.ui.focusable,t.fn.form=function(){return"string"==typeof this[0].form?this.closest("form"):t(this[0].form)},t.ui.formResetMixin={_formResetHandler:function(){var e=t(this);setTimeout(function(){var i=e.data("ui-form-reset-instances");t.each(i,function(){this.refresh()})})},_bindFormResetHandler:function(){if(this.form=this.element.form(),this.form.length){var t=this.form.data("ui-form-reset-instances")||[];t.length||this.form.on("reset.ui-form-reset",this._formResetHandler),t.push(this),this.form.data("ui-form-reset-instances",t)}},_unbindFormResetHandler:function(){if(this.form.length){var e=this.form.data("ui-form-reset-instances");e.splice(t.inArray(this,e),1),e.length?this.form.data("ui-form-reset-instances",e):this.form.removeData("ui-form-reset-instances").off("reset.ui-form-reset")}}},"1.7"===t.fn.jquery.substring(0,3)&&(t.each(["Width","Height"],function(e,i){function s(e,i,s,o){return t.each(n,function(){i-=parseFloat(t.css(e,"padding"+this))||0,s&&(i-=parseFloat(t.css(e,"border"+this+"Width"))||0),o&&(i-=parseFloat(t.css(e,"margin"+this))||0)}),i}var n="Width"===i?["Left","Right"]:["Top","Bottom"],o=i.toLowerCase(),a={innerWidth:t.fn.innerWidth,innerHeight:t.fn.innerHeight,outerWidth:t.fn.outerWidth,outerHeight:t.fn.outerHeight};t.fn["inner"+i]=function(e){return void 0===e?a["inner"+i].call(this):this.each(function(){t(this).css(o,s(this,e)+"px")})},t.fn["outer"+i]=function(e,n){return"number"!=typeof e?a["outer"+i].call(this,e):this.each(function(){t(this).css(o,s(this,e,!0,n)+"px")})}}),t.fn.addBack=function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}),t.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38},t.ui.escapeSelector=function(){var t=/([!"#$%&'()*+,./:;<=>?@[\]^`{|}~])/g;return function(e){return e.replace(t,"\\$1")}}(),t.fn.labels=function(){var e,i,s,n,o;return this[0].labels&&this[0].labels.length?this.pushStack(this[0].labels):(n=this.eq(0).parents("label"),s=this.attr("id"),s&&(e=this.eq(0).parents().last(),o=e.add(e.length?e.siblings():this.siblings()),i="label[for='"+t.ui.escapeSelector(s)+"']",n=n.add(o.find(i).addBack(i))),this.pushStack(n))},t.fn.scrollParent=function(e){var i=this.css("position"),s="absolute"===i,n=e?/(auto|scroll|hidden)/:/(auto|scroll)/,o=this.parents().filter(function(){var e=t(this);return s&&"static"===e.css("position")?!1:n.test(e.css("overflow")+e.css("overflow-y")+e.css("overflow-x"))}).eq(0);return"fixed"!==i&&o.length?o:t(this[0].ownerDocument||document)},t.extend(t.expr[":"],{tabbable:function(e){var i=t.attr(e,"tabindex"),s=null!=i;return(!s||i>=0)&&t.ui.focusable(e,s)}}),t.fn.extend({uniqueId:function(){var t=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++t)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&t(this).removeAttr("id")})}}),t.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase());var c=!1;t(document).on("mouseup",function(){c=!1}),t.widget("ui.mouse",{version:"1.12.1",options:{cancel:"input, textarea, button, select, option",distance:1,delay:0},_mouseInit:function(){var e=this;this.element.on("mousedown."+this.widgetName,function(t){return e._mouseDown(t)}).on("click."+this.widgetName,function(i){return!0===t.data(i.target,e.widgetName+".preventClickEvent")?(t.removeData(i.target,e.widgetName+".preventClickEvent"),i.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.off("."+this.widgetName),this._mouseMoveDelegate&&this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(e){if(!c){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(e),this._mouseDownEvent=e;var i=this,s=1===e.which,n="string"==typeof this.options.cancel&&e.target.nodeName?t(e.target).closest(this.options.cancel).length:!1;return s&&!n&&this._mouseCapture(e)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){i.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(e)!==!1,!this._mouseStarted)?(e.preventDefault(),!0):(!0===t.data(e.target,this.widgetName+".preventClickEvent")&&t.removeData(e.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(t){return i._mouseMove(t)},this._mouseUpDelegate=function(t){return i._mouseUp(t)},this.document.on("mousemove."+this.widgetName,this._mouseMoveDelegate).on("mouseup."+this.widgetName,this._mouseUpDelegate),e.preventDefault(),c=!0,!0)):!0}},_mouseMove:function(e){if(this._mouseMoved){if(t.ui.ie&&(!document.documentMode||9>document.documentMode)&&!e.button)return this._mouseUp(e);if(!e.which)if(e.originalEvent.altKey||e.originalEvent.ctrlKey||e.originalEvent.metaKey||e.originalEvent.shiftKey)this.ignoreMissingWhich=!0;else if(!this.ignoreMissingWhich)return this._mouseUp(e)}return(e.which||e.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(e),e.preventDefault()):(this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,e)!==!1,this._mouseStarted?this._mouseDrag(e):this._mouseUp(e)),!this._mouseStarted)},_mouseUp:function(e){this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,e.target===this._mouseDownEvent.target&&t.data(e.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(e)),this._mouseDelayTimer&&(clearTimeout(this._mouseDelayTimer),delete this._mouseDelayTimer),this.ignoreMissingWhich=!1,c=!1,e.preventDefault()},_mouseDistanceMet:function(t){return Math.max(Math.abs(this._mouseDownEvent.pageX-t.pageX),Math.abs(this._mouseDownEvent.pageY-t.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),t.ui.plugin={add:function(e,i,s){var n,o=t.ui[e].prototype;for(n in s)o.plugins[n]=o.plugins[n]||[],o.plugins[n].push([i,s[n]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;o.length>n;n++)t.options[o[n][0]]&&o[n][1].apply(t.element,i)}},t.ui.safeActiveElement=function(t){var e;try{e=t.activeElement}catch(i){e=t.body}return e||(e=t.body),e.nodeName||(e=t.body),e},t.ui.safeBlur=function(e){e&&"body"!==e.nodeName.toLowerCase()&&t(e).trigger("blur")},t.widget("ui.draggable",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"drag",options:{addClasses:!0,appendTo:"parent",axis:!1,connectToSortable:!1,containment:!1,cursor:"auto",cursorAt:!1,grid:!1,handle:!1,helper:"original",iframeFix:!1,opacity:!1,refreshPositions:!1,revert:!1,revertDuration:500,scope:"default",scroll:!0,scrollSensitivity:20,scrollSpeed:20,snap:!1,snapMode:"both",snapTolerance:20,stack:!1,zIndex:!1,drag:null,start:null,stop:null},_create:function(){"original"===this.options.helper&&this._setPositionRelative(),this.options.addClasses&&this._addClass("ui-draggable"),this._setHandleClassName(),this._mouseInit()},_setOption:function(t,e){this._super(t,e),"handle"===t&&(this._removeHandleClassName(),this._setHandleClassName())},_destroy:function(){return(this.helper||this.element).is(".ui-draggable-dragging")?(this.destroyOnClear=!0,void 0):(this._removeHandleClassName(),this._mouseDestroy(),void 0)},_mouseCapture:function(e){var i=this.options;return this.helper||i.disabled||t(e.target).closest(".ui-resizable-handle").length>0?!1:(this.handle=this._getHandle(e),this.handle?(this._blurActiveElement(e),this._blockFrames(i.iframeFix===!0?"iframe":i.iframeFix),!0):!1)},_blockFrames:function(e){this.iframeBlocks=this.document.find(e).map(function(){var e=t(this);return t("
").css("position","absolute").appendTo(e.parent()).outerWidth(e.outerWidth()).outerHeight(e.outerHeight()).offset(e.offset())[0]})},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_blurActiveElement:function(e){var i=t.ui.safeActiveElement(this.document[0]),s=t(e.target);s.closest(i).length||t.ui.safeBlur(i)},_mouseStart:function(e){var i=this.options;return this.helper=this._createHelper(e),this._addClass(this.helper,"ui-draggable-dragging"),this._cacheHelperProportions(),t.ui.ddmanager&&(t.ui.ddmanager.current=this),this._cacheMargins(),this.cssPosition=this.helper.css("position"),this.scrollParent=this.helper.scrollParent(!0),this.offsetParent=this.helper.offsetParent(),this.hasFixedAncestor=this.helper.parents().filter(function(){return"fixed"===t(this).css("position")}).length>0,this.positionAbs=this.element.offset(),this._refreshOffsets(e),this.originalPosition=this.position=this._generatePosition(e,!1),this.originalPageX=e.pageX,this.originalPageY=e.pageY,i.cursorAt&&this._adjustOffsetFromHelper(i.cursorAt),this._setContainment(),this._trigger("start",e)===!1?(this._clear(),!1):(this._cacheHelperProportions(),t.ui.ddmanager&&!i.dropBehaviour&&t.ui.ddmanager.prepareOffsets(this,e),this._mouseDrag(e,!0),t.ui.ddmanager&&t.ui.ddmanager.dragStart(this,e),!0)},_refreshOffsets:function(t){this.offset={top:this.positionAbs.top-this.margins.top,left:this.positionAbs.left-this.margins.left,scroll:!1,parent:this._getParentOffset(),relative:this._getRelativeOffset()},this.offset.click={left:t.pageX-this.offset.left,top:t.pageY-this.offset.top}},_mouseDrag:function(e,i){if(this.hasFixedAncestor&&(this.offset.parent=this._getParentOffset()),this.position=this._generatePosition(e,!0),this.positionAbs=this._convertPositionTo("absolute"),!i){var s=this._uiHash();if(this._trigger("drag",e,s)===!1)return this._mouseUp(new t.Event("mouseup",e)),!1;this.position=s.position}return this.helper[0].style.left=this.position.left+"px",this.helper[0].style.top=this.position.top+"px",t.ui.ddmanager&&t.ui.ddmanager.drag(this,e),!1},_mouseStop:function(e){var i=this,s=!1;return t.ui.ddmanager&&!this.options.dropBehaviour&&(s=t.ui.ddmanager.drop(this,e)),this.dropped&&(s=this.dropped,this.dropped=!1),"invalid"===this.options.revert&&!s||"valid"===this.options.revert&&s||this.options.revert===!0||t.isFunction(this.options.revert)&&this.options.revert.call(this.element,s)?t(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){i._trigger("stop",e)!==!1&&i._clear()}):this._trigger("stop",e)!==!1&&this._clear(),!1},_mouseUp:function(e){return this._unblockFrames(),t.ui.ddmanager&&t.ui.ddmanager.dragStop(this,e),this.handleElement.is(e.target)&&this.element.trigger("focus"),t.ui.mouse.prototype._mouseUp.call(this,e)},cancel:function(){return this.helper.is(".ui-draggable-dragging")?this._mouseUp(new t.Event("mouseup",{target:this.element[0]})):this._clear(),this},_getHandle:function(e){return this.options.handle?!!t(e.target).closest(this.element.find(this.options.handle)).length:!0},_setHandleClassName:function(){this.handleElement=this.options.handle?this.element.find(this.options.handle):this.element,this._addClass(this.handleElement,"ui-draggable-handle")},_removeHandleClassName:function(){this._removeClass(this.handleElement,"ui-draggable-handle")},_createHelper:function(e){var i=this.options,s=t.isFunction(i.helper),n=s?t(i.helper.apply(this.element[0],[e])):"clone"===i.helper?this.element.clone().removeAttr("id"):this.element;return n.parents("body").length||n.appendTo("parent"===i.appendTo?this.element[0].parentNode:i.appendTo),s&&n[0]===this.element[0]&&this._setPositionRelative(),n[0]===this.element[0]||/(fixed|absolute)/.test(n.css("position"))||n.css("position","absolute"),n},_setPositionRelative:function(){/^(?:r|a|f)/.test(this.element.css("position"))||(this.element[0].style.position="relative")},_adjustOffsetFromHelper:function(e){"string"==typeof e&&(e=e.split(" ")),t.isArray(e)&&(e={left:+e[0],top:+e[1]||0}),"left"in e&&(this.offset.click.left=e.left+this.margins.left),"right"in e&&(this.offset.click.left=this.helperProportions.width-e.right+this.margins.left),"top"in e&&(this.offset.click.top=e.top+this.margins.top),"bottom"in e&&(this.offset.click.top=this.helperProportions.height-e.bottom+this.margins.top)},_isRootNode:function(t){return/(html|body)/i.test(t.tagName)||t===this.document[0]},_getParentOffset:function(){var e=this.offsetParent.offset(),i=this.document[0];return"absolute"===this.cssPosition&&this.scrollParent[0]!==i&&t.contains(this.scrollParent[0],this.offsetParent[0])&&(e.left+=this.scrollParent.scrollLeft(),e.top+=this.scrollParent.scrollTop()),this._isRootNode(this.offsetParent[0])&&(e={top:0,left:0}),{top:e.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:e.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if("relative"!==this.cssPosition)return{top:0,left:0};var t=this.element.position(),e=this._isRootNode(this.scrollParent[0]);return{top:t.top-(parseInt(this.helper.css("top"),10)||0)+(e?0:this.scrollParent.scrollTop()),left:t.left-(parseInt(this.helper.css("left"),10)||0)+(e?0:this.scrollParent.scrollLeft())}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var e,i,s,n=this.options,o=this.document[0];return this.relativeContainer=null,n.containment?"window"===n.containment?(this.containment=[t(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,t(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,t(window).scrollLeft()+t(window).width()-this.helperProportions.width-this.margins.left,t(window).scrollTop()+(t(window).height()||o.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top],void 0):"document"===n.containment?(this.containment=[0,0,t(o).width()-this.helperProportions.width-this.margins.left,(t(o).height()||o.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top],void 0):n.containment.constructor===Array?(this.containment=n.containment,void 0):("parent"===n.containment&&(n.containment=this.helper[0].parentNode),i=t(n.containment),s=i[0],s&&(e=/(scroll|auto)/.test(i.css("overflow")),this.containment=[(parseInt(i.css("borderLeftWidth"),10)||0)+(parseInt(i.css("paddingLeft"),10)||0),(parseInt(i.css("borderTopWidth"),10)||0)+(parseInt(i.css("paddingTop"),10)||0),(e?Math.max(s.scrollWidth,s.offsetWidth):s.offsetWidth)-(parseInt(i.css("borderRightWidth"),10)||0)-(parseInt(i.css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(e?Math.max(s.scrollHeight,s.offsetHeight):s.offsetHeight)-(parseInt(i.css("borderBottomWidth"),10)||0)-(parseInt(i.css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom],this.relativeContainer=i),void 0):(this.containment=null,void 0) +},_convertPositionTo:function(t,e){e||(e=this.position);var i="absolute"===t?1:-1,s=this._isRootNode(this.scrollParent[0]);return{top:e.top+this.offset.relative.top*i+this.offset.parent.top*i-("fixed"===this.cssPosition?-this.offset.scroll.top:s?0:this.offset.scroll.top)*i,left:e.left+this.offset.relative.left*i+this.offset.parent.left*i-("fixed"===this.cssPosition?-this.offset.scroll.left:s?0:this.offset.scroll.left)*i}},_generatePosition:function(t,e){var i,s,n,o,a=this.options,r=this._isRootNode(this.scrollParent[0]),h=t.pageX,l=t.pageY;return r&&this.offset.scroll||(this.offset.scroll={top:this.scrollParent.scrollTop(),left:this.scrollParent.scrollLeft()}),e&&(this.containment&&(this.relativeContainer?(s=this.relativeContainer.offset(),i=[this.containment[0]+s.left,this.containment[1]+s.top,this.containment[2]+s.left,this.containment[3]+s.top]):i=this.containment,t.pageX-this.offset.click.lefti[2]&&(h=i[2]+this.offset.click.left),t.pageY-this.offset.click.top>i[3]&&(l=i[3]+this.offset.click.top)),a.grid&&(n=a.grid[1]?this.originalPageY+Math.round((l-this.originalPageY)/a.grid[1])*a.grid[1]:this.originalPageY,l=i?n-this.offset.click.top>=i[1]||n-this.offset.click.top>i[3]?n:n-this.offset.click.top>=i[1]?n-a.grid[1]:n+a.grid[1]:n,o=a.grid[0]?this.originalPageX+Math.round((h-this.originalPageX)/a.grid[0])*a.grid[0]:this.originalPageX,h=i?o-this.offset.click.left>=i[0]||o-this.offset.click.left>i[2]?o:o-this.offset.click.left>=i[0]?o-a.grid[0]:o+a.grid[0]:o),"y"===a.axis&&(h=this.originalPageX),"x"===a.axis&&(l=this.originalPageY)),{top:l-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.offset.scroll.top:r?0:this.offset.scroll.top),left:h-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.offset.scroll.left:r?0:this.offset.scroll.left)}},_clear:function(){this._removeClass(this.helper,"ui-draggable-dragging"),this.helper[0]===this.element[0]||this.cancelHelperRemoval||this.helper.remove(),this.helper=null,this.cancelHelperRemoval=!1,this.destroyOnClear&&this.destroy()},_trigger:function(e,i,s){return s=s||this._uiHash(),t.ui.plugin.call(this,e,[i,s,this],!0),/^(drag|start|stop)/.test(e)&&(this.positionAbs=this._convertPositionTo("absolute"),s.offset=this.positionAbs),t.Widget.prototype._trigger.call(this,e,i,s)},plugins:{},_uiHash:function(){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}}),t.ui.plugin.add("draggable","connectToSortable",{start:function(e,i,s){var n=t.extend({},i,{item:s.element});s.sortables=[],t(s.options.connectToSortable).each(function(){var i=t(this).sortable("instance");i&&!i.options.disabled&&(s.sortables.push(i),i.refreshPositions(),i._trigger("activate",e,n))})},stop:function(e,i,s){var n=t.extend({},i,{item:s.element});s.cancelHelperRemoval=!1,t.each(s.sortables,function(){var t=this;t.isOver?(t.isOver=0,s.cancelHelperRemoval=!0,t.cancelHelperRemoval=!1,t._storedCSS={position:t.placeholder.css("position"),top:t.placeholder.css("top"),left:t.placeholder.css("left")},t._mouseStop(e),t.options.helper=t.options._helper):(t.cancelHelperRemoval=!0,t._trigger("deactivate",e,n))})},drag:function(e,i,s){t.each(s.sortables,function(){var n=!1,o=this;o.positionAbs=s.positionAbs,o.helperProportions=s.helperProportions,o.offset.click=s.offset.click,o._intersectsWith(o.containerCache)&&(n=!0,t.each(s.sortables,function(){return this.positionAbs=s.positionAbs,this.helperProportions=s.helperProportions,this.offset.click=s.offset.click,this!==o&&this._intersectsWith(this.containerCache)&&t.contains(o.element[0],this.element[0])&&(n=!1),n})),n?(o.isOver||(o.isOver=1,s._parent=i.helper.parent(),o.currentItem=i.helper.appendTo(o.element).data("ui-sortable-item",!0),o.options._helper=o.options.helper,o.options.helper=function(){return i.helper[0]},e.target=o.currentItem[0],o._mouseCapture(e,!0),o._mouseStart(e,!0,!0),o.offset.click.top=s.offset.click.top,o.offset.click.left=s.offset.click.left,o.offset.parent.left-=s.offset.parent.left-o.offset.parent.left,o.offset.parent.top-=s.offset.parent.top-o.offset.parent.top,s._trigger("toSortable",e),s.dropped=o.element,t.each(s.sortables,function(){this.refreshPositions()}),s.currentItem=s.element,o.fromOutside=s),o.currentItem&&(o._mouseDrag(e),i.position=o.position)):o.isOver&&(o.isOver=0,o.cancelHelperRemoval=!0,o.options._revert=o.options.revert,o.options.revert=!1,o._trigger("out",e,o._uiHash(o)),o._mouseStop(e,!0),o.options.revert=o.options._revert,o.options.helper=o.options._helper,o.placeholder&&o.placeholder.remove(),i.helper.appendTo(s._parent),s._refreshOffsets(e),i.position=s._generatePosition(e,!0),s._trigger("fromSortable",e),s.dropped=!1,t.each(s.sortables,function(){this.refreshPositions()}))})}}),t.ui.plugin.add("draggable","cursor",{start:function(e,i,s){var n=t("body"),o=s.options;n.css("cursor")&&(o._cursor=n.css("cursor")),n.css("cursor",o.cursor)},stop:function(e,i,s){var n=s.options;n._cursor&&t("body").css("cursor",n._cursor)}}),t.ui.plugin.add("draggable","opacity",{start:function(e,i,s){var n=t(i.helper),o=s.options;n.css("opacity")&&(o._opacity=n.css("opacity")),n.css("opacity",o.opacity)},stop:function(e,i,s){var n=s.options;n._opacity&&t(i.helper).css("opacity",n._opacity)}}),t.ui.plugin.add("draggable","scroll",{start:function(t,e,i){i.scrollParentNotHidden||(i.scrollParentNotHidden=i.helper.scrollParent(!1)),i.scrollParentNotHidden[0]!==i.document[0]&&"HTML"!==i.scrollParentNotHidden[0].tagName&&(i.overflowOffset=i.scrollParentNotHidden.offset())},drag:function(e,i,s){var n=s.options,o=!1,a=s.scrollParentNotHidden[0],r=s.document[0];a!==r&&"HTML"!==a.tagName?(n.axis&&"x"===n.axis||(s.overflowOffset.top+a.offsetHeight-e.pageY=0;d--)h=s.snapElements[d].left-s.margins.left,l=h+s.snapElements[d].width,c=s.snapElements[d].top-s.margins.top,u=c+s.snapElements[d].height,h-g>_||m>l+g||c-g>b||v>u+g||!t.contains(s.snapElements[d].item.ownerDocument,s.snapElements[d].item)?(s.snapElements[d].snapping&&s.options.snap.release&&s.options.snap.release.call(s.element,e,t.extend(s._uiHash(),{snapItem:s.snapElements[d].item})),s.snapElements[d].snapping=!1):("inner"!==f.snapMode&&(n=g>=Math.abs(c-b),o=g>=Math.abs(u-v),a=g>=Math.abs(h-_),r=g>=Math.abs(l-m),n&&(i.position.top=s._convertPositionTo("relative",{top:c-s.helperProportions.height,left:0}).top),o&&(i.position.top=s._convertPositionTo("relative",{top:u,left:0}).top),a&&(i.position.left=s._convertPositionTo("relative",{top:0,left:h-s.helperProportions.width}).left),r&&(i.position.left=s._convertPositionTo("relative",{top:0,left:l}).left)),p=n||o||a||r,"outer"!==f.snapMode&&(n=g>=Math.abs(c-v),o=g>=Math.abs(u-b),a=g>=Math.abs(h-m),r=g>=Math.abs(l-_),n&&(i.position.top=s._convertPositionTo("relative",{top:c,left:0}).top),o&&(i.position.top=s._convertPositionTo("relative",{top:u-s.helperProportions.height,left:0}).top),a&&(i.position.left=s._convertPositionTo("relative",{top:0,left:h}).left),r&&(i.position.left=s._convertPositionTo("relative",{top:0,left:l-s.helperProportions.width}).left)),!s.snapElements[d].snapping&&(n||o||a||r||p)&&s.options.snap.snap&&s.options.snap.snap.call(s.element,e,t.extend(s._uiHash(),{snapItem:s.snapElements[d].item})),s.snapElements[d].snapping=n||o||a||r||p)}}),t.ui.plugin.add("draggable","stack",{start:function(e,i,s){var n,o=s.options,a=t.makeArray(t(o.stack)).sort(function(e,i){return(parseInt(t(e).css("zIndex"),10)||0)-(parseInt(t(i).css("zIndex"),10)||0)});a.length&&(n=parseInt(t(a[0]).css("zIndex"),10)||0,t(a).each(function(e){t(this).css("zIndex",n+e)}),this.css("zIndex",n+a.length))}}),t.ui.plugin.add("draggable","zIndex",{start:function(e,i,s){var n=t(i.helper),o=s.options;n.css("zIndex")&&(o._zIndex=n.css("zIndex")),n.css("zIndex",o.zIndex)},stop:function(e,i,s){var n=s.options;n._zIndex&&t(i.helper).css("zIndex",n._zIndex)}}),t.ui.draggable,t.widget("ui.droppable",{version:"1.12.1",widgetEventPrefix:"drop",options:{accept:"*",addClasses:!0,greedy:!1,scope:"default",tolerance:"intersect",activate:null,deactivate:null,drop:null,out:null,over:null},_create:function(){var e,i=this.options,s=i.accept;this.isover=!1,this.isout=!0,this.accept=t.isFunction(s)?s:function(t){return t.is(s)},this.proportions=function(){return arguments.length?(e=arguments[0],void 0):e?e:e={width:this.element[0].offsetWidth,height:this.element[0].offsetHeight}},this._addToManager(i.scope),i.addClasses&&this._addClass("ui-droppable")},_addToManager:function(e){t.ui.ddmanager.droppables[e]=t.ui.ddmanager.droppables[e]||[],t.ui.ddmanager.droppables[e].push(this)},_splice:function(t){for(var e=0;t.length>e;e++)t[e]===this&&t.splice(e,1)},_destroy:function(){var e=t.ui.ddmanager.droppables[this.options.scope];this._splice(e)},_setOption:function(e,i){if("accept"===e)this.accept=t.isFunction(i)?i:function(t){return t.is(i)};else if("scope"===e){var s=t.ui.ddmanager.droppables[this.options.scope];this._splice(s),this._addToManager(i)}this._super(e,i)},_activate:function(e){var i=t.ui.ddmanager.current;this._addActiveClass(),i&&this._trigger("activate",e,this.ui(i))},_deactivate:function(e){var i=t.ui.ddmanager.current;this._removeActiveClass(),i&&this._trigger("deactivate",e,this.ui(i))},_over:function(e){var i=t.ui.ddmanager.current;i&&(i.currentItem||i.element)[0]!==this.element[0]&&this.accept.call(this.element[0],i.currentItem||i.element)&&(this._addHoverClass(),this._trigger("over",e,this.ui(i)))},_out:function(e){var i=t.ui.ddmanager.current;i&&(i.currentItem||i.element)[0]!==this.element[0]&&this.accept.call(this.element[0],i.currentItem||i.element)&&(this._removeHoverClass(),this._trigger("out",e,this.ui(i)))},_drop:function(e,i){var s=i||t.ui.ddmanager.current,n=!1;return s&&(s.currentItem||s.element)[0]!==this.element[0]?(this.element.find(":data(ui-droppable)").not(".ui-draggable-dragging").each(function(){var i=t(this).droppable("instance");return i.options.greedy&&!i.options.disabled&&i.options.scope===s.options.scope&&i.accept.call(i.element[0],s.currentItem||s.element)&&u(s,t.extend(i,{offset:i.element.offset()}),i.options.tolerance,e)?(n=!0,!1):void 0}),n?!1:this.accept.call(this.element[0],s.currentItem||s.element)?(this._removeActiveClass(),this._removeHoverClass(),this._trigger("drop",e,this.ui(s)),this.element):!1):!1},ui:function(t){return{draggable:t.currentItem||t.element,helper:t.helper,position:t.position,offset:t.positionAbs}},_addHoverClass:function(){this._addClass("ui-droppable-hover")},_removeHoverClass:function(){this._removeClass("ui-droppable-hover")},_addActiveClass:function(){this._addClass("ui-droppable-active")},_removeActiveClass:function(){this._removeClass("ui-droppable-active")}});var u=t.ui.intersect=function(){function t(t,e,i){return t>=e&&e+i>t}return function(e,i,s,n){if(!i.offset)return!1;var o=(e.positionAbs||e.position.absolute).left+e.margins.left,a=(e.positionAbs||e.position.absolute).top+e.margins.top,r=o+e.helperProportions.width,h=a+e.helperProportions.height,l=i.offset.left,c=i.offset.top,u=l+i.proportions().width,d=c+i.proportions().height;switch(s){case"fit":return o>=l&&u>=r&&a>=c&&d>=h;case"intersect":return o+e.helperProportions.width/2>l&&u>r-e.helperProportions.width/2&&a+e.helperProportions.height/2>c&&d>h-e.helperProportions.height/2;case"pointer":return t(n.pageY,c,i.proportions().height)&&t(n.pageX,l,i.proportions().width);case"touch":return(a>=c&&d>=a||h>=c&&d>=h||c>a&&h>d)&&(o>=l&&u>=o||r>=l&&u>=r||l>o&&r>u);default:return!1}}}();t.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(e,i){var s,n,o=t.ui.ddmanager.droppables[e.options.scope]||[],a=i?i.type:null,r=(e.currentItem||e.element).find(":data(ui-droppable)").addBack();t:for(s=0;o.length>s;s++)if(!(o[s].options.disabled||e&&!o[s].accept.call(o[s].element[0],e.currentItem||e.element))){for(n=0;r.length>n;n++)if(r[n]===o[s].element[0]){o[s].proportions().height=0;continue t}o[s].visible="none"!==o[s].element.css("display"),o[s].visible&&("mousedown"===a&&o[s]._activate.call(o[s],i),o[s].offset=o[s].element.offset(),o[s].proportions({width:o[s].element[0].offsetWidth,height:o[s].element[0].offsetHeight}))}},drop:function(e,i){var s=!1;return t.each((t.ui.ddmanager.droppables[e.options.scope]||[]).slice(),function(){this.options&&(!this.options.disabled&&this.visible&&u(e,this,this.options.tolerance,i)&&(s=this._drop.call(this,i)||s),!this.options.disabled&&this.visible&&this.accept.call(this.element[0],e.currentItem||e.element)&&(this.isout=!0,this.isover=!1,this._deactivate.call(this,i)))}),s},dragStart:function(e,i){e.element.parentsUntil("body").on("scroll.droppable",function(){e.options.refreshPositions||t.ui.ddmanager.prepareOffsets(e,i)})},drag:function(e,i){e.options.refreshPositions&&t.ui.ddmanager.prepareOffsets(e,i),t.each(t.ui.ddmanager.droppables[e.options.scope]||[],function(){if(!this.options.disabled&&!this.greedyChild&&this.visible){var s,n,o,a=u(e,this,this.options.tolerance,i),r=!a&&this.isover?"isout":a&&!this.isover?"isover":null;r&&(this.options.greedy&&(n=this.options.scope,o=this.element.parents(":data(ui-droppable)").filter(function(){return t(this).droppable("instance").options.scope===n}),o.length&&(s=t(o[0]).droppable("instance"),s.greedyChild="isover"===r)),s&&"isover"===r&&(s.isover=!1,s.isout=!0,s._out.call(s,i)),this[r]=!0,this["isout"===r?"isover":"isout"]=!1,this["isover"===r?"_over":"_out"].call(this,i),s&&"isout"===r&&(s.isout=!1,s.isover=!0,s._over.call(s,i)))}})},dragStop:function(e,i){e.element.parentsUntil("body").off("scroll.droppable"),e.options.refreshPositions||t.ui.ddmanager.prepareOffsets(e,i)}},t.uiBackCompat!==!1&&t.widget("ui.droppable",t.ui.droppable,{options:{hoverClass:!1,activeClass:!1},_addActiveClass:function(){this._super(),this.options.activeClass&&this.element.addClass(this.options.activeClass)},_removeActiveClass:function(){this._super(),this.options.activeClass&&this.element.removeClass(this.options.activeClass)},_addHoverClass:function(){this._super(),this.options.hoverClass&&this.element.addClass(this.options.hoverClass)},_removeHoverClass:function(){this._super(),this.options.hoverClass&&this.element.removeClass(this.options.hoverClass)}}),t.ui.droppable,t.widget("ui.resizable",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,classes:{"ui-resizable-se":"ui-icon ui-icon-gripsmall-diagonal-se"},containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(t){return parseFloat(t)||0},_isNumber:function(t){return!isNaN(parseFloat(t))},_hasScroll:function(e,i){if("hidden"===t(e).css("overflow"))return!1;var s=i&&"left"===i?"scrollLeft":"scrollTop",n=!1;return e[s]>0?!0:(e[s]=1,n=e[s]>0,e[s]=0,n)},_create:function(){var e,i=this.options,s=this;this._addClass("ui-resizable"),t.extend(this,{_aspectRatio:!!i.aspectRatio,aspectRatio:i.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:i.helper||i.ghost||i.animate?i.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)&&(this.element.wrap(t("
").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,e={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(e),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(e),this._proportionallyResize()),this._setupHandles(),i.autoHide&&t(this.element).on("mouseenter",function(){i.disabled||(s._removeClass("ui-resizable-autohide"),s._handles.show())}).on("mouseleave",function(){i.disabled||s.resizing||(s._addClass("ui-resizable-autohide"),s._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy();var e,i=function(e){t(e).removeData("resizable").removeData("ui-resizable").off(".resizable").find(".ui-resizable-handle").remove()};return this.elementIsWrapper&&(i(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),i(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;default:}},_setupHandles:function(){var e,i,s,n,o,a=this.options,r=this;if(this.handles=a.handles||(t(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=t(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),s=this.handles.split(","),this.handles={},i=0;s.length>i;i++)e=t.trim(s[i]),n="ui-resizable-"+e,o=t("
"),this._addClass(o,"ui-resizable-handle "+n),o.css({zIndex:a.zIndex}),this.handles[e]=".ui-resizable-"+e,this.element.append(o);this._renderAxis=function(e){var i,s,n,o;e=e||this.element;for(i in this.handles)this.handles[i].constructor===String?this.handles[i]=this.element.children(this.handles[i]).first().show():(this.handles[i].jquery||this.handles[i].nodeType)&&(this.handles[i]=t(this.handles[i]),this._on(this.handles[i],{mousedown:r._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(s=t(this.handles[i],this.element),o=/sw|ne|nw|se|n|s/.test(i)?s.outerHeight():s.outerWidth(),n=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join(""),e.css(n,o),this._proportionallyResize()),this._handles=this._handles.add(this.handles[i])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){r.resizing||(this.className&&(o=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),r.axis=o&&o[1]?o[1]:"se")}),a.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._handles.remove()},_mouseCapture:function(e){var i,s,n=!1;for(i in this.handles)s=t(this.handles[i])[0],(s===e.target||t.contains(s,e.target))&&(n=!0);return!this.options.disabled&&n},_mouseStart:function(e){var i,s,n,o=this.options,a=this.element;return this.resizing=!0,this._renderProxy(),i=this._num(this.helper.css("left")),s=this._num(this.helper.css("top")),o.containment&&(i+=t(o.containment).scrollLeft()||0,s+=t(o.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:i,top:s},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:a.width(),height:a.height()},this.originalSize=this._helper?{width:a.outerWidth(),height:a.outerHeight()}:{width:a.width(),height:a.height()},this.sizeDiff={width:a.outerWidth()-a.width(),height:a.outerHeight()-a.height()},this.originalPosition={left:i,top:s},this.originalMousePosition={left:e.pageX,top:e.pageY},this.aspectRatio="number"==typeof o.aspectRatio?o.aspectRatio:this.originalSize.width/this.originalSize.height||1,n=t(".ui-resizable-"+this.axis).css("cursor"),t("body").css("cursor","auto"===n?this.axis+"-resize":n),this._addClass("ui-resizable-resizing"),this._propagate("start",e),!0},_mouseDrag:function(e){var i,s,n=this.originalMousePosition,o=this.axis,a=e.pageX-n.left||0,r=e.pageY-n.top||0,h=this._change[o];return this._updatePrevProperties(),h?(i=h.apply(this,[e,a,r]),this._updateVirtualBoundaries(e.shiftKey),(this._aspectRatio||e.shiftKey)&&(i=this._updateRatio(i,e)),i=this._respectSize(i,e),this._updateCache(i),this._propagate("resize",e),s=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),t.isEmptyObject(s)||(this._updatePrevProperties(),this._trigger("resize",e,this.ui()),this._applyChanges()),!1):!1},_mouseStop:function(e){this.resizing=!1;var i,s,n,o,a,r,h,l=this.options,c=this;return this._helper&&(i=this._proportionallyResizeElements,s=i.length&&/textarea/i.test(i[0].nodeName),n=s&&this._hasScroll(i[0],"left")?0:c.sizeDiff.height,o=s?0:c.sizeDiff.width,a={width:c.helper.width()-o,height:c.helper.height()-n},r=parseFloat(c.element.css("left"))+(c.position.left-c.originalPosition.left)||null,h=parseFloat(c.element.css("top"))+(c.position.top-c.originalPosition.top)||null,l.animate||this.element.css(t.extend(a,{top:h,left:r})),c.helper.height(c.size.height),c.helper.width(c.size.width),this._helper&&!l.animate&&this._proportionallyResize()),t("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",e),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s,n,o,a=this.options;o={minWidth:this._isNumber(a.minWidth)?a.minWidth:0,maxWidth:this._isNumber(a.maxWidth)?a.maxWidth:1/0,minHeight:this._isNumber(a.minHeight)?a.minHeight:0,maxHeight:this._isNumber(a.maxHeight)?a.maxHeight:1/0},(this._aspectRatio||t)&&(e=o.minHeight*this.aspectRatio,s=o.minWidth/this.aspectRatio,i=o.maxHeight*this.aspectRatio,n=o.maxWidth/this.aspectRatio,e>o.minWidth&&(o.minWidth=e),s>o.minHeight&&(o.minHeight=s),o.maxWidth>i&&(o.maxWidth=i),o.maxHeight>n&&(o.maxHeight=n)),this._vBoundaries=o},_updateCache:function(t){this.offset=this.helper.offset(),this._isNumber(t.left)&&(this.position.left=t.left),this._isNumber(t.top)&&(this.position.top=t.top),this._isNumber(t.height)&&(this.size.height=t.height),this._isNumber(t.width)&&(this.size.width=t.width)},_updateRatio:function(t){var e=this.position,i=this.size,s=this.axis;return this._isNumber(t.height)?t.width=t.height*this.aspectRatio:this._isNumber(t.width)&&(t.height=t.width/this.aspectRatio),"sw"===s&&(t.left=e.left+(i.width-t.width),t.top=null),"nw"===s&&(t.top=e.top+(i.height-t.height),t.left=e.left+(i.width-t.width)),t},_respectSize:function(t){var e=this._vBoundaries,i=this.axis,s=this._isNumber(t.width)&&e.maxWidth&&e.maxWidtht.width,a=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,r=this.originalPosition.left+this.originalSize.width,h=this.originalPosition.top+this.originalSize.height,l=/sw|nw|w/.test(i),c=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),a&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=r-e.minWidth),s&&l&&(t.left=r-e.maxWidth),a&&c&&(t.top=h-e.minHeight),n&&c&&(t.top=h-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];4>e;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;this._proportionallyResizeElements.length>e;e++)t=this._proportionallyResizeElements[e],this.outerDimensions||(this.outerDimensions=this._getPaddingPlusBorderDimensions(t)),t.css({height:i.height()-this.outerDimensions.height||0,width:i.width()-this.outerDimensions.width||0})},_renderProxy:function(){var e=this.element,i=this.options;this.elementOffset=e.offset(),this._helper?(this.helper=this.helper||t("
"),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++i.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize,s=this.originalPosition;return{left:s.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize,n=this.originalPosition;return{top:n.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},sw:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[e,i,s]))},ne:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},nw:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[e,i,s]))}},_propagate:function(e,i){t.ui.plugin.call(this,e,[i,this.ui()]),"resize"!==e&&this._trigger(e,i,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),t.ui.plugin.add("resizable","animate",{stop:function(e){var i=t(this).resizable("instance"),s=i.options,n=i._proportionallyResizeElements,o=n.length&&/textarea/i.test(n[0].nodeName),a=o&&i._hasScroll(n[0],"left")?0:i.sizeDiff.height,r=o?0:i.sizeDiff.width,h={width:i.size.width-r,height:i.size.height-a},l=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,c=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(t.extend(h,c&&l?{top:c,left:l}:{}),{duration:s.animateDuration,easing:s.animateEasing,step:function(){var s={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};n&&n.length&&t(n[0]).css({width:s.width,height:s.height}),i._updateCache(s),i._propagate("resize",e)}})}}),t.ui.plugin.add("resizable","containment",{start:function(){var e,i,s,n,o,a,r,h=t(this).resizable("instance"),l=h.options,c=h.element,u=l.containment,d=u instanceof t?u.get(0):/parent/.test(u)?c.parent().get(0):u;d&&(h.containerElement=t(d),/document/.test(u)||u===document?(h.containerOffset={left:0,top:0},h.containerPosition={left:0,top:0},h.parentData={element:t(document),left:0,top:0,width:t(document).width(),height:t(document).height()||document.body.parentNode.scrollHeight}):(e=t(d),i=[],t(["Top","Right","Left","Bottom"]).each(function(t,s){i[t]=h._num(e.css("padding"+s))}),h.containerOffset=e.offset(),h.containerPosition=e.position(),h.containerSize={height:e.innerHeight()-i[3],width:e.innerWidth()-i[1]},s=h.containerOffset,n=h.containerSize.height,o=h.containerSize.width,a=h._hasScroll(d,"left")?d.scrollWidth:o,r=h._hasScroll(d)?d.scrollHeight:n,h.parentData={element:d,left:s.left,top:s.top,width:a,height:r}))},resize:function(e){var i,s,n,o,a=t(this).resizable("instance"),r=a.options,h=a.containerOffset,l=a.position,c=a._aspectRatio||e.shiftKey,u={top:0,left:0},d=a.containerElement,p=!0;d[0]!==document&&/static/.test(d.css("position"))&&(u=h),l.left<(a._helper?h.left:0)&&(a.size.width=a.size.width+(a._helper?a.position.left-h.left:a.position.left-u.left),c&&(a.size.height=a.size.width/a.aspectRatio,p=!1),a.position.left=r.helper?h.left:0),l.top<(a._helper?h.top:0)&&(a.size.height=a.size.height+(a._helper?a.position.top-h.top:a.position.top),c&&(a.size.width=a.size.height*a.aspectRatio,p=!1),a.position.top=a._helper?h.top:0),n=a.containerElement.get(0)===a.element.parent().get(0),o=/relative|absolute/.test(a.containerElement.css("position")),n&&o?(a.offset.left=a.parentData.left+a.position.left,a.offset.top=a.parentData.top+a.position.top):(a.offset.left=a.element.offset().left,a.offset.top=a.element.offset().top),i=Math.abs(a.sizeDiff.width+(a._helper?a.offset.left-u.left:a.offset.left-h.left)),s=Math.abs(a.sizeDiff.height+(a._helper?a.offset.top-u.top:a.offset.top-h.top)),i+a.size.width>=a.parentData.width&&(a.size.width=a.parentData.width-i,c&&(a.size.height=a.size.width/a.aspectRatio,p=!1)),s+a.size.height>=a.parentData.height&&(a.size.height=a.parentData.height-s,c&&(a.size.width=a.size.height*a.aspectRatio,p=!1)),p||(a.position.left=a.prevPosition.left,a.position.top=a.prevPosition.top,a.size.width=a.prevSize.width,a.size.height=a.prevSize.height)},stop:function(){var e=t(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.containerPosition,o=e.containerElement,a=t(e.helper),r=a.offset(),h=a.outerWidth()-e.sizeDiff.width,l=a.outerHeight()-e.sizeDiff.height;e._helper&&!i.animate&&/relative/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l}),e._helper&&!i.animate&&/static/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l})}}),t.ui.plugin.add("resizable","alsoResize",{start:function(){var e=t(this).resizable("instance"),i=e.options;t(i.alsoResize).each(function(){var e=t(this);e.data("ui-resizable-alsoresize",{width:parseFloat(e.width()),height:parseFloat(e.height()),left:parseFloat(e.css("left")),top:parseFloat(e.css("top"))})})},resize:function(e,i){var s=t(this).resizable("instance"),n=s.options,o=s.originalSize,a=s.originalPosition,r={height:s.size.height-o.height||0,width:s.size.width-o.width||0,top:s.position.top-a.top||0,left:s.position.left-a.left||0}; +t(n.alsoResize).each(function(){var e=t(this),s=t(this).data("ui-resizable-alsoresize"),n={},o=e.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];t.each(o,function(t,e){var i=(s[e]||0)+(r[e]||0);i&&i>=0&&(n[e]=i||null)}),e.css(n)})},stop:function(){t(this).removeData("ui-resizable-alsoresize")}}),t.ui.plugin.add("resizable","ghost",{start:function(){var e=t(this).resizable("instance"),i=e.size;e.ghost=e.originalElement.clone(),e.ghost.css({opacity:.25,display:"block",position:"relative",height:i.height,width:i.width,margin:0,left:0,top:0}),e._addClass(e.ghost,"ui-resizable-ghost"),t.uiBackCompat!==!1&&"string"==typeof e.options.ghost&&e.ghost.addClass(this.options.ghost),e.ghost.appendTo(e.helper)},resize:function(){var e=t(this).resizable("instance");e.ghost&&e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})},stop:function(){var e=t(this).resizable("instance");e.ghost&&e.helper&&e.helper.get(0).removeChild(e.ghost.get(0))}}),t.ui.plugin.add("resizable","grid",{resize:function(){var e,i=t(this).resizable("instance"),s=i.options,n=i.size,o=i.originalSize,a=i.originalPosition,r=i.axis,h="number"==typeof s.grid?[s.grid,s.grid]:s.grid,l=h[0]||1,c=h[1]||1,u=Math.round((n.width-o.width)/l)*l,d=Math.round((n.height-o.height)/c)*c,p=o.width+u,f=o.height+d,g=s.maxWidth&&p>s.maxWidth,m=s.maxHeight&&f>s.maxHeight,_=s.minWidth&&s.minWidth>p,v=s.minHeight&&s.minHeight>f;s.grid=h,_&&(p+=l),v&&(f+=c),g&&(p-=l),m&&(f-=c),/^(se|s|e)$/.test(r)?(i.size.width=p,i.size.height=f):/^(ne)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.top=a.top-d):/^(sw)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.left=a.left-u):((0>=f-c||0>=p-l)&&(e=i._getPaddingPlusBorderDimensions(this)),f-c>0?(i.size.height=f,i.position.top=a.top-d):(f=c-e.height,i.size.height=f,i.position.top=a.top+o.height-f),p-l>0?(i.size.width=p,i.position.left=a.left-u):(p=l-e.width,i.size.width=p,i.position.left=a.left+o.width-p))}}),t.ui.resizable,t.widget("ui.selectable",t.ui.mouse,{version:"1.12.1",options:{appendTo:"body",autoRefresh:!0,distance:0,filter:"*",tolerance:"touch",selected:null,selecting:null,start:null,stop:null,unselected:null,unselecting:null},_create:function(){var e=this;this._addClass("ui-selectable"),this.dragged=!1,this.refresh=function(){e.elementPos=t(e.element[0]).offset(),e.selectees=t(e.options.filter,e.element[0]),e._addClass(e.selectees,"ui-selectee"),e.selectees.each(function(){var i=t(this),s=i.offset(),n={left:s.left-e.elementPos.left,top:s.top-e.elementPos.top};t.data(this,"selectable-item",{element:this,$element:i,left:n.left,top:n.top,right:n.left+i.outerWidth(),bottom:n.top+i.outerHeight(),startselected:!1,selected:i.hasClass("ui-selected"),selecting:i.hasClass("ui-selecting"),unselecting:i.hasClass("ui-unselecting")})})},this.refresh(),this._mouseInit(),this.helper=t("
"),this._addClass(this.helper,"ui-selectable-helper")},_destroy:function(){this.selectees.removeData("selectable-item"),this._mouseDestroy()},_mouseStart:function(e){var i=this,s=this.options;this.opos=[e.pageX,e.pageY],this.elementPos=t(this.element[0]).offset(),this.options.disabled||(this.selectees=t(s.filter,this.element[0]),this._trigger("start",e),t(s.appendTo).append(this.helper),this.helper.css({left:e.pageX,top:e.pageY,width:0,height:0}),s.autoRefresh&&this.refresh(),this.selectees.filter(".ui-selected").each(function(){var s=t.data(this,"selectable-item");s.startselected=!0,e.metaKey||e.ctrlKey||(i._removeClass(s.$element,"ui-selected"),s.selected=!1,i._addClass(s.$element,"ui-unselecting"),s.unselecting=!0,i._trigger("unselecting",e,{unselecting:s.element}))}),t(e.target).parents().addBack().each(function(){var s,n=t.data(this,"selectable-item");return n?(s=!e.metaKey&&!e.ctrlKey||!n.$element.hasClass("ui-selected"),i._removeClass(n.$element,s?"ui-unselecting":"ui-selected")._addClass(n.$element,s?"ui-selecting":"ui-unselecting"),n.unselecting=!s,n.selecting=s,n.selected=s,s?i._trigger("selecting",e,{selecting:n.element}):i._trigger("unselecting",e,{unselecting:n.element}),!1):void 0}))},_mouseDrag:function(e){if(this.dragged=!0,!this.options.disabled){var i,s=this,n=this.options,o=this.opos[0],a=this.opos[1],r=e.pageX,h=e.pageY;return o>r&&(i=r,r=o,o=i),a>h&&(i=h,h=a,a=i),this.helper.css({left:o,top:a,width:r-o,height:h-a}),this.selectees.each(function(){var i=t.data(this,"selectable-item"),l=!1,c={};i&&i.element!==s.element[0]&&(c.left=i.left+s.elementPos.left,c.right=i.right+s.elementPos.left,c.top=i.top+s.elementPos.top,c.bottom=i.bottom+s.elementPos.top,"touch"===n.tolerance?l=!(c.left>r||o>c.right||c.top>h||a>c.bottom):"fit"===n.tolerance&&(l=c.left>o&&r>c.right&&c.top>a&&h>c.bottom),l?(i.selected&&(s._removeClass(i.$element,"ui-selected"),i.selected=!1),i.unselecting&&(s._removeClass(i.$element,"ui-unselecting"),i.unselecting=!1),i.selecting||(s._addClass(i.$element,"ui-selecting"),i.selecting=!0,s._trigger("selecting",e,{selecting:i.element}))):(i.selecting&&((e.metaKey||e.ctrlKey)&&i.startselected?(s._removeClass(i.$element,"ui-selecting"),i.selecting=!1,s._addClass(i.$element,"ui-selected"),i.selected=!0):(s._removeClass(i.$element,"ui-selecting"),i.selecting=!1,i.startselected&&(s._addClass(i.$element,"ui-unselecting"),i.unselecting=!0),s._trigger("unselecting",e,{unselecting:i.element}))),i.selected&&(e.metaKey||e.ctrlKey||i.startselected||(s._removeClass(i.$element,"ui-selected"),i.selected=!1,s._addClass(i.$element,"ui-unselecting"),i.unselecting=!0,s._trigger("unselecting",e,{unselecting:i.element})))))}),!1}},_mouseStop:function(e){var i=this;return this.dragged=!1,t(".ui-unselecting",this.element[0]).each(function(){var s=t.data(this,"selectable-item");i._removeClass(s.$element,"ui-unselecting"),s.unselecting=!1,s.startselected=!1,i._trigger("unselected",e,{unselected:s.element})}),t(".ui-selecting",this.element[0]).each(function(){var s=t.data(this,"selectable-item");i._removeClass(s.$element,"ui-selecting")._addClass(s.$element,"ui-selected"),s.selecting=!1,s.selected=!0,s.startselected=!0,i._trigger("selected",e,{selected:s.element})}),this._trigger("stop",e),this.helper.remove(),!1}}),t.widget("ui.sortable",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"sort",ready:!1,options:{appendTo:"parent",axis:!1,connectWith:!1,containment:!1,cursor:"auto",cursorAt:!1,dropOnEmpty:!0,forcePlaceholderSize:!1,forceHelperSize:!1,grid:!1,handle:!1,helper:"original",items:"> *",opacity:!1,placeholder:!1,revert:!1,scroll:!0,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1e3,activate:null,beforeStop:null,change:null,deactivate:null,out:null,over:null,receive:null,remove:null,sort:null,start:null,stop:null,update:null},_isOverAxis:function(t,e,i){return t>=e&&e+i>t},_isFloating:function(t){return/left|right/.test(t.css("float"))||/inline|table-cell/.test(t.css("display"))},_create:function(){this.containerCache={},this._addClass("ui-sortable"),this.refresh(),this.offset=this.element.offset(),this._mouseInit(),this._setHandleClassName(),this.ready=!0},_setOption:function(t,e){this._super(t,e),"handle"===t&&this._setHandleClassName()},_setHandleClassName:function(){var e=this;this._removeClass(this.element.find(".ui-sortable-handle"),"ui-sortable-handle"),t.each(this.items,function(){e._addClass(this.instance.options.handle?this.item.find(this.instance.options.handle):this.item,"ui-sortable-handle")})},_destroy:function(){this._mouseDestroy();for(var t=this.items.length-1;t>=0;t--)this.items[t].item.removeData(this.widgetName+"-item");return this},_mouseCapture:function(e,i){var s=null,n=!1,o=this;return this.reverting?!1:this.options.disabled||"static"===this.options.type?!1:(this._refreshItems(e),t(e.target).parents().each(function(){return t.data(this,o.widgetName+"-item")===o?(s=t(this),!1):void 0}),t.data(e.target,o.widgetName+"-item")===o&&(s=t(e.target)),s?!this.options.handle||i||(t(this.options.handle,s).find("*").addBack().each(function(){this===e.target&&(n=!0)}),n)?(this.currentItem=s,this._removeCurrentsFromItems(),!0):!1:!1)},_mouseStart:function(e,i,s){var n,o,a=this.options;if(this.currentContainer=this,this.refreshPositions(),this.helper=this._createHelper(e),this._cacheHelperProportions(),this._cacheMargins(),this.scrollParent=this.helper.scrollParent(),this.offset=this.currentItem.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},t.extend(this.offset,{click:{left:e.pageX-this.offset.left,top:e.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.helper.css("position","absolute"),this.cssPosition=this.helper.css("position"),this.originalPosition=this._generatePosition(e),this.originalPageX=e.pageX,this.originalPageY=e.pageY,a.cursorAt&&this._adjustOffsetFromHelper(a.cursorAt),this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]},this.helper[0]!==this.currentItem[0]&&this.currentItem.hide(),this._createPlaceholder(),a.containment&&this._setContainment(),a.cursor&&"auto"!==a.cursor&&(o=this.document.find("body"),this.storedCursor=o.css("cursor"),o.css("cursor",a.cursor),this.storedStylesheet=t("").appendTo(o)),a.opacity&&(this.helper.css("opacity")&&(this._storedOpacity=this.helper.css("opacity")),this.helper.css("opacity",a.opacity)),a.zIndex&&(this.helper.css("zIndex")&&(this._storedZIndex=this.helper.css("zIndex")),this.helper.css("zIndex",a.zIndex)),this.scrollParent[0]!==this.document[0]&&"HTML"!==this.scrollParent[0].tagName&&(this.overflowOffset=this.scrollParent.offset()),this._trigger("start",e,this._uiHash()),this._preserveHelperProportions||this._cacheHelperProportions(),!s)for(n=this.containers.length-1;n>=0;n--)this.containers[n]._trigger("activate",e,this._uiHash(this));return t.ui.ddmanager&&(t.ui.ddmanager.current=this),t.ui.ddmanager&&!a.dropBehaviour&&t.ui.ddmanager.prepareOffsets(this,e),this.dragging=!0,this._addClass(this.helper,"ui-sortable-helper"),this._mouseDrag(e),!0},_mouseDrag:function(e){var i,s,n,o,a=this.options,r=!1;for(this.position=this._generatePosition(e),this.positionAbs=this._convertPositionTo("absolute"),this.lastPositionAbs||(this.lastPositionAbs=this.positionAbs),this.options.scroll&&(this.scrollParent[0]!==this.document[0]&&"HTML"!==this.scrollParent[0].tagName?(this.overflowOffset.top+this.scrollParent[0].offsetHeight-e.pageY=0;i--)if(s=this.items[i],n=s.item[0],o=this._intersectsWithPointer(s),o&&s.instance===this.currentContainer&&n!==this.currentItem[0]&&this.placeholder[1===o?"next":"prev"]()[0]!==n&&!t.contains(this.placeholder[0],n)&&("semi-dynamic"===this.options.type?!t.contains(this.element[0],n):!0)){if(this.direction=1===o?"down":"up","pointer"!==this.options.tolerance&&!this._intersectsWithSides(s))break;this._rearrange(e,s),this._trigger("change",e,this._uiHash());break}return this._contactContainers(e),t.ui.ddmanager&&t.ui.ddmanager.drag(this,e),this._trigger("sort",e,this._uiHash()),this.lastPositionAbs=this.positionAbs,!1},_mouseStop:function(e,i){if(e){if(t.ui.ddmanager&&!this.options.dropBehaviour&&t.ui.ddmanager.drop(this,e),this.options.revert){var s=this,n=this.placeholder.offset(),o=this.options.axis,a={};o&&"x"!==o||(a.left=n.left-this.offset.parent.left-this.margins.left+(this.offsetParent[0]===this.document[0].body?0:this.offsetParent[0].scrollLeft)),o&&"y"!==o||(a.top=n.top-this.offset.parent.top-this.margins.top+(this.offsetParent[0]===this.document[0].body?0:this.offsetParent[0].scrollTop)),this.reverting=!0,t(this.helper).animate(a,parseInt(this.options.revert,10)||500,function(){s._clear(e)})}else this._clear(e,i);return!1}},cancel:function(){if(this.dragging){this._mouseUp(new t.Event("mouseup",{target:null})),"original"===this.options.helper?(this.currentItem.css(this._storedCSS),this._removeClass(this.currentItem,"ui-sortable-helper")):this.currentItem.show();for(var e=this.containers.length-1;e>=0;e--)this.containers[e]._trigger("deactivate",null,this._uiHash(this)),this.containers[e].containerCache.over&&(this.containers[e]._trigger("out",null,this._uiHash(this)),this.containers[e].containerCache.over=0)}return this.placeholder&&(this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]),"original"!==this.options.helper&&this.helper&&this.helper[0].parentNode&&this.helper.remove(),t.extend(this,{helper:null,dragging:!1,reverting:!1,_noFinalSort:null}),this.domPosition.prev?t(this.domPosition.prev).after(this.currentItem):t(this.domPosition.parent).prepend(this.currentItem)),this},serialize:function(e){var i=this._getItemsAsjQueryHW2(e&&e.connected),s=[];return e=e||{},t(i).each(function(){var i=(t(e.item||this).attr(e.attribute||"id")||"").match(e.expression||/(.+)[\-=_](.+)/);i&&s.push((e.key||i[1]+"[]")+"="+(e.key&&e.expression?i[1]:i[2]))}),!s.length&&e.key&&s.push(e.key+"="),s.join("&")},toArray:function(e){var i=this._getItemsAsjQueryHW2(e&&e.connected),s=[];return e=e||{},i.each(function(){s.push(t(e.item||this).attr(e.attribute||"id")||"")}),s},_intersectsWith:function(t){var e=this.positionAbs.left,i=e+this.helperProportions.width,s=this.positionAbs.top,n=s+this.helperProportions.height,o=t.left,a=o+t.width,r=t.top,h=r+t.height,l=this.offset.click.top,c=this.offset.click.left,u="x"===this.options.axis||s+l>r&&h>s+l,d="y"===this.options.axis||e+c>o&&a>e+c,p=u&&d;return"pointer"===this.options.tolerance||this.options.forcePointerForContainers||"pointer"!==this.options.tolerance&&this.helperProportions[this.floating?"width":"height"]>t[this.floating?"width":"height"]?p:e+this.helperProportions.width/2>o&&a>i-this.helperProportions.width/2&&s+this.helperProportions.height/2>r&&h>n-this.helperProportions.height/2},_intersectsWithPointer:function(t){var e,i,s="x"===this.options.axis||this._isOverAxis(this.positionAbs.top+this.offset.click.top,t.top,t.height),n="y"===this.options.axis||this._isOverAxis(this.positionAbs.left+this.offset.click.left,t.left,t.width),o=s&&n;return o?(e=this._getDragVerticalDirection(),i=this._getDragHorizontalDirection(),this.floating?"right"===i||"down"===e?2:1:e&&("down"===e?2:1)):!1},_intersectsWithSides:function(t){var e=this._isOverAxis(this.positionAbs.top+this.offset.click.top,t.top+t.height/2,t.height),i=this._isOverAxis(this.positionAbs.left+this.offset.click.left,t.left+t.width/2,t.width),s=this._getDragVerticalDirection(),n=this._getDragHorizontalDirection();return this.floating&&n?"right"===n&&i||"left"===n&&!i:s&&("down"===s&&e||"up"===s&&!e)},_getDragVerticalDirection:function(){var t=this.positionAbs.top-this.lastPositionAbs.top;return 0!==t&&(t>0?"down":"up")},_getDragHorizontalDirection:function(){var t=this.positionAbs.left-this.lastPositionAbs.left;return 0!==t&&(t>0?"right":"left")},refresh:function(t){return this._refreshItems(t),this._setHandleClassName(),this.refreshPositions(),this},_connectWith:function(){var t=this.options;return t.connectWith.constructor===String?[t.connectWith]:t.connectWith},_getItemsAsjQueryHW2:function(e){function i(){r.push(this)}var s,n,o,a,r=[],h=[],l=this._connectWith();if(l&&e)for(s=l.length-1;s>=0;s--)for(o=t(l[s],this.document[0]),n=o.length-1;n>=0;n--)a=t.data(o[n],this.widgetFullName),a&&a!==this&&!a.options.disabled&&h.push([t.isFunction(a.options.items)?a.options.items.call(a.element):t(a.options.items,a.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),a]);for(h.push([t.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):t(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]),s=h.length-1;s>=0;s--)h[s][0].each(i);return t(r)},_removeCurrentsFromItems:function(){var e=this.currentItem.find(":data("+this.widgetName+"-item)");this.items=t.grep(this.items,function(t){for(var i=0;e.length>i;i++)if(e[i]===t.item[0])return!1;return!0})},_refreshItems:function(e){this.items=[],this.containers=[this];var i,s,n,o,a,r,h,l,c=this.items,u=[[t.isFunction(this.options.items)?this.options.items.call(this.element[0],e,{item:this.currentItem}):t(this.options.items,this.element),this]],d=this._connectWith();if(d&&this.ready)for(i=d.length-1;i>=0;i--)for(n=t(d[i],this.document[0]),s=n.length-1;s>=0;s--)o=t.data(n[s],this.widgetFullName),o&&o!==this&&!o.options.disabled&&(u.push([t.isFunction(o.options.items)?o.options.items.call(o.element[0],e,{item:this.currentItem}):t(o.options.items,o.element),o]),this.containers.push(o));for(i=u.length-1;i>=0;i--)for(a=u[i][1],r=u[i][0],s=0,l=r.length;l>s;s++)h=t(r[s]),h.data(this.widgetName+"-item",a),c.push({item:h,instance:a,width:0,height:0,left:0,top:0})},refreshPositions:function(e){this.floating=this.items.length?"x"===this.options.axis||this._isFloating(this.items[0].item):!1,this.offsetParent&&this.helper&&(this.offset.parent=this._getParentOffset());var i,s,n,o;for(i=this.items.length-1;i>=0;i--)s=this.items[i],s.instance!==this.currentContainer&&this.currentContainer&&s.item[0]!==this.currentItem[0]||(n=this.options.toleranceElement?t(this.options.toleranceElement,s.item):s.item,e||(s.width=n.outerWidth(),s.height=n.outerHeight()),o=n.offset(),s.left=o.left,s.top=o.top);if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(i=this.containers.length-1;i>=0;i--)o=this.containers[i].element.offset(),this.containers[i].containerCache.left=o.left,this.containers[i].containerCache.top=o.top,this.containers[i].containerCache.width=this.containers[i].element.outerWidth(),this.containers[i].containerCache.height=this.containers[i].element.outerHeight();return this},_createPlaceholder:function(e){e=e||this;var i,s=e.options;s.placeholder&&s.placeholder.constructor!==String||(i=s.placeholder,s.placeholder={element:function(){var s=e.currentItem[0].nodeName.toLowerCase(),n=t("<"+s+">",e.document[0]);return e._addClass(n,"ui-sortable-placeholder",i||e.currentItem[0].className)._removeClass(n,"ui-sortable-helper"),"tbody"===s?e._createTrPlaceholder(e.currentItem.find("tr").eq(0),t("",e.document[0]).appendTo(n)):"tr"===s?e._createTrPlaceholder(e.currentItem,n):"img"===s&&n.attr("src",e.currentItem.attr("src")),i||n.css("visibility","hidden"),n},update:function(t,n){(!i||s.forcePlaceholderSize)&&(n.height()||n.height(e.currentItem.innerHeight()-parseInt(e.currentItem.css("paddingTop")||0,10)-parseInt(e.currentItem.css("paddingBottom")||0,10)),n.width()||n.width(e.currentItem.innerWidth()-parseInt(e.currentItem.css("paddingLeft")||0,10)-parseInt(e.currentItem.css("paddingRight")||0,10)))}}),e.placeholder=t(s.placeholder.element.call(e.element,e.currentItem)),e.currentItem.after(e.placeholder),s.placeholder.update(e,e.placeholder)},_createTrPlaceholder:function(e,i){var s=this;e.children().each(function(){t(" ",s.document[0]).attr("colspan",t(this).attr("colspan")||1).appendTo(i)})},_contactContainers:function(e){var i,s,n,o,a,r,h,l,c,u,d=null,p=null;for(i=this.containers.length-1;i>=0;i--)if(!t.contains(this.currentItem[0],this.containers[i].element[0]))if(this._intersectsWith(this.containers[i].containerCache)){if(d&&t.contains(this.containers[i].element[0],d.element[0]))continue;d=this.containers[i],p=i}else this.containers[i].containerCache.over&&(this.containers[i]._trigger("out",e,this._uiHash(this)),this.containers[i].containerCache.over=0);if(d)if(1===this.containers.length)this.containers[p].containerCache.over||(this.containers[p]._trigger("over",e,this._uiHash(this)),this.containers[p].containerCache.over=1);else{for(n=1e4,o=null,c=d.floating||this._isFloating(this.currentItem),a=c?"left":"top",r=c?"width":"height",u=c?"pageX":"pageY",s=this.items.length-1;s>=0;s--)t.contains(this.containers[p].element[0],this.items[s].item[0])&&this.items[s].item[0]!==this.currentItem[0]&&(h=this.items[s].item.offset()[a],l=!1,e[u]-h>this.items[s][r]/2&&(l=!0),n>Math.abs(e[u]-h)&&(n=Math.abs(e[u]-h),o=this.items[s],this.direction=l?"up":"down"));if(!o&&!this.options.dropOnEmpty)return;if(this.currentContainer===this.containers[p])return this.currentContainer.containerCache.over||(this.containers[p]._trigger("over",e,this._uiHash()),this.currentContainer.containerCache.over=1),void 0;o?this._rearrange(e,o,null,!0):this._rearrange(e,null,this.containers[p].element,!0),this._trigger("change",e,this._uiHash()),this.containers[p]._trigger("change",e,this._uiHash(this)),this.currentContainer=this.containers[p],this.options.placeholder.update(this.currentContainer,this.placeholder),this.containers[p]._trigger("over",e,this._uiHash(this)),this.containers[p].containerCache.over=1}},_createHelper:function(e){var i=this.options,s=t.isFunction(i.helper)?t(i.helper.apply(this.element[0],[e,this.currentItem])):"clone"===i.helper?this.currentItem.clone():this.currentItem;return s.parents("body").length||t("parent"!==i.appendTo?i.appendTo:this.currentItem[0].parentNode)[0].appendChild(s[0]),s[0]===this.currentItem[0]&&(this._storedCSS={width:this.currentItem[0].style.width,height:this.currentItem[0].style.height,position:this.currentItem.css("position"),top:this.currentItem.css("top"),left:this.currentItem.css("left")}),(!s[0].style.width||i.forceHelperSize)&&s.width(this.currentItem.width()),(!s[0].style.height||i.forceHelperSize)&&s.height(this.currentItem.height()),s},_adjustOffsetFromHelper:function(e){"string"==typeof e&&(e=e.split(" ")),t.isArray(e)&&(e={left:+e[0],top:+e[1]||0}),"left"in e&&(this.offset.click.left=e.left+this.margins.left),"right"in e&&(this.offset.click.left=this.helperProportions.width-e.right+this.margins.left),"top"in e&&(this.offset.click.top=e.top+this.margins.top),"bottom"in e&&(this.offset.click.top=this.helperProportions.height-e.bottom+this.margins.top)},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var e=this.offsetParent.offset();return"absolute"===this.cssPosition&&this.scrollParent[0]!==this.document[0]&&t.contains(this.scrollParent[0],this.offsetParent[0])&&(e.left+=this.scrollParent.scrollLeft(),e.top+=this.scrollParent.scrollTop()),(this.offsetParent[0]===this.document[0].body||this.offsetParent[0].tagName&&"html"===this.offsetParent[0].tagName.toLowerCase()&&t.ui.ie)&&(e={top:0,left:0}),{top:e.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:e.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if("relative"===this.cssPosition){var t=this.currentItem.position();return{top:t.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:t.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.currentItem.css("marginLeft"),10)||0,top:parseInt(this.currentItem.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var e,i,s,n=this.options;"parent"===n.containment&&(n.containment=this.helper[0].parentNode),("document"===n.containment||"window"===n.containment)&&(this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,"document"===n.containment?this.document.width():this.window.width()-this.helperProportions.width-this.margins.left,("document"===n.containment?this.document.height()||document.body.parentNode.scrollHeight:this.window.height()||this.document[0].body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]),/^(document|window|parent)$/.test(n.containment)||(e=t(n.containment)[0],i=t(n.containment).offset(),s="hidden"!==t(e).css("overflow"),this.containment=[i.left+(parseInt(t(e).css("borderLeftWidth"),10)||0)+(parseInt(t(e).css("paddingLeft"),10)||0)-this.margins.left,i.top+(parseInt(t(e).css("borderTopWidth"),10)||0)+(parseInt(t(e).css("paddingTop"),10)||0)-this.margins.top,i.left+(s?Math.max(e.scrollWidth,e.offsetWidth):e.offsetWidth)-(parseInt(t(e).css("borderLeftWidth"),10)||0)-(parseInt(t(e).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,i.top+(s?Math.max(e.scrollHeight,e.offsetHeight):e.offsetHeight)-(parseInt(t(e).css("borderTopWidth"),10)||0)-(parseInt(t(e).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top])},_convertPositionTo:function(e,i){i||(i=this.position);var s="absolute"===e?1:-1,n="absolute"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&t.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,o=/(html|body)/i.test(n[0].tagName);return{top:i.top+this.offset.relative.top*s+this.offset.parent.top*s-("fixed"===this.cssPosition?-this.scrollParent.scrollTop():o?0:n.scrollTop())*s,left:i.left+this.offset.relative.left*s+this.offset.parent.left*s-("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():o?0:n.scrollLeft())*s}},_generatePosition:function(e){var i,s,n=this.options,o=e.pageX,a=e.pageY,r="absolute"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&t.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,h=/(html|body)/i.test(r[0].tagName);return"relative"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&this.scrollParent[0]!==this.offsetParent[0]||(this.offset.relative=this._getRelativeOffset()),this.originalPosition&&(this.containment&&(e.pageX-this.offset.click.leftthis.containment[2]&&(o=this.containment[2]+this.offset.click.left),e.pageY-this.offset.click.top>this.containment[3]&&(a=this.containment[3]+this.offset.click.top)),n.grid&&(i=this.originalPageY+Math.round((a-this.originalPageY)/n.grid[1])*n.grid[1],a=this.containment?i-this.offset.click.top>=this.containment[1]&&i-this.offset.click.top<=this.containment[3]?i:i-this.offset.click.top>=this.containment[1]?i-n.grid[1]:i+n.grid[1]:i,s=this.originalPageX+Math.round((o-this.originalPageX)/n.grid[0])*n.grid[0],o=this.containment?s-this.offset.click.left>=this.containment[0]&&s-this.offset.click.left<=this.containment[2]?s:s-this.offset.click.left>=this.containment[0]?s-n.grid[0]:s+n.grid[0]:s)),{top:a-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.scrollParent.scrollTop():h?0:r.scrollTop()),left:o-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():h?0:r.scrollLeft())}},_rearrange:function(t,e,i,s){i?i[0].appendChild(this.placeholder[0]):e.item[0].parentNode.insertBefore(this.placeholder[0],"down"===this.direction?e.item[0]:e.item[0].nextSibling),this.counter=this.counter?++this.counter:1;var n=this.counter;this._delay(function(){n===this.counter&&this.refreshPositions(!s)})},_clear:function(t,e){function i(t,e,i){return function(s){i._trigger(t,s,e._uiHash(e))}}this.reverting=!1;var s,n=[];if(!this._noFinalSort&&this.currentItem.parent().length&&this.placeholder.before(this.currentItem),this._noFinalSort=null,this.helper[0]===this.currentItem[0]){for(s in this._storedCSS)("auto"===this._storedCSS[s]||"static"===this._storedCSS[s])&&(this._storedCSS[s]="");this.currentItem.css(this._storedCSS),this._removeClass(this.currentItem,"ui-sortable-helper")}else this.currentItem.show();for(this.fromOutside&&!e&&n.push(function(t){this._trigger("receive",t,this._uiHash(this.fromOutside))}),!this.fromOutside&&this.domPosition.prev===this.currentItem.prev().not(".ui-sortable-helper")[0]&&this.domPosition.parent===this.currentItem.parent()[0]||e||n.push(function(t){this._trigger("update",t,this._uiHash())}),this!==this.currentContainer&&(e||(n.push(function(t){this._trigger("remove",t,this._uiHash())}),n.push(function(t){return function(e){t._trigger("receive",e,this._uiHash(this))}}.call(this,this.currentContainer)),n.push(function(t){return function(e){t._trigger("update",e,this._uiHash(this))}}.call(this,this.currentContainer)))),s=this.containers.length-1;s>=0;s--)e||n.push(i("deactivate",this,this.containers[s])),this.containers[s].containerCache.over&&(n.push(i("out",this,this.containers[s])),this.containers[s].containerCache.over=0);if(this.storedCursor&&(this.document.find("body").css("cursor",this.storedCursor),this.storedStylesheet.remove()),this._storedOpacity&&this.helper.css("opacity",this._storedOpacity),this._storedZIndex&&this.helper.css("zIndex","auto"===this._storedZIndex?"":this._storedZIndex),this.dragging=!1,e||this._trigger("beforeStop",t,this._uiHash()),this.placeholder[0].parentNode.removeChild(this.placeholder[0]),this.cancelHelperRemoval||(this.helper[0]!==this.currentItem[0]&&this.helper.remove(),this.helper=null),!e){for(s=0;n.length>s;s++)n[s].call(this,t);this._trigger("stop",t,this._uiHash())}return this.fromOutside=!1,!this.cancelHelperRemoval},_trigger:function(){t.Widget.prototype._trigger.apply(this,arguments)===!1&&this.cancel()},_uiHash:function(e){var i=e||this;return{helper:i.helper,placeholder:i.placeholder||t([]),position:i.position,originalPosition:i.originalPosition,offset:i.positionAbs,item:i.currentItem,sender:e?e.element:null}}}),t.widget("ui.accordion",{version:"1.12.1",options:{active:0,animate:{},classes:{"ui-accordion-header":"ui-corner-top","ui-accordion-header-collapsed":"ui-corner-all","ui-accordion-content":"ui-corner-bottom"},collapsible:!1,event:"click",header:"> li > :first-child, > :not(li):even",heightStyle:"auto",icons:{activeHeader:"ui-icon-triangle-1-s",header:"ui-icon-triangle-1-e"},activate:null,beforeActivate:null},hideProps:{borderTopWidth:"hide",borderBottomWidth:"hide",paddingTop:"hide",paddingBottom:"hide",height:"hide"},showProps:{borderTopWidth:"show",borderBottomWidth:"show",paddingTop:"show",paddingBottom:"show",height:"show"},_create:function(){var e=this.options;this.prevShow=this.prevHide=t(),this._addClass("ui-accordion","ui-widget ui-helper-reset"),this.element.attr("role","tablist"),e.collapsible||e.active!==!1&&null!=e.active||(e.active=0),this._processPanels(),0>e.active&&(e.active+=this.headers.length),this._refresh()},_getCreateEventData:function(){return{header:this.active,panel:this.active.length?this.active.next():t()}},_createIcons:function(){var e,i,s=this.options.icons;s&&(e=t(""),this._addClass(e,"ui-accordion-header-icon","ui-icon "+s.header),e.prependTo(this.headers),i=this.active.children(".ui-accordion-header-icon"),this._removeClass(i,s.header)._addClass(i,null,s.activeHeader)._addClass(this.headers,"ui-accordion-icons")) +},_destroyIcons:function(){this._removeClass(this.headers,"ui-accordion-icons"),this.headers.children(".ui-accordion-header-icon").remove()},_destroy:function(){var t;this.element.removeAttr("role"),this.headers.removeAttr("role aria-expanded aria-selected aria-controls tabIndex").removeUniqueId(),this._destroyIcons(),t=this.headers.next().css("display","").removeAttr("role aria-hidden aria-labelledby").removeUniqueId(),"content"!==this.options.heightStyle&&t.css("height","")},_setOption:function(t,e){return"active"===t?(this._activate(e),void 0):("event"===t&&(this.options.event&&this._off(this.headers,this.options.event),this._setupEvents(e)),this._super(t,e),"collapsible"!==t||e||this.options.active!==!1||this._activate(0),"icons"===t&&(this._destroyIcons(),e&&this._createIcons()),void 0)},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",t),this._toggleClass(null,"ui-state-disabled",!!t),this._toggleClass(this.headers.add(this.headers.next()),null,"ui-state-disabled",!!t)},_keydown:function(e){if(!e.altKey&&!e.ctrlKey){var i=t.ui.keyCode,s=this.headers.length,n=this.headers.index(e.target),o=!1;switch(e.keyCode){case i.RIGHT:case i.DOWN:o=this.headers[(n+1)%s];break;case i.LEFT:case i.UP:o=this.headers[(n-1+s)%s];break;case i.SPACE:case i.ENTER:this._eventHandler(e);break;case i.HOME:o=this.headers[0];break;case i.END:o=this.headers[s-1]}o&&(t(e.target).attr("tabIndex",-1),t(o).attr("tabIndex",0),t(o).trigger("focus"),e.preventDefault())}},_panelKeyDown:function(e){e.keyCode===t.ui.keyCode.UP&&e.ctrlKey&&t(e.currentTarget).prev().trigger("focus")},refresh:function(){var e=this.options;this._processPanels(),e.active===!1&&e.collapsible===!0||!this.headers.length?(e.active=!1,this.active=t()):e.active===!1?this._activate(0):this.active.length&&!t.contains(this.element[0],this.active[0])?this.headers.length===this.headers.find(".ui-state-disabled").length?(e.active=!1,this.active=t()):this._activate(Math.max(0,e.active-1)):e.active=this.headers.index(this.active),this._destroyIcons(),this._refresh()},_processPanels:function(){var t=this.headers,e=this.panels;this.headers=this.element.find(this.options.header),this._addClass(this.headers,"ui-accordion-header ui-accordion-header-collapsed","ui-state-default"),this.panels=this.headers.next().filter(":not(.ui-accordion-content-active)").hide(),this._addClass(this.panels,"ui-accordion-content","ui-helper-reset ui-widget-content"),e&&(this._off(t.not(this.headers)),this._off(e.not(this.panels)))},_refresh:function(){var e,i=this.options,s=i.heightStyle,n=this.element.parent();this.active=this._findActive(i.active),this._addClass(this.active,"ui-accordion-header-active","ui-state-active")._removeClass(this.active,"ui-accordion-header-collapsed"),this._addClass(this.active.next(),"ui-accordion-content-active"),this.active.next().show(),this.headers.attr("role","tab").each(function(){var e=t(this),i=e.uniqueId().attr("id"),s=e.next(),n=s.uniqueId().attr("id");e.attr("aria-controls",n),s.attr("aria-labelledby",i)}).next().attr("role","tabpanel"),this.headers.not(this.active).attr({"aria-selected":"false","aria-expanded":"false",tabIndex:-1}).next().attr({"aria-hidden":"true"}).hide(),this.active.length?this.active.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0}).next().attr({"aria-hidden":"false"}):this.headers.eq(0).attr("tabIndex",0),this._createIcons(),this._setupEvents(i.event),"fill"===s?(e=n.height(),this.element.siblings(":visible").each(function(){var i=t(this),s=i.css("position");"absolute"!==s&&"fixed"!==s&&(e-=i.outerHeight(!0))}),this.headers.each(function(){e-=t(this).outerHeight(!0)}),this.headers.next().each(function(){t(this).height(Math.max(0,e-t(this).innerHeight()+t(this).height()))}).css("overflow","auto")):"auto"===s&&(e=0,this.headers.next().each(function(){var i=t(this).is(":visible");i||t(this).show(),e=Math.max(e,t(this).css("height","").height()),i||t(this).hide()}).height(e))},_activate:function(e){var i=this._findActive(e)[0];i!==this.active[0]&&(i=i||this.active[0],this._eventHandler({target:i,currentTarget:i,preventDefault:t.noop}))},_findActive:function(e){return"number"==typeof e?this.headers.eq(e):t()},_setupEvents:function(e){var i={keydown:"_keydown"};e&&t.each(e.split(" "),function(t,e){i[e]="_eventHandler"}),this._off(this.headers.add(this.headers.next())),this._on(this.headers,i),this._on(this.headers.next(),{keydown:"_panelKeyDown"}),this._hoverable(this.headers),this._focusable(this.headers)},_eventHandler:function(e){var i,s,n=this.options,o=this.active,a=t(e.currentTarget),r=a[0]===o[0],h=r&&n.collapsible,l=h?t():a.next(),c=o.next(),u={oldHeader:o,oldPanel:c,newHeader:h?t():a,newPanel:l};e.preventDefault(),r&&!n.collapsible||this._trigger("beforeActivate",e,u)===!1||(n.active=h?!1:this.headers.index(a),this.active=r?t():a,this._toggle(u),this._removeClass(o,"ui-accordion-header-active","ui-state-active"),n.icons&&(i=o.children(".ui-accordion-header-icon"),this._removeClass(i,null,n.icons.activeHeader)._addClass(i,null,n.icons.header)),r||(this._removeClass(a,"ui-accordion-header-collapsed")._addClass(a,"ui-accordion-header-active","ui-state-active"),n.icons&&(s=a.children(".ui-accordion-header-icon"),this._removeClass(s,null,n.icons.header)._addClass(s,null,n.icons.activeHeader)),this._addClass(a.next(),"ui-accordion-content-active")))},_toggle:function(e){var i=e.newPanel,s=this.prevShow.length?this.prevShow:e.oldPanel;this.prevShow.add(this.prevHide).stop(!0,!0),this.prevShow=i,this.prevHide=s,this.options.animate?this._animate(i,s,e):(s.hide(),i.show(),this._toggleComplete(e)),s.attr({"aria-hidden":"true"}),s.prev().attr({"aria-selected":"false","aria-expanded":"false"}),i.length&&s.length?s.prev().attr({tabIndex:-1,"aria-expanded":"false"}):i.length&&this.headers.filter(function(){return 0===parseInt(t(this).attr("tabIndex"),10)}).attr("tabIndex",-1),i.attr("aria-hidden","false").prev().attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0})},_animate:function(t,e,i){var s,n,o,a=this,r=0,h=t.css("box-sizing"),l=t.length&&(!e.length||t.index()",delay:300,options:{icons:{submenu:"ui-icon-caret-1-e"},items:"> *",menus:"ul",position:{my:"left top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.mouseHandled=!1,this.element.uniqueId().attr({role:this.options.role,tabIndex:0}),this._addClass("ui-menu","ui-widget ui-widget-content"),this._on({"mousedown .ui-menu-item":function(t){t.preventDefault()},"click .ui-menu-item":function(e){var i=t(e.target),s=t(t.ui.safeActiveElement(this.document[0]));!this.mouseHandled&&i.not(".ui-state-disabled").length&&(this.select(e),e.isPropagationStopped()||(this.mouseHandled=!0),i.has(".ui-menu").length?this.expand(e):!this.element.is(":focus")&&s.closest(".ui-menu").length&&(this.element.trigger("focus",[!0]),this.active&&1===this.active.parents(".ui-menu").length&&clearTimeout(this.timer)))},"mouseenter .ui-menu-item":function(e){if(!this.previousFilter){var i=t(e.target).closest(".ui-menu-item"),s=t(e.currentTarget);i[0]===s[0]&&(this._removeClass(s.siblings().children(".ui-state-active"),null,"ui-state-active"),this.focus(e,s))}},mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(t,e){var i=this.active||this.element.find(this.options.items).eq(0);e||this.focus(t,i)},blur:function(e){this._delay(function(){var i=!t.contains(this.element[0],t.ui.safeActiveElement(this.document[0]));i&&this.collapseAll(e)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(t){this._closeOnDocumentClick(t)&&this.collapseAll(t),this.mouseHandled=!1}})},_destroy:function(){var e=this.element.find(".ui-menu-item").removeAttr("role aria-disabled"),i=e.children(".ui-menu-item-wrapper").removeUniqueId().removeAttr("tabIndex role aria-haspopup");this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeAttr("role aria-labelledby aria-expanded aria-hidden aria-disabled tabIndex").removeUniqueId().show(),i.children().each(function(){var e=t(this);e.data("ui-menu-submenu-caret")&&e.remove()})},_keydown:function(e){var i,s,n,o,a=!0;switch(e.keyCode){case t.ui.keyCode.PAGE_UP:this.previousPage(e);break;case t.ui.keyCode.PAGE_DOWN:this.nextPage(e);break;case t.ui.keyCode.HOME:this._move("first","first",e);break;case t.ui.keyCode.END:this._move("last","last",e);break;case t.ui.keyCode.UP:this.previous(e);break;case t.ui.keyCode.DOWN:this.next(e);break;case t.ui.keyCode.LEFT:this.collapse(e);break;case t.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(e);break;case t.ui.keyCode.ENTER:case t.ui.keyCode.SPACE:this._activate(e);break;case t.ui.keyCode.ESCAPE:this.collapse(e);break;default:a=!1,s=this.previousFilter||"",o=!1,n=e.keyCode>=96&&105>=e.keyCode?""+(e.keyCode-96):String.fromCharCode(e.keyCode),clearTimeout(this.filterTimer),n===s?o=!0:n=s+n,i=this._filterMenuItems(n),i=o&&-1!==i.index(this.active.next())?this.active.nextAll(".ui-menu-item"):i,i.length||(n=String.fromCharCode(e.keyCode),i=this._filterMenuItems(n)),i.length?(this.focus(e,i),this.previousFilter=n,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter}a&&e.preventDefault()},_activate:function(t){this.active&&!this.active.is(".ui-state-disabled")&&(this.active.children("[aria-haspopup='true']").length?this.expand(t):this.select(t))},refresh:function(){var e,i,s,n,o,a=this,r=this.options.icons.submenu,h=this.element.find(this.options.menus);this._toggleClass("ui-menu-icons",null,!!this.element.find(".ui-icon").length),s=h.filter(":not(.ui-menu)").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var e=t(this),i=e.prev(),s=t("").data("ui-menu-submenu-caret",!0);a._addClass(s,"ui-menu-icon","ui-icon "+r),i.attr("aria-haspopup","true").prepend(s),e.attr("aria-labelledby",i.attr("id"))}),this._addClass(s,"ui-menu","ui-widget ui-widget-content ui-front"),e=h.add(this.element),i=e.find(this.options.items),i.not(".ui-menu-item").each(function(){var e=t(this);a._isDivider(e)&&a._addClass(e,"ui-menu-divider","ui-widget-content")}),n=i.not(".ui-menu-item, .ui-menu-divider"),o=n.children().not(".ui-menu").uniqueId().attr({tabIndex:-1,role:this._itemRole()}),this._addClass(n,"ui-menu-item")._addClass(o,"ui-menu-item-wrapper"),i.filter(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!t.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},_setOption:function(t,e){if("icons"===t){var i=this.element.find(".ui-menu-icon");this._removeClass(i,null,this.options.icons.submenu)._addClass(i,null,e.submenu)}this._super(t,e)},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",t+""),this._toggleClass(null,"ui-state-disabled",!!t)},focus:function(t,e){var i,s,n;this.blur(t,t&&"focus"===t.type),this._scrollIntoView(e),this.active=e.first(),s=this.active.children(".ui-menu-item-wrapper"),this._addClass(s,null,"ui-state-active"),this.options.role&&this.element.attr("aria-activedescendant",s.attr("id")),n=this.active.parent().closest(".ui-menu-item").children(".ui-menu-item-wrapper"),this._addClass(n,null,"ui-state-active"),t&&"keydown"===t.type?this._close():this.timer=this._delay(function(){this._close()},this.delay),i=e.children(".ui-menu"),i.length&&t&&/^mouse/.test(t.type)&&this._startOpening(i),this.activeMenu=e.parent(),this._trigger("focus",t,{item:e})},_scrollIntoView:function(e){var i,s,n,o,a,r;this._hasScroll()&&(i=parseFloat(t.css(this.activeMenu[0],"borderTopWidth"))||0,s=parseFloat(t.css(this.activeMenu[0],"paddingTop"))||0,n=e.offset().top-this.activeMenu.offset().top-i-s,o=this.activeMenu.scrollTop(),a=this.activeMenu.height(),r=e.outerHeight(),0>n?this.activeMenu.scrollTop(o+n):n+r>a&&this.activeMenu.scrollTop(o+n-a+r))},blur:function(t,e){e||clearTimeout(this.timer),this.active&&(this._removeClass(this.active.children(".ui-menu-item-wrapper"),null,"ui-state-active"),this._trigger("blur",t,{item:this.active}),this.active=null)},_startOpening:function(t){clearTimeout(this.timer),"true"===t.attr("aria-hidden")&&(this.timer=this._delay(function(){this._close(),this._open(t)},this.delay))},_open:function(e){var i=t.extend({of:this.active},this.options.position);clearTimeout(this.timer),this.element.find(".ui-menu").not(e.parents(".ui-menu")).hide().attr("aria-hidden","true"),e.show().removeAttr("aria-hidden").attr("aria-expanded","true").position(i)},collapseAll:function(e,i){clearTimeout(this.timer),this.timer=this._delay(function(){var s=i?this.element:t(e&&e.target).closest(this.element.find(".ui-menu"));s.length||(s=this.element),this._close(s),this.blur(e),this._removeClass(s.find(".ui-state-active"),null,"ui-state-active"),this.activeMenu=s},this.delay)},_close:function(t){t||(t=this.active?this.active.parent():this.element),t.find(".ui-menu").hide().attr("aria-hidden","true").attr("aria-expanded","false")},_closeOnDocumentClick:function(e){return!t(e.target).closest(".ui-menu").length},_isDivider:function(t){return!/[^\-\u2014\u2013\s]/.test(t.text())},collapse:function(t){var e=this.active&&this.active.parent().closest(".ui-menu-item",this.element);e&&e.length&&(this._close(),this.focus(t,e))},expand:function(t){var e=this.active&&this.active.children(".ui-menu ").find(this.options.items).first();e&&e.length&&(this._open(e.parent()),this._delay(function(){this.focus(t,e)}))},next:function(t){this._move("next","first",t)},previous:function(t){this._move("prev","last",t)},isFirstItem:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},isLastItem:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},_move:function(t,e,i){var s;this.active&&(s="first"===t||"last"===t?this.active["first"===t?"prevAll":"nextAll"](".ui-menu-item").eq(-1):this.active[t+"All"](".ui-menu-item").eq(0)),s&&s.length&&this.active||(s=this.activeMenu.find(this.options.items)[e]()),this.focus(i,s)},nextPage:function(e){var i,s,n;return this.active?(this.isLastItem()||(this._hasScroll()?(s=this.active.offset().top,n=this.element.height(),this.active.nextAll(".ui-menu-item").each(function(){return i=t(this),0>i.offset().top-s-n}),this.focus(e,i)):this.focus(e,this.activeMenu.find(this.options.items)[this.active?"last":"first"]())),void 0):(this.next(e),void 0)},previousPage:function(e){var i,s,n;return this.active?(this.isFirstItem()||(this._hasScroll()?(s=this.active.offset().top,n=this.element.height(),this.active.prevAll(".ui-menu-item").each(function(){return i=t(this),i.offset().top-s+n>0}),this.focus(e,i)):this.focus(e,this.activeMenu.find(this.options.items).first())),void 0):(this.next(e),void 0)},_hasScroll:function(){return this.element.outerHeight()",options:{appendTo:null,autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},requestIndex:0,pending:0,_create:function(){var e,i,s,n=this.element[0].nodeName.toLowerCase(),o="textarea"===n,a="input"===n;this.isMultiLine=o||!a&&this._isContentEditable(this.element),this.valueMethod=this.element[o||a?"val":"text"],this.isNewMenu=!0,this._addClass("ui-autocomplete-input"),this.element.attr("autocomplete","off"),this._on(this.element,{keydown:function(n){if(this.element.prop("readOnly"))return e=!0,s=!0,i=!0,void 0;e=!1,s=!1,i=!1;var o=t.ui.keyCode;switch(n.keyCode){case o.PAGE_UP:e=!0,this._move("previousPage",n);break;case o.PAGE_DOWN:e=!0,this._move("nextPage",n);break;case o.UP:e=!0,this._keyEvent("previous",n);break;case o.DOWN:e=!0,this._keyEvent("next",n);break;case o.ENTER:this.menu.active&&(e=!0,n.preventDefault(),this.menu.select(n));break;case o.TAB:this.menu.active&&this.menu.select(n);break;case o.ESCAPE:this.menu.element.is(":visible")&&(this.isMultiLine||this._value(this.term),this.close(n),n.preventDefault());break;default:i=!0,this._searchTimeout(n)}},keypress:function(s){if(e)return e=!1,(!this.isMultiLine||this.menu.element.is(":visible"))&&s.preventDefault(),void 0;if(!i){var n=t.ui.keyCode;switch(s.keyCode){case n.PAGE_UP:this._move("previousPage",s);break;case n.PAGE_DOWN:this._move("nextPage",s);break;case n.UP:this._keyEvent("previous",s);break;case n.DOWN:this._keyEvent("next",s)}}},input:function(t){return s?(s=!1,t.preventDefault(),void 0):(this._searchTimeout(t),void 0)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(t){return this.cancelBlur?(delete this.cancelBlur,void 0):(clearTimeout(this.searching),this.close(t),this._change(t),void 0)}}),this._initSource(),this.menu=t("