bootstrap-sass-3.3.5.1/0000755000004100000410000000000012556335206014704 5ustar www-datawww-databootstrap-sass-3.3.5.1/Rakefile0000644000004100000410000000366512556335206016363 0ustar www-datawww-datalib_path = File.join(File.dirname(__FILE__), 'lib') $:.unshift(lib_path) unless $:.include?(lib_path) load './tasks/bower.rake' require 'rake/testtask' task :test do |t| $: << File.expand_path('test/') Dir.glob('./test/**/*_test.rb').each { |file| require file } end desc 'Dumps output to a CSS file for testing' task :debug do require 'sass' path = Bootstrap.stylesheets_path %w(bootstrap).each do |file| engine = Sass::Engine.for_file("#{path}/#{file}.scss", syntax: :scss, load_paths: [path]) File.open("./#{file}.css", 'w') { |f| f.write(engine.render) } end end desc 'Convert bootstrap to bootstrap-sass' task :convert, :branch do |t, args| require './tasks/converter' Converter.new(branch: args[:branch]).process_bootstrap end desc 'LESS to stdin -> Sass to stdout' task :less_to_scss, :branch do |t, args| require './tasks/converter' puts Converter.new(branch: args[:branch]).convert_less(STDIN.read) end desc 'Compile bootstrap-sass to tmp/ (or first arg)' task :compile, :css_path do |t, args| require 'sass' require 'term/ansicolor' path = 'assets/stylesheets' css_path = args.with_defaults(css_path: 'tmp')[:css_path] puts Term::ANSIColor.bold "Compiling SCSS in #{path}" Dir.mkdir(css_path) unless File.directory?(css_path) %w(_bootstrap bootstrap/_theme).each do |file| save_path = "#{css_path}/#{file.sub(/(^|\/)?_+/, '\1').sub('/', '-')}.css" puts Term::ANSIColor.cyan(" #{save_path}") + '...' engine = Sass::Engine.for_file("#{path}/#{file}.scss", syntax: :scss, load_paths: [path]) css = engine.render File.open(save_path, 'w') { |f| f.write css } end end desc 'Start a dummy (test) Rails app server' task :dummy_rails do require 'rack' require 'term/ansicolor' port = ENV['PORT'] || 9292 puts %Q(Starting on #{Term::ANSIColor.cyan "http://localhost:#{port}"}) Rack::Server.start( config: 'test/dummy_rails/config.ru', Port: port) end task default: :test bootstrap-sass-3.3.5.1/Gemfile0000644000004100000410000000027312556335206016201 0ustar www-datawww-datasource 'https://rubygems.org' gemspec # Compass for the dummy app gem 'compass', require: false group :development do gem 'byebug', platforms: [:mri_21, :mri_22], require: false end bootstrap-sass-3.3.5.1/templates/0000755000004100000410000000000012556335206016702 5ustar www-datawww-databootstrap-sass-3.3.5.1/templates/project/0000755000004100000410000000000012556335206020350 5ustar www-datawww-databootstrap-sass-3.3.5.1/templates/project/manifest.rb0000644000004100000410000000116512556335206022506 0ustar www-datawww-datadescription 'Bootstrap for Sass' # Stylesheet importing bootstrap stylesheet 'styles.sass' # Bootstrap variable overrides file stylesheet '_bootstrap-variables.sass', :to => '_bootstrap-variables.sass' # Copy JS and fonts manifest = Pathname.new(File.dirname(__FILE__)) assets = File.expand_path('../../assets', manifest) {:javascript => 'javascripts', :font => 'fonts' }.each do |method, dir| root = Pathname.new(assets).join(dir) Dir.glob root.join('**', '*.*') do |path| path = Pathname.new(path) send method, path.relative_path_from(manifest).to_s, :to => path.relative_path_from(root).to_s end end bootstrap-sass-3.3.5.1/templates/project/styles.sass0000644000004100000410000000027012556335206022565 0ustar www-datawww-data// Import Bootstrap Compass integration @import "bootstrap-compass" // Import custom Bootstrap variables @import "bootstrap-variables" // Import Bootstrap for Sass @import "bootstrap" bootstrap-sass-3.3.5.1/templates/project/_bootstrap-variables.sass0000644000004100000410000006752712556335206025406 0ustar www-datawww-data// Override Bootstrap variables here (defaults from bootstrap-sass v3.3.5): // // Variables // -------------------------------------------------- //== Colors // //## Gray and brand colors for use across Bootstrap. // $gray-base: #000 // $gray-darker: lighten($gray-base, 13.5%) // #222 // $gray-dark: lighten($gray-base, 20%) // #333 // $gray: lighten($gray-base, 33.5%) // #555 // $gray-light: lighten($gray-base, 46.7%) // #777 // $gray-lighter: lighten($gray-base, 93.5%) // #eee // $brand-primary: darken(#428bca, 6.5%) // #337ab7 // $brand-success: #5cb85c // $brand-info: #5bc0de // $brand-warning: #f0ad4e // $brand-danger: #d9534f //== Scaffolding // //## Settings for some of the most global styles. //** Background color for ``. // $body-bg: #fff //** Global text color on ``. // $text-color: $gray-dark //** Global textual link color. // $link-color: $brand-primary //** Link hover color set via `darken()` function. // $link-hover-color: darken($link-color, 15%) //** Link hover decoration. // $link-hover-decoration: underline //== Typography // //## Font, line-height, and color for body text, headings, and more. // $font-family-sans-serif: "Helvetica Neue", Helvetica, Arial, sans-serif // $font-family-serif: Georgia, "Times New Roman", Times, serif //** Default monospace fonts for ``, ``, and `
`.
// $font-family-monospace:   Menlo, Monaco, Consolas, "Courier New", monospace
// $font-family-base:        $font-family-sans-serif

// $font-size-base:          14px
// $font-size-large:         ceil(($font-size-base * 1.25)) // ~18px
// $font-size-small:         ceil(($font-size-base * 0.85)) // ~12px

// $font-size-h1:            floor(($font-size-base * 2.6)) // ~36px
// $font-size-h2:            floor(($font-size-base * 2.15)) // ~30px
// $font-size-h3:            ceil(($font-size-base * 1.7)) // ~24px
// $font-size-h4:            ceil(($font-size-base * 1.25)) // ~18px
// $font-size-h5:            $font-size-base
// $font-size-h6:            ceil(($font-size-base * 0.85)) // ~12px

//** Unit-less `line-height` for use in components like buttons.
// $line-height-base:        1.428571429 // 20/14
//** Computed "line-height" (`font-size` * `line-height`) for use with `margin`, `padding`, etc.
// $line-height-computed:    floor(($font-size-base * $line-height-base)) // ~20px

//** By default, this inherits from the ``.
// $headings-font-family:    inherit
// $headings-font-weight:    500
// $headings-line-height:    1.1
// $headings-color:          inherit


//== Iconography
//
//## Specify custom location and filename of the included Glyphicons icon font. Useful for those including Bootstrap via Bower.

//** Load fonts from this directory.

// [converter] If $bootstrap-sass-asset-helper if used, provide path relative to the assets load path.
// [converter] This is because some asset helpers, such as Sprockets, do not work with file-relative paths.
// $icon-font-path: if($bootstrap-sass-asset-helper, "bootstrap/", "../fonts/bootstrap/")

//** File name for all font files.
// $icon-font-name:          "glyphicons-halflings-regular"
//** Element ID within SVG icon file.
// $icon-font-svg-id:        "glyphicons_halflingsregular"


//== Components
//
//## Define common padding and border radius sizes and more. Values based on 14px text and 1.428 line-height (~20px to start).

// $padding-base-vertical:     6px
// $padding-base-horizontal:   12px

// $padding-large-vertical:    10px
// $padding-large-horizontal:  16px

// $padding-small-vertical:    5px
// $padding-small-horizontal:  10px

// $padding-xs-vertical:       1px
// $padding-xs-horizontal:     5px

// $line-height-large:         1.3333333 // extra decimals for Win 8.1 Chrome
// $line-height-small:         1.5

// $border-radius-base:        4px
// $border-radius-large:       6px
// $border-radius-small:       3px

//** Global color for active items (e.g., navs or dropdowns).
// $component-active-color:    #fff
//** Global background color for active items (e.g., navs or dropdowns).
// $component-active-bg:       $brand-primary

//** Width of the `border` for generating carets that indicator dropdowns.
// $caret-width-base:          4px
//** Carets increase slightly in size for larger components.
// $caret-width-large:         5px


//== Tables
//
//## Customizes the `.table` component with basic values, each used across all table variations.

//** Padding for ``s and ``s.
// $table-cell-padding:            8px
//** Padding for cells in `.table-condensed`.
// $table-condensed-cell-padding:  5px

//** Default background color used for all tables.
// $table-bg:                      transparent
//** Background color used for `.table-striped`.
// $table-bg-accent:               #f9f9f9
//** Background color used for `.table-hover`.
// $table-bg-hover:                #f5f5f5
// $table-bg-active:               $table-bg-hover

//** Border color for table and cell borders.
// $table-border-color:            #ddd


//== Buttons
//
//## For each of Bootstrap's buttons, define text, background and border color.

// $btn-font-weight:                normal

// $btn-default-color:              #333
// $btn-default-bg:                 #fff
// $btn-default-border:             #ccc

// $btn-primary-color:              #fff
// $btn-primary-bg:                 $brand-primary
// $btn-primary-border:             darken($btn-primary-bg, 5%)

// $btn-success-color:              #fff
// $btn-success-bg:                 $brand-success
// $btn-success-border:             darken($btn-success-bg, 5%)

// $btn-info-color:                 #fff
// $btn-info-bg:                    $brand-info
// $btn-info-border:                darken($btn-info-bg, 5%)

// $btn-warning-color:              #fff
// $btn-warning-bg:                 $brand-warning
// $btn-warning-border:             darken($btn-warning-bg, 5%)

// $btn-danger-color:               #fff
// $btn-danger-bg:                  $brand-danger
// $btn-danger-border:              darken($btn-danger-bg, 5%)

// $btn-link-disabled-color:        $gray-light

// Allows for customizing button radius independently from global border radius
// $btn-border-radius-base:         $border-radius-base
// $btn-border-radius-large:        $border-radius-large
// $btn-border-radius-small:        $border-radius-small


//== Forms
//
//##

//** `` background color
// $input-bg:                       #fff
//** `` background color
// $input-bg-disabled:              $gray-lighter

//** Text color for ``s
// $input-color:                    $gray
//** `` border color
// $input-border:                   #ccc

// TODO: Rename `$input-border-radius` to `$input-border-radius-base` in v4
//** Default `.form-control` border radius
// This has no effect on ``s in CSS.
// $input-border-radius:            $border-radius-base
//** Large `.form-control` border radius
// $input-border-radius-large:      $border-radius-large
//** Small `.form-control` border radius
// $input-border-radius-small:      $border-radius-small

//** Border color for inputs on focus
// $input-border-focus:             #66afe9

//** Placeholder text color
// $input-color-placeholder:        #999

//** Default `.form-control` height
// $input-height-base:              ($line-height-computed + ($padding-base-vertical * 2) + 2)
//** Large `.form-control` height
// $input-height-large:             (ceil($font-size-large * $line-height-large) + ($padding-large-vertical * 2) + 2)
//** Small `.form-control` height
// $input-height-small:             (floor($font-size-small * $line-height-small) + ($padding-small-vertical * 2) + 2)

//** `.form-group` margin
// $form-group-margin-bottom:       15px

// $legend-color:                   $gray-dark
// $legend-border-color:            #e5e5e5

//** Background color for textual input addons
// $input-group-addon-bg:           $gray-lighter
//** Border color for textual input addons
// $input-group-addon-border-color: $input-border

//** Disabled cursor for form controls and buttons.
// $cursor-disabled:                not-allowed


//== Dropdowns
//
//## Dropdown menu container and contents.

//** Background for the dropdown menu.
// $dropdown-bg:                    #fff
//** Dropdown menu `border-color`.
// $dropdown-border:                rgba(0,0,0,.15)
//** Dropdown menu `border-color` **for IE8**.
// $dropdown-fallback-border:       #ccc
//** Divider color for between dropdown items.
// $dropdown-divider-bg:            #e5e5e5

//** Dropdown link text color.
// $dropdown-link-color:            $gray-dark
//** Hover color for dropdown links.
// $dropdown-link-hover-color:      darken($gray-dark, 5%)
//** Hover background for dropdown links.
// $dropdown-link-hover-bg:         #f5f5f5

//** Active dropdown menu item text color.
// $dropdown-link-active-color:     $component-active-color
//** Active dropdown menu item background color.
// $dropdown-link-active-bg:        $component-active-bg

//** Disabled dropdown menu item background color.
// $dropdown-link-disabled-color:   $gray-light

//** Text color for headers within dropdown menus.
// $dropdown-header-color:          $gray-light

//** Deprecated `$dropdown-caret-color` as of v3.1.0
// $dropdown-caret-color:           #000


//-- Z-index master list
//
// Warning: Avoid customizing these values. They're used for a bird's eye view
// of components dependent on the z-axis and are designed to all work together.
//
// Note: These variables are not generated into the Customizer.

// $zindex-navbar:            1000
// $zindex-dropdown:          1000
// $zindex-popover:           1060
// $zindex-tooltip:           1070
// $zindex-navbar-fixed:      1030
// $zindex-modal-background:  1040
// $zindex-modal:             1050


//== Media queries breakpoints
//
//## Define the breakpoints at which your layout will change, adapting to different screen sizes.

// Extra small screen / phone
//** Deprecated `$screen-xs` as of v3.0.1
// $screen-xs:                  480px
//** Deprecated `$screen-xs-min` as of v3.2.0
// $screen-xs-min:              $screen-xs
//** Deprecated `$screen-phone` as of v3.0.1
// $screen-phone:               $screen-xs-min

// Small screen / tablet
//** Deprecated `$screen-sm` as of v3.0.1
// $screen-sm:                  768px
// $screen-sm-min:              $screen-sm
//** Deprecated `$screen-tablet` as of v3.0.1
// $screen-tablet:              $screen-sm-min

// Medium screen / desktop
//** Deprecated `$screen-md` as of v3.0.1
// $screen-md:                  992px
// $screen-md-min:              $screen-md
//** Deprecated `$screen-desktop` as of v3.0.1
// $screen-desktop:             $screen-md-min

// Large screen / wide desktop
//** Deprecated `$screen-lg` as of v3.0.1
// $screen-lg:                  1200px
// $screen-lg-min:              $screen-lg
//** Deprecated `$screen-lg-desktop` as of v3.0.1
// $screen-lg-desktop:          $screen-lg-min

// So media queries don't overlap when required, provide a maximum
// $screen-xs-max:              ($screen-sm-min - 1)
// $screen-sm-max:              ($screen-md-min - 1)
// $screen-md-max:              ($screen-lg-min - 1)


//== Grid system
//
//## Define your custom responsive grid.

//** Number of columns in the grid.
// $grid-columns:              12
//** Padding between columns. Gets divided in half for the left and right.
// $grid-gutter-width:         30px
// Navbar collapse
//** Point at which the navbar becomes uncollapsed.
// $grid-float-breakpoint:     $screen-sm-min
//** Point at which the navbar begins collapsing.
// $grid-float-breakpoint-max: ($grid-float-breakpoint - 1)


//== Container sizes
//
//## Define the maximum width of `.container` for different screen sizes.

// Small screen / tablet
// $container-tablet:             (720px + $grid-gutter-width)
//** For `$screen-sm-min` and up.
// $container-sm:                 $container-tablet

// Medium screen / desktop
// $container-desktop:            (940px + $grid-gutter-width)
//** For `$screen-md-min` and up.
// $container-md:                 $container-desktop

// Large screen / wide desktop
// $container-large-desktop:      (1140px + $grid-gutter-width)
//** For `$screen-lg-min` and up.
// $container-lg:                 $container-large-desktop


//== Navbar
//
//##

// Basics of a navbar
// $navbar-height:                    50px
// $navbar-margin-bottom:             $line-height-computed
// $navbar-border-radius:             $border-radius-base
// $navbar-padding-horizontal:        floor(($grid-gutter-width / 2))
// $navbar-padding-vertical:          (($navbar-height - $line-height-computed) / 2)
// $navbar-collapse-max-height:       340px

// $navbar-default-color:             #777
// $navbar-default-bg:                #f8f8f8
// $navbar-default-border:            darken($navbar-default-bg, 6.5%)

// Navbar links
// $navbar-default-link-color:                #777
// $navbar-default-link-hover-color:          #333
// $navbar-default-link-hover-bg:             transparent
// $navbar-default-link-active-color:         #555
// $navbar-default-link-active-bg:            darken($navbar-default-bg, 6.5%)
// $navbar-default-link-disabled-color:       #ccc
// $navbar-default-link-disabled-bg:          transparent

// Navbar brand label
// $navbar-default-brand-color:               $navbar-default-link-color
// $navbar-default-brand-hover-color:         darken($navbar-default-brand-color, 10%)
// $navbar-default-brand-hover-bg:            transparent

// Navbar toggle
// $navbar-default-toggle-hover-bg:           #ddd
// $navbar-default-toggle-icon-bar-bg:        #888
// $navbar-default-toggle-border-color:       #ddd


//=== Inverted navbar
// Reset inverted navbar basics
// $navbar-inverse-color:                      lighten($gray-light, 15%)
// $navbar-inverse-bg:                         #222
// $navbar-inverse-border:                     darken($navbar-inverse-bg, 10%)

// Inverted navbar links
// $navbar-inverse-link-color:                 lighten($gray-light, 15%)
// $navbar-inverse-link-hover-color:           #fff
// $navbar-inverse-link-hover-bg:              transparent
// $navbar-inverse-link-active-color:          $navbar-inverse-link-hover-color
// $navbar-inverse-link-active-bg:             darken($navbar-inverse-bg, 10%)
// $navbar-inverse-link-disabled-color:        #444
// $navbar-inverse-link-disabled-bg:           transparent

// Inverted navbar brand label
// $navbar-inverse-brand-color:                $navbar-inverse-link-color
// $navbar-inverse-brand-hover-color:          #fff
// $navbar-inverse-brand-hover-bg:             transparent

// Inverted navbar toggle
// $navbar-inverse-toggle-hover-bg:            #333
// $navbar-inverse-toggle-icon-bar-bg:         #fff
// $navbar-inverse-toggle-border-color:        #333


//== Navs
//
//##

//=== Shared nav styles
// $nav-link-padding:                          10px 15px
// $nav-link-hover-bg:                         $gray-lighter

// $nav-disabled-link-color:                   $gray-light
// $nav-disabled-link-hover-color:             $gray-light

//== Tabs
// $nav-tabs-border-color:                     #ddd

// $nav-tabs-link-hover-border-color:          $gray-lighter

// $nav-tabs-active-link-hover-bg:             $body-bg
// $nav-tabs-active-link-hover-color:          $gray
// $nav-tabs-active-link-hover-border-color:   #ddd

// $nav-tabs-justified-link-border-color:            #ddd
// $nav-tabs-justified-active-link-border-color:     $body-bg

//== Pills
// $nav-pills-border-radius:                   $border-radius-base
// $nav-pills-active-link-hover-bg:            $component-active-bg
// $nav-pills-active-link-hover-color:         $component-active-color


//== Pagination
//
//##

// $pagination-color:                     $link-color
// $pagination-bg:                        #fff
// $pagination-border:                    #ddd

// $pagination-hover-color:               $link-hover-color
// $pagination-hover-bg:                  $gray-lighter
// $pagination-hover-border:              #ddd

// $pagination-active-color:              #fff
// $pagination-active-bg:                 $brand-primary
// $pagination-active-border:             $brand-primary

// $pagination-disabled-color:            $gray-light
// $pagination-disabled-bg:               #fff
// $pagination-disabled-border:           #ddd


//== Pager
//
//##

// $pager-bg:                             $pagination-bg
// $pager-border:                         $pagination-border
// $pager-border-radius:                  15px

// $pager-hover-bg:                       $pagination-hover-bg

// $pager-active-bg:                      $pagination-active-bg
// $pager-active-color:                   $pagination-active-color

// $pager-disabled-color:                 $pagination-disabled-color


//== Jumbotron
//
//##

// $jumbotron-padding:              30px
// $jumbotron-color:                inherit
// $jumbotron-bg:                   $gray-lighter
// $jumbotron-heading-color:        inherit
// $jumbotron-font-size:            ceil(($font-size-base * 1.5))
// $jumbotron-heading-font-size:    ceil(($font-size-base * 4.5))


//== Form states and alerts
//
//## Define colors for form feedback states and, by default, alerts.

// $state-success-text:             #3c763d
// $state-success-bg:               #dff0d8
// $state-success-border:           darken(adjust-hue($state-success-bg, -10), 5%)

// $state-info-text:                #31708f
// $state-info-bg:                  #d9edf7
// $state-info-border:              darken(adjust-hue($state-info-bg, -10), 7%)

// $state-warning-text:             #8a6d3b
// $state-warning-bg:               #fcf8e3
// $state-warning-border:           darken(adjust-hue($state-warning-bg, -10), 5%)

// $state-danger-text:              #a94442
// $state-danger-bg:                #f2dede
// $state-danger-border:            darken(adjust-hue($state-danger-bg, -10), 5%)


//== Tooltips
//
//##

//** Tooltip max width
// $tooltip-max-width:           200px
//** Tooltip text color
// $tooltip-color:               #fff
//** Tooltip background color
// $tooltip-bg:                  #000
// $tooltip-opacity:             .9

//** Tooltip arrow width
// $tooltip-arrow-width:         5px
//** Tooltip arrow color
// $tooltip-arrow-color:         $tooltip-bg


//== Popovers
//
//##

//** Popover body background color
// $popover-bg:                          #fff
//** Popover maximum width
// $popover-max-width:                   276px
//** Popover border color
// $popover-border-color:                rgba(0,0,0,.2)
//** Popover fallback border color
// $popover-fallback-border-color:       #ccc

//** Popover title background color
// $popover-title-bg:                    darken($popover-bg, 3%)

//** Popover arrow width
// $popover-arrow-width:                 10px
//** Popover arrow color
// $popover-arrow-color:                 $popover-bg

//** Popover outer arrow width
// $popover-arrow-outer-width:           ($popover-arrow-width + 1)
//** Popover outer arrow color
// $popover-arrow-outer-color:           fade_in($popover-border-color, 0.05)
//** Popover outer arrow fallback color
// $popover-arrow-outer-fallback-color:  darken($popover-fallback-border-color, 20%)


//== Labels
//
//##

//** Default label background color
// $label-default-bg:            $gray-light
//** Primary label background color
// $label-primary-bg:            $brand-primary
//** Success label background color
// $label-success-bg:            $brand-success
//** Info label background color
// $label-info-bg:               $brand-info
//** Warning label background color
// $label-warning-bg:            $brand-warning
//** Danger label background color
// $label-danger-bg:             $brand-danger

//** Default label text color
// $label-color:                 #fff
//** Default text color of a linked label
// $label-link-hover-color:      #fff


//== Modals
//
//##

//** Padding applied to the modal body
// $modal-inner-padding:         15px

//** Padding applied to the modal title
// $modal-title-padding:         15px
//** Modal title line-height
// $modal-title-line-height:     $line-height-base

//** Background color of modal content area
// $modal-content-bg:                             #fff
//** Modal content border color
// $modal-content-border-color:                   rgba(0,0,0,.2)
//** Modal content border color **for IE8**
// $modal-content-fallback-border-color:          #999

//** Modal backdrop background color
// $modal-backdrop-bg:           #000
//** Modal backdrop opacity
// $modal-backdrop-opacity:      .5
//** Modal header border color
// $modal-header-border-color:   #e5e5e5
//** Modal footer border color
// $modal-footer-border-color:   $modal-header-border-color

// $modal-lg:                    900px
// $modal-md:                    600px
// $modal-sm:                    300px


//== Alerts
//
//## Define alert colors, border radius, and padding.

// $alert-padding:               15px
// $alert-border-radius:         $border-radius-base
// $alert-link-font-weight:      bold

// $alert-success-bg:            $state-success-bg
// $alert-success-text:          $state-success-text
// $alert-success-border:        $state-success-border

// $alert-info-bg:               $state-info-bg
// $alert-info-text:             $state-info-text
// $alert-info-border:           $state-info-border

// $alert-warning-bg:            $state-warning-bg
// $alert-warning-text:          $state-warning-text
// $alert-warning-border:        $state-warning-border

// $alert-danger-bg:             $state-danger-bg
// $alert-danger-text:           $state-danger-text
// $alert-danger-border:         $state-danger-border


//== Progress bars
//
//##

//** Background color of the whole progress component
// $progress-bg:                 #f5f5f5
//** Progress bar text color
// $progress-bar-color:          #fff
//** Variable for setting rounded corners on progress bar.
// $progress-border-radius:      $border-radius-base

//** Default progress bar color
// $progress-bar-bg:             $brand-primary
//** Success progress bar color
// $progress-bar-success-bg:     $brand-success
//** Warning progress bar color
// $progress-bar-warning-bg:     $brand-warning
//** Danger progress bar color
// $progress-bar-danger-bg:      $brand-danger
//** Info progress bar color
// $progress-bar-info-bg:        $brand-info


//== List group
//
//##

//** Background color on `.list-group-item`
// $list-group-bg:                 #fff
//** `.list-group-item` border color
// $list-group-border:             #ddd
//** List group border radius
// $list-group-border-radius:      $border-radius-base

//** Background color of single list items on hover
// $list-group-hover-bg:           #f5f5f5
//** Text color of active list items
// $list-group-active-color:       $component-active-color
//** Background color of active list items
// $list-group-active-bg:          $component-active-bg
//** Border color of active list elements
// $list-group-active-border:      $list-group-active-bg
//** Text color for content within active list items
// $list-group-active-text-color:  lighten($list-group-active-bg, 40%)

//** Text color of disabled list items
// $list-group-disabled-color:      $gray-light
//** Background color of disabled list items
// $list-group-disabled-bg:         $gray-lighter
//** Text color for content within disabled list items
// $list-group-disabled-text-color: $list-group-disabled-color

// $list-group-link-color:         #555
// $list-group-link-hover-color:   $list-group-link-color
// $list-group-link-heading-color: #333


//== Panels
//
//##

// $panel-bg:                    #fff
// $panel-body-padding:          15px
// $panel-heading-padding:       10px 15px
// $panel-footer-padding:        $panel-heading-padding
// $panel-border-radius:         $border-radius-base

//** Border color for elements within panels
// $panel-inner-border:          #ddd
// $panel-footer-bg:             #f5f5f5

// $panel-default-text:          $gray-dark
// $panel-default-border:        #ddd
// $panel-default-heading-bg:    #f5f5f5

// $panel-primary-text:          #fff
// $panel-primary-border:        $brand-primary
// $panel-primary-heading-bg:    $brand-primary

// $panel-success-text:          $state-success-text
// $panel-success-border:        $state-success-border
// $panel-success-heading-bg:    $state-success-bg

// $panel-info-text:             $state-info-text
// $panel-info-border:           $state-info-border
// $panel-info-heading-bg:       $state-info-bg

// $panel-warning-text:          $state-warning-text
// $panel-warning-border:        $state-warning-border
// $panel-warning-heading-bg:    $state-warning-bg

// $panel-danger-text:           $state-danger-text
// $panel-danger-border:         $state-danger-border
// $panel-danger-heading-bg:     $state-danger-bg


//== Thumbnails
//
//##

//** Padding around the thumbnail image
// $thumbnail-padding:           4px
//** Thumbnail background color
// $thumbnail-bg:                $body-bg
//** Thumbnail border color
// $thumbnail-border:            #ddd
//** Thumbnail border radius
// $thumbnail-border-radius:     $border-radius-base

//** Custom text color for thumbnail captions
// $thumbnail-caption-color:     $text-color
//** Padding around the thumbnail caption
// $thumbnail-caption-padding:   9px


//== Wells
//
//##

// $well-bg:                     #f5f5f5
// $well-border:                 darken($well-bg, 7%)


//== Badges
//
//##

// $badge-color:                 #fff
//** Linked badge text color on hover
// $badge-link-hover-color:      #fff
// $badge-bg:                    $gray-light

//** Badge text color in active nav link
// $badge-active-color:          $link-color
//** Badge background color in active nav link
// $badge-active-bg:             #fff

// $badge-font-weight:           bold
// $badge-line-height:           1
// $badge-border-radius:         10px


//== Breadcrumbs
//
//##

// $breadcrumb-padding-vertical:   8px
// $breadcrumb-padding-horizontal: 15px
//** Breadcrumb background color
// $breadcrumb-bg:                 #f5f5f5
//** Breadcrumb text color
// $breadcrumb-color:              #ccc
//** Text color of current page in the breadcrumb
// $breadcrumb-active-color:       $gray-light
//** Textual separator for between breadcrumb elements
// $breadcrumb-separator:          "/"


//== Carousel
//
//##

// $carousel-text-shadow:                        0 1px 2px rgba(0,0,0,.6)

// $carousel-control-color:                      #fff
// $carousel-control-width:                      15%
// $carousel-control-opacity:                    .5
// $carousel-control-font-size:                  20px

// $carousel-indicator-active-bg:                #fff
// $carousel-indicator-border-color:             #fff

// $carousel-caption-color:                      #fff


//== Close
//
//##

// $close-font-weight:           bold
// $close-color:                 #000
// $close-text-shadow:           0 1px 0 #fff


//== Code
//
//##

// $code-color:                  #c7254e
// $code-bg:                     #f9f2f4

// $kbd-color:                   #fff
// $kbd-bg:                      #333

// $pre-bg:                      #f5f5f5
// $pre-color:                   $gray-dark
// $pre-border-color:            #ccc
// $pre-scrollable-max-height:   340px


//== Type
//
//##

//** Horizontal offset for forms and lists.
// $component-offset-horizontal: 180px
//** Text muted color
// $text-muted:                  $gray-light
//** Abbreviations and acronyms border color
// $abbr-border-color:           $gray-light
//** Headings small color
// $headings-small-color:        $gray-light
//** Blockquote small color
// $blockquote-small-color:      $gray-light
//** Blockquote font size
// $blockquote-font-size:        ($font-size-base * 1.25)
//** Blockquote border color
// $blockquote-border-color:     $gray-lighter
//** Page header border color
// $page-header-border-color:    $gray-lighter
//** Width of horizontal description list titles
// $dl-horizontal-offset:        $component-offset-horizontal
//** Horizontal line color.
// $hr-border:                   $gray-lighter
bootstrap-sass-3.3.5.1/.travis.yml0000644000004100000410000000072512556335206017021 0ustar  www-datawww-datalanguage: ruby
rvm:
  - 2.1.5
gemfile:
  - test/gemfiles/sass_3_3.gemfile
  - test/gemfiles/sass_3_4.gemfile
  - test/gemfiles/sass_head.gemfile
before_install:
  - "npm install"
matrix:
  allow_failures:
    # rbx has issues https://github.com/rubinius/rubinius/issues/3060
    - rvm: rbx-2
    - gemfile: test/gemfiles/sass_head.gemfile
notifications:
  slack: heybb:3n88HHilXn76ji9vV4gL819Y
env:
  global:
  - VERBOSE=1
script:
  - bundle exec rake
  - sh test/*.sh
bootstrap-sass-3.3.5.1/lib/0000755000004100000410000000000012556335206015452 5ustar  www-datawww-databootstrap-sass-3.3.5.1/lib/bootstrap-sass.rb0000644000004100000410000000341712556335206020770 0ustar  www-datawww-datarequire 'bootstrap-sass/version'
module Bootstrap
  class << self
    # Inspired by Kaminari
    def load!
      register_compass_extension if compass?

      if rails?
        register_rails_engine
      elsif sprockets?
        register_sprockets
      end

      configure_sass
    end

    # Paths
    def gem_path
      @gem_path ||= File.expand_path '..', File.dirname(__FILE__)
    end

    def stylesheets_path
      File.join assets_path, 'stylesheets'
    end

    def fonts_path
      File.join assets_path, 'fonts'
    end

    def javascripts_path
      File.join assets_path, 'javascripts'
    end

    def assets_path
      @assets_path ||= File.join gem_path, 'assets'
    end

    # Environment detection helpers
    def sprockets?
      defined?(::Sprockets)
    end

    def compass?
      defined?(::Compass::Frameworks)
    end

    def rails?
      defined?(::Rails)
    end

    private

    def configure_sass
      require 'sass'

      ::Sass.load_paths << stylesheets_path

      # bootstrap requires minimum precision of 8, see https://github.com/twbs/bootstrap-sass/issues/409
      ::Sass::Script::Number.precision = [8, ::Sass::Script::Number.precision].max
    end

    def register_compass_extension
      ::Compass::Frameworks.register(
          'bootstrap',
          :version               => Bootstrap::VERSION,
          :path                  => gem_path,
          :stylesheets_directory => stylesheets_path,
          :templates_directory   => File.join(gem_path, 'templates')
      )
    end

    def register_rails_engine
      require 'bootstrap-sass/engine'
    end

    def register_sprockets
      Sprockets.append_path(stylesheets_path)
      Sprockets.append_path(fonts_path)
      Sprockets.append_path(javascripts_path)
    end
  end
end

Bootstrap.load!
bootstrap-sass-3.3.5.1/lib/bootstrap-sass/0000755000004100000410000000000012556335206020436 5ustar  www-datawww-databootstrap-sass-3.3.5.1/lib/bootstrap-sass/engine.rb0000644000004100000410000000062712556335206022235 0ustar  www-datawww-datamodule Bootstrap
  module Rails
    class Engine < ::Rails::Engine
      initializer 'bootstrap-sass.assets.precompile' do |app|
        %w(stylesheets javascripts fonts images).each do |sub|
          app.config.assets.paths << root.join('assets', sub).to_s
        end
        app.config.assets.precompile << %r(bootstrap/glyphicons-halflings-regular\.(?:eot|svg|ttf|woff2?)$)
      end
    end
  end
end
bootstrap-sass-3.3.5.1/lib/bootstrap-sass/version.rb0000644000004100000410000000015612556335206022452 0ustar  www-datawww-datamodule Bootstrap
  VERSION       = '3.3.5.1'
  BOOTSTRAP_SHA = '16b48259a62f576e52c903c476bd42b90ab22482'
end
bootstrap-sass-3.3.5.1/bootstrap-sass.gemspec0000644000004100000410000000260212556335206021235 0ustar  www-datawww-datalib = File.expand_path('../lib', __FILE__)
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
require 'bootstrap-sass/version'

Gem::Specification.new do |s|
  s.name     = "bootstrap-sass"
  s.version  = Bootstrap::VERSION
  s.authors  = ["Thomas McDonald"]
  s.email    = 'tom@conceptcoding.co.uk'
  s.summary  = "Twitter's Bootstrap, converted to Sass and ready to drop into Rails or Compass"
  s.homepage = "https://github.com/twbs/bootstrap-sass"
  s.license  = 'MIT'

  s.add_runtime_dependency 'sass', '>= 3.3.0'
  s.add_runtime_dependency 'autoprefixer-rails', '>= 5.0.0.1'

  # Testing dependencies
  s.add_development_dependency 'minitest', '~> 5.4.0'
  s.add_development_dependency 'minitest-reporters', '~> 1.0.5'
  # Integration testing
  s.add_development_dependency 'capybara'
  s.add_development_dependency 'poltergeist'
  # Dummy Rails app dependencies
  s.add_development_dependency 'actionpack', '>= 4.1.5'
  s.add_development_dependency 'activesupport', '>= 4.1.5'
  s.add_development_dependency 'json', '>= 1.8.1'
  s.add_development_dependency 'sprockets-rails', '>= 2.1.3'
  s.add_development_dependency 'jquery-rails', '>= 3.1.0'
  s.add_development_dependency 'slim-rails'
  s.add_development_dependency 'uglifier'
  # Converter
  s.add_development_dependency 'term-ansicolor'

  s.files      = `git ls-files`.split("\n")
  s.test_files = `git ls-files -- test/*`.split("\n")
end
bootstrap-sass-3.3.5.1/metadata.yml0000644000004100000410000003573212556335206017221 0ustar  www-datawww-data--- !ruby/object:Gem::Specification
name: bootstrap-sass
version: !ruby/object:Gem::Version
  version: 3.3.5.1
platform: ruby
authors:
- Thomas McDonald
autorequire: 
bindir: bin
cert_chain: []
date: 2015-06-25 00:00:00.000000000 Z
dependencies:
- !ruby/object:Gem::Dependency
  name: sass
  requirement: !ruby/object:Gem::Requirement
    requirements:
    - - ">="
      - !ruby/object:Gem::Version
        version: 3.3.0
  type: :runtime
  prerelease: false
  version_requirements: !ruby/object:Gem::Requirement
    requirements:
    - - ">="
      - !ruby/object:Gem::Version
        version: 3.3.0
- !ruby/object:Gem::Dependency
  name: autoprefixer-rails
  requirement: !ruby/object:Gem::Requirement
    requirements:
    - - ">="
      - !ruby/object:Gem::Version
        version: 5.0.0.1
  type: :runtime
  prerelease: false
  version_requirements: !ruby/object:Gem::Requirement
    requirements:
    - - ">="
      - !ruby/object:Gem::Version
        version: 5.0.0.1
- !ruby/object:Gem::Dependency
  name: minitest
  requirement: !ruby/object:Gem::Requirement
    requirements:
    - - "~>"
      - !ruby/object:Gem::Version
        version: 5.4.0
  type: :development
  prerelease: false
  version_requirements: !ruby/object:Gem::Requirement
    requirements:
    - - "~>"
      - !ruby/object:Gem::Version
        version: 5.4.0
- !ruby/object:Gem::Dependency
  name: minitest-reporters
  requirement: !ruby/object:Gem::Requirement
    requirements:
    - - "~>"
      - !ruby/object:Gem::Version
        version: 1.0.5
  type: :development
  prerelease: false
  version_requirements: !ruby/object:Gem::Requirement
    requirements:
    - - "~>"
      - !ruby/object:Gem::Version
        version: 1.0.5
- !ruby/object:Gem::Dependency
  name: capybara
  requirement: !ruby/object:Gem::Requirement
    requirements:
    - - ">="
      - !ruby/object:Gem::Version
        version: '0'
  type: :development
  prerelease: false
  version_requirements: !ruby/object:Gem::Requirement
    requirements:
    - - ">="
      - !ruby/object:Gem::Version
        version: '0'
- !ruby/object:Gem::Dependency
  name: poltergeist
  requirement: !ruby/object:Gem::Requirement
    requirements:
    - - ">="
      - !ruby/object:Gem::Version
        version: '0'
  type: :development
  prerelease: false
  version_requirements: !ruby/object:Gem::Requirement
    requirements:
    - - ">="
      - !ruby/object:Gem::Version
        version: '0'
- !ruby/object:Gem::Dependency
  name: actionpack
  requirement: !ruby/object:Gem::Requirement
    requirements:
    - - ">="
      - !ruby/object:Gem::Version
        version: 4.1.5
  type: :development
  prerelease: false
  version_requirements: !ruby/object:Gem::Requirement
    requirements:
    - - ">="
      - !ruby/object:Gem::Version
        version: 4.1.5
- !ruby/object:Gem::Dependency
  name: activesupport
  requirement: !ruby/object:Gem::Requirement
    requirements:
    - - ">="
      - !ruby/object:Gem::Version
        version: 4.1.5
  type: :development
  prerelease: false
  version_requirements: !ruby/object:Gem::Requirement
    requirements:
    - - ">="
      - !ruby/object:Gem::Version
        version: 4.1.5
- !ruby/object:Gem::Dependency
  name: json
  requirement: !ruby/object:Gem::Requirement
    requirements:
    - - ">="
      - !ruby/object:Gem::Version
        version: 1.8.1
  type: :development
  prerelease: false
  version_requirements: !ruby/object:Gem::Requirement
    requirements:
    - - ">="
      - !ruby/object:Gem::Version
        version: 1.8.1
- !ruby/object:Gem::Dependency
  name: sprockets-rails
  requirement: !ruby/object:Gem::Requirement
    requirements:
    - - ">="
      - !ruby/object:Gem::Version
        version: 2.1.3
  type: :development
  prerelease: false
  version_requirements: !ruby/object:Gem::Requirement
    requirements:
    - - ">="
      - !ruby/object:Gem::Version
        version: 2.1.3
- !ruby/object:Gem::Dependency
  name: jquery-rails
  requirement: !ruby/object:Gem::Requirement
    requirements:
    - - ">="
      - !ruby/object:Gem::Version
        version: 3.1.0
  type: :development
  prerelease: false
  version_requirements: !ruby/object:Gem::Requirement
    requirements:
    - - ">="
      - !ruby/object:Gem::Version
        version: 3.1.0
- !ruby/object:Gem::Dependency
  name: slim-rails
  requirement: !ruby/object:Gem::Requirement
    requirements:
    - - ">="
      - !ruby/object:Gem::Version
        version: '0'
  type: :development
  prerelease: false
  version_requirements: !ruby/object:Gem::Requirement
    requirements:
    - - ">="
      - !ruby/object:Gem::Version
        version: '0'
- !ruby/object:Gem::Dependency
  name: uglifier
  requirement: !ruby/object:Gem::Requirement
    requirements:
    - - ">="
      - !ruby/object:Gem::Version
        version: '0'
  type: :development
  prerelease: false
  version_requirements: !ruby/object:Gem::Requirement
    requirements:
    - - ">="
      - !ruby/object:Gem::Version
        version: '0'
- !ruby/object:Gem::Dependency
  name: term-ansicolor
  requirement: !ruby/object:Gem::Requirement
    requirements:
    - - ">="
      - !ruby/object:Gem::Version
        version: '0'
  type: :development
  prerelease: false
  version_requirements: !ruby/object:Gem::Requirement
    requirements:
    - - ">="
      - !ruby/object:Gem::Version
        version: '0'
description: 
email: tom@conceptcoding.co.uk
executables: []
extensions: []
extra_rdoc_files: []
files:
- ".gitignore"
- ".travis.yml"
- CHANGELOG.md
- CONTRIBUTING.md
- Gemfile
- LICENSE
- README.md
- Rakefile
- assets/fonts/bootstrap/glyphicons-halflings-regular.eot
- assets/fonts/bootstrap/glyphicons-halflings-regular.svg
- assets/fonts/bootstrap/glyphicons-halflings-regular.ttf
- assets/fonts/bootstrap/glyphicons-halflings-regular.woff
- assets/fonts/bootstrap/glyphicons-halflings-regular.woff2
- assets/images/.keep
- assets/javascripts/bootstrap-sprockets.js
- assets/javascripts/bootstrap.js
- assets/javascripts/bootstrap.min.js
- assets/javascripts/bootstrap/affix.js
- assets/javascripts/bootstrap/alert.js
- assets/javascripts/bootstrap/button.js
- assets/javascripts/bootstrap/carousel.js
- assets/javascripts/bootstrap/collapse.js
- assets/javascripts/bootstrap/dropdown.js
- assets/javascripts/bootstrap/modal.js
- assets/javascripts/bootstrap/popover.js
- assets/javascripts/bootstrap/scrollspy.js
- assets/javascripts/bootstrap/tab.js
- assets/javascripts/bootstrap/tooltip.js
- assets/javascripts/bootstrap/transition.js
- assets/stylesheets/_bootstrap-compass.scss
- assets/stylesheets/_bootstrap-mincer.scss
- assets/stylesheets/_bootstrap-sprockets.scss
- assets/stylesheets/_bootstrap.scss
- assets/stylesheets/bootstrap/_alerts.scss
- assets/stylesheets/bootstrap/_badges.scss
- assets/stylesheets/bootstrap/_breadcrumbs.scss
- assets/stylesheets/bootstrap/_button-groups.scss
- assets/stylesheets/bootstrap/_buttons.scss
- assets/stylesheets/bootstrap/_carousel.scss
- assets/stylesheets/bootstrap/_close.scss
- assets/stylesheets/bootstrap/_code.scss
- assets/stylesheets/bootstrap/_component-animations.scss
- assets/stylesheets/bootstrap/_dropdowns.scss
- assets/stylesheets/bootstrap/_forms.scss
- assets/stylesheets/bootstrap/_glyphicons.scss
- assets/stylesheets/bootstrap/_grid.scss
- assets/stylesheets/bootstrap/_input-groups.scss
- assets/stylesheets/bootstrap/_jumbotron.scss
- assets/stylesheets/bootstrap/_labels.scss
- assets/stylesheets/bootstrap/_list-group.scss
- assets/stylesheets/bootstrap/_media.scss
- assets/stylesheets/bootstrap/_mixins.scss
- assets/stylesheets/bootstrap/_modals.scss
- assets/stylesheets/bootstrap/_navbar.scss
- assets/stylesheets/bootstrap/_navs.scss
- assets/stylesheets/bootstrap/_normalize.scss
- assets/stylesheets/bootstrap/_pager.scss
- assets/stylesheets/bootstrap/_pagination.scss
- assets/stylesheets/bootstrap/_panels.scss
- assets/stylesheets/bootstrap/_popovers.scss
- assets/stylesheets/bootstrap/_print.scss
- assets/stylesheets/bootstrap/_progress-bars.scss
- assets/stylesheets/bootstrap/_responsive-embed.scss
- assets/stylesheets/bootstrap/_responsive-utilities.scss
- assets/stylesheets/bootstrap/_scaffolding.scss
- assets/stylesheets/bootstrap/_tables.scss
- assets/stylesheets/bootstrap/_theme.scss
- assets/stylesheets/bootstrap/_thumbnails.scss
- assets/stylesheets/bootstrap/_tooltip.scss
- assets/stylesheets/bootstrap/_type.scss
- assets/stylesheets/bootstrap/_utilities.scss
- assets/stylesheets/bootstrap/_variables.scss
- assets/stylesheets/bootstrap/_wells.scss
- assets/stylesheets/bootstrap/mixins/_alerts.scss
- assets/stylesheets/bootstrap/mixins/_background-variant.scss
- assets/stylesheets/bootstrap/mixins/_border-radius.scss
- assets/stylesheets/bootstrap/mixins/_buttons.scss
- assets/stylesheets/bootstrap/mixins/_center-block.scss
- assets/stylesheets/bootstrap/mixins/_clearfix.scss
- assets/stylesheets/bootstrap/mixins/_forms.scss
- assets/stylesheets/bootstrap/mixins/_gradients.scss
- assets/stylesheets/bootstrap/mixins/_grid-framework.scss
- assets/stylesheets/bootstrap/mixins/_grid.scss
- assets/stylesheets/bootstrap/mixins/_hide-text.scss
- assets/stylesheets/bootstrap/mixins/_image.scss
- assets/stylesheets/bootstrap/mixins/_labels.scss
- assets/stylesheets/bootstrap/mixins/_list-group.scss
- assets/stylesheets/bootstrap/mixins/_nav-divider.scss
- assets/stylesheets/bootstrap/mixins/_nav-vertical-align.scss
- assets/stylesheets/bootstrap/mixins/_opacity.scss
- assets/stylesheets/bootstrap/mixins/_pagination.scss
- assets/stylesheets/bootstrap/mixins/_panels.scss
- assets/stylesheets/bootstrap/mixins/_progress-bar.scss
- assets/stylesheets/bootstrap/mixins/_reset-filter.scss
- assets/stylesheets/bootstrap/mixins/_reset-text.scss
- assets/stylesheets/bootstrap/mixins/_resize.scss
- assets/stylesheets/bootstrap/mixins/_responsive-visibility.scss
- assets/stylesheets/bootstrap/mixins/_size.scss
- assets/stylesheets/bootstrap/mixins/_tab-focus.scss
- assets/stylesheets/bootstrap/mixins/_table-row.scss
- assets/stylesheets/bootstrap/mixins/_text-emphasis.scss
- assets/stylesheets/bootstrap/mixins/_text-overflow.scss
- assets/stylesheets/bootstrap/mixins/_vendor-prefixes.scss
- bootstrap-sass.gemspec
- bower.json
- composer.json
- lib/bootstrap-sass.rb
- lib/bootstrap-sass/engine.rb
- lib/bootstrap-sass/version.rb
- package.json
- sache.json
- tasks/bower.rake
- tasks/converter.rb
- tasks/converter/char_string_scanner.rb
- tasks/converter/fonts_conversion.rb
- tasks/converter/js_conversion.rb
- tasks/converter/less_conversion.rb
- tasks/converter/logger.rb
- tasks/converter/network.rb
- templates/project/_bootstrap-variables.sass
- templates/project/manifest.rb
- templates/project/styles.sass
- test/compass_test.rb
- test/compilation_test.rb
- test/dummy_node_mincer/apple-touch-icon-144-precomposed.png
- test/dummy_node_mincer/application.css.ejs.scss
- test/dummy_node_mincer/manifest.js
- test/dummy_rails/README.rdoc
- test/dummy_rails/Rakefile
- test/dummy_rails/app/assets/images/.keep
- test/dummy_rails/app/assets/javascripts/application.js
- test/dummy_rails/app/assets/stylesheets/application.sass
- test/dummy_rails/app/controllers/application_controller.rb
- test/dummy_rails/app/controllers/pages_controller.rb
- test/dummy_rails/app/helpers/application_helper.rb
- test/dummy_rails/app/views/layouts/application.html.erb
- test/dummy_rails/app/views/pages/root.html.slim
- test/dummy_rails/config.ru
- test/dummy_rails/config/application.rb
- test/dummy_rails/config/boot.rb
- test/dummy_rails/config/environment.rb
- test/dummy_rails/config/environments/development.rb
- test/dummy_rails/config/environments/production.rb
- test/dummy_rails/config/environments/test.rb
- test/dummy_rails/config/initializers/backtrace_silencers.rb
- test/dummy_rails/config/initializers/filter_parameter_logging.rb
- test/dummy_rails/config/initializers/inflections.rb
- test/dummy_rails/config/initializers/mime_types.rb
- test/dummy_rails/config/initializers/secret_token.rb
- test/dummy_rails/config/initializers/session_store.rb
- test/dummy_rails/config/initializers/wrap_parameters.rb
- test/dummy_rails/config/locales/en.yml
- test/dummy_rails/config/locales/es.yml
- test/dummy_rails/config/routes.rb
- test/dummy_rails/log/.keep
- test/dummy_sass_only/Gemfile
- test/dummy_sass_only/compile.rb
- test/dummy_sass_only/import_all.sass
- test/gemfiles/sass_3_3.gemfile
- test/gemfiles/sass_3_4.gemfile
- test/gemfiles/sass_head.gemfile
- test/node_mincer_test.rb
- test/node_sass_compile_test.sh
- test/pages_test.rb
- test/sass_test.rb
- test/sprockets_rails_test.rb
- test/support/dummy_rails_integration.rb
- test/support/reporting.rb
- test/test_helper.rb
- test/test_helper_rails.rb
homepage: https://github.com/twbs/bootstrap-sass
licenses:
- MIT
metadata: {}
post_install_message: 
rdoc_options: []
require_paths:
- lib
required_ruby_version: !ruby/object:Gem::Requirement
  requirements:
  - - ">="
    - !ruby/object:Gem::Version
      version: '0'
required_rubygems_version: !ruby/object:Gem::Requirement
  requirements:
  - - ">="
    - !ruby/object:Gem::Version
      version: '0'
requirements: []
rubyforge_project: 
rubygems_version: 2.4.6
signing_key: 
specification_version: 4
summary: Twitter's Bootstrap, converted to Sass and ready to drop into Rails or Compass
test_files:
- test/compass_test.rb
- test/compilation_test.rb
- test/dummy_node_mincer/apple-touch-icon-144-precomposed.png
- test/dummy_node_mincer/application.css.ejs.scss
- test/dummy_node_mincer/manifest.js
- test/dummy_rails/README.rdoc
- test/dummy_rails/Rakefile
- test/dummy_rails/app/assets/images/.keep
- test/dummy_rails/app/assets/javascripts/application.js
- test/dummy_rails/app/assets/stylesheets/application.sass
- test/dummy_rails/app/controllers/application_controller.rb
- test/dummy_rails/app/controllers/pages_controller.rb
- test/dummy_rails/app/helpers/application_helper.rb
- test/dummy_rails/app/views/layouts/application.html.erb
- test/dummy_rails/app/views/pages/root.html.slim
- test/dummy_rails/config.ru
- test/dummy_rails/config/application.rb
- test/dummy_rails/config/boot.rb
- test/dummy_rails/config/environment.rb
- test/dummy_rails/config/environments/development.rb
- test/dummy_rails/config/environments/production.rb
- test/dummy_rails/config/environments/test.rb
- test/dummy_rails/config/initializers/backtrace_silencers.rb
- test/dummy_rails/config/initializers/filter_parameter_logging.rb
- test/dummy_rails/config/initializers/inflections.rb
- test/dummy_rails/config/initializers/mime_types.rb
- test/dummy_rails/config/initializers/secret_token.rb
- test/dummy_rails/config/initializers/session_store.rb
- test/dummy_rails/config/initializers/wrap_parameters.rb
- test/dummy_rails/config/locales/en.yml
- test/dummy_rails/config/locales/es.yml
- test/dummy_rails/config/routes.rb
- test/dummy_rails/log/.keep
- test/dummy_sass_only/Gemfile
- test/dummy_sass_only/compile.rb
- test/dummy_sass_only/import_all.sass
- test/gemfiles/sass_3_3.gemfile
- test/gemfiles/sass_3_4.gemfile
- test/gemfiles/sass_head.gemfile
- test/node_mincer_test.rb
- test/node_sass_compile_test.sh
- test/pages_test.rb
- test/sass_test.rb
- test/sprockets_rails_test.rb
- test/support/dummy_rails_integration.rb
- test/support/reporting.rb
- test/test_helper.rb
- test/test_helper_rails.rb
has_rdoc: 
bootstrap-sass-3.3.5.1/test/0000755000004100000410000000000012556335206015663 5ustar  www-datawww-databootstrap-sass-3.3.5.1/test/compilation_test.rb0000644000004100000410000000104012556335206021560 0ustar  www-datawww-datarequire 'test_helper'
require 'fileutils'
require 'sass'

class CompilationTest < Minitest::Test
  def test_compilation
    path = 'assets/stylesheets'
    %w(_bootstrap bootstrap/_theme).each do |file|
      FileUtils.rm_rf('.sass-cache', secure: true)
      engine = Sass::Engine.for_file("#{path}/#{file}.scss", syntax: :scss, load_paths: [path])
      FileUtils.mkdir_p("tmp/#{File.dirname(file)}")
      File.open("tmp/#{file}.css", 'w') { |f|
        f.write engine.render
      }
      assert true # nothing was raised
    end
  end
end
bootstrap-sass-3.3.5.1/test/dummy_node_mincer/0000755000004100000410000000000012556335206021360 5ustar  www-datawww-databootstrap-sass-3.3.5.1/test/dummy_node_mincer/manifest.js0000644000004100000410000000331212556335206023523 0ustar  www-datawww-data'use strict';


// Build script from https://github.com/nodeca/mincer/tree/master/examples

//
// Require module
//


var Mincer = require('mincer');


//
// Get Mincer environment
//


//
// Configure Mincers logger, by default, all
// messages are going to the middle of nowhere
//


Mincer.logger.use(console);


//
// Create and export environment
//


var environment = new Mincer.Environment(process.cwd());


//
// Configure environment load paths (where to find ssets)
//

// Include bootstrap scss load path
var bootstrapPath = '../../';
environment.appendPath(bootstrapPath + 'assets/stylesheets');

// Include fonts load path
environment.appendPath(bootstrapPath + 'assets/fonts');

// Include dir with assets, root just for test
environment.appendPath('./');


//
// Define environment essential *_path helper that will be available in the
// processed assets. See `assets/stylesheets/app.css.ejs` for example.
//


environment.ContextClass.defineAssetPath(function (pathname, options) {
  var asset = this.environment.findAsset(pathname, options);

  if (!asset) {
    throw new Error("File " + pathname + " not found");
  }

  return '/assets/' + asset.digestPath;
});


//
// Create and compile Manifest
//

var manifest_path = process.argv[2] || __dirname + '/assets';

var manifest = new Mincer.Manifest(environment, manifest_path);


manifest.compile(['application.css'], function (err, assetsData) {
  if (err) {
    console.error("Failed compile assets: " + (err.message || err.toString()));
    process.exit(128);
  }

  console.info('\n\nAssets were successfully compiled.\n' +
               'Manifest data (a proper JSON) was written to:\n' +
               manifest.path + '\n\n');
  console.dir(assetsData);
});
bootstrap-sass-3.3.5.1/test/dummy_node_mincer/application.css.ejs.scss0000644000004100000410000000026712556335206026134 0ustar  www-datawww-data@import "bootstrap-mincer";
@import "bootstrap";

#image-retina {
  @include img-retina("apple-touch-icon-144-precomposed.png", "apple-touch-icon-144-precomposed.png", 72px, 72px);
}
bootstrap-sass-3.3.5.1/test/dummy_node_mincer/apple-touch-icon-144-precomposed.png0000644000004100000410000000673512556335206030074 0ustar  www-datawww-data‰PNG


IHDRçFâ¸
¤IDATx́—ËNaÇËNŸ¤aY7cª¥±V™x§Ñ
hâ²T‹Ü†æHH|—
1]è÷uaâJsúï:èÍר	ßâ·’8¿üÎ9¯ˆˆyÍ	æugnèÎ8ÛH8—€üEÓC^çOnP´ÇØ¬Ëœj£¬jªµ‚<Ÿ9io L²œûFüeá/ŒÍƠ:‡P-C6Ç^D Åè÷₫!:¤éÜ9Ơ¦ôŒI«S5ú«Đ̣Ä-½+^ÿ±ïa!ƒ½̀Jø1»}3×÷}đû–'K”úP¦µÊÄM‚@wd•FÇPz2´à&£8s|+MV±ñÅj®,/$₫²p†ƒ,B;O‚χP´>['”ÈÅPÇÙ”₫™@¨Ë(ÄiA“”•E]ø×…»0ÉgXœØ§µO5HÔ pc(f;¯râ!Íémqø‹#êÂ_Åû@¤=©+jt
‘‚\ÂÈn&œ́;înăƒºˆºx(²yÛe%V"Œ2Â^t‘–Í(Ë–<*ªs…ñE+ïË~«‹¨[—Ä
4Ưuk”Q̀«´\WÿJ È₫#![´4Q̣e]D]ز̃ü
WZ… ĐIF®0ÂÅƠÆÎă-QN²øF˜o=I„
Ưq&×ÚÏ
„½GB}®±0A]D] Gß̀Evơ5–k©§@"y~âTu¢º°ĐÆ·ïXÜ£ơxơX“¶P=«Ø¢.CS†0RoV§Ë8ñ«ºG 
½ù#;uʺ©?’‘¡Bå5{,=kºc]¨̉W©©ưnßLŸ¬ª®8ºùÆÿ5‰”I[$J"s7âÀ$£2ƒ€̀"ÈDA4“*$B•`ŒŒ¢Đ@4¡;d(h† RI•´Æ”`,­“]§éK¿₫ùú¼PwŸ}ªßÙUë£bɪỡ»ûî§$ñsŸâ₫æÆºäg]P¶B…V%
ë±ø±.±.Y¹Ôeî+?ói9¸ó‚X—X&“)–GnЧưL3¤û¼¦Ä_úµ›ëë²$ ö¿‡O¼¶ßëëR‡,HëÉ–A]æüŒ†t]x,Ö%Ö%azÔ¢ßĂ³¿lưa¬Kmb]P¤w»‰ßØÿ,Ö…‰uÉ‘I	·öâ§Î±.±.ÙdnbÿÄ¿º‚ªË…³—E8_á?—Ÿ5»w±¼<{“yvđ̉Đëâæ>À₫3Z]êñX¹øÀ¬Y²Ơ)l]@`b…öƯ%Æ–êë̃«.(PX
í»K>NåƠóÇ]IuAY‚j5Ú/#œüiơ’×Uëâ maP 8*¯0ƒç¨×%Ưk@¡ưŒ®8W>ú—•H¡.(0!B{î’9Q¢A…³•ê‚Â$Ü{
í©®Á‰uŸ­P&¡[
(´§º8qN;å³.(0>BÛ}óÄyqÖFÏuAaî¹	…¶3“ư'¾×º 0	]k@¡m¤ădŸŸ¯Ưáµ.(̀8€BÛH×=ñµÏº 0…ö¾KƯǵ€ẸuqĐ¥Ơ3	Úû.uOœ_½¶Ç[]P„B{›.íy{gIj;£q›Å³6Z^d¶m̃k̃Ûœ¯¸äoÍQVá¡.¹CA½M'"Đa/;£ƯfÙ/¹•W?5’sưỤ́uqĐ¹ƠØ*Z5¤₫®®¼@̃wF¿ƯqÈHN7Y†{WWD …‘­‘Ô,¹^EdŒ¡ ̃ƠHggÄ_xÅRÅ̉©¤	 /æÎè\Å%<ƒ´¨‚B»H] ‡UwFÅ/m1iÏO_ïI†…u	 !Đ!í‘„@B€,@ÇZPh—iÿ"Rß«ø0e^ơR—9@]ˆ¤°3’H¾.HóQug$%̣ÎèTÙÄë²<Œ
́ÎHD íQÊ’®ƒŒL €îŒ¤RØÉ	Ä«?uYÍX  îŒ¤̉Ư¥ºûƯÑr_uY†»3Hsg4úÉ&ÍÙ¸z»§º€,CaƯIôêÎhë/ß6iNŸNÓ¼Ơ¥.ºug$)ÂΨoçéi|	×Å-LÂƯĂ-ÚQÚó¤´3²áiÎÈ~ó<ƠdÉ
…ug$$ÂÎè­_¿k̉œƒû{®KvÚ×€‚º3H~g4ªß|sîLºÏ}₫~ùŸ¦w§)̃ë‚Â«â®›P`wFyÙMóưÈ’x…u꘥*uAa
íÎ(íá¿TûèYgY˜Ùá§„Se§í_2Œ<£—ú¯‹ƒvw
M F÷Î(NMy–¨ÔeÉ¡0ºwFq́wÇs]²Ó4̣Y7Q ƒ{KM¯“•êâæÇMŸÎ€PƠ;£¼®Îük‚ª
ƒ
£{g”óÇ“§¬‹ƒƤê‚Â$ôO ÀîŒD
`gT-FÚ3gÚ
‘º 0éßɤ¿3J°ßỶ-›v	Ô%;÷×€B»3’xà–»0̣Ou'Xd̉]Û÷KÔ…iô$@ÜI¤¼3B̉Ó©
ƒPXwFRéïŒd©K.Ph—ơtg”„@©ƠÅAëFưª¸³

íÎ(íÙÅù¬‹û¹‹ˆ@"uAa
́ÎHJ å#+H]\Üwg_CAƯ‰	”»,êÊäG€ôïŒạ̈Y×s—ÙS—K$'‹
íÎHâ‰Ïº¸»ØsDL ya˜ïVÓÇBaƯÉ	Ä‚h́Œ‰—̀öï)–Å
0Ø‘ˆ@>ê‚ ;·ï3³sÛ>º€,CAƯÉÂh́ŒÆ_`7çó”eu…qg$º'b4vF¢̣đHÔ%;ßém¹÷rèîŒBY|́Œ–,\/*Où₫"U—D+€éïŒd’ª‹KûëHzÖ®Ü,V—\ Ewg$!@]¦₫Ô¬[¹Å+ù=G̣´§{ÛbuAzÂèîŒD®8¹©°¬buAa{¾Í0Ê;£8¹×gÀcSDë‚ Â(ïŒâä6;¶í®K6È€@åQœÜ>–»=8\¼.,ˆY”wFî‰ó̀Đ¹ê‚´B0Ê;£º'ÎÚ›½Ơ…A…ÑƯÅÉ>ûw—x­pÇă¡0º;£8Ù~²à½.(BnYü̃áÄY»â5ÿuqĐ̣ä³.(LÈơ¬gæä¥(‹–0	%Ϻä.Pœ£ü‘ƠơaAÉb¹=Ê"ŒÚQ¾OÅé¶:As»̣Yˆâh×ÅA‹ZS¿wFy÷DyßîæÏIAÖ…y Ѻ¸…̣¡4;¶í1c‡Î	¾.(B̃eqPDIdYĂ?ĂŸŸ¼4ôºÜ
ÿ%–á3Ma4ߦÓªv]€Û€‰å¸(.‹Â»ºˆèΨƠ„ßÖÓ0ˆ…)‰uab]Ü %ÄBlˆuAb]rb±$cb]b]n‘QÔºQßf±.±.·ÿYMÈC,É•X—X;ơHM>bwÈ
IJ,‹u‰u©[`Y
ú´Œu‰uù?iY-…¥(u‰uÉ‘RëM-b]b]r¤ba°ïçu]b]ô0̀ûLˆ!–£€ù*Oëë²_1Ö¨
¢8oëëâ¢Øzâ¨!S–wu‰uîΤŒièÈ‚4f*c]dd	_à¦	º‚%°m˜Ïë]b]|δ±^¸‰
™ë±.ù"p)̀î
°˜ÊX—ú.PÉt@'Ü,Ac¦<Ö¥¾
”3^¸‰2+™¯c]e‘åkfüÚJA ¥€9ë¢ Œ,'˜ä!¡”@¦ËPĔƺË"O)SÄØơ„´@‹̉œYÎ\u	Uà2³œi§X€&̀(fs9ÏT2_ƺxçK¦’9ϼˬcF%SâëŒ]A£O³IEND®B`‚bootstrap-sass-3.3.5.1/test/node_mincer_test.rb0000644000004100000410000000200112556335206021522 0ustar  www-datawww-datarequire 'test_helper'
require 'json'

class NodeMincerTest < Minitest::Test
  DUMMY_PATH = 'test/dummy_node_mincer'

  def test_font_helper_without_suffix
    assert_match %r(url\(['"]?/assets/.*eot['"]?\)), @css
  end

  def test_font_helper_with_suffix_sharp
    assert_match %r(url\(['"]?/assets/.*svg#.+['"]?\)), @css
  end

  def test_font_helper_with_suffix_question
    assert_match %r(url\(['"]?/assets/.*eot\?.*['"]?\)), @css
  end

  def test_image_helper
    assert_match %r(url\(['"]?/assets/apple-touch-icon-144-precomposed.*png['"]?\)), @css
  end

  def setup
    tmp_dir = File.join GEM_PATH, 'tmp/node-mincer'
    command = "node manifest.js #{tmp_dir}"
    success = Dir.chdir DUMMY_PATH do
      silence_stdout_if !ENV['VERBOSE'] do
        system(command)
      end
    end
    assert success, 'Node.js Mincer compilation failed'
    manifest = JSON.parse(File.read("#{tmp_dir}/manifest.json"))
    css_name = manifest["assets"]["application.css"]
    @css = File.read("#{tmp_dir}/#{css_name}")
  end
end
bootstrap-sass-3.3.5.1/test/sprockets_rails_test.rb0000644000004100000410000000150112556335206022453 0ustar  www-datawww-datarequire 'test_helper'
require 'fileutils'
require 'find'
require 'shellwords'

class SprocketsRailsTest < Minitest::Test

  def test_sprockets_digest_asset_refs
    root     = 'test/dummy_rails'
    command  = "bundle exec rake assets:precompile GEMFILE=#{GEM_PATH}/Gemfile RAILS_ENV=production"
    compiled = Dir.chdir root do
      silence_stderr_if !ENV['VERBOSE'] do
        system(command)
      end
    end
    assert compiled, 'Could not precompile assets'
    Dir.glob(File.join(root, 'public', 'assets', 'app*.{css,js}')) do |path|
      File.open(path, 'r') do |f|
        f.read.scan /url\("?[^"]+\.(?:jpg|png|eot|woff2?|ttf|svg)[^"]*"?\)/ do |m|
          assert_match /-[0-9a-f]{12,}\./, m
        end
      end
    end
  ensure
    FileUtils.rm_rf %W(#{root}/public/assets/ #{root}/tmp/cache/), secure: true
  end
end
bootstrap-sass-3.3.5.1/test/gemfiles/0000755000004100000410000000000012556335206017456 5ustar  www-datawww-databootstrap-sass-3.3.5.1/test/gemfiles/sass_3_4.gemfile0000644000004100000410000000017112556335206022425 0ustar  www-datawww-datasource "https://rubygems.org"

gem 'sass', '~> 3.4.1'
gem 'compass', '~> 1.0.1', require: false

gemspec path: '../../'

bootstrap-sass-3.3.5.1/test/gemfiles/sass_3_3.gemfile0000644000004100000410000000017112556335206022424 0ustar  www-datawww-datasource "https://rubygems.org"

gem 'sass', '~> 3.3.14'
gem 'compass', '~> 1.0.1', require: false

gemspec path: '../../'
bootstrap-sass-3.3.5.1/test/gemfiles/sass_head.gemfile0000644000004100000410000000041112556335206022736 0ustar  www-datawww-datasource "https://rubygems.org"

gem 'sass', git: 'https://github.com/nex3/sass', branch: 'stable' # master is not compatible with Compass master
gem 'compass', git: 'https://github.com/chriseppstein/compass', branch: 'master', require: false

gemspec path: '../../'
bootstrap-sass-3.3.5.1/test/node_sass_compile_test.sh0000755000004100000410000000043612556335206022752 0ustar  www-datawww-data#!/bin/sh

# Test compilation with node-sass binary

mkdir -p tmp/node-sass
node-sass assets/stylesheets/bootstrap -o tmp/node-sass/bootstrap.css && \
node-sass assets/stylesheets/bootstrap/theme -o tmp/node-sass/bootstrap-theme.css || \
(echo "node-sass compilation failed" && exit 1)
bootstrap-sass-3.3.5.1/test/test_helper.rb0000644000004100000410000000166312556335206020534 0ustar  www-datawww-datarequire 'minitest/autorun'
require 'minitest/reporters'
Minitest::Reporters.use! Minitest::Reporters::SpecReporter.new

require 'active_support/core_ext/kernel/reporting'

Dir['test/support/**/*.rb'].each do |file|
  # strip ^test/ and .rb$
  file = file[5..-4]
  require_relative File.join('.', file)
end

GEM_PATH = File.expand_path('../', File.dirname(__FILE__))

#= Capybara + Poltergeist
require 'capybara/poltergeist'

Capybara.register_driver :poltergeist do |app|
  Capybara::Poltergeist::Driver.new(
      app,
      # inspector:   '/Applications/Chromium.app/Contents/MacOS/Chromium', # open in inspector: page.driver.debug
      window_size: [1280, 1024],
      timeout: 90,
      js_errors: true
  )
end

Capybara.configure do |config|
  config.app_host = 'http://localhost:7000'
  config.default_driver    = :poltergeist
  config.javascript_driver = :poltergeist
  config.server_port       = 7000
  config.default_wait_time = 10
end

bootstrap-sass-3.3.5.1/test/pages_test.rb0000644000004100000410000000037712556335206020355 0ustar  www-datawww-datarequire 'test_helper_rails'

class PagesTest < ActionDispatch::IntegrationTest
  include ::DummyRailsIntegration

  def test_visit_root
    visit root_path
    # ^ will raise on JS errors

    assert_equal 200, page.status_code

    screenshot!
  end
end
bootstrap-sass-3.3.5.1/test/dummy_sass_only/0000755000004100000410000000000012556335206021110 5ustar  www-datawww-databootstrap-sass-3.3.5.1/test/dummy_sass_only/Gemfile0000644000004100000410000000013012556335206022375 0ustar  www-datawww-datasource 'https://rubygems.org'

gem 'sass', '~> 3.3'
gem 'bootstrap-sass', path: '../..'
bootstrap-sass-3.3.5.1/test/dummy_sass_only/import_all.sass0000644000004100000410000000005512556335206024145 0ustar  www-datawww-data@import 'bootstrap'
@import 'bootstrap/theme'bootstrap-sass-3.3.5.1/test/dummy_sass_only/compile.rb0000644000004100000410000000046712556335206023074 0ustar  www-datawww-datarequire 'sass'
require 'bootstrap-sass'
require 'fileutils'

scss_path = File.expand_path('./import_all.sass', File.dirname(__FILE__))
css = Sass.compile File.read(scss_path), syntax: 'sass'

if ARGV[0]
  FileUtils.mkdir_p File.dirname(ARGV[0])
  File.open(ARGV[0], 'w') { |f| f.write css }
else
  puts css
end
bootstrap-sass-3.3.5.1/test/compass_test.rb0000644000004100000410000000056112556335206020716 0ustar  www-datawww-datarequire 'test_helper'

class CompassTest < Minitest::Test
  def test_create_project
    command = 'rm -rf tmp/new-compass-project; bundle exec compass create tmp/new-compass-project -r bootstrap-sass --using bootstrap --trace --force'
    success = silence_stdout_if(!ENV['VERBOSE']) { system(command) }
    assert success, 'Compass project creation failed!'
  end
end
bootstrap-sass-3.3.5.1/test/dummy_rails/0000755000004100000410000000000012556335206020210 5ustar  www-datawww-databootstrap-sass-3.3.5.1/test/dummy_rails/Rakefile0000644000004100000410000000037212556335206021657 0ustar  www-datawww-data# Add your own tasks in files placed in lib/tasks ending in .rake,
# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.

require File.expand_path('../config/application', __FILE__)

Dummy::Application.load_tasks
bootstrap-sass-3.3.5.1/test/dummy_rails/log/0000755000004100000410000000000012556335206020771 5ustar  www-datawww-databootstrap-sass-3.3.5.1/test/dummy_rails/log/.keep0000644000004100000410000000000012556335206021704 0ustar  www-datawww-databootstrap-sass-3.3.5.1/test/dummy_rails/README.rdoc0000644000004100000410000000006312556335206022015 0ustar  www-datawww-data== README

This is a minimal Rails app for testing
bootstrap-sass-3.3.5.1/test/dummy_rails/config/0000755000004100000410000000000012556335206021455 5ustar  www-datawww-databootstrap-sass-3.3.5.1/test/dummy_rails/config/application.rb0000644000004100000410000000122012556335206024300 0ustar  www-datawww-datarequire File.expand_path('../boot', __FILE__)

require 'rails'

%w(
  action_controller
  action_view
  sprockets
).each do |framework|
  require "#{framework}/railtie"
end

require 'slim-rails'
require 'jquery-rails'
require 'compass'
require 'bootstrap-sass'
require 'uglifier'

module Dummy
  class Application < Rails::Application
    config.assets.enabled = true if config.assets.respond_to?(:enabled)
    config.to_prepare do
      if ENV['VERBOSE']
        STDERR.puts "Loaded Rails #{Rails::VERSION::STRING}, Sprockets #{Sprockets::VERSION}",
                    "Asset paths: #{Rails.application.config.assets.paths}"
      end
    end
  end
end

bootstrap-sass-3.3.5.1/test/dummy_rails/config/initializers/0000755000004100000410000000000012556335206024163 5ustar  www-datawww-databootstrap-sass-3.3.5.1/test/dummy_rails/config/initializers/secret_token.rb0000644000004100000410000000143012556335206027173 0ustar  www-datawww-data# Be sure to restart your server when you modify this file.

# Your secret key is used for verifying the integrity of signed cookies.
# If you change this key, all old signed cookies will become invalid!

# Make sure the secret is at least 30 characters and all random,
# no regular words or you'll be exposed to dictionary attacks.
# You can use `rake secret` to generate a secure secret key.

# Make sure your secret_key_base is kept private
# if you're sharing your code publicly.
token = '4380f36fda304251bf48f12ad4474b6d11447f1f959bd5b77a5d56c92b97f4c403ee0ae13d31a85ed88058ff8795bf31ec17e70e5c229b3707a77a2ee7e81cc'

if Dummy::Application.config.respond_to?(:secret_key_base=)
  Dummy::Application.config.secret_key_base = token
else
  Dummy::Application.config.secret_token = token
endbootstrap-sass-3.3.5.1/test/dummy_rails/config/initializers/session_store.rb0000644000004100000410000000021212556335206027402 0ustar  www-datawww-data# Be sure to restart your server when you modify this file.

Dummy::Application.config.session_store :cookie_store, key: '_dummy_session'
bootstrap-sass-3.3.5.1/test/dummy_rails/config/initializers/mime_types.rb0000644000004100000410000000031512556335206026662 0ustar  www-datawww-data# Be sure to restart your server when you modify this file.

# Add new mime types for use in respond_to blocks:
# Mime::Type.register "text/richtext", :rtf
# Mime::Type.register_alias "text/html", :iphone
bootstrap-sass-3.3.5.1/test/dummy_rails/config/initializers/filter_parameter_logging.rb0000644000004100000410000000030212556335206031536 0ustar  www-datawww-data# Be sure to restart your server when you modify this file.

# Configure sensitive parameters which will be filtered from the log file.
Rails.application.config.filter_parameters += [:password]
bootstrap-sass-3.3.5.1/test/dummy_rails/config/initializers/wrap_parameters.rb0000644000004100000410000000100512556335206027700 0ustar  www-datawww-data# Be sure to restart your server when you modify this file.

# This file contains settings for ActionController::ParamsWrapper which
# is enabled by default.

# Enable parameter wrapping for JSON. You can disable this by setting :format to an empty array.
ActiveSupport.on_load(:action_controller) do
  wrap_parameters format: [:json] if respond_to?(:wrap_parameters)
end

# To enable root element in JSON for ActiveRecord objects.
# ActiveSupport.on_load(:active_record) do
#  self.include_root_in_json = true
# end
bootstrap-sass-3.3.5.1/test/dummy_rails/config/initializers/backtrace_silencers.rb0000644000004100000410000000062412556335206030500 0ustar  www-datawww-data# Be sure to restart your server when you modify this file.

# You can add backtrace silencers for libraries that you're using but don't wish to see in your backtraces.
# Rails.backtrace_cleaner.add_silencer { |line| line =~ /my_noisy_library/ }

# You can also remove all the silencers if you're trying to debug a problem that might stem from framework code.
# Rails.backtrace_cleaner.remove_silencers!
bootstrap-sass-3.3.5.1/test/dummy_rails/config/initializers/inflections.rb0000644000004100000410000000120712556335206027025 0ustar  www-datawww-data# Be sure to restart your server when you modify this file.

# Add new inflection rules using the following format. Inflections
# are locale specific, and you may define rules for as many different
# locales as you wish. All of these examples are active by default:
# ActiveSupport::Inflector.inflections(:en) do |inflect|
#   inflect.plural /^(ox)$/i, '\1en'
#   inflect.singular /^(ox)en/i, '\1'
#   inflect.irregular 'person', 'people'
#   inflect.uncountable %w( fish sheep )
# end

# These inflection rules are supported but not enabled by default:
# ActiveSupport::Inflector.inflections(:en) do |inflect|
#   inflect.acronym 'RESTful'
# end
bootstrap-sass-3.3.5.1/test/dummy_rails/config/boot.rb0000644000004100000410000000036212556335206022746 0ustar  www-datawww-data# Set up gems listed in the Gemfile.
ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../../../Gemfile', __FILE__)

require 'bundler/setup' if File.exists?(ENV['BUNDLE_GEMFILE'])
$LOAD_PATH.unshift File.expand_path('../../../../lib', __FILE__)
bootstrap-sass-3.3.5.1/test/dummy_rails/config/environments/0000755000004100000410000000000012556335206024204 5ustar  www-datawww-databootstrap-sass-3.3.5.1/test/dummy_rails/config/environments/test.rb0000644000004100000410000000276112556335206025516 0ustar  www-datawww-dataDummy::Application.configure do
  # Settings specified here will take precedence over those in config/application.rb.

  # The test environment is used exclusively to run your application's
  # test suite. You never need to work with it otherwise. Remember that
  # your test database is "scratch space" for the test suite and is wiped
  # and recreated between test runs. Don't rely on the data there!
  config.cache_classes = true

  # Do not eager load code on boot. This avoids loading your whole application
  # just for the purpose of running a single test. If you are using a tool that
  # preloads Rails for running tests, you may have to set it to true.
  config.eager_load = false

  # Configure static asset server for tests with Cache-Control for performance.
  if config.respond_to?(:serve_static_files)
    # rails >= 4.2
    config.serve_static_files = true
  elsif config.respond_to?(:serve_static_assets)
    # rails < 4.2
    config.serve_static_assets = true
  end
  config.static_cache_control = "public, max-age=3600"

  # Show full error reports and disable caching.
  config.consider_all_requests_local       = true
  config.action_controller.perform_caching = false

  # Raise exceptions instead of rendering exception templates.
  config.action_dispatch.show_exceptions = false

  # Disable request forgery protection in test environment.
  config.action_controller.allow_forgery_protection = false

  config.active_support.test_order = :random

  config.active_support.deprecation = :stderr
end
bootstrap-sass-3.3.5.1/test/dummy_rails/config/environments/production.rb0000644000004100000410000000617412556335206026727 0ustar  www-datawww-dataDummy::Application.configure do
  # Settings specified here will take precedence over those in config/application.rb.

  # Code is not reloaded between requests.
  config.cache_classes = true

  # Eager load code on boot. This eager loads most of Rails and
  # your application in memory, allowing both thread web servers
  # and those relying on copy on write to perform better.
  # Rake tasks automatically ignore this option for performance.
  config.eager_load = true

  # Full error reports are disabled and caching is turned on.
  config.consider_all_requests_local       = false
  config.action_controller.perform_caching = true

  # Enable Rack::Cache to put a simple HTTP cache in front of your application
  # Add `rack-cache` to your Gemfile before enabling this.
  # For large-scale production use, consider using a caching reverse proxy like nginx, varnish or squid.
  # config.action_dispatch.rack_cache = true

  # Disable Rails's static asset server (Apache or nginx will already do this).
  if config.respond_to?(:serve_static_files)
    # rails >= 4.2
    config.serve_static_files = true
  elsif config.respond_to?(:serve_static_assets)
    # rails < 4.2
    config.serve_static_assets = true
  end

  # Compress JavaScripts and CSS.
  config.assets.js_compressor = :uglifier
  # config.assets.css_compressor = :sass

  # Do not fallback to assets pipeline if a precompiled asset is missed.
  config.assets.compile = false

  # Generate digests for assets URLs.
  config.assets.digest = true

  # Version of your assets, change this if you want to expire all your assets.
  config.assets.version = '1.0'

  # Specifies the header that your server uses for sending files.
  # config.action_dispatch.x_sendfile_header = "X-Sendfile" # for apache
  # config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for nginx

  # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies.
  # config.force_ssl = true

  # Set to :debug to see everything in the log.
  config.log_level = :info

  # Prepend all log lines with the following tags.
  # config.log_tags = [ :subdomain, :uuid ]

  # Use a different logger for distributed setups.
  # config.logger = ActiveSupport::TaggedLogging.new(SyslogLogger.new)

  # Use a different cache store in production.
  # config.cache_store = :mem_cache_store

  # Enable serving of images, stylesheets, and JavaScripts from an asset server.
  # config.action_controller.asset_host = "http://assets.example.com"

  # Precompile additional assets.
  # application.js, application.css, and all non-JS/CSS in app/assets folder are already added.
  # config.assets.precompile += %w( search.js )

  # Enable locale fallbacks for I18n (makes lookups for any locale fall back to
  # the I18n.default_locale when a translation can not be found).
  config.i18n.fallbacks = true

  # Send deprecation notices to registered listeners.
  config.active_support.deprecation = :notify

  # Disable automatic flushing of the log to improve performance.
  # config.autoflush_log = false

  # Use default logging formatter so that PID and timestamp are not suppressed.
  config.log_formatter = ::Logger::Formatter.new
end
bootstrap-sass-3.3.5.1/test/dummy_rails/config/environments/development.rb0000644000004100000410000000160512556335206027055 0ustar  www-datawww-dataDummy::Application.configure do
  # Settings specified here will take precedence over those in config/application.rb.

  # In the development environment your application's code is reloaded on
  # every request. This slows down response time but is perfect for development
  # since you don't have to restart the web server when you make code changes.
  config.cache_classes = false

  # Do not eager load code on boot.
  config.eager_load = false

  # Show full error reports and disable caching.
  config.consider_all_requests_local       = true
  config.action_controller.perform_caching = false

  # Print deprecation notices to the Rails logger.
  config.active_support.deprecation = :log

  # Debug mode disables concatenation and preprocessing of assets.
  # This option may cause significant delays in view rendering with a large
  # number of complex assets.
  config.assets.debug = true
end
bootstrap-sass-3.3.5.1/test/dummy_rails/config/routes.rb0000644000004100000410000000007612556335206023326 0ustar  www-datawww-dataDummy::Application.routes.draw do
  root to: 'pages#root'
end
bootstrap-sass-3.3.5.1/test/dummy_rails/config/environment.rb0000644000004100000410000000022712556335206024347 0ustar  www-datawww-data# Load the Rails application.
require File.expand_path('../application', __FILE__)

# Initialize the Rails application.
Dummy::Application.initialize!
bootstrap-sass-3.3.5.1/test/dummy_rails/config/locales/0000755000004100000410000000000012556335206023077 5ustar  www-datawww-databootstrap-sass-3.3.5.1/test/dummy_rails/config/locales/es.yml0000644000004100000410000000003412556335206024226 0ustar  www-datawww-dataes:
  dummy:
    hello: Holabootstrap-sass-3.3.5.1/test/dummy_rails/config/locales/en.yml0000644000004100000410000000003612556335206024223 0ustar  www-datawww-dataen:
  dummy:
    hello: Hello
bootstrap-sass-3.3.5.1/test/dummy_rails/app/0000755000004100000410000000000012556335206020770 5ustar  www-datawww-databootstrap-sass-3.3.5.1/test/dummy_rails/app/views/0000755000004100000410000000000012556335206022125 5ustar  www-datawww-databootstrap-sass-3.3.5.1/test/dummy_rails/app/views/layouts/0000755000004100000410000000000012556335206023625 5ustar  www-datawww-databootstrap-sass-3.3.5.1/test/dummy_rails/app/views/layouts/application.html.erb0000644000004100000410000000046712556335206027574 0ustar  www-datawww-data


  bootstrap-sass Dummy App
  <%= stylesheet_link_tag 'application', media: "all", 'data-turbolinks-track' => true %>
  <%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
  <%= csrf_meta_tags %>



<%= yield %>



bootstrap-sass-3.3.5.1/test/dummy_rails/app/views/pages/0000755000004100000410000000000012556335206023224 5ustar  www-datawww-databootstrap-sass-3.3.5.1/test/dummy_rails/app/views/pages/root.html.slim0000644000004100000410000000544312556335206026046 0ustar  www-datawww-data.navbar.navbar-inverse: .container-fluid
  .navbar-header
    button.navbar-toggle.collapsed type="button" data-toggle="collapse" data-target="#c1"
      span.sr-only Toggle navigation
      span.icon-bar
      span.icon-bar
      span.icon-bar
    a.navbar-brand href="#" Bootstrap for Sass Test Rails App
  .collapse.navbar-collapse#c1
    ul.nav.navbar-nav
      li.active: a href="#"
        ' Home
        span.sr-only (current)
      li: a href="#" Link
      li.dropdown
        a.dropdown-toggle href="#" data-toggle="dropdown" role="button" aria-expanded="false"
          ' Dropdown
          span.caret
        ul.dropdown-menu role="menu"
          li: a href="#" Action
          li: a href="#" Another action
          li: a href="#" Something else here
          li.divider
          li: a href="#" Separated link
          li.divider
          li: a href="#" One more separated link
    form.navbar-form.navbar-left role="search"
      .input-group
        input.form-control type="search" placeholder="Search..."
        .input-group-btn: button.btn.btn-primary type="submit" Go
    ul.nav.navbar-nav.navbar-right
      li: a href="#" Link
      li.dropdown
        a.dropdown-toggle href="#" data-toggle="dropdown" role="button" aria-expanded="false"
          ' Dropdown
          span.caret
        ul.dropdown-menu role="menu"
          li: a href="#" Action
          li: a href="#" Another action
          li: a href="#" Something else here
          li.divider
          li: a href="#" Separated link

.container
  .panel.panel-primary
    .panel-heading: h1 Dummy App
    .panel-body: .row
      .col-sm-3
        h2 3 columns
        ul.list-group
          li.list-group-item: a href='#one' One
          li.list-group-item: a href='#two' Two
          li.list-group-item: a href='#three' Three
      .col-sm-3
        h2 3 columns
        .btn-group
          button.btn.btn-primary type='button' Button
          button.btn.btn-primary type='button' Button
        h2 Icons
        ul.list-inline
          li: i.glyphicon.glyphicon-user
          li: i.glyphicon.glyphicon-bullhorn
          li: i.glyphicon.glyphicon-tint
        table.table
          caption Table
          tr
            td.danger Danger!
            td.success Success!
      .col-sm-6
        h2 6 columns
        .panel.panel-primary: .panel-body
          .row
            .col-xs-4.col-xs-push-4
              .panel.panel-default: h3 This is col-xs-4 col-xs-push-4

          form.form-inline
            .form-group
              label.sr-only for="exampleInputEmail2" Email address
              input.form-control#exampleInputEmail2 type="email" placeholder="Enter email"
            .checkbox
              label
                input type="checkbox"
                |  Remember me
            button.btn.btn-default type="submit" Sign in
bootstrap-sass-3.3.5.1/test/dummy_rails/app/controllers/0000755000004100000410000000000012556335206023336 5ustar  www-datawww-databootstrap-sass-3.3.5.1/test/dummy_rails/app/controllers/pages_controller.rb0000644000004100000410000000010212556335206027216 0ustar  www-datawww-dataclass PagesController < ApplicationController
  def root
  end
endbootstrap-sass-3.3.5.1/test/dummy_rails/app/controllers/application_controller.rb0000644000004100000410000000031412556335206030427 0ustar  www-datawww-dataclass ApplicationController < ActionController::Base
  # Prevent CSRF attacks by raising an exception.
  # For APIs, you may want to use :null_session instead.
  protect_from_forgery with: :exception
end
bootstrap-sass-3.3.5.1/test/dummy_rails/app/assets/0000755000004100000410000000000012556335206022272 5ustar  www-datawww-databootstrap-sass-3.3.5.1/test/dummy_rails/app/assets/images/0000755000004100000410000000000012556335206023537 5ustar  www-datawww-databootstrap-sass-3.3.5.1/test/dummy_rails/app/assets/images/.keep0000644000004100000410000000000012556335206024452 0ustar  www-datawww-databootstrap-sass-3.3.5.1/test/dummy_rails/app/assets/javascripts/0000755000004100000410000000000012556335206024623 5ustar  www-datawww-databootstrap-sass-3.3.5.1/test/dummy_rails/app/assets/javascripts/application.js0000644000004100000410000000006312556335206027463 0ustar  www-datawww-data//= require jquery
//= require bootstrap-sprockets
bootstrap-sass-3.3.5.1/test/dummy_rails/app/assets/stylesheets/0000755000004100000410000000000012556335206024646 5ustar  www-datawww-databootstrap-sass-3.3.5.1/test/dummy_rails/app/assets/stylesheets/application.sass0000644000004100000410000000006212556335206030042 0ustar  www-datawww-data@import 'bootstrap-sprockets'
@import 'bootstrap'
bootstrap-sass-3.3.5.1/test/dummy_rails/app/helpers/0000755000004100000410000000000012556335206022432 5ustar  www-datawww-databootstrap-sass-3.3.5.1/test/dummy_rails/app/helpers/application_helper.rb0000644000004100000410000000003512556335206026617 0ustar  www-datawww-datamodule ApplicationHelper
end
bootstrap-sass-3.3.5.1/test/dummy_rails/config.ru0000644000004100000410000000023212556335206022022 0ustar  www-datawww-data# This file is used by Rack-based servers to start the application.

require ::File.expand_path('../config/environment',  __FILE__)
run Rails.application
bootstrap-sass-3.3.5.1/test/sass_test.rb0000644000004100000410000000120612556335206020217 0ustar  www-datawww-datarequire 'test_helper'
require 'shellwords'

class SassTest < Minitest::Test
  DUMMY_PATH = 'test/dummy_sass_only'

  def test_font_helper
    assert_match %r(url\(['"]?.*eot['"]?\)), @css
  end

  def setup
    Dir.chdir DUMMY_PATH do
      %x[rm -rf .sass-cache/]
      %x[bundle]
    end
    css_path = File.join GEM_PATH, 'tmp/bootstrap-sass-only.css'
    command  = "bundle exec ruby compile.rb #{Shellwords.escape css_path}"
    success  = Dir.chdir DUMMY_PATH do
      silence_stdout_if !ENV['VERBOSE'] do
        system(command)
      end
    end
    assert success, 'Sass-only compilation failed'
    @css = File.read(css_path)
  end
end
bootstrap-sass-3.3.5.1/test/support/0000755000004100000410000000000012556335206017377 5ustar  www-datawww-databootstrap-sass-3.3.5.1/test/support/reporting.rb0000644000004100000410000000047512556335206021743 0ustar  www-datawww-datamodule Kernel
  def silence_stdout_if(cond, &run)
    silence_stream_if(cond, STDOUT, &run)
  end

  def silence_stderr_if(cond, &run)
    silence_stream_if(cond, STDERR, &run)
  end

  def silence_stream_if(cond, stream, &run)
    if cond
      silence_stream(stream, &run)
    else
      run.call
    end
  end
end
bootstrap-sass-3.3.5.1/test/support/dummy_rails_integration.rb0000644000004100000410000000067412556335206024663 0ustar  www-datawww-datarequire 'capybara'
require 'fileutils'
module DummyRailsIntegration
  include Capybara::DSL

  def setup
    super
    FileUtils.rm_rf('test/dummy_rails/tmp/cache', secure: true)
  end

  def teardown
    super
    Capybara.reset_sessions!
    Capybara.use_default_driver
  end

  def screenshot!
    path = "tmp/#{name}.png"
    page.driver.render(File.join(GEM_PATH, path), full: true)
    STDERR.puts "Screenshot saved to #{path}"
  end
end
bootstrap-sass-3.3.5.1/test/test_helper_rails.rb0000644000004100000410000000023712556335206021722 0ustar  www-datawww-dataENV['RAILS_ENV'] = ENV['RACK_ENV'] = 'test'

require 'test_helper'
require 'dummy_rails/config/environment'
require 'rails/test_help'
require 'capybara/rails'
bootstrap-sass-3.3.5.1/sache.json0000644000004100000410000000040112556335206016655 0ustar  www-datawww-data{
    "name": "bootstrap-sass",
    "description": "bootstrap-sass is a Sass-powered version of Bootstrap, ready to drop right into your Sass powered applications",
    "tags": ["bootstrap", "grid", "typography", "buttons", "ui", "responsive-web-design"]
}
bootstrap-sass-3.3.5.1/package.json0000644000004100000410000000125612556335206017176 0ustar  www-datawww-data{
  "name": "bootstrap-sass",
  "version": "3.3.5",
  "description": "bootstrap-sass is a Sass-powered version of Bootstrap, ready to drop right into your Sass powered applications.",
  "main": "assets/javascripts/bootstrap.js",
  "repository": {
    "type": "git",
    "url": "git://github.com/twbs/bootstrap-sass"
  },
  "keywords": [
    "bootstrap",
    "sass",
    "css"
  ],
  "contributors": [
    "Thomas McDonald",
    "Tristan Harward",
    "Peter Gumeson",
    "Gleb Mazovetskiy"
  ],
  "license": "MIT",
  "bugs": {
    "url": "https://github.com/twbs/bootstrap-sass/issues"
  },
  "devDependencies": {
    "node-sass": "~2.0",
    "mincer": "~1.2",
    "ejs": "~1.0"
  }
}
bootstrap-sass-3.3.5.1/assets/0000755000004100000410000000000012556335206016206 5ustar  www-datawww-databootstrap-sass-3.3.5.1/assets/images/0000755000004100000410000000000012556335206017453 5ustar  www-datawww-databootstrap-sass-3.3.5.1/assets/images/.keep0000644000004100000410000000000012556335206020366 0ustar  www-datawww-databootstrap-sass-3.3.5.1/assets/fonts/0000755000004100000410000000000012556335206017337 5ustar  www-datawww-databootstrap-sass-3.3.5.1/assets/fonts/bootstrap/0000755000004100000410000000000012556335206021354 5ustar  www-datawww-databootstrap-sass-3.3.5.1/assets/fonts/bootstrap/glyphicons-halflings-regular.eot0000644000004100000410000004723712556335206027665 0ustar  www-datawww-dataŸNAMLP',(GLYPHICONS HalflingsRegularxVersion 1.009;PS 001.009;hotconv 1.0.70;makeotf.lib2.5.583298GLYPHICONS Halflings RegularBSGP©ÜMMFîÍéŒÏ̉Ù£(uÊŒ<0DăB/X
ïNïˆCCê^ÇrmR2skÉËPJ"5+–gléW*iƠW–/EÓ4#¬Ô£U¦~²f‰‘UDÜĹ÷ˆ«±àJ·1á/!₫₫/ºÊsª7’“k•”(ºˆ¡hNøé8oíd$yq¹1³âÖ9ƒ@-‰‚HG’ôµS"øFjôØ 6C3”¤&‡ÁøªW51ÁÓÜ×BŸ¯aËêQaR†U/ơ¶{*¿‚Ëï‚=–@dôøh$¡1ÉTÛ—nc+c’̃A¡§¼	•ZÉ€¤@QÑc­a‡Ỡl÷2>ÊK°Èmó' “ËC‡HMĬfB‰X,¾ỴÂp¨e¢
î¸UøØ*̉”zÿ
m‚ËËiO1nEÆ.›„ä
hx!aC
XTÚV¢Å©Â‹–—éR¥%¥|Iä HđÅƠPƒ5"Åb’N²µ=âøƒrÙ/_åRŒ›”™_à%̉„uzÉé̉˜Ö5’2Ä¡̉ăPÚ)Ô₫ÆĂFƒ7S‹q„FÀ{náia·¸@DĐsˆ;}9⬥?ź‘§ÂR{¦Tkí;̃µÇœ×U\NZø›Q-»^Ôs7̣f0˜ÊÆS3AÜ
_n`W7Pp˜»ôài«í³!đgØ/à_p»Á̉Z€-=Ă×¥~WZ#/á4 KF`´ »Œzß̉0Û|	D‚ѵ́‚&däI‰´üĂÁ;·Ḿ”{'¶om†”m¢I!wi9|H:§Û§À»ç÷Ê₫¾{û~ö¹ưqº¸©Oøåôî© ú›,˜ ‚L]&„J0ñ•Ù9/í9&̀Yøè“°{;÷ú'À3`’e@vH„yDZ$º„3ˈDx28ƒW€ Cx5xw‚B`£$C$'ăÊEl…y Ơh¿ëÔ€
DJ
$(p½îQA”A܉A–@'Ç$
hpÊ0ÎV0 `ºs¾ªẻ$É4$"t2=f´˜4„A„{Tk–0|rH¤öÄĐ£ï`L&±´sÔh¦]”§A<£¡‹²`R´'£•!ƒ‹1N¦;£_t3Û#  ậëúØêVăê*veÑF`E O${)ÙW=p:®̃ÖF`¾2ÆÄ2Ú“CëÁŒ̉^×.Êć˜¡ø–øG₫<û.pçNe2ê‹ïÖ´º̃+ÝsÛl:ÂĂ˼ïµÜ«u5©¦̃îĐtÀu•^8¾̀6èóÈ„TmyđQÉ%₫u~ộ%~1r̉˜aưwß^ù_©Z£Za¢ƒ²0!Ùè¡·úNö`¥.
uqÀ±çêYB¥\™¨ó…„ÊᨀÔê…[eđ‹îî₫:@ êJ'EÛ,¯3ubj@p¨ÁÆäđ´f¨Éßóîµ·eW9(	óºå ´̃…‰³æ=‹l”G¦à7gj âSƒM6ư ô0ƒÿ9̣§–OË‘¨üíl§®B¼aªỰ¯ ƒ<¦çÇBƠ™(VRAp¡fù^°ú¯+g9 qÓƯ¹MÆt]»ØªpëE•r@]‡@ó©VŸkV¥
uêädé^ÑX å–—R@?EƠöY2ô¨˜Éï]#àǼ4ÀJ̃åKöÁäÖ'ĂÁ¾d²âPC|mămånä#¾‚$+48u'…çe&û¿€[n[LáÈù’±%{BCDÚL:^! ‹‚ÓbÆ™:&Éÿˆî‚g3“-3Đøu´è­ÇæĐđ¹ƒb
iLZéÚ‚W‚FSÉäIdÍñ¡6.‘k5Pî„l77üUz’T:NưN¡‘—.ư"€ªåü)‰Å—́’['ß|U"Aƒ€³—‚I•Ûv©wĐÛØpë™í­t¹dk‚ˆ9؛嫫Í9n¨D‹mq¹—7I|6›Kbcƒ]¶Mô“©²ÄÎ÷—è¶BA€BøÈª_ôJºTÙüq Đ 6@—§„¸F—‡ƒhd`G®Tëñ·:MÅ7'à…L,éIh—ÆFP	»Ê~j½ŒíÄ¬$¡„ Ä3™hAƯä’-SŒ^ûÚ†…Đä-%qeḮë~ÀÆQq«§¬ln"i¾&‘æÑQe?FlKï¨"úAsÀ(Ư3Y;"¡LÚÔe€tå'ÄRzMœª10¨{=æ÷)€³K %$C
Âø‘9Mđö¼ë¼4c	ê€EotjÍÂV§GD)lñ8“¯,˜\wÀ¥à!%$¿×3tÉ		TBz’̉´	iUJ̉Ư[¢Çxgd„Brï$Å!eqˆ’"J>à£	)\~¡‚‰3(^
â R€8#>Öb›äH€âG'7_fÓ«cκtDoAA߃†(q™B<ư`Ç­`VˆüøéΫ”©Ö˜Â*úb̃Ïu‹P­4v@—+•Ê.’îQåÔ¥$V‚¡•í@C0
íR¢ÓÜP[‘z:X¦H#eäẠ́s >?úEÈWO>@IØ$|s¬iâ
ES¥²)0AŒ?£9•ab,¶@Kñ̀©o&î₫üˆ¬Q´%¬ÏLu+›
Â+H|̀Æ?´NK̀4ŒÆ’ÓCnPtè³
'OṬœ̉.j5àÄ´8ÈÜv¶wÖœ«I¥&•+ß`¼yScaO[#¡g°§Q§œ€¸Údª[îK½I矗`ôÄŒLPưÓ¸	#°Áœ½ ©)2̉7aTƒäëi@c\̃‘îÂâÈ0nêC»p̣ß–é‹4͵xö*ñËĐR”zƠYâ„b‡ÀúÛT[\úkU™v́HʈÜq’p঄IÂíIëÅ—)‹bB
	X”PºN´…tzí	2
Iæ==¤ ¦³ˆư¨Ă;}†bœàq₫Ójĩ†§a²#"	¬Ÿ>1¼‚°1äA›£p1ÖíƯP‚§OÇèO—ux÷Qôù°¹Î
Fϲ(úhƯ„©O'MDxÊLíK$ȵœhæ&
ù‹¦Đ1ŒïÄ4››Si ÜărHJ’P°tDMË;rMă‚+”ö—
*–àŸíØ—5u2$ªf3’K ß<ùP²LçrÑc‹I)˜Öå^ëda>
%Åàѳb(Ÿú–@,‘2f,~"¦7ÛR;®EÑ;¬­”HXå(ú¹Ÿ42ZäƯ'TªÛ¿ö‹„”½2J+ÿ^!#o„›”Y~4Ø-׃̣GW*đ!ßĂA•0&8€fä{`¼½øàWö=’DP8’'ÿ= ÖR¦ g©}ôiP>“Ê#¹Ëå¹4ẲEĐBRY®Æ^4eóư‚§N8¸V,[B‹†ĨîD#X†ø]²,Öèâ«LBsNC>
+¢íoÍê^x΅§
 ÷•újĆ.4ÀYa‰_{e¦A2=rđØ+‰­´Öî§¡9PO»A!!
×}´YÊPJe„—çGn±%xü1¬/}RgHØa^3-© ‹5
¶|‹qS§ĐđaWK{1al`IÀ1Ó™ÆQé¾ëf_yyCZ)ÄL3X±]W6@DM™Tø<.„«uëGÎKŒ́8ÙDsôÚбWæ‘r…Ư\ß7Z\ƠËỵ̈VÓ"I¦¢ŒơS¡§®dµ‰>C¦ÈUjßÉeÉÈÓD	®3MÇtWcP﯆–̣Ó‰6#3Q×nቩ…°J\º¡Ă7#磱`Ø€Këë¤ ©×lV6&ÓT’	̃~îÚl.’¾¡ <˜˜BP
£*´!zRZÄäeÑ™»¾¾Ù·T±#£CéLH±¬ÈªWÅ)ÚD›†÷“p®YU#ÉÊ51{WJ€¤4^Äf³̀¼Z°ö̀Ñy6–Ó‘T2™dÎ4H=êB„̉ɬ}œ&ƯƒêÂ,aPçv+:2æ~̣Á*0¼°¢ˆd¦É“ÂơÖƒd	‚øáË!"A+‰rHn¡ÇàsAäÁÈÚ—U
€ưø¤b H“ÛN6₫$.ĐlÀ};½@£¡âiKĂ \¬̉‚:v‰QEÇ:,|ưªQ  Y0|Ç%Ö@í° ÜäqcçÓÑdqh¯«è«¹vÜCÍGV†°©¸¯-(шm…’1»®âq89KF–Öä
"2±̣}Rrzó,j^¥ÀqË\…Ư–#pƒ»+ơ`fl³½â:k´t–5E„OaIĂJ¬P
@ps­E™j1ä4;6öô/aHÎ.¼ÏÓ°TX¤p“L‹¸ÄL8¤½Fç„Üi¨lí1–²YØ8É
%!/Áù{­¨̉Åñ éœ‹ÙåÆXœ€ºbˆ•½…NÉÂxp»ºäPWê½ÛíèÄcI9g²*₫º¿îƒ¹œ%:Ö»LË̃u‚CAOÂŒ­™%¬/Å“´(Y¢³^ï? ̃ă&I'ˆÈuh[x‹´–Qô$Çz̉µÅ½ø‚	ß³‚(=V×€Ÿê
¾mđ­ÅU)»ílΠΒ¾̀iœ•dă¦ˆ™¨½~f¦ùjGíµÖR{D€%>®¥@”…”6‚¥¤1‚œ`Æ!Î ` ņ¶wYó§‰Ơàk/a0A†«Â¹ŸÔ´ÊYh²¯—µ̣ˆd́æx‘k:fƒÿ漣<ƠØÙWL4`8IYMBÁSlcäÖßÈà™-»Ẻ‚'ÎÚŒÅ:,ÿD¬°çÑÙøÆ©84Ó)~÷ÿ2·j€Ÿ–Ç i¶·B(Lăµ|"a©¦¯4,¦b8§”¥Ô“i 94¦åÔŒ̉jWщ°©6*ĐTđ£†c4g̀“¢×UMÉb³RÇE²₫ª‹̣…C5‘Æ)jäÈ´ ‘­16pbĂëÛÆH÷§ªFx̣ˆñ¹¿—¯«Ä£%4ậQÙÄC‰Êˆ§Å	$9̉:ÅM>̣EÖƯaÜÆo«̀Ÿ^ÂØ<Iw̃Ygq7s[†đ’đ	-yĐ1ع5†äaÄăMK׿RBÇY€†óFq}¹âç±ô8ïÀ²*ÈNtå'.Yb„”›¤ÍđZÍûvÅK
(Ê]&Éœ( Ơ™¥ư2¯:0Ơ
€äo¤ÎÑ…PKiBH4Uđ¹X,¢[ˆđ$
0­mX±å»Ø´‚ ̣¥fë5đ0± VR
©8ê%ÙÑñỄ§§Dt°ĂUŒ‘s`ô·-BPÈzôP”së°Á¦vIë¶8z-¥t1DiB
̉Ư"˶ÜÈYTJ	ƒÄ.?Ô0Ç7à€jL¢ĂNú[2ÿtÈÂÄ®̀†æù#₫6?E×»†”Œ×¡®ˆ:ÉÎY;ƒç¬A&q…êSØIRÈ)Éss
9*x̉ß0Bj)ḿáH§A¾öhyĐḥMm¤&4Å…4€€‡ÜÚg¸ŸVæ&tYóÚ¦ÏOCS0³Y²ô‚d7MvNïj)wë÷AÉ(¬âo
"Í¢É[¦Ö
E`›”₫ë7ez¸Ä†»̃-·QÀ]¦6Û+BcaÍ@^IÂ:²̉»´̃₫¾=ƒ—­ˆsSŸäÏncÇùÓ	6
‚ÍçOă¡B„4½ˆŸç L¥¨ÀGpăB‰q/<•zAăÓCÁ¥» €ÔA~¹ÉxĐ06rih£Íh¤ÍØ·O‚N,:oÇÁḱçÚöÅ/ó¸{H°,ÛzĐ‚gÚfÈ»z—¯Ó΀5ưFơ²TrÀn/ät``l†Á™*H6jT¡tG/xøË@P@(„ÄIèp
̉eº!ùê`wv,:Á‘œ¹N£ 4}09zÇqĆä$ŕüM`Y†Q”’ øMää•«³÷Ä(|éB!í>¢ÁØ>«O	pwj A*@›ªŸJäC[h&3üëB QbưÏ©8…:ñ“%f~v/‹lâSäĐè̉0Ưè₫Đđ0a“·¶"Bæ8(f	úuGoÇÈgyñÅ×t£_Ăy~ÀÍ”
Ă%ä…°ûm†L
èà!I$äXt0ƒÏ€~ÀeŒPˆzËÍ]¢Úg
Đ=_±?ñºµº.j#+`li‘¡	BñâM5›̉ º¿Å‘G̉pŒ7«a
†Ö’%Y[UG9æ™̣ÆÓ@\bDêĐY…’{‰{¤đED0®—
Ö$ Qø+FvCđ`Ư΅3°ưQ¥	“î±E\àĐuC9ÍáĂ![€$êlïßơúêù6ßD¨oÙDgÀGˆ*+X!¸%#‚C€q‘?é­8ZUB)U@o¢Ïpg̃©¶ZØq…¡¡É8Ê9øÇ|ucácAÑœ¶­é°•W;©@á" €Ø>P‚Óïåh_™Ç9}.6€„V/ÇO:à3´}¡ZS±µœ{:ØÚ~’ó₫œÅyk¦cO6;OÎBá=—bVñ.	R¿k‹
oñ¤ÿ^±GV=áØ }ïoI"+
ô
]w‡×FªÁzÏ·ä®ö`<“Éơ²30ûh÷ŒÅ3]êRfú—¿859s¼`K…M€¤8ñË
X»Uqˆ<‰˜¥\˜“ÆZOàssè¿M’·&j&Ï
ÄÖ÷	.§%Ÿ ̉PÊBL~^äßÿùGˆËˆ‘3páD‡¬•:í¸×£Z¿£Á¹¨©<\ñ«Ç i¯¨ÛẀ†¨ÈÂ"(”ƒ:áÅâz‹©–X–~êÎ0PG]8ª¬ƒŒˆRQMNT¦qfƯW~!Ư0”R%Ơ‘0đxvGFy/Fø-›Ïwúu‚/ôî*ë+’Æ	\ơÂ8@ˆ6¢«Â₫©´‹»c<´àLƒ;c[û÷ÛÙºnr	ŸQS'o£QụT®{q̉_œÍ¿ƒƒSdª»A*ð:ṃ8Yuz2ÿPB«
́Hh`l´k’pèÿLLh
cEb6eÛ̉‹ ?!„™>|*=Vü­»Kî@ë“rx‘0ÓG`%ryr[6êY3Œ7ŒÅ‡f*—*n•à%9™ÚdfĂè1ó1̃¢Ú^'̀ư]‰–
RÍßèqÜÔ.Øê÷,œö•‰Ó^%„¯lÂÚâ
ă½eØØ#wWÂÑsó56!Ù=âå!q[ö°ÄØĂ%ÈÔ®]ó‹5^:€½m¨5©)?Vb|uÀ7f“º́w°œæÄđ,:çYeæ†R%”
̣[À›î
Éo gæF«AzµFP¥›̣ŸÀÔx›¶î{Ïíöd‚xĂ­ÖwĂ8˜–Ù”{{L> ®‚d¬2CäL‘º¨äL̃,œLÜè,„̣(àmŚø›ĂØåå$=Ñ|%Öluè&	Ä…”83ăÚ
N¢Xåxë\VnơÍïJ[)I›êwŒÄ/Ñé¹»²Ú²| GÅºÙØY×Áđ÷DHµ˜½*›Sưªîè¤æ’p6®0ÓcJ2ă@ÅW´%Ѧcï¼_^Ó$Ñç#*:G§®æ6¡ïn>ÍD;úù¥~¤`9ëhXB ñU«JB_Đ²ˆ˜ùˈî%ªư’´w'¹$³èv|#T<68çªKM¶Ï‘-Ù5U+¾¶¡'íB
ËĪN…‘øbJ́ĂOv'È́|‹„+*MŒ¼k(dˆ
}›CÚ˱@ ³Áq°³¹&ùaR%}´
Ë!ÖVĐƒ‘s3w2¦Ña²2²ÿawHæz¡/Q0đF¦ Ù]~;¥Ă¤ËÖ NDùP
mü˜K3x̃ke_™£
 ñó₫S¯!¡V&=²²ª²ºvç_PÀL9؃Y£¡i¿
§NU­Ó_¶¬¯)–ƒJ6Ư9‘f*ÊđS	± 17ÚF|¸BR$É·y,Ʊ.¿ÀƠ&=uqsáó¡ODẠ̊B›ÈôR„=çÙɳ—eøØ½É‡àB®¬ä¬ÖH­¡®ˆ
ª2lu'h7^#ÿS…)£Xi2..Pe¡/@FƠKÉ‘$é](Ø%à|–2ÉđY1pC±8tÁùIøă11N//+\»“p¥jÔÄïôd€”ÎáWÊmé›ĂI=ß½·ÓY“Zx¡ÔMЉPư8²“1/JG«ơÄ^U	,PÈd1O®ó^¬yßpq”l¿£2hƯÑ$øjvñø‹₫ª­̀ơIö%‡¨§áèÔ]VæÎÖ
.'[+WU8Á­[å†Dê’³è,ß»¾-=[ÀåÙÂO

wÿƒ ¿Eê)å3±ø¬äó¿J&¥dïÙ‚Ư¶R¡¬—S–\.° •5J$I&ó‘Ưoª·Hȳ~› l‡½Îz>€
Ux/ơHñĐu;?Gt®{?à³;óT¡ŒªH äL₫|Fú8á†đ²}ˆ¡{ú˜p:ß2t́͆a·Ëѧp6ÑÏíÔû·¶øè5Y"LÚD“Œù.r¼ØV“ß‘²ßS_
ºÚÊk₫Ï]»n&úH¸z§~¦9‘æ
¦p
$§4Ù‚”'¢{º& ¸«ÿËM\ŸÎ°éч¨®!́q®ià ÏÄ(.h'ËB±T­²Ÿ|{I„6cḶ¡.¹£ë¹iI¾ê«¿\!à;§àg`1âᾕ˜j%C ¹o3*60÷·EŒ˜Ø]tä‰.×-%0
Y‰KÇ_nft] ·*VFCÆtJ’°ÄTÔ+¤\WZ8ạ́Äâ×gFĐ²àÙ^
̃f¶ 5I=¶×ù#6ö.@ơ2z̉Ă;W`ÿB/Ä™Qøgí°ühjyJÓ°€N²AX¤3ªƯ,ơ¤›Kä6è’ë6Ú²ØM0®T@ …O{¡£˜4kj£|"¬ftÑŸ”Û„Uü‚<-ü̃a†®Ơæ5bú)í^R±°8™„ÎÁ:†§il¾­ÀKaÇ6@µæ”Ă!ÀÍĂ] buvÎ$	‡oUÇœ~:.…Lût–èêe—ü Ç€¢JξP
l$S[z–~Rq39é’ºô¶9ëQïË/m"•%ʤ‰¯†¼7Ÿ	Ăî5MKLŸé‘§"IßG„	èXT̃XL¿FđƯ§V
j‘p^¡/MĂgÁÛ»{¶¹»wô
́*øº€9ÿđ—ÊO¾Êˆ<Ë"aôÁ₫÷Aáîïˆq¿»¢†.M—2@möë‡p¿^Ú'“wß•möÇkxO8ü$[ó«&Áü|Y‚Zyư`2_|%r—“/åJ?¡QùĂǸ±l‰3ĂÎßK¡E$–wÿvCËh£ûa@÷U€1©Mø¾%0?1*¥–$GÓZÓ{!|ÇÊ¿À$ĂßÛ•Â-̣ÙªEv;‹Í“:佋Ÿ`BlÏ˸ ́Œ§Çɬ›oQƯ0&‹•û₫ñ,†F?¡ưÆä„^s,‡c“™ÁhË•ÿ$ĂEücl0åºw`ư⺹ň©@/€r^l˜8cT·3™Ük@›ÜúJÂƯ”´uPĐ&ʪNÉódùJjTK¸ªi	·é*u§»éX–{t“j~½É¡}ùñi\BÈKenâ‹Èµ|NëÖêu’ï#Ă]@lơCZ$iPæa½ă¸©t04y20ü
sØÖªâ,AuÆ!Q̉ØBäÏ–ö–^́ˆ@VsÉ‘€‚\̃Zßaă7©́¾‰©¸âш³»6-Tïr±ÀäU˜àu“Œ~ë°1HÂJ¨(<α‚̣½Ó³bRÔ–¸qiÏ鿢¬J?íeÿGÁ
§*jVħ"áØă†:Y);-Fådô!đH£»ÙG~´•u¦x	cb6m•¼ø)&;ñ0‡ÏdU?‡8ÅX~ïŸ1Ñ2Û¼¨t€ˆIØxè5ÄÀ{(ëz„ê
Ü'¿ûÿ[ ÅƒkèZĐ…ǾéÍi,đÅb™1̀‡‹¢Íá`º±(ôªmHáNđ́üe‰K¤°ßÔ/
[à´(ơö#Qô—GdÊuÎT©½^øm³¢¿%ù†ŒÅ!(˜7Kgé…P=èhøÏ•ákÉU+ŒÂÆ.[̉e¯‹ÏĐ¼³CÁÿå"GDÿΨ£›<*<ÖÏ₫éh«)¤` A˜U@O]hưlÅf2”…!HçÏF#QBÂé=uȾ9f´h€ó;"R„¥Ú’KÜ3-‚(G	)¼P±áø¡¨¦²T],7Áec̃
ë	F4hHÓs³73á–Ÿ ¡²âÛ`àºR–¡Tíwfͳ;6Bó>Ř
9&ÈâÛÑÚÜ‚Î?’—÷ø)À\¨Œ€<&Ò†™đ5	LĂJu¥@YƯƯ,냲ھÛ_wÂ0˜^é17ñđđö́p̃»‡*>D”8ăŸ˜ü°_)$UźóÊR´!jOFôÖ>{ˆĐ’‘»t,¯-…bPµ,m`D"/ŸzđAâ
͔إêßQZGƠ&U]xejxæåLwvơ~²œ=)@ØB¯Ö6Ê?!;53/ps@tƒOZS7©”§Ø™®’nŸØlxèûîÿZ?áƒZù—j
a²–{ưû6—¥ÿL4›«1Ÿ2¹´ù¯‹Q‡iÜư&Ö¥lƒˆá½Ǻ]o= 7Äļ	ofüĐ–ürMEV@ƒâHơ¦ẹ̀û/èưaD¥Ù¦ëH•ƒ®®lK5)ÂŒZ	OE´œ˜„3Á¦IG©'Đ³;îD'¶zl(‘ ÷EŸÏÑ$.Ùœđ-WR'\w+)Âw3æêº¾ù¸ @Û%RÔ)ÿ.̣~9;]ô.Âg+)Ø%ÈökƠÎÀ̉‰³¨^̉öN€W·>b1z:s†¨oD
Kö²ºÂ2w[|>9â®vWMFâ¯ũ`¹ëÍax‡chƠ«ơU·`*ʆeû]O V'6ư‡ÀƒxÔd?¼H]_rơA»£+zÀd­F›¯H	ÄÊ‹<¤…Ç´£ƠÆkUsFzÀº̣ÏaHÖÇ9-³œ˜ƒgv‚b‹=ÓëL/E»)°Ä.˜½x9j%Bă) $—ŒéAËB¢ǽ	ƒÛŸt b.b̉AE¨ZRböH(‘£ơJÿyaăˆ̉9Wj0f¤ßF'›°Xàz¾Ăï$DQ­6´ëqƒØ`	oÊĐ	i=áÁ{#4¤©FYHù@ØJĐ3
3i~‘tYĐ¢ÙhkH‡PÏñ×÷ư17ÓàॆYÜD—"Üp—Ħ;'³16€Æf—pu‹ ô¾>₫F›oDÅQi¨ná̀’-Ïç@P#䫇 ¦h“j ̃‚ˆÅ€f´¶C– –ƒ7°”T5HVXÉpíöÉklÄ­Œ³®]™ÚyXrÆ)?ͺÓBNJBƒ÷øä½#Ë›9e”&&»_0•Ó=®pZÉ6§ªh¤Ù)đ
̀—ƒa bÀŒí=(p)‡âÙåí¬;.N•,“ĂWí^*hÔºC—îm}E™7iơà‡6Á‚Ă÷aËIívͲxpƒ*Ac#4‚ÿưûŒ³Ç Nö&đ`)®Ä‰ˆ£H£We›ƒy7jl¡ï°oƯEh_n3 ­	‹jp?ª4èp2WÀE'kT_ă
&£°!È–jVl˜HíÓ»_kÉáÈâöʳùaYùŒ ¡ sÎ@ä[…G"ÊÓbYƠLÛÜ«X¦ªi
ƠC˜q8ñ&úzVaY{èÆ#I@µ§­2˜mó!ôdŒ[1	…AàÆ¢ÿnKèđ̣ƠÆeײå/>ßdƒm†uX:xÊ·\„âp̣N‘ûư©l+ƒH+cÇtSǶ‚æCÀ±[íà~3ŒÍeÀ}6° \³,ÎñÉ„˜×|¤ỴƯ§çø˜§v]¬'û|¿Ÿë&í–́Mô2° dơ¬dsàx-((76”©aX›½m=ƠîÓ¿ăQˆ—<$ªª€üóQ†˜„º\“
ÔªqiéH阇¬‹‰i'i¤”$"£{S*VwF‹“/°t<́ÊÁáQ`Ê’Z¸+đpr)›(¹.jµé¸«Iük5ơ	<ä´ʆ±Ë®ÉÖ, kO‘‡œDTˆÊJ&^7º£‡ÄªQ₫¤ËÏvße
&ZØ’
^4úÆ^s°ñD+`WHµ™®b́6ÙÄ©˜ ¸®ÈL˜W{ZZ ¦@°ämqáûv¦É·(DÁ\+Ôlåéû0*¥V¥ß‡°VmƠ§æhÆæØ/S`|³^\<-™„©Ă6ë¸2©N3‚"
ToŸóŒlräÅe ‚!ơÅH2‹pƒA Ö›¨ ‡̃ĂÏ{›È¼₫/£̣ŸÑçœudU2*2̣"c«̀"p…${©€y,饋ö&\àm¾&º`Đ|x ¦p…ˆCª̉w#ÂÉûW9D­IiñÑ–Cˆ›Ksï–ç‡S¶“ă3ï,¶‘–₫M›’;j¨₫Bë§4›P›2ÙÙiµîïf¶®É¿íÁbA­]a¢idíÂ𭨆"Ạ̈×i!aQhÔCNO½±ï‚ơYí
“xF$Äøg—9¥‘Z`W«°…VBâg¸± ́Ú#j\Ë‚—¨€eùGñû[³.à¾]‹ª0º~X{2›D©„?ø"ó3ÄBáj,ÀK~Æb#„0¬É’L˜kcÍ(6 ¸
±aüE7λ/Ơ¯%­ ü±œ·ï àÉÄ¡Rë^JûëÅCÏZ+71XÛ´ĐUO,Á„öá}#-”eÙ¤ 4ö3Å‚đítĂ8§™Z7†Îià¬Ê<:iÑ?Ft‹Fk–CW'˜êf0i<âXdj—ùŒ”0ÛW#i‹‹–eCÏ
zI7ˆÎB°s·¬˜.Kƒ  *ëƯV‘°«dÿ‡ŸDljö@́«ï%
©Üˆå
ÎZˆÄsƯï®sh̀¸%‡^ß
ưèøÍ÷@8†̣§¤øÎ? Nº8gÔGøgr¨X°€Sƒ» üä•
Ap‘³º4‡z*ö¹4áƯà§,Ă­¹Ät4GÙnÔè÷‘¼ơdSå>fî”Q–C̣ÏWUZ{SÙ;Nxå½Ê}°ÇH&º¼*­9׸¯q‹U1 Êóa `(M-aÈG}Ơn¶̀½è¢Ú0	–¼pÊÔÇmcnñ
̣đ‚ɘÀ_ú\±ül¼̃Ûà₫»}Î	È̃9÷FávHĂ¾kƒJZüNO å´mZáÁQí̉¤	aSûëfú
)QC+2
d’˜¡[¯ư»	̀ïÁơH"t*̃
Ác*bÏÆÚ¢÷¯q°¨,µ™óă#S˜Ÿ#¢äu›'̉¬ơ:4©as¥©¾CDMF§|ɸm©_Ă1L]öáY˜Ê\À§ư*¤Xœ>tú–¯¸̀g‹§ØD‰Ÿ£øèd@&[°)8ĂÎ;<œ{óÊ8<–È+VG\°H˜®¦^¯a—‹aeƯ-4”úsÚJÔA	\àhM[‚\`đ“¼#¿pD5Z97g;²÷BWâmÎä‰qTXX‘%0¹vºă†ù&ù·]E¹Û4]ûFŸIJä¤ù–œ„&ƯS_¦îƒ4ÈR‰0 ¯¥Dü+Ëme¹Ô¨Y	ƒg÷ĐOøñ+M{”03Ïv'Í…f…ÁÅt¯áè :;ôرÊ	Nô¦nà\Ç”^Ü,)1̃lăá’aBïZZÚ„[•à	¸	ûZS̉̉ä¼UYhÜ߆ÏÊw€ơ‹S¸\®/¤*?zQĐ‹ÿ`X4ïg¹ríÛ[§CWæÛGû.§Y„́0Q|ûRÔƒ‚E[w¾¦î„yƒ)¸áï‘,шï$ËNK@c/b
-#Z¯I
¹G$Æ—¯™‹tmçÊH#êđ)X£wPZAD|¢S
oưfơT¤€ƯHÚë)¸ÎäÓçÇ>ªM1 b
7á°…ɆS‹uĐĂq×
ö·öjK4[sđ„‡	•—×xL ›Ö¼Ç¢©ë]5ú!M!A¾dƧN Ë><«:Ç»Z(°8†ø)e…„ß
 »¥™†/™WØÈÀ|
ư°bªØéˆú<é÷œƒ®T?%Ă ²:@±äÔ,-àø€ecMPđ8u¤m°VĐgŒ9Héö6®Ëç‹}¾=³5ƒ—Ab̉ÄæưḮ°¬Î™ÀV:’…_ leɹß
ÏÊî–•vư`Í0ä!$`GÁéA"I;$ß^?ú®í‰Ke	O¢ Í÷³N(Ơ½çö“YyÊ5Bç¡w¸ĐV¹%ˆju;)lFµoaǻË›7óxéÿ’Ú¸Ø4-‰É%ë †đ$ÏÖ¹/zskǘ(sh>»ÁDD©ÅƒÉt¥TÄ7örurÀœ¸0É̉¢ `Ü´h5
5Œ¦Éä¶“Sá}¸ÑƯÈÿ̉4hrva¼éléc!ZjB]¹¦©ÎxâD¯¶ÿb–TxzYS‚ß6_ö)ƒÊo°Ôp>˜#@P¢SÓ*ưbÜS\qÆ‹xñYfQ><"ó·²ă¢
Y6‘Ạ̊IEr_7ñˆ̉°VÔHĂ!³ÅIçrŒELç6!N»öq"'’d “a₫qMvºÅ‹A‚%íơºº¾	ñv³í½nđ.;ëA/Ïç°ô2ʲ‰œa8D$ÿGWv…#̀û
9®kÅÅ'ü‰ËoØŸœo€@âừ	(]gkí+}/	(nq‡º́K(f¢ÍÖƯÆŸĐ¸püø̀2ÔÈ3Y°ăƯéw²pD₫dG´q2$̀É}‘KÓ¯A­"öE&N‚tg'NeưsƠó!Đ®đ4q́œo}́¿¥Sµµë,oƠjr/sœT₫MT—&öĐđQf\12¡h'&ctN¦ú'TÅx7¼]2û ;GÍ	Ê…ë¢ă|Tª++:%/ †è¦û³ÿ1T‘ÅúÏ“óË€Ÿ<Ôñ̀4ÂÓÔùÀÍ”×ÿ“Ë—	É,0~ạ́!¡W‹O©à'‰ áÍ:sñuÈÆỂ¦Ù†ù(´^ï®µ¥œÂ)˜ø7èØfÁ€Ñml¥̣̉¹î1Å«tÜ̉ZƒèhÀ
ÊL0§£·–6̉X"J̉‚í
Œˆ4§9ØÑ Ö©Bé}ƒ̃Ô­`è`‘¥®đ„Ó’ç	#¦J̃ïnéäôÑ_‘F­ H|¡$OÈKÎú=¡Å“i1÷¡¦7Œ”o-HËq¡ªûp[É«%%:ˆä€Éˆi3Û ú„G C—LL‰4SĐ:dḄj|‰ˆpYÓöS₫DP>¶pÓṽ²5KLeè{t0®̣‘yÇEND$à*;z»5N’áBIóÙgnŒ€.NÉ|×¶àÑnĐ”RÈaS¤Z×ÂJcH² mÍÑXøÜÊßek;_6È,yÊÂb”0#¦Z„¸A
e|w‚ỒG
U½1l¸ËLDØ7Ă„V£q’Ưt[­xuƯE”QULˆïđPBlZSh–’.áé1Q0ÚÙ±8R„iúp;¦ñ{óôH#–GON!?ë£èt>©Q	|pÊk¤Ûó¨q!çgT,öƠjÇĐ2ĂÈsÇ4íˆt”jä·nÆ›/IÉO˜E!Ë‹nFơ›4¨†·ˆM&Ô1„’—¾…xÓ$§ew+v™SđË
bm]e%8²äP̀Â
!úﳌsÂó_06£̣)ÂQ´2JB†êØư„[t9®–ƒ'”§³Ôœ,§¢̀ô[½fÆג¶]˜ÂBBĂ@¦îr&B„s|•Q
°§™×g¨íOCˆ1‡ÜJ Dç<̀ÏâUÿ‡²Î¼Ó(o©!³h¦ÜK½Hüê 0q›ˆ’§AÑVˆ¼'p´f̀y"Q
O…Û2ÇZ»¾ŸqÂà½#d"›@bQ»,®“Âw)îPÍ\b`xßO₫)̃¢d¼MC€$[Ho¤W̃¦Ñva4{äDZ`52íưº‡³5;‚…X°ÿaoK†;˜6“%ÁR(À‚ŒÓÆÑ…x98À2răDc÷¥@ÙˆŒæ¾É¤îF×<†d(ÈAN#FI·›zmE₫‰»F=©±…Æ­å•S‚€f
4Ê8§<'´„íjêô-ª˜Ú'ǘ<̉Tbñ2Ưv€EÀt¸¿q¡̉3qODd_íĐ{`/œhhê‚ö̀`Â’9_ü1hAY|/ùë«̃·Uê-Í•ºĐÄÔƠo(ñËê"“$r؆T̀×PR;§.¸-w>&LJøiC`A£^±—Ó#‰€ÄX8—t—öâH?€dÁ¿aĂÄ–TSTÚa¨HŸ0@̉îđóU)ˆ£æï^e}Jb7%×Ü”%:›ÓÆ¿@—¯M+ñ»y”sqª¡ëL̀̉ưø¿áÊYª00Ă”÷GüD¡	>Ä©êAWˆ¶đ2IÛ:ÄÙF	ÈÇ3ăŸ2Ê íq€÷À”:6S•—Ñ]KÎÏ" ¥®g[¦	åÏ‘H“˜âB¬5ÈVEqÛLJŒ•X{C¼ˆ¹§B½ÅÙ̉!¥P«Iáq9»øLlx–®Êª7̉>Ö¤–Û]@Ơ!@9H”!ªíäÈpÀÉ™Ơ$	â?̃Ơ)›«Ü¨l°/"±”À̀–¯+“@`}}:\÷•¯Đ	8•zQgS£¿+̣’¤¿Á’C„£}€R:ŸơH₫UF\¡X₫’göÀ/âë€AZ%c1ƠwlET–wX ZNh¥ …Äyf2DÆ €Ă¸‰&v®L“qî4Æ7•ñ§ûÊzúđ\iJyÀèJ-k¯NÄ3½ ë	£-¼s‘ÑJ5‰—)ÙV0™N0ƯdÚ\Ó›d0d-©ăEÚ[mf£\£UmÁx²̉̉C«R<(`ªÑ•æƒp4^!hÔQè`¢ù!l“ ~Æ™́:J‡É ñlüW±₫€9˸̀ZXB=ëÈl)`jªeVJ³àU€³†G!®sØç1Ô?Ƽ3„¨Ă.³}bIaÙê6àÊ•
œt?èÀ€̃SxZJ'Ăp
ië,¦.ˆñ¬ØR2T`5˜-R
BxræWHöJP°e#Bb‰|“¯”-±₫¡́‹[²„ ÆäPÂâư…¤¨Eh‹±³Â‹(5Sœ¢•fƠräĂ/]˰ÑIÆ
̀Öd”̃E#ú¢O®Sú3—9Ó»]¸º³€e‚¿Û®Ơɹ.9_Œbêe§æ¾MŒ´9b#e©(’¦-ˆ 0§̉×Ra±àÆ„9ùº–ˆ"₫‰±₫ưưU,áÂ%ú~¾XèÜ€ö—”ëz€Û½{'6[@„t[W%ưÑ*.d'vR {”̉đh¦!̃Aed’CªE}»x=E[|ïB$7J¡* B-á,=k7”[_¶ê-ĐIô–¢«€’‡J5eÖ̀¶Ä´{
Èí(	´†;WMw§`«°€Ë~pÜA °z 8‡îfæ))âŒâÂ(̃ü@	©ĪÙ……Ù<áî…ä.a%N ̣́né@bz­Ă‡ÈÑÀµ¿>Àëô%…‡€T*?lgb¿döÈ<‚ĵăúÀw9Na¬Å¼8;<^*%›ỷ:tD¥̉•Z<@ü‰0ª¨«ä‚q4±äĐíl\
–†1†îÉŸÓ`/$IJ ̉“sN)¼;:A;’)$ו
°Ww¢y%Kr̃Iv\b¶V™£\n­d{À̃ôÈ6t»ví×/~¢ü*OÖí
7U>£8ûr‚AC<ºjéEâ¢-jçØç‰·¨üxsî)̀D¢›–1¼ĂŒ/ÏÊq“p**̀¸À$Ù‘,Ûá
ƒ³BơȼpÄúk	MhpˆKê7ÆUè¤Ă]đøáh&„-$ˆé»¯”“Yê£;àqËé6w•zƯ÷ÖWûî˄֭A¦h²́Dœ‘^Rö̃É"­Æs5fưüîw
ˆ¿ä+çQ&’/9È‚–œ¸wNbÇëéü­ăü°Øz{娕Ó₫YÅ>
]NEÚÁ±c,ß#BFư:0ÍØ/-EȾÆÂŒÇ׃ëF\êŒôäI§{t́äA»Z‰C™ORĂuk¥iú”ô)…ytkdN¸&›v§A±™ˆP{ÍÖîôËP'ó’>ÈêàxàÆ†`.Üä%,;:Ô¿Ù:©«­¿íaFñ§oTQ«}v#ố×£‘öÚQkèÆ'ƯsÄÔÓÖØ÷~…µ̃Íz5hMÄQÊ’áY>C…èÊ™„è¾i·̀U± ÓNF#J0uŒÎCđäđ8k“!
f«é́§v¹{Eñ/ÏëæIKIEË>ºp·yd†̀e	
ʾ”=zô†:@7ÖJà÷ij̀|ÆÆ5g8ÀîxÅ3çO±Œª₫€ÄÜÜ
₫3€H1‹ó±Ø„F. y´fz´́WIMñÙƒÆj[.wæ%„i?̉†UÂè©f|}@+[8•k7Cx¤˜S…íEÕ¯p $ä—üáç¾Qæ»+™Ê:¸<á]¶¸Kâ3‹T-y²ÂÍ[NÑÖz´µ„;y³¤-HZ₫ªY^¡Ô.¥M*Ô'h8̉íA….°Nï2r‰œLBœ7:Or’©}‘C‰SËS9äJq#́£WI}*8ËD!ˆ¸#	g#Y>8`•
́Đ’Âñ?a…2H,^ñăÄ'ƒï?¸ÿ^¸ˆæ§nƒhăOÆ’­¿i<ѪæƯYa2É+™ǜ6a°F±âa<̀!„Û0¬‰2½]c:ïe¼K¤¬X˜X˜[UgéO¯u5iÔyPcVÙTº5RIúŸA6̣OÔ¸i
¤ưC\‡ñ…—ăQZM„DÄÆƒÓÚÏB!X–Ä:ôĐă\!Ç^Á…"{¡E Vax$P	\$³DBBT̃ÓFtèŸ~™Ă{O‡¼
wïø5a#ø`«=g€Đ°Yư2>‡±MG¯-G­kèªÛ1T¾b¦ü…L
¹`*Ù€«V¬X
­̃*¥xªe§ÖZ*c`ªVÁSƠb¥ºÅJU’ªĐ*6 TK@¨zqPÄâ¶ÉÅh“Çg†̀*ß”U§(ªöQU4‚§9L’
­cMÆ*ŒT»©R!R,B£È…E°ˆ ¾*C|TzøôpđôFèô@èô4èô*àôà÷ơ±î±í…°–†Ø¬á±Xób°€L€.™T2y`®ÀUpbàåÀë
ªT, %@`äÀè€# ?@t€¤øGLˆëÅSÀ)öĂ¿ z“ÿtϲFy× 14LhŒĐဃf™°ÈeÀ(.)pK€@\âà—X¸e@Tb v•h˜DÀÅ&ù0-IbD‰	d@ZD1¤@‘DàyÀ¸ó€Ñ§CN|
9Ü4æØÓ#NclÂÀ°;¸,
`c‹XâÀ³@(„2$0"@-	˜$èB@‰<$ĐÁÀø8p7C¦€àbè(@¥
PA@…F¸0Àơt‰üœ̃‹äG­éÔOR—‰éIJâIïTñySÍMW52\TÆoRå¥KV•0ȬໂŒ(
- $²€’€”
¤!6¦„¢wˆêH¢©†£ùúGù­ O  r~àe~/à]₫·àV~/àP~7 Szï Kú— Fv`;ö¯`9vÑ#
J¤Ü§BÍN‚,ä×ÎÅÓ­²'°`¡'â‚`\LT₫đÙApBs)r…!Ơ
â(
̉i‚`bootstrap-sass-3.3.5.1/assets/fonts/bootstrap/glyphicons-halflings-regular.ttf0000644000004100000410000013053412556335206027664 0ustar  www-datawww-data€pFFTMm*—ÜüGDEFD OS/2g¹k‰8`cmapÚ­ă˜rcvt (øgaspÿÿglyf}]Âo”¤headM/Øœ¼6hhea
Dœô$hmtx̉Ç `tlocaoû•ΠŒ0maxpjØ¢¼ name³, ›¢Ü¢postº£å5¦€
ÑwebfĂTP±T̀=¢ÏĐvuĐvs—‹ĐZФ2¸UKWN@ ÿÿÀÿ{ ,
Üh,
ܰh@( + ¥ 
 / _ ¬ ½"#%ü&&ú'	'àà	àà)à9àIàYà`àiàyà‰à—á	áá)á9áFáIáYáiáyá‰á•á™ââ	âââ!â'â9âIâYâ`øÿÿÿ * ¥  / _ ¬ ½"#%ü&&ú'	'àààà à0à@àPà`àbàpà€àááá á0á@áHáPá`ápá€áá—ââ	âââ!â#â0â@âPâ`øÿÿÿÿăÿÚÿfÿbàßäßµßißỸÜưÚÚÙ!ÙÙ     
 ₫ø÷ñëå|vpjdc]WQKED̃ÜÖƠÎÍÅ¿¹³Œ5  *+  ¥¥  
 / / _ _ ¬ ¬ ½ ½""##%ü%ü&&&ú&ú'	'	''àààà	!àà&à à)0à0à9:à@àIDàPàYNà`à`XàbàiYàpàyaà€à‰kàà—uáá	}áá†á á)á0á9á@áF¤áHáI«áPáY­á`ái·ápáyÁá€á‰Ëáá•Ơá—á™Ûâẫâ	â	åââæââíâ!â!ïâ#â'đâ0â9ơâ@âIÿâPâY	â`â`øÿøÿơơöªöª
(øÿÿ(h .±/<²í2±Ü<²í2±/<²í2²ü<²í23!%3#(@₫èđđ üà(ĐddLL[27>32+&/#"&/.=/&6?#"&'&546?>;'.?654676X&
jà

àj
)"&
jà

àj
)L
àj
)"&
jà

àj
)"&
jà
LL#32!2#!+"&5!"&=463!46ÂÈ^₫¢È₫¢^L₫¢È₫¢^È^p@LE32!2+!2++"&=!"&?>;5!"&?>;&'&6;22?69ú
₫”
x
}
x
}”₫í
x
}₫í
x
v₫”
ú¤¤L
₫” d ®® d l
¤¤dŒ®;2#4.#"!!!!32>53#"'.'#7367#73>76ẹ̀p<µ#4@9+820{d₫Ô–d₫Ô	09B49@4#®bk§Îv$BÙdpÚd†>u®½hi-K0!.O2d22dJtB+"0J+«ku0ªwd/5dW…%{L°>G!2+!2++"&=!"&?>;5!"&?>;4632654&#¬^CjB00BjC² 
x

•
₫ơ
x
u₫ơ
x
u¶Ë@--@°$?2O*$$*P2@%d ¯
¯ d Û
È₫ÔBVT@ÈL¼!2#!"&=46ú üà¼ÈÈÈè°%A+32!546;5467.=#"&=!54&'.467>=è2cQQc2üà2cQQc2ÈA7  7AA7  7A°–d[•##•[––––[•##•[d–Èd76!'ö 	
ˆÓûPÔ‡
	 $
op	zy¶Ă³#»ư%**%ê·$	”–üpd°L#7!2"'&6&546	6'&4#!"&7622?62~
ừừ₫ø

Œ

₫ø\l
û‚
l¤¤L
ưÉ7
Ú₫ø₫ø
&
₫đ
ưÚ
€₫”

l¤¤ÿđÿđºº	
2'7'	à&™

cÖ_"ư™Öf₫₫³nº
™&\Ö`₫tưÖfüjpO°°32!546;!¼úüàú₫°ưÚ22&&Lœ%6.676.67646p…'0SFOˆ$WOHBư¨XAOˆ$WOHBù£"üÁ7Q)mr	›ư¢*`)nq&*	ÿø»§)2"'#'".4>"2>4&ȶƒNN;)₫íwd¶ƒNNƒr°”VV”°”VV§Nƒ¶dy₫î%:MNƒ¶È¶ƒ[V”°”VV”°”dX¯D>.54>‰0{xuX6Cy„¨>>§…xC8ZvxyµDH-Sv@9y€²UU²€y9@vS-HÿÓ^{”62!2'%&7%&63—ƒ¥₫ª‚₫©₫ª‚₫¥ a₫Ÿù₫oö÷ûÿÓ^{”"62!2'%&7%&63#7'7#'—ƒ¥₫ª‚₫©₫ª‚₫¥óđÅJÁĂJÀêN a₫Ÿù₫oö÷ûd⋌åŒÓ°°&2##!"&=467%>="&=46X|°>&	f	
û‚
	f	&>°°°|ú.hK
æ
]

]
æ
Kh.ú|°
°L#'+/37GKOSW!2#!"&54635)"3!2654&33535!3535!35!"3!2654&35!3535!35~

û‚
Ud£ưÚ

&
sdüd düd dáưÚ

&
üïd düd dL
ûæ


ddd
₫¢

^
ddÈddddÈddddd
₫¢

^
dddddÈddddLL/?!2#!"&546)2#!"&546!2#!"&546)2#!"&5462₫pm₫pư½₫pm₫pL₫p₫pư¨₫p₫p	LL/?O_o32+"&=46!32+"&=46!32+"&=4632+"&=46!32+"&=46!32+"&=4632+"&=46!32+"&=46!32+"&=462ÈÈ¥ÈÈ¥ÈÈüơÈÈ¥ÈÈ¥ÈÈüơÈÈ¥ÈÈ¥ÈÈLÈÈÈÈÈÈ₫pÈÈÈÈÈÈ₫pÈÈÈÈÈȰL/?O_32+"&=46)2#!"&=4632+"&=46)2#!"&=4632+"&=46)2#!"&=462ÈÈ¥¼ưD₫…ÈÈ¥¼ưD₫…ÈÈ¥¼ưDLÈÈÈÈ₫pÈÈÈÈ₫pÈÈÈÈ&,è 	62"'&4?622Ñ;±üñ₫€±«Ư;±üđ€±«nnBB#	"'	"/&47	&4?62	62ˆ²₫ơ²₫ô₫ô²₫ơ²;³₫ô₫ô²₫ơ²²₫ơÿëÅ™%I2"'#".4>"2>4&3232++"&=#"&=46;546™Ä³‚MN,m₫Ôwb´MMo³˜XX˜³™XX₫¼–
K

K
–
K

K™M‚³by₫Ơl+MM´Ä³‚MX™³˜XX˜³™#
K
–
K

K
–
K
ÿëÅ™%52"'#".4>"2>4&!2#!"&=46™Ä³‚MN,m₫Ôwb´MMo³˜XX˜³™XX₫X^

₫¢
™M‚³by₫Ơl+MM´Ä³‚MX™³˜XX˜³™‡
–

–
™°-32+"&5465".5472>54&&dd§̉[›ÖêÖ›[̉§g|rÅèÅr|°₫pá¦>₫Ù¸uÖ›[[›Öu¸'>¦7ÈxtÅrrÅtxÈd°°/?32+"&54632+"&54632+"&54632+"&=46–

–
₫̃–

–
₫̃–

–
₫̃–

–
°
û‚

~
₫p
ư

î
₫Ô
₫>

Â
È
ú

ú
––GO27'#"/&/&'7'&/&54?6?'6776?6"264X!)&1-†=+P˜˜P08†,2&+!)&1-†<,P
——
P/:…-1&+x²~~²~–˜P09†,1&+"(&1,†=,Q——Q09†-0&* !(&0-†=,P˜₫™~±~~±d°!%)-1!2!2!5463!546!5#!"&53333333ô,);
û´
;),,;)ưD);dddddddd;)d
KK
d);ddd₫Ôüà);;) dưD¼ưD¼ưD¼ưD¼Ñ62++"&5!+"&5#"&l`
¯
ú
₫Ô
ú
¯
j`ư 
ưÁ

w₫‰

?
dè°3!#!"&5463#"&=X;),üàRú°₫p);ưvL₫pú™™02".4>"2>4&3232+"&546ăêÖ›[[›ÖêÖ›[[›¿èÅrrÅèÅrr₫|2
¯

ú
™[›ÖêÖ›[[›ÖêÖ›;rÅèÅrrÅèÅ

₫í
2

^
ÿœ°)#!3333ưæ)̣)ưæ¯Ñ¢Đ₫à₫p°₫Ô,₫p₫Ô,d°°/3232"'&6;4632#!"&546;2!546&È¿
₫¹
&
₫¹
¿T2

ûæ

2
„°₫>₫pÂüà
₫¢

^

¯¯
™™12".4>"2>4&3232"'&6;46ăêÖ›[[›ÖêÖ›[[›¿èÅrrÅèÅrr₫|–
‰

ß
&
ß
‰™[›ÖêÖ›[[›ÖêÖ›;rÅèÅrrÅèÅ

₫í₫í
™™12".4>"2>4&%++"&5#"&762ăêÖ›[[›ÖêÖ›[[›¿èÅrrÅèÅrr₫çß
‰
–
‰

ß
&™[›ÖêÖ›[[›ÖêÖ›;rÅèÅrrÅèÅ₫í₫í

°°9!2#!"&'&547>!";2;26?>;26'.áî
ºû´¹—ưÔ
W
–
&
ú
&
–
W°
ưt₫W
©Œ
È₫>
˜

˜
™™'2".4>"2>4&&546ăêÖ›[[›ÖêÖ›[[›¿èÅrrÅèÅrr₫‹ưư™[›ÖêÖ›[[›ÖêÖ›;rÅèÅrrÅèÅ]¾$¾™°(76#!"&?&#"2>53".4>32³‡
₫–…mtÅrrÅèÅr–[›ÖêÖ›[[›ÖuÀ$‡₫–
…LrÅèÅrrÅtuÖ›[[›ÖêÖ›[™°576#!"&?&#"#4>323#"'&5463!232>³‡₫—†ntÅr–[›ÖuÀë–[›ÖuÀœ†h
…n‚tÅr$‡₫—†KrÅtuÖ›[ư¿uÖ›[v†
h…LrÅ
d°°/?O_oŸ!2#!"&546!"3!2654&32+"&=463!2#!"&=4632+"&=463!2#!"&=4632+"&=463!2#!"&=4632+"&=463!2#!"&=46}

ûæ
Àü®

R
ư2

2
̉Â

₫>
¾2

2
̉Â

₫>
¾2

2
̉Â

₫>
¾2

2
̉Â

₫>
°
û‚

~
È
ü®

R
d
2

2

2

2
È
2

2

2

2
È
2

2

2

2
È
2

2

2

2
L°#54&#!"#"3!2654&#!546;2„uS₫ÔRvd);;)„);;)ư¨È ÈSuvRÈ;)ư¨);;)X);––dLL	732#462#".'.#"#"'&5>763276}2
dÀ!C@1?*'),GUKx;(.9)-EgPL
ûÍ3
0₫[;P$

9¶7WW°—!1A2+"&54. +"&54>32+"&546!32+"&546äè̃£c
2
ä₫úä
2
c£*  `  —c£̃t₫Ô

,ÑrrÑ₫Ô

,t̃£ưÀ₫4̀₫4̀ÓGƯ9%6'%&+"&546;2762"/"/&4?'&4?62A		₫₫ú

úXx"xx"xx"ww".¬
ư
¬
^
„x"xx"ww"xx"ÓrƯ/%6'%&+"&546;2%3"/.7654'&6?6A		₫₫ú

ú̉
`Z	HN.¬
ư
¬
^
d	¡	g~„jÄb́1K3#"/.7654&'&6?6%6'%&+"&546;2%3"/.7654'&6?6LJD@
	*o;7	*ư‚		₫₫ú

ú̉
`Z	HŃ	³ÙiËT	"–²Z¬G	!¾¬
ư
¬
^
d	¡	g~„j
°°	!%-;?CGKO3#!#!#3!##5!!!!#53#533!3533##5#535#5!!#53#53#53!5!ôdd₫pdô¼ÈÈ₫ÔÈdXû´,,üàdd¼ddưDÈ₫ÈdôÈdÈddÈ,ưD,ddd„dd₫ddô₫Ô,„dddX₫dÈ,,Èd₫Ô,₫Ô,Èddd₫₫ôd₫ÔddddÈdÈ₫Ô,Èddd₫Ôddd	°°#7#3#3#3#3#3!5!#53#53#53dddÈddÈÈÈdd,ÈÈüà₫Ô,ÈddÈdd,ÈÈÈèüèüèüèüèûPdd[[[[[
¦°
	"'463&"26ôª₫0ưV
C;S;;S;°ưV₫0ªÛ
Í;;T;;
̉°
!	"'463!"/	&"26ôª₫0ưV
ª₫08¨ưD₫Ó;S;;S;°ưV₫0ªÛ
ưV₫08ª¼Í;;T;;d°°&!2&54&#!"3!2#!"&54?6,9K@

ưD@
¼

ü®
‹°Kü|@
¶
@

üJ

Ï‹ÈÿÿL°
!2	46ú ₫>₫>°û‚¼₫C°°EU!"3!26?6'.#"#!"&/.+";26=463!2;2654&!"3!26/.6₫DN9
Â
>SV–
N
ưÚ
N
–

–

î

–
₫±₫
&
X
&°
₫Ól		l-
₫p
	œ	

	œ	

ưv

–

–


ư¨
˜

˜
d°L!)13232#!"&546;>35"264$2"&4ôÈ8]4$–);;)ü);;)–	'3]Èd₫Ͼ‡‡¾‡₫ïV<?!©(%	
₫_5,R₫y:"	*2₫“8¬T¢¯ü2*BBW-̃‘Y".BB%

îưZÉdđ°'2;#!5>54.'52%32654.+32654&+ñ50;*7Xml0₫);!×9uc>--₫‹Ni*S>vØPR}^Ÿ3:R.CuN7Y3(;	G)IsC3[:+	1aJ);4ü®ePZÈo°!56764.'&'5mSB„	,J₫º­
°95(ü¹1(aaR@	9ÿµ°%/#4.+!52>5#"#!#3'3#72&È2₫p"È&2èû›KK}}KK}„ ü®dd	R ,Èüà§§ §!ÿµ°%/#4.+!52>5#"#!5!'7!5L2&È2₫p"È&2èC§üà§§ „ ưvdd	 ,û‚}KK}}KK°L/?!2#!"&=46!2#!"&=46!2#!"&=46!2#!"&=462Xư¨èü üàLû´Ldd₫Ôdd₫Ôdd₫Ôdd°L/?!2#!"&=46!2#!"&=46!2#!"&=46!2#!"&=46ú¼ưD³Lû´Ư¼ưD³Lû´Ldd₫Ôdd₫Ôdd₫Ôdd°L/?5463!2#!"&5463!2#!"&5463!2#!"&5463!2#!"&ôXư¨₫pèüÈ üà₫ÔLû´¶dd₫édd₫édd₫édd°L/?!2#!"&=46!2#!"&=46!2#!"&=46!2#!"&=462Lû´Lû´Lû´Lû´Ldd₫Ôdd₫Ôdd₫Ôdd°L/?O_o32+"&=46)2#!"&=4632+"&=46)2#!"&=4632+"&=46)2#!"&=4632+"&=46)2#!"&=462ddA üà₫éddA üà₫éddA üà₫éddA üàLdddd₫Ôdddd₫Ôdddd₫Ôddddÿœ°L#*:J!#;2+"&=46!2#!"&=465#535!2#!"&=46!2#!"&=46dd–ddô₫₫ú§ÈÈÂ,₫ÔXư¨Ldd₫Ôddú}KdK¯dd₫ÔddL#*:J32+"&=46#3!2#!"&=463#'7!2#!"&=46!2#!"&=462ddgddü®ô₫/Èȧ§ûæ,₫ÔXư¨Lddû´L₫ÔddÈdK}}¯dd₫ÔddȰè!2#!"&546	Kî,,ư,,„₫Ô,è,ưv,,,ưD,,°L!2#!"&5467'2"&4,Xû¨J÷*J%́ü̉pNNpNLüôdư¶ƒœ>₫àôtNoOOoÛ6‘2.'&54>"264ˆuÆsFE²66	!^Xm)!fh˜H„uX£yHĂ‚¸¸™™2".4>"ăêÖ›[[›ÖêÖ›[[›KtÅrrÅ™[›ÖêÖ›[[›ÖêÖ›üoVrÅèÅruß5.54>6?6&'.'&76#&*IOWN>%3Vp}?T›|J$?LWPI¼)(!1		) Huwsu‡EG€^F&:c—YE‡vsxvư₫!K‚:%A'#"
A)Y¶Ël*/7>%!2!"3!26=7#!"&546	7èl
lư27»₫);;)ô);È»£₫p¥¹¹8₫–¡7cơs*
sÈ
»;)₫);;)¶È₫´¥¹¹¥¥¹₫×₫–2ªc“L6!#"3!2657#!"&546&'5&>75>^i¤4Ă);;)ô);ȹ¥₫p¥¹¹S₫¬9dTX
.9I@F*L’6;)₫);;)™g¥¹¹¥¥¹₫Ó₫Î	Ë
0!;bA4̉
L5!2!"3!26=7#!"&546	62"/&4?622^^
ªÈ
₫ø
Ȫ
₫ü₫ø
¯È
₫ø
ȯ
–₫ø
È­
₫ü₫÷
­È
₫ø
È­
	
­È
È„L326'+"&546údĐ₫0dL₫JÅüÅ₫Jè°L#3266''+"&5462dĐĐ₫0₫0dL₫JÅ₫JÅüÅ₫JÅ₫Jè°3''&4766°₫0₫́ĐüÅ₫Jà*à₫JÅÈ36&546ó.ü̉2₫₫èÈd„è32+"&546!32+"&546úÈÈ¥ÈÈèüà üà ÈdLè#!"&5463!2Lüà ¶üà 346&5&546ố₫₫0d¶₫ *₫ ¶₫;èÿ₫³O#72#"&5&5&5464646dd₫1₫2̉̉Nüµ₫:	µ₫9	è	₫>¶	₫=¶,èL32+"&5&54646Rdd₫0ĐLü¶₫;è₫;¶dȰH	#!"&762!2#!"&=46®ơ	ûî	ơ*ư÷èü9ưäưHddˆÿüuJ		u₫ `ÅưØ(„₫Ÿ₫ŸÆ(&;ÿü(J	'	7(ưÙÆa₫ŸÆ#ưÙÆaaÆ™™32".4>#"#";;26=326=4&+54&ăêÖ›[[›ÖêÖ›[[›}d––d––™[›ÖêÖ›[[›ÖêÖ›º–d––d–™™2".4>!"3!26=4&ăêÖ›[[›ÖêÖ›[[›E₫ô™[›ÖêÖ›[[›ÖêÖ›₫~dd™™32".4>"'&"2?2?64/764/ăêÖ›[[›ÖêÖ›[[›å	xx				xx				xx				xx		™[›ÖêÖ›[[›ÖêÖ›­	xx				xx				xx				xx		™™$2".4>'&"2764/&"ăêÖ›[[›ÖêÖ›[[›T‹̣w‹™[›ÖêÖ›[[›ÖêÖ›₫1U‹ñw‹™™;K2".4>";7>32";2>54.#";26=4&ăêÖ›[[›ÖêÖ›[[›?2".4>#";26=4&#";#"3!26=4&+4&ăêÖ›[[›ÖêÖ›[[›––

–

ú

KK

^

K™[›ÖêÖ›[[›ÖêÖ›V
–

–
₫Ô
2
È
2

2

°°/_3232++"&=.'#"&=46;>7546+"&=32+546;2>7#"&=46;.
–
g—Â

—g
–
g—Â

—g¹
–
Df¨

¨fD
–
Df¨

¨f°
—g
–
g—Â

—g
–
g—Â
₫ͨ

¨fD
–
Df¨

¨fD
–
Df™™?2".4>"2>4&"/"/&4?'&4?62762ăêÖ›[[›ÖêÖ›[[›¿èÅrrÅèÅrr@||@||@||@||™[›ÖêÖ›[[›ÖêÖ›;rÅèÅrrÅèÅZ@||@||@||@||™™02".4>"2>4&"/&4?62762ăêÖ›[[›ÖêÖ›[[›¿èÅrrÅèÅrrƒj₫ÀÊjOÅ™[›ÖêÖ›[[›ÖêÖ›;rÅèÅrrÅèÅ}j₫¿ËjOÅ™™!2".4>"&32>54ăêÖ›[[›ÖêÖ›[[›KtÅrAKiơư¸hstÅr™[›ÖêÖ›[[›ÖêÖ›;rÅtxiKAĐư¸>rÅtsS°ù6!2#!'&4'
&ưÚưöF«
₫ƯÈ₫Ư

«
&S™ù	&5!"&=463!46
ưöưÚ&ñ₫U
&
₫U
#È#
·]™	#!+"&5!"&762ª«
₫ƯÈ₫Ư

«
&‰ưöưÚ&
·]°32!2"'&63!46&È#

₫U
&
₫U
#°ưÚưö
&·™]	&5>746
ưö^°¥$,[‡Ç~U₫U
&
₫U
#$DuMi±qF
°°+!2/"/&4?'&6!"&546762R,^ùjù^₫!₫Ô^ùjù^°₫Ô^ùjù^ûP,^ùjù^IIgg+#!"&546762!2/"/&4?'&6öjù^₫Ô^ùư,^ùjù^`jù^,^ùưñ₫Ô^ùjù^™™/2".4>#";2676&#";26=4&ăêÖ›[[›ÖêÖ›[[›³Đ:#6#:1–

–
™[›ÖêÖ›[[›ÖêÖ›º₫̉.₫
–

–
°°IUaho276?67632;2+"!#!54&+"&=46;2654?67>;26/.'&;26!"&5)#!	Ä&Ä0


=

2
₫pÈ₫p
2

=	¦
Û

3₫5±3

ç₫‰
X
₫‰°

v
	
v
!{,	
2

¯,₫Ô¯

2
0€y¢

•
ª


ür
w₫‰
¯¦+I6.'&&&547>7>'.>7>&67>7>7>-Bla‹bD8=3™*U 	:1'Ra\‡{À%&¢=>8\tYR-!q[Fak[)¦²₫ƯÈ•X1™"@&J<7_…?3J5%#/D	&/q!!6ROg58<'([@1%@_U2]rÏO.>7'&767>.'&'.'&>77>.'&>'
'8GB 

	`H 
>JS>H7
'+"	NA
5M[`/Pg!;('2"&"IbYÏC€e\D9$886#1%)*ƒ‘§—J7gG: 
 8G\au9hªoK$œ]54<&"&5476&2>76&'&6?6&'&'.¤{nO9:On{¢{nO:9On{°ø°FZ
2Z_ƒˆƒ_Z2Zưÿ#		%8-#,-"F-I\b\I*I\b\I--I\b\I*I\b\IÜ9>|°°|;7Es1$F^D10E^E$1u$/D0
"%,IÿÜÔ°';L!#7.54>327377>76&'&%7.5476&6?'&'.P”[©vY,9On{R=A ”&/l‰'Pj˜R.Mv&6ưQFZ
*HLh5)k|#		%8-,-"xatzbI\b\I-y₫RµUÖ4Zrnc­1ˆ?1FrEs1₫­₫»1)
ù₫ù]@	€€	@]ù
)1ES>L°'+/37;?CGKOSW[_c3232!546;546;2!546#!"&5353353353353353533533533533535335335335335Rd2û´2dôüddddddddddü|dddddddddü|ddddddddd°2––222₫pưîÈddddddddddÈddddddddddÈddddddddddw—%7&=#!"&=46;3546'#"&=463!&=#'73546oùùŸư¨₫ƯÑXñư©zÑ#ùùñµzŸæ*æ–ư¨dX–₫˜zd₫Mæ*æ–µz–°L!2#!#"&546dè);;)ư¬₫Đd);;L;)ư¨);₫Ô,;)X);dL°	?32!546!32!546".5!2>&54=–È₫ÔÑÈ₫Ô(LfœÀœfL(,
'6B6'°úúúú₫p₫Ô)IjV\>((>\VjI),ú	+'%!	!%'*úÿÿÔLÂ	'LÆ₫Ÿ₫ŸÅ'›Ça₫ŸÇ'îMÜ	7	MưÚưÙÆaaưÙ'Ç₫ŸaÿQd_è)!232"/&6;!%+!!"&5#"&?62”ê–æ*æ–₫ƒ₫æ–×ư–æ*èưÙùù‘¸ù₫pÈ&ù°032!2#!!2+"&=!"&=#"&/#"&468^&€d,!ư‡02*₫Ô*É6°¢%₫%+È*2222	
Á*°L!53463!2!!°ûPÈ;),);ưD°ûPèdd);;)ÈüàÜL3463!2!!ÈÈÈ;),*:ô,₫ÔûP, ₫pX);;)ÈdưD¼Ek¯+32"/&6;#"&?62{æ––æ*æ––æ* ùư§ùùYùD¯k&=!/&4?6!546¨ùùư¨ùùX`å)å	——	å)å	••	°°	!.#!"!"3!26=4&53353‘¬$ư`$¬-ü);;)è);;₫«dddÜ-(ưd;)d);;)d);Èddddÿœd°L#12"&54%##"+"&'=454>;%".=4>7i**dư]&/T7È£ü"Lü®Rü™È₫́Qú
ú₫Ôú)2(Jf°,53232#"./.46;7>7'&6327"&)^Sz?vdjŸO9t\U>/v?zS$24517F8°%M₫¹­)(
()­GM~ û¾1==œœ7'''7'7'7'77 àNê´´êNà-››-àNê´´êNà-››²Nà-››-àNê´´êNà-››-àNê´´d°°!-=32!2+"&/#"&54?>335!7532+"&5462(<H(<î,úF=-7‘`
1d–dˆÖú₫>2ưvdd°Q,–}Q,d-₫¨!2$'$ÄÆ(dÔƠ₫‰dw}á¯₫Ô₫ô°L 0<32#!+"&/&546;632+"&546!#35'!5Xú,î<(₫¸<(21
`‘7-=|ưédd_ˆd–d22ÂúL!₫¨-d,Qv–,Q(ÆÄ$'$dd₫ôd₫‰ƠÔ¯á}wdO7G%6!2+#!"&5467!>;26&#!*.'&?'32+"&546dkn
T.TlnTjƒ₫ª¦:d%ƒË₫8
	’VưOddiæp
&yLN₫­(¢

%
H₫	YS(22·Sä₫ôÿœd°O6F#!"&'#"&463!'&6?6*#!32!7%32+"&546Ûn
¬₫ªƒjUmlT.U
nJ’	
₫%Ư‚&j₫ªPddOæưó
¢(SNLy&
p®·d(₫­Y÷́ä₫ôaL7G2#!"&/&?>454&/!7%.!2#!"&=46̃NS(¢
ưó%
	æp
&yÆ22·Ś÷Y₫­(–ô₫nTjƒ₫ª¦kn
T.TÖË₫8
	’V₫­d%ƒưddÿưè-I!26=4&#!""&5&/&7>3!2766=467%'^ô₫NLy&
pæ

¢(ư‰́S·22(SYLddüæjTnlT.T
nk¦₫ªÏ₫­V’	
₫8˃%d%2".4>%&!"3!7%64ấÖ›[[›Ö́Ö›[[›†₫í₫í

[›Ö́Ö›[[›Ö́Ö›₫9ß
‰
–
‰

ß
&%2".4>
6=!26=4&#!54&ấÖ›[[›Ö́Ö›[[›%₫í

₫í[›Ö́Ö›[[›Ö́Ö›èß
&
ß
‰
–
‰
%2".4>&";;265326ấÖ›[[›Ö́Ö›[[›Kß
&
ß
‰
–
‰
[›Ö́Ö›[[›Ö́Ö›₫@₫í₫í

%2".4>#"#"276&+4&ấÖ›[[›Ö́Ö›[[›—–
‰

ß
&
ß
‰[›Ö́Ö›[[›Ö́Ö›»
₫í₫í
˜˜–¦2".4>%&277>7.'.'"'&65.'6.'&767>'&>7>7&72267.'4>&'?6.'.'>72>äèƠ›\\›ƠèƠ›\\›d+:
=?1	""/?9
#hu!$
0E.(,3)(
	 	
*!A7,8
!?*

˜\›ƠèƠ›\\›ƠèƠ›	'"r"v	G
	.&*
r$> #1
	

% 
*
	'"	
$g2(	%
¯…67'"/&47&6ô¤₫ư‘ûPM<†;ư¬+oX"O…\eè~Y‡+"ư¬n+WeÉ`°¬#'7;!2#!"&=46#3!2#!"&=46!!!2#!"&=46!!dè);;)ü);;ÈÈüè);;)ü);;₫ôüè);;)ü);;₫Ô,¬;)d);;)d);ddÈ;)d);;)d);ddÈ;)d);;)d);dddL°!2#!"&46!–„ü|;È₫¢„°**ưD₫ÔÈôôd°°%32!2!5#!463!54635#!"&=ôÈ);,);₫È₫;),;)Èô;)ü);°;)d;)₫pdd);d);dddưDÈ);;)Ȱ°+AW!2"/&546)2/"/&4?'&6#!"&54676276#!"&?'&4?622,^ÇjÇ^5,^ÇjÇ^₫/jÇ^₫Ô^ÇË^₫Ô^Çj°^ÇjÇ^,₫Ô^ÇjÇ^ư&jÇ^,^ÇÎ^₫Ô^Çj¨¨#;CK2".4>"2>4&$2"&4$2#"'"&546?&542"&4$2"&4Ụ̂ƯŸ__ŸỰƯ ^^ Æà¿oo¿à¿oo₫--  - L-  73H3)z	₫‡-  - -  - ¨_ŸỰƯ ^^ ỰƯŸWo¿à¿oo¿à¿ -!!-  -!
‘$33$ 1~¤ -  -  -  -ÿØZ¹¼[%676&'&#"3276'.#"&477>32#"&'&6767632'."Ơ[v_"A0?! ₫ˆ-
	Y7J3$$
₫«)G"#A.,=
#(wn‹kV8@Fv"0DÿG([kPHNg8B₫*­Ö[eb›2!₫‰5(7>B3$$'₫®)M"#!7)/c#*xn‰fL@9N¾DÿH7!$†W]µB₫$&dX¯DD>.54>"".#"2>767>54&‰0{xuX6Cy„¨>>§…xC8Zvxy#!?2-*!')-?"CoA23:+1!
"3)@+)?jµDH-Sv@9y€²UU²€y9@vS-H-&65&&56&oM8J41<*.0(@	)*D*2Om9ỵ̈w¾.2&/7'/&477"/&4?«»BB8"._÷₫{ÔiBBi
	BB₫åBºBBB7._÷…¾BB^*k"5._ø₫{ÔjBºB₫Fi	BºB₫åBBB»B77/_ø…Èè°2#!"&54>!"264ªd:;)ư¨);X₫ÿV==V=°.2üG);;)¹3-ªưD¼ư=V==V°°	"/''!'&462†*$₫éÔ₫̀₫èË3̉,#*¡₫æ*#₫ơ₫Ổ₫ÍË4Ô$*'	à2@K#.'#5&'.'3'.54>75>4.¼&ER<,Ÿ
3'@"‹ªMOW(kVMbO/9X6FpH*M₫6&+Đ₫Ê	 4C4%df”­J2#4.#"3#>36327#".'>7>'#53&'.>761T™^™'<;%T)ñÅ-6"b Œ"S5268 jt&'V7	0$Ư¦
-$a­P‹N(?",9J0*	d2‚>2
"“"‘

7Gd/9+DAL!Xÿÿ—°32"/&6;3+##"&?62–æ*æ–Èæ–È–æ*,úú„ùü|„ùÿÿè°%#5##!32"/&6;3353!57#5!èddd,ư¨–æ*æ–È‘dcÈÈ₫ÔÈÈ,¼ddôü|úú„dÈÈưúd–údÿÿè°!%32"/&6;33!57#5!#5##!35–æ*æ–ÈXÈÈ₫ÔÈÈ,ddd,Çd,úú„–úd–údûPddôdÈÈÿÿL°32"/&6;3##53#5#!35–æ*æ–ÈXddÈddÈ,Çd,úú„₫dûPddÈÈÿÿL°32"/&6;3#5#!35##53–æ*æ–ȼdÈ,ÇdddÈ,úú„₫ddÈÈû´dÿÿ°°32"/&6;3#53!5!!5!!5!–æ*æ–ÈôÈÈd₫Ô,d₫pd₫ô,úú„ÈÈ₫È₫È₫Èÿÿ°°32"/&6;3!5!!5!!5!#53–æ*æ–È ₫ôd₫pd₫Ô,dÈÈ,úú„ÈÈ₫È₫È₫ÈLL!2#!"&546!"3!2654&^¢¼»£₫p¥¹¹g₫);;)ô);;L»£₫p¥¹¹¥¥¹È;)₫);;)ô);LL+!2#!"&546!"3!2654&&546^¥¹¹¥₫p£»¼d₫);;)ô);;₫oưưL¹¥₫p¥¹¹¥£»È;)₫);;)ô);‚¾$¾LL+!2#!"&546!"3!2654&!2"/&6^£»¹¥₫p¥¹¹g₫);;)ô);;₫¾$¾L¼¢₫p¥¹¹¥£»È;)₫);;)ô);ÈưưLL+!2#!"&546!"3!2654&#!"&?62^¥¹¹¥₫p£»¹g₫);;)ô);;₫û¾₫p¾$L¹¥₫p£»¼¢¥¹È;)₫);;)ô);ÏưưL5!2#!"&=463!2654&#!"&=46&=#"&=46;546&¥¹¹¥₫pÂ);;)₫>¿D₫¼úúL¹¥₫p¥¹d;)ô);dé₫ä&₫ä
–È–
Ù×#%2"+'&7>?!"'&766763	˜,₫÷₫ó			P''₫̉
K
»		
₫S#₫Ê₫Å	ånnV/Ó₫L5!2#!"3!2#!"&546&=#"&=46;546^₫>);;)Â₫p¥¹¹ñD₫¼úúLd;)₫);d¹¥¥¹é₫ä&₫ä
–È–
°°1!2/"/&47'&6#"3!26=7#!"&5463!îm₫È)8m₫ïœ);;)ô);È»£₫p¥¹¹¥,°₫pm₫È)8m₫Ô;)₫);;)”È₫Ö¥¹¹¥¥¹¢¢#2".4>"2>4&2"&4áîÙ]]ÙîÙ]]ĂæÂqqÂæÂqq₫{ rr r¢]ÙîÙ]]ÙîÙGqÂæÂqqÂæÂsr rr L°#3232"'&6;46!2!54635ÂÈơ
₫'
₫…
	ú₫…èû´gd°₫¢₫Vª^ü|úúd22L¬#	++"&=#"&7>!2!54635Gz
ô"Èú'ưùèû´gd₫M úú!¯üúúd22LK"	62"'&4?62!2!54635Œq‹ưó₫Ü‹Ôèû´gdÓq‹ưó#‹ửúúd22L›	#'762'&476#"&?'7!2!54635‡*MÔM̉ư«ĐÔ₫=èû´gdÿMÔL*̉ư©Đ›Ôư:úúd22L°#'/'7'&6"/&4?!2!54635^WЛԛ̉ĂL*M₫úèû´gd°ư«ĐỔưPM*M₫Xúúd22ÿ́°¯%	!	°₫₫Æ₫q¬ư3«g₫q§üùæ¹dL°+!#"&546;!3#53L–ưD–úôdÈddèü®₫pè₫Ô,ÈÈEƯ°/'&"!#"&546;!3#53"/&4?6262L₫Ơ_		•₫È–úôdÈdd°j₫\ÊjO)è•₫Ơ_		“₫pè₫Ô,ÈÈưÎj₫[ËjO)
°>'.!#"&546;!3#53"/"/&4?'&4?62762Lg†%₫ö₫·–úôdÈddöFƒƒF)ƒƒ)FƒƒF)ƒƒ)è₫óg†₫ö₫pè₫Ô,ÈÈưŒF)ƒƒ)FƒƒF)ƒƒ)Fƒƒ—°/!"!#"&546;!3#533232"/&6;546L₫¢₫–úôdÈdd–d–æ*æ–è₫Ô–₫pè₫Ô,ÈÈư¨úææú—°/'&"!#"&546;!3#53++"&=#"&?62L¥*₫ù₫n–úôdÈddëæ–d–æ*è₫p¥₫÷₫pè₫Ô,ÈÈư…åúúåȰL	!2!546#!"&5!52LûP“û´dL––₫ÔưÚ&₫ÔÈÈ}­—-1;&=!5!546#"&=46;#5376!!/&4#5;2+§øø₫pư/22Èdd₫‚÷₫p÷ddd33æ*æ–È–₫…dÈÈưËæ–È–æ*yÈdd°°Q%6+"&5.546%2+"&5.54>323<>3234>^%È"%₫á
È"

d	d	1tû®5gD‘
₫>?1)₫A¿..@Â

₫¢^

₫¢^
d°L3"!5265!3!52>54&/5!"!4°"2₫pK₫K₫p"2KôKL8
üˆ88
%₫v%
88
x88
%₫v%
8LL $(4!2#5'!7!!2#!"&546!55%!5#!!'!73£wi₫ÙÈ₫pdw₫%,);;)₫Ô);;),¼₫pü,¼₫‰d₫‰dÈiè–bbÈdÈ;)₫);;)ô);dÈÈ₫÷…£…ÆÈÈføddÈŸŸ&767>".'.7¢.‹wfüw3À£
.1LOefx;JwF2ï¢Â1vüevˆ/¢ 5Cc;J™|sU@°L#A2/.=& &=>2#!"&=46754>ü¸¦ud?,		Ê₫ÂÊ
1;ftÊpR&mû´m&L!(("

È""’’""È
'$+ ₫ä

2₫Ñ2ÔÔ2/2
!°°
'!'3353353!2+!7#"&46!2!546LÈư¨ÈÈÈÈÈÈü®¼‰üJ‰³LûP¼ÈÈôÈÈÈÈüà*dd*₫Ô22d°L	#"!4&#"!4&!46;2¼d);,;gd);,;ư₫Ô;)d);L;)üè);₫Ô;)ưD¼);üà);;)ÿœ°L%)!2#!"&546!#3!535#!#33ȼ|°°|ưD|°°„₫ÈÈ₫ÔÈÈ,dÈÈddL°|₫|°°|ô|°ÈưD¼Èd₫Ôdd,d₫Ôdôd₫Ô,ÿœ°L%)!2#!"&546!#5##3353#33ȼ|°°|ưD|°°„₫dddddddÈÈddL°|₫|°°|ô|°ÈưD¼ư¨ÈÈôÈÈd₫Ôdôd₫Ô,ÿœ°L#!2#!"&546!#3!!#3!!ȼ|°°|ưD|°°„₫ÈÈ₫Ô,ÈÈ₫Ô,L°|₫|°°|ô|°ÈưD¼È₫Ôdôd₫Ôdôÿœ°L!2#!"&546!-
ȼ|°°|ưD|°°„₫₫Ô,₫ÔL°|₫|°°|ô|°ÈưD¼₫––––,ÿœ°L )!2#!"&546!!!#";32654&#ȼ|°°|ưD|°°„dưD¼d‚&96)‚₫‚)69&L°|₫|°°|ô|°ÈưD¼ư¨ôdVAAT,₫ÔTAAVÿœ°L%)!2#!"&546!#3!535#!##53#53ȼ|°°|ưD|°°„₫ÈÈ₫ÔÈÈ,ddÈÈddL°|₫|°°|ô|°ÈưD¼Èd₫Ôdd,₫d₫dÿœ°L#'!2#!"&546!3!3##5335#53ȼ|°°|ưD|°°„ưDÈ₫ÔdXddÈư¨d,ddL°|₫|°°|ô|°ÈưD¼È₫pô₫dÈÈÈ₫Ôdÿœ°L"&!2#!"&546!#575#5!##53#53ȼ|°°|ưD|°°„₫ÇdÇÈ,ddÈÇddL°|₫|°°|ô|°ÈưD¼₫pÈ2È–d₫d₫d		§§%2".4>"2>4&!!!'57!àđÛ^^ÛđÛ^^ÅäÂqqÂäÂqql₫Ô,₫Ôdd,§^ÛđÛ^^ÛđÛLqÂäÂqqÂäÂĐÈddÈd		§§'+2".4>"2>4&#'##!35àđÛ^^ÛđÛ^^ÅäÂqqÂäÂqql2ddd–d,Èȧ^ÛđÛ^^ÛđÛLqÂäÂqqÂäÂĐd2d2dddddỵ̈ÿÂA 62632+54&#!"#"&5467&54>3232"/&6;46÷nµ,,.xªªx€₫ỖPpVAbªz–
‰

ß
&
ß
‰Awa­ñ­úúsOEkdªbư³
₫íôô
ỵ̈ÿœĂA32632&"#"&5467&54>++"&5#"&76762ön¶,+.yªxZ₫†
%
₫ƒ	OqVAb©æß
‰
–
‰

ÇAwa­xc¤h₫“sOEkd©cư’ä₫í

̀dLm%5!33	33!#"!54&#¼₫̣ª₫̣ª₫Ô₫Ôª₫̣ª₫̣2dd,,M₫³₫Ô₫Ôd22y7›/2#"'2!54635#"&547.546324&546X^“Y{;2	iJ7-₫Ô-7Ji/9iJ£›qYƒZ=gJiû22ûiJX5Jit£'‰œ*BJb{"&'&7>2"3276767>/&'&"327>7>/&'&&"267"327>76&/&"327>76&/&̣oOOoSÙÜÙSoOOoSÙÜÙ₫=y±"
$GF`
	Pu
"Q9	ùcŒccŒcVQ:	Pu
"GF`
	y±"
$̣o₫Ơ₫ƠoSWWSo++oSWW"±y	`FG#
‘uP
	:Q#úccŒcc:Q#uP
	$`FG#
"±y	dè°"!#5!!463!#53'353!"&5+¼,´₫¬₫„
?,Èd¢ÔÔ¢d´₫u
„
Ă ₫„ÈÈó
₫ÔÈüàÔÔÈ₫
‹ÈĂ
dè°	!!	463!#5##5#7!"&=)+5¼,₫¢ưÚ
?,È>¢d¢Ôª₫
|
› ưø^ưÚG
₫ÔÈü|ÈÈÔ₫d
77
P°ô#3!#732!!34>3!!¢dd₫Ô¢ÔưÈ!,ư¨Èd!sđđüà,ô Èd,ÔÔ+$d₫¢Â$+₫p₫pôLL293232#!"&=46;54652#!"'74633!265#535d2₫Ô2s);;)ư¨ö₫º;)X>,>Xư´ÔÈÈL2dd2ú–;)üà);öFD);–>XXưæÔ¢d¢d¼L6=3232#!"&=46;54652#3#!"&54633!265#535Âd2₫Ô2s);ÈÈ!ư¨);;)X>,>XœÔÈÈL2dd2ú–;)₫₫Ô$+;) );–>XXưæÔ¢d¢ÿ¢Ô	#!"&762#";2676&35’} ,û, }@DĐ:#6#:àÈ­û°&77&P'₫L₫̉.₫dd	LL/?O_o32+"&=4632+"&=46!32+"&=4632+"&=46!32+"&=46!32+"&=4632+"&=46!32+"&=46!32+"&=46©ú

ú

ú

ú
ú

ú
üêú

ú
ú

ú
ú

ú
üêú

ú
ú

ú
ú

ú
L
–

–
₫Ô
–

–

–

–
₫Ô
–

–

–

–

–

–
₫Ô
–

–

–

–

–

–
°)33#!2!&/&63!5#5353!2+!7#"&46!2!546¼dd^>1B)(üü()B1>^ddÈ₫>¼‰üJ
³LûP°ÈdO7„S33S„7OdÈdü|*dd*₫Ô22°+52#4!!2!'&63!&54!2+!%5#"&46!2!5460P9Â<:H)"¯ưZ²"
)H¯¼–üJ–³LûP;))%&!‘‘!&₫•*ÈÈÈÈ*ư¨22°$.2"&432!65463!2+!7#"&46!2!546
–jj–j·."+'₫¼'+#₫ͼ
üJ‰³LûPj–jj–₫ë9:LkkL:9₫r*dd*₫Ô22°,62"&5477'632!65463!2+!7#"&46!2!546X/[3oœo"o£"."+'₫¼'+#₫ͼ
üJ‰³LûPk‹6NooN>Qo£₫
9:LkkL:9₫r*dd*₫Ô22°",!!.54>7!2+!7#"&46!2!546X,₫Ô%??Mưî<=BmJ₫¢¼
üJ‰³LûP°¡‹9fQ?HS½TT¡vKü~*dd*₫Ô22Èè)2!546754!2#3#3#3#!"&546/R;.6₫p6.d6\¬ÈÈÈÈÈuS₫pSuu;)N\6226\N)₫G6.dddddSuuSSudÿÿLL/3!2#!"&546!2#!"/!"&4?!"&=46!'–„ü|¶

₫åà
%
XưôW
&
à₫ß
ªdDdL₫ôưD
2
à
%
XX
%
à
2
ddd°L#-7!2#4&+"#4&+"#546!2!46+"&=!+"&=È Sud;)ú);d;)ú);duè);ûP;ñdèdLuSÈ);;));;)ÈSu₫;)₫Ô,);₫2222©¬
	!&4762	!2!546ઃ₫ưû  'Y₫¬V/₫«¢ ü|ưUYƒY(₫n₫ª0Uü22!°/.#!"3!26=326!546;546;33232!½'₫p'½q*}¨ư­20È/2‡ú₫––ưŒ22,₫Ô2°°
"!#!5463!#5!#!"&5463!#5„,
₫‰₫Ô
w,Èư¨,
ưv

w,È ưÁ
O,T
₫ÔÈ₫ưÁ

¶
₫ÔÈÿœdGFV32676'&7>++"&?+"'+"&?&/.=46;67'&6;6#";26=4&äĂKjIC


)V=>8'"d1*Ă)"dT,Ÿ|-oËtEú

ú
GAkI
! "%,=?W7|&êF@Je5&2WO_e_
2

2
ÿœÿæ~	$4<Rb%6%32!2&'&#!"&=46#";2654&'&"2647>?&/&6%?6'.'.§. ‹ü+jCHf7ư"	*:₫Ô>XX¹P*† €@--@-₫˜ -?0
!3P/|)‚(	)f!%
=„÷&*
xÈ"6Ô2&„CX>È>X¬83DÉ-@--@₫Û‚
# ³=I+E(	/—/}X&+	5!H	d9°Q`o322#+"&=#+"&=#"&=46;#"&=46;546;23546!2>574.#!2>574.#q–
Oh ..40:*"6-@#
–
d
–
¯

KK

¯
–
d×))₫ùk))°
m!mJ.M-(2N-;]<*K

KK

K
–
X
–
K

KK
₫ÔÈ
"₫pÈ
"°®),!2#!"&'.546"!7.#ÔVz$RưÄR‚(z Œ}VG+œ0œ )IU!Ă®zV₫`3·BBWwvXZÅ3 Vz™&--%óó,(1#₫ÂÈ„32#!"&546+"&=Û–g¬T)₫>)T¬H6–6¬g₫)TT)ôg¬üá66áÈ„33#!"&546+"&=Û`³–T)₫>)T¬H6–6–³₫B)TT)ôg¬üá66á	%'5754&>?'	%5%ư‚₫†Nd––d/“‚\₫¢₫¢^^ÿ₫åª<à–Ç”•È–ú

(Aưb¦¦“¥¥dô° 2"&4$2"&4$2"&4¼|XX|Xè|XX|Xè|XX|X X|XX|XX|XX|XX|XX|¼L2"&42"&42"&4è|XX|XX|XX|XX|XX|XLX|XX|₫ÈX|XX|₫ÈX|XX|ddLL/!2#!"&=46!2#!"&=46!2#!"&=46}¶

üJ

¶

üJ

¶

üJ
L
–

–
₫p
–

–
₫p
–

–
°°/3!2#!"&546!"3!2654&!2#!"&546!5^ô¢¼»£₫¥¹¹Ëư¨);;)X);;ư±ô₫G°»£₫¥¹¹¥ô¥¹È;)ư¨);;)X);d₫Ô,dÈÈdd°L;!2+32+32+32#!"&46;5#"&46;5#"&46;5#"&46–è222222ü222222L*È*È*È**È*È*È*,è£
*.62"&%#462"&%#46"&=32W??WW??₫ù|°|°¼°|°ưÀ|°|°¼°|°°*(£C²²BB²²₫À°|°||°|°₫Ô°|°||°|°₫ÓÿµÈ”B76+2+"47&"+".543#"&'&676/!'.6éE*
'?)’¸
T¸0I'*L
#3¶{¶,#
n₫Ù
6F82 ₫à*5#"#!#4.+3#525#"#5!°2&È2₫p"È&2èưD
d
È2d
ô„ ü®dd	R ,ư
₫W
22©
–L® 05"'./#!5"&?!##!"&=463!2è₫ßE₫Ô	1;E%=
!'₫́†y±üè,2 "
ëư#	22+.°¦"A2‡V₫ªưădd°°GJ!2#!"&546#"3!26=4&#"'&?!#"3!26=4&'"'&'#&#2Lû´FF
₫Ơ&	7

?
99₫àÅg°û´LRư 
22£™22$́₫°°#'!5!!2#!"&546)2#!"&546!°ûP°û‚₫pm₫pG,LdÈü|„₫pd₫Ô,°°#'!2#!"&546!2#!"&546!!5!2₫pm₫pG,ÈûP°°ü|„₫₫pd₫Ô,ư¨dd°è'+!235463!23##!"&=##!"&546!2ddd₫pd₫pŸ,è₫¢––d––₫¢ ₫Ô₫Ô,°°'3#3!2#!"&546!!2#!"&546ddd–₫pG,₫¢„ü|°d₫pd₫Ô,₫₫pdL°'+32+!2#!"&5463!5#"&546;53!X––Âü|^––dÈ,L₫pd₫pddÈ₫Ô,°°'!#3!2#!"&546!!2#!"&546°ddưv₫pG,ü®„ü|°d₫pd₫Ô,₫₫p,0o€	#"&54632a₫î5₫è₫*A2„~	6'&4Oî**₫{î)ü)î*2A~„!2"'&6dè)₫*₫„*₫î*2,~o	#!"&762{î)ü)î*a₫**î°(
5-5!5!¼ưL₫c¨üà å¶₫½ƯÁÁƯûØÈd°°1#3!35#5!34>;!5".5323!°ÈÈ₫ÔÈÈ,ûP2&d2"d&2üà„dd,dd₫ ưÚdd	& ,Lè%1#4.+!52>5#"#!#3!35#5! 2&d2₫p"d&2 ,ÈÈ₫ÔÈÈ,¼ ưÚdd	& ,üàdd,ddÈfrJ32	+"'&476½ 
₫0Đ
 
₫)×
J₫0₫0	××	>fèJ32+"&7	&6S 
×₫)

 
Đ₫0
J	₫)₫)	ĐĐfÈJr"'&=46	4	₫)₫)	ĐĐw
 
₫)×

 
₫0Đf>Jè	'	&=4762j×	₫0₫0	×á₫)

 
Đ₫0
 
×Ùÿù=°:#463267>"&#""'./.>'&6è°|°₫Vd&O"(P3G*+*3M,
:IG79_7&%*>7F1“
°|°|°ÈÂ5KmCKG\JBktl$#?hI7 ÀÈ„°!2+&5#"&546!5úX–ÿ–«,°₫p₫²	dddÈL°!2%!#4675úî'=ưDXưDd
d°Q,ü[u¶}ü4ư]ddMoĂ__<ơ°Đvs—Đvs—ÿQÿœÜÿ…ÿQ₫ÔÜ£¸(°°d°°°p±EØØ¢HE°d°{°È°Èô°ỵ̈°°°ÿđ°°°	°d°ÿÓ°ÿÓ°°°°°°&°n°°°°d°°d°°d°°ÿœ°d°°°°°°°d°°d°°°°°°°°°d°È°°°5°d°È°ÿµ°!°°°°°°ÿœ°°°°Û°°u°°°°
°È°°°È°È°È°°ÿ₫°,°d°ˆ°;°°°°°°°°°°°°°·°·°°°I°°°°]°ÿܰÿܰÿŸ°d°°°°d°ÿÿ°°ÿQ°°°°E°°°ÿœ°J°°°°°ÿœ°a°ÿư°°°°°°Ä°dÿØd9È'dÙdddÿœÿœÿœÿœÿœÿœÿœÿœ		ỵ̈ỵ̈dy'dddÿ¢ÈdÿœÿœdÈÈddd,ÿµd,A22È>ffÙÈÈ****²èèNNNNNNNNNNNNNN¤"~†¬äFnŒÄ2b¢Ü\ºrô bÊb¾	6	„	¶	̃
(
L
”
â0ÊX
*
^
°h´(¦æTª*v¶
8|ÀtĐ*Ô<῭6`°₫R¦.j–°à₫(h”ÄÚî6h¸ö^´2”âDl”¼æ.vÀb̉ F ¾!2!v!¸"@"–"¸##"#8#z#Â#à$$0$^$–$â%4%`%¼&&~&æ'P'¼'ø(4(p(¬) )̀*&*J*„+
+z,,h,º,́--ˆ-ô.(.f.¢.Ø//F/~/²/ø0>0„0̉11`1®1è2$2^22̃3"3>3h3¶44`4¨4̉5,55è6>6|6Ü77N7’7Ô88B8†8È9
9J9ˆ9̀::l::̃; ;Ü<:>Œ>Ô?(?n?ª?ú@H@€@ÆAA~BB¨BîCCBCvC CÊDD`D®DöEZE¶FFtF´FöG6GvG¶GöHH2HNHjH†H̀II8I^I„IªJJ.JR§@.Æ	j	(|	¤	L²	8₫	x6	6®	ä		ú	$	$4	$X	È|	É0’	ÙÂwww.glyphicons.comCopyright © 2014 by Jan Kovarik. All rights reserved.GLYPHICONS HalflingsRegular1.009;UKWN;GLYPHICONSHalflings-RegularGLYPHICONS Halflings RegularVersion 1.009;PS 001.009;hotconv 1.0.70;makeotf.lib2.5.58329GLYPHICONSHalflings-RegularJan KovarikJan Kovarikwww.glyphicons.comwww.glyphicons.comwww.glyphicons.comWebfont 1.0Wed Oct 29 06:36:07 2014Font Squirrelÿµ2
–	

ï !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰‹Œ‘’“”•–—˜™›œŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂĂÄÅÆÇÈÉÊË̀ÍÎÏĐÑ̉ÓÔƠÖרÙÚÛÜỮßàáâăäåæçèéêë́íîïđṇ̃óôơö÷øùúûüư₫ÿ	

glyph1glyph2uni00A0uni2000uni2001uni2002uni2003uni2004uni2005uni2006uni2007uni2008uni2009uni200Auni202Funi205FEurouni20BDuni231Buni25FCuni2601uni26FAuni2709uni270FuniE001uniE002uniE003uniE005uniE006uniE007uniE008uniE009uniE010uniE011uniE012uniE013uniE014uniE015uniE016uniE017uniE018uniE019uniE020uniE021uniE022uniE023uniE024uniE025uniE026uniE027uniE028uniE029uniE030uniE031uniE032uniE033uniE034uniE035uniE036uniE037uniE038uniE039uniE040uniE041uniE042uniE043uniE044uniE045uniE046uniE047uniE048uniE049uniE050uniE051uniE052uniE053uniE054uniE055uniE056uniE057uniE058uniE059uniE060uniE062uniE063uniE064uniE065uniE066uniE067uniE068uniE069uniE070uniE071uniE072uniE073uniE074uniE075uniE076uniE077uniE078uniE079uniE080uniE081uniE082uniE083uniE084uniE085uniE086uniE087uniE088uniE089uniE090uniE091uniE092uniE093uniE094uniE095uniE096uniE097uniE101uniE102uniE103uniE104uniE105uniE106uniE107uniE108uniE109uniE110uniE111uniE112uniE113uniE114uniE115uniE116uniE117uniE118uniE119uniE120uniE121uniE122uniE123uniE124uniE125uniE126uniE127uniE128uniE129uniE130uniE131uniE132uniE133uniE134uniE135uniE136uniE137uniE138uniE139uniE140uniE141uniE142uniE143uniE144uniE145uniE146uniE148uniE149uniE150uniE151uniE152uniE153uniE154uniE155uniE156uniE157uniE158uniE159uniE160uniE161uniE162uniE163uniE164uniE165uniE166uniE167uniE168uniE169uniE170uniE171uniE172uniE173uniE174uniE175uniE176uniE177uniE178uniE179uniE180uniE181uniE182uniE183uniE184uniE185uniE186uniE187uniE188uniE189uniE190uniE191uniE192uniE193uniE194uniE195uniE197uniE198uniE199uniE200uniE201uniE202uniE203uniE204uniE205uniE206uniE209uniE210uniE211uniE212uniE213uniE214uniE215uniE216uniE218uniE219uniE221uniE223uniE224uniE225uniE226uniE227uniE230uniE231uniE232uniE233uniE234uniE235uniE236uniE237uniE238uniE239uniE240uniE241uniE242uniE243uniE244uniE245uniE246uniE247uniE248uniE249uniE250uniE251uniE252uniE253uniE254uniE255uniE256uniE257uniE258uniE259uniE260uniF8FFu1F511u1F6AATPĂbootstrap-sass-3.3.5.1/assets/fonts/bootstrap/glyphicons-halflings-regular.svg0000644000004100000410000032430212556335206027664 0ustar  www-datawww-data






























































































































































































































































































 bootstrap-sass-3.3.5.1/assets/fonts/bootstrap/glyphicons-halflings-regular.woff0000644000004100000410000005560012556335206030030 0ustar  www-datawww-datawOFF[€±\FFTMXm*—ÜGDEFt DOS/2”E`g¹k‰cmapÜÀrÚ­ăcvt œ(øgasp ÿÿglyf¨M”¤}]ÂoheadQÀ46M/ØhheaQô$
DhmtxROt̉Ç `locaS`'0oû•ÎmaxpUˆ  jØnameU¨¢³, ›postWH-
Ѻ£å5webf[xĂTP̀=¢ÏĐvuĐvs—xÚc`d``àb	`b`d`d’,`HJxÚc`féfœÀÀÊÀẦĂt!
B3.a0bÚ䥀	‰êîÇàÀ đÿ?óÿ@u"Ơ@aF$%
Œ1–xÚí”?hSAÇ—¤iSÄÆ₫‰mß½44±­Đ,qÊPKƒ q̉̉XE]²(2	‡.¥Ô©ƒ]´‚ "EœD·
­¥¹ßi]DÔ¡ZJơù½\µº8ùà“Ïï½wïî›w¿„ˆˆÈV"±F¦pUÔ¯û×â.Χ(ƒg’KĂ4On«;âN¸‹îR{¼g`'!ÛÉP²MùUHEƠ J«¬Ê«‚*ª²ªªYq”9Ícœå<¹̀Uá9Ô!ÑQÓIÖY×…-Ïó°¢KCơ•è+	Ơ¤ÂÊU)•Q9¬4©Jª¢¦Yp˜]Nq†Ç9Ç.q…§yVV
ën¬×)Ñ9»’÷Ê[ơÎ{“ª¥öºv¿V¬å×›Ö¾¬ö­FWb++{Ư>·×¸a|ă€ü*·ägùQ¾•̣¼,Ḳ‚<'ÏÊỌ́¤W@ơEx̀¢¾DÄÈĂ&ĂUØd¸#›ËÈÀ&Ă
xơMx˜<·aäa“çŒ,l2<€‘M†Ç02°Éđ6óΠ^†‘…çP¿$̉6{¸‡,´#›ÆĐ{ MÎwp̀Bïá8H¢₫#³6™7adÖ&'~‰95r
3wÁ"Đ[Et’ØÜW‡:ưÓ­:$"ô™>2Íÿcỵ̈5*ß.ưlŸôÿäN ₫/öÿø₫h₫‹±Á]GtưéTèßßÑ(øÿÿxÚŽ	|Ơµ0>wÖm#Y¶e[’%Ỹ-YR'rö„ÄYÈj¶°D% 	,@ØBØKZjHÙÚ¤@b¥¥¤-…RôÊë+¥nûhK›~¯åË룼–¦¥$Öä;çÎhµèëÿư₫^fîܹsï¹çnçœ{ιË´0¹Œkb8Fd:Ÿ%L×”Ă"Ïü1₫¬AøƠ”ĂAæY£Œ>,ÈØ”Ăă€#œp„ZÈ4ơØŸ₫Ä5maßd“e²ü ?ÈœyÇ=¤øI:C‰Ç “DÜăơ(nI¤xˆL‘.1¢!„P'™JD‰t‘Hj€@L4’́…P†ô“h' )Èb̉)vHX,fù1Ñc\'²âcGÍÖÀ±„u˜>ëŒñ1Ù~Âtüà?ññ„éø!x¡øÁT_qâ?qB‡ÛĐF‚‘¤#ŒL%½©DÀÑ›"¯ä?Y­øưºÇ¯ÀƒºÈj??8>NÑSkem„²¦AY³µ²Db¡4
ÙJ)¤•;•@¹j“ÅP$
˜ï'qh®8`›ë;aŒêXÍĂ6CùFâ*„dËYưcá±Ú"ÔŒ‚ù„Ïù£Ûø'?hÆL¬Vă—ŒÖ,½>c‘eË3eV¹̉h† =Cû‘À†éÇ~äơxC½\((qb@¸4đ‰x†K&h×Î
¥©4\2ºÇ±6N1|-Ô;­Ïëj›ï–É
YuÔ@†ájêî›Ñ«xú¦ơ†i¸ä§₫mKóëÛÙDøEöw¦q3ÿ̀·.»¼cAw@¶4t.găñ́ükg´Ér°{~ÛÓWl~¬{ÿÖlW2»êöđ}Ă27Đ6a2̀\€6o”z@³$´ñ¡̃ëHÄSÉ̃Hˆ «g®›Ñí±bơtÏX7ó0KtỖc1Á,«Ơ7—ḄoLëè˜ÆÔ6Ä·6[,–æÖ%ñiáZ
¿‡,’l>T†p̣K³œSGg¬\>
ñ#»øAö#3Œ«ØEµy‚kÂî6v®́Úçè…Áºç†;u3Ó!ZIÎ8́˜M†k?³8¶C˜£Wq{`́C*‰Đh>HÜ1¿_söÙkấh)œ›®ojªOO'»
!~dXñgÏûB(ô…ó†ưÊ0<
kOYxÊe§¬©±Æ§Ä­5k¦—=dă²đÓϧ> íü+ütÆCç-o
Ǫ†„/äĂơ_koïܶÿ¶¼sñƠ+f°ÿÎOßz±tpÛu7-™}…dơí₫9Å	sàˆ©e Œ³\9.H4’!0¥S\ ʱk2™ï"?ip7œ\2z§ÙÔÔl̃°Ñt=¹î…Wùç\!ûKyOXimUẤ¾nov›́ÛÇ6²:½èå
2ÆóLZkAưAÍ^âqCæ™̃”	&PæˆïaFÆê¥Iª0Üă>₫&ïù…Q#F£Qư»Ñlæ>
A³·q*˜O‚á­ưăÏÿ‹ÑȦæ_@27¦̀lÄ,¨‚s₫ø‰Ñè¾fȾ6âp7üÜ©?úÿM₫›Œ‰±1vˆA˜Ü2‰¦]$j"‚‹;‘vÛlk~va0¿ûǵ¥j£úÜz₫›¶ƯRD:ÿg©×濱cë6’ÅÅywú%ôgâ(Ă¾ƒØ#'´ÎuBµ̣#́=ù_@?ƒ>ÆFØưVbŒ0aá!¬aL4tXv¼¡ü:ÅFööh÷²9‹ïj^µx̃Œü¾¡ézĐÏ}´Wn}7}¶×»j“¯ÆÎÎïi½H©­¿º¶ÆÁ̃i¥ưÅtêïüKüSŒŸ‰aÍXEôºEºbbBQ1ØÉöf”t‘x†ôFȮܷ-"dqA÷ׯ\ê·~F`³»è6²iä•+ÀÿÔ¢Û^ȲÂ}שï׆k&»ƯĹ¾»íÈà<-
\èœ;Äâg1>¨w†0Ü0ßṿÉ^x ́ƯƯ7lÛ<”yƯÎ}™̀S·o›9éÜ-Û®ă¾6kбlË´¾ën¹ùđ‡o¾åº¾i[–uó—§~¬æoà`jàÁ•{i×\C4,"iW8’JoñṾ„bp¨ûwˆ²Cưªºß!‹;Ô'7×D.v¹ÔÇÖÔ
n‹ơoZ-n²ë¤ƠÁ°eùÏP‚̣io4~LYä/zm₫w_ỵ̈¾Ǿg₫ϽŸ₫ư§R̃Ï"t̃ Ó&NoN€¥)4ÆÉM³CÛG2«‰\j²Ê8d-É@>#ÛOt^¶À́5¼+x͘e.^á]ƒ×¼à²ÎÛG 8›^æ ômŒ÷(ÓÆt1	÷s™̀bf³J›°ß̉	—%‘Œ‘ â<‰¬4̃Hâø”ƯÅ@eê÷8CÈỘ,»5<Â(—åk²c5Y®I¿₫¶́ÍØ—âùAøú]|Å×ål6+›Ơ=øHVăcb´KƠ‹B´6ßi4•#´‹_Û©|&ó>NvQk#®pW•=ä¿uº7”ÛHɰR$
ç÷î
³[5́‹™™
̀Í̀g¡	­µé%đ1Ïä9}¼°ĐûÉÇ₫úÏ&@$&¸¨ÿ¹÷Œ¡l¬”đ=Ó1RIṇ̃}9æØ#ÎÏ‚«zû??1z&®ôı_aÚùc|PŒI[íƯ:uĐ; ¯₫äÇl¿Ñ->k4ưæGơ£ñYÑm|Zôwà
}û“ÑHnÑR=-B¾ë™ơü~åm¼§‰.Ù±	.ÀĂơ¦Mz^,—»ë0%£ñ°Ê8®‰Eư«G¬Ä**|ÿsg|oỘ±À¹zOưÿ¿Ö¬0s–¾zâÚé.¬ăWN¶^±	‹„yHk<v3t{8-Ù|Ă'
ø«eêøa~Ö́ÅH94²Èx¼¢×AÅ-³@üy
bT4@0́b#]DŒDÓÑ“½lj€DSio:AgĐàöÄS½́P z:„;¦¶-á|yH"r
·¤{̉B{\ˆ´5RLi‡6öAƒáAÖæă–tM¾]èèÛßtÓá›øaøṚ±KºûàËC¤­!Ø1ô´C̃ígC̃́ƒ‚đ +ù¸³1EG·!̉Ú€ƯXzû––®î¾éÙ›nz–µvÜ@±x™ôíô›Ê-#i^ Ïxñ*$)®ÎÀWü’ă¤=ÖO\fùäó€[WŒ´“ö₫X~V¬?«ÿî₫Đ`Lei¬::v4Öß$?‹=R₫ó˜•a#ÿc¤÷]8YåƯFJâ™b&'{%LĆEÀÏ¢­‰Í·Cf]Ç^$ù/Íùï̉fߪ̃M;Ă€Ú;«óÉœ…	¥°Ê„6ù°CXƠV¸¥À§đ#êÆX~FđƒÚ<ç	:₫vC¿¯cºµyBpLv£¬Ó1đĐF”v#ß9†
/êö8VFë©01Óà­_Kôí?Êæx>£}úÔ#€G7ÔÑ‚\WŒp!.@ü¸îü»±bùwÉ¡+{ÜoªƠ­#»ÔPĂQ̉®nÄ«66
cZ­çD‰¡¥â’Â(. °Ÿºuï;n‹M}ÑÁ‹Åư?»œ‚ªävÊtÉxíêF»́²{É+È–²ù`¢
×=Ÿ×" rPÏ€l˜DîV̀¶ß¤¿±™•»?ăíZ@ë¢Hÿä°…]º[˜¥3Àö5€̀%O¨¼ê)̃\^„Ñå Z;ú˜>F÷ºtf›-IºzÓ®€çŒyúu1Üu™o<å:Éoa:uqß‚Ơẉykk ⋜‹}0?jv²«X+ÀèæƯ}V»›­ïäG$s₫ÚŸº
?2̣6ùª¯†ư´YÊI5c‘$óCfưb!¯X¤*|FÏÔÖ^º$Üpº7ïpäí55§ÅƯß¶6[¿mµàjg¹¨°®¢l>*öñ	KO&
 ±‰8÷Ü¢:ǰ…o¿êÖkơ¢‡Kåm~™o¾Sä-*4¥E¼}P/ûÚÍ% k:¡e×"å1AéJˆ–èÂâCAX´¹‹8=	LƒÅ¢>°Ü±a¦åÿ—v{ä|K.3ÆÛ×:\B¬xǤüwđºå˜bÉeb€Ï>Ö1Û¿v‰HÅ?äf¹›58Ôó†₫%Í6›$ɲÜ'p¢L^H¯âXÎbpI’VqnÖæ¿̃éAé8¥åK”g'i‚!Uz†áSEªI×ßûỡ5Ù÷ưN=ñ»ûhpÍ̃VÜ?¡›(́EÅ ÿཿ¾V¥³rûÍ?̃´éÇ7®ưỡüËV£Ú‹‰É¿âµ.´ăOø¹Ü;°÷•¤ Ñp¤4NéRZm.–OÔø> Mu¾L'¬Éj5©ªâÓ`;´Mt‹AQܶM„›ïôyëVí™ë<`‘’
$m)̃y¤Ú³ÑX„™ÛDaî:̀áƯªq»1JöFq³15¤ä-̃l¸è\ƒ…3‰~X¡æ-2pFÿDđe‰éÖ/ñf!¯è2®½iç:à“=Ăhưà{ü%Ü{t…^€¶*ÄPˆˆ…đBͽ]îÎYÓD3ÀØjd
úÓÖÔ*æw|âê¼GLϽ}ùË‘k7¸Ă‡Ï=0×ä6„o¢z*­¶âzo‚đ1~Jçw0ư0SÏÔe“Pw%¤”#@BJB	À 
%Ùø+„’	ü'¸½œÀ;¤%!&©§)đHÈq î7fÉqöH.§æ²́ĐÉç!ØEÚÇf³́‘,ü9Ơƒ$9” æH{~i€Û	ŸZ³đ)O|‚!"‡üD.K‰̉Qa2Ơ
%©£2WŒ¥É‚\ë{é*™ơB{7â,˜9.ø'ew U^¨ƒW¯&̃$»r9¼µçrcGơBôçwl¬¦̣ÿä’lö<üÑú¾™Ê·îSQÂă‚…ˆh́! i¿Ñ¨văîÎJ
:³Y?üñ#ù•¸_Óm4²ûq[đ‡ưưËûû}×,¼EóơA{VåĐŸºˆ‰œ®ÎP|Döåg©?9M©ÅÇId?{¤)®ûÊ/ÂđĐ	/\[ ˆ«Jù̉ƒ¹ë[àœf4G>ËÁ̀ÁQ€K ó^ Œm×â¹ †¦›O—Çù -7wê]Ë̀ê„ô<ƯU3jÆ,ÄÉäˆ:“¿Y“µqÅ~ 0³™/¥m‘¬Åµ@C—CÜF€q<·é’y¤xËhúŒơÄ\ô¦0=—RgÝd‘(ơ¼(_đ2’¸ŒØÉÊa³‡_Ä{p·M…T*¡‹0U­”T¶˜Ù!³if$ÔŸÔ(Wâ¤q¥RC:P a3=b²Ñ rK1'-»{ Íö•HèʽHư1Êá'`Ùkϯex¢$’¼.¹h{܆`¤Fé¤z›EĂ0®øc5xfMÑĆä¾}çß¾Sưï•S¦¬œÂÂKÅ]Nëf'ÛpPιS§`BmmH̉v9Ä4ሄ^́m D	$¡˜,€'Ü„ „ṕWÉ­îgØdV/L¶;–ª×MZL­ñơó“ê­µ¢H>{€,ßĂ«·ºÂΘ±ªă×÷Ÿ́¬·Î˜QSo
ÛlÜûùsÉ¿hưùÿ?A¿ˆ2qªÓĐ`ÀƯ5 ƒ€œZ€&*ê“X1L5:Ù6¢ë´öÏ‚+ÙƯßêO]ue·jơƒÅ¨%?ïÛ¼&ÓØÑaW?{ï¢Ë­Ë2[₫}É̉W?Î̃JÄḅ̉Ι›¥kÏ-\»̃b7‰sͬkf&ΛÜfê¹x~¬¿·ń™O-9÷VÚçÎ
”~cˆW"È—y)b\)„2MrW±Ëfˆ;MíóUë7¥ƒ'[¯ÍÀô¹’-c/ö´.¾Ø¾”›æ¨uÙMè₫lŸ&ø.Óơ9ÔÛ) GêÑÚ!Ă!W*	¸60CÑ„#”Üq£ÅçÔørqŸOƯÈKÁZOÎWqù,Æ8̀/XpăđÏíTÉÈ‘±g<>¤)˜‰[J8£o`
;úÔS\ÓSЧ¾Æö“Àá“%†h~đ̀p̀|J˾F~Ḱ=E0Nî¸QƒXßÇ©̃Ç*ç₫Ñç8;D7öQñÑ1ªµQCĂ%
*E‚yëy}ƒ¡ UG?>üI`æ>Æê÷'Ê6<+ƒíÓÄÿ3IṾgƠÏ®yOû•ªQ$WBv®ÛH	vî…¢è[ưÏ	2ÿ+ư£Ê'ÿø6N¸ß†<úÿúÛÇîÉ•¶¦—
‡2”ÿSñå¨9ÿ³X†1 \•┣ûư­̀df>ĂB~¶²ÊƠÍ-ˆ”t>¦W]Ù́p©PrœîZ[±²'ÊåÈ+¤ÆŒâµl†9]ï8qă‚́‚C§é!Œ¶'ë@AA¯OuÿШäª
!?M\…JMÍ­ÍfÇ)«ß•Ë=ơÔÉw?A•N>Ï–ƒË¼}újQ<ÇpÇ ^Îṇ̃(»€}¿±½½1ï„+¿“2ÇàqF²÷4R¾„´iHÄ—îITër8̉Đß^§™Úù!gm­óä>¸Îÿ´Î'á÷Æ̃Ú¸hÑÆEü`­s̀o¹ăÎÚl¾ñ…Û!ơ(9~í¢
‹oĐà₫%#đ)₫~ƃúj$̃@€Ơ”ˆLp½GåOa{é®Íß¿fÎ́Ă©”)°zèªØ”Y×<₫ơ¯ïØñơüưÛ~°ùÏ^ơŸcà̉Ë·sóĐ̃ëæ½ºă·̃ú²ưÂƯ´N•RUâĐ›ƠRÔT”Y%8ÛÀ­¤̣K̀s3Ăq¿d]^©QTb' œÄzx¯)îH´“F̉©P„mUÎZ¼jQ&œX¹ñÆåoŸß<0¸jÉYG¼±Ôzê]‡₫Ù$8cÖÚ&ÖhäyŸƯ¼ơÍwÎ{Ëê9^˜¼æÁsfß¹åm[våƠÀ‚“ĂÓ£!É(ZíAsÈÛ§ÇÎyÁB¼Àü•Œú8RiÔ£B­g6ˆ{ËUm¦’tyW!bpÇ®d
nÅ/ỳ‚áʼ@vÅÓ/©»Ô%Çcư¹—öªŸxñEn’:üå4YĂươ²¼,yZ-ækr¶—úcH&öÇ^È©ÏCº'È®'^T®Ç÷“5ºœîóĐÇê˜r)((Iè̉J™U׌&#€ƯŒ!
+YM.ÿJï«EX^|‚ÂẪL–«w@´Ú¾̣́¡ZsgßYÓæ´ºˆ…ü\ªÑîµxêÔŸ ²Á¿xÓ„µyºư—LïơCyo™…’<ñQÊO$)÷W6¥m%Ư†®rƯ†Ơdơ”™‡Ơ½Ơđ’{¡üO‰b₫pÿ»AE܀ʌ̃gĐÎÎư²ˆ¾¤§ị~ºA¤¼¢™̣ßO"mo*î!ƒÓ[TÀœ̣m¬dHÑT1Ó$…
	ÉPÔ4^̀ûsfcA3·ß,ˆêXA­̣PêbâksîYà†‹	yHˆhưPäÍËâ+b‚W=}¥Óû;¿¾‚µ¨"Z&x<SySVYíÖ&=ª₫4Ÿ¼&‘è1Jä5u~è,Ó¿¤zïeù–g^QB\/¡PÊ„%+p‚re|Pn¥ ¤T’†cZ>?¢çï–ẹV"_[‘çQ©/…5Yăá|±àqI£ö/\§Ó9ö–Óçăăªdi°ÀEBh$ªåv̉ơ ±€…ÓwOL¤ …êĐúfpa
¦,?HógHùf2¬ˆµRbî…²L
v	>̃UÀSo™–°^1/,ˆÄ“¢vc«°Ỵ GmôÀŨÔ~¸AmêzªË?Ç/¦’ÿ4ÔÎ0‰‡yj̀¸pák²î¶2«öH
«ÆeE€RßbéÅÏ/"M
7̣5u²lÂ[ŸdrC‘&YÍÜ&I
`!>pû˜;¦ơåJ-bàÂ--.à´VäMÚÅ4>©¼Fj¿–/î5ÀºÎσ¶¯£²ƒ¢̃t5}Â>C₫*›<'ß÷˜dµæ?,cÂø¾üïdGfëåü¼2̉0wă6óó˜̣L¬h"ÜfơKä¢×̣ÿζp;ƠÇƠǿ϶PƠd¨cÿ©1¾EO‹Ñi¾%ÿö÷ÉŘ(DCäâïW¬·‰ªơVé2„I)ˆTöiĂM›êµøFTÛz¡0ëÁªµù›U¯ơ Sµ₫7V¯ÿ
mBW6;›nYZU¢zSÏTg>(“h……îF"ẫ½Të½·‹¤ñR]çßûLÛ¶™|¦ûLx‡[Ơs,'NU|®€¯¹Eà<ñ4)«R–‹ pß*¸vU#¤gÄĂ*ñg˜̣·jÉ™*=~܃΅A‰SÜưÄ“ÎÍîAJ‚Hwä3@Nur®bw™°È€ÊŒxÀ}[ƒ`đ7º½’‹ø¤Z§ËÊ›tPlh	Ơ³¦L.)NU‚}¿¥¡kqÜ'ØƯvÅéơˆFQr×·úŒ{ˤóS]óZëLùÿ(×@ă*úSfÂ^‚–+uöPe_k#ñ•.É8éÎÉ‚%Ơ ¯,…ª@•›£TK£¤Ñ…º§Ÿ
t`‘ß‘ˆXÔAD;¦‚b†¤|pßAºâ7đ}q̉¿é2
@Yû`Ư~¥îÁµ¶ˆiÔ¬K½û0jŸ÷̉YƠ(
øÛR„úĂÓ~^ˆ¨̉§8ƒ>…è=ăF"ËœA[å‹ÓDqûvQœCîXơ|Zơ‹sO÷…₫	\ä/Íf.ÁÙƠä³F;̀æÿkáPñ•́b‡d³z7ÔeͶ-6‹b²y¶Ø̀bÀaWjnh7YôLáFû!½4ƒÀwßâssFCºnh–̀_0óû…’>á±M½Z²« °̣‡€ïnC휌¬ÄĂ*#5/OöUÑN\(3oÄ@…[7`‹Mg8xÏßg¬e;f\yñ½—|fÖ¤©̃‘¨Û]ëi5®¨q5q&Ö>¹'ºôâóï¼áå°ÑßÙ353éükÏYê­‘œß=WŸ7çâ+΋yx₫IÎe<¬¾“ûÂPĂh±X	aëêv׸‚Ó"ÆùcJcú›oH̀O†Cu]³L5‘®«†ỔÅk““¦đÑ–†ó¦ơ„§]xó¸æ˜~ÿ#ª;!‘̃Û)B58¨/P¬í
ơơHÑF#0‰°B(ôÊṕ}ÑFst̉ÜM|¹ÆlçˆÉ)]tϼ&ƒƯ–™¿,ă™—nt,¶h[ĐäY4Ư¬$wQ×’µ,Ë@‹ÑàÆkå`D”ƒg]rÿ£™·|êüY}ÍVq’wRC*Ô9[o»ÿ©ç§×ÎÜdđX6&Í=ÿâÍ}—íß°À/*Í\Ë”)³ƒÉ5gỌ˜lÓ¦¯¬Ø}ÙÙ1:>OưYÇ̣s(•p6Ÿ‚[‚B/tçˆ*̀ -n:±½
<Цđøè)Èú¬á+̃°~q_}ưäÅëoxt>L®¯ïƒV–
FßÈßG¼@dÎ9ׯ[<ñs/¼í®Û.<7î±đÖsó§B²ÉdïB'·wX‚üœ³Î¿äü³Zéµ£üáW²ÁƠ—Ù>2²½?í2ȳ¯±÷8›ç¬ƠÓ={ớfgcsC³ÜåœƠmăå –ÛÏrâ¾ơe ¾#Œ›‰E>ˆ̣ü45µqo:áJ£Ö́¼X«°^ioº“P,x‹µfµ:/y ñ¼¯n9§VóÑ¥S§7=éº̣îè’u-í\¸%•KåϦUv¶Î¼,»â³€„íÅêZ=Öv›ûâk¯¿¤NÑ*+_§.ưÚŸơÖ»iưÚƒ=w
@¥æl¢m˜röô>ÛO­ÇÊo,VÔ²’×ëÉz&:'ÿ4đÎ5¨Ó…!êƠ9èpI	0@I[ÍPU""©sÙîInv‡R>ñA¸˜É9tæ$ç¨3/«³|k£8y´iî¬E
û“ßøƯc8óÂE×!Qè\Û‚}%Af4́ s*®A8¦‚A³Ø΀Ü>D®=5uw¶ÖơĂºj³ênG
z?2”Qª/I=î˜ÛfưHưè÷4Ånºå“]™æ¾€ˆYmđªG"³É2äPEƯH™Íf¹vZn<—PiA_̉q/³PÉDƠ¿đ	ă¨$$~%NyhrÜOdM\‘-₫ŒmŸ(ˆä@\³º#½„ÔêÆ¼“̉NïçJŸOÔåă>a+ÿ µuJ¨*(%¢FP„JÄW””¥¦½ø–ßđ‘,$)ç÷)åÿ˜ú³’ÿê}×ÿ˜
B\­–àÏ_»ïúÇ₫¾w¥Vé] 0†ÑT¥OCĂQ}è¾ë5±ĐÂâ{Ho*ä™;;ơè‘ÉrǨâêơMÔcå5­ÜăÑ4S
: ´ưMŒ‹îæ›7(kY:멪¸•z̉`ˆgp
›J†stˉư±v'²¡¦eđ̉G^~ä̉Á–içD›»1‘6ºdA Ø@'N đæ±³Ö­N.Öô?Îf²Â…Ü1˜ób•zJư¡±D ́¥V
o@7R@6<À₫%IF©Ø0êmj=
[}N‰ẩüÛ¤57¹ÿp̣©yŒÄv4@<mĐ­á¿Á9TẠ̊p?ÚR7úú¥0̉›´ÚQÏG¸[j„¬ĐÈßÙÍziß÷·b“´ú~ƒđ/)wC?â±ï	רa¥-/C®n“™û.Ä•ÛHj63¨€’иpø‘“KrhëÏÏÂîX–êIçÆjß
¿‚o­è1ÁÅ9
ŸfÔ\~Ú:-¦ÔÑ“K 4©±7BYÍö‰̀†y%›DC~e“èmÀ̃@Ñ]Ñúÿ%Àr₫©ÖÙs4T®	™Åâ®ĐóÖG-âUgơ>ÏíûH‚OpVÖB́Â]ô{9&ÿ^6¹|Đm’ơå_PLLI7Ç’¦iÊ®ơé"'T	}Æăï? 4»ó¹›…|‡¦[FÇ­útu/Ù_y;Z”¼?Û£H†K®0Wz¤èc#¤ÙÙĐ)€~.rÁÄ¥+ÊB‰°±&J°“ƒG 0ùË[ưĐäÙü‘.Ρ́r·ŸO³kƯ;VC•‰ oX¨ úÍöKÛSß³ër¶t‚åí²í„:z‚X\±úxm‹ÛJhÿ™x¸đĐN÷ÇhÛ5¯¥Kè`…;ydp.Ec›4²XD<-´llµÛip.»^ØâpƠ×:
Ùu/î»öü™.«ÅY[ïrl¯_æ4¸ă½ÉkzÎ$~Dq…]7/T_<赈¼¥̃ă4K§$đÆ–˜ÿ ™»đ&w“«öä·
†©S¡¸7ÿÿµ|K‹^üø›â¯7íMsMGưáùçÿ°èhÇĂw”…¹Ăă¢´0]?²´˜fjaÍ5ai–Цè6C¼2ôno•¤“Ơf ́=ñ–)ơd^Ëÿûövï	qNcăÔ´û₫‹l=uÙá́]?;¡fâù-EƠ~ä́öáÏnÏvøƠ}5¸Ï×%»ë¾÷ưú–́èOƠ»³dë¿=„Z%v¹è Ó³Đ
n¯K— u Đ̀“*J¦„ê#1äh„u1HŕĐ	o»ư}ÿ”ơơSZâu=¶‹îw§;¦nÏ—UØï‚Äăä•ü` FƯçïȶŸ½En?»¥₫ûß«k&»¢ÍÙl9 YơîŸúíd«†gAâĂ8NSGáê³ÊDŸ09M‘AK{̃€K3Ư„­ª[_]’%W4zÖÛˆu9é\~åúåën3ÔÉê~ñÉzir–„ñé
Ååô¨“X3kâ`PsÄêøÜÊüâ’nÇåïÚ=mùºÁ]‹ÔƒJËks„ÍóTÓ9d™̉ơeYN`}¯/û]U#Æób˜;R̀¨“ĐÀt,¢ÚlŸh*ö¢×#JB+
(´¡iGx\}~IÖ³F·Ưv@T÷Ëu†ÛÖ­¸êJ¨Ú
±­÷̀ÿœĂ
@-Lœ™¨áwäzĂY§îg—”úÓâw‰`wx-ù¿Øö´(dÙ¢]ƒ×ÉÛFÏ3_÷øXcY’mQÔƒçßWæb¤-©ĐF¡êKơ5Ơd-0bƒâ¨çƒ—֨“T+æ‘_ïZ„xÜcËÿĐj*`ûûåˆ}|xâ~¸LÇF*ÚS*oêŸMتêA­Íó–²ưîT1pÇ7µ1?‹Rt>éó»¶R'"ú‹ÀäÆÁEÂyÓ)oƒP7”æ‚Å%«ËÀ$rĂvơ¬
QŸ¿û½eE”ÇăØç”+½»nùzlƯåVlƯFrktÉÖ'µ¦'?R®„'ZƒCEƠI§Ky»	gaÎö0₫‹ü¡^áê} pE;…ơKq{̉áT/ù?ïi"%íÆ̃1Î̃’ÿbñ-̃Ô¾qÆ›̀˵ƒÛ+ ¢8Æ]ÀÊrI¸Üú”Ú£V•{¬dȪÍœ¹\è•AÍôÓQĐvOÄSƠơ]0.ÛêúN΅X9s¹Ơv¡b?OE~ÚFPU}o[YîKårÀéÖđñA¹Ằ“U%‡§7D€w
ưêöˆqÔbá/í‘hÈ
íáAÙ±‘hPbQØ“JB8ƠIºä?áI%=ÅX‘tÜO¥;¹(P‘hºĹd£Ñ
S •'hÿƯ±Ÿ>|₫ùÿT»‘¬ÜV?Ù,O•Ưç"\`ª7‰ƠăíÁ.‹2ĐçƯ>Îæ¹Dá²Í
fÎÖm•g;œ-íö„̀CŒ'œ¥Öéu¹,»¡¥Î z—A`-ÇÙ¼¼Á$Öxvc“Ăk2·¦[x–p\cÚbüí“l΀ƯihµsµœÙivđaĂ›ĂêM,gĨlñÁMà–zÓܳ›7JṽÔÙÀË‘V‡RWÏ‹N³•ƯäoÎ4‰(Ú-„µXB^̉Cl&Vnô±nŸ¿¾Án D4[k6³†›́N×&µº}f§“3Y¼QwĐ@$“U$(Ǫo¶:-üZG¼…#&‹Å†/…}–?ÄßN}Æ¥¼‚7íA!M´àühöøW>£æï?iX²pÊưùr›¼A–Ù¡àb₫öó?uϱ›Î¹³-hñäØíëå6;»êSÿBơ#/‚µé@Ñ¿J	Æé₫
!%Q­)”ÀDq:{JI^̃‘Ë¡ơPY7UGçÊ(ÂÀ¼Ÿö¡h³?Hmÿ¬ÈÑævREˆíHôçÔ=ÜN`P)QœŸ¥æ€G9®ÓFM‡ÖSáMG§ơ@2¤E‰$Q
µ$Çs±~ä’TkNµ"×9®Ơ†8ûcêF¤ñ^ê"?+GÙ 
^÷*¦¼gUlFVxªÚU™poC¨°.XCƵ׵͉×qï‚Kê[¯k[¯ăöK—(lÀ;ö
ºÓ¡ínè%^ñRÔj­,$)§ ø·Ế1‹‚n.¿ßG÷:CĐïfÓ(ßñ,˜íĐ;„Ä´©ôR—¿Fë_~đÎă^øø;¼ó¥Ơ«¿D¾ô;6|/jGGSSG„›G’ÓļD¬ñzbRï¤/X?½ñûĂíñUÚÇp14u˜$`¾ß[ßœH47ơ7Ị~¥‰~Iÿrêß™sùù#èŸ6ŒÛ+‘h„ºe€Ẉ6@wK“̀¸h6,	‡1Cµ"à‡·æ©Ú=­mÎèñe°ẠÓóŒâ–=¾àôî@“z—ÜĐĐá²	¦s̉óls³]ô;kklµêÓr¬^"sƒ¡é’Ü>Ơ&Ơ„¬-[×ß{ÅJỉ´9[‚Ưµ³È©¹-ç]±d̃¢µ²c̉µAnµÛ¹ƒägç}ê’‡¼»6hTï–ëüÉ–´?3sÚƯ^k­úŒLêcYˆ1ëZ²´n[÷¥ƒbƯ´¾E߆ŒçƠ¤Íw¬ºàk3Ôf™•åˆ>†₫ÿfMäƠD‚è…Ơ ¸aåñDđé~}&ö¬Á@¼£5ugn¨›OÈ¢<¹­'`&bÓ¬¼±-6à÷®;ƒÁX÷"‘d*²a¡w̉ü̃Y”¦´vÖÔt·L³đ¦Xë¬Ö¸kñUß©ø­ü·aîèÔ=HR_Ă@¦£Ä+j“2—öT*‰Â£è%́Ó/͸oƤ ¿±Óyá‡ê
£—»î›1ƒÔ9/7›  ₫~Æ7áưŒ´_“ÛùoĂÓêÖ+‚₫$Dü̉¯s̃IH:çr£	ƒđ	¤yiF:Ưå¸đïäv÷ËưÀ(Œ¿d®O":¦ omØÿǺdM”8å̉;¤Z9uêÊ©üHCg\›K/*‰ưÔ™g*¾-óIèÑö—±¢ˆ_ÁE¢œ‹RqîR'û[¥fơ?GƠU½Ao‘vb	A$ÿeơ]¹Ơ/‡Ô¿ª£o©?|ƒỖQâm–4™G¢Œƒ7ñG™83Ú3+
¼74‡z*)¡$Ư‹JÀØpDµî“Núj5pĐq¾·“eDf/̉Î>ÎÛü‰è´à”%é–Ăg‡Wµø¸{…Uóë:g,ên¯¸l²¿µU‘\ŸÏt™'Ö¬ñ%̉üÑE‚«}ạ̀Ííu¢úC›èꘒÍܻߺp±}UË+^b'‹’¯«o(5gă¼VĂBƠIœ¼äOEüm>·ÑÀ½©₫€5yzgö†}úÁ¥ÜüA”©P-øP/ú€̃«́„̣ Ơ6̀)¡x5/t;1p“1”L º9ơAܳ|÷êƯÑ)ưµáåîX]mûókFEéH/ñ4}:¸,oLMªọ®»6]YăMó5¢Ëê0u[›ßỷ«ˆfVêh¾˜?¸ä̃E-A§_iï«ßƯj²ñ
Ô.
6|̃å5’`#ÏƠZ-÷svÁfq˜ÓŸ›íês·Í>¢ăÚwêÿ î7C—å{	A“ú…̉Ö]B¾ëƠîz,i÷H'dù„äávÚ?’`E‡•
üx,‡öm±¸z‡`ÍF[ïê2aơv‰hp™%(Ồ’öü¾Ê‚ÉưÙ5Ô¦;GÚÑh”í¥²³¹\̃y";|"«ÙÊ–©rx‚zËsèP‰HCT×v¨P$…éơly}‡iyhvMCù…r)Ư#Ăx®›¿-Ü.(ót%fu»ôÊ€(Û…eÁ•UU–oâ²
¥p´ÔqeÑˡ啗¥ṣy¸iº	X–æk¥`É>£X¯@2Pø¯.
¨2ÍŒ>«n„|‘Ê,/4—£Ô₫}Ậ ®đ?Aí¸&ÍJŸ†Åær§+­đĂÉñCV“]{è́ZÍ0-	úùA=–ä
Fø®$ë+”Óöñ%U¸Zy¢­Ẫ—°Ù²RƠ
·Bƒº)¿÷¥âwT8úÁ(áaÙûRÁΣ*-Àª—ÆÙs€r5v
êÿ!^tZ:/ÇK,'±ÂêF

9€»=ăÚæGˆ<§¸CíÑu“"$º-¾î²F÷óS2ç(óÉF
0Q©Ü+XđwÈ,»]=b÷h[qB‹QI’
₫§ú;)"ÁÅŒÓ9Ü̉2ăô6Ăr?çÓ}lVÇ=b¸[˜µ£j¯¢4€Az”ó™Œ÷KÚkQ?TÿÂ[%“É$°K¢Qơ-¯Ñl_@l/	&;ÿ˜É́°¨ËDrª?P_d£E1ư~ưz—â^Iº~b°÷§ÔrÜè¼e¡u¼f¹­P•/ÍƠº#ÜEÿ+S\́G‡-ØR4¨«	‘S®óÖS®óVä¿‘;ÎÈ*`ßG¸é*5'Çäûd™Lº
˜¯ÿ~¤ÚÆê	à…5¯”F̉Æhb` 
½êœú³Â4€ư[b$~¿Gç£NÏAX$̣Û÷ß~ô‚}[»‘Wß}åê«_Á‹zĂ—6mú̉&~Oñ%̃æj/árÍ&|_SˆÆ̉yă<ç-â*LÏ›ø«Û,©·JQ›z»Í¤œđ«·£ÙÂÉçÑ|’V|GVW~öËÍz	·ưê¨
àH ¯œ†ó³¨EÉ	¤º²Yîn‘¢çH4ûr7P?99­Îæß¡|O-µ·5³	²%ă4µ	dzêO/4ùL_Pså’TÔ>¿LQ›ÄD(ú˜ÚôùJ8̣ÿFµÏ+)jCb
›MuØ2Xc8$ñt°}œ&§@€«Qr¼-ÚÜÖ¤₫ÎU_o6ÇƠËq7ơP1êˤ+ÎÛ¾rc6ªI
ë\ ê(*v´2¼4Uc(Aü ̀£9ú3öŒæ]Çz÷Øü»­;0'¡=äÛÑ*,e5Ơ6ª»VÔa,̀qh̀*ôë²P@wȬ°G²¸/ÓOÖj÷|̀FImÇ	#Pzë;J¨wÊ} < ‘úŸÀzTút‡ˆ~£`ÂȱGP%;?®5(̃(u¨”#”ÇÈvƠIÈñí#9,?Gù¡¬b4K]ưQgÔŸ]̉E[àphʯ§‡ÛG›¡à+` ÜÄĘp ?Å@á>!Ú}"
Í̉½¸Êr=ÔCÀD5ï 62¾¦ZYêèå?à׳ÖiđËA¨‹
T(øEU•Ju³;"}©ØƠº#–ê‹Lˆc¨äÊéÓ—£Vạ̈éÓW₫Oû›&ÙCIÔ™úÛÇu8*çƒQæçađQ^*z(¨L­|JÓ‡½^f©p1¿ûơ„0À4~œCˆ³Ux¨Î*rV²*N9Ï€„׳¯Pđú„Å«sñÜp¶ˆœ_LŒ‰̣Íá3ÙZ"}ˆ&ÓrôO¿|lơêÇ~©ƯÈk¿C¾/Wj><ËüSÅxÔÀåMêbS“¯–—úg(]½J(Z#Ÿ†x©\$OC6¿8-àf:{êƒS̉³è¨oư4:œÓËÜ)¥ËWb¼"uÅiu·h~½dăÊé́%û¯¯ƠB±ûóAM
sÍâÙWH.gvÿ%ùç4ư–ăvø+¸œ§đ=¿
đƠSêG‡Ï‹jWHWÀæçu>…–[ÿB{[çuûɶsƠ;la›z›iñƠƯWß­Ô\z½ÆåCđäƒÛÖ|¥\f·«Ÿ×te¿º&ÿ¹ß•+Bưk«è/t¿
ÏCM„	/@SĂ>Tm
±G`vú`?₫ª£ô₫ÙGÆ(Ù,zb"Ơçđe¶¸üÃ×Ãiàÿ»´7ĐÓéQÁ¨R<Æ"i X ¶:¸IÜ‹(a‡V¾öœúă¦Ëç§;4Réù—ó]}—Ïœ́^₫á«Ï1ÜvîÔµ₫Úù—7œÔÊ=Ùpù|§[Jοœeíµ{)­eÜüƯü#Œƒief0ó™KđJâq²"*öF#¬(©¸GjJFhŒ¸‡Xè#ш·âµ£ñƯk¾—5EÔR¤PÍ΋ă†	^p C©eoÿêíe…€:•ç¯{6ÈÛ¬Íï5ÔÍs‘ÅÆ™8‹XÏK6×đV[ç=çÙ}V+ÿhͧ×ÀßJŒ›lÑâŒZZ›5ÈßW‘‰±”;®₫Tưé†e«V-Û@ÚH†êIđÙë¬ÎD<Í™[Ç)ÖÍÀßÏÖl^bĂXẹÙNN±„¬"K]£@Œƒ×b©Ë?.æH÷H
gzXaÆđĐÙ’Aîˆ}MO¦eưXÂüH§Nr ĐóÚŸW¨;ñhtñ»gttOöyu3=–Âü*פî̀åØ¿ C ÂFGsh9JîͽZ°-”k‚’]L-Ơ~hÎii¡.ê49ÍQr5¦ñ½I,VƯ“ÿ…^jf”»_}Ô,“í¬Q6?̀5åÿNVçÁÏƠ
̃˪YÙœN›å%ezËÜqƨï>ÁZè
 “NtñÓ1 aƠ%₫=è yÏh̃™««
H¸Á—ËJZö?ư	h½vrœkÊÁ@åmÍY`®^insđêF\”*ö|Lœz!/?·)(“0Éâ
MS4(È—hđØ{²º™’æñ-î'×hæ‰ëoê7ûcC̉Ê?‹6²âñ’²'|ubˆƠ£@´₫̀!³bưĂ™¡¡ü»Đf{tzø…1ỦA?=Œ@œáá	t%˜ä•‰À̀åiu“[
ṆÈiáD±ˆGƯT@:Ïp<ü(ơcÓXéÉÆUm2Úϱ7z›ÚỌíM^öFÏ´YUfwGsüÁ“#‘t:Â/‰ªƒ•¶Îå~±Os̃]µÇF×ÿÏçƯ‘¯(úü(^È‹Á±?Lû$ÀSʽ…WzT>ḿ'_§‚údŒ®ĐÔç:¥Ä5®Lh;¯H7ÜWgzêgÄZÆÆZb3ê{2d5Jj¦Ä9̃c+ăù‘\vqzç²DbÙÎôb ©Æ¶g ù"l@צpæQB½bưÛS Qí>€“+d	p²¾î%}¯L!“™ƒ‡̣çcdwHo˜¸Ææ×p€x(T́¾pÄèxî¿ßp#ê:dvQ
qŸdAđQFdÜL³¦K¤m̉PRËí
¤pU?̣lĂëÖ
¯ûzg°-ª‰¶…ÔjPÙî©b·ùG×aRơ¿ú&^qÅàä>uÓ8¤•p&ĂӮф
¤`íMGSŸ®¡®óÙܵao°ñă¡ÜWÜ›Z´aĂ¢̀ÙŸƯ°·V5ŸÊR¿s2NX	ÛqGB	 ¾O “ÊK̉géôđÀÀBW₫ư)Sg\ơÙùêÓ¡läË÷ö]zöÀ<ß²o-_₫å-ø±›ÆA£ŸKMqÓ­!´Ă¦Si­gyñüư¿ÄÛ°]Kû;SêÆT'ă©ókPqÉæeêÆe›7cZT{~*‡7‹bê\H…?đjÙµl3•P
œïĐ¾wïT2²đjY;Ö)ºl
DËueytOTøïÚjö¡üñU¶H­í¨úœXögɬ,ơW´ÉÏ¢^ÚÂu¶¡![]Øv”Fèç”|
ă®QGá¬h`(¨#	ƒR¼'5X©D§̀Q ÊqMË6gûc'bưúu³:'—ôÿ™®H(„?¸yƠµ¥ú¶Ë6£~.̣e¨¬[n	¸ªÿ*€±U«yZsĂt 9ï‹›¸R!GÙư·©ù“MM$Úxz€¬$]êÓ{ĐĂL<ü}ùç4̃ÆàJZƠơê~̉MVŒƠ•hy× >@u»Êí
å…î+³¿Æèôơ]áß2FqO8jü–Ñ¥°WCÿ»Qqíˤërw®‹.Ếä„«¾̃¥\ơ_´úü§ăôöy¶\O¿nÔ)IÍKGR§êHÅq”¸ÜIÚÑÅ.
d+u@Ï´ơÓ ê¾k–ÙŤ}9¥êT«v6ö*x¤g¶e7?—™Ă¬Ô}ơS§éƠ-đ íAUÛü‚íOMlJ
ƠpÛíƠªƯ§üîƠŸYw–Ơéhœi6û\fAöZc,·rjFœTå‚ĐMj8kOë«51‹₫T»¼ưqW½_ÙnéØ`•7®%³K«èÜéWÜs–d0‚á:»Ñ`´¶OX•̃ù̉s$ă4¼?:ÿSI1¢¢W-¾Pr}ê²£§9ơ.Ôû& P™^f
³8(ºW¡I¢ĂÛ`¬¢`@5a}ˆzµêi₫V ¾p„²PÔ½+:–£d\jĂ"=üa€j£đ­ä)W§Ô$qö{ÇÚÖÍœ×p)—Vüơ®|£7hj¬Íöâ—³ơ»¥Éâ$·Lëè˜Ö¡Ê9›\öúÚn[ ±¤k{lG‹‰Ä.m„m~ÇT—ÀºE‹Ûù¡ÑbÈ­¶m¹`
»—ẉnyæP&—:P¯LJØí–YúéÀŒƠ_îp™NW¨‰›zVÛ́S׃]7ÖƠEÚd“%i¸ç™¬|ñ¾úèÙ̀EÔWMÁ“™7râ
À̃HB¨´Ë6₫`UG¹ZˆæÎ
ø9 N2l2ƯÛÉ…HY˜½(Å—̉ÔÙiwœ½Ư“[ữ`ªcZ¨–R;Yz=Tr̉vH₫9ëc.¡Ö²êGä̉º6»*pƠüÎ…'»[â‹:ú/˜̉ªXØ¥œ´CYÑ…Mñ˜Öt̀Đ-'º]£n,{@üđcø˜Ob¸₫æ₫ÂIÑN‡.”xÁN¹F9ëÊë›Nÿ­Kóß[º£̃XÓr=ÛôéWÎmó°Ư°Æ¦ØY+¾Ê?sưJơ¢Ä×g̀XµuËPư¹¯%È—V^¿Ûéè[­ù‹ ··ô„ÔWˆ ¯;éúWæ
³xv±iÈ/‡×XS3±åȼ”2¬¤÷Ô©Z¾ÁÛf×2Ôå/ỵÉÏ?ñí»ä8đ®M@ÓQÔÎ*Ë„ÂưÈö¡¡íCäXùk¢÷²?MzTy?±àƠZËĂYu׳)ÿăé]Í•ßô1–-ă—₫aÿ7jô‚~”ÍÄá
.dăÄá
»
–Ä'Ó·½¸§º“VÔøz£tXK₫Ù2k̀¹d?¢§z‚§úz¥´ÙKŒ.º>,¡¸BZ¦¿`q„—'ºk–Hèqy¢û°æ¤5¯¾j>aÇÅÅ\CÙƠ#ÊçH;#pÇø½Đ7lº4¿}”ÖIR¸7Œ„°̃0§ûœđ$ấ=«VÁ¿úÑö‘í#́¸ä_.Ñvª…sđ{g>ƒÁh!­îÚA·b¹/p7¼Đî™=Üz—Á©¾mi”%—ÍŸ3)^Oj¼<_ăU¶NY63dsIr£™´8E—jñ¬ßư®Uđ´„*Ï
33Ï|v¾ăè;ÔÛOÆéB@ñù,—ü,ŸÑ\cwd}6k.uØk̀F9₫±'̀ä2Đ6D]e±‘xÜG¾J³K.×½}†ñS«†$ƒ@t";2É©ê¹*¤”ŒÛ4§Ü1_ƒäxơ7³ƠQ§bj´Xˆ£§ß9›„§ÚQơ½;®#Ï{9†Ôe¼I
-́å¥br	B<̃Ö9̣dpzœÜIVªûóÿQ:l„+ëséiƠ#=Ñ́T¬đ¬+R˜Ñ(ªâM̃DC$â
¹Êaç̀±	êONgÄj19˜¶›ÍÄÜgqXkè„}F«Åèđùd¢¤×Ö̉c¶G“,µæå&—Ó.Øâ˜.^É·wwcƒ>ÀE´_]3ûUˆ±|ăt{JƠfªçª‚u_ù.º\ÿº₫*êö²W•=̀Å}ÔlNçƠo+^®ïßV̀£îé‘	vØP£>~†‚s¢¦T¶jWz~_¶¤o‡gSĐ}-­üDñTd‚Ư-TÀAaÈêYfµ²˜Ç3,PATcm²Ú
Ơ¼4gă¸}‚½•màE$B„w¢Åª8Ü>«¬9–ä‘́¸JWâ©°O¥ơ/9ÿPªJCÉXA{,™@c,tEJ¯ËTÈj½¾9́•8QÊñ•Óơ&¨ äHŸ ₫PÁl~K%Æù1€¾Ñ»¹
ü-èeÈDzxN›»Xuz’Ư.9½ä}‰MÂc&œ:¯ê”Z5¿ăÓ™8·ø%ƠµƠ½øm³˜¼ïomơCBö:ĐäÖá‡l´ï˜8™ÎßÄí¤~óËܦ¢E²¿j•T§ßÁí¤YH˜Yá»vønƒV^IN]]ÂåCXkg#ÅscÀSûˆB’$‰Ă=’$ªkø}cG¹&ö÷/¨ßzç»ß}çä¿çÊÆµ_îÑv6<7¸½ư´IVGG™úg*lôŸ\RXS²T‹‹®)ÙÂEî¤Ê%Y uôóÁ~Q~>X¤¸ˆÏĐ…±Ö`9ÓW‚“k*‡@_ƠpM¸]0¦*ƒ%ăaÀ“3XíŒK¹Mü|ô{†£FÔ”»ƒú‘
́·¾d7[Ơṇ¦Ơlÿ’ͬÆD‘üǛÏ÷@¤Úmơ˜ÈÏñ8‹Ÿ›°e ¯cżô#gH›ĐÄdd@~.j̀lĂlÉ›äeRcxîÈä((	Íí™K™Ïm¼êïGëX”A7¾×Sơ·µ@[lÚ×.%ÈëæƠ£nMDsˆ]n€_Qî·• Ú5Ài?zûÔGüTèG3²¦T@e	èi´×,ˆƒ°r¸
O2<°Đè•é̉l+³À°/,Á–%‰¹­m²à ¼ÓÛXØn›|–E›¶÷]˜ˆ¢lĂ­™ôœÆÏ[m<’|#¹z×+„5ˆ¢ 7&\5Sô-˜{₫üAEß×^Ù¸́¬t“KäÂËέßçMñ©^rq]‚îFm̃C%2₫„vJ̉đ)W-Î}OM"`Ơ9l²+́=…%"«çë£ó­Ṭ˜'8ÂzH3Q̉ßûÑ©ùÝP~V¶‘زèNí¼ÍÜ7ƠđÄÛ›¿ ëÎ₫?w1ê×xÚc`d```ḍÍ?̀Ïoó•AeP„áBYñtư?đÿÖ;¬"@.HcèxÚc`d``ùß
&ÿ]a½ĂA‹_xÚ}S½JAƠS<‘`ŒÚÙ‹«‹€ÚùÂb)6âˆ>@DÈÄ"èX\o“ !‡­ß́ι{Çé,_¾Ùoçgg“˜gÚ ˜¹#J†VYp>uC4Ó&*Ù<=$Œ́đ¾g9ÓW@.0Ÿ¢qệ‡ú- ơñüêñÛ;Æ:pt"HUåeèܾ5äƠçüVg(÷[Aăx­9ÏƯ!Ö̃´÷EMŸêß—ï4₫N†&Ó×đwj³t₫™³ÔeσèLpŒ>w‘ï†ơ>GàÙpfz`Í|´̃âü^ªaÙżø>äŒÇđ¶)Ço©o¥²‚MÜg+Rm¹RqÑí,÷«‹RJ¹à1—ÔƠX‰TªäN7t‹{I–E—\îFÿë8ăU
ºÉ̀mbÍù:f—N±&’ưj9̀YxÚc``Đ‚ÂM/^0úáK˜Ø˜”˜ê˜Ú˜Ö0=avcÎcîa>ÂÂÁbĒIJˆåkë.¶"¶/́
́ͧ8ä8’8öqq¶pnă¼Ç¥ÁåĂ5…ë·w÷)^-̃8̃
||||[ø5ø—ñ?˜ °JPK°Lp›—…PĐa)áá"Z"WDmDWˆc3KÛ öOÏ~•ư/‡‡cLuNN+œ̃9K8;9—9/p>å"à’à²Îå›k”ë676··-nßÜÍÜËÜ·¹óó0̣đóẸ̀hó8ă)äiáçÙâ¹Ê‹ÉKÏ+Ÿsª9§@.xÚ­’½NAÇÿw ‘h‘„Âê
/‡"‚TÆDñ#J$–ṛqr|è!'‰Oá3ØØXøFÁ̃§°0₫wY …1̃fg;73;3»Âx†ñE0C€q=ç®Ëæq£XÇ4î°‹GÅA$ñ©x×ZBñ8Úƒâ	DµwÅ!̣‡âÌéaÅSä¸âùXñ¢úw¯°ôÛ.¿0«?ù¾o–ƯN³âغgÚÖÑ@\ÂA´`àsbˆ“
ük`§¨sƯ¡}›,́«0©YƒËaDđä®ÈµÈµMyFËMváYd°ÅS÷±‡í2Œå¢Äé0~™>´/ăqJŒG
ịô<ử#cưŒ´0ë·C~G²ÿ²ƒ9eeKv«¯­Đ²[Ú·{&V(Ó¨1j•1…M‰Zqr7±,gKÜ¥₫Xåè›­ơå0éị́–›̀ÛQY{Ô
ªư›MY˜¹Đ¶z=ÉË×a°:[jEƯ¢Ÿ	¬²BŹZÿ=nôüs¸`Í+oÍưỒxÚmƠU”SgFá́ƒ§BƯ]óưÉ9Iê$uw÷-J;m©»»Pwwwwwwww˜lîµ²̃•‹³ó]<3)e¥®×¿7—Ré^üÎèVêVê_@÷̉$zĐ“^ô¦ÓĐ—~ôgÄ`†0mé[¦czf`(3233³2³3s2s3ó2ó³²³‹²‹³e‚D…*95ê4X’¥XeX–åX†1œ4i±+²+³
«²«³k²k³ë²ë³²³	›²›³[²[³
Û²Û3’QŒfvd;1–qŒgg&°»̉ÉńÎLdOöboöa_öcà@â`áPăpàHâháXăxNàDNâdNa§r§sgrgsçrçsrs	—r—sWrWs
×r×s7r7s·r·swrws÷r÷ọ́ọ́óỌOóỊ̈Ïó/̣/ó
¯̣¯óọoóị̈ïọ́ó	Ỵ̈Ÿó_̣_ó
ß̣ßó?̣?ó¿̣¿ọ́óÿf¥Œ,˺eƯ³YϬWÖ;ë“M“ơÍúeư³ÙÀlP68̉s䘉ăGE{R¯Î±£Ëạ̊”Mạ̊Ô
7¹·êænáÖܺÛp;Ú›ZíÍ[Ư›Ƶ?ѵ•Öµykx×~yÑj?\3V+wE×ô¸¦Ç5=ªéQMjzTÓ£å(»vÂN؉ªk/́…½°ö’½d/ÙKö’½d/ÙKö’½d¯b¯b¯b¯b¯b¯b¯b¯b¯b¯b¯j¯j¯j¯j¯j¯j¯j¯j¯j¯j/·—ÛËíåör{¹½Ü^n/·—Û+́v
;…ÂNa§°SØ)́ỐÔ¼«f¯f¯f¯f¯f¯f¯f¯f¯n¯n¯n¯n¯n¯n¯n¯n¯n¯n¯a¯a¯a¯a¯a¯a¯a¯Ñî…îC÷¡ûhÿQÑÜ-Ü©ÏƠƯö¡ÿĐè?ôúư‡₫Cÿ¡ÿĐè?ôúư‡₫Cÿ¡ÿĐè?ôúư‡₫Cÿ¡ÿĐè?ôúư‡₫Cÿ¡ÿĐè?ôúƯ‡îC÷¡ûĐ}è>tºƯ‡îC÷¡ûĐ}öôúư‡₫Cÿ¡ÿĐè?ôúư‡₫Cÿ¡ÿĐè?ôúư‡₫Cÿ¡ÿĐè?ôúư‡₫Cÿ¡ÿĐè?ôú©îvíNjÿHM̃p“[q«nî®Ïë?é?é?é?é?é?é?é>é>é=é<é<é<é<é<é:é:é:é:é:é:é:U¦>ï÷ë:é:é:é:é:é:é:é:ù=é;é;é;é;é;é;é;é;é;é;é;é;µ}·ê­VÏÎhåS¦èèø·ªÙoTPĂbootstrap-sass-3.3.5.1/assets/fonts/bootstrap/glyphicons-halflings-regular.woff20000644000004100000410000004315412556335206030113 0ustar  www-datawww-datawOF2Fl±\F	M?FFTM `Œr
‚©$åe6$†t„0 ‡"•Q?webfeŒ5́˜€ó@ Â?₫¾
Úöˆ ¬töÿŸ” †ŒÁ“ÇØÜ,3+2q
ËF®YÓ&>±é±b̉m¤5ZæH$±ªYœ½{́H	jd†Ơ‰ü²%÷¹Ù§y"§÷ö×+@¹Œ]½«eŸû{ú̉ûv Nc‹)»nù“É?~?è¤ḥÿ_ç&iÆÊÈÑÁ¤‹?º>üå^K ûv´-cÛ1íô€‰2K áy·ơ,'nä«à(đ3EwiàB‚ &©ÿéÎT´lhØ0M̉ØÚ̉†dåYØrñﲬ³ntĩ]Ưyur•´¼®û™îVXsj¡¢ågMnªÓ™HW•©ĂÔ r2ô>iT`V7¸ÍR(±¨ÉÏàÿ+ o6ó'cÅÈB°æë4ç·ÖιƯ‡ƒ‹ă¿®T	]a[Qd<3wq8,…îrTI¡8á0>E¸?ù*E¨ç—¦•#Ïú7'́Ưư†S	ocûÊ·í_‹7&#*Ñ+)½³ Đ+4a°A6¶cŒçy±Ù£†f(bFéæäÿé´$;{ YAĂ1vP-tGøÿŒáÀ±Í"û°•ÛCÂf- W‚÷®Ô™ÎuKÖ°Kă#­íä¬Ö*K†<Ûü (ÑßëÔ÷×ÿZ₫`Ù«åµ[—%êYT¬{%¯É$ˆ­ s{oïíœ̣ˆƒƠ»ïvt"pàœ4`ÈêߩϤ}o`ă³Ưú'neÜ>
äG5szó_Nó
’PKÓ¦vmŨɾ{z½Ụ̈îóÿŸøøŒ‡"3`l
’–W#Ô½^@+,c¹Éko©AOpnuµ§Ôzó–zJ)ơÜÎ¥÷˜Û1Ç}ááÿO=̃­¶€x¾RÆÄ`ÁJ‰`§qƒ¥‚Us/¿+øk̉vÇ1xlƯßçjl–Eĺ\nDŒÈĂÆ¶¯V†±æÿĐjg›{Zdå‰z75ÿß!xmÂ5oÂ[½¿uïû&·¯1Ú‚HBkAấqrêÎRÄ
£·°(\ghôÈ7‰́̉y=†HµZóUPhéĐ$8RgÓÄ€zÂgÍ­ÉN:‹à1u¬$Ü…¯¤¡>Rư]åú—¦¬"Ÿôf7¼—ơK¯^'˜ªë½3“+E/¼Ä^‰YU5]¨NB.̃Ê‹¥̉8ßÅ+ÎÍ8ù,|‰{M|ŒAåua|Đaˆ’́ỠË…Ơ%
lKG¢Pí,NuæÜÔk₫cï8mX@ÚÓdÿ̀˜?ñüÚó¢çYÓ&Ï₫{êö”ø³ÇÏ?ÛPÜ(®G]¶¿ÏÆä¯äOää·ä×ä—är-¹’\LFÉ9—,&§“yä8r¬û´û3÷ÜŸ¸?p¿ï>ê~Ûưºûsèäÿ‹Đ¢ÓDǤzó1ú¡?\U5q=­ÙtÑzÔ’†&Znj¢%émM´"}¼‰Ötk̃Dºwh¢-=ÿm¢½Bíéơ76ñô®ƒ&:̉»Éqt"Ö1:“¬ëĐ•¬©u;ô"K_¡/JdÖc0–l²ơ0²Å'^B¶ù8VC¶Ơzg°²½¬[ ;Êúd́
ÙYÖbȃu‡¼©u;œ@*}y‰|.©¬'C>\g=̣9àVëů·[o†|gđ ơ^¶>üd¼
9­ÏÇûäîØÅø”
*E|A¥ă*M­[ă[*mOÜßQéz?PénƯ?R)YÁoT&[ÏU*‹•5ÀSÙMB₫́¡¥đ[³
­„ßoYDh­Ơ{́Ñ,}1f?›«“NNœ¢	]ÔO/^;\ÚÂJÊ
ÏBÇEsJrª ÄơÆ'̣…g/ăăÑB%Ÿ¡o Cơêºn•7‹Ü:|ơyƒKt²&÷$§Øs¯|¹ơwPˆùÄ\i]¾$Z@+Í¶¶Ơ€90x]»r¸­%¾ÈƠ+öRU¬Em‡+ܰª£;w u¬À9/I¼Ô7È7Ơ¦¹Q₫lu\¦yĐW‹N)ë8‰Ü°vYî*u´m”¡±¿éâ©âºm(	fÊE½̣ÿG8²¢j#I¬½R̀ùz#q¸ß·ß	„)Y ×$‹áĐ›†c_%¿m-{!0-`;áå…¬ñhyVơäÁ]Hv!	Ïta½\KïÅ¥[̀1{"çj 6@́–3T0%¥¿éΘ"ÇÔ™ÆZI†Gä›S“÷‚.³ÄΣpÆÓ¬SÆ1eéûÙ“ÄØ›ùYÁÿv»8d±\±B¡l¡Sû₫R)̉Ó†çù¯–®€{IÓ†ổ%”¯>û0ĐÚ¦³\đ'”cg½2%4 QD¡
0Í’3B²"ÉMƠ&€ÛhIÇÂÚ§̉Rg·ME¤¡©¡¶
I½Î(©̃Ơ5U–D]}̣™bí8$—‡́8¨>óáX ²h•"lµÎ€âj.%ˆÛ€HHÇ-I¦Ư¸#1’C4ỡỸ7„íî®íYƯ–¡Vo>PÊ]¡6¿·˜ö™O4ÿ7f
½~AJdYFƠ€Ê.–̃oơĂ₫y)	Æ8lƶ22eœ¦̉1H¡[t‰°@!È…2\€@¸5ÄÙ“Ê%Z×îüÛk̃’aơ®Ü@ú.`n¨3ÊOFŒ¢R(ó…¥¶÷ÿ½ZkLkF íHWjY
I¤ê5×ç*ñ6ÚÎeµSbk.¤¼5F,́.•N0ßÔ™’¹€|”†V¦€||~Nô‡(	 4·́Ú],́Jp|~ùxeÓÉA¨Ô¡¯5ˆˆ/»Ú»S¤ưäô”Đṿ×Üy?›ù²'_v|rê„ËXÜøîHéQʰµÄ“B@=ƯX¬ßú¬B9Ë4³˜«ĂT©ØB‰B©c ­Á«H‘P£Î+‚̣‰_““ƠYHÙ#¬$ªËÊ` ́Fø£ñB;ăµÂ+Û”…BPR°4̀¼ t­:tơ"ZEºJ^!XÂÇ“à¬q4_dTW(5äÜ€§åÿä¸ÚI±”UŇ̉AÍz₫@U6ÿn.WGXưÀÁèH́RKÀÛ&'swM±jʘ‹±<Ÿ”±˜3¦)€–`#F@F Ô¢à₫ØvoÍb$xï+²à¼uû&´}‰|ÊX&[Ùª8F‹-¹E&/>/ÑGÅ.aêz^̃/ƒÔ₫})œ²’ó'“x©‘$O=<ÇÂz™¤oä§áA9MØ&̣~î¡™¹3rµ3gŸœ¦'¿8̉£\°-¶MDzÈè˜økºÍ5†ù±´A
ƯÂưªG9©ä|1-Ø! Ç87û[œô¤,mRîu|¦57®
=X₫‘¤,˜aJ§Ù›¸^t´N›4ÓØ\fĐ„]AzH^7·ªF•è₫•™„&k"LU>}́>çrBåX(Û‚ªë‚T%¿«Jª¿„­dhKÄ”ó¶P“²KÁTFaA‡3HH†C[r;a›À¶d·™‡•54È̀‰—lL„kjG{¡́8Ÿh~ä
fR@Đ́ü9wàB¨¤àĐ0ëzSơô°âÿ'— a7‚@Ư@N›±Ưƹl‘bj3hNî²Xö‹F/Éíe¢s£Ù'úDsQ«ñ<₫k^Óị́×¼²ưˆZASO¨idºSJăxN4D½³ÀKÓ!´¹Ôù	!Ù«v‰¬hA`ÛE–·X•¼Ê-
¢P
íÄ:Ÿ‚ÛѤCê:ÂÂWÍzS½sÄdO:¶_¿«ÔË`:tÁaηБ¥†²Íسú¢®
¼IYđ4Ç# ø*̉Í+<êqn°oÔ¸u
Ùcwwóx$dµ³đÆ¿}ÏûÖÁ94̀ưíü9p¬*T:ú%GQæ…^aŸ‹‡äƯË'¨çeƒôbö¨l-ƠÜ*XƯLç%*ź¸.…ÚÈ\@pR$Tå*KÖͽ¸hp‡ÀˆÈèÁ‚ßă¦múÁ‘â-/“oSÚ3ßÂEàÏÎto¸}çжV‡oơeJ`<™$öÙtíØ½ßü	ª]g*ßZ›„µ6q°Àùl’ø~÷E¯«
†Sú¸/’ùi£ÄTÆtÍk‚Ç®à²WƯĂ¾Ü=?j¹G¢̉̀ÔUUAJÆơư›`†̉bÔË‘—ƒGˆơQÍAÏ«©ñĂ–ÎÆÚ́cƒûê½WËï©èWSmƯÀ­g³ºÚFËñª‘&©^ơúؘԡˆ6;C1:=ÛˆP‰äºƠ`ÊÚœVVÿ“ÔEÆ5"´hO«Xà~«̃ØN3_5Ó]ºz-₫­ä’CWÓƯtÔ¥‚Óˆ´ĐËeÜ]°\¶”©¿V¯–‹ÿcÔ#m[Ækũ—­_ʱ"©ÉösH³ô<}xï±…m0båxHÓqb‘a3tfçMTÛÑÏ*]I»
̃}×(ú¾œ,M”„–=	Ư@ŒJAÛÆĐd‰ ¬Ë?§6PV±ö[
dVăvôæ4j̉ß›‘lH\â÷ÔŒÅè{˜Ø̣Môå½È˜\ºåY₫Ü€`9MĂ`Db‡<Á;a#ẓ†‘jw·̀}JÈÉz§^:V.ư:×₫Ú‹{¿Í¼(ȲB÷æËɦ’Éóx<Db#"S£¡{ô’PùHu½N/ë{r6;wU¶æĐ̣sÖPĐ“<¤çXÀàYâsÔÄ÷̃Mxu°‡\b‘Ús¸$˜xÊ(¢‰/^|^*0j~mà¬;#·%J„̃M4Çp˜QM׬đ::b\C2gf°°]½z̉P8T™ Uª“QbÖètºƒC½TŸ>
p 8+6g_2–lΡ6§Ḥ ÚÎdžH:÷
d›<æCÍé6³¯Ø¤ê/«¿6ăE:ÂK‹”"Ë`kJ©<›ÏÆ¢ä=ùv7„¥âN5·µ`°̣›¶Jt‹Ù\j¹6Í…%Ë7ô*¥'¥•U•Ù4±:âX+
ä\bü’E
ä́ỗaf®xŒ“}Á‰1+p™‹B¥Ë0î6̣â”åư3rơA$N~¶ô#³dª}ÇפŸP7h÷H7b£FªÂ§…‚¬8đ
³P>øBtGNĐ¢đmä‚xô@j	…‘¸|{Às9à»=₫wRÙ/­«oDJs5z>“;'xƯñEĐq^ré^=G?½…9Aê¡æ–ÇAä_—£íK%µDÉ®:uikjkîIeÉæ½¬GúƠ#*¡†)µjm‘á|½t£¹}`Jæ©Z؈éÖ÷H=4î{gߢ¾)¡qXˆMA,HøŒ7û1‰ëV"¥Ùo,çY#hưü÷Ư¨Ṣ_ê;‹Ía_Ô—Z^cn4¢­ ‚H¸E«®?‰«°}Ñ
È¡»­Üî¼Ù¤=}BWṽªUeđåhƒÚG“F…‰‘æ;@2S¥Øœ€@Ëf ₫ÂËünÍâ2Đ#æ¹ñfƯY:]¿JyåH]­•-·˜G׌wgv'¡â|ˆÄ0eñ
Ă_7ˆđ̉«n+fßÙ¸âàY<«ç(Í
ª?ö́’©‘ỵù¡%wm¬+jƒ&&!è¢c“^¡u'bü&ñhŸm6¤Îû¹*2?´AÇI«¶Æ²5FW¾Ø™[âÆœ¨BơUzïIÎE”“!’m:‹̉ûœxhÔe—ƯÇ®n¼z|]%mÙrÁU¸FÚ¯”ù®1Ɖ};!n F¾& g̣ÚñÿP‰†Ư¯¯;&×ö©œøï$$¸éF«).t›BíQ¨3¦½(C=ú·Óä¦XÀÎØesÔ;Ưiû«¶­Ù@¼Ñ~üNíÉΡEë	ÔSR‹¡ˆh\éè£úÁBeñoº†½œ ´¹ÎbTÑ„nÎ’ju¹¾À	g@ä÷'qQë”nx.u6bVU&Ô›]¹;Ûïª!C_„5Æ*̃z¹ɺûm€RQu‘ªq‚’঱PüÚZ0ƒ¶}mñ¼¡̀Êơn½¦^nƠOrÉT¦âÁ‘µÎ:ŸUă'×hÀæ§0nZ¡p^Ré|DFª_b\̣@–Öm‚èDEë8Æ{oèGM‰á œq¸ƯÏ}ÜîSd ®C,ûiÀÜEêé/°̃Ă‹[d8]×,MCIÎĐó_u—,]V™cñ"—ä¤p°g@́`"y)‹,;B³^e­lÚ¡ª2'€.(ÍĐĘây>à-|Îh­ÜÓÄwú₫ê;©jå¥è’íƠÑ̉iÔ½±ä¯ê_o|!@ö)É¢ƯªÄ=Ù̀ŒSPz—éˆ*!z})¼|ƧT}½j‘†E£tC¬Zå¡nŒ½Ă½œ*ƠơÉ4ۆ׽[¹©±¾9»Đ®¨èˆ‘’Ư“ơŒz`Wmeôo‚‹|j8j­ï5á9¼öµ@.úE¿V̀/̀ZW@|—f_ç\"${ᜑv¡ạ̀ƒóœÀÈ/¸̣¶;a×:Se¦i3TäGË*ëÎưƒ]¸Æ¡/̀hÀ2C32$¿Óô¿ü1}¿ŒD¤ÍNXÉø₫t́?FÏí~n,Pj9.î–>×£ü¨Í{
9ưÉEN-v|3h†̣‘CÅиE”•‡ XTàâË;P–$Ă=JÖ-ƯƠgƯ•ưùigz~q—(Aé<:h1±9³3áŃ̀½ơQ‰‹ăÇ}CLØWùß§Â×Ü~ƒá
Úb™¥"†‡Í|Ç4u}îđ­×Ùc™y€à‹È6°¡2ÿ[ ¥ØÖ\d¸,µ̉Ơ³bkù¤̀Dåä¾%0TÜx­®{=;öÔ·‹†(„i‡ØLS·øß1½˜øư©Ñ3ÿNÏh/¤6?æ'E^ö~ÿÆÔP®{sŹ™ZÓK”ÄB{’D̀tø&‰½Ôz’Ó÷)µUoaù5Q¦3‘È—ˆr~¿‘¾
¦ôÙùF] $º<èútm(}ûĂÏMB@‡[œGx́ÎFÓh8›#}ˆô,£#À˜uưLaz(̃Qh±4%Óxm`Uà•Ơ¹.E¨ăv1a’4_'/[¨d±{Fx¨IÊ59ŒƒDơ<ế&8VˆEóFgÉÈÙè˜#ơI‘äŸ2S²Íîÿ_ă©]QqAnˆÑ_đQç>b̃˜4g¡¨­±-®0&E#c¦Üi8¿	vR/Ơ4ÿrëP7•£KsOWµN3ƠvE\bq†ûQß5Z¹Ú½Vy5]½Ööàh/	i)Åû¦-/´°ă¡kµN¬Ñ¾ÈÄ#é)"Píñü	{ưKSQx‰²¸¦>aă&µí¶,„ 
_èg¥´ñ-mác<×n]Ч-®5‘2c¨¹¡®ñz
¬7d Pœzóåµạ̀đ²V„ö“û¥OPvf¼R₫R¤ÓÆà°“9†Z
-ŸÁ̃d†÷®ˆ¿C›ñóÇ`,öatÁ=‡k?v¢í4#P
è¤B̀¡Ø¥¸/[ơs.-bH)ɺzï '}¶×¶Ưîwœ!rÁXÎZµ	´.:’Vn×;î-î>:á
6àrÿ½‡UÁcsƠ4k¬VW¬{’ú‰đ#­˜5ß‘0ÁBƯắÇ`Üÿ0uÑ".QÊÆ¬›dB´˜0£”ơ˜CĐrơ]íïà#íºQ9lqœàN^ôÖ³¯éôh~ NU\´ ¼16
~éè“á”S‘n‡Ṭl¢‘\₫TH̉²Ú›-ÙÉ~ªG~)$…oQ7-ë¯Cï°̀È́}q%/a™¦³vO°ª|[q4–‚’³~Bc-$NÜ76½Ÿw̉{œV餃.&£ö(†o¹©*ơn<§Øn9¡ÁJ–
"a‡©Đ”ÍƯ+¡†aÊ/»ưººđ;7zDØZη{×tM	Mp—£	iØk¼NPwˆØ‘ͺđH`T
ö$23–†fÓöÀĐÚ0zÆÈ;­¡¦ç"đ]Œ̣ª‚*Y²¤é,äQ¡WØàô¸lS鵯ÅOrW$5]K¡VÙ»Bâ…Ü…I¸kÚ|ß=²&Á[ÔèễÑ̃Å58EÓR¤0̃‹Gk«sSîñÁnặnnuăúñExKĐrô¢¬Œ}‡~mñÙ`G4u{ĐÑñ=]6f¤÷âר
BoÖ&<
™Ă±c;2 ®P$Ăǃ{mW_cơª'B6Đ?$½^z[C—Y¹Ư­™é¥jĐNó~₫¦Û®0¾»›út¢¯ú°Ûâ„6/)-‰1:p$Dꥅȗ
®
,'³†üyàơ±øÁv˜Ä …nœ‹F³T×Ñ™['a¦MbÎJ]»%&Ă®¬lc6&ÂèIpFåÄ
¨ÜođŒiƒªÄÉ₫ă5± ø'r¨äËår‘(q¼ïèú®ëî¾z6Á°öîÉ(5óĐáEôàÉ¢ƠŸl\…Lñkº7«°1ÅY4^)bٗ¦8ù¼yøÆªäÛ
NØ=ƒ›9zT–^[T$‡dkœ
QâiK%áˆ6µüqµéçờîfO|àÚàcĐ8$•ji^vr₫.QQR"âYárÄăâơ¸
¨Ăkø’¥̃rŸº¼Kˆ¢µû æè
N·eíÏRiû4¦¾Ơ!3Rù¢º"4¦ˆÈñún™bámÉ-y[X¦¦ÿÏñ."Æô!”øÜQK¯åE\Nëµ4gƠ ×ø§¿¦ƒï±aN¦p‚
>k)9ÁÁ0ˆBZềBs
ö¥yrer«)v¯¢®Dóëtèrv\ûvù[­ü>órµJmœ–
aœ̣«µ̀¼›~uƯêêƠº>µrMZœ°˜cíB<øă`)\y×t|Ûïÿr'<†ô˜à>ù×Ö₫ă[æĂ—ï­èh7ëú­₫ZÅŒ8caI!¹
´p⢟Í̀®,¶GĂí»k 5@ÈÙô÷ÿ`ôÉiw
ˆ̉nĐ8pŸv¿ çÉé*²Â'O
ƯÔü² ƯA[È.¡¤rhóT
pR?+;Ëÿó\*H‹sLq̃æëU¹f–â:ql-ć¤ñ*6!…hç+ˬ{h·‰ö- jg±kÉMMÉ×P#ă¶ä:¼}‘±¸{/ƯëîVËßŶC]́˜™ê·&[³W$Ú«^ß#àû¸¶4fWa\
‹Á5́đ躺M[6½)T§3—•›~üÚέÉÔÀ
ă:. Z”¦¼¨`s̃i(ÍRô©Q…¼²̀|/ú`ù
ilÏ^°L# §÷̣f¤-ñ×;-C;_Ü̃ù*ù{@EMCooĂ‚_¤œÆĂơ7¾TöărqzÜFµ%ׯ|™UEÆ«Us^Ưœv{ ë¤¦fQ<Ä¡‰VPüïĂÊTfͦî?¥ơmØpÙP*È&¦÷ĐQ‡G‰ù{cœJïñEPe2)xP½0AÑßÍûMɪZH¶j•"×»"ÙA¬ĐC+zq‰mVzá–óU%ØCµ:@1æăđW¹î[y)ÎJ@÷o±b%÷j”A>)N̉Ç€Ôiç¼$’AóˆÀ́t`>̀?f0gÿH36pè6á̀D|ûM›äáö4N¡°
œ’ 4J½JÚƒ¯
µj¤˜Æ‡´ó\
íp 3Óø£8À¦ªÑă–Đ¯ï”»­6p®ùV?:¬$‚sDùÀNúµƹ‘2ï’n’,¶„HƯO\‚[¸øƠ¸›öKÙ-)«W~¹iém™?ÿ®ƒTĐ:°̀đ̃ºUÖeYŒÓă-#dJe)¯±ÚÏZªƠ5”?ø$»æ¡\d©W<·¹¹,Ɇ†;¯Ø·¸Ă5ÍỊ́S¸Ơ¸¯¼—T«T–ñÎ̀„f(PY°v=Q
~DX*¼ßƯ8øè¾©s-	Â˨®Î€55­
X¢R¥l QCÏá¤Îá“øÑÀl|̣ư5Î{ûÓ¦T\t꼕+éï£e»nÅÛ¸‹’ÂPsÓèlû3™ùUO©[üÛîÇZ»ÉS3åÀîŸ*è́,˜ª†ß:Ă›Z₫¾ÆÔL‰›¬†ƠSô'̀µæă*ợŒ*@¨øı~xgno2±¹áˆâ-
…Œ ³W³«½V;äpZå9?~„«$«6Ÿ<”µQr‚bQ8&óse•ÉEb¯ÚQ,·₫^|B²µï碘ïVd¬V-¶(Ü]ă .ïèË8/qhV¡nR®ó®QÈD‰*ùU(*1hç1Ă`ØQL{…Uj`à̉"o3Ü»æ™V¨l…µ:	ÑíêÂØÀ
jaFaàE­¶̀Zˆ‹g1±·zü°̀2Ö Ơ:ÍAuÙZIf6–ƒ2Ơtw+‰‰f§D‹ïÉ誩CL-}g»µZ³0>̉„óxJ¢ưÿÅ>\îÁëQ‰¸AÚ_C¶i‚hß̉bl]
‡6̃ỠÜ4*A˯ɰüqX‰¤7„»ỴX.€-¾ÚƠ¸•aɇĂVâh¬–iKg•ÔÏqN³RĆN(r'Á]¼à%Ù˜„…­ôˆ@3ÔÍ€ÎÂj§Z¬÷J†.;üănmƯú¯ƠÎ,SûûØ0x¯³ĂơøØÍ»£OF33­̉§¶…«<$'Û»¸G—E+´Ú}¥¥Îóúó§…'1đf3›ÆửyĐ5Ư/&¤Zœ\RBô7dmíô]æ¼8§§Â\Íư„3ß‚„Ȫ˜@÷́o¿ûTé¿3eu^·W@ªü”–¦e7l–!Bă,Às‚äæ1ÜÍß$ạ̈¯ÛZ§ă&Ù’ç?¯âdCéá (YЦSm>‚J"&pt̃܈ªP㇄BF¬ø´Ú±àÙø4ŒGá5œ	t^Ć$¯̣̃j-aă g^ÁÊC¤–…ƒAsÖT=k¡TS,|€ràå9I·½BϘЬ†ö'ẤvGA¶Î@ÍtÀ̀hQƠNj†&€åT=Îxt;2]¯P¡|T-	LĂƒ’Éç¿ñe1ăƯ½WĂZÅ*MrH5?„ñ‚=àưÑo°¬"ëÆ9ÑK5Îø=«'kÉ-*•„èA¦E|	₫ ̃ q̉”‘_?\£7%ö|M6°fª+““+’S*}çW_Ü]3ª¨ú¶fmÜ®Ø̉˳̉Üm w!–—î÷å.ÛR#‰é¬ª;Æíú¦±q qó71Öä$•Ư™Ơ¯_ÀóiKà&́J©Î¬M®¬ö̃ÇemåVÄ5PÏ0>¾¾ Qçµ5ª†W•©H­Ih×åù&ù4̉IlÓE7}âsÈéÄm[cȾ́¢„|d^	¢́÷%Uvé1¦D“²>“.èT¬̉7*é=tƒZ¸_§ăŸ¾1Đ¥:=0pZû6̉‹N„t(åuíÆ­; ÇB̉]³‘$€k¡ÚŒ€Â.ó{ªFÄ*/UZ’ÆNüç ¦|oqÊK—G;^Öä¾9N§ûeÿíxK‹’¡¨\‡wh₫øñ~¡̣̣ZpHÔb‘‹Í䉸»ˆÛ[k¶8âÉÍ̀k÷â.bX.Q¾Xp¸xYa^µĐ"˜Ñ#럙ăB³wnb¤¿óåuÓđ ém5F²½~>ÇĐ8€­ÁbưúäN:Ưp4µ[gv^
B½ÓFĐUzû)?œ¼60ĐFÉÉ8˜‚Â/2 ŒC8¨Œ®>N8GîÍ%ló%èƯ5ºFH˜{4„6h§ï¸4%Æ#
7¸è›ñÍúËxóoºÜN tª\•'ßȨ
¨ úæE£æ½0#ƒïj¸NĂ£VïÓ¹dà?WlcW×đ‹Äí
ž½Öµµuû-“»}2„2¨¶¥EN¿}#‡äµµ2H^a3đơ»¥r»Áqs§¤°ˆ„-S3&Èïô„f´í‡£̀ëÎfwl.=Wø8å„,ơà̉cHá®jcTê±W®‘× s9̣0î”ZàDÎM“ú¾C2’ZM’ƯûdjµŒtŸ"8À:gí{.Ʊ°Đ1Fb6ƒ1Ç8"yÔ¦>˜ơ¿’­WÀ9£ë ÓVö¯`×j¿ư®¿Ṭ””‘‘€²µr,nƒ©iÀ­Á

¥d³… ÿôéqN§ªƯ.g+ ïSÂë¼
Qúù·¾ë	
áKaB¾ŒÛà?_í‹ÛQE ‡“µr¸†ÿj¤î‚h>ô•E¦Ó›;C×­7…‹·^q¯
Æ`U¯eú#-Ÿ˜·;oJ˜Ä‹ẳæÔ>)Çư‚;Jgí£Ï×­9R;Ogí¢ÅưiI7ú}—â8K¡’œÛq¦j¹ÑeØ“£+Ù—'nñÏ·k3‹Á­»üeFÏû́…0±̣¯ßV#©íÆp¥MAzb^P÷VÏu¤Û~̃1uº—̉“•wnÈ	^›.II—¡_Æ̀ÚvdW®ÈöóÎ[Q,Í̃è+L¾b‚í¾É¥å„ÆÄ‡q¼₫
9«V}ï	”ÎVÑw4qUä3&jÛıHYb¼ ü¹ˆ¿ttTœơˆ7Ị̈’«ÙarBwP9?)Ûu•é‹T/Ùa£•A19–±kªM
\ÓäPƯßs›<ØTaĐă@‚…ơq±Ø+û£=Ù[5ÄÍ”·¶Ö×?²9£WÀÉ+^ưo¯^Eàă8s)åfç—2aôæ­QŸx¤·i‡é&	NE>"^NaäaŸ;fÙ̀9]NE&	t^°ÀCLz'âe…8ZRñs&6̃²7_üĂ£cyJ‘1
Ä₫@TZ°?SD2û
‡|ÔPơÔËOÓŒé\dªRï̃đû7zHƠøƒî±9iÈ‹Q#µ¿¶‚zr³óc.̣4ö†GưR4ÎÈqx¦đ¾<2~X’hµ÷náăੳ¨Å2ˆauB­NCÑ+›¢k—Xó0Ñ
aj5n>̃‰¨ơ²e3öṽ§Óôé<¥>°_²Ÿ ÛuH: XRÿ%~9á!4öüoÑѼ¦è3…ºâ”8?¶‚ Î1d#ïÔÑü–A&‹„„{A!i6‹ŒíÜ/XaŸ£á㇤=W‰;|ïđä) Đg¾~£
?*¾æ‚½Ă }¿ăÚ§ˆKt̀>5|­EµĐîÑÜƠ.§ưôAûQñ6üú
²€¾(6

6Ñ”Æ7–Ú÷<9ùù_đ•CÁf1₫ëĐéi8¾®†å»,
V»4$ÀŸutÉøœø£ÆiÁ,.`v6r	â£̣P
¯½gFBÉÇ
ṭĂçÚ
C3½;˜,¼oĂ‚“æăœx|	
/KóMp©1S_¾‘X.f÷Vª†#¼U>È’Èơˆ#Böñ]µ
A‘IVoÀ̀Đ†ÏµÀ‘¿üGTV1nr+£ÎOXÂS•%‹›³¶™f§OZ[Û_ư9œû‘P­ß°÷ {Gln‘%ß#ÚÛhÀdw¿H ù=† ¸y©e/íªW¼³´¶>̉,Óö¬°IP,*MV•đ„~ºK&ăe¢Ä‹»ûḾ½£=̣)‹qF¿ S¶ß´"ÉGÑëTF™*¹LX,h[—´º“§ww´íeñWQEÙxÚëº?áè“{^Ú†Exïh»iư»¢×‚„J”³ĂÀH¥|ó^ÙÍ“…Ée*^‰Đ¯.ăuÚxE™èëËb#î;›’ôÔ<]z]\íƒ×¨wÚN»ho¼chq¸E˜£=ºçâ4Q1¸7ưƯçWü½̀“lĂ•6á§¿­HE_̀£ ùqyÿ‰áYR¤Û«ä9~l4sæVyù­™`×Uß›,ùŸ₫ñ×Å#_Êu´ù+Deêêí™àéMÙü¢~h³qªë²‡’·#YúÊæñzü$;Û5ͯ9$µË z²>ÿ
¾*jơOŸøŒñÛ$œĐ$O/¯ÀĂxRí½ƒÂtưf-}*oïɦøÙ̀|3†M;x̃¨¯U”•µl/.ñ~XǯYá¼4™x3&æë×x®";¤$KIö’5ÛdÚ­½Êáüú‹~w[ÊÔM9OØă%4̉áQ¨}éS^́t–è@ÑËæw[›Y;-ƯöÿÀºs;¢b¾ÍwH-*ï––Ăim½¶IÊ-¶1e/•~ø¨TNN®.̣p²ßđ)H$ûë«Wïß~ÎđµÉƦí¼O
( é9è†,Ù
]gM6rê+„#»%ƒà/süw¯Aœ$ơŒqÆ4ËO>
d9}÷+đÑ$Œsô³ư?0£™a,>y‹¹Úˆs<đ₫=†,đ‹c_*\âƒDí¼Ü}È2Mí°Í̀T8/í4ægæ'Ú¦â8'û}"‹Câ*„\9½#Y>z$æöÔ7c[s“|"$}»	ym̀ïƠÀ«zQx 5·%å oùå“$j†kĐÎp)ñx½Äû-:º†Đ˜|?˜oăøf§‡gFrÀß2S‘ÇZ÷Œq}qˆµ	…o€,wyÅO¡gÊCF1Öl˜çŸ'íL5T3ợ3ûÑđyª¦M‰9Ú2"s”˜̣5uD•‹6ÀÔ-J́‰U†bsºÏ
«O)ƒ̀w¸R
-2æ/5fÜ<ªBQ̀4kŒ˜ê­G¹	)%ß¼ăr’Ï›f@=âBF™‹ïCB±©‰‰ƒ‡&'‡F}@©&ÓÈÿ„y×ubâĐÁÉÉC?'«êåñçSæ49+—Ă“ä±Cø®³íIĂ®đ¤ÙŒ+×ç˜ëf/R«Uê
̀îC°Fu:C*£}†T:º¶}{ÂÜƯ½â²·ÔuªÎ×ø•¬e[!®–>ú?‹ÄåưÚ¸¸"ÇM
8gzƒô0\HkƒÔZ³:Ähå­~™@ª+ô#«NêÖfj¾çyµîå‹ioÀ!„B÷	₫ñô·“±R'©5>Ú`Ụ́[!ÂÄTˆ`mCI…ÑĂ}¸n
>Wßô!M}UËavơ¶4€3)!§kcÈ‚²óm₫?’	Ưådïw•ăv«!×”;Xϡۨ}½8ívt•ëĐ"Ó¼#kÂvXJ™±[“l¶[ZƯ™MĂ€§ñĂXC3lê–[
ĂTa¼Vj‹¡…ÚÊ»¥åŒÑ¬"Å“Ṇ̃t:‚(êà¦ÈÁ<¾cZóve—ưQ›ÇîT…Ÿ qHá‘i{ ̉é€Q埓'Á“Ă–»“i öPØöï¿­èüȯáímKÊAçIơ¤BFƒ
£=‰‰µâÖTá…½¶à(âœ&TSŸ?/ïØA:Ö·¬»ĐV§(ø÷@wïFa^ă¦]…Œµäo]*Óñ99¬R¿iáñ_Ộ˜À™₫ÎË2vM“€Ø`P§“ôf¦´{QYÏ«íH#V7vÅ7̀̉° q>@àó«~uɘ׆Ax°Ă/ƒ«xÙ°B₫à3£Ä Ùô‰tƒÊÁy†b0ŒnG`Á̣EÚD́ÙäA’Ô:ÆPØwIÓ7ḮnWÓ÷2ED}.(h•Ü"‚óăU]¢9Iíh_îV¯@‡›GZ0C
Üpb
ó:ă™L3¡tN*ªN½2¿Ó!¼3Œ
Ca³—yn.•ÊƯÉ‹Wâ`̀³Ü}±QB̀CªĂi Á¡8*Ăï{57‰¹́O#aT¢ËB½Ÿ‚½Uío₫i§0ç
ó_ËđÑù^
ChrU}~rÈL 1̣zÿ>..ö=%GÁ›GŒ£ëüo ™‡ŒEéu‘P³Psؘ̃¸èó8­đü₫P¨Ÿu&;æÊ*Œëù|i&¤ÿPbÛÈ›°²˜h̉;´[—€|y*cƒVh†̉¼̉(ÿ”~Î_A•qU2·½ÿôGIQÇ3`®^Êv₫=î@¬ÜK'¤µĐ‡èËZ#4sJ=º¤:sY©è	sÚ¥bÂyj¯ë·S_E܃"ª‹@~‚Ÿç¹>­86ºñ#Îy±Úäå[ïèc̣Sï„¥ÙŬ–”̣̣#­SJ”GZû®yvvƯßSùÑæ‰p¸waTÏơÅ/,
9'Jkv%%.†~ọ[̀óŸ è¡§üœÂR±Bj¢ŸSèÈ€*$'øè…©pçS¥uà+ç9\¬í_f+ạ̊üù8ơu\,¶ÊÓtæåđpÑĐkØ®J0hó(]N„QÈvó³W¬Ç̀7ó•8«ƒ6:ÜÖƯ£Ïâ·ñWc“¯Y_i>ú¬ŒƯ"‘ßR¡çơ’â(Óe]̃6ø¹ªRA%U—6&´F]”½7@̀³k3X
h?ŒÁKïà®̃Q¤2™Bk¾[?.ÿ€Ă.K¡ÈKAb̀6ữÄ5¿·ḳ’e+]²F°eöWH©Ụ«û0OƯ×§¾5…´øÿ
¤úîäe3H‡®coÇ>l]0¶2±ˆcư¹‡ƯHÊ9{Z
{sOơ–!¥A,₫7†?Å·3wä¿A
àFjÚÿ¸8¸Bí&8U$G…¡ÂµÙßé$µY5˜‚†FâL…5nḈ²Ø̣1–”>qóº2££.«6“e—é
î
́¼Úơ—œ+˜–@/¬¢đ™µkíb{à÷(Å7Đi=¥É{lͬƯ‚­âÎæ¿¦ï 8«…1g(»üè%ÎÓh/ëEf¶M¹̉ƯtŸ5½Ÿ̀¼vg½oÚ ê~à©›WKi父U«ßØ£Ư–­w¬RS‚ÉFíßT¬²%ª
`=í‹ø|*=1‚̣*ù»ư·S§Xö¬€·Ø^ệÓw)l–ĂÖfQHăúŒ(YS₫ô„SËŒK·æ1̃ØâíW]µf™Ÿ·°7׳^&ưpô@T'.́À%3³•„Ă
¯´ß̣̃»ù5ÏzaTf6Ñë©A5ÜL•óX̀¡æ·Á|ñL¸-Ÿå–ηêÄT×g{A)ªî­®FÑ•."hü“ùj¢ A;.đâ~Â₫ …õ%°èưG#Ñ}&]̃×¾cÜ`C»hH9xnN†·Y Îlđ²c̃¤\+v\EŸ¥«Æ§1¦D9K·Xá)2b.¿ó­“NôÚưW¢§ÜQש$¥/£”|6tð™Ă32Ô›£´7¡¡¦–2¸ÑÛиyuü0e×ñ€)’NØuh'dœ¶Ăî„ơ~xY‰É‘´>ÄÚ#bˆ"k3ÓđÂ¼ƒ®̀: 9¿º¢vˆú$ĐŸCƯ:Ê)H¹Ë>	Ơ¦zÇÛ;e“d\jmfŸäOÏa%̣9‘ˆcK›xÓĐÛ¥Å!k©%H̃Dn“ü{YÜ"“{n_Ö}
ß)9ƒ=
_/û‡ZÎ(éù>lú¶­÷YŸÖV÷‹gQ#§ß­:QÄ•ÈbwƒÇ÷Ơ$¾zw±đÙ®‹#¿»ăU˜?|ÅđïGÔ΄hÁzü{ùoº$wñ×Ïœ´º)|Vh‰Ú?»Œ
ZV7¾%ŸüGûo/£×†‡ôéEÏ"¹KÓ²… ́µl¥p76Î-z
!Ál€4n>”¼$\á×zV?szûqej́Qçëé]m‹›æ^æ=^µ
ä§í­¥! ²ºl…ôHB4sLi9}̃2¢^×ưKĐ5ÅOBú)èíO
­çv^~ªêµưïƯ€x¦“rm\KÚ&G^Đ5CçĐL¼}&Fº̣”ÀËâ¨B]K†¡n3††|ÍsGjyđk₫O¯µÚbåsܽæaW?R6đ¡·²¾JÂÇfhăÚ2	ÄÊlBS§\=¢jƠƠV—Ê*”ôY¦“^¢¢Á™„˺^E)Ơè*”\½Ÿ 
‚rÔr(a¢@ø„6nÔŒ£?¥}ÚdL°©¦g¢IvqØNcĐÇa‘Æ®kŒÍ÷mLŒöcÁA!¤±hd¸£±Vëđµ¹Ị̂wc=¢¦æ†–áæ–Ơs_̉:ÿ̉—•¢sLËí£g>‘œ—1Ü*4-%đ&Ëơ0Ubƒ)Eܬ†*b¸ÔÖ51—Äï„ç	ä+è+;˜<…«†’`!q°fÍÎMù*Æ,[/GK+{Ă—®,>CâLŒóR%%cŒ³ÂÆĂ~‘’'EG†A‰®GºÂ=‡hÂ䟔°8:ID́N)ÅẀ»áAF)ucw'qhÍXè²L@a„¾~Œ6̀Pc2Lă"¥A…2b́ÈU	™À&Œ€‹ÿ¯9öA#ÓQLO¬:E€9k§©’‘Æf̃KF•b93tºL$c‰Ë¬pÿLzÿ ¿5ÔdÚp¢₫đùÛ°>$`œ.÷ï«~Xó=¶¡ă?„ NͰ/Ä©L®PªÔ­No0̀«ÍîpºÜ¯Ï ‚b8AR4Ăr¼ J²¢j¿}øŸĐ
Ó²×óƒ0“4Ë‹²ª›¶ë‡q—uÛóºŸ÷ûAFP'HfXDIVTM7LËv\ÏÂ(N̉,/ʪnÚ®Æi^Öm?Îë~̃ï÷‡Ă	’¢–ăQ’UÓ
Ó²×óƒ0“4Ë‹²ª›¶ë‡q—uÛóºŸ÷÷ÿb$œ«tV&g®Ï–íÁr>¿<Ùyóå?’“˜ûf₫{ç´·£‰µ›%îµïÇ̀~ßZû₫aÅzW¾¿¼÷ÜơƯ2ŸµsvïẠ̀̀™ÙeW«‰µ‘à@DDDD$""""bffffÖ}X	ÓO„0ÆcDDDDD¬µÖZ›6Ẉ08BÖçI¥ƒ.H¬W
¢ßˆÇĐ9 ‰u„*¥”R*J^}€Ä:M”´$I’$ỈF‚‹™™™™yÑŸû̃óÀ_WÍÆư .active')
    var transition = callback
      && $.support.transition
      && ($active.length && $active.hasClass('fade') || !!container.find('> .fade').length)

    function next() {
      $active
        .removeClass('active')
        .find('> .dropdown-menu > .active')
          .removeClass('active')
        .end()
        .find('[data-toggle="tab"]')
          .attr('aria-expanded', false)

      element
        .addClass('active')
        .find('[data-toggle="tab"]')
          .attr('aria-expanded', true)

      if (transition) {
        element[0].offsetWidth // reflow for transition
        element.addClass('in')
      } else {
        element.removeClass('fade')
      }

      if (element.parent('.dropdown-menu').length) {
        element
          .closest('li.dropdown')
            .addClass('active')
          .end()
          .find('[data-toggle="tab"]')
            .attr('aria-expanded', true)
      }

      callback && callback()
    }

    $active.length && transition ?
      $active
        .one('bsTransitionEnd', next)
        .emulateTransitionEnd(Tab.TRANSITION_DURATION) :
      next()

    $active.removeClass('in')
  }


  // TAB PLUGIN DEFINITION
  // =====================

  function Plugin(option) {
    return this.each(function () {
      var $this = $(this)
      var data  = $this.data('bs.tab')

      if (!data) $this.data('bs.tab', (data = new Tab(this)))
      if (typeof option == 'string') data[option]()
    })
  }

  var old = $.fn.tab

  $.fn.tab             = Plugin
  $.fn.tab.Constructor = Tab


  // TAB NO CONFLICT
  // ===============

  $.fn.tab.noConflict = function () {
    $.fn.tab = old
    return this
  }


  // TAB DATA-API
  // ============

  var clickHandler = function (e) {
    e.preventDefault()
    Plugin.call($(this), 'show')
  }

  $(document)
    .on('click.bs.tab.data-api', '[data-toggle="tab"]', clickHandler)
    .on('click.bs.tab.data-api', '[data-toggle="pill"]', clickHandler)

}(jQuery);
bootstrap-sass-3.3.5.1/assets/javascripts/bootstrap/modal.js0000644000004100000410000002332212556335206024210 0ustar  www-datawww-data/* ========================================================================
 * Bootstrap: modal.js v3.3.5
 * http://getbootstrap.com/javascript/#modals
 * ========================================================================
 * Copyright 2011-2015 Twitter, Inc.
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 * ======================================================================== */


+function ($) {
  'use strict';

  // MODAL CLASS DEFINITION
  // ======================

  var Modal = function (element, options) {
    this.options             = options
    this.$body               = $(document.body)
    this.$element            = $(element)
    this.$dialog             = this.$element.find('.modal-dialog')
    this.$backdrop           = null
    this.isShown             = null
    this.originalBodyPad     = null
    this.scrollbarWidth      = 0
    this.ignoreBackdropClick = false

    if (this.options.remote) {
      this.$element
        .find('.modal-content')
        .load(this.options.remote, $.proxy(function () {
          this.$element.trigger('loaded.bs.modal')
        }, this))
    }
  }

  Modal.VERSION  = '3.3.5'

  Modal.TRANSITION_DURATION = 300
  Modal.BACKDROP_TRANSITION_DURATION = 150

  Modal.DEFAULTS = {
    backdrop: true,
    keyboard: true,
    show: true
  }

  Modal.prototype.toggle = function (_relatedTarget) {
    return this.isShown ? this.hide() : this.show(_relatedTarget)
  }

  Modal.prototype.show = function (_relatedTarget) {
    var that = this
    var e    = $.Event('show.bs.modal', { relatedTarget: _relatedTarget })

    this.$element.trigger(e)

    if (this.isShown || e.isDefaultPrevented()) return

    this.isShown = true

    this.checkScrollbar()
    this.setScrollbar()
    this.$body.addClass('modal-open')

    this.escape()
    this.resize()

    this.$element.on('click.dismiss.bs.modal', '[data-dismiss="modal"]', $.proxy(this.hide, this))

    this.$dialog.on('mousedown.dismiss.bs.modal', function () {
      that.$element.one('mouseup.dismiss.bs.modal', function (e) {
        if ($(e.target).is(that.$element)) that.ignoreBackdropClick = true
      })
    })

    this.backdrop(function () {
      var transition = $.support.transition && that.$element.hasClass('fade')

      if (!that.$element.parent().length) {
        that.$element.appendTo(that.$body) // don't move modals dom position
      }

      that.$element
        .show()
        .scrollTop(0)

      that.adjustDialog()

      if (transition) {
        that.$element[0].offsetWidth // force reflow
      }

      that.$element.addClass('in')

      that.enforceFocus()

      var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget })

      transition ?
        that.$dialog // wait for modal to slide in
          .one('bsTransitionEnd', function () {
            that.$element.trigger('focus').trigger(e)
          })
          .emulateTransitionEnd(Modal.TRANSITION_DURATION) :
        that.$element.trigger('focus').trigger(e)
    })
  }

  Modal.prototype.hide = function (e) {
    if (e) e.preventDefault()

    e = $.Event('hide.bs.modal')

    this.$element.trigger(e)

    if (!this.isShown || e.isDefaultPrevented()) return

    this.isShown = false

    this.escape()
    this.resize()

    $(document).off('focusin.bs.modal')

    this.$element
      .removeClass('in')
      .off('click.dismiss.bs.modal')
      .off('mouseup.dismiss.bs.modal')

    this.$dialog.off('mousedown.dismiss.bs.modal')

    $.support.transition && this.$element.hasClass('fade') ?
      this.$element
        .one('bsTransitionEnd', $.proxy(this.hideModal, this))
        .emulateTransitionEnd(Modal.TRANSITION_DURATION) :
      this.hideModal()
  }

  Modal.prototype.enforceFocus = function () {
    $(document)
      .off('focusin.bs.modal') // guard against infinite focus loop
      .on('focusin.bs.modal', $.proxy(function (e) {
        if (this.$element[0] !== e.target && !this.$element.has(e.target).length) {
          this.$element.trigger('focus')
        }
      }, this))
  }

  Modal.prototype.escape = function () {
    if (this.isShown && this.options.keyboard) {
      this.$element.on('keydown.dismiss.bs.modal', $.proxy(function (e) {
        e.which == 27 && this.hide()
      }, this))
    } else if (!this.isShown) {
      this.$element.off('keydown.dismiss.bs.modal')
    }
  }

  Modal.prototype.resize = function () {
    if (this.isShown) {
      $(window).on('resize.bs.modal', $.proxy(this.handleUpdate, this))
    } else {
      $(window).off('resize.bs.modal')
    }
  }

  Modal.prototype.hideModal = function () {
    var that = this
    this.$element.hide()
    this.backdrop(function () {
      that.$body.removeClass('modal-open')
      that.resetAdjustments()
      that.resetScrollbar()
      that.$element.trigger('hidden.bs.modal')
    })
  }

  Modal.prototype.removeBackdrop = function () {
    this.$backdrop && this.$backdrop.remove()
    this.$backdrop = null
  }

  Modal.prototype.backdrop = function (callback) {
    var that = this
    var animate = this.$element.hasClass('fade') ? 'fade' : ''

    if (this.isShown && this.options.backdrop) {
      var doAnimate = $.support.transition && animate

      this.$backdrop = $(document.createElement('div'))
        .addClass('modal-backdrop ' + animate)
        .appendTo(this.$body)

      this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) {
        if (this.ignoreBackdropClick) {
          this.ignoreBackdropClick = false
          return
        }
        if (e.target !== e.currentTarget) return
        this.options.backdrop == 'static'
          ? this.$element[0].focus()
          : this.hide()
      }, this))

      if (doAnimate) this.$backdrop[0].offsetWidth // force reflow

      this.$backdrop.addClass('in')

      if (!callback) return

      doAnimate ?
        this.$backdrop
          .one('bsTransitionEnd', callback)
          .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :
        callback()

    } else if (!this.isShown && this.$backdrop) {
      this.$backdrop.removeClass('in')

      var callbackRemove = function () {
        that.removeBackdrop()
        callback && callback()
      }
      $.support.transition && this.$element.hasClass('fade') ?
        this.$backdrop
          .one('bsTransitionEnd', callbackRemove)
          .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :
        callbackRemove()

    } else if (callback) {
      callback()
    }
  }

  // these following methods are used to handle overflowing modals

  Modal.prototype.handleUpdate = function () {
    this.adjustDialog()
  }

  Modal.prototype.adjustDialog = function () {
    var modalIsOverflowing = this.$element[0].scrollHeight > document.documentElement.clientHeight

    this.$element.css({
      paddingLeft:  !this.bodyIsOverflowing && modalIsOverflowing ? this.scrollbarWidth : '',
      paddingRight: this.bodyIsOverflowing && !modalIsOverflowing ? this.scrollbarWidth : ''
    })
  }

  Modal.prototype.resetAdjustments = function () {
    this.$element.css({
      paddingLeft: '',
      paddingRight: ''
    })
  }

  Modal.prototype.checkScrollbar = function () {
    var fullWindowWidth = window.innerWidth
    if (!fullWindowWidth) { // workaround for missing window.innerWidth in IE8
      var documentElementRect = document.documentElement.getBoundingClientRect()
      fullWindowWidth = documentElementRect.right - Math.abs(documentElementRect.left)
    }
    this.bodyIsOverflowing = document.body.clientWidth < fullWindowWidth
    this.scrollbarWidth = this.measureScrollbar()
  }

  Modal.prototype.setScrollbar = function () {
    var bodyPad = parseInt((this.$body.css('padding-right') || 0), 10)
    this.originalBodyPad = document.body.style.paddingRight || ''
    if (this.bodyIsOverflowing) this.$body.css('padding-right', bodyPad + this.scrollbarWidth)
  }

  Modal.prototype.resetScrollbar = function () {
    this.$body.css('padding-right', this.originalBodyPad)
  }

  Modal.prototype.measureScrollbar = function () { // thx walsh
    var scrollDiv = document.createElement('div')
    scrollDiv.className = 'modal-scrollbar-measure'
    this.$body.append(scrollDiv)
    var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth
    this.$body[0].removeChild(scrollDiv)
    return scrollbarWidth
  }


  // MODAL PLUGIN DEFINITION
  // =======================

  function Plugin(option, _relatedTarget) {
    return this.each(function () {
      var $this   = $(this)
      var data    = $this.data('bs.modal')
      var options = $.extend({}, Modal.DEFAULTS, $this.data(), typeof option == 'object' && option)

      if (!data) $this.data('bs.modal', (data = new Modal(this, options)))
      if (typeof option == 'string') data[option](_relatedTarget)
      else if (options.show) data.show(_relatedTarget)
    })
  }

  var old = $.fn.modal

  $.fn.modal             = Plugin
  $.fn.modal.Constructor = Modal


  // MODAL NO CONFLICT
  // =================

  $.fn.modal.noConflict = function () {
    $.fn.modal = old
    return this
  }


  // MODAL DATA-API
  // ==============

  $(document).on('click.bs.modal.data-api', '[data-toggle="modal"]', function (e) {
    var $this   = $(this)
    var href    = $this.attr('href')
    var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) // strip for ie7
    var option  = $target.data('bs.modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data())

    if ($this.is('a')) e.preventDefault()

    $target.one('show.bs.modal', function (showEvent) {
      if (showEvent.isDefaultPrevented()) return // only register focus restorer if modal will actually get shown
      $target.one('hidden.bs.modal', function () {
        $this.is(':visible') && $this.trigger('focus')
      })
    })
    Plugin.call($target, option, this)
  })

}(jQuery);
bootstrap-sass-3.3.5.1/assets/javascripts/bootstrap/dropdown.js0000644000004100000410000001116512556335206024752 0ustar  www-datawww-data/* ========================================================================
 * Bootstrap: dropdown.js v3.3.5
 * http://getbootstrap.com/javascript/#dropdowns
 * ========================================================================
 * Copyright 2011-2015 Twitter, Inc.
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 * ======================================================================== */


+function ($) {
  'use strict';

  // DROPDOWN CLASS DEFINITION
  // =========================

  var backdrop = '.dropdown-backdrop'
  var toggle   = '[data-toggle="dropdown"]'
  var Dropdown = function (element) {
    $(element).on('click.bs.dropdown', this.toggle)
  }

  Dropdown.VERSION = '3.3.5'

  function getParent($this) {
    var selector = $this.attr('data-target')

    if (!selector) {
      selector = $this.attr('href')
      selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
    }

    var $parent = selector && $(selector)

    return $parent && $parent.length ? $parent : $this.parent()
  }

  function clearMenus(e) {
    if (e && e.which === 3) return
    $(backdrop).remove()
    $(toggle).each(function () {
      var $this         = $(this)
      var $parent       = getParent($this)
      var relatedTarget = { relatedTarget: this }

      if (!$parent.hasClass('open')) return

      if (e && e.type == 'click' && /input|textarea/i.test(e.target.tagName) && $.contains($parent[0], e.target)) return

      $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget))

      if (e.isDefaultPrevented()) return

      $this.attr('aria-expanded', 'false')
      $parent.removeClass('open').trigger('hidden.bs.dropdown', relatedTarget)
    })
  }

  Dropdown.prototype.toggle = function (e) {
    var $this = $(this)

    if ($this.is('.disabled, :disabled')) return

    var $parent  = getParent($this)
    var isActive = $parent.hasClass('open')

    clearMenus()

    if (!isActive) {
      if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) {
        // if mobile we use a backdrop because click events don't delegate
        $(document.createElement('div'))
          .addClass('dropdown-backdrop')
          .insertAfter($(this))
          .on('click', clearMenus)
      }

      var relatedTarget = { relatedTarget: this }
      $parent.trigger(e = $.Event('show.bs.dropdown', relatedTarget))

      if (e.isDefaultPrevented()) return

      $this
        .trigger('focus')
        .attr('aria-expanded', 'true')

      $parent
        .toggleClass('open')
        .trigger('shown.bs.dropdown', relatedTarget)
    }

    return false
  }

  Dropdown.prototype.keydown = function (e) {
    if (!/(38|40|27|32)/.test(e.which) || /input|textarea/i.test(e.target.tagName)) return

    var $this = $(this)

    e.preventDefault()
    e.stopPropagation()

    if ($this.is('.disabled, :disabled')) return

    var $parent  = getParent($this)
    var isActive = $parent.hasClass('open')

    if (!isActive && e.which != 27 || isActive && e.which == 27) {
      if (e.which == 27) $parent.find(toggle).trigger('focus')
      return $this.trigger('click')
    }

    var desc = ' li:not(.disabled):visible a'
    var $items = $parent.find('.dropdown-menu' + desc)

    if (!$items.length) return

    var index = $items.index(e.target)

    if (e.which == 38 && index > 0)                 index--         // up
    if (e.which == 40 && index < $items.length - 1) index++         // down
    if (!~index)                                    index = 0

    $items.eq(index).trigger('focus')
  }


  // DROPDOWN PLUGIN DEFINITION
  // ==========================

  function Plugin(option) {
    return this.each(function () {
      var $this = $(this)
      var data  = $this.data('bs.dropdown')

      if (!data) $this.data('bs.dropdown', (data = new Dropdown(this)))
      if (typeof option == 'string') data[option].call($this)
    })
  }

  var old = $.fn.dropdown

  $.fn.dropdown             = Plugin
  $.fn.dropdown.Constructor = Dropdown


  // DROPDOWN NO CONFLICT
  // ====================

  $.fn.dropdown.noConflict = function () {
    $.fn.dropdown = old
    return this
  }


  // APPLY TO STANDARD DROPDOWN ELEMENTS
  // ===================================

  $(document)
    .on('click.bs.dropdown.data-api', clearMenus)
    .on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })
    .on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle)
    .on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown)
    .on('keydown.bs.dropdown.data-api', '.dropdown-menu', Dropdown.prototype.keydown)

}(jQuery);
bootstrap-sass-3.3.5.1/assets/javascripts/bootstrap/transition.js0000644000004100000410000000344712556335206025314 0ustar  www-datawww-data/* ========================================================================
 * Bootstrap: transition.js v3.3.5
 * http://getbootstrap.com/javascript/#transitions
 * ========================================================================
 * Copyright 2011-2015 Twitter, Inc.
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 * ======================================================================== */


+function ($) {
  'use strict';

  // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/)
  // ============================================================

  function transitionEnd() {
    var el = document.createElement('bootstrap')

    var transEndEventNames = {
      WebkitTransition : 'webkitTransitionEnd',
      MozTransition    : 'transitionend',
      OTransition      : 'oTransitionEnd otransitionend',
      transition       : 'transitionend'
    }

    for (var name in transEndEventNames) {
      if (el.style[name] !== undefined) {
        return { end: transEndEventNames[name] }
      }
    }

    return false // explicit for ie8 (  ._.)
  }

  // http://blog.alexmaccaw.com/css-transitions
  $.fn.emulateTransitionEnd = function (duration) {
    var called = false
    var $el = this
    $(this).one('bsTransitionEnd', function () { called = true })
    var callback = function () { if (!called) $($el).trigger($.support.transition.end) }
    setTimeout(callback, duration)
    return this
  }

  $(function () {
    $.support.transition = transitionEnd()

    if (!$.support.transition) return

    $.event.special.bsTransitionEnd = {
      bindType: $.support.transition.end,
      delegateType: $.support.transition.end,
      handle: function (e) {
        if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments)
      }
    }
  })

}(jQuery);
bootstrap-sass-3.3.5.1/assets/javascripts/bootstrap/popover.js0000644000004100000410000000613312556335206024607 0ustar  www-datawww-data/* ========================================================================
 * Bootstrap: popover.js v3.3.5
 * http://getbootstrap.com/javascript/#popovers
 * ========================================================================
 * Copyright 2011-2015 Twitter, Inc.
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 * ======================================================================== */


+function ($) {
  'use strict';

  // POPOVER PUBLIC CLASS DEFINITION
  // ===============================

  var Popover = function (element, options) {
    this.init('popover', element, options)
  }

  if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js')

  Popover.VERSION  = '3.3.5'

  Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, {
    placement: 'right',
    trigger: 'click',
    content: '',
    template: ''
  })


  // NOTE: POPOVER EXTENDS tooltip.js
  // ================================

  Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype)

  Popover.prototype.constructor = Popover

  Popover.prototype.getDefaults = function () {
    return Popover.DEFAULTS
  }

  Popover.prototype.setContent = function () {
    var $tip    = this.tip()
    var title   = this.getTitle()
    var content = this.getContent()

    $tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title)
    $tip.find('.popover-content').children().detach().end()[ // we use append for html objects to maintain js events
      this.options.html ? (typeof content == 'string' ? 'html' : 'append') : 'text'
    ](content)

    $tip.removeClass('fade top bottom left right in')

    // IE8 doesn't accept hiding via the `:empty` pseudo selector, we have to do
    // this manually by checking the contents.
    if (!$tip.find('.popover-title').html()) $tip.find('.popover-title').hide()
  }

  Popover.prototype.hasContent = function () {
    return this.getTitle() || this.getContent()
  }

  Popover.prototype.getContent = function () {
    var $e = this.$element
    var o  = this.options

    return $e.attr('data-content')
      || (typeof o.content == 'function' ?
            o.content.call($e[0]) :
            o.content)
  }

  Popover.prototype.arrow = function () {
    return (this.$arrow = this.$arrow || this.tip().find('.arrow'))
  }


  // POPOVER PLUGIN DEFINITION
  // =========================

  function Plugin(option) {
    return this.each(function () {
      var $this   = $(this)
      var data    = $this.data('bs.popover')
      var options = typeof option == 'object' && option

      if (!data && /destroy|hide/.test(option)) return
      if (!data) $this.data('bs.popover', (data = new Popover(this, options)))
      if (typeof option == 'string') data[option]()
    })
  }

  var old = $.fn.popover

  $.fn.popover             = Plugin
  $.fn.popover.Constructor = Popover


  // POPOVER NO CONFLICT
  // ===================

  $.fn.popover.noConflict = function () {
    $.fn.popover = old
    return this
  }

}(jQuery);
bootstrap-sass-3.3.5.1/assets/javascripts/bootstrap/collapse.js0000644000004100000410000001351312556335206024717 0ustar  www-datawww-data/* ========================================================================
 * Bootstrap: collapse.js v3.3.5
 * http://getbootstrap.com/javascript/#collapse
 * ========================================================================
 * Copyright 2011-2015 Twitter, Inc.
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 * ======================================================================== */


+function ($) {
  'use strict';

  // COLLAPSE PUBLIC CLASS DEFINITION
  // ================================

  var Collapse = function (element, options) {
    this.$element      = $(element)
    this.options       = $.extend({}, Collapse.DEFAULTS, options)
    this.$trigger      = $('[data-toggle="collapse"][href="#' + element.id + '"],' +
                           '[data-toggle="collapse"][data-target="#' + element.id + '"]')
    this.transitioning = null

    if (this.options.parent) {
      this.$parent = this.getParent()
    } else {
      this.addAriaAndCollapsedClass(this.$element, this.$trigger)
    }

    if (this.options.toggle) this.toggle()
  }

  Collapse.VERSION  = '3.3.5'

  Collapse.TRANSITION_DURATION = 350

  Collapse.DEFAULTS = {
    toggle: true
  }

  Collapse.prototype.dimension = function () {
    var hasWidth = this.$element.hasClass('width')
    return hasWidth ? 'width' : 'height'
  }

  Collapse.prototype.show = function () {
    if (this.transitioning || this.$element.hasClass('in')) return

    var activesData
    var actives = this.$parent && this.$parent.children('.panel').children('.in, .collapsing')

    if (actives && actives.length) {
      activesData = actives.data('bs.collapse')
      if (activesData && activesData.transitioning) return
    }

    var startEvent = $.Event('show.bs.collapse')
    this.$element.trigger(startEvent)
    if (startEvent.isDefaultPrevented()) return

    if (actives && actives.length) {
      Plugin.call(actives, 'hide')
      activesData || actives.data('bs.collapse', null)
    }

    var dimension = this.dimension()

    this.$element
      .removeClass('collapse')
      .addClass('collapsing')[dimension](0)
      .attr('aria-expanded', true)

    this.$trigger
      .removeClass('collapsed')
      .attr('aria-expanded', true)

    this.transitioning = 1

    var complete = function () {
      this.$element
        .removeClass('collapsing')
        .addClass('collapse in')[dimension]('')
      this.transitioning = 0
      this.$element
        .trigger('shown.bs.collapse')
    }

    if (!$.support.transition) return complete.call(this)

    var scrollSize = $.camelCase(['scroll', dimension].join('-'))

    this.$element
      .one('bsTransitionEnd', $.proxy(complete, this))
      .emulateTransitionEnd(Collapse.TRANSITION_DURATION)[dimension](this.$element[0][scrollSize])
  }

  Collapse.prototype.hide = function () {
    if (this.transitioning || !this.$element.hasClass('in')) return

    var startEvent = $.Event('hide.bs.collapse')
    this.$element.trigger(startEvent)
    if (startEvent.isDefaultPrevented()) return

    var dimension = this.dimension()

    this.$element[dimension](this.$element[dimension]())[0].offsetHeight

    this.$element
      .addClass('collapsing')
      .removeClass('collapse in')
      .attr('aria-expanded', false)

    this.$trigger
      .addClass('collapsed')
      .attr('aria-expanded', false)

    this.transitioning = 1

    var complete = function () {
      this.transitioning = 0
      this.$element
        .removeClass('collapsing')
        .addClass('collapse')
        .trigger('hidden.bs.collapse')
    }

    if (!$.support.transition) return complete.call(this)

    this.$element
      [dimension](0)
      .one('bsTransitionEnd', $.proxy(complete, this))
      .emulateTransitionEnd(Collapse.TRANSITION_DURATION)
  }

  Collapse.prototype.toggle = function () {
    this[this.$element.hasClass('in') ? 'hide' : 'show']()
  }

  Collapse.prototype.getParent = function () {
    return $(this.options.parent)
      .find('[data-toggle="collapse"][data-parent="' + this.options.parent + '"]')
      .each($.proxy(function (i, element) {
        var $element = $(element)
        this.addAriaAndCollapsedClass(getTargetFromTrigger($element), $element)
      }, this))
      .end()
  }

  Collapse.prototype.addAriaAndCollapsedClass = function ($element, $trigger) {
    var isOpen = $element.hasClass('in')

    $element.attr('aria-expanded', isOpen)
    $trigger
      .toggleClass('collapsed', !isOpen)
      .attr('aria-expanded', isOpen)
  }

  function getTargetFromTrigger($trigger) {
    var href
    var target = $trigger.attr('data-target')
      || (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') // strip for ie7

    return $(target)
  }


  // COLLAPSE PLUGIN DEFINITION
  // ==========================

  function Plugin(option) {
    return this.each(function () {
      var $this   = $(this)
      var data    = $this.data('bs.collapse')
      var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option)

      if (!data && options.toggle && /show|hide/.test(option)) options.toggle = false
      if (!data) $this.data('bs.collapse', (data = new Collapse(this, options)))
      if (typeof option == 'string') data[option]()
    })
  }

  var old = $.fn.collapse

  $.fn.collapse             = Plugin
  $.fn.collapse.Constructor = Collapse


  // COLLAPSE NO CONFLICT
  // ====================

  $.fn.collapse.noConflict = function () {
    $.fn.collapse = old
    return this
  }


  // COLLAPSE DATA-API
  // =================

  $(document).on('click.bs.collapse.data-api', '[data-toggle="collapse"]', function (e) {
    var $this   = $(this)

    if (!$this.attr('data-target')) e.preventDefault()

    var $target = getTargetFromTrigger($this)
    var data    = $target.data('bs.collapse')
    var option  = data ? 'toggle' : $this.data()

    Plugin.call($target, option)
  })

}(jQuery);
bootstrap-sass-3.3.5.1/assets/javascripts/bootstrap/affix.js0000644000004100000410000001134612556335206024214 0ustar  www-datawww-data/* ========================================================================
 * Bootstrap: affix.js v3.3.5
 * http://getbootstrap.com/javascript/#affix
 * ========================================================================
 * Copyright 2011-2015 Twitter, Inc.
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 * ======================================================================== */


+function ($) {
  'use strict';

  // AFFIX CLASS DEFINITION
  // ======================

  var Affix = function (element, options) {
    this.options = $.extend({}, Affix.DEFAULTS, options)

    this.$target = $(this.options.target)
      .on('scroll.bs.affix.data-api', $.proxy(this.checkPosition, this))
      .on('click.bs.affix.data-api',  $.proxy(this.checkPositionWithEventLoop, this))

    this.$element     = $(element)
    this.affixed      = null
    this.unpin        = null
    this.pinnedOffset = null

    this.checkPosition()
  }

  Affix.VERSION  = '3.3.5'

  Affix.RESET    = 'affix affix-top affix-bottom'

  Affix.DEFAULTS = {
    offset: 0,
    target: window
  }

  Affix.prototype.getState = function (scrollHeight, height, offsetTop, offsetBottom) {
    var scrollTop    = this.$target.scrollTop()
    var position     = this.$element.offset()
    var targetHeight = this.$target.height()

    if (offsetTop != null && this.affixed == 'top') return scrollTop < offsetTop ? 'top' : false

    if (this.affixed == 'bottom') {
      if (offsetTop != null) return (scrollTop + this.unpin <= position.top) ? false : 'bottom'
      return (scrollTop + targetHeight <= scrollHeight - offsetBottom) ? false : 'bottom'
    }

    var initializing   = this.affixed == null
    var colliderTop    = initializing ? scrollTop : position.top
    var colliderHeight = initializing ? targetHeight : height

    if (offsetTop != null && scrollTop <= offsetTop) return 'top'
    if (offsetBottom != null && (colliderTop + colliderHeight >= scrollHeight - offsetBottom)) return 'bottom'

    return false
  }

  Affix.prototype.getPinnedOffset = function () {
    if (this.pinnedOffset) return this.pinnedOffset
    this.$element.removeClass(Affix.RESET).addClass('affix')
    var scrollTop = this.$target.scrollTop()
    var position  = this.$element.offset()
    return (this.pinnedOffset = position.top - scrollTop)
  }

  Affix.prototype.checkPositionWithEventLoop = function () {
    setTimeout($.proxy(this.checkPosition, this), 1)
  }

  Affix.prototype.checkPosition = function () {
    if (!this.$element.is(':visible')) return

    var height       = this.$element.height()
    var offset       = this.options.offset
    var offsetTop    = offset.top
    var offsetBottom = offset.bottom
    var scrollHeight = Math.max($(document).height(), $(document.body).height())

    if (typeof offset != 'object')         offsetBottom = offsetTop = offset
    if (typeof offsetTop == 'function')    offsetTop    = offset.top(this.$element)
    if (typeof offsetBottom == 'function') offsetBottom = offset.bottom(this.$element)

    var affix = this.getState(scrollHeight, height, offsetTop, offsetBottom)

    if (this.affixed != affix) {
      if (this.unpin != null) this.$element.css('top', '')

      var affixType = 'affix' + (affix ? '-' + affix : '')
      var e         = $.Event(affixType + '.bs.affix')

      this.$element.trigger(e)

      if (e.isDefaultPrevented()) return

      this.affixed = affix
      this.unpin = affix == 'bottom' ? this.getPinnedOffset() : null

      this.$element
        .removeClass(Affix.RESET)
        .addClass(affixType)
        .trigger(affixType.replace('affix', 'affixed') + '.bs.affix')
    }

    if (affix == 'bottom') {
      this.$element.offset({
        top: scrollHeight - height - offsetBottom
      })
    }
  }


  // AFFIX PLUGIN DEFINITION
  // =======================

  function Plugin(option) {
    return this.each(function () {
      var $this   = $(this)
      var data    = $this.data('bs.affix')
      var options = typeof option == 'object' && option

      if (!data) $this.data('bs.affix', (data = new Affix(this, options)))
      if (typeof option == 'string') data[option]()
    })
  }

  var old = $.fn.affix

  $.fn.affix             = Plugin
  $.fn.affix.Constructor = Affix


  // AFFIX NO CONFLICT
  // =================

  $.fn.affix.noConflict = function () {
    $.fn.affix = old
    return this
  }


  // AFFIX DATA-API
  // ==============

  $(window).on('load', function () {
    $('[data-spy="affix"]').each(function () {
      var $spy = $(this)
      var data = $spy.data()

      data.offset = data.offset || {}

      if (data.offsetBottom != null) data.offset.bottom = data.offsetBottom
      if (data.offsetTop    != null) data.offset.top    = data.offsetTop

      Plugin.call($spy, data)
    })
  })

}(jQuery);
bootstrap-sass-3.3.5.1/assets/javascripts/bootstrap/scrollspy.js0000644000004100000410000001114312556335206025144 0ustar  www-datawww-data/* ========================================================================
 * Bootstrap: scrollspy.js v3.3.5
 * http://getbootstrap.com/javascript/#scrollspy
 * ========================================================================
 * Copyright 2011-2015 Twitter, Inc.
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 * ======================================================================== */


+function ($) {
  'use strict';

  // SCROLLSPY CLASS DEFINITION
  // ==========================

  function ScrollSpy(element, options) {
    this.$body          = $(document.body)
    this.$scrollElement = $(element).is(document.body) ? $(window) : $(element)
    this.options        = $.extend({}, ScrollSpy.DEFAULTS, options)
    this.selector       = (this.options.target || '') + ' .nav li > a'
    this.offsets        = []
    this.targets        = []
    this.activeTarget   = null
    this.scrollHeight   = 0

    this.$scrollElement.on('scroll.bs.scrollspy', $.proxy(this.process, this))
    this.refresh()
    this.process()
  }

  ScrollSpy.VERSION  = '3.3.5'

  ScrollSpy.DEFAULTS = {
    offset: 10
  }

  ScrollSpy.prototype.getScrollHeight = function () {
    return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight)
  }

  ScrollSpy.prototype.refresh = function () {
    var that          = this
    var offsetMethod  = 'offset'
    var offsetBase    = 0

    this.offsets      = []
    this.targets      = []
    this.scrollHeight = this.getScrollHeight()

    if (!$.isWindow(this.$scrollElement[0])) {
      offsetMethod = 'position'
      offsetBase   = this.$scrollElement.scrollTop()
    }

    this.$body
      .find(this.selector)
      .map(function () {
        var $el   = $(this)
        var href  = $el.data('target') || $el.attr('href')
        var $href = /^#./.test(href) && $(href)

        return ($href
          && $href.length
          && $href.is(':visible')
          && [[$href[offsetMethod]().top + offsetBase, href]]) || null
      })
      .sort(function (a, b) { return a[0] - b[0] })
      .each(function () {
        that.offsets.push(this[0])
        that.targets.push(this[1])
      })
  }

  ScrollSpy.prototype.process = function () {
    var scrollTop    = this.$scrollElement.scrollTop() + this.options.offset
    var scrollHeight = this.getScrollHeight()
    var maxScroll    = this.options.offset + scrollHeight - this.$scrollElement.height()
    var offsets      = this.offsets
    var targets      = this.targets
    var activeTarget = this.activeTarget
    var i

    if (this.scrollHeight != scrollHeight) {
      this.refresh()
    }

    if (scrollTop >= maxScroll) {
      return activeTarget != (i = targets[targets.length - 1]) && this.activate(i)
    }

    if (activeTarget && scrollTop < offsets[0]) {
      this.activeTarget = null
      return this.clear()
    }

    for (i = offsets.length; i--;) {
      activeTarget != targets[i]
        && scrollTop >= offsets[i]
        && (offsets[i + 1] === undefined || scrollTop < offsets[i + 1])
        && this.activate(targets[i])
    }
  }

  ScrollSpy.prototype.activate = function (target) {
    this.activeTarget = target

    this.clear()

    var selector = this.selector +
      '[data-target="' + target + '"],' +
      this.selector + '[href="' + target + '"]'

    var active = $(selector)
      .parents('li')
      .addClass('active')

    if (active.parent('.dropdown-menu').length) {
      active = active
        .closest('li.dropdown')
        .addClass('active')
    }

    active.trigger('activate.bs.scrollspy')
  }

  ScrollSpy.prototype.clear = function () {
    $(this.selector)
      .parentsUntil(this.options.target, '.active')
      .removeClass('active')
  }


  // SCROLLSPY PLUGIN DEFINITION
  // ===========================

  function Plugin(option) {
    return this.each(function () {
      var $this   = $(this)
      var data    = $this.data('bs.scrollspy')
      var options = typeof option == 'object' && option

      if (!data) $this.data('bs.scrollspy', (data = new ScrollSpy(this, options)))
      if (typeof option == 'string') data[option]()
    })
  }

  var old = $.fn.scrollspy

  $.fn.scrollspy             = Plugin
  $.fn.scrollspy.Constructor = ScrollSpy


  // SCROLLSPY NO CONFLICT
  // =====================

  $.fn.scrollspy.noConflict = function () {
    $.fn.scrollspy = old
    return this
  }


  // SCROLLSPY DATA-API
  // ==================

  $(window).on('load.bs.scrollspy.data-api', function () {
    $('[data-spy="scroll"]').each(function () {
      var $spy = $(this)
      Plugin.call($spy, $spy.data())
    })
  })

}(jQuery);
bootstrap-sass-3.3.5.1/assets/javascripts/bootstrap/button.js0000644000004100000410000000673212556335206024435 0ustar  www-datawww-data/* ========================================================================
 * Bootstrap: button.js v3.3.5
 * http://getbootstrap.com/javascript/#buttons
 * ========================================================================
 * Copyright 2011-2015 Twitter, Inc.
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 * ======================================================================== */


+function ($) {
  'use strict';

  // BUTTON PUBLIC CLASS DEFINITION
  // ==============================

  var Button = function (element, options) {
    this.$element  = $(element)
    this.options   = $.extend({}, Button.DEFAULTS, options)
    this.isLoading = false
  }

  Button.VERSION  = '3.3.5'

  Button.DEFAULTS = {
    loadingText: 'loading...'
  }

  Button.prototype.setState = function (state) {
    var d    = 'disabled'
    var $el  = this.$element
    var val  = $el.is('input') ? 'val' : 'html'
    var data = $el.data()

    state += 'Text'

    if (data.resetText == null) $el.data('resetText', $el[val]())

    // push to event loop to allow forms to submit
    setTimeout($.proxy(function () {
      $el[val](data[state] == null ? this.options[state] : data[state])

      if (state == 'loadingText') {
        this.isLoading = true
        $el.addClass(d).attr(d, d)
      } else if (this.isLoading) {
        this.isLoading = false
        $el.removeClass(d).removeAttr(d)
      }
    }, this), 0)
  }

  Button.prototype.toggle = function () {
    var changed = true
    var $parent = this.$element.closest('[data-toggle="buttons"]')

    if ($parent.length) {
      var $input = this.$element.find('input')
      if ($input.prop('type') == 'radio') {
        if ($input.prop('checked')) changed = false
        $parent.find('.active').removeClass('active')
        this.$element.addClass('active')
      } else if ($input.prop('type') == 'checkbox') {
        if (($input.prop('checked')) !== this.$element.hasClass('active')) changed = false
        this.$element.toggleClass('active')
      }
      $input.prop('checked', this.$element.hasClass('active'))
      if (changed) $input.trigger('change')
    } else {
      this.$element.attr('aria-pressed', !this.$element.hasClass('active'))
      this.$element.toggleClass('active')
    }
  }


  // BUTTON PLUGIN DEFINITION
  // ========================

  function Plugin(option) {
    return this.each(function () {
      var $this   = $(this)
      var data    = $this.data('bs.button')
      var options = typeof option == 'object' && option

      if (!data) $this.data('bs.button', (data = new Button(this, options)))

      if (option == 'toggle') data.toggle()
      else if (option) data.setState(option)
    })
  }

  var old = $.fn.button

  $.fn.button             = Plugin
  $.fn.button.Constructor = Button


  // BUTTON NO CONFLICT
  // ==================

  $.fn.button.noConflict = function () {
    $.fn.button = old
    return this
  }


  // BUTTON DATA-API
  // ===============

  $(document)
    .on('click.bs.button.data-api', '[data-toggle^="button"]', function (e) {
      var $btn = $(e.target)
      if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn')
      Plugin.call($btn, 'toggle')
      if (!($(e.target).is('input[type="radio"]') || $(e.target).is('input[type="checkbox"]'))) e.preventDefault()
    })
    .on('focus.bs.button.data-api blur.bs.button.data-api', '[data-toggle^="button"]', function (e) {
      $(e.target).closest('.btn').toggleClass('focus', /^focus(in)?$/.test(e.type))
    })

}(jQuery);
bootstrap-sass-3.3.5.1/assets/javascripts/bootstrap/carousel.js0000644000004100000410000001574512556335206024743 0ustar  www-datawww-data/* ========================================================================
 * Bootstrap: carousel.js v3.3.5
 * http://getbootstrap.com/javascript/#carousel
 * ========================================================================
 * Copyright 2011-2015 Twitter, Inc.
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 * ======================================================================== */


+function ($) {
  'use strict';

  // CAROUSEL CLASS DEFINITION
  // =========================

  var Carousel = function (element, options) {
    this.$element    = $(element)
    this.$indicators = this.$element.find('.carousel-indicators')
    this.options     = options
    this.paused      = null
    this.sliding     = null
    this.interval    = null
    this.$active     = null
    this.$items      = null

    this.options.keyboard && this.$element.on('keydown.bs.carousel', $.proxy(this.keydown, this))

    this.options.pause == 'hover' && !('ontouchstart' in document.documentElement) && this.$element
      .on('mouseenter.bs.carousel', $.proxy(this.pause, this))
      .on('mouseleave.bs.carousel', $.proxy(this.cycle, this))
  }

  Carousel.VERSION  = '3.3.5'

  Carousel.TRANSITION_DURATION = 600

  Carousel.DEFAULTS = {
    interval: 5000,
    pause: 'hover',
    wrap: true,
    keyboard: true
  }

  Carousel.prototype.keydown = function (e) {
    if (/input|textarea/i.test(e.target.tagName)) return
    switch (e.which) {
      case 37: this.prev(); break
      case 39: this.next(); break
      default: return
    }

    e.preventDefault()
  }

  Carousel.prototype.cycle = function (e) {
    e || (this.paused = false)

    this.interval && clearInterval(this.interval)

    this.options.interval
      && !this.paused
      && (this.interval = setInterval($.proxy(this.next, this), this.options.interval))

    return this
  }

  Carousel.prototype.getItemIndex = function (item) {
    this.$items = item.parent().children('.item')
    return this.$items.index(item || this.$active)
  }

  Carousel.prototype.getItemForDirection = function (direction, active) {
    var activeIndex = this.getItemIndex(active)
    var willWrap = (direction == 'prev' && activeIndex === 0)
                || (direction == 'next' && activeIndex == (this.$items.length - 1))
    if (willWrap && !this.options.wrap) return active
    var delta = direction == 'prev' ? -1 : 1
    var itemIndex = (activeIndex + delta) % this.$items.length
    return this.$items.eq(itemIndex)
  }

  Carousel.prototype.to = function (pos) {
    var that        = this
    var activeIndex = this.getItemIndex(this.$active = this.$element.find('.item.active'))

    if (pos > (this.$items.length - 1) || pos < 0) return

    if (this.sliding)       return this.$element.one('slid.bs.carousel', function () { that.to(pos) }) // yes, "slid"
    if (activeIndex == pos) return this.pause().cycle()

    return this.slide(pos > activeIndex ? 'next' : 'prev', this.$items.eq(pos))
  }

  Carousel.prototype.pause = function (e) {
    e || (this.paused = true)

    if (this.$element.find('.next, .prev').length && $.support.transition) {
      this.$element.trigger($.support.transition.end)
      this.cycle(true)
    }

    this.interval = clearInterval(this.interval)

    return this
  }

  Carousel.prototype.next = function () {
    if (this.sliding) return
    return this.slide('next')
  }

  Carousel.prototype.prev = function () {
    if (this.sliding) return
    return this.slide('prev')
  }

  Carousel.prototype.slide = function (type, next) {
    var $active   = this.$element.find('.item.active')
    var $next     = next || this.getItemForDirection(type, $active)
    var isCycling = this.interval
    var direction = type == 'next' ? 'left' : 'right'
    var that      = this

    if ($next.hasClass('active')) return (this.sliding = false)

    var relatedTarget = $next[0]
    var slideEvent = $.Event('slide.bs.carousel', {
      relatedTarget: relatedTarget,
      direction: direction
    })
    this.$element.trigger(slideEvent)
    if (slideEvent.isDefaultPrevented()) return

    this.sliding = true

    isCycling && this.pause()

    if (this.$indicators.length) {
      this.$indicators.find('.active').removeClass('active')
      var $nextIndicator = $(this.$indicators.children()[this.getItemIndex($next)])
      $nextIndicator && $nextIndicator.addClass('active')
    }

    var slidEvent = $.Event('slid.bs.carousel', { relatedTarget: relatedTarget, direction: direction }) // yes, "slid"
    if ($.support.transition && this.$element.hasClass('slide')) {
      $next.addClass(type)
      $next[0].offsetWidth // force reflow
      $active.addClass(direction)
      $next.addClass(direction)
      $active
        .one('bsTransitionEnd', function () {
          $next.removeClass([type, direction].join(' ')).addClass('active')
          $active.removeClass(['active', direction].join(' '))
          that.sliding = false
          setTimeout(function () {
            that.$element.trigger(slidEvent)
          }, 0)
        })
        .emulateTransitionEnd(Carousel.TRANSITION_DURATION)
    } else {
      $active.removeClass('active')
      $next.addClass('active')
      this.sliding = false
      this.$element.trigger(slidEvent)
    }

    isCycling && this.cycle()

    return this
  }


  // CAROUSEL PLUGIN DEFINITION
  // ==========================

  function Plugin(option) {
    return this.each(function () {
      var $this   = $(this)
      var data    = $this.data('bs.carousel')
      var options = $.extend({}, Carousel.DEFAULTS, $this.data(), typeof option == 'object' && option)
      var action  = typeof option == 'string' ? option : options.slide

      if (!data) $this.data('bs.carousel', (data = new Carousel(this, options)))
      if (typeof option == 'number') data.to(option)
      else if (action) data[action]()
      else if (options.interval) data.pause().cycle()
    })
  }

  var old = $.fn.carousel

  $.fn.carousel             = Plugin
  $.fn.carousel.Constructor = Carousel


  // CAROUSEL NO CONFLICT
  // ====================

  $.fn.carousel.noConflict = function () {
    $.fn.carousel = old
    return this
  }


  // CAROUSEL DATA-API
  // =================

  var clickHandler = function (e) {
    var href
    var $this   = $(this)
    var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) // strip for ie7
    if (!$target.hasClass('carousel')) return
    var options = $.extend({}, $target.data(), $this.data())
    var slideIndex = $this.attr('data-slide-to')
    if (slideIndex) options.interval = false

    Plugin.call($target, options)

    if (slideIndex) {
      $target.data('bs.carousel').to(slideIndex)
    }

    e.preventDefault()
  }

  $(document)
    .on('click.bs.carousel.data-api', '[data-slide]', clickHandler)
    .on('click.bs.carousel.data-api', '[data-slide-to]', clickHandler)

  $(window).on('load', function () {
    $('[data-ride="carousel"]').each(function () {
      var $carousel = $(this)
      Plugin.call($carousel, $carousel.data())
    })
  })

}(jQuery);
bootstrap-sass-3.3.5.1/assets/javascripts/bootstrap/tooltip.js0000644000004100000410000003773112556335206024617 0ustar  www-datawww-data/* ========================================================================
 * Bootstrap: tooltip.js v3.3.5
 * http://getbootstrap.com/javascript/#tooltip
 * Inspired by the original jQuery.tipsy by Jason Frame
 * ========================================================================
 * Copyright 2011-2015 Twitter, Inc.
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 * ======================================================================== */


+function ($) {
  'use strict';

  // TOOLTIP PUBLIC CLASS DEFINITION
  // ===============================

  var Tooltip = function (element, options) {
    this.type       = null
    this.options    = null
    this.enabled    = null
    this.timeout    = null
    this.hoverState = null
    this.$element   = null
    this.inState    = null

    this.init('tooltip', element, options)
  }

  Tooltip.VERSION  = '3.3.5'

  Tooltip.TRANSITION_DURATION = 150

  Tooltip.DEFAULTS = {
    animation: true,
    placement: 'top',
    selector: false,
    template: '',
    trigger: 'hover focus',
    title: '',
    delay: 0,
    html: false,
    container: false,
    viewport: {
      selector: 'body',
      padding: 0
    }
  }

  Tooltip.prototype.init = function (type, element, options) {
    this.enabled   = true
    this.type      = type
    this.$element  = $(element)
    this.options   = this.getOptions(options)
    this.$viewport = this.options.viewport && $($.isFunction(this.options.viewport) ? this.options.viewport.call(this, this.$element) : (this.options.viewport.selector || this.options.viewport))
    this.inState   = { click: false, hover: false, focus: false }

    if (this.$element[0] instanceof document.constructor && !this.options.selector) {
      throw new Error('`selector` option must be specified when initializing ' + this.type + ' on the window.document object!')
    }

    var triggers = this.options.trigger.split(' ')

    for (var i = triggers.length; i--;) {
      var trigger = triggers[i]

      if (trigger == 'click') {
        this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))
      } else if (trigger != 'manual') {
        var eventIn  = trigger == 'hover' ? 'mouseenter' : 'focusin'
        var eventOut = trigger == 'hover' ? 'mouseleave' : 'focusout'

        this.$element.on(eventIn  + '.' + this.type, this.options.selector, $.proxy(this.enter, this))
        this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this))
      }
    }

    this.options.selector ?
      (this._options = $.extend({}, this.options, { trigger: 'manual', selector: '' })) :
      this.fixTitle()
  }

  Tooltip.prototype.getDefaults = function () {
    return Tooltip.DEFAULTS
  }

  Tooltip.prototype.getOptions = function (options) {
    options = $.extend({}, this.getDefaults(), this.$element.data(), options)

    if (options.delay && typeof options.delay == 'number') {
      options.delay = {
        show: options.delay,
        hide: options.delay
      }
    }

    return options
  }

  Tooltip.prototype.getDelegateOptions = function () {
    var options  = {}
    var defaults = this.getDefaults()

    this._options && $.each(this._options, function (key, value) {
      if (defaults[key] != value) options[key] = value
    })

    return options
  }

  Tooltip.prototype.enter = function (obj) {
    var self = obj instanceof this.constructor ?
      obj : $(obj.currentTarget).data('bs.' + this.type)

    if (!self) {
      self = new this.constructor(obj.currentTarget, this.getDelegateOptions())
      $(obj.currentTarget).data('bs.' + this.type, self)
    }

    if (obj instanceof $.Event) {
      self.inState[obj.type == 'focusin' ? 'focus' : 'hover'] = true
    }

    if (self.tip().hasClass('in') || self.hoverState == 'in') {
      self.hoverState = 'in'
      return
    }

    clearTimeout(self.timeout)

    self.hoverState = 'in'

    if (!self.options.delay || !self.options.delay.show) return self.show()

    self.timeout = setTimeout(function () {
      if (self.hoverState == 'in') self.show()
    }, self.options.delay.show)
  }

  Tooltip.prototype.isInStateTrue = function () {
    for (var key in this.inState) {
      if (this.inState[key]) return true
    }

    return false
  }

  Tooltip.prototype.leave = function (obj) {
    var self = obj instanceof this.constructor ?
      obj : $(obj.currentTarget).data('bs.' + this.type)

    if (!self) {
      self = new this.constructor(obj.currentTarget, this.getDelegateOptions())
      $(obj.currentTarget).data('bs.' + this.type, self)
    }

    if (obj instanceof $.Event) {
      self.inState[obj.type == 'focusout' ? 'focus' : 'hover'] = false
    }

    if (self.isInStateTrue()) return

    clearTimeout(self.timeout)

    self.hoverState = 'out'

    if (!self.options.delay || !self.options.delay.hide) return self.hide()

    self.timeout = setTimeout(function () {
      if (self.hoverState == 'out') self.hide()
    }, self.options.delay.hide)
  }

  Tooltip.prototype.show = function () {
    var e = $.Event('show.bs.' + this.type)

    if (this.hasContent() && this.enabled) {
      this.$element.trigger(e)

      var inDom = $.contains(this.$element[0].ownerDocument.documentElement, this.$element[0])
      if (e.isDefaultPrevented() || !inDom) return
      var that = this

      var $tip = this.tip()

      var tipId = this.getUID(this.type)

      this.setContent()
      $tip.attr('id', tipId)
      this.$element.attr('aria-describedby', tipId)

      if (this.options.animation) $tip.addClass('fade')

      var placement = typeof this.options.placement == 'function' ?
        this.options.placement.call(this, $tip[0], this.$element[0]) :
        this.options.placement

      var autoToken = /\s?auto?\s?/i
      var autoPlace = autoToken.test(placement)
      if (autoPlace) placement = placement.replace(autoToken, '') || 'top'

      $tip
        .detach()
        .css({ top: 0, left: 0, display: 'block' })
        .addClass(placement)
        .data('bs.' + this.type, this)

      this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element)
      this.$element.trigger('inserted.bs.' + this.type)

      var pos          = this.getPosition()
      var actualWidth  = $tip[0].offsetWidth
      var actualHeight = $tip[0].offsetHeight

      if (autoPlace) {
        var orgPlacement = placement
        var viewportDim = this.getPosition(this.$viewport)

        placement = placement == 'bottom' && pos.bottom + actualHeight > viewportDim.bottom ? 'top'    :
                    placement == 'top'    && pos.top    - actualHeight < viewportDim.top    ? 'bottom' :
                    placement == 'right'  && pos.right  + actualWidth  > viewportDim.width  ? 'left'   :
                    placement == 'left'   && pos.left   - actualWidth  < viewportDim.left   ? 'right'  :
                    placement

        $tip
          .removeClass(orgPlacement)
          .addClass(placement)
      }

      var calculatedOffset = this.getCalculatedOffset(placement, pos, actualWidth, actualHeight)

      this.applyPlacement(calculatedOffset, placement)

      var complete = function () {
        var prevHoverState = that.hoverState
        that.$element.trigger('shown.bs.' + that.type)
        that.hoverState = null

        if (prevHoverState == 'out') that.leave(that)
      }

      $.support.transition && this.$tip.hasClass('fade') ?
        $tip
          .one('bsTransitionEnd', complete)
          .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :
        complete()
    }
  }

  Tooltip.prototype.applyPlacement = function (offset, placement) {
    var $tip   = this.tip()
    var width  = $tip[0].offsetWidth
    var height = $tip[0].offsetHeight

    // manually read margins because getBoundingClientRect includes difference
    var marginTop = parseInt($tip.css('margin-top'), 10)
    var marginLeft = parseInt($tip.css('margin-left'), 10)

    // we must check for NaN for ie 8/9
    if (isNaN(marginTop))  marginTop  = 0
    if (isNaN(marginLeft)) marginLeft = 0

    offset.top  += marginTop
    offset.left += marginLeft

    // $.fn.offset doesn't round pixel values
    // so we use setOffset directly with our own function B-0
    $.offset.setOffset($tip[0], $.extend({
      using: function (props) {
        $tip.css({
          top: Math.round(props.top),
          left: Math.round(props.left)
        })
      }
    }, offset), 0)

    $tip.addClass('in')

    // check to see if placing tip in new offset caused the tip to resize itself
    var actualWidth  = $tip[0].offsetWidth
    var actualHeight = $tip[0].offsetHeight

    if (placement == 'top' && actualHeight != height) {
      offset.top = offset.top + height - actualHeight
    }

    var delta = this.getViewportAdjustedDelta(placement, offset, actualWidth, actualHeight)

    if (delta.left) offset.left += delta.left
    else offset.top += delta.top

    var isVertical          = /top|bottom/.test(placement)
    var arrowDelta          = isVertical ? delta.left * 2 - width + actualWidth : delta.top * 2 - height + actualHeight
    var arrowOffsetPosition = isVertical ? 'offsetWidth' : 'offsetHeight'

    $tip.offset(offset)
    this.replaceArrow(arrowDelta, $tip[0][arrowOffsetPosition], isVertical)
  }

  Tooltip.prototype.replaceArrow = function (delta, dimension, isVertical) {
    this.arrow()
      .css(isVertical ? 'left' : 'top', 50 * (1 - delta / dimension) + '%')
      .css(isVertical ? 'top' : 'left', '')
  }

  Tooltip.prototype.setContent = function () {
    var $tip  = this.tip()
    var title = this.getTitle()

    $tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title)
    $tip.removeClass('fade in top bottom left right')
  }

  Tooltip.prototype.hide = function (callback) {
    var that = this
    var $tip = $(this.$tip)
    var e    = $.Event('hide.bs.' + this.type)

    function complete() {
      if (that.hoverState != 'in') $tip.detach()
      that.$element
        .removeAttr('aria-describedby')
        .trigger('hidden.bs.' + that.type)
      callback && callback()
    }

    this.$element.trigger(e)

    if (e.isDefaultPrevented()) return

    $tip.removeClass('in')

    $.support.transition && $tip.hasClass('fade') ?
      $tip
        .one('bsTransitionEnd', complete)
        .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :
      complete()

    this.hoverState = null

    return this
  }

  Tooltip.prototype.fixTitle = function () {
    var $e = this.$element
    if ($e.attr('title') || typeof $e.attr('data-original-title') != 'string') {
      $e.attr('data-original-title', $e.attr('title') || '').attr('title', '')
    }
  }

  Tooltip.prototype.hasContent = function () {
    return this.getTitle()
  }

  Tooltip.prototype.getPosition = function ($element) {
    $element   = $element || this.$element

    var el     = $element[0]
    var isBody = el.tagName == 'BODY'

    var elRect    = el.getBoundingClientRect()
    if (elRect.width == null) {
      // width and height are missing in IE8, so compute them manually; see https://github.com/twbs/bootstrap/issues/14093
      elRect = $.extend({}, elRect, { width: elRect.right - elRect.left, height: elRect.bottom - elRect.top })
    }
    var elOffset  = isBody ? { top: 0, left: 0 } : $element.offset()
    var scroll    = { scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.scrollTop() }
    var outerDims = isBody ? { width: $(window).width(), height: $(window).height() } : null

    return $.extend({}, elRect, scroll, outerDims, elOffset)
  }

  Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) {
    return placement == 'bottom' ? { top: pos.top + pos.height,   left: pos.left + pos.width / 2 - actualWidth / 2 } :
           placement == 'top'    ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } :
           placement == 'left'   ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } :
        /* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width }

  }

  Tooltip.prototype.getViewportAdjustedDelta = function (placement, pos, actualWidth, actualHeight) {
    var delta = { top: 0, left: 0 }
    if (!this.$viewport) return delta

    var viewportPadding = this.options.viewport && this.options.viewport.padding || 0
    var viewportDimensions = this.getPosition(this.$viewport)

    if (/right|left/.test(placement)) {
      var topEdgeOffset    = pos.top - viewportPadding - viewportDimensions.scroll
      var bottomEdgeOffset = pos.top + viewportPadding - viewportDimensions.scroll + actualHeight
      if (topEdgeOffset < viewportDimensions.top) { // top overflow
        delta.top = viewportDimensions.top - topEdgeOffset
      } else if (bottomEdgeOffset > viewportDimensions.top + viewportDimensions.height) { // bottom overflow
        delta.top = viewportDimensions.top + viewportDimensions.height - bottomEdgeOffset
      }
    } else {
      var leftEdgeOffset  = pos.left - viewportPadding
      var rightEdgeOffset = pos.left + viewportPadding + actualWidth
      if (leftEdgeOffset < viewportDimensions.left) { // left overflow
        delta.left = viewportDimensions.left - leftEdgeOffset
      } else if (rightEdgeOffset > viewportDimensions.right) { // right overflow
        delta.left = viewportDimensions.left + viewportDimensions.width - rightEdgeOffset
      }
    }

    return delta
  }

  Tooltip.prototype.getTitle = function () {
    var title
    var $e = this.$element
    var o  = this.options

    title = $e.attr('data-original-title')
      || (typeof o.title == 'function' ? o.title.call($e[0]) :  o.title)

    return title
  }

  Tooltip.prototype.getUID = function (prefix) {
    do prefix += ~~(Math.random() * 1000000)
    while (document.getElementById(prefix))
    return prefix
  }

  Tooltip.prototype.tip = function () {
    if (!this.$tip) {
      this.$tip = $(this.options.template)
      if (this.$tip.length != 1) {
        throw new Error(this.type + ' `template` option must consist of exactly 1 top-level element!')
      }
    }
    return this.$tip
  }

  Tooltip.prototype.arrow = function () {
    return (this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow'))
  }

  Tooltip.prototype.enable = function () {
    this.enabled = true
  }

  Tooltip.prototype.disable = function () {
    this.enabled = false
  }

  Tooltip.prototype.toggleEnabled = function () {
    this.enabled = !this.enabled
  }

  Tooltip.prototype.toggle = function (e) {
    var self = this
    if (e) {
      self = $(e.currentTarget).data('bs.' + this.type)
      if (!self) {
        self = new this.constructor(e.currentTarget, this.getDelegateOptions())
        $(e.currentTarget).data('bs.' + this.type, self)
      }
    }

    if (e) {
      self.inState.click = !self.inState.click
      if (self.isInStateTrue()) self.enter(self)
      else self.leave(self)
    } else {
      self.tip().hasClass('in') ? self.leave(self) : self.enter(self)
    }
  }

  Tooltip.prototype.destroy = function () {
    var that = this
    clearTimeout(this.timeout)
    this.hide(function () {
      that.$element.off('.' + that.type).removeData('bs.' + that.type)
      if (that.$tip) {
        that.$tip.detach()
      }
      that.$tip = null
      that.$arrow = null
      that.$viewport = null
    })
  }


  // TOOLTIP PLUGIN DEFINITION
  // =========================

  function Plugin(option) {
    return this.each(function () {
      var $this   = $(this)
      var data    = $this.data('bs.tooltip')
      var options = typeof option == 'object' && option

      if (!data && /destroy|hide/.test(option)) return
      if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options)))
      if (typeof option == 'string') data[option]()
    })
  }

  var old = $.fn.tooltip

  $.fn.tooltip             = Plugin
  $.fn.tooltip.Constructor = Tooltip


  // TOOLTIP NO CONFLICT
  // ===================

  $.fn.tooltip.noConflict = function () {
    $.fn.tooltip = old
    return this
  }

}(jQuery);
bootstrap-sass-3.3.5.1/assets/javascripts/bootstrap-sprockets.js0000644000004100000410000000057512556335206025134 0ustar  www-datawww-data//= require ./bootstrap/affix
//= require ./bootstrap/alert
//= require ./bootstrap/button
//= require ./bootstrap/carousel
//= require ./bootstrap/collapse
//= require ./bootstrap/dropdown
//= require ./bootstrap/tab
//= require ./bootstrap/transition
//= require ./bootstrap/scrollspy
//= require ./bootstrap/modal
//= require ./bootstrap/tooltip
//= require ./bootstrap/popover
bootstrap-sass-3.3.5.1/assets/javascripts/bootstrap.min.js0000644000004100000410000010772012556335206023703 0ustar  www-datawww-data/*!
 * Bootstrap v3.3.5 (http://getbootstrap.com)
 * Copyright 2011-2015 Twitter, Inc.
 * Licensed under the MIT license
 */
if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){"use strict";var b=a.fn.jquery.split(" ")[0].split(".");if(b[0]<2&&b[1]<9||1==b[0]&&9==b[1]&&b[2]<1)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher")}(jQuery),+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one("bsTransitionEnd",function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b(),a.support.transition&&(a.event.special.bsTransitionEnd={bindType:a.support.transition.end,delegateType:a.support.transition.end,handle:function(b){return a(b.target).is(this)?b.handleObj.handler.apply(this,arguments):void 0}})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var c=a(this),e=c.data("bs.alert");e||c.data("bs.alert",e=new d(this)),"string"==typeof b&&e[b].call(c)})}var c='[data-dismiss="alert"]',d=function(b){a(b).on("click",c,this.close)};d.VERSION="3.3.5",d.TRANSITION_DURATION=150,d.prototype.close=function(b){function c(){g.detach().trigger("closed.bs.alert").remove()}var e=a(this),f=e.attr("data-target");f||(f=e.attr("href"),f=f&&f.replace(/.*(?=#[^\s]*$)/,""));var g=a(f);b&&b.preventDefault(),g.length||(g=e.closest(".alert")),g.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(g.removeClass("in"),a.support.transition&&g.hasClass("fade")?g.one("bsTransitionEnd",c).emulateTransitionEnd(d.TRANSITION_DURATION):c())};var e=a.fn.alert;a.fn.alert=b,a.fn.alert.Constructor=d,a.fn.alert.noConflict=function(){return a.fn.alert=e,this},a(document).on("click.bs.alert.data-api",c,d.prototype.close)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof b&&b;e||d.data("bs.button",e=new c(this,f)),"toggle"==b?e.toggle():b&&e.setState(b)})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.isLoading=!1};c.VERSION="3.3.5",c.DEFAULTS={loadingText:"loading..."},c.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",null==f.resetText&&d.data("resetText",d[e]()),setTimeout(a.proxy(function(){d[e](null==f[b]?this.options[b]:f[b]),"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c))},this),0)},c.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")?(c.prop("checked")&&(a=!1),b.find(".active").removeClass("active"),this.$element.addClass("active")):"checkbox"==c.prop("type")&&(c.prop("checked")!==this.$element.hasClass("active")&&(a=!1),this.$element.toggleClass("active")),c.prop("checked",this.$element.hasClass("active")),a&&c.trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active")),this.$element.toggleClass("active")};var d=a.fn.button;a.fn.button=b,a.fn.button.Constructor=c,a.fn.button.noConflict=function(){return a.fn.button=d,this},a(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(c){var d=a(c.target);d.hasClass("btn")||(d=d.closest(".btn")),b.call(d,"toggle"),a(c.target).is('input[type="radio"]')||a(c.target).is('input[type="checkbox"]')||c.preventDefault()}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(b){a(b.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(b.type))})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b),g="string"==typeof b?b:f.slide;e||d.data("bs.carousel",e=new c(this,f)),"number"==typeof b?e.to(b):g?e[g]():f.interval&&e.pause().cycle()})}var c=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=null,this.sliding=null,this.interval=null,this.$active=null,this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",a.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",a.proxy(this.pause,this)).on("mouseleave.bs.carousel",a.proxy(this.cycle,this))};c.VERSION="3.3.5",c.TRANSITION_DURATION=600,c.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},c.prototype.keydown=function(a){if(!/input|textarea/i.test(a.target.tagName)){switch(a.which){case 37:this.prev();break;case 39:this.next();break;default:return}a.preventDefault()}},c.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},c.prototype.getItemIndex=function(a){return this.$items=a.parent().children(".item"),this.$items.index(a||this.$active)},c.prototype.getItemForDirection=function(a,b){var c=this.getItemIndex(b),d="prev"==a&&0===c||"next"==a&&c==this.$items.length-1;if(d&&!this.options.wrap)return b;var e="prev"==a?-1:1,f=(c+e)%this.$items.length;return this.$items.eq(f)},c.prototype.to=function(a){var b=this,c=this.getItemIndex(this.$active=this.$element.find(".item.active"));return a>this.$items.length-1||0>a?void 0:this.sliding?this.$element.one("slid.bs.carousel",function(){b.to(a)}):c==a?this.pause().cycle():this.slide(a>c?"next":"prev",this.$items.eq(a))},c.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){return this.sliding?void 0:this.slide("next")},c.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},c.prototype.slide=function(b,d){var e=this.$element.find(".item.active"),f=d||this.getItemForDirection(b,e),g=this.interval,h="next"==b?"left":"right",i=this;if(f.hasClass("active"))return this.sliding=!1;var j=f[0],k=a.Event("slide.bs.carousel",{relatedTarget:j,direction:h});if(this.$element.trigger(k),!k.isDefaultPrevented()){if(this.sliding=!0,g&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var l=a(this.$indicators.children()[this.getItemIndex(f)]);l&&l.addClass("active")}var m=a.Event("slid.bs.carousel",{relatedTarget:j,direction:h});return a.support.transition&&this.$element.hasClass("slide")?(f.addClass(b),f[0].offsetWidth,e.addClass(h),f.addClass(h),e.one("bsTransitionEnd",function(){f.removeClass([b,h].join(" ")).addClass("active"),e.removeClass(["active",h].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger(m)},0)}).emulateTransitionEnd(c.TRANSITION_DURATION)):(e.removeClass("active"),f.addClass("active"),this.sliding=!1,this.$element.trigger(m)),g&&this.cycle(),this}};var d=a.fn.carousel;a.fn.carousel=b,a.fn.carousel.Constructor=c,a.fn.carousel.noConflict=function(){return a.fn.carousel=d,this};var e=function(c){var d,e=a(this),f=a(e.attr("data-target")||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""));if(f.hasClass("carousel")){var g=a.extend({},f.data(),e.data()),h=e.attr("data-slide-to");h&&(g.interval=!1),b.call(f,g),h&&f.data("bs.carousel").to(h),c.preventDefault()}};a(document).on("click.bs.carousel.data-api","[data-slide]",e).on("click.bs.carousel.data-api","[data-slide-to]",e),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var c=a(this);b.call(c,c.data())})})}(jQuery),+function(a){"use strict";function b(b){var c,d=b.attr("data-target")||(c=b.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"");return a(d)}function c(b){return this.each(function(){var c=a(this),e=c.data("bs.collapse"),f=a.extend({},d.DEFAULTS,c.data(),"object"==typeof b&&b);!e&&f.toggle&&/show|hide/.test(b)&&(f.toggle=!1),e||c.data("bs.collapse",e=new d(this,f)),"string"==typeof b&&e[b]()})}var d=function(b,c){this.$element=a(b),this.options=a.extend({},d.DEFAULTS,c),this.$trigger=a('[data-toggle="collapse"][href="#'+b.id+'"],[data-toggle="collapse"][data-target="#'+b.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};d.VERSION="3.3.5",d.TRANSITION_DURATION=350,d.DEFAULTS={toggle:!0},d.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},d.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b,e=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(e&&e.length&&(b=e.data("bs.collapse"),b&&b.transitioning))){var f=a.Event("show.bs.collapse");if(this.$element.trigger(f),!f.isDefaultPrevented()){e&&e.length&&(c.call(e,"hide"),b||e.data("bs.collapse",null));var g=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[g](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var h=function(){this.$element.removeClass("collapsing").addClass("collapse in")[g](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return h.call(this);var i=a.camelCase(["scroll",g].join("-"));this.$element.one("bsTransitionEnd",a.proxy(h,this)).emulateTransitionEnd(d.TRANSITION_DURATION)[g](this.$element[0][i])}}}},d.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var e=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return a.support.transition?void this.$element[c](0).one("bsTransitionEnd",a.proxy(e,this)).emulateTransitionEnd(d.TRANSITION_DURATION):e.call(this)}}},d.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},d.prototype.getParent=function(){return a(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(a.proxy(function(c,d){var e=a(d);this.addAriaAndCollapsedClass(b(e),e)},this)).end()},d.prototype.addAriaAndCollapsedClass=function(a,b){var c=a.hasClass("in");a.attr("aria-expanded",c),b.toggleClass("collapsed",!c).attr("aria-expanded",c)};var e=a.fn.collapse;a.fn.collapse=c,a.fn.collapse.Constructor=d,a.fn.collapse.noConflict=function(){return a.fn.collapse=e,this},a(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(d){var e=a(this);e.attr("data-target")||d.preventDefault();var f=b(e),g=f.data("bs.collapse"),h=g?"toggle":e.data();c.call(f,h)})}(jQuery),+function(a){"use strict";function b(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}function c(c){c&&3===c.which||(a(e).remove(),a(f).each(function(){var d=a(this),e=b(d),f={relatedTarget:this};e.hasClass("open")&&(c&&"click"==c.type&&/input|textarea/i.test(c.target.tagName)&&a.contains(e[0],c.target)||(e.trigger(c=a.Event("hide.bs.dropdown",f)),c.isDefaultPrevented()||(d.attr("aria-expanded","false"),e.removeClass("open").trigger("hidden.bs.dropdown",f))))}))}function d(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new g(this)),"string"==typeof b&&d[b].call(c)})}var e=".dropdown-backdrop",f='[data-toggle="dropdown"]',g=function(b){a(b).on("click.bs.dropdown",this.toggle)};g.VERSION="3.3.5",g.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=b(e),g=f.hasClass("open");if(c(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(a(this)).on("click",c);var h={relatedTarget:this};if(f.trigger(d=a.Event("show.bs.dropdown",h)),d.isDefaultPrevented())return;e.trigger("focus").attr("aria-expanded","true"),f.toggleClass("open").trigger("shown.bs.dropdown",h)}return!1}},g.prototype.keydown=function(c){if(/(38|40|27|32)/.test(c.which)&&!/input|textarea/i.test(c.target.tagName)){var d=a(this);if(c.preventDefault(),c.stopPropagation(),!d.is(".disabled, :disabled")){var e=b(d),g=e.hasClass("open");if(!g&&27!=c.which||g&&27==c.which)return 27==c.which&&e.find(f).trigger("focus"),d.trigger("click");var h=" li:not(.disabled):visible a",i=e.find(".dropdown-menu"+h);if(i.length){var j=i.index(c.target);38==c.which&&j>0&&j--,40==c.which&&jdocument.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&a?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!a?this.scrollbarWidth:""})},c.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},c.prototype.checkScrollbar=function(){var a=window.innerWidth;if(!a){var b=document.documentElement.getBoundingClientRect();a=b.right-Math.abs(b.left)}this.bodyIsOverflowing=document.body.clientWidth
',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},c.prototype.init=function(b,c,d){if(this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.$viewport=this.options.viewport&&a(a.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focusin",i="hover"==g?"mouseleave":"focusout";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},c.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},c.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusin"==b.type?"focus":"hover"]=!0),c.tip().hasClass("in")||"in"==c.hoverState?void(c.hoverState="in"):(clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?void(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show)):c.show())},c.prototype.isInStateTrue=function(){for(var a in this.inState)if(this.inState[a])return!0;return!1},c.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusout"==b.type?"focus":"hover"]=!1),c.isInStateTrue()?void 0:(clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?void(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide)):c.hide())},c.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(b);var d=a.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(b.isDefaultPrevented()||!d)return;var e=this,f=this.tip(),g=this.getUID(this.type);this.setContent(),f.attr("id",g),this.$element.attr("aria-describedby",g),this.options.animation&&f.addClass("fade");var h="function"==typeof this.options.placement?this.options.placement.call(this,f[0],this.$element[0]):this.options.placement,i=/\s?auto?\s?/i,j=i.test(h);j&&(h=h.replace(i,"")||"top"),f.detach().css({top:0,left:0,display:"block"}).addClass(h).data("bs."+this.type,this),this.options.container?f.appendTo(this.options.container):f.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var k=this.getPosition(),l=f[0].offsetWidth,m=f[0].offsetHeight;if(j){var n=h,o=this.getPosition(this.$viewport);h="bottom"==h&&k.bottom+m>o.bottom?"top":"top"==h&&k.top-mo.width?"left":"left"==h&&k.left-lg.top+g.height&&(e.top=g.top+g.height-i)}else{var j=b.left-f,k=b.left+f+c;jg.right&&(e.left=g.left+g.width-k)}return e},c.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[0]):c.title)},c.prototype.getUID=function(a){do a+=~~(1e6*Math.random());while(document.getElementById(a));return a},c.prototype.tip=function(){if(!this.$tip&&(this.$tip=a(this.options.template),1!=this.$tip.length))throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!");return this.$tip},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},c.prototype.enable=function(){this.enabled=!0},c.prototype.disable=function(){this.enabled=!1},c.prototype.toggleEnabled=function(){this.enabled=!this.enabled},c.prototype.toggle=function(b){var c=this;b&&(c=a(b.currentTarget).data("bs."+this.type),c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c))),b?(c.inState.click=!c.inState.click,c.isInStateTrue()?c.enter(c):c.leave(c)):c.tip().hasClass("in")?c.leave(c):c.enter(c)},c.prototype.destroy=function(){var a=this;clearTimeout(this.timeout),this.hide(function(){a.$element.off("."+a.type).removeData("bs."+a.type),a.$tip&&a.$tip.detach(),a.$tip=null,a.$arrow=null,a.$viewport=null})};var d=a.fn.tooltip;a.fn.tooltip=b,a.fn.tooltip.Constructor=c,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=d,this}}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof b&&b;(e||!/destroy|hide/.test(b))&&(e||d.data("bs.popover",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");c.VERSION="3.3.5",c.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:''}),c.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),c.prototype.constructor=c,c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content").children().detach().end()[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},c.prototype.hasContent=function(){return this.getTitle()||this.getContent()},c.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var d=a.fn.popover;a.fn.popover=b,a.fn.popover.Constructor=c,a.fn.popover.noConflict=function(){return a.fn.popover=d,this}}(jQuery),+function(a){"use strict";function b(c,d){this.$body=a(document.body),this.$scrollElement=a(a(c).is(document.body)?window:c),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",a.proxy(this.process,this)),this.refresh(),this.process()}function c(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})}b.VERSION="3.3.5",b.DEFAULTS={offset:10},b.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},b.prototype.refresh=function(){var b=this,c="offset",d=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),a.isWindow(this.$scrollElement[0])||(c="position",d=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map(function(){var b=a(this),e=b.data("target")||b.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[c]().top+d,e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){b.offsets.push(this[0]),b.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.getScrollHeight(),d=this.options.offset+c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(this.scrollHeight!=c&&this.refresh(),b>=d)return g!=(a=f[f.length-1])&&this.activate(a);if(g&&b=e[a]&&(void 0===e[a+1]||b .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),b.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),h?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu").length&&b.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),e&&e()}var g=d.find("> .active"),h=e&&a.support.transition&&(g.length&&g.hasClass("fade")||!!d.find("> .fade").length);g.length&&h?g.one("bsTransitionEnd",f).emulateTransitionEnd(c.TRANSITION_DURATION):f(),g.removeClass("in")};var d=a.fn.tab;a.fn.tab=b,a.fn.tab.Constructor=c,a.fn.tab.noConflict=function(){return a.fn.tab=d,this};var e=function(c){c.preventDefault(),b.call(a(this),"show")};a(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',e).on("click.bs.tab.data-api",'[data-toggle="pill"]',e)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof b&&b;e||d.data("bs.affix",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.options=a.extend({},c.DEFAULTS,d),this.$target=a(this.options.target).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(b),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};c.VERSION="3.3.5",c.RESET="affix affix-top affix-bottom",c.DEFAULTS={offset:0,target:window},c.prototype.getState=function(a,b,c,d){var e=this.$target.scrollTop(),f=this.$element.offset(),g=this.$target.height();if(null!=c&&"top"==this.affixed)return c>e?"top":!1;if("bottom"==this.affixed)return null!=c?e+this.unpin<=f.top?!1:"bottom":a-d>=e+g?!1:"bottom";var h=null==this.affixed,i=h?e:f.top,j=h?g:b;return null!=c&&c>=e?"top":null!=d&&i+j>=a-d?"bottom":!1},c.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(c.RESET).addClass("affix");var a=this.$target.scrollTop(),b=this.$element.offset();return this.pinnedOffset=b.top-a},c.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},c.prototype.checkPosition=function(){if(this.$element.is(":visible")){var b=this.$element.height(),d=this.options.offset,e=d.top,f=d.bottom,g=Math.max(a(document).height(),a(document.body).height());"object"!=typeof d&&(f=e=d),"function"==typeof e&&(e=d.top(this.$element)),"function"==typeof f&&(f=d.bottom(this.$element));var h=this.getState(g,b,e,f);if(this.affixed!=h){null!=this.unpin&&this.$element.css("top","");var i="affix"+(h?"-"+h:""),j=a.Event(i+".bs.affix");if(this.$element.trigger(j),j.isDefaultPrevented())return;this.affixed=h,this.unpin="bottom"==h?this.getPinnedOffset():null,this.$element.removeClass(c.RESET).addClass(i).trigger(i.replace("affix","affixed")+".bs.affix")}"bottom"==h&&this.$element.offset({top:g-b-f})}};var d=a.fn.affix;a.fn.affix=b,a.fn.affix.Constructor=c,a.fn.affix.noConflict=function(){return a.fn.affix=d,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var c=a(this),d=c.data();d.offset=d.offset||{},null!=d.offsetBottom&&(d.offset.bottom=d.offsetBottom),null!=d.offsetTop&&(d.offset.top=d.offsetTop),b.call(c,d)})})}(jQuery);bootstrap-sass-3.3.5.1/assets/javascripts/bootstrap.js0000644000004100000410000020643212556335206023121 0ustar www-datawww-data/*! * Bootstrap v3.3.5 (http://getbootstrap.com) * Copyright 2011-2015 Twitter, Inc. * Licensed under the MIT license */ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript requires jQuery') } +function ($) { 'use strict'; var version = $.fn.jquery.split(' ')[0].split('.') if ((version[0] < 2 && version[1] < 9) || (version[0] == 1 && version[1] == 9 && version[2] < 1)) { throw new Error('Bootstrap\'s JavaScript requires jQuery version 1.9.1 or higher') } }(jQuery); /* ======================================================================== * Bootstrap: transition.js v3.3.5 * http://getbootstrap.com/javascript/#transitions * ======================================================================== * Copyright 2011-2015 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * ======================================================================== */ +function ($) { 'use strict'; // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/) // ============================================================ function transitionEnd() { var el = document.createElement('bootstrap') var transEndEventNames = { WebkitTransition : 'webkitTransitionEnd', MozTransition : 'transitionend', OTransition : 'oTransitionEnd otransitionend', transition : 'transitionend' } for (var name in transEndEventNames) { if (el.style[name] !== undefined) { return { end: transEndEventNames[name] } } } return false // explicit for ie8 ( ._.) } // http://blog.alexmaccaw.com/css-transitions $.fn.emulateTransitionEnd = function (duration) { var called = false var $el = this $(this).one('bsTransitionEnd', function () { called = true }) var callback = function () { if (!called) $($el).trigger($.support.transition.end) } setTimeout(callback, duration) return this } $(function () { $.support.transition = transitionEnd() if (!$.support.transition) return $.event.special.bsTransitionEnd = { bindType: $.support.transition.end, delegateType: $.support.transition.end, handle: function (e) { if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments) } } }) }(jQuery); /* ======================================================================== * Bootstrap: alert.js v3.3.5 * http://getbootstrap.com/javascript/#alerts * ======================================================================== * Copyright 2011-2015 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * ======================================================================== */ +function ($) { 'use strict'; // ALERT CLASS DEFINITION // ====================== var dismiss = '[data-dismiss="alert"]' var Alert = function (el) { $(el).on('click', dismiss, this.close) } Alert.VERSION = '3.3.5' Alert.TRANSITION_DURATION = 150 Alert.prototype.close = function (e) { var $this = $(this) var selector = $this.attr('data-target') if (!selector) { selector = $this.attr('href') selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7 } var $parent = $(selector) if (e) e.preventDefault() if (!$parent.length) { $parent = $this.closest('.alert') } $parent.trigger(e = $.Event('close.bs.alert')) if (e.isDefaultPrevented()) return $parent.removeClass('in') function removeElement() { // detach from parent, fire event then clean up data $parent.detach().trigger('closed.bs.alert').remove() } $.support.transition && $parent.hasClass('fade') ? $parent .one('bsTransitionEnd', removeElement) .emulateTransitionEnd(Alert.TRANSITION_DURATION) : removeElement() } // ALERT PLUGIN DEFINITION // ======================= function Plugin(option) { return this.each(function () { var $this = $(this) var data = $this.data('bs.alert') if (!data) $this.data('bs.alert', (data = new Alert(this))) if (typeof option == 'string') data[option].call($this) }) } var old = $.fn.alert $.fn.alert = Plugin $.fn.alert.Constructor = Alert // ALERT NO CONFLICT // ================= $.fn.alert.noConflict = function () { $.fn.alert = old return this } // ALERT DATA-API // ============== $(document).on('click.bs.alert.data-api', dismiss, Alert.prototype.close) }(jQuery); /* ======================================================================== * Bootstrap: button.js v3.3.5 * http://getbootstrap.com/javascript/#buttons * ======================================================================== * Copyright 2011-2015 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * ======================================================================== */ +function ($) { 'use strict'; // BUTTON PUBLIC CLASS DEFINITION // ============================== var Button = function (element, options) { this.$element = $(element) this.options = $.extend({}, Button.DEFAULTS, options) this.isLoading = false } Button.VERSION = '3.3.5' Button.DEFAULTS = { loadingText: 'loading...' } Button.prototype.setState = function (state) { var d = 'disabled' var $el = this.$element var val = $el.is('input') ? 'val' : 'html' var data = $el.data() state += 'Text' if (data.resetText == null) $el.data('resetText', $el[val]()) // push to event loop to allow forms to submit setTimeout($.proxy(function () { $el[val](data[state] == null ? this.options[state] : data[state]) if (state == 'loadingText') { this.isLoading = true $el.addClass(d).attr(d, d) } else if (this.isLoading) { this.isLoading = false $el.removeClass(d).removeAttr(d) } }, this), 0) } Button.prototype.toggle = function () { var changed = true var $parent = this.$element.closest('[data-toggle="buttons"]') if ($parent.length) { var $input = this.$element.find('input') if ($input.prop('type') == 'radio') { if ($input.prop('checked')) changed = false $parent.find('.active').removeClass('active') this.$element.addClass('active') } else if ($input.prop('type') == 'checkbox') { if (($input.prop('checked')) !== this.$element.hasClass('active')) changed = false this.$element.toggleClass('active') } $input.prop('checked', this.$element.hasClass('active')) if (changed) $input.trigger('change') } else { this.$element.attr('aria-pressed', !this.$element.hasClass('active')) this.$element.toggleClass('active') } } // BUTTON PLUGIN DEFINITION // ======================== function Plugin(option) { return this.each(function () { var $this = $(this) var data = $this.data('bs.button') var options = typeof option == 'object' && option if (!data) $this.data('bs.button', (data = new Button(this, options))) if (option == 'toggle') data.toggle() else if (option) data.setState(option) }) } var old = $.fn.button $.fn.button = Plugin $.fn.button.Constructor = Button // BUTTON NO CONFLICT // ================== $.fn.button.noConflict = function () { $.fn.button = old return this } // BUTTON DATA-API // =============== $(document) .on('click.bs.button.data-api', '[data-toggle^="button"]', function (e) { var $btn = $(e.target) if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn') Plugin.call($btn, 'toggle') if (!($(e.target).is('input[type="radio"]') || $(e.target).is('input[type="checkbox"]'))) e.preventDefault() }) .on('focus.bs.button.data-api blur.bs.button.data-api', '[data-toggle^="button"]', function (e) { $(e.target).closest('.btn').toggleClass('focus', /^focus(in)?$/.test(e.type)) }) }(jQuery); /* ======================================================================== * Bootstrap: carousel.js v3.3.5 * http://getbootstrap.com/javascript/#carousel * ======================================================================== * Copyright 2011-2015 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * ======================================================================== */ +function ($) { 'use strict'; // CAROUSEL CLASS DEFINITION // ========================= var Carousel = function (element, options) { this.$element = $(element) this.$indicators = this.$element.find('.carousel-indicators') this.options = options this.paused = null this.sliding = null this.interval = null this.$active = null this.$items = null this.options.keyboard && this.$element.on('keydown.bs.carousel', $.proxy(this.keydown, this)) this.options.pause == 'hover' && !('ontouchstart' in document.documentElement) && this.$element .on('mouseenter.bs.carousel', $.proxy(this.pause, this)) .on('mouseleave.bs.carousel', $.proxy(this.cycle, this)) } Carousel.VERSION = '3.3.5' Carousel.TRANSITION_DURATION = 600 Carousel.DEFAULTS = { interval: 5000, pause: 'hover', wrap: true, keyboard: true } Carousel.prototype.keydown = function (e) { if (/input|textarea/i.test(e.target.tagName)) return switch (e.which) { case 37: this.prev(); break case 39: this.next(); break default: return } e.preventDefault() } Carousel.prototype.cycle = function (e) { e || (this.paused = false) this.interval && clearInterval(this.interval) this.options.interval && !this.paused && (this.interval = setInterval($.proxy(this.next, this), this.options.interval)) return this } Carousel.prototype.getItemIndex = function (item) { this.$items = item.parent().children('.item') return this.$items.index(item || this.$active) } Carousel.prototype.getItemForDirection = function (direction, active) { var activeIndex = this.getItemIndex(active) var willWrap = (direction == 'prev' && activeIndex === 0) || (direction == 'next' && activeIndex == (this.$items.length - 1)) if (willWrap && !this.options.wrap) return active var delta = direction == 'prev' ? -1 : 1 var itemIndex = (activeIndex + delta) % this.$items.length return this.$items.eq(itemIndex) } Carousel.prototype.to = function (pos) { var that = this var activeIndex = this.getItemIndex(this.$active = this.$element.find('.item.active')) if (pos > (this.$items.length - 1) || pos < 0) return if (this.sliding) return this.$element.one('slid.bs.carousel', function () { that.to(pos) }) // yes, "slid" if (activeIndex == pos) return this.pause().cycle() return this.slide(pos > activeIndex ? 'next' : 'prev', this.$items.eq(pos)) } Carousel.prototype.pause = function (e) { e || (this.paused = true) if (this.$element.find('.next, .prev').length && $.support.transition) { this.$element.trigger($.support.transition.end) this.cycle(true) } this.interval = clearInterval(this.interval) return this } Carousel.prototype.next = function () { if (this.sliding) return return this.slide('next') } Carousel.prototype.prev = function () { if (this.sliding) return return this.slide('prev') } Carousel.prototype.slide = function (type, next) { var $active = this.$element.find('.item.active') var $next = next || this.getItemForDirection(type, $active) var isCycling = this.interval var direction = type == 'next' ? 'left' : 'right' var that = this if ($next.hasClass('active')) return (this.sliding = false) var relatedTarget = $next[0] var slideEvent = $.Event('slide.bs.carousel', { relatedTarget: relatedTarget, direction: direction }) this.$element.trigger(slideEvent) if (slideEvent.isDefaultPrevented()) return this.sliding = true isCycling && this.pause() if (this.$indicators.length) { this.$indicators.find('.active').removeClass('active') var $nextIndicator = $(this.$indicators.children()[this.getItemIndex($next)]) $nextIndicator && $nextIndicator.addClass('active') } var slidEvent = $.Event('slid.bs.carousel', { relatedTarget: relatedTarget, direction: direction }) // yes, "slid" if ($.support.transition && this.$element.hasClass('slide')) { $next.addClass(type) $next[0].offsetWidth // force reflow $active.addClass(direction) $next.addClass(direction) $active .one('bsTransitionEnd', function () { $next.removeClass([type, direction].join(' ')).addClass('active') $active.removeClass(['active', direction].join(' ')) that.sliding = false setTimeout(function () { that.$element.trigger(slidEvent) }, 0) }) .emulateTransitionEnd(Carousel.TRANSITION_DURATION) } else { $active.removeClass('active') $next.addClass('active') this.sliding = false this.$element.trigger(slidEvent) } isCycling && this.cycle() return this } // CAROUSEL PLUGIN DEFINITION // ========================== function Plugin(option) { return this.each(function () { var $this = $(this) var data = $this.data('bs.carousel') var options = $.extend({}, Carousel.DEFAULTS, $this.data(), typeof option == 'object' && option) var action = typeof option == 'string' ? option : options.slide if (!data) $this.data('bs.carousel', (data = new Carousel(this, options))) if (typeof option == 'number') data.to(option) else if (action) data[action]() else if (options.interval) data.pause().cycle() }) } var old = $.fn.carousel $.fn.carousel = Plugin $.fn.carousel.Constructor = Carousel // CAROUSEL NO CONFLICT // ==================== $.fn.carousel.noConflict = function () { $.fn.carousel = old return this } // CAROUSEL DATA-API // ================= var clickHandler = function (e) { var href var $this = $(this) var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) // strip for ie7 if (!$target.hasClass('carousel')) return var options = $.extend({}, $target.data(), $this.data()) var slideIndex = $this.attr('data-slide-to') if (slideIndex) options.interval = false Plugin.call($target, options) if (slideIndex) { $target.data('bs.carousel').to(slideIndex) } e.preventDefault() } $(document) .on('click.bs.carousel.data-api', '[data-slide]', clickHandler) .on('click.bs.carousel.data-api', '[data-slide-to]', clickHandler) $(window).on('load', function () { $('[data-ride="carousel"]').each(function () { var $carousel = $(this) Plugin.call($carousel, $carousel.data()) }) }) }(jQuery); /* ======================================================================== * Bootstrap: collapse.js v3.3.5 * http://getbootstrap.com/javascript/#collapse * ======================================================================== * Copyright 2011-2015 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * ======================================================================== */ +function ($) { 'use strict'; // COLLAPSE PUBLIC CLASS DEFINITION // ================================ var Collapse = function (element, options) { this.$element = $(element) this.options = $.extend({}, Collapse.DEFAULTS, options) this.$trigger = $('[data-toggle="collapse"][href="#' + element.id + '"],' + '[data-toggle="collapse"][data-target="#' + element.id + '"]') this.transitioning = null if (this.options.parent) { this.$parent = this.getParent() } else { this.addAriaAndCollapsedClass(this.$element, this.$trigger) } if (this.options.toggle) this.toggle() } Collapse.VERSION = '3.3.5' Collapse.TRANSITION_DURATION = 350 Collapse.DEFAULTS = { toggle: true } Collapse.prototype.dimension = function () { var hasWidth = this.$element.hasClass('width') return hasWidth ? 'width' : 'height' } Collapse.prototype.show = function () { if (this.transitioning || this.$element.hasClass('in')) return var activesData var actives = this.$parent && this.$parent.children('.panel').children('.in, .collapsing') if (actives && actives.length) { activesData = actives.data('bs.collapse') if (activesData && activesData.transitioning) return } var startEvent = $.Event('show.bs.collapse') this.$element.trigger(startEvent) if (startEvent.isDefaultPrevented()) return if (actives && actives.length) { Plugin.call(actives, 'hide') activesData || actives.data('bs.collapse', null) } var dimension = this.dimension() this.$element .removeClass('collapse') .addClass('collapsing')[dimension](0) .attr('aria-expanded', true) this.$trigger .removeClass('collapsed') .attr('aria-expanded', true) this.transitioning = 1 var complete = function () { this.$element .removeClass('collapsing') .addClass('collapse in')[dimension]('') this.transitioning = 0 this.$element .trigger('shown.bs.collapse') } if (!$.support.transition) return complete.call(this) var scrollSize = $.camelCase(['scroll', dimension].join('-')) this.$element .one('bsTransitionEnd', $.proxy(complete, this)) .emulateTransitionEnd(Collapse.TRANSITION_DURATION)[dimension](this.$element[0][scrollSize]) } Collapse.prototype.hide = function () { if (this.transitioning || !this.$element.hasClass('in')) return var startEvent = $.Event('hide.bs.collapse') this.$element.trigger(startEvent) if (startEvent.isDefaultPrevented()) return var dimension = this.dimension() this.$element[dimension](this.$element[dimension]())[0].offsetHeight this.$element .addClass('collapsing') .removeClass('collapse in') .attr('aria-expanded', false) this.$trigger .addClass('collapsed') .attr('aria-expanded', false) this.transitioning = 1 var complete = function () { this.transitioning = 0 this.$element .removeClass('collapsing') .addClass('collapse') .trigger('hidden.bs.collapse') } if (!$.support.transition) return complete.call(this) this.$element [dimension](0) .one('bsTransitionEnd', $.proxy(complete, this)) .emulateTransitionEnd(Collapse.TRANSITION_DURATION) } Collapse.prototype.toggle = function () { this[this.$element.hasClass('in') ? 'hide' : 'show']() } Collapse.prototype.getParent = function () { return $(this.options.parent) .find('[data-toggle="collapse"][data-parent="' + this.options.parent + '"]') .each($.proxy(function (i, element) { var $element = $(element) this.addAriaAndCollapsedClass(getTargetFromTrigger($element), $element) }, this)) .end() } Collapse.prototype.addAriaAndCollapsedClass = function ($element, $trigger) { var isOpen = $element.hasClass('in') $element.attr('aria-expanded', isOpen) $trigger .toggleClass('collapsed', !isOpen) .attr('aria-expanded', isOpen) } function getTargetFromTrigger($trigger) { var href var target = $trigger.attr('data-target') || (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') // strip for ie7 return $(target) } // COLLAPSE PLUGIN DEFINITION // ========================== function Plugin(option) { return this.each(function () { var $this = $(this) var data = $this.data('bs.collapse') var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option) if (!data && options.toggle && /show|hide/.test(option)) options.toggle = false if (!data) $this.data('bs.collapse', (data = new Collapse(this, options))) if (typeof option == 'string') data[option]() }) } var old = $.fn.collapse $.fn.collapse = Plugin $.fn.collapse.Constructor = Collapse // COLLAPSE NO CONFLICT // ==================== $.fn.collapse.noConflict = function () { $.fn.collapse = old return this } // COLLAPSE DATA-API // ================= $(document).on('click.bs.collapse.data-api', '[data-toggle="collapse"]', function (e) { var $this = $(this) if (!$this.attr('data-target')) e.preventDefault() var $target = getTargetFromTrigger($this) var data = $target.data('bs.collapse') var option = data ? 'toggle' : $this.data() Plugin.call($target, option) }) }(jQuery); /* ======================================================================== * Bootstrap: dropdown.js v3.3.5 * http://getbootstrap.com/javascript/#dropdowns * ======================================================================== * Copyright 2011-2015 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * ======================================================================== */ +function ($) { 'use strict'; // DROPDOWN CLASS DEFINITION // ========================= var backdrop = '.dropdown-backdrop' var toggle = '[data-toggle="dropdown"]' var Dropdown = function (element) { $(element).on('click.bs.dropdown', this.toggle) } Dropdown.VERSION = '3.3.5' function getParent($this) { var selector = $this.attr('data-target') if (!selector) { selector = $this.attr('href') selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7 } var $parent = selector && $(selector) return $parent && $parent.length ? $parent : $this.parent() } function clearMenus(e) { if (e && e.which === 3) return $(backdrop).remove() $(toggle).each(function () { var $this = $(this) var $parent = getParent($this) var relatedTarget = { relatedTarget: this } if (!$parent.hasClass('open')) return if (e && e.type == 'click' && /input|textarea/i.test(e.target.tagName) && $.contains($parent[0], e.target)) return $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget)) if (e.isDefaultPrevented()) return $this.attr('aria-expanded', 'false') $parent.removeClass('open').trigger('hidden.bs.dropdown', relatedTarget) }) } Dropdown.prototype.toggle = function (e) { var $this = $(this) if ($this.is('.disabled, :disabled')) return var $parent = getParent($this) var isActive = $parent.hasClass('open') clearMenus() if (!isActive) { if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) { // if mobile we use a backdrop because click events don't delegate $(document.createElement('div')) .addClass('dropdown-backdrop') .insertAfter($(this)) .on('click', clearMenus) } var relatedTarget = { relatedTarget: this } $parent.trigger(e = $.Event('show.bs.dropdown', relatedTarget)) if (e.isDefaultPrevented()) return $this .trigger('focus') .attr('aria-expanded', 'true') $parent .toggleClass('open') .trigger('shown.bs.dropdown', relatedTarget) } return false } Dropdown.prototype.keydown = function (e) { if (!/(38|40|27|32)/.test(e.which) || /input|textarea/i.test(e.target.tagName)) return var $this = $(this) e.preventDefault() e.stopPropagation() if ($this.is('.disabled, :disabled')) return var $parent = getParent($this) var isActive = $parent.hasClass('open') if (!isActive && e.which != 27 || isActive && e.which == 27) { if (e.which == 27) $parent.find(toggle).trigger('focus') return $this.trigger('click') } var desc = ' li:not(.disabled):visible a' var $items = $parent.find('.dropdown-menu' + desc) if (!$items.length) return var index = $items.index(e.target) if (e.which == 38 && index > 0) index-- // up if (e.which == 40 && index < $items.length - 1) index++ // down if (!~index) index = 0 $items.eq(index).trigger('focus') } // DROPDOWN PLUGIN DEFINITION // ========================== function Plugin(option) { return this.each(function () { var $this = $(this) var data = $this.data('bs.dropdown') if (!data) $this.data('bs.dropdown', (data = new Dropdown(this))) if (typeof option == 'string') data[option].call($this) }) } var old = $.fn.dropdown $.fn.dropdown = Plugin $.fn.dropdown.Constructor = Dropdown // DROPDOWN NO CONFLICT // ==================== $.fn.dropdown.noConflict = function () { $.fn.dropdown = old return this } // APPLY TO STANDARD DROPDOWN ELEMENTS // =================================== $(document) .on('click.bs.dropdown.data-api', clearMenus) .on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() }) .on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle) .on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown) .on('keydown.bs.dropdown.data-api', '.dropdown-menu', Dropdown.prototype.keydown) }(jQuery); /* ======================================================================== * Bootstrap: modal.js v3.3.5 * http://getbootstrap.com/javascript/#modals * ======================================================================== * Copyright 2011-2015 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * ======================================================================== */ +function ($) { 'use strict'; // MODAL CLASS DEFINITION // ====================== var Modal = function (element, options) { this.options = options this.$body = $(document.body) this.$element = $(element) this.$dialog = this.$element.find('.modal-dialog') this.$backdrop = null this.isShown = null this.originalBodyPad = null this.scrollbarWidth = 0 this.ignoreBackdropClick = false if (this.options.remote) { this.$element .find('.modal-content') .load(this.options.remote, $.proxy(function () { this.$element.trigger('loaded.bs.modal') }, this)) } } Modal.VERSION = '3.3.5' Modal.TRANSITION_DURATION = 300 Modal.BACKDROP_TRANSITION_DURATION = 150 Modal.DEFAULTS = { backdrop: true, keyboard: true, show: true } Modal.prototype.toggle = function (_relatedTarget) { return this.isShown ? this.hide() : this.show(_relatedTarget) } Modal.prototype.show = function (_relatedTarget) { var that = this var e = $.Event('show.bs.modal', { relatedTarget: _relatedTarget }) this.$element.trigger(e) if (this.isShown || e.isDefaultPrevented()) return this.isShown = true this.checkScrollbar() this.setScrollbar() this.$body.addClass('modal-open') this.escape() this.resize() this.$element.on('click.dismiss.bs.modal', '[data-dismiss="modal"]', $.proxy(this.hide, this)) this.$dialog.on('mousedown.dismiss.bs.modal', function () { that.$element.one('mouseup.dismiss.bs.modal', function (e) { if ($(e.target).is(that.$element)) that.ignoreBackdropClick = true }) }) this.backdrop(function () { var transition = $.support.transition && that.$element.hasClass('fade') if (!that.$element.parent().length) { that.$element.appendTo(that.$body) // don't move modals dom position } that.$element .show() .scrollTop(0) that.adjustDialog() if (transition) { that.$element[0].offsetWidth // force reflow } that.$element.addClass('in') that.enforceFocus() var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget }) transition ? that.$dialog // wait for modal to slide in .one('bsTransitionEnd', function () { that.$element.trigger('focus').trigger(e) }) .emulateTransitionEnd(Modal.TRANSITION_DURATION) : that.$element.trigger('focus').trigger(e) }) } Modal.prototype.hide = function (e) { if (e) e.preventDefault() e = $.Event('hide.bs.modal') this.$element.trigger(e) if (!this.isShown || e.isDefaultPrevented()) return this.isShown = false this.escape() this.resize() $(document).off('focusin.bs.modal') this.$element .removeClass('in') .off('click.dismiss.bs.modal') .off('mouseup.dismiss.bs.modal') this.$dialog.off('mousedown.dismiss.bs.modal') $.support.transition && this.$element.hasClass('fade') ? this.$element .one('bsTransitionEnd', $.proxy(this.hideModal, this)) .emulateTransitionEnd(Modal.TRANSITION_DURATION) : this.hideModal() } Modal.prototype.enforceFocus = function () { $(document) .off('focusin.bs.modal') // guard against infinite focus loop .on('focusin.bs.modal', $.proxy(function (e) { if (this.$element[0] !== e.target && !this.$element.has(e.target).length) { this.$element.trigger('focus') } }, this)) } Modal.prototype.escape = function () { if (this.isShown && this.options.keyboard) { this.$element.on('keydown.dismiss.bs.modal', $.proxy(function (e) { e.which == 27 && this.hide() }, this)) } else if (!this.isShown) { this.$element.off('keydown.dismiss.bs.modal') } } Modal.prototype.resize = function () { if (this.isShown) { $(window).on('resize.bs.modal', $.proxy(this.handleUpdate, this)) } else { $(window).off('resize.bs.modal') } } Modal.prototype.hideModal = function () { var that = this this.$element.hide() this.backdrop(function () { that.$body.removeClass('modal-open') that.resetAdjustments() that.resetScrollbar() that.$element.trigger('hidden.bs.modal') }) } Modal.prototype.removeBackdrop = function () { this.$backdrop && this.$backdrop.remove() this.$backdrop = null } Modal.prototype.backdrop = function (callback) { var that = this var animate = this.$element.hasClass('fade') ? 'fade' : '' if (this.isShown && this.options.backdrop) { var doAnimate = $.support.transition && animate this.$backdrop = $(document.createElement('div')) .addClass('modal-backdrop ' + animate) .appendTo(this.$body) this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) { if (this.ignoreBackdropClick) { this.ignoreBackdropClick = false return } if (e.target !== e.currentTarget) return this.options.backdrop == 'static' ? this.$element[0].focus() : this.hide() }, this)) if (doAnimate) this.$backdrop[0].offsetWidth // force reflow this.$backdrop.addClass('in') if (!callback) return doAnimate ? this.$backdrop .one('bsTransitionEnd', callback) .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) : callback() } else if (!this.isShown && this.$backdrop) { this.$backdrop.removeClass('in') var callbackRemove = function () { that.removeBackdrop() callback && callback() } $.support.transition && this.$element.hasClass('fade') ? this.$backdrop .one('bsTransitionEnd', callbackRemove) .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) : callbackRemove() } else if (callback) { callback() } } // these following methods are used to handle overflowing modals Modal.prototype.handleUpdate = function () { this.adjustDialog() } Modal.prototype.adjustDialog = function () { var modalIsOverflowing = this.$element[0].scrollHeight > document.documentElement.clientHeight this.$element.css({ paddingLeft: !this.bodyIsOverflowing && modalIsOverflowing ? this.scrollbarWidth : '', paddingRight: this.bodyIsOverflowing && !modalIsOverflowing ? this.scrollbarWidth : '' }) } Modal.prototype.resetAdjustments = function () { this.$element.css({ paddingLeft: '', paddingRight: '' }) } Modal.prototype.checkScrollbar = function () { var fullWindowWidth = window.innerWidth if (!fullWindowWidth) { // workaround for missing window.innerWidth in IE8 var documentElementRect = document.documentElement.getBoundingClientRect() fullWindowWidth = documentElementRect.right - Math.abs(documentElementRect.left) } this.bodyIsOverflowing = document.body.clientWidth < fullWindowWidth this.scrollbarWidth = this.measureScrollbar() } Modal.prototype.setScrollbar = function () { var bodyPad = parseInt((this.$body.css('padding-right') || 0), 10) this.originalBodyPad = document.body.style.paddingRight || '' if (this.bodyIsOverflowing) this.$body.css('padding-right', bodyPad + this.scrollbarWidth) } Modal.prototype.resetScrollbar = function () { this.$body.css('padding-right', this.originalBodyPad) } Modal.prototype.measureScrollbar = function () { // thx walsh var scrollDiv = document.createElement('div') scrollDiv.className = 'modal-scrollbar-measure' this.$body.append(scrollDiv) var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth this.$body[0].removeChild(scrollDiv) return scrollbarWidth } // MODAL PLUGIN DEFINITION // ======================= function Plugin(option, _relatedTarget) { return this.each(function () { var $this = $(this) var data = $this.data('bs.modal') var options = $.extend({}, Modal.DEFAULTS, $this.data(), typeof option == 'object' && option) if (!data) $this.data('bs.modal', (data = new Modal(this, options))) if (typeof option == 'string') data[option](_relatedTarget) else if (options.show) data.show(_relatedTarget) }) } var old = $.fn.modal $.fn.modal = Plugin $.fn.modal.Constructor = Modal // MODAL NO CONFLICT // ================= $.fn.modal.noConflict = function () { $.fn.modal = old return this } // MODAL DATA-API // ============== $(document).on('click.bs.modal.data-api', '[data-toggle="modal"]', function (e) { var $this = $(this) var href = $this.attr('href') var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) // strip for ie7 var option = $target.data('bs.modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data()) if ($this.is('a')) e.preventDefault() $target.one('show.bs.modal', function (showEvent) { if (showEvent.isDefaultPrevented()) return // only register focus restorer if modal will actually get shown $target.one('hidden.bs.modal', function () { $this.is(':visible') && $this.trigger('focus') }) }) Plugin.call($target, option, this) }) }(jQuery); /* ======================================================================== * Bootstrap: tooltip.js v3.3.5 * http://getbootstrap.com/javascript/#tooltip * Inspired by the original jQuery.tipsy by Jason Frame * ======================================================================== * Copyright 2011-2015 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * ======================================================================== */ +function ($) { 'use strict'; // TOOLTIP PUBLIC CLASS DEFINITION // =============================== var Tooltip = function (element, options) { this.type = null this.options = null this.enabled = null this.timeout = null this.hoverState = null this.$element = null this.inState = null this.init('tooltip', element, options) } Tooltip.VERSION = '3.3.5' Tooltip.TRANSITION_DURATION = 150 Tooltip.DEFAULTS = { animation: true, placement: 'top', selector: false, template: '', trigger: 'hover focus', title: '', delay: 0, html: false, container: false, viewport: { selector: 'body', padding: 0 } } Tooltip.prototype.init = function (type, element, options) { this.enabled = true this.type = type this.$element = $(element) this.options = this.getOptions(options) this.$viewport = this.options.viewport && $($.isFunction(this.options.viewport) ? this.options.viewport.call(this, this.$element) : (this.options.viewport.selector || this.options.viewport)) this.inState = { click: false, hover: false, focus: false } if (this.$element[0] instanceof document.constructor && !this.options.selector) { throw new Error('`selector` option must be specified when initializing ' + this.type + ' on the window.document object!') } var triggers = this.options.trigger.split(' ') for (var i = triggers.length; i--;) { var trigger = triggers[i] if (trigger == 'click') { this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this)) } else if (trigger != 'manual') { var eventIn = trigger == 'hover' ? 'mouseenter' : 'focusin' var eventOut = trigger == 'hover' ? 'mouseleave' : 'focusout' this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this)) this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this)) } } this.options.selector ? (this._options = $.extend({}, this.options, { trigger: 'manual', selector: '' })) : this.fixTitle() } Tooltip.prototype.getDefaults = function () { return Tooltip.DEFAULTS } Tooltip.prototype.getOptions = function (options) { options = $.extend({}, this.getDefaults(), this.$element.data(), options) if (options.delay && typeof options.delay == 'number') { options.delay = { show: options.delay, hide: options.delay } } return options } Tooltip.prototype.getDelegateOptions = function () { var options = {} var defaults = this.getDefaults() this._options && $.each(this._options, function (key, value) { if (defaults[key] != value) options[key] = value }) return options } Tooltip.prototype.enter = function (obj) { var self = obj instanceof this.constructor ? obj : $(obj.currentTarget).data('bs.' + this.type) if (!self) { self = new this.constructor(obj.currentTarget, this.getDelegateOptions()) $(obj.currentTarget).data('bs.' + this.type, self) } if (obj instanceof $.Event) { self.inState[obj.type == 'focusin' ? 'focus' : 'hover'] = true } if (self.tip().hasClass('in') || self.hoverState == 'in') { self.hoverState = 'in' return } clearTimeout(self.timeout) self.hoverState = 'in' if (!self.options.delay || !self.options.delay.show) return self.show() self.timeout = setTimeout(function () { if (self.hoverState == 'in') self.show() }, self.options.delay.show) } Tooltip.prototype.isInStateTrue = function () { for (var key in this.inState) { if (this.inState[key]) return true } return false } Tooltip.prototype.leave = function (obj) { var self = obj instanceof this.constructor ? obj : $(obj.currentTarget).data('bs.' + this.type) if (!self) { self = new this.constructor(obj.currentTarget, this.getDelegateOptions()) $(obj.currentTarget).data('bs.' + this.type, self) } if (obj instanceof $.Event) { self.inState[obj.type == 'focusout' ? 'focus' : 'hover'] = false } if (self.isInStateTrue()) return clearTimeout(self.timeout) self.hoverState = 'out' if (!self.options.delay || !self.options.delay.hide) return self.hide() self.timeout = setTimeout(function () { if (self.hoverState == 'out') self.hide() }, self.options.delay.hide) } Tooltip.prototype.show = function () { var e = $.Event('show.bs.' + this.type) if (this.hasContent() && this.enabled) { this.$element.trigger(e) var inDom = $.contains(this.$element[0].ownerDocument.documentElement, this.$element[0]) if (e.isDefaultPrevented() || !inDom) return var that = this var $tip = this.tip() var tipId = this.getUID(this.type) this.setContent() $tip.attr('id', tipId) this.$element.attr('aria-describedby', tipId) if (this.options.animation) $tip.addClass('fade') var placement = typeof this.options.placement == 'function' ? this.options.placement.call(this, $tip[0], this.$element[0]) : this.options.placement var autoToken = /\s?auto?\s?/i var autoPlace = autoToken.test(placement) if (autoPlace) placement = placement.replace(autoToken, '') || 'top' $tip .detach() .css({ top: 0, left: 0, display: 'block' }) .addClass(placement) .data('bs.' + this.type, this) this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element) this.$element.trigger('inserted.bs.' + this.type) var pos = this.getPosition() var actualWidth = $tip[0].offsetWidth var actualHeight = $tip[0].offsetHeight if (autoPlace) { var orgPlacement = placement var viewportDim = this.getPosition(this.$viewport) placement = placement == 'bottom' && pos.bottom + actualHeight > viewportDim.bottom ? 'top' : placement == 'top' && pos.top - actualHeight < viewportDim.top ? 'bottom' : placement == 'right' && pos.right + actualWidth > viewportDim.width ? 'left' : placement == 'left' && pos.left - actualWidth < viewportDim.left ? 'right' : placement $tip .removeClass(orgPlacement) .addClass(placement) } var calculatedOffset = this.getCalculatedOffset(placement, pos, actualWidth, actualHeight) this.applyPlacement(calculatedOffset, placement) var complete = function () { var prevHoverState = that.hoverState that.$element.trigger('shown.bs.' + that.type) that.hoverState = null if (prevHoverState == 'out') that.leave(that) } $.support.transition && this.$tip.hasClass('fade') ? $tip .one('bsTransitionEnd', complete) .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) : complete() } } Tooltip.prototype.applyPlacement = function (offset, placement) { var $tip = this.tip() var width = $tip[0].offsetWidth var height = $tip[0].offsetHeight // manually read margins because getBoundingClientRect includes difference var marginTop = parseInt($tip.css('margin-top'), 10) var marginLeft = parseInt($tip.css('margin-left'), 10) // we must check for NaN for ie 8/9 if (isNaN(marginTop)) marginTop = 0 if (isNaN(marginLeft)) marginLeft = 0 offset.top += marginTop offset.left += marginLeft // $.fn.offset doesn't round pixel values // so we use setOffset directly with our own function B-0 $.offset.setOffset($tip[0], $.extend({ using: function (props) { $tip.css({ top: Math.round(props.top), left: Math.round(props.left) }) } }, offset), 0) $tip.addClass('in') // check to see if placing tip in new offset caused the tip to resize itself var actualWidth = $tip[0].offsetWidth var actualHeight = $tip[0].offsetHeight if (placement == 'top' && actualHeight != height) { offset.top = offset.top + height - actualHeight } var delta = this.getViewportAdjustedDelta(placement, offset, actualWidth, actualHeight) if (delta.left) offset.left += delta.left else offset.top += delta.top var isVertical = /top|bottom/.test(placement) var arrowDelta = isVertical ? delta.left * 2 - width + actualWidth : delta.top * 2 - height + actualHeight var arrowOffsetPosition = isVertical ? 'offsetWidth' : 'offsetHeight' $tip.offset(offset) this.replaceArrow(arrowDelta, $tip[0][arrowOffsetPosition], isVertical) } Tooltip.prototype.replaceArrow = function (delta, dimension, isVertical) { this.arrow() .css(isVertical ? 'left' : 'top', 50 * (1 - delta / dimension) + '%') .css(isVertical ? 'top' : 'left', '') } Tooltip.prototype.setContent = function () { var $tip = this.tip() var title = this.getTitle() $tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title) $tip.removeClass('fade in top bottom left right') } Tooltip.prototype.hide = function (callback) { var that = this var $tip = $(this.$tip) var e = $.Event('hide.bs.' + this.type) function complete() { if (that.hoverState != 'in') $tip.detach() that.$element .removeAttr('aria-describedby') .trigger('hidden.bs.' + that.type) callback && callback() } this.$element.trigger(e) if (e.isDefaultPrevented()) return $tip.removeClass('in') $.support.transition && $tip.hasClass('fade') ? $tip .one('bsTransitionEnd', complete) .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) : complete() this.hoverState = null return this } Tooltip.prototype.fixTitle = function () { var $e = this.$element if ($e.attr('title') || typeof $e.attr('data-original-title') != 'string') { $e.attr('data-original-title', $e.attr('title') || '').attr('title', '') } } Tooltip.prototype.hasContent = function () { return this.getTitle() } Tooltip.prototype.getPosition = function ($element) { $element = $element || this.$element var el = $element[0] var isBody = el.tagName == 'BODY' var elRect = el.getBoundingClientRect() if (elRect.width == null) { // width and height are missing in IE8, so compute them manually; see https://github.com/twbs/bootstrap/issues/14093 elRect = $.extend({}, elRect, { width: elRect.right - elRect.left, height: elRect.bottom - elRect.top }) } var elOffset = isBody ? { top: 0, left: 0 } : $element.offset() var scroll = { scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.scrollTop() } var outerDims = isBody ? { width: $(window).width(), height: $(window).height() } : null return $.extend({}, elRect, scroll, outerDims, elOffset) } Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) { return placement == 'bottom' ? { top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2 } : placement == 'top' ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } : placement == 'left' ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } : /* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width } } Tooltip.prototype.getViewportAdjustedDelta = function (placement, pos, actualWidth, actualHeight) { var delta = { top: 0, left: 0 } if (!this.$viewport) return delta var viewportPadding = this.options.viewport && this.options.viewport.padding || 0 var viewportDimensions = this.getPosition(this.$viewport) if (/right|left/.test(placement)) { var topEdgeOffset = pos.top - viewportPadding - viewportDimensions.scroll var bottomEdgeOffset = pos.top + viewportPadding - viewportDimensions.scroll + actualHeight if (topEdgeOffset < viewportDimensions.top) { // top overflow delta.top = viewportDimensions.top - topEdgeOffset } else if (bottomEdgeOffset > viewportDimensions.top + viewportDimensions.height) { // bottom overflow delta.top = viewportDimensions.top + viewportDimensions.height - bottomEdgeOffset } } else { var leftEdgeOffset = pos.left - viewportPadding var rightEdgeOffset = pos.left + viewportPadding + actualWidth if (leftEdgeOffset < viewportDimensions.left) { // left overflow delta.left = viewportDimensions.left - leftEdgeOffset } else if (rightEdgeOffset > viewportDimensions.right) { // right overflow delta.left = viewportDimensions.left + viewportDimensions.width - rightEdgeOffset } } return delta } Tooltip.prototype.getTitle = function () { var title var $e = this.$element var o = this.options title = $e.attr('data-original-title') || (typeof o.title == 'function' ? o.title.call($e[0]) : o.title) return title } Tooltip.prototype.getUID = function (prefix) { do prefix += ~~(Math.random() * 1000000) while (document.getElementById(prefix)) return prefix } Tooltip.prototype.tip = function () { if (!this.$tip) { this.$tip = $(this.options.template) if (this.$tip.length != 1) { throw new Error(this.type + ' `template` option must consist of exactly 1 top-level element!') } } return this.$tip } Tooltip.prototype.arrow = function () { return (this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow')) } Tooltip.prototype.enable = function () { this.enabled = true } Tooltip.prototype.disable = function () { this.enabled = false } Tooltip.prototype.toggleEnabled = function () { this.enabled = !this.enabled } Tooltip.prototype.toggle = function (e) { var self = this if (e) { self = $(e.currentTarget).data('bs.' + this.type) if (!self) { self = new this.constructor(e.currentTarget, this.getDelegateOptions()) $(e.currentTarget).data('bs.' + this.type, self) } } if (e) { self.inState.click = !self.inState.click if (self.isInStateTrue()) self.enter(self) else self.leave(self) } else { self.tip().hasClass('in') ? self.leave(self) : self.enter(self) } } Tooltip.prototype.destroy = function () { var that = this clearTimeout(this.timeout) this.hide(function () { that.$element.off('.' + that.type).removeData('bs.' + that.type) if (that.$tip) { that.$tip.detach() } that.$tip = null that.$arrow = null that.$viewport = null }) } // TOOLTIP PLUGIN DEFINITION // ========================= function Plugin(option) { return this.each(function () { var $this = $(this) var data = $this.data('bs.tooltip') var options = typeof option == 'object' && option if (!data && /destroy|hide/.test(option)) return if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options))) if (typeof option == 'string') data[option]() }) } var old = $.fn.tooltip $.fn.tooltip = Plugin $.fn.tooltip.Constructor = Tooltip // TOOLTIP NO CONFLICT // =================== $.fn.tooltip.noConflict = function () { $.fn.tooltip = old return this } }(jQuery); /* ======================================================================== * Bootstrap: popover.js v3.3.5 * http://getbootstrap.com/javascript/#popovers * ======================================================================== * Copyright 2011-2015 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * ======================================================================== */ +function ($) { 'use strict'; // POPOVER PUBLIC CLASS DEFINITION // =============================== var Popover = function (element, options) { this.init('popover', element, options) } if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js') Popover.VERSION = '3.3.5' Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, { placement: 'right', trigger: 'click', content: '', template: '' }) // NOTE: POPOVER EXTENDS tooltip.js // ================================ Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype) Popover.prototype.constructor = Popover Popover.prototype.getDefaults = function () { return Popover.DEFAULTS } Popover.prototype.setContent = function () { var $tip = this.tip() var title = this.getTitle() var content = this.getContent() $tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title) $tip.find('.popover-content').children().detach().end()[ // we use append for html objects to maintain js events this.options.html ? (typeof content == 'string' ? 'html' : 'append') : 'text' ](content) $tip.removeClass('fade top bottom left right in') // IE8 doesn't accept hiding via the `:empty` pseudo selector, we have to do // this manually by checking the contents. if (!$tip.find('.popover-title').html()) $tip.find('.popover-title').hide() } Popover.prototype.hasContent = function () { return this.getTitle() || this.getContent() } Popover.prototype.getContent = function () { var $e = this.$element var o = this.options return $e.attr('data-content') || (typeof o.content == 'function' ? o.content.call($e[0]) : o.content) } Popover.prototype.arrow = function () { return (this.$arrow = this.$arrow || this.tip().find('.arrow')) } // POPOVER PLUGIN DEFINITION // ========================= function Plugin(option) { return this.each(function () { var $this = $(this) var data = $this.data('bs.popover') var options = typeof option == 'object' && option if (!data && /destroy|hide/.test(option)) return if (!data) $this.data('bs.popover', (data = new Popover(this, options))) if (typeof option == 'string') data[option]() }) } var old = $.fn.popover $.fn.popover = Plugin $.fn.popover.Constructor = Popover // POPOVER NO CONFLICT // =================== $.fn.popover.noConflict = function () { $.fn.popover = old return this } }(jQuery); /* ======================================================================== * Bootstrap: scrollspy.js v3.3.5 * http://getbootstrap.com/javascript/#scrollspy * ======================================================================== * Copyright 2011-2015 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * ======================================================================== */ +function ($) { 'use strict'; // SCROLLSPY CLASS DEFINITION // ========================== function ScrollSpy(element, options) { this.$body = $(document.body) this.$scrollElement = $(element).is(document.body) ? $(window) : $(element) this.options = $.extend({}, ScrollSpy.DEFAULTS, options) this.selector = (this.options.target || '') + ' .nav li > a' this.offsets = [] this.targets = [] this.activeTarget = null this.scrollHeight = 0 this.$scrollElement.on('scroll.bs.scrollspy', $.proxy(this.process, this)) this.refresh() this.process() } ScrollSpy.VERSION = '3.3.5' ScrollSpy.DEFAULTS = { offset: 10 } ScrollSpy.prototype.getScrollHeight = function () { return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight) } ScrollSpy.prototype.refresh = function () { var that = this var offsetMethod = 'offset' var offsetBase = 0 this.offsets = [] this.targets = [] this.scrollHeight = this.getScrollHeight() if (!$.isWindow(this.$scrollElement[0])) { offsetMethod = 'position' offsetBase = this.$scrollElement.scrollTop() } this.$body .find(this.selector) .map(function () { var $el = $(this) var href = $el.data('target') || $el.attr('href') var $href = /^#./.test(href) && $(href) return ($href && $href.length && $href.is(':visible') && [[$href[offsetMethod]().top + offsetBase, href]]) || null }) .sort(function (a, b) { return a[0] - b[0] }) .each(function () { that.offsets.push(this[0]) that.targets.push(this[1]) }) } ScrollSpy.prototype.process = function () { var scrollTop = this.$scrollElement.scrollTop() + this.options.offset var scrollHeight = this.getScrollHeight() var maxScroll = this.options.offset + scrollHeight - this.$scrollElement.height() var offsets = this.offsets var targets = this.targets var activeTarget = this.activeTarget var i if (this.scrollHeight != scrollHeight) { this.refresh() } if (scrollTop >= maxScroll) { return activeTarget != (i = targets[targets.length - 1]) && this.activate(i) } if (activeTarget && scrollTop < offsets[0]) { this.activeTarget = null return this.clear() } for (i = offsets.length; i--;) { activeTarget != targets[i] && scrollTop >= offsets[i] && (offsets[i + 1] === undefined || scrollTop < offsets[i + 1]) && this.activate(targets[i]) } } ScrollSpy.prototype.activate = function (target) { this.activeTarget = target this.clear() var selector = this.selector + '[data-target="' + target + '"],' + this.selector + '[href="' + target + '"]' var active = $(selector) .parents('li') .addClass('active') if (active.parent('.dropdown-menu').length) { active = active .closest('li.dropdown') .addClass('active') } active.trigger('activate.bs.scrollspy') } ScrollSpy.prototype.clear = function () { $(this.selector) .parentsUntil(this.options.target, '.active') .removeClass('active') } // SCROLLSPY PLUGIN DEFINITION // =========================== function Plugin(option) { return this.each(function () { var $this = $(this) var data = $this.data('bs.scrollspy') var options = typeof option == 'object' && option if (!data) $this.data('bs.scrollspy', (data = new ScrollSpy(this, options))) if (typeof option == 'string') data[option]() }) } var old = $.fn.scrollspy $.fn.scrollspy = Plugin $.fn.scrollspy.Constructor = ScrollSpy // SCROLLSPY NO CONFLICT // ===================== $.fn.scrollspy.noConflict = function () { $.fn.scrollspy = old return this } // SCROLLSPY DATA-API // ================== $(window).on('load.bs.scrollspy.data-api', function () { $('[data-spy="scroll"]').each(function () { var $spy = $(this) Plugin.call($spy, $spy.data()) }) }) }(jQuery); /* ======================================================================== * Bootstrap: tab.js v3.3.5 * http://getbootstrap.com/javascript/#tabs * ======================================================================== * Copyright 2011-2015 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * ======================================================================== */ +function ($) { 'use strict'; // TAB CLASS DEFINITION // ==================== var Tab = function (element) { // jscs:disable requireDollarBeforejQueryAssignment this.element = $(element) // jscs:enable requireDollarBeforejQueryAssignment } Tab.VERSION = '3.3.5' Tab.TRANSITION_DURATION = 150 Tab.prototype.show = function () { var $this = this.element var $ul = $this.closest('ul:not(.dropdown-menu)') var selector = $this.data('target') if (!selector) { selector = $this.attr('href') selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7 } if ($this.parent('li').hasClass('active')) return var $previous = $ul.find('.active:last a') var hideEvent = $.Event('hide.bs.tab', { relatedTarget: $this[0] }) var showEvent = $.Event('show.bs.tab', { relatedTarget: $previous[0] }) $previous.trigger(hideEvent) $this.trigger(showEvent) if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) return var $target = $(selector) this.activate($this.closest('li'), $ul) this.activate($target, $target.parent(), function () { $previous.trigger({ type: 'hidden.bs.tab', relatedTarget: $this[0] }) $this.trigger({ type: 'shown.bs.tab', relatedTarget: $previous[0] }) }) } Tab.prototype.activate = function (element, container, callback) { var $active = container.find('> .active') var transition = callback && $.support.transition && ($active.length && $active.hasClass('fade') || !!container.find('> .fade').length) function next() { $active .removeClass('active') .find('> .dropdown-menu > .active') .removeClass('active') .end() .find('[data-toggle="tab"]') .attr('aria-expanded', false) element .addClass('active') .find('[data-toggle="tab"]') .attr('aria-expanded', true) if (transition) { element[0].offsetWidth // reflow for transition element.addClass('in') } else { element.removeClass('fade') } if (element.parent('.dropdown-menu').length) { element .closest('li.dropdown') .addClass('active') .end() .find('[data-toggle="tab"]') .attr('aria-expanded', true) } callback && callback() } $active.length && transition ? $active .one('bsTransitionEnd', next) .emulateTransitionEnd(Tab.TRANSITION_DURATION) : next() $active.removeClass('in') } // TAB PLUGIN DEFINITION // ===================== function Plugin(option) { return this.each(function () { var $this = $(this) var data = $this.data('bs.tab') if (!data) $this.data('bs.tab', (data = new Tab(this))) if (typeof option == 'string') data[option]() }) } var old = $.fn.tab $.fn.tab = Plugin $.fn.tab.Constructor = Tab // TAB NO CONFLICT // =============== $.fn.tab.noConflict = function () { $.fn.tab = old return this } // TAB DATA-API // ============ var clickHandler = function (e) { e.preventDefault() Plugin.call($(this), 'show') } $(document) .on('click.bs.tab.data-api', '[data-toggle="tab"]', clickHandler) .on('click.bs.tab.data-api', '[data-toggle="pill"]', clickHandler) }(jQuery); /* ======================================================================== * Bootstrap: affix.js v3.3.5 * http://getbootstrap.com/javascript/#affix * ======================================================================== * Copyright 2011-2015 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * ======================================================================== */ +function ($) { 'use strict'; // AFFIX CLASS DEFINITION // ====================== var Affix = function (element, options) { this.options = $.extend({}, Affix.DEFAULTS, options) this.$target = $(this.options.target) .on('scroll.bs.affix.data-api', $.proxy(this.checkPosition, this)) .on('click.bs.affix.data-api', $.proxy(this.checkPositionWithEventLoop, this)) this.$element = $(element) this.affixed = null this.unpin = null this.pinnedOffset = null this.checkPosition() } Affix.VERSION = '3.3.5' Affix.RESET = 'affix affix-top affix-bottom' Affix.DEFAULTS = { offset: 0, target: window } Affix.prototype.getState = function (scrollHeight, height, offsetTop, offsetBottom) { var scrollTop = this.$target.scrollTop() var position = this.$element.offset() var targetHeight = this.$target.height() if (offsetTop != null && this.affixed == 'top') return scrollTop < offsetTop ? 'top' : false if (this.affixed == 'bottom') { if (offsetTop != null) return (scrollTop + this.unpin <= position.top) ? false : 'bottom' return (scrollTop + targetHeight <= scrollHeight - offsetBottom) ? false : 'bottom' } var initializing = this.affixed == null var colliderTop = initializing ? scrollTop : position.top var colliderHeight = initializing ? targetHeight : height if (offsetTop != null && scrollTop <= offsetTop) return 'top' if (offsetBottom != null && (colliderTop + colliderHeight >= scrollHeight - offsetBottom)) return 'bottom' return false } Affix.prototype.getPinnedOffset = function () { if (this.pinnedOffset) return this.pinnedOffset this.$element.removeClass(Affix.RESET).addClass('affix') var scrollTop = this.$target.scrollTop() var position = this.$element.offset() return (this.pinnedOffset = position.top - scrollTop) } Affix.prototype.checkPositionWithEventLoop = function () { setTimeout($.proxy(this.checkPosition, this), 1) } Affix.prototype.checkPosition = function () { if (!this.$element.is(':visible')) return var height = this.$element.height() var offset = this.options.offset var offsetTop = offset.top var offsetBottom = offset.bottom var scrollHeight = Math.max($(document).height(), $(document.body).height()) if (typeof offset != 'object') offsetBottom = offsetTop = offset if (typeof offsetTop == 'function') offsetTop = offset.top(this.$element) if (typeof offsetBottom == 'function') offsetBottom = offset.bottom(this.$element) var affix = this.getState(scrollHeight, height, offsetTop, offsetBottom) if (this.affixed != affix) { if (this.unpin != null) this.$element.css('top', '') var affixType = 'affix' + (affix ? '-' + affix : '') var e = $.Event(affixType + '.bs.affix') this.$element.trigger(e) if (e.isDefaultPrevented()) return this.affixed = affix this.unpin = affix == 'bottom' ? this.getPinnedOffset() : null this.$element .removeClass(Affix.RESET) .addClass(affixType) .trigger(affixType.replace('affix', 'affixed') + '.bs.affix') } if (affix == 'bottom') { this.$element.offset({ top: scrollHeight - height - offsetBottom }) } } // AFFIX PLUGIN DEFINITION // ======================= function Plugin(option) { return this.each(function () { var $this = $(this) var data = $this.data('bs.affix') var options = typeof option == 'object' && option if (!data) $this.data('bs.affix', (data = new Affix(this, options))) if (typeof option == 'string') data[option]() }) } var old = $.fn.affix $.fn.affix = Plugin $.fn.affix.Constructor = Affix // AFFIX NO CONFLICT // ================= $.fn.affix.noConflict = function () { $.fn.affix = old return this } // AFFIX DATA-API // ============== $(window).on('load', function () { $('[data-spy="affix"]').each(function () { var $spy = $(this) var data = $spy.data() data.offset = data.offset || {} if (data.offsetBottom != null) data.offset.bottom = data.offsetBottom if (data.offsetTop != null) data.offset.top = data.offsetTop Plugin.call($spy, data) }) }) }(jQuery); bootstrap-sass-3.3.5.1/assets/stylesheets/0000755000004100000410000000000012556335206020562 5ustar www-datawww-databootstrap-sass-3.3.5.1/assets/stylesheets/bootstrap/0000755000004100000410000000000012556335206022577 5ustar www-datawww-databootstrap-sass-3.3.5.1/assets/stylesheets/bootstrap/_modals.scss0000644000004100000410000000703412556335206025116 0ustar www-datawww-data// // Modals // -------------------------------------------------- // .modal-open - body class for killing the scroll // .modal - container to scroll within // .modal-dialog - positioning shell for the actual modal // .modal-content - actual modal w/ bg and corners and shit // Kill the scroll on the body .modal-open { overflow: hidden; } // Container that the modal scrolls within .modal { display: none; overflow: hidden; position: fixed; top: 0; right: 0; bottom: 0; left: 0; z-index: $zindex-modal; -webkit-overflow-scrolling: touch; // Prevent Chrome on Windows from adding a focus outline. For details, see // https://github.com/twbs/bootstrap/pull/10951. outline: 0; // When fading in the modal, animate it to slide down &.fade .modal-dialog { @include translate(0, -25%); @include transition-transform(0.3s ease-out); } &.in .modal-dialog { @include translate(0, 0) } } .modal-open .modal { overflow-x: hidden; overflow-y: auto; } // Shell div to position the modal with bottom padding .modal-dialog { position: relative; width: auto; margin: 10px; } // Actual modal .modal-content { position: relative; background-color: $modal-content-bg; border: 1px solid $modal-content-fallback-border-color; //old browsers fallback (ie8 etc) border: 1px solid $modal-content-border-color; border-radius: $border-radius-large; @include box-shadow(0 3px 9px rgba(0,0,0,.5)); background-clip: padding-box; // Remove focus outline from opened modal outline: 0; } // Modal background .modal-backdrop { position: fixed; top: 0; right: 0; bottom: 0; left: 0; z-index: $zindex-modal-background; background-color: $modal-backdrop-bg; // Fade for backdrop &.fade { @include opacity(0); } &.in { @include opacity($modal-backdrop-opacity); } } // Modal header // Top section of the modal w/ title and dismiss .modal-header { padding: $modal-title-padding; border-bottom: 1px solid $modal-header-border-color; min-height: ($modal-title-padding + $modal-title-line-height); } // Close icon .modal-header .close { margin-top: -2px; } // Title text within header .modal-title { margin: 0; line-height: $modal-title-line-height; } // Modal body // Where all modal content resides (sibling of .modal-header and .modal-footer) .modal-body { position: relative; padding: $modal-inner-padding; } // Footer (for actions) .modal-footer { padding: $modal-inner-padding; text-align: right; // right align buttons border-top: 1px solid $modal-footer-border-color; @include clearfix; // clear it in case folks use .pull-* classes on buttons // Properly space out buttons .btn + .btn { margin-left: 5px; margin-bottom: 0; // account for input[type="submit"] which gets the bottom margin like all other inputs } // but override that for button groups .btn-group .btn + .btn { margin-left: -1px; } // and override it for block buttons as well .btn-block + .btn-block { margin-left: 0; } } // Measure scrollbar width for padding body during modal show/hide .modal-scrollbar-measure { position: absolute; top: -9999px; width: 50px; height: 50px; overflow: scroll; } // Scale up the modal @media (min-width: $screen-sm-min) { // Automatically set modal's width for larger viewports .modal-dialog { width: $modal-md; margin: 30px auto; } .modal-content { @include box-shadow(0 5px 15px rgba(0,0,0,.5)); } // Modal sizes .modal-sm { width: $modal-sm; } } @media (min-width: $screen-md-min) { .modal-lg { width: $modal-lg; } } bootstrap-sass-3.3.5.1/assets/stylesheets/bootstrap/_close.scss0000644000004100000410000000145712556335206024747 0ustar www-datawww-data// // Close icons // -------------------------------------------------- .close { float: right; font-size: ($font-size-base * 1.5); font-weight: $close-font-weight; line-height: 1; color: $close-color; text-shadow: $close-text-shadow; @include opacity(.2); &:hover, &:focus { color: $close-color; text-decoration: none; cursor: pointer; @include opacity(.5); } // [converter] extracted button& to button.close } // Additional properties for button version // iOS requires the button element instead of an anchor tag. // If you want the anchor version, it requires `href="#"`. // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile button.close { padding: 0; cursor: pointer; background: transparent; border: 0; -webkit-appearance: none; } bootstrap-sass-3.3.5.1/assets/stylesheets/bootstrap/_responsive-embed.scss0000644000004100000410000000104212556335206027077 0ustar www-datawww-data// Embeds responsive // // Credit: Nicolas Gallagher and SUIT CSS. .embed-responsive { position: relative; display: block; height: 0; padding: 0; overflow: hidden; .embed-responsive-item, iframe, embed, object, video { position: absolute; top: 0; left: 0; bottom: 0; height: 100%; width: 100%; border: 0; } } // Modifier class for 16:9 aspect ratio .embed-responsive-16by9 { padding-bottom: 56.25%; } // Modifier class for 4:3 aspect ratio .embed-responsive-4by3 { padding-bottom: 75%; } bootstrap-sass-3.3.5.1/assets/stylesheets/bootstrap/_jumbotron.scss0000644000004100000410000000204612556335206025654 0ustar www-datawww-data// // Jumbotron // -------------------------------------------------- .jumbotron { padding-top: $jumbotron-padding; padding-bottom: $jumbotron-padding; margin-bottom: $jumbotron-padding; color: $jumbotron-color; background-color: $jumbotron-bg; h1, .h1 { color: $jumbotron-heading-color; } p { margin-bottom: ($jumbotron-padding / 2); font-size: $jumbotron-font-size; font-weight: 200; } > hr { border-top-color: darken($jumbotron-bg, 10%); } .container &, .container-fluid & { border-radius: $border-radius-large; // Only round corners at higher resolutions if contained in a container } .container { max-width: 100%; } @media screen and (min-width: $screen-sm-min) { padding-top: ($jumbotron-padding * 1.6); padding-bottom: ($jumbotron-padding * 1.6); .container &, .container-fluid & { padding-left: ($jumbotron-padding * 2); padding-right: ($jumbotron-padding * 2); } h1, .h1 { font-size: $jumbotron-heading-font-size; } } } bootstrap-sass-3.3.5.1/assets/stylesheets/bootstrap/_labels.scss0000644000004100000410000000220412556335206025073 0ustar www-datawww-data// // Labels // -------------------------------------------------- .label { display: inline; padding: .2em .6em .3em; font-size: 75%; font-weight: bold; line-height: 1; color: $label-color; text-align: center; white-space: nowrap; vertical-align: baseline; border-radius: .25em; // [converter] extracted a& to a.label // Empty labels collapse automatically (not available in IE8) &:empty { display: none; } // Quick fix for labels in buttons .btn & { position: relative; top: -1px; } } // Add hover effects, but only for links a.label { &:hover, &:focus { color: $label-link-hover-color; text-decoration: none; cursor: pointer; } } // Colors // Contextual variations (linked labels get darker on :hover) .label-default { @include label-variant($label-default-bg); } .label-primary { @include label-variant($label-primary-bg); } .label-success { @include label-variant($label-success-bg); } .label-info { @include label-variant($label-info-bg); } .label-warning { @include label-variant($label-warning-bg); } .label-danger { @include label-variant($label-danger-bg); } bootstrap-sass-3.3.5.1/assets/stylesheets/bootstrap/_component-animations.scss0000644000004100000410000000146312556335206030001 0ustar www-datawww-data// // Component animations // -------------------------------------------------- // Heads up! // // We don't use the `.opacity()` mixin here since it causes a bug with text // fields in IE7-8. Source: https://github.com/twbs/bootstrap/pull/3552. .fade { opacity: 0; @include transition(opacity .15s linear); &.in { opacity: 1; } } .collapse { display: none; &.in { display: block; } // [converter] extracted tr&.in to tr.collapse.in // [converter] extracted tbody&.in to tbody.collapse.in } tr.collapse.in { display: table-row; } tbody.collapse.in { display: table-row-group; } .collapsing { position: relative; height: 0; overflow: hidden; @include transition-property(height, visibility); @include transition-duration(.35s); @include transition-timing-function(ease); } bootstrap-sass-3.3.5.1/assets/stylesheets/bootstrap/mixins/0000755000004100000410000000000012556335206024106 5ustar www-datawww-databootstrap-sass-3.3.5.1/assets/stylesheets/bootstrap/mixins/_reset-filter.scss0000644000004100000410000000036612556335206027554 0ustar www-datawww-data// Reset filters for IE // // When you need to remove a gradient background, do not forget to use this to reset // the IE filter for IE9 and below. @mixin reset-filter() { filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); } bootstrap-sass-3.3.5.1/assets/stylesheets/bootstrap/mixins/_tab-focus.scss0000644000004100000410000000024512556335206027026 0ustar www-datawww-data// WebKit-style focus @mixin tab-focus() { // Default outline: thin dotted; // WebKit outline: 5px auto -webkit-focus-ring-color; outline-offset: -2px; } bootstrap-sass-3.3.5.1/assets/stylesheets/bootstrap/mixins/_labels.scss0000644000004100000410000000024712556335206026407 0ustar www-datawww-data// Labels @mixin label-variant($color) { background-color: $color; &[href] { &:hover, &:focus { background-color: darken($color, 10%); } } } bootstrap-sass-3.3.5.1/assets/stylesheets/bootstrap/mixins/_center-block.scss0000644000004100000410000000017612556335206027516 0ustar www-datawww-data// Center-align a block level element @mixin center-block() { display: block; margin-left: auto; margin-right: auto; } bootstrap-sass-3.3.5.1/assets/stylesheets/bootstrap/mixins/_clearfix.scss0000644000004100000410000000114312556335206026736 0ustar www-datawww-data// Clearfix // // For modern browsers // 1. The space content is one way to avoid an Opera bug when the // contenteditable attribute is included anywhere else in the document. // Otherwise it causes space to appear at the top and bottom of elements // that are clearfixed. // 2. The use of `table` rather than `block` is only necessary if using // `:before` to contain the top-margins of child elements. // // Source: http://nicolasgallagher.com/micro-clearfix-hack/ @mixin clearfix() { &:before, &:after { content: " "; // 1 display: table; // 2 } &:after { clear: both; } } bootstrap-sass-3.3.5.1/assets/stylesheets/bootstrap/mixins/_progress-bar.scss0000644000004100000410000000031012556335206027542 0ustar www-datawww-data// Progress bars @mixin progress-bar-variant($color) { background-color: $color; // Deprecated parent class requirement as of v3.2.0 .progress-striped & { @include gradient-striped; } } bootstrap-sass-3.3.5.1/assets/stylesheets/bootstrap/mixins/_size.scss0000644000004100000410000000022312556335206026111 0ustar www-datawww-data// Sizing shortcuts @mixin size($width, $height) { width: $width; height: $height; } @mixin square($size) { @include size($size, $size); } bootstrap-sass-3.3.5.1/assets/stylesheets/bootstrap/mixins/_responsive-visibility.scss0000644000004100000410000000100212556335206031515 0ustar www-datawww-data// Responsive utilities // // More easily include all the states for responsive-utilities.less. // [converter] $parent hack @mixin responsive-visibility($parent) { #{$parent} { display: block !important; } table#{$parent} { display: table !important; } tr#{$parent} { display: table-row !important; } th#{$parent}, td#{$parent} { display: table-cell !important; } } // [converter] $parent hack @mixin responsive-invisibility($parent) { #{$parent} { display: none !important; } } bootstrap-sass-3.3.5.1/assets/stylesheets/bootstrap/mixins/_nav-divider.scss0000644000004100000410000000035612556335206027356 0ustar www-datawww-data// Horizontal dividers // // Dividers (basically an hr) within dropdowns and nav lists @mixin nav-divider($color: #e5e5e5) { height: 1px; margin: (($line-height-computed / 2) - 1) 0; overflow: hidden; background-color: $color; } bootstrap-sass-3.3.5.1/assets/stylesheets/bootstrap/mixins/_opacity.scss0000644000004100000410000000022512556335206026611 0ustar www-datawww-data// Opacity @mixin opacity($opacity) { opacity: $opacity; // IE8 filter $opacity-ie: ($opacity * 100); filter: alpha(opacity=$opacity-ie); } bootstrap-sass-3.3.5.1/assets/stylesheets/bootstrap/mixins/_border-radius.scss0000644000004100000410000000075412556335206027712 0ustar www-datawww-data// Single side border-radius @mixin border-top-radius($radius) { border-top-right-radius: $radius; border-top-left-radius: $radius; } @mixin border-right-radius($radius) { border-bottom-right-radius: $radius; border-top-right-radius: $radius; } @mixin border-bottom-radius($radius) { border-bottom-right-radius: $radius; border-bottom-left-radius: $radius; } @mixin border-left-radius($radius) { border-bottom-left-radius: $radius; border-top-left-radius: $radius; } bootstrap-sass-3.3.5.1/assets/stylesheets/bootstrap/mixins/_image.scss0000644000004100000410000000227012556335206026225 0ustar www-datawww-data// Image Mixins // - Responsive image // - Retina image // Responsive image // // Keep images from scaling beyond the width of their parents. @mixin img-responsive($display: block) { display: $display; max-width: 100%; // Part 1: Set a maximum relative to the parent height: auto; // Part 2: Scale the height according to the width, otherwise you get stretching } // Retina image // // Short retina mixin for setting background-image and -size. Note that the // spelling of `min--moz-device-pixel-ratio` is intentional. @mixin img-retina($file-1x, $file-2x, $width-1x, $height-1x) { background-image: url(if($bootstrap-sass-asset-helper, twbs-image-path("#{$file-1x}"), "#{$file-1x}")); @media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and ( min--moz-device-pixel-ratio: 2), only screen and ( -o-min-device-pixel-ratio: 2/1), only screen and ( min-device-pixel-ratio: 2), only screen and ( min-resolution: 192dpi), only screen and ( min-resolution: 2dppx) { background-image: url(if($bootstrap-sass-asset-helper, twbs-image-path("#{$file-2x}"), "#{$file-2x}")); background-size: $width-1x $height-1x; } } bootstrap-sass-3.3.5.1/assets/stylesheets/bootstrap/mixins/_hide-text.scss0000644000004100000410000000111512556335206027033 0ustar www-datawww-data// CSS image replacement // // Heads up! v3 launched with only `.hide-text()`, but per our pattern for // mixins being reused as classes with the same name, this doesn't hold up. As // of v3.0.1 we have added `.text-hide()` and deprecated `.hide-text()`. // // Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757 // Deprecated as of v3.0.1 (will be removed in v4) @mixin hide-text() { font: 0/0 a; color: transparent; text-shadow: none; background-color: transparent; border: 0; } // New mixin to use as of v3.0.1 @mixin text-hide() { @include hide-text; } bootstrap-sass-3.3.5.1/assets/stylesheets/bootstrap/mixins/_pagination.scss0000644000004100000410000000077312556335206027302 0ustar www-datawww-data// Pagination @mixin pagination-size($padding-vertical, $padding-horizontal, $font-size, $line-height, $border-radius) { > li { > a, > span { padding: $padding-vertical $padding-horizontal; font-size: $font-size; line-height: $line-height; } &:first-child { > a, > span { @include border-left-radius($border-radius); } } &:last-child { > a, > span { @include border-right-radius($border-radius); } } } } bootstrap-sass-3.3.5.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss0000644000004100000410000000447012556335206030067 0ustar www-datawww-data// Framework grid generation // // Used only by Bootstrap to generate the correct number of grid classes given // any value of `$grid-columns`. // [converter] This is defined recursively in LESS, but Sass supports real loops @mixin make-grid-columns($i: 1, $list: ".col-xs-#{$i}, .col-sm-#{$i}, .col-md-#{$i}, .col-lg-#{$i}") { @for $i from (1 + 1) through $grid-columns { $list: "#{$list}, .col-xs-#{$i}, .col-sm-#{$i}, .col-md-#{$i}, .col-lg-#{$i}"; } #{$list} { position: relative; // Prevent columns from collapsing when empty min-height: 1px; // Inner gutter via padding padding-left: ceil(($grid-gutter-width / 2)); padding-right: floor(($grid-gutter-width / 2)); } } // [converter] This is defined recursively in LESS, but Sass supports real loops @mixin float-grid-columns($class, $i: 1, $list: ".col-#{$class}-#{$i}") { @for $i from (1 + 1) through $grid-columns { $list: "#{$list}, .col-#{$class}-#{$i}"; } #{$list} { float: left; } } @mixin calc-grid-column($index, $class, $type) { @if ($type == width) and ($index > 0) { .col-#{$class}-#{$index} { width: percentage(($index / $grid-columns)); } } @if ($type == push) and ($index > 0) { .col-#{$class}-push-#{$index} { left: percentage(($index / $grid-columns)); } } @if ($type == push) and ($index == 0) { .col-#{$class}-push-0 { left: auto; } } @if ($type == pull) and ($index > 0) { .col-#{$class}-pull-#{$index} { right: percentage(($index / $grid-columns)); } } @if ($type == pull) and ($index == 0) { .col-#{$class}-pull-0 { right: auto; } } @if ($type == offset) { .col-#{$class}-offset-#{$index} { margin-left: percentage(($index / $grid-columns)); } } } // [converter] This is defined recursively in LESS, but Sass supports real loops @mixin loop-grid-columns($columns, $class, $type) { @for $i from 0 through $columns { @include calc-grid-column($i, $class, $type); } } // Create grid for specific class @mixin make-grid($class) { @include float-grid-columns($class); @include loop-grid-columns($grid-columns, $class, width); @include loop-grid-columns($grid-columns, $class, pull); @include loop-grid-columns($grid-columns, $class, push); @include loop-grid-columns($grid-columns, $class, offset); } bootstrap-sass-3.3.5.1/assets/stylesheets/bootstrap/mixins/_vendor-prefixes.scss0000644000004100000410000001476212556335206030274 0ustar www-datawww-data// Vendor Prefixes // // All vendor mixins are deprecated as of v3.2.0 due to the introduction of // Autoprefixer in our Gruntfile. They will be removed in v4. // - Animations // - Backface visibility // - Box shadow // - Box sizing // - Content columns // - Hyphens // - Placeholder text // - Transformations // - Transitions // - User Select // Animations @mixin animation($animation) { -webkit-animation: $animation; -o-animation: $animation; animation: $animation; } @mixin animation-name($name) { -webkit-animation-name: $name; animation-name: $name; } @mixin animation-duration($duration) { -webkit-animation-duration: $duration; animation-duration: $duration; } @mixin animation-timing-function($timing-function) { -webkit-animation-timing-function: $timing-function; animation-timing-function: $timing-function; } @mixin animation-delay($delay) { -webkit-animation-delay: $delay; animation-delay: $delay; } @mixin animation-iteration-count($iteration-count) { -webkit-animation-iteration-count: $iteration-count; animation-iteration-count: $iteration-count; } @mixin animation-direction($direction) { -webkit-animation-direction: $direction; animation-direction: $direction; } @mixin animation-fill-mode($fill-mode) { -webkit-animation-fill-mode: $fill-mode; animation-fill-mode: $fill-mode; } // Backface visibility // Prevent browsers from flickering when using CSS 3D transforms. // Default value is `visible`, but can be changed to `hidden` @mixin backface-visibility($visibility){ -webkit-backface-visibility: $visibility; -moz-backface-visibility: $visibility; backface-visibility: $visibility; } // Drop shadows // // Note: Deprecated `.box-shadow()` as of v3.1.0 since all of Bootstrap's // supported browsers that have box shadow capabilities now support it. @mixin box-shadow($shadow...) { -webkit-box-shadow: $shadow; // iOS <4.3 & Android <4.1 box-shadow: $shadow; } // Box sizing @mixin box-sizing($boxmodel) { -webkit-box-sizing: $boxmodel; -moz-box-sizing: $boxmodel; box-sizing: $boxmodel; } // CSS3 Content Columns @mixin content-columns($column-count, $column-gap: $grid-gutter-width) { -webkit-column-count: $column-count; -moz-column-count: $column-count; column-count: $column-count; -webkit-column-gap: $column-gap; -moz-column-gap: $column-gap; column-gap: $column-gap; } // Optional hyphenation @mixin hyphens($mode: auto) { word-wrap: break-word; -webkit-hyphens: $mode; -moz-hyphens: $mode; -ms-hyphens: $mode; // IE10+ -o-hyphens: $mode; hyphens: $mode; } // Placeholder text @mixin placeholder($color: $input-color-placeholder) { // Firefox &::-moz-placeholder { color: $color; opacity: 1; // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526 } &:-ms-input-placeholder { color: $color; } // Internet Explorer 10+ &::-webkit-input-placeholder { color: $color; } // Safari and Chrome } // Transformations @mixin scale($ratio...) { -webkit-transform: scale($ratio); -ms-transform: scale($ratio); // IE9 only -o-transform: scale($ratio); transform: scale($ratio); } @mixin scaleX($ratio) { -webkit-transform: scaleX($ratio); -ms-transform: scaleX($ratio); // IE9 only -o-transform: scaleX($ratio); transform: scaleX($ratio); } @mixin scaleY($ratio) { -webkit-transform: scaleY($ratio); -ms-transform: scaleY($ratio); // IE9 only -o-transform: scaleY($ratio); transform: scaleY($ratio); } @mixin skew($x, $y) { -webkit-transform: skewX($x) skewY($y); -ms-transform: skewX($x) skewY($y); // See https://github.com/twbs/bootstrap/issues/4885; IE9+ -o-transform: skewX($x) skewY($y); transform: skewX($x) skewY($y); } @mixin translate($x, $y) { -webkit-transform: translate($x, $y); -ms-transform: translate($x, $y); // IE9 only -o-transform: translate($x, $y); transform: translate($x, $y); } @mixin translate3d($x, $y, $z) { -webkit-transform: translate3d($x, $y, $z); transform: translate3d($x, $y, $z); } @mixin rotate($degrees) { -webkit-transform: rotate($degrees); -ms-transform: rotate($degrees); // IE9 only -o-transform: rotate($degrees); transform: rotate($degrees); } @mixin rotateX($degrees) { -webkit-transform: rotateX($degrees); -ms-transform: rotateX($degrees); // IE9 only -o-transform: rotateX($degrees); transform: rotateX($degrees); } @mixin rotateY($degrees) { -webkit-transform: rotateY($degrees); -ms-transform: rotateY($degrees); // IE9 only -o-transform: rotateY($degrees); transform: rotateY($degrees); } @mixin perspective($perspective) { -webkit-perspective: $perspective; -moz-perspective: $perspective; perspective: $perspective; } @mixin perspective-origin($perspective) { -webkit-perspective-origin: $perspective; -moz-perspective-origin: $perspective; perspective-origin: $perspective; } @mixin transform-origin($origin) { -webkit-transform-origin: $origin; -moz-transform-origin: $origin; -ms-transform-origin: $origin; // IE9 only transform-origin: $origin; } // Transitions @mixin transition($transition...) { -webkit-transition: $transition; -o-transition: $transition; transition: $transition; } @mixin transition-property($transition-property...) { -webkit-transition-property: $transition-property; transition-property: $transition-property; } @mixin transition-delay($transition-delay) { -webkit-transition-delay: $transition-delay; transition-delay: $transition-delay; } @mixin transition-duration($transition-duration...) { -webkit-transition-duration: $transition-duration; transition-duration: $transition-duration; } @mixin transition-timing-function($timing-function) { -webkit-transition-timing-function: $timing-function; transition-timing-function: $timing-function; } @mixin transition-transform($transition...) { -webkit-transition: -webkit-transform $transition; -moz-transition: -moz-transform $transition; -o-transition: -o-transform $transition; transition: transform $transition; } // User select // For selecting text on the page @mixin user-select($select) { -webkit-user-select: $select; -moz-user-select: $select; -ms-user-select: $select; // IE10+ user-select: $select; } bootstrap-sass-3.3.5.1/assets/stylesheets/bootstrap/mixins/_resize.scss0000644000004100000410000000031212556335206026437 0ustar www-datawww-data// Resize anything @mixin resizable($direction) { resize: $direction; // Options: horizontal, vertical, both overflow: auto; // Per CSS3 UI, `resize` only applies when `overflow` isn't `visible` } bootstrap-sass-3.3.5.1/assets/stylesheets/bootstrap/mixins/_table-row.scss0000644000004100000410000000131312556335206027034 0ustar www-datawww-data// Tables @mixin table-row-variant($state, $background) { // Exact selectors below required to override `.table-striped` and prevent // inheritance to nested tables. .table > thead > tr, .table > tbody > tr, .table > tfoot > tr { > td.#{$state}, > th.#{$state}, &.#{$state} > td, &.#{$state} > th { background-color: $background; } } // Hover states for `.table-hover` // Note: this is not available for cells or rows within `thead` or `tfoot`. .table-hover > tbody > tr { > td.#{$state}:hover, > th.#{$state}:hover, &.#{$state}:hover > td, &:hover > .#{$state}, &.#{$state}:hover > th { background-color: darken($background, 5%); } } } bootstrap-sass-3.3.5.1/assets/stylesheets/bootstrap/mixins/_nav-vertical-align.scss0000644000004100000410000000056212556335206030630 0ustar www-datawww-data// Navbar vertical align // // Vertically center elements in the navbar. // Example: an element has a height of 30px, so write out `.navbar-vertical-align(30px);` to calculate the appropriate top margin. @mixin navbar-vertical-align($element-height) { margin-top: (($navbar-height - $element-height) / 2); margin-bottom: (($navbar-height - $element-height) / 2); } bootstrap-sass-3.3.5.1/assets/stylesheets/bootstrap/mixins/_alerts.scss0000644000004100000410000000040712556335206026435 0ustar www-datawww-data// Alerts @mixin alert-variant($background, $border, $text-color) { background-color: $background; border-color: $border; color: $text-color; hr { border-top-color: darken($border, 5%); } .alert-link { color: darken($text-color, 10%); } } bootstrap-sass-3.3.5.1/assets/stylesheets/bootstrap/mixins/_forms.scss0000644000004100000410000000532312556335206026273 0ustar www-datawww-data// Form validation states // // Used in forms.less to generate the form validation CSS for warnings, errors, // and successes. @mixin form-control-validation($text-color: #555, $border-color: #ccc, $background-color: #f5f5f5) { // Color the label and help text .help-block, .control-label, .radio, .checkbox, .radio-inline, .checkbox-inline, &.radio label, &.checkbox label, &.radio-inline label, &.checkbox-inline label { color: $text-color; } // Set the border and box shadow on specific inputs to match .form-control { border-color: $border-color; @include box-shadow(inset 0 1px 1px rgba(0,0,0,.075)); // Redeclare so transitions work &:focus { border-color: darken($border-color, 10%); $shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 6px lighten($border-color, 20%); @include box-shadow($shadow); } } // Set validation states also for addons .input-group-addon { color: $text-color; border-color: $border-color; background-color: $background-color; } // Optional feedback icon .form-control-feedback { color: $text-color; } } // Form control focus state // // Generate a customized focus state and for any input with the specified color, // which defaults to the `$input-border-focus` variable. // // We highly encourage you to not customize the default value, but instead use // this to tweak colors on an as-needed basis. This aesthetic change is based on // WebKit's default styles, but applicable to a wider range of browsers. Its // usability and accessibility should be taken into account with any change. // // Example usage: change the default blue border and shadow to white for better // contrast against a dark gray background. @mixin form-control-focus($color: $input-border-focus) { $color-rgba: rgba(red($color), green($color), blue($color), .6); &:focus { border-color: $color; outline: 0; @include box-shadow(inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px $color-rgba); } } // Form control sizing // // Relative text size, padding, and border-radii changes for form controls. For // horizontal sizing, wrap controls in the predefined grid classes. `s in some browsers, due to the limited stylability of ` background color $input-bg: #fff !default; //** `` background color $input-bg-disabled: $gray-lighter !default; //** Text color for ``s $input-color: $gray !default; //** `` border color $input-border: #ccc !default; // TODO: Rename `$input-border-radius` to `$input-border-radius-base` in v4 //** Default `.form-control` border radius // This has no effect on ``s in CSS. $input-border-radius: $border-radius-base !default; //** Large `.form-control` border radius $input-border-radius-large: $border-radius-large !default; //** Small `.form-control` border radius $input-border-radius-small: $border-radius-small !default; //** Border color for inputs on focus $input-border-focus: #66afe9 !default; //** Placeholder text color $input-color-placeholder: #999 !default; //** Default `.form-control` height $input-height-base: ($line-height-computed + ($padding-base-vertical * 2) + 2) !default; //** Large `.form-control` height $input-height-large: (ceil($font-size-large * $line-height-large) + ($padding-large-vertical * 2) + 2) !default; //** Small `.form-control` height $input-height-small: (floor($font-size-small * $line-height-small) + ($padding-small-vertical * 2) + 2) !default; //** `.form-group` margin $form-group-margin-bottom: 15px !default; $legend-color: $gray-dark !default; $legend-border-color: #e5e5e5 !default; //** Background color for textual input addons $input-group-addon-bg: $gray-lighter !default; //** Border color for textual input addons $input-group-addon-border-color: $input-border !default; //** Disabled cursor for form controls and buttons. $cursor-disabled: not-allowed !default; //== Dropdowns // //## Dropdown menu container and contents. //** Background for the dropdown menu. $dropdown-bg: #fff !default; //** Dropdown menu `border-color`. $dropdown-border: rgba(0,0,0,.15) !default; //** Dropdown menu `border-color` **for IE8**. $dropdown-fallback-border: #ccc !default; //** Divider color for between dropdown items. $dropdown-divider-bg: #e5e5e5 !default; //** Dropdown link text color. $dropdown-link-color: $gray-dark !default; //** Hover color for dropdown links. $dropdown-link-hover-color: darken($gray-dark, 5%) !default; //** Hover background for dropdown links. $dropdown-link-hover-bg: #f5f5f5 !default; //** Active dropdown menu item text color. $dropdown-link-active-color: $component-active-color !default; //** Active dropdown menu item background color. $dropdown-link-active-bg: $component-active-bg !default; //** Disabled dropdown menu item background color. $dropdown-link-disabled-color: $gray-light !default; //** Text color for headers within dropdown menus. $dropdown-header-color: $gray-light !default; //** Deprecated `$dropdown-caret-color` as of v3.1.0 $dropdown-caret-color: #000 !default; //-- Z-index master list // // Warning: Avoid customizing these values. They're used for a bird's eye view // of components dependent on the z-axis and are designed to all work together. // // Note: These variables are not generated into the Customizer. $zindex-navbar: 1000 !default; $zindex-dropdown: 1000 !default; $zindex-popover: 1060 !default; $zindex-tooltip: 1070 !default; $zindex-navbar-fixed: 1030 !default; $zindex-modal-background: 1040 !default; $zindex-modal: 1050 !default; //== Media queries breakpoints // //## Define the breakpoints at which your layout will change, adapting to different screen sizes. // Extra small screen / phone //** Deprecated `$screen-xs` as of v3.0.1 $screen-xs: 480px !default; //** Deprecated `$screen-xs-min` as of v3.2.0 $screen-xs-min: $screen-xs !default; //** Deprecated `$screen-phone` as of v3.0.1 $screen-phone: $screen-xs-min !default; // Small screen / tablet //** Deprecated `$screen-sm` as of v3.0.1 $screen-sm: 768px !default; $screen-sm-min: $screen-sm !default; //** Deprecated `$screen-tablet` as of v3.0.1 $screen-tablet: $screen-sm-min !default; // Medium screen / desktop //** Deprecated `$screen-md` as of v3.0.1 $screen-md: 992px !default; $screen-md-min: $screen-md !default; //** Deprecated `$screen-desktop` as of v3.0.1 $screen-desktop: $screen-md-min !default; // Large screen / wide desktop //** Deprecated `$screen-lg` as of v3.0.1 $screen-lg: 1200px !default; $screen-lg-min: $screen-lg !default; //** Deprecated `$screen-lg-desktop` as of v3.0.1 $screen-lg-desktop: $screen-lg-min !default; // So media queries don't overlap when required, provide a maximum $screen-xs-max: ($screen-sm-min - 1) !default; $screen-sm-max: ($screen-md-min - 1) !default; $screen-md-max: ($screen-lg-min - 1) !default; //== Grid system // //## Define your custom responsive grid. //** Number of columns in the grid. $grid-columns: 12 !default; //** Padding between columns. Gets divided in half for the left and right. $grid-gutter-width: 30px !default; // Navbar collapse //** Point at which the navbar becomes uncollapsed. $grid-float-breakpoint: $screen-sm-min !default; //** Point at which the navbar begins collapsing. $grid-float-breakpoint-max: ($grid-float-breakpoint - 1) !default; //== Container sizes // //## Define the maximum width of `.container` for different screen sizes. // Small screen / tablet $container-tablet: (720px + $grid-gutter-width) !default; //** For `$screen-sm-min` and up. $container-sm: $container-tablet !default; // Medium screen / desktop $container-desktop: (940px + $grid-gutter-width) !default; //** For `$screen-md-min` and up. $container-md: $container-desktop !default; // Large screen / wide desktop $container-large-desktop: (1140px + $grid-gutter-width) !default; //** For `$screen-lg-min` and up. $container-lg: $container-large-desktop !default; //== Navbar // //## // Basics of a navbar $navbar-height: 50px !default; $navbar-margin-bottom: $line-height-computed !default; $navbar-border-radius: $border-radius-base !default; $navbar-padding-horizontal: floor(($grid-gutter-width / 2)) !default; $navbar-padding-vertical: (($navbar-height - $line-height-computed) / 2) !default; $navbar-collapse-max-height: 340px !default; $navbar-default-color: #777 !default; $navbar-default-bg: #f8f8f8 !default; $navbar-default-border: darken($navbar-default-bg, 6.5%) !default; // Navbar links $navbar-default-link-color: #777 !default; $navbar-default-link-hover-color: #333 !default; $navbar-default-link-hover-bg: transparent !default; $navbar-default-link-active-color: #555 !default; $navbar-default-link-active-bg: darken($navbar-default-bg, 6.5%) !default; $navbar-default-link-disabled-color: #ccc !default; $navbar-default-link-disabled-bg: transparent !default; // Navbar brand label $navbar-default-brand-color: $navbar-default-link-color !default; $navbar-default-brand-hover-color: darken($navbar-default-brand-color, 10%) !default; $navbar-default-brand-hover-bg: transparent !default; // Navbar toggle $navbar-default-toggle-hover-bg: #ddd !default; $navbar-default-toggle-icon-bar-bg: #888 !default; $navbar-default-toggle-border-color: #ddd !default; //=== Inverted navbar // Reset inverted navbar basics $navbar-inverse-color: lighten($gray-light, 15%) !default; $navbar-inverse-bg: #222 !default; $navbar-inverse-border: darken($navbar-inverse-bg, 10%) !default; // Inverted navbar links $navbar-inverse-link-color: lighten($gray-light, 15%) !default; $navbar-inverse-link-hover-color: #fff !default; $navbar-inverse-link-hover-bg: transparent !default; $navbar-inverse-link-active-color: $navbar-inverse-link-hover-color !default; $navbar-inverse-link-active-bg: darken($navbar-inverse-bg, 10%) !default; $navbar-inverse-link-disabled-color: #444 !default; $navbar-inverse-link-disabled-bg: transparent !default; // Inverted navbar brand label $navbar-inverse-brand-color: $navbar-inverse-link-color !default; $navbar-inverse-brand-hover-color: #fff !default; $navbar-inverse-brand-hover-bg: transparent !default; // Inverted navbar toggle $navbar-inverse-toggle-hover-bg: #333 !default; $navbar-inverse-toggle-icon-bar-bg: #fff !default; $navbar-inverse-toggle-border-color: #333 !default; //== Navs // //## //=== Shared nav styles $nav-link-padding: 10px 15px !default; $nav-link-hover-bg: $gray-lighter !default; $nav-disabled-link-color: $gray-light !default; $nav-disabled-link-hover-color: $gray-light !default; //== Tabs $nav-tabs-border-color: #ddd !default; $nav-tabs-link-hover-border-color: $gray-lighter !default; $nav-tabs-active-link-hover-bg: $body-bg !default; $nav-tabs-active-link-hover-color: $gray !default; $nav-tabs-active-link-hover-border-color: #ddd !default; $nav-tabs-justified-link-border-color: #ddd !default; $nav-tabs-justified-active-link-border-color: $body-bg !default; //== Pills $nav-pills-border-radius: $border-radius-base !default; $nav-pills-active-link-hover-bg: $component-active-bg !default; $nav-pills-active-link-hover-color: $component-active-color !default; //== Pagination // //## $pagination-color: $link-color !default; $pagination-bg: #fff !default; $pagination-border: #ddd !default; $pagination-hover-color: $link-hover-color !default; $pagination-hover-bg: $gray-lighter !default; $pagination-hover-border: #ddd !default; $pagination-active-color: #fff !default; $pagination-active-bg: $brand-primary !default; $pagination-active-border: $brand-primary !default; $pagination-disabled-color: $gray-light !default; $pagination-disabled-bg: #fff !default; $pagination-disabled-border: #ddd !default; //== Pager // //## $pager-bg: $pagination-bg !default; $pager-border: $pagination-border !default; $pager-border-radius: 15px !default; $pager-hover-bg: $pagination-hover-bg !default; $pager-active-bg: $pagination-active-bg !default; $pager-active-color: $pagination-active-color !default; $pager-disabled-color: $pagination-disabled-color !default; //== Jumbotron // //## $jumbotron-padding: 30px !default; $jumbotron-color: inherit !default; $jumbotron-bg: $gray-lighter !default; $jumbotron-heading-color: inherit !default; $jumbotron-font-size: ceil(($font-size-base * 1.5)) !default; $jumbotron-heading-font-size: ceil(($font-size-base * 4.5)) !default; //== Form states and alerts // //## Define colors for form feedback states and, by default, alerts. $state-success-text: #3c763d !default; $state-success-bg: #dff0d8 !default; $state-success-border: darken(adjust-hue($state-success-bg, -10), 5%) !default; $state-info-text: #31708f !default; $state-info-bg: #d9edf7 !default; $state-info-border: darken(adjust-hue($state-info-bg, -10), 7%) !default; $state-warning-text: #8a6d3b !default; $state-warning-bg: #fcf8e3 !default; $state-warning-border: darken(adjust-hue($state-warning-bg, -10), 5%) !default; $state-danger-text: #a94442 !default; $state-danger-bg: #f2dede !default; $state-danger-border: darken(adjust-hue($state-danger-bg, -10), 5%) !default; //== Tooltips // //## //** Tooltip max width $tooltip-max-width: 200px !default; //** Tooltip text color $tooltip-color: #fff !default; //** Tooltip background color $tooltip-bg: #000 !default; $tooltip-opacity: .9 !default; //** Tooltip arrow width $tooltip-arrow-width: 5px !default; //** Tooltip arrow color $tooltip-arrow-color: $tooltip-bg !default; //== Popovers // //## //** Popover body background color $popover-bg: #fff !default; //** Popover maximum width $popover-max-width: 276px !default; //** Popover border color $popover-border-color: rgba(0,0,0,.2) !default; //** Popover fallback border color $popover-fallback-border-color: #ccc !default; //** Popover title background color $popover-title-bg: darken($popover-bg, 3%) !default; //** Popover arrow width $popover-arrow-width: 10px !default; //** Popover arrow color $popover-arrow-color: $popover-bg !default; //** Popover outer arrow width $popover-arrow-outer-width: ($popover-arrow-width + 1) !default; //** Popover outer arrow color $popover-arrow-outer-color: fade_in($popover-border-color, 0.05) !default; //** Popover outer arrow fallback color $popover-arrow-outer-fallback-color: darken($popover-fallback-border-color, 20%) !default; //== Labels // //## //** Default label background color $label-default-bg: $gray-light !default; //** Primary label background color $label-primary-bg: $brand-primary !default; //** Success label background color $label-success-bg: $brand-success !default; //** Info label background color $label-info-bg: $brand-info !default; //** Warning label background color $label-warning-bg: $brand-warning !default; //** Danger label background color $label-danger-bg: $brand-danger !default; //** Default label text color $label-color: #fff !default; //** Default text color of a linked label $label-link-hover-color: #fff !default; //== Modals // //## //** Padding applied to the modal body $modal-inner-padding: 15px !default; //** Padding applied to the modal title $modal-title-padding: 15px !default; //** Modal title line-height $modal-title-line-height: $line-height-base !default; //** Background color of modal content area $modal-content-bg: #fff !default; //** Modal content border color $modal-content-border-color: rgba(0,0,0,.2) !default; //** Modal content border color **for IE8** $modal-content-fallback-border-color: #999 !default; //** Modal backdrop background color $modal-backdrop-bg: #000 !default; //** Modal backdrop opacity $modal-backdrop-opacity: .5 !default; //** Modal header border color $modal-header-border-color: #e5e5e5 !default; //** Modal footer border color $modal-footer-border-color: $modal-header-border-color !default; $modal-lg: 900px !default; $modal-md: 600px !default; $modal-sm: 300px !default; //== Alerts // //## Define alert colors, border radius, and padding. $alert-padding: 15px !default; $alert-border-radius: $border-radius-base !default; $alert-link-font-weight: bold !default; $alert-success-bg: $state-success-bg !default; $alert-success-text: $state-success-text !default; $alert-success-border: $state-success-border !default; $alert-info-bg: $state-info-bg !default; $alert-info-text: $state-info-text !default; $alert-info-border: $state-info-border !default; $alert-warning-bg: $state-warning-bg !default; $alert-warning-text: $state-warning-text !default; $alert-warning-border: $state-warning-border !default; $alert-danger-bg: $state-danger-bg !default; $alert-danger-text: $state-danger-text !default; $alert-danger-border: $state-danger-border !default; //== Progress bars // //## //** Background color of the whole progress component $progress-bg: #f5f5f5 !default; //** Progress bar text color $progress-bar-color: #fff !default; //** Variable for setting rounded corners on progress bar. $progress-border-radius: $border-radius-base !default; //** Default progress bar color $progress-bar-bg: $brand-primary !default; //** Success progress bar color $progress-bar-success-bg: $brand-success !default; //** Warning progress bar color $progress-bar-warning-bg: $brand-warning !default; //** Danger progress bar color $progress-bar-danger-bg: $brand-danger !default; //** Info progress bar color $progress-bar-info-bg: $brand-info !default; //== List group // //## //** Background color on `.list-group-item` $list-group-bg: #fff !default; //** `.list-group-item` border color $list-group-border: #ddd !default; //** List group border radius $list-group-border-radius: $border-radius-base !default; //** Background color of single list items on hover $list-group-hover-bg: #f5f5f5 !default; //** Text color of active list items $list-group-active-color: $component-active-color !default; //** Background color of active list items $list-group-active-bg: $component-active-bg !default; //** Border color of active list elements $list-group-active-border: $list-group-active-bg !default; //** Text color for content within active list items $list-group-active-text-color: lighten($list-group-active-bg, 40%) !default; //** Text color of disabled list items $list-group-disabled-color: $gray-light !default; //** Background color of disabled list items $list-group-disabled-bg: $gray-lighter !default; //** Text color for content within disabled list items $list-group-disabled-text-color: $list-group-disabled-color !default; $list-group-link-color: #555 !default; $list-group-link-hover-color: $list-group-link-color !default; $list-group-link-heading-color: #333 !default; //== Panels // //## $panel-bg: #fff !default; $panel-body-padding: 15px !default; $panel-heading-padding: 10px 15px !default; $panel-footer-padding: $panel-heading-padding !default; $panel-border-radius: $border-radius-base !default; //** Border color for elements within panels $panel-inner-border: #ddd !default; $panel-footer-bg: #f5f5f5 !default; $panel-default-text: $gray-dark !default; $panel-default-border: #ddd !default; $panel-default-heading-bg: #f5f5f5 !default; $panel-primary-text: #fff !default; $panel-primary-border: $brand-primary !default; $panel-primary-heading-bg: $brand-primary !default; $panel-success-text: $state-success-text !default; $panel-success-border: $state-success-border !default; $panel-success-heading-bg: $state-success-bg !default; $panel-info-text: $state-info-text !default; $panel-info-border: $state-info-border !default; $panel-info-heading-bg: $state-info-bg !default; $panel-warning-text: $state-warning-text !default; $panel-warning-border: $state-warning-border !default; $panel-warning-heading-bg: $state-warning-bg !default; $panel-danger-text: $state-danger-text !default; $panel-danger-border: $state-danger-border !default; $panel-danger-heading-bg: $state-danger-bg !default; //== Thumbnails // //## //** Padding around the thumbnail image $thumbnail-padding: 4px !default; //** Thumbnail background color $thumbnail-bg: $body-bg !default; //** Thumbnail border color $thumbnail-border: #ddd !default; //** Thumbnail border radius $thumbnail-border-radius: $border-radius-base !default; //** Custom text color for thumbnail captions $thumbnail-caption-color: $text-color !default; //** Padding around the thumbnail caption $thumbnail-caption-padding: 9px !default; //== Wells // //## $well-bg: #f5f5f5 !default; $well-border: darken($well-bg, 7%) !default; //== Badges // //## $badge-color: #fff !default; //** Linked badge text color on hover $badge-link-hover-color: #fff !default; $badge-bg: $gray-light !default; //** Badge text color in active nav link $badge-active-color: $link-color !default; //** Badge background color in active nav link $badge-active-bg: #fff !default; $badge-font-weight: bold !default; $badge-line-height: 1 !default; $badge-border-radius: 10px !default; //== Breadcrumbs // //## $breadcrumb-padding-vertical: 8px !default; $breadcrumb-padding-horizontal: 15px !default; //** Breadcrumb background color $breadcrumb-bg: #f5f5f5 !default; //** Breadcrumb text color $breadcrumb-color: #ccc !default; //** Text color of current page in the breadcrumb $breadcrumb-active-color: $gray-light !default; //** Textual separator for between breadcrumb elements $breadcrumb-separator: "/" !default; //== Carousel // //## $carousel-text-shadow: 0 1px 2px rgba(0,0,0,.6) !default; $carousel-control-color: #fff !default; $carousel-control-width: 15% !default; $carousel-control-opacity: .5 !default; $carousel-control-font-size: 20px !default; $carousel-indicator-active-bg: #fff !default; $carousel-indicator-border-color: #fff !default; $carousel-caption-color: #fff !default; //== Close // //## $close-font-weight: bold !default; $close-color: #000 !default; $close-text-shadow: 0 1px 0 #fff !default; //== Code // //## $code-color: #c7254e !default; $code-bg: #f9f2f4 !default; $kbd-color: #fff !default; $kbd-bg: #333 !default; $pre-bg: #f5f5f5 !default; $pre-color: $gray-dark !default; $pre-border-color: #ccc !default; $pre-scrollable-max-height: 340px !default; //== Type // //## //** Horizontal offset for forms and lists. $component-offset-horizontal: 180px !default; //** Text muted color $text-muted: $gray-light !default; //** Abbreviations and acronyms border color $abbr-border-color: $gray-light !default; //** Headings small color $headings-small-color: $gray-light !default; //** Blockquote small color $blockquote-small-color: $gray-light !default; //** Blockquote font size $blockquote-font-size: ($font-size-base * 1.25) !default; //** Blockquote border color $blockquote-border-color: $gray-lighter !default; //** Page header border color $page-header-border-color: $gray-lighter !default; //** Width of horizontal description list titles $dl-horizontal-offset: $component-offset-horizontal !default; //** Horizontal line color. $hr-border: $gray-lighter !default; bootstrap-sass-3.3.5.1/assets/stylesheets/bootstrap/_tooltip.scss0000644000004100000410000000567712556335206025344 0ustar www-datawww-data// // Tooltips // -------------------------------------------------- // Base class .tooltip { position: absolute; z-index: $zindex-tooltip; display: block; // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element. // So reset our font and text properties to avoid inheriting weird values. @include reset-text; font-size: $font-size-small; @include opacity(0); &.in { @include opacity($tooltip-opacity); } &.top { margin-top: -3px; padding: $tooltip-arrow-width 0; } &.right { margin-left: 3px; padding: 0 $tooltip-arrow-width; } &.bottom { margin-top: 3px; padding: $tooltip-arrow-width 0; } &.left { margin-left: -3px; padding: 0 $tooltip-arrow-width; } } // Wrapper for the tooltip content .tooltip-inner { max-width: $tooltip-max-width; padding: 3px 8px; color: $tooltip-color; text-align: center; background-color: $tooltip-bg; border-radius: $border-radius-base; } // Arrows .tooltip-arrow { position: absolute; width: 0; height: 0; border-color: transparent; border-style: solid; } // Note: Deprecated .top-left, .top-right, .bottom-left, and .bottom-right as of v3.3.1 .tooltip { &.top .tooltip-arrow { bottom: 0; left: 50%; margin-left: -$tooltip-arrow-width; border-width: $tooltip-arrow-width $tooltip-arrow-width 0; border-top-color: $tooltip-arrow-color; } &.top-left .tooltip-arrow { bottom: 0; right: $tooltip-arrow-width; margin-bottom: -$tooltip-arrow-width; border-width: $tooltip-arrow-width $tooltip-arrow-width 0; border-top-color: $tooltip-arrow-color; } &.top-right .tooltip-arrow { bottom: 0; left: $tooltip-arrow-width; margin-bottom: -$tooltip-arrow-width; border-width: $tooltip-arrow-width $tooltip-arrow-width 0; border-top-color: $tooltip-arrow-color; } &.right .tooltip-arrow { top: 50%; left: 0; margin-top: -$tooltip-arrow-width; border-width: $tooltip-arrow-width $tooltip-arrow-width $tooltip-arrow-width 0; border-right-color: $tooltip-arrow-color; } &.left .tooltip-arrow { top: 50%; right: 0; margin-top: -$tooltip-arrow-width; border-width: $tooltip-arrow-width 0 $tooltip-arrow-width $tooltip-arrow-width; border-left-color: $tooltip-arrow-color; } &.bottom .tooltip-arrow { top: 0; left: 50%; margin-left: -$tooltip-arrow-width; border-width: 0 $tooltip-arrow-width $tooltip-arrow-width; border-bottom-color: $tooltip-arrow-color; } &.bottom-left .tooltip-arrow { top: 0; right: $tooltip-arrow-width; margin-top: -$tooltip-arrow-width; border-width: 0 $tooltip-arrow-width $tooltip-arrow-width; border-bottom-color: $tooltip-arrow-color; } &.bottom-right .tooltip-arrow { top: 0; left: $tooltip-arrow-width; margin-top: -$tooltip-arrow-width; border-width: 0 $tooltip-arrow-width $tooltip-arrow-width; border-bottom-color: $tooltip-arrow-color; } } bootstrap-sass-3.3.5.1/assets/stylesheets/bootstrap/_list-group.scss0000644000004100000410000000614412556335206025745 0ustar www-datawww-data// // List groups // -------------------------------------------------- // Base class // // Easily usable on