diff --git a/Cargo.toml b/Cargo.toml index df920cff..3b7c11cc 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "clap" -version = "0.4.10" +version = "0.4.11" authors = ["Kevin K. "] exclude = ["docs/*", "examples/*", "tests/*"] description = "A Command Line Argument Parser written in Rust" diff --git a/code.bak b/code.bak deleted file mode 100644 index 986feb51..00000000 --- a/code.bak +++ /dev/null @@ -1,17 +0,0 @@ -#![crate_type= "lib"] - -#![feature(libc)] -#![feature(exit_status)] - -// DOCS - -pub use args::{Arg, SubCommand, ArgMatches}; -pub use app::App; - -mod app; -mod args; - -#[cfg(test)] -mod tests { - use super::*; -} diff --git a/docs/FiraSans-Medium.woff b/docs/FiraSans-Medium.woff new file mode 100644 index 00000000..56272277 Binary files /dev/null and b/docs/FiraSans-Medium.woff differ diff --git a/docs/FiraSans-Regular.woff b/docs/FiraSans-Regular.woff new file mode 100644 index 00000000..9ff40445 Binary files /dev/null and b/docs/FiraSans-Regular.woff differ diff --git a/docs/Heuristica-Italic.woff b/docs/Heuristica-Italic.woff new file mode 100644 index 00000000..b0cebf01 Binary files /dev/null and b/docs/Heuristica-Italic.woff differ diff --git a/docs/SourceCodePro-Regular.woff b/docs/SourceCodePro-Regular.woff new file mode 100644 index 00000000..55766709 Binary files /dev/null and b/docs/SourceCodePro-Regular.woff differ diff --git a/docs/SourceCodePro-Semibold.woff b/docs/SourceCodePro-Semibold.woff new file mode 100644 index 00000000..ca972a11 Binary files /dev/null and b/docs/SourceCodePro-Semibold.woff differ diff --git a/docs/SourceSerifPro-Bold.woff b/docs/SourceSerifPro-Bold.woff new file mode 100644 index 00000000..ac1b1b3a Binary files /dev/null and b/docs/SourceSerifPro-Bold.woff differ diff --git a/docs/SourceSerifPro-Regular.woff b/docs/SourceSerifPro-Regular.woff new file mode 100644 index 00000000..e8c43b85 Binary files /dev/null and b/docs/SourceSerifPro-Regular.woff differ diff --git a/docs/clap/app/index.html b/docs/clap/app/index.html new file mode 100644 index 00000000..e69de29b diff --git a/docs/clap/app/sidebar-items.js b/docs/clap/app/sidebar-items.js new file mode 100644 index 00000000..5bec2122 --- /dev/null +++ b/docs/clap/app/sidebar-items.js @@ -0,0 +1 @@ +initSidebarItems({"struct":[["App","Used to create a representation of the program and all possible command line arguments for parsing at runtime."]]}); \ No newline at end of file diff --git a/docs/clap/app/struct.App.html b/docs/clap/app/struct.App.html new file mode 100644 index 00000000..7fb5a751 --- /dev/null +++ b/docs/clap/app/struct.App.html @@ -0,0 +1,10 @@ + + + + + + +

Redirecting to ../../clap/struct.App.html...

+ + + \ No newline at end of file diff --git a/docs/clap/args/arg/index.html b/docs/clap/args/arg/index.html new file mode 100644 index 00000000..e69de29b diff --git a/docs/clap/args/arg/sidebar-items.js b/docs/clap/args/arg/sidebar-items.js new file mode 100644 index 00000000..8a262820 --- /dev/null +++ b/docs/clap/args/arg/sidebar-items.js @@ -0,0 +1 @@ +initSidebarItems({"struct":[["Arg","The abstract representation of a command line argument used by the consumer of the library."]]}); \ No newline at end of file diff --git a/docs/clap/args/arg/struct.Arg.html b/docs/clap/args/arg/struct.Arg.html new file mode 100644 index 00000000..66cac627 --- /dev/null +++ b/docs/clap/args/arg/struct.Arg.html @@ -0,0 +1,10 @@ + + + + + + +

Redirecting to ../../../clap/struct.Arg.html...

+ + + \ No newline at end of file diff --git a/docs/clap/args/argmatches/index.html b/docs/clap/args/argmatches/index.html new file mode 100644 index 00000000..e69de29b diff --git a/docs/clap/args/argmatches/sidebar-items.js b/docs/clap/args/argmatches/sidebar-items.js new file mode 100644 index 00000000..bfd4c555 --- /dev/null +++ b/docs/clap/args/argmatches/sidebar-items.js @@ -0,0 +1 @@ +initSidebarItems({"struct":[["ArgMatches","Used to get information about the arguments that where supplied to the program at runtime."]]}); \ No newline at end of file diff --git a/docs/clap/args/argmatches/struct.ArgMatches.html b/docs/clap/args/argmatches/struct.ArgMatches.html new file mode 100644 index 00000000..7cb34723 --- /dev/null +++ b/docs/clap/args/argmatches/struct.ArgMatches.html @@ -0,0 +1,10 @@ + + + + + + +

Redirecting to ../../../clap/struct.ArgMatches.html...

+ + + \ No newline at end of file diff --git a/docs/clap/args/index.html b/docs/clap/args/index.html new file mode 100644 index 00000000..e69de29b diff --git a/docs/clap/args/sidebar-items.js b/docs/clap/args/sidebar-items.js new file mode 100644 index 00000000..48333d31 --- /dev/null +++ b/docs/clap/args/sidebar-items.js @@ -0,0 +1 @@ +initSidebarItems({}); \ No newline at end of file diff --git a/docs/clap/args/subcommand/index.html b/docs/clap/args/subcommand/index.html new file mode 100644 index 00000000..e69de29b diff --git a/docs/clap/args/subcommand/sidebar-items.js b/docs/clap/args/subcommand/sidebar-items.js new file mode 100644 index 00000000..b13e205f --- /dev/null +++ b/docs/clap/args/subcommand/sidebar-items.js @@ -0,0 +1 @@ +initSidebarItems({"struct":[["SubCommand","The abstract representation of a command line subcommand used by the consumer of the library."]]}); \ No newline at end of file diff --git a/docs/clap/args/subcommand/struct.SubCommand.html b/docs/clap/args/subcommand/struct.SubCommand.html new file mode 100644 index 00000000..88a4e642 --- /dev/null +++ b/docs/clap/args/subcommand/struct.SubCommand.html @@ -0,0 +1,10 @@ + + + + + + +

Redirecting to ../../../clap/struct.SubCommand.html...

+ + + \ No newline at end of file diff --git a/docs/clap/index.html b/docs/clap/index.html new file mode 100644 index 00000000..3070e131 --- /dev/null +++ b/docs/clap/index.html @@ -0,0 +1,404 @@ + + + + + + + + + + clap - Rust + + + + + + + + + + + + + + + +
+

Crate clap[stability] + [-] [+] + [src]

+
+

clap

+

Travis-CI

+ +

Command Line Argument Parser written in Rust

+ +

A simply library for parsing command line arguments and subcommands when writing command line and console applications.

+ +

You can use clap to lay out a list of possible valid command line arguments and subcommands, then let clap parse the string given by the user at runtime.

+ +

When using clap you define a set of parameters and rules for your arguments and subcommands, then at runtime clap will determine their validity.

+ +

clap also provides the traditional version and help switches 'for free' by parsing the list of possible valid arguments lazily at runtime, and if not already defined by the developer clap will autogenerate all applicable "help" and "version" switches (as well as a "help" subcommand if other subcommands are defined as well).

+ +

After defining a list of possible valid arguments and subcommands, clap gives you a list of valid matches that the user supplied at runtime, or informs the user of their error and exits gracefully. You can use this list to determine the functioning of your program.

+ +

Quick Example

+// (Full example with comments in examples/01_QuickExample.rs)
+extern crate clap;
+use clap::{Arg, App, SubCommand};
+ 
+fn main() {
+    let matches = App::new("MyApp")
+                          .version("1.0")
+                          .author("Kevin K. <kbknapp@gmail.com>")
+                          .about("Does awesome things")
+                          .arg(Arg::new("config")
+                               .short("c")
+                               .long("config")
+                               .help("Sets a custom config file")
+                               .takes_value(true))
+                          .arg(Arg::new("output")
+                               .help("Sets an optional output file")
+                               .index(1))
+                          .arg(Arg::new("debug")
+                               .short("d")
+                               .multiple(true)
+                               .help("Turn debugging information on"))
+                          .subcommand(SubCommand::new("test")
+                                      .about("controls testing features")
+                                      .arg(Arg::new("verbose")
+                                          .short("v")
+                                          .help("print test information verbosely")))
+                          .get_matches();
+ 
+    if let Some(o) = matches.value_of("output") {
+        println!("Value for output: {}", o);
+    }
+ 
+    if let Some(c) = matches.value_of("config") {
+        println!("Value for config: {}", c);
+    }
+ 
+    match matches.occurrences_of("debug") {
+        0 => println!("Debug mode is off"),
+        1 => println!("Debug mode is kind of on"),
+        2 => println!("Debug mode is on"),
+        3 | _ => println!("Don't be crazy"),
+    }
+ 
+    if let Some(ref matches) = matches.subcommand_matches("test") {
+        if matches.is_present("verbose") {
+            println!("Printing verbosely...");
+        } else {
+            println!("Printing normally...");
+        }
+    }
+ 
+    // more porgram logic goes here...
+}
+
+ +

If you were to compile the above program and run it with the flag --help or -h (or help subcommand, since we defined test as a subcommand) the following output woud be presented

+ +
$ myprog --help
+MyApp 1.0
+Kevin K. <kbknapp@gmail.com>
+Does awesome things
+ 
+USAGE:
+    MyApp [FLAGS] [OPTIONS] [POSITIONAL] [SUBCOMMANDS]
+ 
+FLAGS:
+    -d               Turn debugging information on
+    -h,--help        Prints this message
+    -v,--version     Prints version information
+  
+OPTIONS:
+    -c,--config <config>        Sets a custom config file
+ 
+POSITIONAL ARGUMENTS:
+    output            Sets an optional output file
+ 
+SUBCOMMANDS:
+    help            Prints this message
+    test            Controls testing features
+
+ +

Installation

+

Add clap as a dependecy in your Cargo.toml file to use from crates.io:

+
+ [dependencies]
+ clap = "*"
+
+ +

Or track the latest on the master branch at github:

+
+[dependencies.clap]
+git = "https://github.com/kbknapp/clap-rs.git"
+
+ +

Then run cargo build or cargo update for your project.

+ +

Usage

+

Add extern crate clap; to your crate root.

+ +

More Information

+

You can find complete documentation on the github-pages site for this project.

+ +

You can also find full usage examples in the examples/ directory of this repo.

+ +

How to build

+

Running the tests

+cargo test
+
+ +

Building the documentation

+

Run this instead of cargo doc to generate the proper module docstring:

+
+make doc
+
+ +

clap

+

Travis-CI

+ +

Command Line Argument Parser written in Rust

+ +

A simply library for parsing command line arguments and subcommands when writing command line and console applications.

+ +

You can use clap to lay out a list of possible valid command line arguments and subcommands, then let clap parse the string given by the user at runtime.

+ +

When using clap you define a set of parameters and rules for your arguments and subcommands, then at runtime clap will determine their validity.

+ +

clap also provides the traditional version and help switches 'for free' by parsing the list of possible valid arguments lazily at runtime, and if not already defined by the developer clap will autogenerate all applicable "help" and "version" switches (as well as a "help" subcommand if other subcommands are defined as well).

+ +

After defining a list of possible valid arguments and subcommands, clap gives you a list of valid matches that the user supplied at runtime, or informs the user of their error and exits gracefully. You can use this list to determine the functioning of your program.

+ +

Quick Example

+// (Full example with comments in examples/01_QuickExample.rs)
+extern crate clap;
+use clap::{Arg, App, SubCommand};
+ 
+fn main() {
+    let matches = App::new("MyApp")
+                          .version("1.0")
+                          .author("Kevin K. <kbknapp@gmail.com>")
+                          .about("Does awesome things")
+                          .arg(Arg::new("config")
+                               .short("c")
+                               .long("config")
+                               .help("Sets a custom config file")
+                               .takes_value(true))
+                          .arg(Arg::new("output")
+                               .help("Sets an optional output file")
+                               .index(1))
+                          .arg(Arg::new("debug")
+                               .short("d")
+                               .multiple(true)
+                               .help("Turn debugging information on"))
+                          .subcommand(SubCommand::new("test")
+                                      .about("controls testing features")
+                                      .arg(Arg::new("verbose")
+                                          .short("v")
+                                          .help("print test information verbosely")))
+                          .get_matches();
+ 
+    if let Some(o) = matches.value_of("output") {
+        println!("Value for output: {}", o);
+    }
+ 
+    if let Some(c) = matches.value_of("config") {
+        println!("Value for config: {}", c);
+    }
+ 
+    match matches.occurrences_of("debug") {
+        0 => println!("Debug mode is off"),
+        1 => println!("Debug mode is kind of on"),
+        2 => println!("Debug mode is on"),
+        3 | _ => println!("Don't be crazy"),
+    }
+ 
+    if let Some(ref matches) = matches.subcommand_matches("test") {
+        if matches.is_present("verbose") {
+            println!("Printing verbosely...");
+        } else {
+            println!("Printing normally...");
+        }
+    }
+ 
+    // more porgram logic goes here...
+}
+
+ +

If you were to compile the above program and run it with the flag --help or -h (or help subcommand, since we defined test as a subcommand) the following output woud be presented

+ +
$ myprog --help
+MyApp 1.0
+Kevin K. <kbknapp@gmail.com>
+Does awesome things
+ 
+USAGE:
+    MyApp [FLAGS] [OPTIONS] [POSITIONAL] [SUBCOMMANDS]
+ 
+FLAGS:
+    -d               Turn debugging information on
+    -h,--help        Prints this message
+    -v,--version     Prints version information
+  
+OPTIONS:
+    -c,--config <config>        Sets a custom config file
+ 
+POSITIONAL ARGUMENTS:
+    output            Sets an optional output file
+ 
+SUBCOMMANDS:
+    help            Prints this message
+    test            Controls testing features
+
+ +

Installation

+

Add clap as a dependecy in your Cargo.toml file to use from crates.io:

+
+ [dependencies]
+ clap = "*"
+
+ +

Or track the latest on the master branch at github:

+
+[dependencies.clap]
+git = "https://github.com/kbknapp/clap-rs.git"
+
+ +

Then run cargo build or cargo update for your project.

+ +

Usage

+

Add extern crate clap; to your crate root.

+ +

More Information

+

You can find complete documentation on the github-pages site for this project.

+ +

You can also find full usage examples in the examples/ directory of this repo.

+ +

How to build

+

Running the tests

+cargo test
+
+ +

Building the documentation

+

Run this instead of cargo doc to generate the proper module docstring:

+
+make doc
+
+

Structs

+ + + + + + + + + + + + + + + + + + + + +
App

Used to create a representation of the program and all possible command line arguments +for parsing at runtime.

+
Arg

The abstract representation of a command line argument used by the consumer of the library.

+
ArgMatches

Used to get information about the arguments that +where supplied to the program at runtime.

+
SubCommand

The abstract representation of a command line subcommand used by the consumer of the library.

+
+ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/clap/sidebar-items.js b/docs/clap/sidebar-items.js new file mode 100644 index 00000000..94318b19 --- /dev/null +++ b/docs/clap/sidebar-items.js @@ -0,0 +1 @@ +initSidebarItems({"struct":[["App","Used to create a representation of the program and all possible command line arguments for parsing at runtime."],["Arg","The abstract representation of a command line argument used by the consumer of the library."],["ArgMatches","Used to get information about the arguments that where supplied to the program at runtime."],["SubCommand","The abstract representation of a command line subcommand used by the consumer of the library."]]}); \ No newline at end of file diff --git a/docs/clap/stability.html b/docs/clap/stability.html new file mode 100644 index 00000000..2ae92420 --- /dev/null +++ b/docs/clap/stability.html @@ -0,0 +1,102 @@ + + + + + + + + + + clap - Stability dashboard + + + + + + + + + + + + + + + +

Stability dashboard: crate clap

+This dashboard summarizes the stability levels for all of the public modules of +the crate, according to the total number of items at each level in the module and +its children (percentages total for clap): +
+ stable (0%),
+ unstable (0%),
+ deprecated (0%),
+ unmarked (100%) +
+The counts do not include methods or trait +implementations that are visible only through a re-exported type.
clap    
+ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/clap/stability.json b/docs/clap/stability.json new file mode 100644 index 00000000..d2ed780f --- /dev/null +++ b/docs/clap/stability.json @@ -0,0 +1 @@ +{"name":"clap","counts":{"deprecated":0,"unstable":0,"stable":0,"unmarked":39},"submodules":[]} \ No newline at end of file diff --git a/docs/clap/struct.App.html b/docs/clap/struct.App.html new file mode 100644 index 00000000..a2789ba1 --- /dev/null +++ b/docs/clap/struct.App.html @@ -0,0 +1,204 @@ + + + + + + + + + + clap::App - Rust + + + + + + + + + + + + + + + +
+

Struct clap::App + [-] [+] + [src]

+
pub struct App {
+    // some fields omitted
+}

Used to create a representation of the program and all possible command line arguments +for parsing at runtime.

+ +

Stores a list of all posisble arguments, as well as information displayed to the user such as +help and versioning information.

+ +

Example

+let myprog = App::new("myprog")
+                  .author("Me, me@mail.com")
+                     .version("1.0.2")
+                  .about("Explains in brief what the program does")
+                  .arg(
+                           Arg::new("in_file").index(1)
+                       // Add other possible command line argument options here...
+                   )
+                  .get_matches();
+
+// Your pogram logic starts here...
+
+

Methods

impl App

fn new(n: &'static str) -> App

+

Creates a new instance of an application requiring a name (such as the binary). Will be displayed +to the user when they print version or help and usage information.

+ +

Example

+let prog = App::new("myprog")
+
+

fn author(self, a: &'static str) -> App

+

Sets a string of author(s)

+ +

Example

+.author("Kevin <kbknapp@gmail.com>")
+
+

fn about(self, a: &'static str) -> App

+

Sets a string briefly describing what the program does

+ +

Example

+.about("Does really amazing things to great people")
+
+

fn version(self, v: &'static str) -> App

+

Sets a string of the version number

+ +

Example

+.version("v0.1.24")
+
+

fn usage(self, u: &'static str) -> App

+

Sets a custom usage string to over-ride the one auto-generated by clap

+ +

NOTE: You do not need to specify the "USAGE: " portion, as that will +still be applied by clap, you only need to specify the portion starting +with the binary name.

+ +

NOTE: This will not replace the entire help message, only the portion +showing the usage.

+ +

Example

+.usage("myapp [-clDas] <some_file>")
+
+

fn arg(self, a: Arg) -> App

+

Adds an argument to the list of valid possibilties

+ +

Example

+.arg(Arg::new("config")
+               .short("c")
+            // Additional argument configuration goes here...
+)
+
+

fn args(self, args: Vec<Arg>) -> App

+

Adds multiple arguments to the list of valid possibilties

+ +

Example

+.args( vec![Arg::new("config").short("c"),
+               Arg::new("debug").short("d")])
+
+

fn subcommand(self, subcmd: App) -> App

+

Adds a subcommand to the list of valid possibilties. Subcommands +are effectively sub apps, because they can contain their own arguments +and subcommands. They also function just like apps, in that they get their +own auto generated help and version switches.

+ +

Example

+.subcommand(SubCommand::new("config")
+               .about("Controls configuration features")
+               .arg(Arg::new("config_file")
+                       .index(1)
+                       .help("Configuration file to use")))
+            // Additional subcommand configuration goes here, such as arguments...
+
+

fn subcommands(self, subcmds: Vec<App>) -> App

+

Adds multiple subcommands to the list of valid possibilties

+ +

Example

+.subcommands( vec![
+       SubCommand::new("config").about("Controls configuration functionality")
+                                .arg(Arg::new("config_file").index(1)),
+       SubCommand::new("debug").about("Controls debug functionality")])
+
+

fn get_matches(self) -> ArgMatches

+
+ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/clap/struct.Arg.html b/docs/clap/struct.Arg.html new file mode 100644 index 00000000..ae907ddc --- /dev/null +++ b/docs/clap/struct.Arg.html @@ -0,0 +1,289 @@ + + + + + + + + + + clap::Arg - Rust + + + + + + + + + + + + + + + +
+

Struct clap::Arg + [-] [+] + [src]

+
pub struct Arg {
+    pub name: &'static str,
+    pub short: Option<char>,
+    pub long: Option<&'static str>,
+    pub help: Option<&'static str>,
+    pub required: bool,
+    pub takes_value: bool,
+    pub index: Option<u8>,
+    pub multiple: bool,
+    pub blacklist: Option<Vec<&'static str>>,
+    pub requires: Option<Vec<&'static str>>,
+}

The abstract representation of a command line argument used by the consumer of the library.

+ +

This struct is used by the library consumer and describes the command line arguments for +their program. +and then evaluates the settings the consumer provided and determines the concret +argument struct to use when parsing.

+ +

Example

+Arg::new("conifg")
+      .short("c")
+      .long("config")
+      .takes_value(true)
+      .help("Provides a config file to myprog")
+
+

Fields

+
name

The unique name of the argument, required

+
short

The short version (i.e. single character) of the argument, no preceding - +NOTE: short is mutually exclusive with index

+
long

The long version of the flag (i.e. word) without the preceding -- +NOTE: long is mutually exclusive with index

+
help

The string of text that will displayed to the user when the application's +help text is displayed

+
required

If this is a required by default when using the command line program +i.e. a configuration file that's required for the program to function +NOTE: required by default means, it is required until mutually +exclusive arguments are evaluated.

+
takes_value

Determines if this argument is an option, vice a flag or positional and +is mutually exclusive with index and multiple

+
index

The index of the argument. index is mutually exclusive with takes_value +and multiple

+
multiple

Determines if multiple instances of the same flag are allowed. multiple +is mutually exclusive with index and takes_value. +I.e. -v -v -v or -vvv

+
blacklist

A list of names for other arguments that may not be used with this flag

+
requires

A list of names of other arguments that are required to be used when +this flag is used

+

Methods

impl Arg

fn new(n: &'static str) -> Arg

+

Creates a new instace of Arg using a unique string name. +The name will be used by the library consumer to get information about +whether or not the argument was used at runtime.

+ +

NOTE: in the case of arguments that take values (i.e. takes_value(true)) +and positional arguments (i.e. those without a - or --) the name will also +be displayed when the user prints the usage/help information of the program.

+ +

Example:

+
+Arg::new("conifg")
+
+

fn short(self, s: &'static str) -> Arg

+

Sets the short version of the argument without the preceding -.

+ +

By default clap automatically assigns v and h to display version and help information +respectivly. You may use v or h for your own purposes, in which case clap simply +will not asign those to the displaying of version or help.

+ +

NOTE: Any leading - characters will be stripped, and only the first +non - chacter will be used as the short version, i.e. for when the user +mistakenly sets the short to -o or the like. +Example:

+
+.short("c")
+
+

fn long(self, l: &'static str) -> Arg

+

Sets the long version of the argument without the preceding --.

+ +

By default clap automatically assigns version and help to display version and help information +respectivly. You may use version or help for your own purposes, in which case clap simply +will not asign those to the displaying of version or help automatically, and you will have to do +so manually.

+ +

NOTE: Any leading - characters will be stripped i.e. for +when the user mistakenly sets the short to --out or the like.

+ +

Example:

+
+.long("config")
+
+

fn help(self, h: &'static str) -> Arg

+

Sets the help text of the argument that will be displayed to the user +when they print the usage/help information.

+ +

Example:

+
+.help("The config file used by the myprog")
+
+

fn required(self, r: bool) -> Arg

+

Sets whether or not the argument is required by default. Required by +default means it is required, when no other mutually exlusive rules have +been evaluated. Mutually exclusive rules take precedence over being required +by default.

+ +

NOTE: Flags (i.e. not positional, or arguments that take values) +cannot be required by default. +when they print the usage/help information.

+ +

Example:

+
+.required(true)
+
+

fn mutually_excludes(self, name: &'static str) -> Arg

+

Sets a mutually exclusive argument by name. I.e. when using this argument, +the following argument can't be present.

+ +

NOTE: Mutually exclusive rules take precedence over being required +by default. Mutually exclusive rules only need to be set for one of the two +arguments, they do not need to be set for each.

+ +

Example:

+
+.mutually_excludes("debug")
+
+

fn mutually_excludes_all(self, names: Vec<&'static str>) -> Arg

+

Sets a mutually exclusive arguments by names. I.e. when using this argument, +the following argument can't be present.

+ +

NOTE: Mutually exclusive rules take precedence over being required +by default. Mutually exclusive rules only need to be set for one of the two +arguments, they do not need to be set for each.

+ +

Example:

+
+.mutually_excludes_all(
+       vec!["debug", "input"])
+
+

fn requires(self, name: &'static str) -> Arg

+

Sets an argument by name that is required when this one is presnet I.e. when +using this argument, the following argument must be present.

+ +

NOTE: Mutually exclusive rules take precedence over being required

+ +

Example:

+
+.requires("debug")
+
+

fn requires_all(self, names: Vec<&'static str>) -> Arg

+

Sets arguments by names that are required when this one is presnet I.e. when +using this argument, the following arguments must be present.

+ +

NOTE: Mutually exclusive rules take precedence over being required +by default.

+ +

Example:

+
+.requires_all(
+       vec!["debug", "input"])
+
+

fn takes_value(self, tv: bool) -> Arg

+

Specifies that the argument takes an additional value at run time.

+ +

NOTE: When setting this to true the name of the argument +will be used when printing the help/usage information to the user.

+ +

Example:

+
+.takes_value(true)
+
+

fn index(self, idx: u8) -> Arg

+

Specifies the index of a positional argument starting at 1.

+ +

NOTE: When setting this, any short or long values you set +are ignored as positional arguments cannot have a short or long. +Also, the name will be used when printing the help/usage information +to the user.

+ +

Example:

+
+.index(1)
+
+

fn multiple(self, multi: bool) -> Arg

+

Specifies if the flag may appear more than once such as for multiple debugging +levels (as an example). -ddd for three levels of debugging, or -d -d -d. +When this is set to true you recieve the number of occurances the user supplied +of a particular flag at runtime.

+ +

NOTE: When setting this, any takes_value or index values you set +are ignored as flags cannot have a values or an index.

+ +

Example:

+
+.multiple(true)
+
+
+ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/clap/struct.ArgMatches.html b/docs/clap/struct.ArgMatches.html new file mode 100644 index 00000000..04d10626 --- /dev/null +++ b/docs/clap/struct.ArgMatches.html @@ -0,0 +1,231 @@ + + + + + + + + + + clap::ArgMatches - Rust + + + + + + + + + + + + + + + +
+

Struct clap::ArgMatches + [-] [+] + [src]

+
pub struct ArgMatches {
+    pub matches_of: &'static str,
+    pub flags: HashMap<&'static str, FlagArg>,
+    pub opts: HashMap<&'static str, OptArg>,
+    pub positionals: HashMap<&'static str, PosArg>,
+    pub subcommand: Option<Box<SubCommand>>,
+}

Used to get information about the arguments that +where supplied to the program at runtime.

+ +

Fields of ArgMatches aren't designed to be used directly, only +the methods in order to query information.

+ +

Example

+let matches = App::new("MyApp")
+// adding of arguments and configuration goes here...
+                    .get_matches();
+// if you had an argument named "output" that takes a value 
+if let Some(o) = matches.value_of("output") {
+    println!("Value for output: {}", o);
+}
+
+// Although not advised, if you have a required argument
+// you can call .unwrap() because the program will exit long before
+// here at noticing the user didn't supply a required argument...
+// use at your own risk ;)
+println!("Config file: {}", matches.value_of("config").unwrap());
+
+// You can check the present of an argument
+if matches.is_present("debug") {
+    // Checking if "debug" was present was necessary,
+    // as occurrences returns 0 if a flag isn't found
+    // but we can check how many times "debug" was found
+    // if we allow multiple (if multiple isn't allowed it always be 1 or 0)
+    if matches.occurrences_of("debug") > 1 {
+        println!("Debug mode is REALLY on");
+    } else {
+        println!("Debug mode kind of on");
+    }
+}
+
+// You can get the sub-matches of a particular subcommand (in this case "test")
+// If "test" had it's own "-l" flag you could check for it's presence accordingly
+if let Some(ref matches) = matches.subcommand_matches("test") {
+    if matches.is_present("list") {
+        println!("Printing testing lists...");
+    } else {
+        println!("Not printing testing lists...");
+    }
+}
+
+

Fields

+
matches_of
flags
opts
positionals
subcommand

Methods

impl ArgMatches

fn new(name: &'static str) -> ArgMatches

+

Creates a new instance of ArgMatches. This ins't called directly, but +through the .get_matches() method of App

+ +

Example

+let matches = App::new("myprog").get_matches();
+
+

fn value_of(&self, name: &'static str) -> Option<&str>

+

Gets the value of a specific option or positional argument (i.e. an argument that takes +an additional value at runtime). If the option wasn't present at runtime +it returns None.

+ +

NOTE: If getting a value for an option argument that allows multiples, prefer values_of() +as value_of() will only return the first value.

+ +

Example

+if let Some(o) = matches.value_of("output") {
+       println!("Value for output: {}", o);
+}
+
+

fn values_of(&self, name: &'static str) -> Option<Vec<&str>>

+

Gets the values of a specific option in a vector (i.e. an argument that takes +an additional value at runtime). If the option wasn't present at runtime +it returns None

+ +

Example

+// If the program had option "-c" that took a value and was run
+// via "myapp -o some -o other -o file"
+// values_of() would return a [&str; 3] ("some", "other", "file")
+if let Some(os) = matches.values_of("output") {
+       for o in os {
+           println!("A value for output: {}", o);
+       }
+}
+
+

fn is_present(&self, name: &'static str) -> bool

+

Checks if a flag was argument was supplied at runtime. DOES NOT work for +option or positional arguments (use .value_of() instead)

+ +

Example

+if matches.is_present("output") {
+       println!("The output argument was used!");
+}
+
+

fn occurrences_of(&self, name: &'static str) -> u8

+

Checks the number of occurrences of an option or flag at runtime. +If an option or flag isn't present it will return 0, if the option or flag doesn't +allow multiple occurrences, it will return 1 no matter how many times it occurred +(unless it wasn't prsent) at all.

+ +

NOTE: This DOES NOT work for positional arguments (use .value_of() instead).

+ +

Example

+if matches.occurrences_of("debug") > 1 {
+    println!("Debug mode is REALLY on");
+} else {
+    println!("Debug mode kind of on");
+}
+
+

fn subcommand_matches(&self, name: &'static str) -> Option<&ArgMatches>

+

If a subcommand was found, returns the ArgMatches struct associated with it's matches

+ +

Example

+if let Some(matches) = app_matches.subcommand_matches("test") {
+    // Use matches as normal
+}
+
+

fn subcommand_name(&self) -> Option<&'static str>

+

If a subcommand was found, returns the name associated with it

+ +

Example

+match app_matches.subcommand_name() {
+    Some("test")   => {}, // test was used
+    Some("config") => {}, // config was used
+    _              => {}, // Either no subcommand or one not tested for...
+}
+
+
+ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/clap/struct.SubCommand.html b/docs/clap/struct.SubCommand.html new file mode 100644 index 00000000..dede3d2c --- /dev/null +++ b/docs/clap/struct.SubCommand.html @@ -0,0 +1,121 @@ + + + + + + + + + + clap::SubCommand - Rust + + + + + + + + + + + + + + + +
+

Struct clap::SubCommand + [-] [+] + [src]

+
pub struct SubCommand {
+    pub name: &'static str,
+    pub matches: ArgMatches,
+}

The abstract representation of a command line subcommand used by the consumer of the library.

+ +

This struct is used by the library consumer and describes all the valid options of the subcommand for +their program. SubCommands are treated like "sub apps" and contain all the same possibilities (such as +their own arguments and subcommands).

+ +

Example

+SubCommand::new("conifg")
+               .about("Used for configuration")
+               .arg(Arg::new("config_file")
+                          .help("The configuration file to use")
+                          .index(1))
+
+

Fields

+
name
matches

Methods

impl SubCommand

fn new(name: &'static str) -> App

+

Creates a new instance of a subcommand requiring a name. Will be displayed +to the user when they print version or help and usage information.

+ +

Example

+SubCommand::new("config")
+
+
+ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/jquery.js b/docs/jquery.js new file mode 100644 index 00000000..cbe6abe5 --- /dev/null +++ b/docs/jquery.js @@ -0,0 +1,4 @@ +/*! jQuery v2.1.0 | (c) 2005, 2014 jQuery Foundation, Inc. | jquery.org/license */ +!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k="".trim,l={},m=a.document,n="2.1.0",o=function(a,b){return new o.fn.init(a,b)},p=/^-ms-/,q=/-([\da-z])/gi,r=function(a,b){return b.toUpperCase()};o.fn=o.prototype={jquery:n,constructor:o,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=o.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return o.each(this,a,b)},map:function(a){return this.pushStack(o.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},o.extend=o.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||o.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(o.isPlainObject(d)||(e=o.isArray(d)))?(e?(e=!1,f=c&&o.isArray(c)?c:[]):f=c&&o.isPlainObject(c)?c:{},g[b]=o.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},o.extend({expando:"jQuery"+(n+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===o.type(a)},isArray:Array.isArray,isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){return a-parseFloat(a)>=0},isPlainObject:function(a){if("object"!==o.type(a)||a.nodeType||o.isWindow(a))return!1;try{if(a.constructor&&!j.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(b){return!1}return!0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(a){var b,c=eval;a=o.trim(a),a&&(1===a.indexOf("use strict")?(b=m.createElement("script"),b.text=a,m.head.appendChild(b).parentNode.removeChild(b)):c(a))},camelCase:function(a){return a.replace(p,"ms-").replace(q,r)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=s(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?"":k.call(a)},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?o.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:g.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;c>d;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=s(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(c=a[b],b=a,a=c),o.isFunction(a)?(e=d.call(arguments,2),f=function(){return a.apply(b||this,e.concat(d.call(arguments)))},f.guid=a.guid=a.guid||o.guid++,f):void 0},now:Date.now,support:l}),o.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function s(a){var b=a.length,c=o.type(a);return"function"===c||o.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s="sizzle"+-new Date,t=a.document,u=0,v=0,w=eb(),x=eb(),y=eb(),z=function(a,b){return a===b&&(j=!0),0},A="undefined",B=1<<31,C={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.slice,I=D.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},J="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",K="[\\x20\\t\\r\\n\\f]",L="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",M=L.replace("w","w#"),N="\\["+K+"*("+L+")"+K+"*(?:([*^$|!~]?=)"+K+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+M+")|)|)"+K+"*\\]",O=":("+L+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+N.replace(3,8)+")*)|.*)\\)|)",P=new RegExp("^"+K+"+|((?:^|[^\\\\])(?:\\\\.)*)"+K+"+$","g"),Q=new RegExp("^"+K+"*,"+K+"*"),R=new RegExp("^"+K+"*([>+~]|"+K+")"+K+"*"),S=new RegExp("="+K+"*([^\\]'\"]*?)"+K+"*\\]","g"),T=new RegExp(O),U=new RegExp("^"+M+"$"),V={ID:new RegExp("^#("+L+")"),CLASS:new RegExp("^\\.("+L+")"),TAG:new RegExp("^("+L.replace("w","w*")+")"),ATTR:new RegExp("^"+N),PSEUDO:new RegExp("^"+O),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+K+"*(even|odd|(([+-]|)(\\d*)n|)"+K+"*(?:([+-]|)"+K+"*(\\d+)|))"+K+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+K+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+K+"*((?:-\\d)?\\d*)"+K+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,Y=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,$=/[+~]/,_=/'|\\/g,ab=new RegExp("\\\\([\\da-f]{1,6}"+K+"?|("+K+")|.)","ig"),bb=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)};try{G.apply(D=H.call(t.childNodes),t.childNodes),D[t.childNodes.length].nodeType}catch(cb){G={apply:D.length?function(a,b){F.apply(a,H.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function db(a,b,d,e){var f,g,h,i,j,m,p,q,u,v;if((b?b.ownerDocument||b:t)!==l&&k(b),b=b||l,d=d||[],!a||"string"!=typeof a)return d;if(1!==(i=b.nodeType)&&9!==i)return[];if(n&&!e){if(f=Z.exec(a))if(h=f[1]){if(9===i){if(g=b.getElementById(h),!g||!g.parentNode)return d;if(g.id===h)return d.push(g),d}else if(b.ownerDocument&&(g=b.ownerDocument.getElementById(h))&&r(b,g)&&g.id===h)return d.push(g),d}else{if(f[2])return G.apply(d,b.getElementsByTagName(a)),d;if((h=f[3])&&c.getElementsByClassName&&b.getElementsByClassName)return G.apply(d,b.getElementsByClassName(h)),d}if(c.qsa&&(!o||!o.test(a))){if(q=p=s,u=b,v=9===i&&a,1===i&&"object"!==b.nodeName.toLowerCase()){m=ob(a),(p=b.getAttribute("id"))?q=p.replace(_,"\\$&"):b.setAttribute("id",q),q="[id='"+q+"'] ",j=m.length;while(j--)m[j]=q+pb(m[j]);u=$.test(a)&&mb(b.parentNode)||b,v=m.join(",")}if(v)try{return G.apply(d,u.querySelectorAll(v)),d}catch(w){}finally{p||b.removeAttribute("id")}}}return xb(a.replace(P,"$1"),b,d,e)}function eb(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function fb(a){return a[s]=!0,a}function gb(a){var b=l.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function hb(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function ib(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||B)-(~a.sourceIndex||B);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function jb(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function kb(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function lb(a){return fb(function(b){return b=+b,fb(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function mb(a){return a&&typeof a.getElementsByTagName!==A&&a}c=db.support={},f=db.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},k=db.setDocument=function(a){var b,e=a?a.ownerDocument||a:t,g=e.defaultView;return e!==l&&9===e.nodeType&&e.documentElement?(l=e,m=e.documentElement,n=!f(e),g&&g!==g.top&&(g.addEventListener?g.addEventListener("unload",function(){k()},!1):g.attachEvent&&g.attachEvent("onunload",function(){k()})),c.attributes=gb(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=gb(function(a){return a.appendChild(e.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Y.test(e.getElementsByClassName)&&gb(function(a){return a.innerHTML="
",a.firstChild.className="i",2===a.getElementsByClassName("i").length}),c.getById=gb(function(a){return m.appendChild(a).id=s,!e.getElementsByName||!e.getElementsByName(s).length}),c.getById?(d.find.ID=function(a,b){if(typeof b.getElementById!==A&&n){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(ab,bb);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(ab,bb);return function(a){var c=typeof a.getAttributeNode!==A&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return typeof b.getElementsByTagName!==A?b.getElementsByTagName(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return typeof b.getElementsByClassName!==A&&n?b.getElementsByClassName(a):void 0},p=[],o=[],(c.qsa=Y.test(e.querySelectorAll))&&(gb(function(a){a.innerHTML="",a.querySelectorAll("[t^='']").length&&o.push("[*^$]="+K+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||o.push("\\["+K+"*(?:value|"+J+")"),a.querySelectorAll(":checked").length||o.push(":checked")}),gb(function(a){var b=e.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&o.push("name"+K+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||o.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),o.push(",.*:")})),(c.matchesSelector=Y.test(q=m.webkitMatchesSelector||m.mozMatchesSelector||m.oMatchesSelector||m.msMatchesSelector))&&gb(function(a){c.disconnectedMatch=q.call(a,"div"),q.call(a,"[s!='']:x"),p.push("!=",O)}),o=o.length&&new RegExp(o.join("|")),p=p.length&&new RegExp(p.join("|")),b=Y.test(m.compareDocumentPosition),r=b||Y.test(m.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},z=b?function(a,b){if(a===b)return j=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===e||a.ownerDocument===t&&r(t,a)?-1:b===e||b.ownerDocument===t&&r(t,b)?1:i?I.call(i,a)-I.call(i,b):0:4&d?-1:1)}:function(a,b){if(a===b)return j=!0,0;var c,d=0,f=a.parentNode,g=b.parentNode,h=[a],k=[b];if(!f||!g)return a===e?-1:b===e?1:f?-1:g?1:i?I.call(i,a)-I.call(i,b):0;if(f===g)return ib(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)k.unshift(c);while(h[d]===k[d])d++;return d?ib(h[d],k[d]):h[d]===t?-1:k[d]===t?1:0},e):l},db.matches=function(a,b){return db(a,null,null,b)},db.matchesSelector=function(a,b){if((a.ownerDocument||a)!==l&&k(a),b=b.replace(S,"='$1']"),!(!c.matchesSelector||!n||p&&p.test(b)||o&&o.test(b)))try{var d=q.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return db(b,l,null,[a]).length>0},db.contains=function(a,b){return(a.ownerDocument||a)!==l&&k(a),r(a,b)},db.attr=function(a,b){(a.ownerDocument||a)!==l&&k(a);var e=d.attrHandle[b.toLowerCase()],f=e&&C.call(d.attrHandle,b.toLowerCase())?e(a,b,!n):void 0;return void 0!==f?f:c.attributes||!n?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},db.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},db.uniqueSort=function(a){var b,d=[],e=0,f=0;if(j=!c.detectDuplicates,i=!c.sortStable&&a.slice(0),a.sort(z),j){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return i=null,a},e=db.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=db.selectors={cacheLength:50,createPseudo:fb,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(ab,bb),a[3]=(a[4]||a[5]||"").replace(ab,bb),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||db.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&db.error(a[0]),a},PSEUDO:function(a){var b,c=!a[5]&&a[2];return V.CHILD.test(a[0])?null:(a[3]&&void 0!==a[4]?a[2]=a[4]:c&&T.test(c)&&(b=ob(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(ab,bb).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=w[a+" "];return b||(b=new RegExp("(^|"+K+")"+a+"("+K+"|$)"))&&w(a,function(a){return b.test("string"==typeof a.className&&a.className||typeof a.getAttribute!==A&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=db.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),t=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&t){k=q[s]||(q[s]={}),j=k[a]||[],n=j[0]===u&&j[1],m=j[0]===u&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[u,n,m];break}}else if(t&&(j=(b[s]||(b[s]={}))[a])&&j[0]===u)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(t&&((l[s]||(l[s]={}))[a]=[u,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||db.error("unsupported pseudo: "+a);return e[s]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?fb(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=I.call(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:fb(function(a){var b=[],c=[],d=g(a.replace(P,"$1"));return d[s]?fb(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),!c.pop()}}),has:fb(function(a){return function(b){return db(a,b).length>0}}),contains:fb(function(a){return function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:fb(function(a){return U.test(a||"")||db.error("unsupported lang: "+a),a=a.replace(ab,bb).toLowerCase(),function(b){var c;do if(c=n?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===m},focus:function(a){return a===l.activeElement&&(!l.hasFocus||l.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return X.test(a.nodeName)},input:function(a){return W.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:lb(function(){return[0]}),last:lb(function(a,b){return[b-1]}),eq:lb(function(a,b,c){return[0>c?c+b:c]}),even:lb(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:lb(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:lb(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:lb(function(a,b,c){for(var d=0>c?c+b:c;++db;b++)d+=a[b].value;return d}function qb(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=v++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[u,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[s]||(b[s]={}),(h=i[d])&&h[0]===u&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function rb(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function sb(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function tb(a,b,c,d,e,f){return d&&!d[s]&&(d=tb(d)),e&&!e[s]&&(e=tb(e,f)),fb(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||wb(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:sb(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=sb(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?I.call(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=sb(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):G.apply(g,r)})}function ub(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],i=g||d.relative[" "],j=g?1:0,k=qb(function(a){return a===b},i,!0),l=qb(function(a){return I.call(b,a)>-1},i,!0),m=[function(a,c,d){return!g&&(d||c!==h)||((b=c).nodeType?k(a,c,d):l(a,c,d))}];f>j;j++)if(c=d.relative[a[j].type])m=[qb(rb(m),c)];else{if(c=d.filter[a[j].type].apply(null,a[j].matches),c[s]){for(e=++j;f>e;e++)if(d.relative[a[e].type])break;return tb(j>1&&rb(m),j>1&&pb(a.slice(0,j-1).concat({value:" "===a[j-2].type?"*":""})).replace(P,"$1"),c,e>j&&ub(a.slice(j,e)),f>e&&ub(a=a.slice(e)),f>e&&pb(a))}m.push(c)}return rb(m)}function vb(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,i,j,k){var m,n,o,p=0,q="0",r=f&&[],s=[],t=h,v=f||e&&d.find.TAG("*",k),w=u+=null==t?1:Math.random()||.1,x=v.length;for(k&&(h=g!==l&&g);q!==x&&null!=(m=v[q]);q++){if(e&&m){n=0;while(o=a[n++])if(o(m,g,i)){j.push(m);break}k&&(u=w)}c&&((m=!o&&m)&&p--,f&&r.push(m))}if(p+=q,c&&q!==p){n=0;while(o=b[n++])o(r,s,g,i);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=E.call(j));s=sb(s)}G.apply(j,s),k&&!f&&s.length>0&&p+b.length>1&&db.uniqueSort(j)}return k&&(u=w,h=t),r};return c?fb(f):f}g=db.compile=function(a,b){var c,d=[],e=[],f=y[a+" "];if(!f){b||(b=ob(a)),c=b.length;while(c--)f=ub(b[c]),f[s]?d.push(f):e.push(f);f=y(a,vb(e,d))}return f};function wb(a,b,c){for(var d=0,e=b.length;e>d;d++)db(a,b[d],c);return c}function xb(a,b,e,f){var h,i,j,k,l,m=ob(a);if(!f&&1===m.length){if(i=m[0]=m[0].slice(0),i.length>2&&"ID"===(j=i[0]).type&&c.getById&&9===b.nodeType&&n&&d.relative[i[1].type]){if(b=(d.find.ID(j.matches[0].replace(ab,bb),b)||[])[0],!b)return e;a=a.slice(i.shift().value.length)}h=V.needsContext.test(a)?0:i.length;while(h--){if(j=i[h],d.relative[k=j.type])break;if((l=d.find[k])&&(f=l(j.matches[0].replace(ab,bb),$.test(i[0].type)&&mb(b.parentNode)||b))){if(i.splice(h,1),a=f.length&&pb(i),!a)return G.apply(e,f),e;break}}}return g(a,m)(f,b,!n,e,$.test(a)&&mb(b.parentNode)||b),e}return c.sortStable=s.split("").sort(z).join("")===s,c.detectDuplicates=!!j,k(),c.sortDetached=gb(function(a){return 1&a.compareDocumentPosition(l.createElement("div"))}),gb(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||hb("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&gb(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||hb("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),gb(function(a){return null==a.getAttribute("disabled")})||hb(J,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),db}(a);o.find=t,o.expr=t.selectors,o.expr[":"]=o.expr.pseudos,o.unique=t.uniqueSort,o.text=t.getText,o.isXMLDoc=t.isXML,o.contains=t.contains;var u=o.expr.match.needsContext,v=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,w=/^.[^:#\[\.,]*$/;function x(a,b,c){if(o.isFunction(b))return o.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return o.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(w.test(b))return o.filter(b,a,c);b=o.filter(b,a)}return o.grep(a,function(a){return g.call(b,a)>=0!==c})}o.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?o.find.matchesSelector(d,a)?[d]:[]:o.find.matches(a,o.grep(b,function(a){return 1===a.nodeType}))},o.fn.extend({find:function(a){var b,c=this.length,d=[],e=this;if("string"!=typeof a)return this.pushStack(o(a).filter(function(){for(b=0;c>b;b++)if(o.contains(e[b],this))return!0}));for(b=0;c>b;b++)o.find(a,e[b],d);return d=this.pushStack(c>1?o.unique(d):d),d.selector=this.selector?this.selector+" "+a:a,d},filter:function(a){return this.pushStack(x(this,a||[],!1))},not:function(a){return this.pushStack(x(this,a||[],!0))},is:function(a){return!!x(this,"string"==typeof a&&u.test(a)?o(a):a||[],!1).length}});var y,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,A=o.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||y).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof o?b[0]:b,o.merge(this,o.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:m,!0)),v.test(c[1])&&o.isPlainObject(b))for(c in b)o.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}return d=m.getElementById(c[2]),d&&d.parentNode&&(this.length=1,this[0]=d),this.context=m,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):o.isFunction(a)?"undefined"!=typeof y.ready?y.ready(a):a(o):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),o.makeArray(a,this))};A.prototype=o.fn,y=o(m);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};o.extend({dir:function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&o(a).is(c))break;d.push(a)}return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),o.fn.extend({has:function(a){var b=o(a,this),c=b.length;return this.filter(function(){for(var a=0;c>a;a++)if(o.contains(this,b[a]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=u.test(a)||"string"!=typeof a?o(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&o.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?o.unique(f):f)},index:function(a){return a?"string"==typeof a?g.call(o(a),this[0]):g.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(o.unique(o.merge(this.get(),o(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){while((a=a[b])&&1!==a.nodeType);return a}o.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return o.dir(a,"parentNode")},parentsUntil:function(a,b,c){return o.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return o.dir(a,"nextSibling")},prevAll:function(a){return o.dir(a,"previousSibling")},nextUntil:function(a,b,c){return o.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return o.dir(a,"previousSibling",c)},siblings:function(a){return o.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return o.sibling(a.firstChild)},contents:function(a){return a.contentDocument||o.merge([],a.childNodes)}},function(a,b){o.fn[a]=function(c,d){var e=o.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=o.filter(d,e)),this.length>1&&(C[a]||o.unique(e),B.test(a)&&e.reverse()),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return o.each(a.match(E)||[],function(a,c){b[c]=!0}),b}o.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):o.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(b=a.memory&&l,c=!0,g=e||0,e=0,f=h.length,d=!0;h&&f>g;g++)if(h[g].apply(l[0],l[1])===!1&&a.stopOnFalse){b=!1;break}d=!1,h&&(i?i.length&&j(i.shift()):b?h=[]:k.disable())},k={add:function(){if(h){var c=h.length;!function g(b){o.each(b,function(b,c){var d=o.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&g(c)})}(arguments),d?f=h.length:b&&(e=c,j(b))}return this},remove:function(){return h&&o.each(arguments,function(a,b){var c;while((c=o.inArray(b,h,c))>-1)h.splice(c,1),d&&(f>=c&&f--,g>=c&&g--)}),this},has:function(a){return a?o.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],f=0,this},disable:function(){return h=i=b=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,b||k.disable(),this},locked:function(){return!i},fireWith:function(a,b){return!h||c&&!i||(b=b||[],b=[a,b.slice?b.slice():b],d?i.push(b):j(b)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!c}};return k},o.extend({Deferred:function(a){var b=[["resolve","done",o.Callbacks("once memory"),"resolved"],["reject","fail",o.Callbacks("once memory"),"rejected"],["notify","progress",o.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return o.Deferred(function(c){o.each(b,function(b,f){var g=o.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&o.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?o.extend(a,d):d}},e={};return d.pipe=d.then,o.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&o.isFunction(a.promise)?e:0,g=1===f?a:o.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&o.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;o.fn.ready=function(a){return o.ready.promise().done(a),this},o.extend({isReady:!1,readyWait:1,holdReady:function(a){a?o.readyWait++:o.ready(!0)},ready:function(a){(a===!0?--o.readyWait:o.isReady)||(o.isReady=!0,a!==!0&&--o.readyWait>0||(H.resolveWith(m,[o]),o.fn.trigger&&o(m).trigger("ready").off("ready")))}});function I(){m.removeEventListener("DOMContentLoaded",I,!1),a.removeEventListener("load",I,!1),o.ready()}o.ready.promise=function(b){return H||(H=o.Deferred(),"complete"===m.readyState?setTimeout(o.ready):(m.addEventListener("DOMContentLoaded",I,!1),a.addEventListener("load",I,!1))),H.promise(b)},o.ready.promise();var J=o.access=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===o.type(c)){e=!0;for(h in c)o.access(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,o.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(o(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f};o.acceptData=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};function K(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=o.expando+Math.random()}K.uid=1,K.accepts=o.acceptData,K.prototype={key:function(a){if(!K.accepts(a))return 0;var b={},c=a[this.expando];if(!c){c=K.uid++;try{b[this.expando]={value:c},Object.defineProperties(a,b)}catch(d){b[this.expando]=c,o.extend(a,b)}}return this.cache[c]||(this.cache[c]={}),c},set:function(a,b,c){var d,e=this.key(a),f=this.cache[e];if("string"==typeof b)f[b]=c;else if(o.isEmptyObject(f))o.extend(this.cache[e],b);else for(d in b)f[d]=b[d];return f},get:function(a,b){var c=this.cache[this.key(a)];return void 0===b?c:c[b]},access:function(a,b,c){var d;return void 0===b||b&&"string"==typeof b&&void 0===c?(d=this.get(a,b),void 0!==d?d:this.get(a,o.camelCase(b))):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d,e,f=this.key(a),g=this.cache[f];if(void 0===b)this.cache[f]={};else{o.isArray(b)?d=b.concat(b.map(o.camelCase)):(e=o.camelCase(b),b in g?d=[b,e]:(d=e,d=d in g?[d]:d.match(E)||[])),c=d.length;while(c--)delete g[d[c]]}},hasData:function(a){return!o.isEmptyObject(this.cache[a[this.expando]]||{})},discard:function(a){a[this.expando]&&delete this.cache[a[this.expando]]}};var L=new K,M=new K,N=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,O=/([A-Z])/g;function P(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(O,"-$1").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:N.test(c)?o.parseJSON(c):c}catch(e){}M.set(a,b,c)}else c=void 0;return c}o.extend({hasData:function(a){return M.hasData(a)||L.hasData(a)},data:function(a,b,c){return M.access(a,b,c)},removeData:function(a,b){M.remove(a,b)},_data:function(a,b,c){return L.access(a,b,c)},_removeData:function(a,b){L.remove(a,b)}}),o.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=M.get(f),1===f.nodeType&&!L.get(f,"hasDataAttrs"))){c=g.length; +while(c--)d=g[c].name,0===d.indexOf("data-")&&(d=o.camelCase(d.slice(5)),P(f,d,e[d]));L.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){M.set(this,a)}):J(this,function(b){var c,d=o.camelCase(a);if(f&&void 0===b){if(c=M.get(f,a),void 0!==c)return c;if(c=M.get(f,d),void 0!==c)return c;if(c=P(f,d,void 0),void 0!==c)return c}else this.each(function(){var c=M.get(this,d);M.set(this,d,b),-1!==a.indexOf("-")&&void 0!==c&&M.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){M.remove(this,a)})}}),o.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=L.get(a,b),c&&(!d||o.isArray(c)?d=L.access(a,b,o.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=o.queue(a,b),d=c.length,e=c.shift(),f=o._queueHooks(a,b),g=function(){o.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return L.get(a,c)||L.access(a,c,{empty:o.Callbacks("once memory").add(function(){L.remove(a,[b+"queue",c])})})}}),o.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length",l.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="",l.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var U="undefined";l.focusinBubbles="onfocusin"in a;var V=/^key/,W=/^(?:mouse|contextmenu)|click/,X=/^(?:focusinfocus|focusoutblur)$/,Y=/^([^.]*)(?:\.(.+)|)$/;function Z(){return!0}function $(){return!1}function _(){try{return m.activeElement}catch(a){}}o.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,p,q,r=L.get(a);if(r){c.handler&&(f=c,c=f.handler,e=f.selector),c.guid||(c.guid=o.guid++),(i=r.events)||(i=r.events={}),(g=r.handle)||(g=r.handle=function(b){return typeof o!==U&&o.event.triggered!==b.type?o.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(E)||[""],j=b.length;while(j--)h=Y.exec(b[j])||[],n=q=h[1],p=(h[2]||"").split(".").sort(),n&&(l=o.event.special[n]||{},n=(e?l.delegateType:l.bindType)||n,l=o.event.special[n]||{},k=o.extend({type:n,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&o.expr.match.needsContext.test(e),namespace:p.join(".")},f),(m=i[n])||(m=i[n]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,p,g)!==!1||a.addEventListener&&a.addEventListener(n,g,!1)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),o.event.global[n]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,p,q,r=L.hasData(a)&&L.get(a);if(r&&(i=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=Y.exec(b[j])||[],n=q=h[1],p=(h[2]||"").split(".").sort(),n){l=o.event.special[n]||{},n=(d?l.delegateType:l.bindType)||n,m=i[n]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&q!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||o.removeEvent(a,n,r.handle),delete i[n])}else for(n in i)o.event.remove(a,n+b[j],c,d,!0);o.isEmptyObject(i)&&(delete r.handle,L.remove(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,l,n,p=[d||m],q=j.call(b,"type")?b.type:b,r=j.call(b,"namespace")?b.namespace.split("."):[];if(g=h=d=d||m,3!==d.nodeType&&8!==d.nodeType&&!X.test(q+o.event.triggered)&&(q.indexOf(".")>=0&&(r=q.split("."),q=r.shift(),r.sort()),k=q.indexOf(":")<0&&"on"+q,b=b[o.expando]?b:new o.Event(q,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=r.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+r.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:o.makeArray(c,[b]),n=o.event.special[q]||{},e||!n.trigger||n.trigger.apply(d,c)!==!1)){if(!e&&!n.noBubble&&!o.isWindow(d)){for(i=n.delegateType||q,X.test(i+q)||(g=g.parentNode);g;g=g.parentNode)p.push(g),h=g;h===(d.ownerDocument||m)&&p.push(h.defaultView||h.parentWindow||a)}f=0;while((g=p[f++])&&!b.isPropagationStopped())b.type=f>1?i:n.bindType||q,l=(L.get(g,"events")||{})[b.type]&&L.get(g,"handle"),l&&l.apply(g,c),l=k&&g[k],l&&l.apply&&o.acceptData(g)&&(b.result=l.apply(g,c),b.result===!1&&b.preventDefault());return b.type=q,e||b.isDefaultPrevented()||n._default&&n._default.apply(p.pop(),c)!==!1||!o.acceptData(d)||k&&o.isFunction(d[q])&&!o.isWindow(d)&&(h=d[k],h&&(d[k]=null),o.event.triggered=q,d[q](),o.event.triggered=void 0,h&&(d[k]=h)),b.result}},dispatch:function(a){a=o.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(L.get(this,"events")||{})[a.type]||[],k=o.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=o.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,c=0;while((g=f.handlers[c++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(g.namespace))&&(a.handleObj=g,a.data=g.data,e=((o.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==e&&(a.result=e)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!==this;i=i.parentNode||this)if(i.disabled!==!0||"click"!==a.type){for(d=[],c=0;h>c;c++)f=b[c],e=f.selector+" ",void 0===d[e]&&(d[e]=f.needsContext?o(e,this).index(i)>=0:o.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h]*)\/>/gi,bb=/<([\w:]+)/,cb=/<|&#?\w+;/,db=/<(?:script|style|link)/i,eb=/checked\s*(?:[^=]|=\s*.checked.)/i,fb=/^$|\/(?:java|ecma)script/i,gb=/^true\/(.*)/,hb=/^\s*\s*$/g,ib={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};ib.optgroup=ib.option,ib.tbody=ib.tfoot=ib.colgroup=ib.caption=ib.thead,ib.th=ib.td;function jb(a,b){return o.nodeName(a,"table")&&o.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function kb(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function lb(a){var b=gb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function mb(a,b){for(var c=0,d=a.length;d>c;c++)L.set(a[c],"globalEval",!b||L.get(b[c],"globalEval"))}function nb(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(L.hasData(a)&&(f=L.access(a),g=L.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;d>c;c++)o.event.add(b,e,j[e][c])}M.hasData(a)&&(h=M.access(a),i=o.extend({},h),M.set(b,i))}}function ob(a,b){var c=a.getElementsByTagName?a.getElementsByTagName(b||"*"):a.querySelectorAll?a.querySelectorAll(b||"*"):[];return void 0===b||b&&o.nodeName(a,b)?o.merge([a],c):c}function pb(a,b){var c=b.nodeName.toLowerCase();"input"===c&&T.test(a.type)?b.checked=a.checked:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}o.extend({clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=o.contains(a.ownerDocument,a);if(!(l.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||o.isXMLDoc(a)))for(g=ob(h),f=ob(a),d=0,e=f.length;e>d;d++)pb(f[d],g[d]);if(b)if(c)for(f=f||ob(a),g=g||ob(h),d=0,e=f.length;e>d;d++)nb(f[d],g[d]);else nb(a,h);return g=ob(h,"script"),g.length>0&&mb(g,!i&&ob(a,"script")),h},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,k=b.createDocumentFragment(),l=[],m=0,n=a.length;n>m;m++)if(e=a[m],e||0===e)if("object"===o.type(e))o.merge(l,e.nodeType?[e]:e);else if(cb.test(e)){f=f||k.appendChild(b.createElement("div")),g=(bb.exec(e)||["",""])[1].toLowerCase(),h=ib[g]||ib._default,f.innerHTML=h[1]+e.replace(ab,"<$1>")+h[2],j=h[0];while(j--)f=f.lastChild;o.merge(l,f.childNodes),f=k.firstChild,f.textContent=""}else l.push(b.createTextNode(e));k.textContent="",m=0;while(e=l[m++])if((!d||-1===o.inArray(e,d))&&(i=o.contains(e.ownerDocument,e),f=ob(k.appendChild(e),"script"),i&&mb(f),c)){j=0;while(e=f[j++])fb.test(e.type||"")&&c.push(e)}return k},cleanData:function(a){for(var b,c,d,e,f,g,h=o.event.special,i=0;void 0!==(c=a[i]);i++){if(o.acceptData(c)&&(f=c[L.expando],f&&(b=L.cache[f]))){if(d=Object.keys(b.events||{}),d.length)for(g=0;void 0!==(e=d[g]);g++)h[e]?o.event.remove(c,e):o.removeEvent(c,e,b.handle);L.cache[f]&&delete L.cache[f]}delete M.cache[c[M.expando]]}}}),o.fn.extend({text:function(a){return J(this,function(a){return void 0===a?o.text(this):this.empty().each(function(){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&(this.textContent=a)})},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=jb(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=jb(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?o.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||o.cleanData(ob(c)),c.parentNode&&(b&&o.contains(c.ownerDocument,c)&&mb(ob(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(o.cleanData(ob(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return o.clone(this,a,b)})},html:function(a){return J(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!db.test(a)&&!ib[(bb.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(ab,"<$1>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(o.cleanData(ob(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,o.cleanData(ob(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,k=this.length,m=this,n=k-1,p=a[0],q=o.isFunction(p);if(q||k>1&&"string"==typeof p&&!l.checkClone&&eb.test(p))return this.each(function(c){var d=m.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(k&&(c=o.buildFragment(a,this[0].ownerDocument,!1,this),d=c.firstChild,1===c.childNodes.length&&(c=d),d)){for(f=o.map(ob(c,"script"),kb),g=f.length;k>j;j++)h=c,j!==n&&(h=o.clone(h,!0,!0),g&&o.merge(f,ob(h,"script"))),b.call(this[j],h,j);if(g)for(i=f[f.length-1].ownerDocument,o.map(f,lb),j=0;g>j;j++)h=f[j],fb.test(h.type||"")&&!L.access(h,"globalEval")&&o.contains(i,h)&&(h.src?o._evalUrl&&o._evalUrl(h.src):o.globalEval(h.textContent.replace(hb,"")))}return this}}),o.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){o.fn[a]=function(a){for(var c,d=[],e=o(a),g=e.length-1,h=0;g>=h;h++)c=h===g?this:this.clone(!0),o(e[h])[b](c),f.apply(d,c.get());return this.pushStack(d)}});var qb,rb={};function sb(b,c){var d=o(c.createElement(b)).appendTo(c.body),e=a.getDefaultComputedStyle?a.getDefaultComputedStyle(d[0]).display:o.css(d[0],"display");return d.detach(),e}function tb(a){var b=m,c=rb[a];return c||(c=sb(a,b),"none"!==c&&c||(qb=(qb||o("