Copy disabled (too large)
Download .txt
Showing preview only (38,453K chars total). Download the full file to get everything.
Repository: matthewhague/sat-css-tool
Branch: master
Commit: 1d983625032b
Files: 543
Total size: 36.6 MB
Directory structure:
gitextract_1nh6rfi8/
├── .gitignore
├── NOTES.md
├── README.md
├── Vienna/
│ ├── Research Groups • Informatics, TU Vienna.html
│ └── Research Groups • Informatics, TU Vienna_files/
│ ├── add.js
│ ├── uikit.min1.css
│ ├── uikit.min2.css
│ └── uikit_branding.css
├── benchmarks/
│ ├── 360-stripmq-cleancss.css
│ ├── 360-stripmq-cssmin.css
│ ├── 360-stripmq-cssnano.css
│ ├── 360-stripmq-csso.css
│ ├── 360-stripmq-minify.css
│ ├── 360-stripmq-yui.css
│ ├── 360-stripmq.css
│ ├── amazon-stripmq-cleancss.css
│ ├── amazon-stripmq-cssmin.css
│ ├── amazon-stripmq-cssnano.css
│ ├── amazon-stripmq-csso.css
│ ├── amazon-stripmq-minify.css
│ ├── amazon-stripmq-yui.css
│ ├── amazon-stripmq.css
│ ├── archlinux-stripmq-cleancss.css
│ ├── archlinux-stripmq-cssmin.css
│ ├── archlinux-stripmq-cssnano.css
│ ├── archlinux-stripmq-csso.css
│ ├── archlinux-stripmq-minify.css
│ ├── archlinux-stripmq-yui.css
│ ├── archlinux-stripmq.css
│ ├── arxiv-stripmq-cleancss.css
│ ├── arxiv-stripmq-cssmin.css
│ ├── arxiv-stripmq-cssnano.css
│ ├── arxiv-stripmq-csso.css
│ ├── arxiv-stripmq-minify.css
│ ├── arxiv-stripmq-yui.css
│ ├── arxiv-stripmq.css
│ ├── baidu-1-stripmq-cleancss.css
│ ├── baidu-1-stripmq-cssmin.css
│ ├── baidu-1-stripmq-cssnano.css
│ ├── baidu-1-stripmq-csso.css
│ ├── baidu-1-stripmq-minify.css
│ ├── baidu-1-stripmq-yui.css
│ ├── baidu-1-stripmq.css
│ ├── baidu-2-stripmq-cleancss.css
│ ├── baidu-2-stripmq-cssmin.css
│ ├── baidu-2-stripmq-cssnano.css
│ ├── baidu-2-stripmq-csso.css
│ ├── baidu-2-stripmq-minify.css
│ ├── baidu-2-stripmq-yui.css
│ ├── baidu-2-stripmq.css
│ ├── baidu-3-stripmq-cleancss.css
│ ├── baidu-3-stripmq-cssmin.css
│ ├── baidu-3-stripmq-cssnano.css
│ ├── baidu-3-stripmq-csso.css
│ ├── baidu-3-stripmq-minify.css
│ ├── baidu-3-stripmq-yui.css
│ ├── baidu-3-stripmq.css
│ ├── bing-stripmq-cleancss.css
│ ├── bing-stripmq-cssmin.css
│ ├── bing-stripmq-cssnano.css
│ ├── bing-stripmq-csso.css
│ ├── bing-stripmq-minify.css
│ ├── bing-stripmq-yui.css
│ ├── bing-stripmq.css
│ ├── cnn-stripmq-cleancss.css
│ ├── cnn-stripmq-cssmin.css
│ ├── cnn-stripmq-cssnano.css
│ ├── cnn-stripmq-csso.css
│ ├── cnn-stripmq-minify.css
│ ├── cnn-stripmq-yui.css
│ ├── cnn-stripmq.css
│ ├── dblp-2015-07-09-stripmq-cleancss.css
│ ├── dblp-2015-07-09-stripmq-cssmin.css
│ ├── dblp-2015-07-09-stripmq-cssnano.css
│ ├── dblp-2015-07-09-stripmq-csso.css
│ ├── dblp-2015-07-09-stripmq-minify.css
│ ├── dblp-2015-07-09-stripmq-yui.css
│ ├── dblp-2015-07-09-stripmq.css
│ ├── ebay-stripmq-cleancss.css
│ ├── ebay-stripmq-cssmin.css
│ ├── ebay-stripmq-cssnano.css
│ ├── ebay-stripmq-csso.css
│ ├── ebay-stripmq-minify.css
│ ├── ebay-stripmq-yui.css
│ ├── ebay-stripmq.css
│ ├── example-list-nano.txt.1
│ ├── example-list-nano.txt.2
│ ├── example-list-nano.txt.3
│ ├── facebook1-stripmq-cleancss.css
│ ├── facebook1-stripmq-cssmin.css
│ ├── facebook1-stripmq-cssnano.css
│ ├── facebook1-stripmq-csso.css
│ ├── facebook1-stripmq-minify.css
│ ├── facebook1-stripmq-yui.css
│ ├── facebook1-stripmq.css
│ ├── github-stripmq-cleancss.css
│ ├── github-stripmq-cssmin.css
│ ├── github-stripmq-cssnano.css
│ ├── github-stripmq-csso.css
│ ├── github-stripmq-minify.css
│ ├── github-stripmq-yui.css
│ ├── github-stripmq.css
│ ├── google-1-stripmq-cleancss.css
│ ├── google-1-stripmq-cssmin.css
│ ├── google-1-stripmq-cssnano.css
│ ├── google-1-stripmq-csso.css
│ ├── google-1-stripmq-minify.css
│ ├── google-1-stripmq-yui.css
│ ├── google-1-stripmq.css
│ ├── google-2-stripmq-cleancss.css
│ ├── google-2-stripmq-cssmin.css
│ ├── google-2-stripmq-cssnano.css
│ ├── google-2-stripmq-csso.css
│ ├── google-2-stripmq-minify.css
│ ├── google-2-stripmq-yui.css
│ ├── google-2-stripmq.css
│ ├── googlenews-1-stripmq-cleancss.css
│ ├── googlenews-1-stripmq-cssmin.css
│ ├── googlenews-1-stripmq-cssnano.css
│ ├── googlenews-1-stripmq-csso.css
│ ├── googlenews-1-stripmq-minify.css
│ ├── googlenews-1-stripmq-yui.css
│ ├── googlenews-1-stripmq.css
│ ├── googlenews-2-stripmq-cleancss.css
│ ├── googlenews-2-stripmq-cssmin.css
│ ├── googlenews-2-stripmq-cssnano.css
│ ├── googlenews-2-stripmq-csso.css
│ ├── googlenews-2-stripmq-minify.css
│ ├── googlenews-2-stripmq-yui.css
│ ├── googlenews-2-stripmq.css
│ ├── guardian-stripmq-cleancss.css
│ ├── guardian-stripmq-cssmin.css
│ ├── guardian-stripmq-cssnano.css
│ ├── guardian-stripmq-csso.css
│ ├── guardian-stripmq-minify.css
│ ├── guardian-stripmq-yui.css
│ ├── guardian-stripmq.css
│ ├── guardian-stripmq.css.buggy
│ ├── imdb-1-stripmq-cleancss.css
│ ├── imdb-1-stripmq-cssmin.css
│ ├── imdb-1-stripmq-cssnano.css
│ ├── imdb-1-stripmq-csso.css
│ ├── imdb-1-stripmq-minify.css
│ ├── imdb-1-stripmq-yui.css
│ ├── imdb-1-stripmq.css
│ ├── imdb-2-stripmq-cleancss.css
│ ├── imdb-2-stripmq-cssmin.css
│ ├── imdb-2-stripmq-cssnano.css
│ ├── imdb-2-stripmq-csso.css
│ ├── imdb-2-stripmq-minify.css
│ ├── imdb-2-stripmq-yui.css
│ ├── imdb-2-stripmq.css
│ ├── imgur-1-stripmq-cleancss.css
│ ├── imgur-1-stripmq-cssmin.css
│ ├── imgur-1-stripmq-cssnano.css
│ ├── imgur-1-stripmq-csso.css
│ ├── imgur-1-stripmq-minify.css
│ ├── imgur-1-stripmq-yui.css
│ ├── imgur-1-stripmq.css
│ ├── imgur-2-stripmq-cleancss.css
│ ├── imgur-2-stripmq-cssmin.css
│ ├── imgur-2-stripmq-cssnano.css
│ ├── imgur-2-stripmq-csso.css
│ ├── imgur-2-stripmq-minify.css
│ ├── imgur-2-stripmq-yui.css
│ ├── imgur-2-stripmq.css
│ ├── instagram-stripmq-cleancss.css
│ ├── instagram-stripmq-cssmin.css
│ ├── instagram-stripmq-cssnano.css
│ ├── instagram-stripmq-csso.css
│ ├── instagram-stripmq-minify.css
│ ├── instagram-stripmq-yui.css
│ ├── instagram-stripmq.css
│ ├── linkedin-stripmq-cleancss.css
│ ├── linkedin-stripmq-cssmin.css
│ ├── linkedin-stripmq-cssnano.css
│ ├── linkedin-stripmq-csso.css
│ ├── linkedin-stripmq-minify.css
│ ├── linkedin-stripmq-yui.css
│ ├── linkedin-stripmq.css
│ ├── londonist-stripmq-cleancss.css
│ ├── londonist-stripmq-cssmin.css
│ ├── londonist-stripmq-cssnano.css
│ ├── londonist-stripmq-csso.css
│ ├── londonist-stripmq-minify.css
│ ├── londonist-stripmq-yui.css
│ ├── londonist-stripmq.css
│ ├── microsoft-2-stripmq-cleancss.css
│ ├── microsoft-2-stripmq-cssmin.css
│ ├── microsoft-2-stripmq-cssnano.css
│ ├── microsoft-2-stripmq-csso.css
│ ├── microsoft-2-stripmq-minify.css
│ ├── microsoft-2-stripmq-yui.css
│ ├── microsoft-2-stripmq.css
│ ├── microsoft-3-stripmq-cleancss.css
│ ├── microsoft-3-stripmq-cssmin.css
│ ├── microsoft-3-stripmq-cssnano.css
│ ├── microsoft-3-stripmq-csso.css
│ ├── microsoft-3-stripmq-minify.css
│ ├── microsoft-3-stripmq-yui.css
│ ├── microsoft-3-stripmq.css
│ ├── microsoft-4-stripmq-cleancss.css
│ ├── microsoft-4-stripmq-cssmin.css
│ ├── microsoft-4-stripmq-cssnano.css
│ ├── microsoft-4-stripmq-csso.css
│ ├── microsoft-4-stripmq-minify.css
│ ├── microsoft-4-stripmq-yui.css
│ ├── microsoft-4-stripmq.css
│ ├── msn-stripmq-cleancss.css
│ ├── msn-stripmq-cssmin.css
│ ├── msn-stripmq-cssnano.css
│ ├── msn-stripmq-csso.css
│ ├── msn-stripmq-minify.css
│ ├── msn-stripmq-yui.css
│ ├── msn-stripmq.css
│ ├── netflix-stripmq-cleancss.css
│ ├── netflix-stripmq-cssmin.css
│ ├── netflix-stripmq-cssnano.css
│ ├── netflix-stripmq-csso.css
│ ├── netflix-stripmq-minify.css
│ ├── netflix-stripmq-yui.css
│ ├── netflix-stripmq.css
│ ├── networkx-theme-stripmq-cleancss.css
│ ├── networkx-theme-stripmq-cssmin.css
│ ├── networkx-theme-stripmq-cssnano.css
│ ├── networkx-theme-stripmq-csso.css
│ ├── networkx-theme-stripmq-minify.css
│ ├── networkx-theme-stripmq-yui.css
│ ├── networkx-theme-stripmq.css
│ ├── nytimes-stripmq-cleancss.css
│ ├── nytimes-stripmq-cssmin.css
│ ├── nytimes-stripmq-cssnano.css
│ ├── nytimes-stripmq-csso.css
│ ├── nytimes-stripmq-minify.css
│ ├── nytimes-stripmq-yui.css
│ ├── nytimes-stripmq.css
│ ├── openstreetmap-stripmq-cleancss.css
│ ├── openstreetmap-stripmq-cssmin.css
│ ├── openstreetmap-stripmq-cssnano.css
│ ├── openstreetmap-stripmq-csso.css
│ ├── openstreetmap-stripmq-minify.css
│ ├── openstreetmap-stripmq-yui.css
│ ├── openstreetmap-stripmq.css
│ ├── outlook-1-stripmq-cleancss.css
│ ├── outlook-1-stripmq-cssmin.css
│ ├── outlook-1-stripmq-cssnano.css
│ ├── outlook-1-stripmq-csso.css
│ ├── outlook-1-stripmq-minify.css
│ ├── outlook-1-stripmq-yui.css
│ ├── outlook-1-stripmq.css
│ ├── outlook-2-stripmq-cleancss.css
│ ├── outlook-2-stripmq-cssmin.css
│ ├── outlook-2-stripmq-cssnano.css
│ ├── outlook-2-stripmq-csso.css
│ ├── outlook-2-stripmq-minify.css
│ ├── outlook-2-stripmq-yui.css
│ ├── outlook-2-stripmq.css
│ ├── outlook-3-stripmq-cleancss.css
│ ├── outlook-3-stripmq-cssmin.css
│ ├── outlook-3-stripmq-cssnano.css
│ ├── outlook-3-stripmq-csso.css
│ ├── outlook-3-stripmq-minify.css
│ ├── outlook-3-stripmq-yui.css
│ ├── outlook-3-stripmq.css
│ ├── outlook-4-stripmq-cleancss.css
│ ├── outlook-4-stripmq-cssmin.css
│ ├── outlook-4-stripmq-cssnano.css
│ ├── outlook-4-stripmq-csso.css
│ ├── outlook-4-stripmq-minify.css
│ ├── outlook-4-stripmq-yui.css
│ ├── outlook-4-stripmq.css
│ ├── qq-stripmq-cleancss.css
│ ├── qq-stripmq-cssmin.css
│ ├── qq-stripmq-cssnano.css
│ ├── qq-stripmq-csso.css
│ ├── qq-stripmq-minify.css
│ ├── qq-stripmq-yui.css
│ ├── qq-stripmq.css
│ ├── reddit-stripmq-cleancss.css
│ ├── reddit-stripmq-cssmin.css
│ ├── reddit-stripmq-cssnano.css
│ ├── reddit-stripmq-csso.css
│ ├── reddit-stripmq-minify.css
│ ├── reddit-stripmq-yui.css
│ ├── reddit-stripmq.css
│ ├── sina-stripmq-cleancss.css
│ ├── sina-stripmq-cssmin.css
│ ├── sina-stripmq-cssnano.css
│ ├── sina-stripmq-csso.css
│ ├── sina-stripmq-minify.css
│ ├── sina-stripmq-yui.css
│ ├── sina-stripmq.css
│ ├── sohu-1-stripmq-cleancss.css
│ ├── sohu-1-stripmq-cssmin.css
│ ├── sohu-1-stripmq-cssnano.css
│ ├── sohu-1-stripmq-csso.css
│ ├── sohu-1-stripmq-minify.css
│ ├── sohu-1-stripmq-yui.css
│ ├── sohu-1-stripmq.css
│ ├── sohu-2-stripmq-cleancss.css
│ ├── sohu-2-stripmq-cssmin.css
│ ├── sohu-2-stripmq-cssnano.css
│ ├── sohu-2-stripmq-csso.css
│ ├── sohu-2-stripmq-minify.css
│ ├── sohu-2-stripmq-yui.css
│ ├── sohu-2-stripmq.css
│ ├── sohu-3-stripmq-cleancss.css
│ ├── sohu-3-stripmq-cssmin.css
│ ├── sohu-3-stripmq-cssnano.css
│ ├── sohu-3-stripmq-csso.css
│ ├── sohu-3-stripmq-minify.css
│ ├── sohu-3-stripmq-yui.css
│ ├── sohu-3-stripmq.css
│ ├── taobao-1-stripmq-cleancss.css
│ ├── taobao-1-stripmq-cssmin.css
│ ├── taobao-1-stripmq-cssnano.css
│ ├── taobao-1-stripmq-csso.css
│ ├── taobao-1-stripmq-minify.css
│ ├── taobao-1-stripmq-yui.css
│ ├── taobao-1-stripmq.css
│ ├── taobao-2-stripmq-cleancss.css
│ ├── taobao-2-stripmq-cssmin.css
│ ├── taobao-2-stripmq-cssnano.css
│ ├── taobao-2-stripmq-csso.css
│ ├── taobao-2-stripmq-minify.css
│ ├── taobao-2-stripmq-yui.css
│ ├── taobao-2-stripmq.css
│ ├── tmall-1-stripmq-cleancss.css
│ ├── tmall-1-stripmq-cssmin.css
│ ├── tmall-1-stripmq-cssnano.css
│ ├── tmall-1-stripmq-csso.css
│ ├── tmall-1-stripmq-minify.css
│ ├── tmall-1-stripmq-yui.css
│ ├── tmall-1-stripmq.css
│ ├── tmall-2-stripmq-cleancss.css
│ ├── tmall-2-stripmq-cssmin.css
│ ├── tmall-2-stripmq-cssnano.css
│ ├── tmall-2-stripmq-csso.css
│ ├── tmall-2-stripmq-minify.css
│ ├── tmall-2-stripmq-yui.css
│ ├── tmall-2-stripmq.css
│ ├── tmall-3-stripmq-cleancss.css
│ ├── tmall-3-stripmq-cssmin.css
│ ├── tmall-3-stripmq-cssnano.css
│ ├── tmall-3-stripmq-csso.css
│ ├── tmall-3-stripmq-minify.css
│ ├── tmall-3-stripmq-yui.css
│ ├── tmall-3-stripmq.css
│ ├── tmall-5-stripmq-cleancss.css
│ ├── tmall-5-stripmq-cssmin.css
│ ├── tmall-5-stripmq-cssnano.css
│ ├── tmall-5-stripmq-csso.css
│ ├── tmall-5-stripmq-minify.css
│ ├── tmall-5-stripmq-yui.css
│ ├── tmall-5-stripmq.css
│ ├── tumblr-1-stripmq-cleancss.css
│ ├── tumblr-1-stripmq-cssmin.css
│ ├── tumblr-1-stripmq-cssnano.css
│ ├── tumblr-1-stripmq-csso.css
│ ├── tumblr-1-stripmq-minify.css
│ ├── tumblr-1-stripmq-yui.css
│ ├── tumblr-1-stripmq.css
│ ├── tumblr-3-stripmq-cleancss.css
│ ├── tumblr-3-stripmq-cssmin.css
│ ├── tumblr-3-stripmq-cssnano.css
│ ├── tumblr-3-stripmq-csso.css
│ ├── tumblr-3-stripmq-minify.css
│ ├── tumblr-3-stripmq-yui.css
│ ├── tumblr-3-stripmq.css
│ ├── tumblr-5-stripmq-cleancss.css
│ ├── tumblr-5-stripmq-cssmin.css
│ ├── tumblr-5-stripmq-cssnano.css
│ ├── tumblr-5-stripmq-csso.css
│ ├── tumblr-5-stripmq-minify.css
│ ├── tumblr-5-stripmq-yui.css
│ ├── tumblr-5-stripmq.css
│ ├── twitter-1-stripmq-cleancss.css
│ ├── twitter-1-stripmq-cssmin.css
│ ├── twitter-1-stripmq-cssnano.css
│ ├── twitter-1-stripmq-csso.css
│ ├── twitter-1-stripmq-minify.css
│ ├── twitter-1-stripmq-yui.css
│ ├── twitter-1-stripmq.css
│ ├── twitter-2-stripmq-cleancss.css
│ ├── twitter-2-stripmq-cssmin.css
│ ├── twitter-2-stripmq-cssnano.css
│ ├── twitter-2-stripmq-csso.css
│ ├── twitter-2-stripmq-minify.css
│ ├── twitter-2-stripmq-yui.css
│ ├── twitter-2-stripmq.css
│ ├── twitter-3-stripmq-cleancss.css
│ ├── twitter-3-stripmq-cssmin.css
│ ├── twitter-3-stripmq-cssnano.css
│ ├── twitter-3-stripmq-csso.css
│ ├── twitter-3-stripmq-minify.css
│ ├── twitter-3-stripmq-yui.css
│ ├── twitter-3-stripmq.css
│ ├── twitter-4-stripmq-cleancss.css
│ ├── twitter-4-stripmq-cssmin.css
│ ├── twitter-4-stripmq-cssnano.css
│ ├── twitter-4-stripmq-csso.css
│ ├── twitter-4-stripmq-minify.css
│ ├── twitter-4-stripmq-yui.css
│ ├── twitter-4-stripmq.css
│ ├── twitter-5-stripmq-cleancss.css
│ ├── twitter-5-stripmq-cssmin.css
│ ├── twitter-5-stripmq-cssnano.css
│ ├── twitter-5-stripmq-csso.css
│ ├── twitter-5-stripmq-minify.css
│ ├── twitter-5-stripmq-yui.css
│ ├── twitter-5-stripmq.css
│ ├── vk-1-stripmq-cleancss.css
│ ├── vk-1-stripmq-cssmin.css
│ ├── vk-1-stripmq-cssnano.css
│ ├── vk-1-stripmq-csso.css
│ ├── vk-1-stripmq-minify.css
│ ├── vk-1-stripmq-yui.css
│ ├── vk-1-stripmq.css
│ ├── vk-2-stripmq-cleancss.css
│ ├── vk-2-stripmq-cssmin.css
│ ├── vk-2-stripmq-cssnano.css
│ ├── vk-2-stripmq-csso.css
│ ├── vk-2-stripmq-minify.css
│ ├── vk-2-stripmq-yui.css
│ ├── vk-2-stripmq.css
│ ├── vk-3-stripmq-cleancss.css
│ ├── vk-3-stripmq-cssmin.css
│ ├── vk-3-stripmq-cssnano.css
│ ├── vk-3-stripmq-csso.css
│ ├── vk-3-stripmq-minify.css
│ ├── vk-3-stripmq-yui.css
│ ├── vk-3-stripmq.css
│ ├── w3schools-stripmq-cleancss.css
│ ├── w3schools-stripmq-cssmin.css
│ ├── w3schools-stripmq-cssnano.css
│ ├── w3schools-stripmq-csso.css
│ ├── w3schools-stripmq-minify.css
│ ├── w3schools-stripmq-yui.css
│ ├── w3schools-stripmq.css
│ ├── wikipedia-stripmq-cleancss.css
│ ├── wikipedia-stripmq-cssmin.css
│ ├── wikipedia-stripmq-cssnano.css
│ ├── wikipedia-stripmq-csso.css
│ ├── wikipedia-stripmq-minify.css
│ ├── wikipedia-stripmq-yui.css
│ ├── wikipedia-stripmq.css
│ ├── wordpress-1-stripmq-cleancss.css
│ ├── wordpress-1-stripmq-cssmin.css
│ ├── wordpress-1-stripmq-cssnano.css
│ ├── wordpress-1-stripmq-csso.css
│ ├── wordpress-1-stripmq-minify.css
│ ├── wordpress-1-stripmq-yui.css
│ ├── wordpress-1-stripmq.css
│ ├── wordpress-2-stripmq-cleancss.css
│ ├── wordpress-2-stripmq-cssmin.css
│ ├── wordpress-2-stripmq-cssnano.css
│ ├── wordpress-2-stripmq-csso.css
│ ├── wordpress-2-stripmq-minify.css
│ ├── wordpress-2-stripmq-yui.css
│ ├── wordpress-2-stripmq.css
│ ├── yahoo-jp-1-stripmq-cleancss.css
│ ├── yahoo-jp-1-stripmq-cssmin.css
│ ├── yahoo-jp-1-stripmq-cssnano.css
│ ├── yahoo-jp-1-stripmq-csso.css
│ ├── yahoo-jp-1-stripmq-minify.css
│ ├── yahoo-jp-1-stripmq-yui.css
│ ├── yahoo-jp-1-stripmq.css
│ ├── yahoo-jp-2-stripmq-cleancss.css
│ ├── yahoo-jp-2-stripmq-cssmin.css
│ ├── yahoo-jp-2-stripmq-cssnano.css
│ ├── yahoo-jp-2-stripmq-csso.css
│ ├── yahoo-jp-2-stripmq-minify.css
│ ├── yahoo-jp-2-stripmq-yui.css
│ ├── yahoo-jp-2-stripmq.css
│ ├── yahoo-uk-2-stripmq-cleancss.css
│ ├── yahoo-uk-2-stripmq-cssmin.css
│ ├── yahoo-uk-2-stripmq-cssnano.css
│ ├── yahoo-uk-2-stripmq-csso.css
│ ├── yahoo-uk-2-stripmq-minify.css
│ ├── yahoo-uk-2-stripmq-yui.css
│ ├── yahoo-uk-2-stripmq.css
│ ├── yahoo-uk-3-stripmq-cleancss.css
│ ├── yahoo-uk-3-stripmq-cssmin.css
│ ├── yahoo-uk-3-stripmq-cssnano.css
│ ├── yahoo-uk-3-stripmq-csso.css
│ ├── yahoo-uk-3-stripmq-minify.css
│ ├── yahoo-uk-3-stripmq-yui.css
│ ├── yahoo-uk-3-stripmq.css
│ ├── yahoo-uk-4-stripmq-cleancss.css
│ ├── yahoo-uk-4-stripmq-cssmin.css
│ ├── yahoo-uk-4-stripmq-cssnano.css
│ ├── yahoo-uk-4-stripmq-csso.css
│ ├── yahoo-uk-4-stripmq-minify.css
│ ├── yahoo-uk-4-stripmq-yui.css
│ ├── yahoo-uk-4-stripmq.css
│ ├── yahoo-uk-5-stripmq-cleancss.css
│ ├── yahoo-uk-5-stripmq-cssmin.css
│ ├── yahoo-uk-5-stripmq-cssnano.css
│ ├── yahoo-uk-5-stripmq-csso.css
│ ├── yahoo-uk-5-stripmq-minify.css
│ ├── yahoo-uk-5-stripmq-yui.css
│ ├── yahoo-uk-5-stripmq.css
│ ├── yahoo-uk-6-stripmq-cleancss.css
│ ├── yahoo-uk-6-stripmq-cssmin.css
│ ├── yahoo-uk-6-stripmq-cssnano.css
│ ├── yahoo-uk-6-stripmq-csso.css
│ ├── yahoo-uk-6-stripmq-minify.css
│ ├── yahoo-uk-6-stripmq-yui.css
│ ├── yahoo-uk-6-stripmq.css
│ ├── youtube-stripmq-cleancss.css
│ ├── youtube-stripmq-cssmin.css
│ ├── youtube-stripmq-cssnano.css
│ ├── youtube-stripmq-csso.css
│ ├── youtube-stripmq-minify.css
│ ├── youtube-stripmq-yui.css
│ └── youtube-stripmq.css
├── main.py
├── pyproject.toml
├── requirements.txt
├── satcss/
│ ├── all_in_deduct_refactor.py
│ ├── autemptiness-unoptimised.py
│ ├── autemptiness.py
│ ├── childcollector.py
│ ├── cliqueCSS.py
│ ├── cmdZ3Wrapper.py
│ ├── cnflib.py
│ ├── cssautomaton.py
│ ├── cssfile.py
│ ├── cssselect_parser.py
│ ├── deduct_refactor.py
│ ├── dimacsWrapper.py
│ ├── dimacsWrapperFull.py
│ ├── main.py
│ ├── refactoring.py
│ ├── safetrim.py
│ ├── simpleCSS.py
│ ├── simplecssbuilder.py
│ ├── stringcons.py
│ ├── test.py
│ ├── wcnf2z3.py
│ ├── wcnfWrapper.py
│ └── z3int.py
└── test.py
================================================
FILE CONTENTS
================================================
================================================
FILE: .gitignore
================================================
__pycache__
satcss/z3
================================================
FILE: NOTES.md
================================================
# Note on pseudo classes
We support fully all CSS3 pseudo classes, as defined in the specification.
Additionally we support :valid and :invalid.
Selectors
* -moz-any-link
* :-moz-submit-invalid
* :-moz-ui-invalid
* :default
* :-webkit-full-screen
* :-moz-full-screen
appear in the benchmarks.
They are not directly supported, but treated as simple booleans, which is sufficient.
================================================
FILE: README.md
================================================
# SatCSS
Minimise CSS files through semantics-preserving refactoring. E.g.
.a { color: red }
.b { color: red }
can be refactored
.a, .b { color: red }
but
.a { color: red }
.c { color: blue }
.b { color: red }
cannot, since
.a, .b { color: red }
.c { color: blue }
changes the color of an element with class="b c".
Can also be used to test whether two selectors may match the same node in some DOM.
Can also be used as a tool/library for building an abstract
representation of a CSS file as a set of pairs (selector, declaration)
with an ordering (representing the order selectors must appear in the
CSS file to maintain the overriding semantics).
## Requirements:
Python 3.7 or compatible.
* [cssselect 1.2.0](https://pypi.python.org/pypi/cssselect)
* [docopt 0.6.2](https://pypi.python.org/pypi/docopt)
* [lxml 4.9.2](https://pypi.python.org/pypi/lxml)
* [tinycss2 1.2.1](https://pypi.python.org/pypi/tinycss2)
* [toposort 1.10](https://pypi.org/project/toposort/)
* [z3-solver 4.12.2.0](http://research.microsoft.com/en-us/um/redmond/projects/z3/z3.html)
Borrowed and modified code from
* [cssselect 0.9.1](https://pypi.python.org/pypi/cssselect)
The recommended build system is [Poetry](https://python-poetry.org/). Tested
with version 1.7.0.
## External Requirements
In the same directory as satcss/main.py, ensure that running
./z3
runs the Z3 SMT solver. For example, this can be a symlink to the
Z3 installed on your machine.
The tool was last tested with Z3 v4.12.2.0.
## Running with Poetry
To setup and run the project with Poetry, from the root directory run
poetry install
Then
poetry run satcss --help
To try a benchmark:
poetry run satcss benchmarks/dblp-2015-07-09-stripmq.css
To output the file:
poetry run satcss -o --file=blah.min.css benchmarks/dblp-2015-07-09-stripmq.css
## Running without Poetry
Two scripts `main.py` and `test.py` are provided in the root directory for
running without Poetry. First install the requirements manually. You can use
`requirements.txt`.
pip install -r requirements.txt
Then run
python main.py --help
where "python" is your python 3.7 or above command.
## TOPLAS Version
The version current as of the [TOPLAS paper][toplas] is tagged
[TOPLAS-Release][toplasrelease].
[toplas]: https://github.com/matthewhague/sat-css-tool/releases/tag/TOPLAS-Release
[toplasrelease]: https://github.com/matthewhague/sat-css-tool/releases/tag/TOPLAS-Release
================================================
FILE: Vienna/Research Groups • Informatics, TU Vienna.html
================================================
<!DOCTYPE html>
<!-- saved from url=(0050)http://www.informatik.tuwien.ac.at/research/groups -->
<html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=1014">
<meta content="authenticity_token" name="csrf-param">
<meta content="bvVGtihlYt7nx/VvHf7/EXmFeEwSKQJmuRxTKoCRMUI=" name="csrf-token">
<title>Research Groups • Informatics, TU Vienna</title>
<link href="./Research Groups • Informatics, TU Vienna_files/uikit.min2.css" media="all" rel="stylesheet" type="text/css">
<link href="./Research Groups • Informatics, TU Vienna_files/uikit_branding.css" media="all" rel="stylesheet" type="text/css">
<link href="./Research Groups • Informatics, TU Vienna_files/uikit_print.min.css" media="print" rel="stylesheet" type="text/css">
<script type="text/javascript" async="" defer="" src="./Research Groups • Informatics, TU Vienna_files/add.js"></script><script src="./Research Groups • Informatics, TU Vienna_files/uikit.min.js" type="text/javascript"></script>
<!--[if lt IE 9]><script src="/javascripts/uikit_ie.min.js?1509445390" type="text/javascript"></script><![endif]-->
<!--[if lt IE 10]><script src="/javascripts/uikit_ie9.min.js?1509445390" type="text/javascript"></script><![endif]-->
<script> $(document).ready(function() { UIKit.menu("research"); }); </script></head>
<body>
<header class="uikit-page-header-container">
<a name="top"></a>
<h1 class="uikit-helper-hidden">Informatics, TU Vienna</h1>
<div class="uikit-page-header" onclick="void(0)">
<div class="uikit-page-logo">
<div class="uikit-helper-first"></div><div>
<img alt="Faculty of Informatics, TU Vienna" height="60" src="./Research Groups • Informatics, TU Vienna_files/uikit_logo.png" usemap="#logomap" width="230"> <map name="logomap"> <area shape="rect" coords="0,0,59,59" href="http://www.tuwien.ac.at/" alt="Vienna University of Technology"> <area shape="poly" coords="65,0,64,60,229,59,229,42,125,42,125,29,228,30,228,13,186,13,186,0,185,0" href="http://www.informatik.tuwien.ac.at/" alt="Faculty of Informatics"> </map>
</div><div class="uikit-helper-last"></div>
</div>
<nav>
<h1 class="uikit-helper-hidden">Navigation</h1>
<nav class="uikit-helper-hidden">
<h2>Skip to…</h2>
<ul>
<li><a href="http://www.informatik.tuwien.ac.at/research/groups#content">Page Content</a></li>
<li><a href="http://www.informatik.tuwien.ac.at/research/groups#meta">Meta Navigation — Contains login form, sitemap, and search options</a></li>
<li><a href="http://www.informatik.tuwien.ac.at/research/groups#menu">Site Navigation — Access all major areas of the website</a></li>
<li><a href="http://www.informatik.tuwien.ac.at/research/groups#path">Path Navigation</a></li>
</ul>
</nav>
<nav id="meta" class="uikit-page-meta">
<a name="meta"></a>
<h2 class="uikit-helper-hidden">Meta Navigation — Contains login form, sitemap, and search options</h2>
<ul> <li id="search" class="uikit-bubble-meta"> <a href="http://www.informatik.tuwien.ac.at/research/groups#" class="uikit-bubble-header" onclick="return false">Search</a> <div class="uikit-bubble-content-container"> <div class="uikit-bubble-content"> <form accept-charset="UTF-8" action="http://www.informatik.tuwien.ac.at/search" method="get"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="✓"></div> <input type="hidden" name="cx" value="016280341805931742676:uxttiwvv77y"> <input type="hidden" name="cof" value="FORID:10"> <input type="hidden" name="ie" value="UTF-8"> <p> <input id="q" name="q" type="text"> </p> <p> <input checked="checked" id="as_sitesearch_www.informatik.tuwien.ac.at" name="as_sitesearch" type="radio" value="www.informatik.tuwien.ac.at"> <label for="as_sitesearch_www.informatik.tuwien.ac.at">Search only www.informatik.tuwien.ac.at</label> <br> <input id="as_sitesearch_" name="as_sitesearch" type="radio" value=""> <label for="as_sitesearch_">Search all institutes and research groups</label> </p> <p> <input name="commit" type="submit" value="Search"> </p> </form> </div> </div> </li><li class="uikit-bubble-meta"> <a href="http://www.informatik.tuwien.ac.at/english/sitemap" class="uikit-bubble-header">Sitemap</a> </li><li class="uikit-bubble-meta"> <a href="http://www.informatik.tuwien.ac.at/" class="uikit-bubble-header">German</a> </li> </ul> <a href="https://www.informatik.tuwien.ac.at/csauth/badge" rel="nofollow" id="badge"><img src="./Research Groups • Informatics, TU Vienna_files/badge_hidelogin.png" alt="Login/Logout"></a>
</nav>
<nav id="menu" class="uikit-page-menu">
<a name="menu"></a>
<h2 class="uikit-helper-hidden">Site Navigation — Access all major areas of the website</h2>
<ul> <li id="menu-welcome" class="uikit-bubble-menu"> <a href="http://www.informatik.tuwien.ac.at/research/groups#" class="uikit-bubble-header" onclick="return false">Welcome!</a> <div class="uikit-bubble-content-container"> <div class="uikit-bubble-content"> <ul class="uikit-bubble-nav"> <li> <a href="http://www.informatik.tuwien.ac.at/english"> <strong>Home</strong> <span class="uikit-helper-hidden"> — </span> Faculty of Informatics at the Vienna University of Technology. </a> </li><li> <a href="http://www.informatik.tuwien.ac.at/news"> <strong>News & Events</strong> <span class="uikit-helper-hidden"> — </span> Latest faculty news and details on upcoming events, talks, etc. </a> </li><li> <a href="http://www.informatik.tuwien.ac.at/news/archive"> <strong>Archive</strong> <span class="uikit-helper-hidden"> — </span> Archive of all previous faculty news, events, talks, conferences, etc. </a> </li><li> <a href="http://www.informatik.tuwien.ac.at/vacancies"> <strong>Jobs & Vacancies</strong> <span class="uikit-helper-hidden"> — </span> Job offers and open positions at the faculty and its partner companies. </a> </li> </ul> </div> </div> </li><li id="menu-research" class="uikit-bubble-menu uikit-state-highlight"> <a href="http://www.informatik.tuwien.ac.at/research/groups#" class="uikit-bubble-header" onclick="return false">Research</a> <div class="uikit-bubble-content-container"> <div class="uikit-bubble-content"> <ul class="uikit-bubble-nav"> <li> <a href="http://www.informatik.tuwien.ac.at/research/groups"> <strong>Research Groups</strong> <span class="uikit-helper-hidden"> — </span> Overview of research groups at the Faculty of Informatics. </a> </li><li> <a href="http://www.informatik.tuwien.ac.at/research"> <strong>Research Areas</strong> <span class="uikit-helper-hidden"> — </span> Current research areas, topics, and scientific publications. </a> </li><li> <a href="http://www.informatik.tuwien.ac.at/research/projects"> <strong>Projects & Partners</strong> <span class="uikit-helper-hidden"> — </span> Research partners, labs, research centers, and spin-off companies. </a> </li><li> <a href="http://www.informatik.tuwien.ac.at/research/awards"> <strong>Awards</strong> <span class="uikit-helper-hidden"> — </span> Honors and awards of academic excellence for faculty scientists. </a> </li> </ul> </div> </div> </li><li id="menu-teaching" class="uikit-bubble-menu"> <a href="http://www.informatik.tuwien.ac.at/research/groups#" class="uikit-bubble-header" onclick="return false">Teaching</a> <div class="uikit-bubble-content-container"> <div class="uikit-bubble-content"> <ul class="uikit-bubble-nav"> <li> <a href="http://www.informatik.tuwien.ac.at/teaching"> <strong>Introduction</strong> <span class="uikit-helper-hidden"> — </span> Overview of all bachelor, master, doctoral, and PhD programs. </a> </li><li> <a href="http://www.informatik.tuwien.ac.at/teaching/bachelor"> <strong>Bachelor Programs</strong> <span class="uikit-helper-hidden"> — </span> Details on all bachelor programs offered by the faculty. </a> </li><li> <a href="http://www.informatik.tuwien.ac.at/teaching/master"> <strong>Master Programs</strong> <span class="uikit-helper-hidden"> — </span> Details on all master programs offered by the faculty. </a> </li><li> <a href="http://www.informatik.tuwien.ac.at/teaching/doctoral"> <strong>Doctoral & PhD</strong> <span class="uikit-helper-hidden"> — </span> Details on doctoral and PhD programs offered by the faculty. </a> </li><li> <a href="http://www.informatik.tuwien.ac.at/teaching/teacher-training"> <strong>Teacher Training</strong> <span class="uikit-helper-hidden"> — </span> Details on the teacher training courses offered by the faculty. </a> </li> </ul> </div> </div> </li><li id="menu-faculty" class="uikit-bubble-menu"> <a href="http://www.informatik.tuwien.ac.at/research/groups#" class="uikit-bubble-header" onclick="return false">Faculty</a> <div class="uikit-bubble-content-container"> <div class="uikit-bubble-content"> <ul class="uikit-bubble-nav"> <li> <a href="http://www.informatik.tuwien.ac.at/faculty"> <strong>Organization</strong> <span class="uikit-helper-hidden"> — </span> Overview of the organizational structure of the faculty. </a> </li><li> <a href="http://www.informatik.tuwien.ac.at/faculty/institutes"> <strong>Institutes & Groups</strong> <span class="uikit-helper-hidden"> — </span> All institutes and research groups which belong to the faculty. </a> </li><li> <a href="http://www.informatik.tuwien.ac.at/faculty/professors"> <strong>Professors</strong> <span class="uikit-helper-hidden"> — </span> All professors in the faculty and overview of their research focus. </a> </li><li> <a href="http://www.informatik.tuwien.ac.at/women-in-computer-science"> <strong>Women in Computer Science</strong> <span class="uikit-helper-hidden"> — </span> Find out how the faculty supports female researchers and students. </a> </li><li> <a href="http://www.informatik.tuwien.ac.at/faculty/initiatives"> <strong>Initiatives</strong> <span class="uikit-helper-hidden"> — </span> International faculty programs in research and teaching. </a> </li><li> <a href="http://www.informatik.tuwien.ac.at/faculty/miscellaneous"> <strong>And more…</strong> <span class="uikit-helper-hidden"> — </span> Alumni, continuing education, job offers, and selected external links. </a> </li> </ul> </div> </div> </li><li id="menu-contact" class="uikit-bubble-menu"> <a href="http://www.informatik.tuwien.ac.at/research/groups#" class="uikit-bubble-header" onclick="return false">Contact</a> <div class="uikit-bubble-content-container"> <div class="uikit-bubble-content"> <ul class="uikit-bubble-nav"> <li> <a href="http://www.informatik.tuwien.ac.at/contact/"> <strong>Overview</strong> <span class="uikit-helper-hidden"> — </span> Faculty officials, newsletter, and overview of all contact information. </a> </li><li> <a href="http://www.informatik.tuwien.ac.at/contact/press"> <strong>Press & Media</strong> <span class="uikit-helper-hidden"> — </span> Downloads and contact information of the faculty’s press office. </a> </li><li> <a href="http://www.informatik.tuwien.ac.at/contact/locations"> <strong>Locations</strong> <span class="uikit-helper-hidden"> — </span> Location information, addresses, and links to interactive online maps. </a> </li> </ul> </div> </div> </li> </ul>
</nav>
<nav id="path" class="uikit-page-path">
<a name="path"></a>
<h2 class="uikit-helper-hidden">Path Navigation</h2>
<span class="uikit-state-weak"><a href="http://www.tuwien.ac.at/">TU Wien</a> › </span><a href="http://www.informatik.tuwien.ac.at/">Faculty of Informatics</a> › <a href="http://www.informatik.tuwien.ac.at/english">English</a><span class="uikit-page-path-threshold"> › </span>
<a href="http://www.informatik.tuwien.ac.at/research" class="">Main Research Areas</a> › <a href="http://www.informatik.tuwien.ac.at/research/groups" class="">Research Groups</a>
</nav>
</nav>
</div>
</header>
<div class="uikit-page-content">
<article class="hentry uikit-article uikit-article-type-content-sidebar">
<div class="entry-content instapaper_body uikit-article-content">
<header id="content" class="uikit-article-header">
<a name="content"></a>
<h1 class="entry-title instapaper_title">Research Groups</h1>
<p>The research groups of the Faculty of Informatics and their professors are listed in alphabetical order below. For more detail information about research topics and projects of the research groups please visit their homepages.</p>
</header>
<style>
.uikit-article-content td:nth-child(1) { width:240px; }
.uikit-article-content td:nth-child(2) { width:240px; }
</style>
<h2>Algorithms and Complexity</h2>
<ul>
<li><a href="http://www.ac.tuwien.ac.at/">www.ac.tuwien.ac.at</a></li>
</ul>
<table>
<tbody><tr>
<td>Raidl <span class="uikit-state-weak">Günther</span>
</td>
<td><span class="uikit-state-weak">Associate Professor</span></td>
<td><a href="https://tiss.tuwien.ac.at/adressbuch/adressbuch/person_via_oid/1623921">Contact</a></td>
</tr>
<tr>
<td>Szeider <span class="uikit-state-weak">Stefan</span>
</td>
<td class="uikit-state-weak">Professor</td>
<td><a href="https://tiss.tuwien.ac.at/adressbuch/adressbuch/person_via_oid/6135849">Contact</a></td>
</tr>
</tbody></table>
<h2>Automation Systems</h2>
<ul><li><a href="https://www.auto.tuwien.ac.at/">www.auto.tuwien.ac.at</a></li></ul>
<table>
<tbody><tr>
<td>Blieberger <span class="uikit-state-weak">Johann</span>
</td>
<td><span class="uikit-state-weak">Associate Professor</span></td>
<td><a href="https://tiss.tuwien.ac.at/adressbuch/adressbuch/person_via_oid/714665">Contact</a></td>
</tr>
<tr>
<td>Grechenig <span class="uikit-state-weak">Thomas</span>
</td>
<td><span class="uikit-state-weak">Associate Professor</span></td>
<td><a href="https://tiss.tuwien.ac.at/adressbuch/adressbuch/person_via_oid/1709493">Contact</a></td>
</tr>
<tr>
<td>Kastner <span class="uikit-state-weak">Wolfgang</span>
</td>
<td><span class="uikit-state-weak">Associate Professor</span></td>
<td><a href="https://tiss.tuwien.ac.at/adressbuch/adressbuch/person_via_oid/1128481">Contact</a></td>
</tr>
</tbody></table>
<h2>Business Informatics</h2>
<ul><li><a href="http://www.big.tuwien.ac.at/">www.big.tuwien.ac.at</a></li></ul>
<table>
<tbody><tr>
<td>Huemer <span class="uikit-state-weak">Christian</span>
</td>
<td><span class="uikit-state-weak">Associate Professor</span></td>
<td><a href="https://tiss.tuwien.ac.at/adressbuch/adressbuch/person_via_oid/3365713">Contact</a></td>
</tr>
<tr>
<td>Kappel <span class="uikit-state-weak">Gerti</span>
</td>
<td><span class="uikit-state-weak">Professor</span></td>
<td><a href="https://tiss.tuwien.ac.at/adressbuch/adressbuch/person_via_oid/1329125">Contact</a></td>
</tr>
</tbody></table>
<h2>Compilers and Languages</h2>
<ul><li><a href="http://www.complang.tuwien.ac.at/">www.complang.tuwien.ac.at</a></li></ul>
<table>
<tbody><tr>
<td>Ertl <span class="uikit-state-weak">M. Anton</span>
</td>
<td><span class="uikit-state-weak">Associate Professor</span></td>
<td><a href="https://tiss.tuwien.ac.at/adressbuch/adressbuch/person_via_oid/2112469">Contact</a></td>
</tr>
<tr>
<td>Knoop <span class="uikit-state-weak">Jens</span>
</td>
<td><span class="uikit-state-weak">Professor</span></td>
<td><a href="https://tiss.tuwien.ac.at/adressbuch/adressbuch/person_via_oid/1972441">Contact</a></td>
</tr>
<tr>
<td>Krall <span class="uikit-state-weak">Andreas</span>
</td>
<td><span class="uikit-state-weak">Associate Professor</span></td>
<td><a href="https://tiss.tuwien.ac.at/adressbuch/adressbuch/person_via_oid/469221">Contact</a></td>
</tr>
<tr>
<td>Kühn <span class="uikit-state-weak">Eva</span>
</td>
<td><span class="uikit-state-weak">Associate Professor</span></td>
<td><a href="https://tiss.tuwien.ac.at/adressbuch/adressbuch/person_via_oid/1617929">Contact</a></td>
</tr>
<tr>
<td>Puntigam <span class="uikit-state-weak">Franz</span>
</td>
<td><span class="uikit-state-weak">Associate Professor</span></td>
<td><a href="https://tiss.tuwien.ac.at/adressbuch/adressbuch/person_via_oid/1113253">Contact</a></td>
</tr>
</tbody></table>
<h2>Computer Graphics</h2>
<ul><li><a href="http://www.cg.tuwien.ac.at/">www.cg.tuwien.ac.at</a></li></ul>
<table>
<tbody><tr>
<td>Gröller <span class="uikit-state-weak">Eduard</span>
</td>
<td><span class="uikit-state-weak">Associate Professor</span></td>
<td><a href="https://tiss.tuwien.ac.at/adressbuch/adressbuch/person_via_oid/579169">Contact</a></td>
</tr>
<tr>
<td>Purgathofer <span class="uikit-state-weak">Werner</span>
</td>
<td><span class="uikit-state-weak">Professor</span></td>
<td><a href="https://tiss.tuwien.ac.at/adressbuch/adressbuch/person_via_oid/628153">Contact</a></td>
</tr>
<tr>
<td>Wimmer <span class="uikit-state-weak">Michael</span>
</td>
<td><span class="uikit-state-weak">Associate Professor</span></td>
<td><a href="https://tiss.tuwien.ac.at/adressbuch/adressbuch/person_via_oid/1110177">Contact</a></td>
</tr>
</tbody></table>
<h2>Computer Vision</h2>
<ul><li><a href="http://www.caa.tuwien.ac.at/cvl/">www.caa.tuwien.ac.at/cvl</a></li></ul>
<table>
<tbody><tr>
<td>Kampel <span class="uikit-state-weak">Martin</span>
</td>
<td><span class="uikit-state-weak">Priv.Doz. Dr.</span></td>
<td><a href="https://tiss.tuwien.ac.at/adressbuch/adressbuch/person_via_oid/2640721">Contact</a></td>
</tr>
<tr>
<td>Sablatnig <span class="uikit-state-weak">Robert</span>
</td>
<td><span class="uikit-state-weak">Associate Professor</span></td>
<td><a href="https://tiss.tuwien.ac.at/adressbuch/adressbuch/person_via_oid/1260477">Contact</a></td>
</tr>
</tbody></table>
<h2>Cyber-Physical Systems</h2>
<ul>
<li><a href="http://ti.tuwien.ac.at/cps">ti.tuwien.ac.at/cps</a></li>
</ul>
<table>
<tbody><tr>
<td>Grosu <span class="uikit-state-weak">Radu</span>
</td>
<td><span class="uikit-state-weak">Professor</span></td>
<td><a href="https://tiss.tuwien.ac.at/adressbuch/adressbuch/person_via_oid/6066813">Contact</a></td>
</tr>
<tr>
<td>Puschner <span class="uikit-state-weak">Peter</span>
</td>
<td><span class="uikit-state-weak">Associate Professor</span></td>
<td><a href="https://tiss.tuwien.ac.at/adressbuch/adressbuch/person_via_oid/2124685">Contact</a></td>
</tr>
</tbody></table>
<h2>Database and Artificial Intelligence</h2>
<ul><li><a href="http://www.dbai.tuwien.ac.at/">www.dbai.tuwien.ac.at</a></li></ul>
<table>
<tbody><tr>
<td>Gottlob <span class="uikit-state-weak">Georg</span>
</td>
<td><span class="uikit-state-weak">Professor</span></td>
<td><a href="https://tiss.tuwien.ac.at/adressbuch/adressbuch/person_via_oid/621077">Contact</a></td>
</tr>
<tr>
<td>Musliu <span class="uikit-state-weak">Nysret</span>
</td>
<td><span class="uikit-state-weak">Priv.Doz. Dr.</span></td>
<td><a href="https://tiss.tuwien.ac.at/adressbuch/adressbuch/person_via_oid/1249965">Contact</a></td>
</tr>
<tr>
<td>Pichler <span class="uikit-state-weak">Reinhard</span>
</td>
<td><span class="uikit-state-weak">Professor</span></td>
<td><a href="https://tiss.tuwien.ac.at/adressbuch/adressbuch/person_via_oid/985413">Contact</a></td>
</tr>
<tr>
<td>Woltran <span class="uikit-state-weak">Stefan</span>
</td>
<td><span class="uikit-state-weak">Associate Professor</span></td>
<td><a href="https://tiss.tuwien.ac.at/adressbuch/adressbuch/person_via_oid/2956369">Contact</a></td>
</tr>
</tbody></table>
<h2>Distributed Systems</h2>
<ul><li><a href="http://www.infosys.tuwien.ac.at/">www.infosys.tuwien.ac.at</a></li></ul>
<table>
<tbody><tr>
<td>Brandic <span class="uikit-state-weak">Ivona</span>
</td>
<td><span class="uikit-state-weak">Priv.Doz.Dr.</span></td>
<td><a href="https://tiss.tuwien.ac.at/adressbuch/adressbuch/person_via_oid/2875941">Contact</a></td>
</tr>
<tr>
<td>Dustdar <span class="uikit-state-weak">Schahram</span>
</td>
<td><span class="uikit-state-weak">Professor</span></td>
<td><a href="https://tiss.tuwien.ac.at/adressbuch/adressbuch/person_via_oid/1210497">Contact</a></td>
</tr>
<tr>
<td>
<span class="name-dreizeilig-adressbuch"><span class="nachname">Truong </span></span><span class="uikit-state-weak"><span class="name-dreizeilig-adressbuch"><span class="vorname">Hong-Linh</span></span></span>
</td>
<td><span class="uikit-state-weak">Priv.Doz. Dr.</span></td>
<td><a href="https://tiss.tuwien.ac.at/adressbuch/adressbuch/person_via_oid/5557173">Contact</a></td>
</tr>
</tbody></table>
<h2>E-Commerce</h2>
<ul><li><a href="http://www.ec.tuwien.ac.at/">www.ec.tuwien.ac.at</a></li></ul>
<table>
<tbody><tr>
<td>Dorn <span class="uikit-state-weak">Jürgen</span>
</td>
<td><span class="uikit-state-weak">Associate Professor</span></td>
<td><a href="https://tiss.tuwien.ac.at/adressbuch/adressbuch/person_via_oid/44341">Contact</a></td>
</tr>
<tr>
<td>Merkl <span class="uikit-state-weak">Dieter</span>
</td>
<td><span class="uikit-state-weak">Associate Professor</span></td>
<td><a href="https://tiss.tuwien.ac.at/adressbuch/adressbuch/person_via_oid/2105193">Contact</a></td>
</tr>
<tr>
<td>Werthner <span class="uikit-state-weak">Hannes</span>
</td>
<td><span class="uikit-state-weak">Professor</span></td>
<td><a href="https://tiss.tuwien.ac.at/adressbuch/adressbuch/person_via_oid/4393001">Contact</a></td>
</tr>
</tbody></table>
<h2>Embedded Computing Systems</h2>
<ul><li><a href="http://ti.tuwien.ac.at/ecs">ti.tuwien.ac.at/ecs</a></li></ul>
<table>
<tbody><tr>
<td>Schmid <span class="uikit-state-weak">Ulrich</span>
</td>
<td><span class="uikit-state-weak">Professor</span></td>
<td><a href="https://tiss.tuwien.ac.at/adressbuch/adressbuch/person_via_oid/604961">Contact</a></td>
</tr>
<tr>
<td>Steininger <span class="uikit-state-weak">Andreas</span>
</td>
<td><span class="uikit-state-weak">Associate Professor</span></td>
<td><a href="https://tiss.tuwien.ac.at/adressbuch/adressbuch/person_via_oid/571677">Contact</a></td>
</tr>
</tbody></table>
<h2>Formal Methods in Systems Engineering</h2>
<ul><li><a href="http://www.forsyte.tuwien.ac.at/">www.forsyte.tuwien.ac.at</a></li></ul>
<table>
<tbody><tr>
<td>Kovács <span class="uikit-state-weak">Laura</span>
</td>
<td><span class="uikit-state-weak">Professor</span></td>
<td><a href="https://tiss.tuwien.ac.at/adressbuch/adressbuch/person_via_oid/8107849">Kontakt</a></td>
</tr>
</tbody></table>
<h2>Human Computer Interaction</h2>
<ul><li><a href="http://igw.tuwien.ac.at/hci/">igw.tuwien.ac.at/hci</a></li></ul>
<table>
<tbody><tr>
<td>Fitzpatrick <span class="uikit-state-weak">Geraldine</span>
</td>
<td><span class="uikit-state-weak">Professor</span></td>
<td><a href="https://tiss.tuwien.ac.at/adressbuch/adressbuch/person_via_oid/7275665">Contact</a></td>
</tr>
<tr>
<td>Hofkirchner <span class="uikit-state-weak">Wolfgang</span>
</td>
<td><span class="uikit-state-weak">Associate Professor</span></td>
<td><a href="https://tiss.tuwien.ac.at/adressbuch/adressbuch/person_via_oid/2120465">Contact</a></td>
</tr>
<tr>
<td>Pohl <span class="uikit-state-weak">Margit</span>
</td>
<td><span class="uikit-state-weak">Associate Professor</span></td>
<td><a href="https://tiss.tuwien.ac.at/adressbuch/adressbuch/person_via_oid/359417">Contact</a></td>
</tr>
<tr>
<td>Purgathofer <span class="uikit-state-weak">Peter</span>
</td>
<td><span class="uikit-state-weak">Associate Professor</span></td>
<td><a href="https://tiss.tuwien.ac.at/adressbuch/adressbuch/person_via_oid/1216061">Contact</a></td>
</tr>
<tr>
<td>Zagler <span class="uikit-state-weak">Wolfgang</span>
</td>
<td><span class="uikit-state-weak">Associate Professor</span></td>
<td><a href="https://tiss.tuwien.ac.at/adressbuch/adressbuch/person_via_oid/798981">Contact</a></td>
</tr>
</tbody></table>
<h2>Information & Software Engineering</h2>
<ul><li><a href="http://www.ifs.tuwien.ac.at/">www.ifs.tuwien.ac.at</a></li></ul>
<table>
<tbody><tr>
<td>Aigner <span class="uikit-state-weak">Wolfgang</span>
</td>
<td><span class="uikit-state-weak">Priv.Doz.Dr.</span></td>
<td>
<a href="https://tiss.tuwien.ac.at/adressbuch/adressbuch/person_via_oid/3164473">Contact</a><a href="https://tiss.tuwien.ac.at/adressbuch/adressbuch/person/63348?suchtext=Aigner"></a>
</td>
</tr>
<tr>
<td>Biffl <span class="uikit-state-weak">Stefan</span>
</td>
<td><span class="uikit-state-weak">Associate Professor</span></td>
<td><a href="https://tiss.tuwien.ac.at/adressbuch/adressbuch/person_via_oid/754841">Contact</a></td>
</tr>
<tr>
<td>Futschek <span class="uikit-state-weak">Gerald</span>
</td>
<td><span class="uikit-state-weak">Associate Professor</span></td>
<td><a href="https://tiss.tuwien.ac.at/adressbuch/adressbuch/person_via_oid/628981">Contact</a></td>
</tr>
<tr>
<td>Hanbury <span class="uikit-state-weak">Allan</span>
</td>
<td><span class="uikit-state-weak">Priv.Doz. Dr.</span></td>
<td><a href="https://tiss.tuwien.ac.at/adressbuch/adressbuch/person_via_oid/2280309">Contact</a></td>
</tr>
<tr>
<td>Miksch <span class="uikit-state-weak">Silvia</span>
</td>
<td><span class="uikit-state-weak">Associate Professor</span></td>
<td><a href="https://tiss.tuwien.ac.at/adressbuch/adressbuch/person_via_oid/2071149">Contact</a></td>
</tr>
<tr>
<td>Rauber <span class="uikit-state-weak">Andreas</span>
</td>
<td><span class="uikit-state-weak">Associate Professor</span></td>
<td><a href="https://tiss.tuwien.ac.at/adressbuch/adressbuch/person_via_oid/1026725">Contact</a></td>
</tr>
<tr>
<td>Tjoa <span class="uikit-state-weak">A Min</span>
</td>
<td><span class="uikit-state-weak">Professor</span></td>
<td><a href="https://tiss.tuwien.ac.at/adressbuch/adressbuch/person_via_oid/1022045">Contact</a></td>
</tr>
<tr>
<td>Weippl <span class="uikit-state-weak">Edgar</span>
</td>
<td><span class="uikit-state-weak">Priv.Doz. Dr.</span></td>
<td><a href="https://tiss.tuwien.ac.at/adressbuch/adressbuch/person_via_oid/3726309">Contact</a></td>
</tr>
</tbody></table>
<h2>Interactive Media Systems</h2>
<ul><li><a href="http://www.ims.tuwien.ac.at/">www.ims.tuwien.ac.at</a></li></ul>
<table>
<tbody><tr>
<td>Breiteneder <span class="uikit-state-weak">Christian</span>
</td>
<td><span class="uikit-state-weak">Professor</span></td>
<td><a href="https://tiss.tuwien.ac.at/adressbuch/adressbuch/person_via_oid/1113345">Contact</a></td>
</tr>
<tr>
<td>Eidenberger <span class="uikit-state-weak">Horst</span>
</td>
<td><span class="uikit-state-weak">Associate Professor</span></td>
<td><a href="https://tiss.tuwien.ac.at/adressbuch/adressbuch/person_via_oid/1146477">Contact</a></td>
</tr>
<tr>
<td>Gelautz <span class="uikit-state-weak">Margrit</span>
</td>
<td><span class="uikit-state-weak">Associate Professor</span></td>
<td><a href="https://tiss.tuwien.ac.at/adressbuch/adressbuch/person_via_oid/610621">Contact</a></td>
</tr>
<tr>
<td>Kaufmann <span class="uikit-state-weak">Hannes</span>
</td>
<td><span class="uikit-state-weak">Priv.Doz.Dr.</span></td>
<td><a href="https://tiss.tuwien.ac.at/adressbuch/adressbuch/person_via_oid/2067745">Contact</a></td>
</tr>
</tbody></table>
<h2>Knowledge Based Systems</h2>
<ul><li><a href="http://www.kr.tuwien.ac.at/">www.kr.tuwien.ac.at</a></li></ul>
<table>
<tbody><tr>
<td>Egly <span class="uikit-state-weak">Uwe</span>
</td>
<td><span class="uikit-state-weak">Associate Professor</span></td>
<td><a href="https://tiss.tuwien.ac.at/adressbuch/adressbuch/person_via_oid/1121293">Contact</a></td>
</tr>
<tr>
<td>Eiter <span class="uikit-state-weak">Thomas</span>
</td>
<td><span class="uikit-state-weak">Professor</span></td>
<td><a href="https://tiss.tuwien.ac.at/adressbuch/adressbuch/person_via_oid/250197">Contact</a></td>
</tr>
<tr>
<td>Tompits <span class="uikit-state-weak">Hans</span>
</td>
<td><span class="uikit-state-weak">Associate Professor</span></td>
<td><a href="https://tiss.tuwien.ac.at/adressbuch/adressbuch/person_via_oid/407657">Contact</a></td>
</tr>
</tbody></table>
<h2>Multidisciplinary Design</h2>
<ul><li><a href="http://www.media.tuwien.ac.at/">www.media.tuwien.ac.at</a></li></ul>
<table>
<tbody><tr>
<td>Steinhardt <span class="uikit-state-weak">Gerald</span>
</td>
<td><span class="uikit-state-weak">Associate Professor</span></td>
<td><a href="https://tiss.tuwien.ac.at/adressbuch/adressbuch/person_via_oid/942273">Contact</a></td>
</tr>
<tr>
<td>Tellioglu <span class="uikit-state-weak">Hilda</span>
</td>
<td><span class="uikit-state-weak">Associate Professor</span></td>
<td><a href="https://tiss.tuwien.ac.at/adressbuch/adressbuch/person_via_oid/2152749">Contact</a></td>
</tr>
</tbody></table>
<h2>Parallel Computing</h2>
<ul>
<li><a href="http://www.par.tuwien.ac.at/">www.par.tuwien.ac.at</a></li>
</ul>
<table>
<tbody><tr>
<td>Träff <span class="uikit-state-weak">Jesper Larsson</span>
</td>
<td><span class="uikit-state-weak">Professor</span></td>
<td><a href="https://tiss.tuwien.ac.at/adressbuch/adressbuch/person_via_oid/10821885">Contact</a></td>
</tr>
</tbody></table>
<h2>Pattern Recognition & Image Processing</h2>
<ul><li><a href="http://www.prip.tuwien.ac.at/">www.prip.tuwien.ac.at</a></li></ul>
<table>
<tbody><tr>
<td>Kropatsch <span class="uikit-state-weak">Walter</span>
</td>
<td><span class="uikit-state-weak">Professor</span></td>
<td><a href="https://tiss.tuwien.ac.at/adressbuch/adressbuch/person_via_oid/620925">Contact</a></td>
</tr>
</tbody></table>
<h2>Theory and Logic</h2>
<ul><li><a href="http://www.logic.at/e1852.html">www.logic.at/e1852.html</a></li></ul>
<table>
<tbody><tr>
<td>Ciabattoni <span class="uikit-state-weak">Agata</span>
</td>
<td><span class="uikit-state-weak">Professor</span></td>
<td><a href="https://tiss.tuwien.ac.at/adressbuch/adressbuch/person_via_oid/1287261">Contact</a></td>
</tr>
<tr>
<td>Fermüller <span class="uikit-state-weak">Christian</span>
</td>
<td><span class="uikit-state-weak">Associate Professor</span></td>
<td><a href="https://tiss.tuwien.ac.at/adressbuch/adressbuch/person_via_oid/2114465">Contact</a></td>
</tr>
<tr>
<td>Freund <span class="uikit-state-weak">Rudi</span>
</td>
<td><span class="uikit-state-weak">Associate Professor</span></td>
<td><a href="https://tiss.tuwien.ac.at/adressbuch/adressbuch/person_via_oid/882909">Contact</a></td>
</tr>
<tr>
<td>Leitsch <span class="uikit-state-weak">Alexander</span>
</td>
<td><span class="uikit-state-weak">Professor</span></td>
<td><a href="https://tiss.tuwien.ac.at/adressbuch/adressbuch/person_via_oid/627693">Contact</a></td>
</tr>
<tr>
<td>Salzer <span class="uikit-state-weak">Gernot</span>
</td>
<td><span class="uikit-state-weak">Associate Professor</span></td>
<td><a href="https://tiss.tuwien.ac.at/adressbuch/adressbuch/person_via_oid/468649">Contact</a></td>
</tr>
</tbody></table>
</div>
<aside class="uikit-article-sidebar">
<div class="uikit-bubble-attention">
<div class="uikit-bubble-content-container">
<div class="uikit-bubble-content">
<h2> Academic Excellence</h2>
<p>In the area of basic research, <br>
the Faculty’s research groups play influential roles in a number of national and international projects. </p>
<p>A multitude of FWF projects, as well as participation as coordinators or partners in numerous EU projects, demonstrate our ability to set national and international research topics and take leadership of them. </p>
</div>
</div>
</div>
</aside>
</article>
<footer class="uikit-page-footer">
<div> <p> Disclosure according to § 25 Mediengesetz: Owner of this website is the<br> <a href="http://www.informatik.tuwien.ac.at/"><strong>Faculty of Informatics</strong></a> at <a href="http://www.tuwien.ac.at/"><strong>TU Wien</strong></a>. </p> <p> TU Wien distances itself from contents of external linked<br> pages and assumes no liability for them. — <a href="http://www.tuwien.ac.at/imprint/EN">Disclaimer</a>. </p> </div> <p> <a href="http://www.informatik.tuwien.ac.at/">Home</a> • <a href="http://www.informatik.tuwien.ac.at/contact">Contact</a> • <a href="mailto:webmaster@zkk.tuwien.ac.at">Webmasters</a><br> <a href="http://www.informatik.tuwien.ac.at/">www.informatik.tuwien.ac.at</a> </p>
</footer>
</div>
<script type="text/javascript">/*V1*/
var _paq = _paq || [];
_paq.push(["trackPageView"]);
_paq.push(["enableLinkTracking"]);
_paq.push(["enableHeartBeatTimer", 10]);
(function() {
var u="https://purple.zkk.tuwien.ac.at:8080/";
_paq.push(["setTrackerUrl", u+"add"]);
_paq.push(["setSiteId", 9]);
var d=document, g=d.createElement("script"), s=d.getElementsByTagName("script")[0];
g.type="text/javascript"; g.async=true; g.defer=true; g.src=u+"add.js"; s.parentNode.insertBefore(g,s);
})();
</script>
</body></html>
================================================
FILE: Vienna/Research Groups • Informatics, TU Vienna_files/add.js
================================================
/*!!
* Piwik - free/libre analytics platform
*
* JavaScript tracking client
*
* @link http://piwik.org
* @source https://github.com/piwik/piwik/blob/master/js/piwik.js
* @license http://piwik.org/free-software/bsd/ BSD-3 Clause (also in js/LICENSE.txt)
* @license magnet:?xt=urn:btih:c80d50af7d3db9be66a4d0a86db0286e4fd33292&dn=bsd-3-clause.txt BSD-3-Clause
*/
if(typeof JSON_PIWIK!=="object"&&typeof window.JSON==="object"&&window.JSON.stringify&&window.JSON.parse){JSON_PIWIK=window.JSON}else{(function(){var a={};
/*!! JSON v3.3.2 | http://bestiejs.github.io/json3 | Copyright 2012-2014, Kit Cambridge | http://kit.mit-license.org */
(function(){var c=typeof define==="function"&&define.amd;var e={"function":true,object:true};var h=e[typeof a]&&a&&!a.nodeType&&a;var i=e[typeof window]&&window||this,b=h&&e[typeof module]&&module&&!module.nodeType&&typeof global=="object"&&global;if(b&&(b.global===b||b.window===b||b.self===b)){i=b}function j(ab,V){ab||(ab=i.Object());V||(V=i.Object());var K=ab.Number||i.Number,R=ab.String||i.String,x=ab.Object||i.Object,S=ab.Date||i.Date,T=ab.SyntaxError||i.SyntaxError,aa=ab.TypeError||i.TypeError,J=ab.Math||i.Math,Y=ab.JSON||i.JSON;
if(typeof Y=="object"&&Y){V.stringify=Y.stringify;V.parse=Y.parse}var n=x.prototype,u=n.toString,r,m,L;var B=new S(-3509827334573292);try{B=B.getUTCFullYear()==-109252&&B.getUTCMonth()===0&&B.getUTCDate()===1&&B.getUTCHours()==10&&B.getUTCMinutes()==37&&B.getUTCSeconds()==6&&B.getUTCMilliseconds()==708}catch(v){}function o(ac){if(o[ac]!==L){return o[ac]}var ad;if(ac=="bug-string-char-index"){ad="a"[0]!="a"}else{if(ac=="json"){ad=o("json-stringify")&&o("json-parse")}else{var ak,ah='{"a":[1,true,false,null,"\\u0000\\b\\n\\f\\r\\t"]}';if(ac=="json-stringify"){var ai=V.stringify,aj=typeof ai=="function"&&B;if(aj){(ak=function(){return 1}).toJSON=ak;try{aj=ai(0)==="0"&&ai(new K())==="0"&&ai(new R())=='""'&&ai(u)===L&&ai(L)===L&&ai()===L&&ai(ak)==="1"&&ai([ak])=="[1]"&&ai([L])=="[null]"&&ai(null)=="null"&&ai([L,u,null])=="[null,null,null]"&&ai({a:[ak,true,false,null,"\x00\b\n\f\r\t"]})==ah&&ai(null,ak)==="1"&&ai([1,2],null,1)=="[\n 1,\n 2\n]"&&ai(new S(-8640000000000000))=='"-271821-04-20T00:00:00.000Z"'&&ai(new S(8640000000000000))=='"+275760-09-13T00:00:00.000Z"'&&ai(new S(-62198755200000))=='"-000001-01-01T00:00:00.000Z"'&&ai(new S(-1))=='"1969-12-31T23:59:59.999Z"'
}catch(ae){aj=false}}ad=aj}if(ac=="json-parse"){var ag=V.parse;if(typeof ag=="function"){try{if(ag("0")===0&&!ag(false)){ak=ag(ah);var af=ak.a.length==5&&ak.a[0]===1;if(af){try{af=!ag('"\t"')}catch(ae){}if(af){try{af=ag("01")!==1}catch(ae){}}if(af){try{af=ag("1.")!==1}catch(ae){}}}}}catch(ae){af=false}}ad=af}}}return o[ac]=!!ad}if(!o("json")){var U="[object Function]",Q="[object Date]",N="[object Number]",O="[object String]",E="[object Array]",A="[object Boolean]";var F=o("bug-string-char-index");if(!B){var s=J.floor;var Z=[0,31,59,90,120,151,181,212,243,273,304,334];var D=function(ac,ad){return Z[ad]+365*(ac-1970)+s((ac-1969+(ad=+(ad>1)))/4)-s((ac-1901+ad)/100)+s((ac-1601+ad)/400)}}if(!(r=n.hasOwnProperty)){r=function(ae){var ac={},ad;if((ac.__proto__=null,ac.__proto__={toString:1},ac).toString!=u){r=function(ah){var ag=this.__proto__,af=ah in (this.__proto__=null,this);this.__proto__=ag;return af}}else{ad=ac.constructor;r=function(ag){var af=(this.constructor||ad).prototype;return ag in this&&!(ag in af&&this[ag]===af[ag])
}}ac=null;return r.call(this,ae)}}m=function(ae,ah){var af=0,ac,ad,ag;(ac=function(){this.valueOf=0}).prototype.valueOf=0;ad=new ac();for(ag in ad){if(r.call(ad,ag)){af++}}ac=ad=null;if(!af){ad=["valueOf","toString","toLocaleString","propertyIsEnumerable","isPrototypeOf","hasOwnProperty","constructor"];m=function(aj,an){var am=u.call(aj)==U,al,ak;var ai=!am&&typeof aj.constructor!="function"&&e[typeof aj.hasOwnProperty]&&aj.hasOwnProperty||r;for(al in aj){if(!(am&&al=="prototype")&&ai.call(aj,al)){an(al)}}for(ak=ad.length;al=ad[--ak];ai.call(aj,al)&&an(al)){}}}else{if(af==2){m=function(aj,am){var ai={},al=u.call(aj)==U,ak;for(ak in aj){if(!(al&&ak=="prototype")&&!r.call(ai,ak)&&(ai[ak]=1)&&r.call(aj,ak)){am(ak)}}}}else{m=function(aj,am){var al=u.call(aj)==U,ak,ai;for(ak in aj){if(!(al&&ak=="prototype")&&r.call(aj,ak)&&!(ai=ak==="constructor")){am(ak)}}if(ai||r.call(aj,(ak="constructor"))){am(ak)}}}}return m(ae,ah)};if(!o("json-stringify")){var q={92:"\\\\",34:'\\"',8:"\\b",12:"\\f",10:"\\n",13:"\\r",9:"\\t"};
var I="000000";var t=function(ac,ad){return(I+(ad||0)).slice(-ac)};var z="\\u00";var C=function(ai){var ad='"',ag=0,ah=ai.length,ac=!F||ah>10;var af=ac&&(F?ai.split(""):ai);for(;ag<ah;ag++){var ae=ai.charCodeAt(ag);switch(ae){case 8:case 9:case 10:case 12:case 13:case 34:case 92:ad+=q[ae];break;default:if(ae<32){ad+=z+t(2,ae.toString(16));break}ad+=ac?af[ag]:ai.charAt(ag)}}return ad+'"'};var p=function(ai,aA,ag,al,ax,ac,aj){var at,ae,ap,az,ay,ak,aw,au,aq,an,ar,ad,ah,af,av,ao;try{at=aA[ai]}catch(am){}if(typeof at=="object"&&at){ae=u.call(at);if(ae==Q&&!r.call(at,"toJSON")){if(at>-1/0&&at<1/0){if(D){ay=s(at/86400000);for(ap=s(ay/365.2425)+1970-1;D(ap+1,0)<=ay;ap++){}for(az=s((ay-D(ap,0))/30.42);D(ap,az+1)<=ay;az++){}ay=1+ay-D(ap,az);ak=(at%86400000+86400000)%86400000;aw=s(ak/3600000)%24;au=s(ak/60000)%60;aq=s(ak/1000)%60;an=ak%1000}else{ap=at.getUTCFullYear();az=at.getUTCMonth();ay=at.getUTCDate();aw=at.getUTCHours();au=at.getUTCMinutes();aq=at.getUTCSeconds();an=at.getUTCMilliseconds()}at=(ap<=0||ap>=10000?(ap<0?"-":"+")+t(6,ap<0?-ap:ap):t(4,ap))+"-"+t(2,az+1)+"-"+t(2,ay)+"T"+t(2,aw)+":"+t(2,au)+":"+t(2,aq)+"."+t(3,an)+"Z"
}else{at=null}}else{if(typeof at.toJSON=="function"&&((ae!=N&&ae!=O&&ae!=E)||r.call(at,"toJSON"))){at=at.toJSON(ai)}}}if(ag){at=ag.call(aA,ai,at)}if(at===null){return"null"}ae=u.call(at);if(ae==A){return""+at}else{if(ae==N){return at>-1/0&&at<1/0?""+at:"null"}else{if(ae==O){return C(""+at)}}}if(typeof at=="object"){for(af=aj.length;af--;){if(aj[af]===at){throw aa()}}aj.push(at);ar=[];av=ac;ac+=ax;if(ae==E){for(ah=0,af=at.length;ah<af;ah++){ad=p(ah,at,ag,al,ax,ac,aj);ar.push(ad===L?"null":ad)}ao=ar.length?(ax?"[\n"+ac+ar.join(",\n"+ac)+"\n"+av+"]":("["+ar.join(",")+"]")):"[]"}else{m(al||at,function(aC){var aB=p(aC,at,ag,al,ax,ac,aj);if(aB!==L){ar.push(C(aC)+":"+(ax?" ":"")+aB)}});ao=ar.length?(ax?"{\n"+ac+ar.join(",\n"+ac)+"\n"+av+"}":("{"+ar.join(",")+"}")):"{}"}aj.pop();return ao}};V.stringify=function(ac,ae,af){var ad,al,aj,ai;if(e[typeof ae]&&ae){if((ai=u.call(ae))==U){al=ae}else{if(ai==E){aj={};for(var ah=0,ag=ae.length,ak;ah<ag;ak=ae[ah++],((ai=u.call(ak)),ai==O||ai==N)&&(aj[ak]=1)){}}}}if(af){if((ai=u.call(af))==N){if((af-=af%1)>0){for(ad="",af>10&&(af=10);
ad.length<af;ad+=" "){}}}else{if(ai==O){ad=af.length<=10?af:af.slice(0,10)}}}return p("",(ak={},ak[""]=ac,ak),al,aj,ad,"",[])}}if(!o("json-parse")){var M=R.fromCharCode;var l={92:"\\",34:'"',47:"/",98:"\b",116:"\t",110:"\n",102:"\f",114:"\r"};var G,X;var H=function(){G=X=null;throw T()};var y=function(){var ah=X,af=ah.length,ag,ae,ac,ai,ad;while(G<af){ad=ah.charCodeAt(G);switch(ad){case 9:case 10:case 13:case 32:G++;break;case 123:case 125:case 91:case 93:case 58:case 44:ag=F?ah.charAt(G):ah[G];G++;return ag;case 34:for(ag="@",G++;G<af;){ad=ah.charCodeAt(G);if(ad<32){H()}else{if(ad==92){ad=ah.charCodeAt(++G);switch(ad){case 92:case 34:case 47:case 98:case 116:case 110:case 102:case 114:ag+=l[ad];G++;break;case 117:ae=++G;for(ac=G+4;G<ac;G++){ad=ah.charCodeAt(G);if(!(ad>=48&&ad<=57||ad>=97&&ad<=102||ad>=65&&ad<=70)){H()}}ag+=M("0x"+ah.slice(ae,G));break;default:H()}}else{if(ad==34){break}ad=ah.charCodeAt(G);ae=G;while(ad>=32&&ad!=92&&ad!=34){ad=ah.charCodeAt(++G)}ag+=ah.slice(ae,G)}}}if(ah.charCodeAt(G)==34){G++;
return ag}H();default:ae=G;if(ad==45){ai=true;ad=ah.charCodeAt(++G)}if(ad>=48&&ad<=57){if(ad==48&&((ad=ah.charCodeAt(G+1)),ad>=48&&ad<=57)){H()}ai=false;for(;G<af&&((ad=ah.charCodeAt(G)),ad>=48&&ad<=57);G++){}if(ah.charCodeAt(G)==46){ac=++G;for(;ac<af&&((ad=ah.charCodeAt(ac)),ad>=48&&ad<=57);ac++){}if(ac==G){H()}G=ac}ad=ah.charCodeAt(G);if(ad==101||ad==69){ad=ah.charCodeAt(++G);if(ad==43||ad==45){G++}for(ac=G;ac<af&&((ad=ah.charCodeAt(ac)),ad>=48&&ad<=57);ac++){}if(ac==G){H()}G=ac}return +ah.slice(ae,G)}if(ai){H()}if(ah.slice(G,G+4)=="true"){G+=4;return true}else{if(ah.slice(G,G+5)=="false"){G+=5;return false}else{if(ah.slice(G,G+4)=="null"){G+=4;return null}}}H()}}return"$"};var W=function(ad){var ac,ae;if(ad=="$"){H()}if(typeof ad=="string"){if((F?ad.charAt(0):ad[0])=="@"){return ad.slice(1)}if(ad=="["){ac=[];for(;;ae||(ae=true)){ad=y();if(ad=="]"){break}if(ae){if(ad==","){ad=y();if(ad=="]"){H()}}else{H()}}if(ad==","){H()}ac.push(W(ad))}return ac}else{if(ad=="{"){ac={};for(;;ae||(ae=true)){ad=y();
if(ad=="}"){break}if(ae){if(ad==","){ad=y();if(ad=="}"){H()}}else{H()}}if(ad==","||typeof ad!="string"||(F?ad.charAt(0):ad[0])!="@"||y()!=":"){H()}ac[ad.slice(1)]=W(y())}return ac}}H()}return ad};var P=function(ae,ad,af){var ac=w(ae,ad,af);if(ac===L){delete ae[ad]}else{ae[ad]=ac}};var w=function(af,ae,ag){var ad=af[ae],ac;if(typeof ad=="object"&&ad){if(u.call(ad)==E){for(ac=ad.length;ac--;){P(ad,ac,ag)}}else{m(ad,function(ah){P(ad,ah,ag)})}}return ag.call(af,ae,ad)};V.parse=function(ae,af){var ac,ad;G=0;X=""+ae;ac=W(y());if(y()!="$"){H()}G=X=null;return af&&u.call(af)==U?w((ad={},ad[""]=ac,ad),"",af):ac}}}V.runInContext=j;return V}if(h&&!c){j(i,h)}else{var f=i.JSON,k=i.JSON3,d=false;var g=j(i,(i.JSON3={noConflict:function(){if(!d){d=true;i.JSON=f;i.JSON3=k;f=k=null}return g}}));i.JSON={parse:g.parse,stringify:g.stringify}}if(c){define(function(){return g})}}).call(this);JSON_PIWIK=a})()}if(typeof _paq!=="object"){_paq=[]}if(typeof window.Piwik!=="object"){window.Piwik=(function(){var q,b={},w={},E=document,h=navigator,U=screen,R=window,i=R.performance||R.mozPerformance||R.msPerformance||R.webkitPerformance,s=R.encodeURIComponent,Q=R.decodeURIComponent,l=unescape,G=[],C,e,ab=[];
function o(ai){try{return Q(ai)}catch(aj){return unescape(ai)}}function H(aj){var ai=typeof aj;return ai!=="undefined"}function y(ai){return typeof ai==="function"}function T(ai){return typeof ai==="object"}function v(ai){return typeof ai==="string"||ai instanceof String}function z(aj){if(!aj){return true}var ai;var ak=true;for(ai in aj){if(Object.prototype.hasOwnProperty.call(aj,ai)){ak=false}}return ak}function ae(ai){var aj=typeof console;if(aj!=="undefined"&&console&&console.error){console.error(ai)}}function aa(){var an,am,ap,aj,ai;for(an=0;an<arguments.length;an+=1){ai=null;if(arguments[an]&&arguments[an].slice){ai=arguments[an].slice()}aj=arguments[an];ap=aj.shift();var ao,ak;var al=v(ap)&&ap.indexOf("::")>0;if(al){ao=ap.split("::");ak=ao[0];ap=ao[1];if("object"===typeof e[ak]&&"function"===typeof e[ak][ap]){e[ak][ap].apply(e[ak],aj)}else{if(ai){ab.push(ai)}}}else{for(am=0;am<G.length;am++){if(v(ap)){ak=G[am];var aq=ap.indexOf(".")>0;if(aq){ao=ap.split(".");if(ak&&"object"===typeof ak[ao[0]]){ak=ak[ao[0]];
ap=ao[1]}else{if(ai){ab.push(ai);break}}}if(ak[ap]){ak[ap].apply(ak,aj)}else{var ar="The method '"+ap+'\' was not found in "_paq" variable. Please have a look at the Piwik tracker documentation: http://developer.piwik.org/api-reference/tracking-javascript';ae(ar);if(!aq){throw new TypeError(ar)}}if(ap==="addTracker"){break}if(ap==="setTrackerUrl"||ap==="setSiteId"){break}}else{ap.apply(G[am],aj)}}}}}function ah(al,ak,aj,ai){if(al.addEventListener){al.addEventListener(ak,aj,ai);return true}if(al.attachEvent){return al.attachEvent("on"+ak,aj)}al["on"+ak]=aj}function m(ai){if(E.readyState==="complete"){ai()}else{if(R.addEventListener){R.addEventListener("load",ai)}else{if(R.attachEvent){R.attachEvent("onload",ai)}}}}function p(al){var ai=false;if(E.attachEvent){ai=E.readyState==="complete"}else{ai=E.readyState!=="loading"}if(ai){al();return}var ak;if(E.addEventListener){ah(E,"DOMContentLoaded",function aj(){E.removeEventListener("DOMContentLoaded",aj,false);if(!ai){ai=true;al()}})}else{if(E.attachEvent){E.attachEvent("onreadystatechange",function aj(){if(E.readyState==="complete"){E.detachEvent("onreadystatechange",aj);
if(!ai){ai=true;al()}}});if(E.documentElement.doScroll&&R===R.top){(function aj(){if(!ai){try{E.documentElement.doScroll("left")}catch(am){setTimeout(aj,0);return}ai=true;al()}}())}}}ah(R,"load",function(){if(!ai){ai=true;al()}},false)}function X(aj,ao,ap){if(!aj){return""}var ai="",al,ak,am,an;for(al in b){if(Object.prototype.hasOwnProperty.call(b,al)){an=b[al]&&"function"===typeof b[al][aj];if(an){ak=b[al][aj];am=ak(ao||{},ap);if(am){ai+=am}}}}return ai}function ac(){var ai;X("unload");if(q){do{ai=new Date()}while(ai.getTimeAlias()<q)}}function n(ak,aj){var ai=E.createElement("script");ai.type="text/javascript";ai.src=ak;if(ai.readyState){ai.onreadystatechange=function(){var al=this.readyState;if(al==="loaded"||al==="complete"){ai.onreadystatechange=null;aj()}}}else{ai.onload=aj}E.getElementsByTagName("head")[0].appendChild(ai)}function I(){var ai="";try{ai=R.top.document.referrer}catch(ak){if(R.parent){try{ai=R.parent.document.referrer}catch(aj){ai=""}}}if(ai===""){ai=E.referrer}return ai
}function r(ai){var ak=new RegExp("^([a-z]+):"),aj=ak.exec(ai);return aj?aj[1]:null}function d(ai){var ak=new RegExp("^(?:(?:https?|ftp):)/*(?:[^@]+@)?([^:/#]+)"),aj=ak.exec(ai);return aj?aj[1]:ai}function ad(aj,ai){aj=String(aj);return aj.lastIndexOf(ai,0)===0}function P(aj,ai){aj=String(aj);return aj.indexOf(ai,aj.length-ai.length)!==-1}function x(aj,ai){aj=String(aj);return aj.indexOf(ai)!==-1}function g(aj,ai){aj=String(aj);return aj.substr(0,aj.length-ai)}function D(al,ak,an){al=String(al);if(!an){an=""}var ai=al.indexOf("#");var ao=al.length;if(ai===-1){ai=ao}var am=al.substr(0,ai);var aj=al.substr(ai,ao-ai);if(am.indexOf("?")===-1){am+="?"}else{if(!P(am,"?")){am+="&"}}return am+s(ak)+"="+s(an)+aj}function k(aj,ak){aj=String(aj);if(aj.indexOf("?"+ak+"=")===-1&&aj.indexOf("&"+ak+"=")===-1){return aj}var al=aj.indexOf("?");if(al===-1){return aj}var ai=aj.substr(al+1);var ap=aj.substr(0,al);if(ai){var aq="";var at=ai.indexOf("#");if(at!==-1){aq=ai.substr(at+1);ai=ai.substr(0,at)}var am;
var ao=ai.split("&");var an=ao.length-1;for(an;an>=0;an--){am=ao[an].split("=")[0];if(am===ak){ao.splice(an,1)}}var ar=ao.join("&");if(ar){ap=ap+"?"+ar}if(aq){ap+="#"+aq}}return ap}function f(ak,aj){var ai="[\\?&#]"+aj+"=([^&#]*)";var am=new RegExp(ai);var al=am.exec(ak);return al?Q(al[1]):""}function a(ai){if(ai&&String(ai)===ai){return ai.replace(/^\s+|\s+$/g,"")}return ai}function B(ai){return unescape(s(ai))}function ag(ay){var ak=function(aE,aD){return(aE<<aD)|(aE>>>(32-aD))},az=function(aG){var aE="",aF,aD;for(aF=7;aF>=0;aF--){aD=(aG>>>(aF*4))&15;aE+=aD.toString(16)}return aE},an,aB,aA,aj=[],ar=1732584193,ap=4023233417,ao=2562383102,am=271733878,al=3285377520,ax,aw,av,au,at,aC,ai,aq=[];ay=B(ay);ai=ay.length;for(aB=0;aB<ai-3;aB+=4){aA=ay.charCodeAt(aB)<<24|ay.charCodeAt(aB+1)<<16|ay.charCodeAt(aB+2)<<8|ay.charCodeAt(aB+3);aq.push(aA)}switch(ai&3){case 0:aB=2147483648;break;case 1:aB=ay.charCodeAt(ai-1)<<24|8388608;break;case 2:aB=ay.charCodeAt(ai-2)<<24|ay.charCodeAt(ai-1)<<16|32768;
break;case 3:aB=ay.charCodeAt(ai-3)<<24|ay.charCodeAt(ai-2)<<16|ay.charCodeAt(ai-1)<<8|128;break}aq.push(aB);while((aq.length&15)!==14){aq.push(0)}aq.push(ai>>>29);aq.push((ai<<3)&4294967295);for(an=0;an<aq.length;an+=16){for(aB=0;aB<16;aB++){aj[aB]=aq[an+aB]}for(aB=16;aB<=79;aB++){aj[aB]=ak(aj[aB-3]^aj[aB-8]^aj[aB-14]^aj[aB-16],1)}ax=ar;aw=ap;av=ao;au=am;at=al;for(aB=0;aB<=19;aB++){aC=(ak(ax,5)+((aw&av)|(~aw&au))+at+aj[aB]+1518500249)&4294967295;at=au;au=av;av=ak(aw,30);aw=ax;ax=aC}for(aB=20;aB<=39;aB++){aC=(ak(ax,5)+(aw^av^au)+at+aj[aB]+1859775393)&4294967295;at=au;au=av;av=ak(aw,30);aw=ax;ax=aC}for(aB=40;aB<=59;aB++){aC=(ak(ax,5)+((aw&av)|(aw&au)|(av&au))+at+aj[aB]+2400959708)&4294967295;at=au;au=av;av=ak(aw,30);aw=ax;ax=aC}for(aB=60;aB<=79;aB++){aC=(ak(ax,5)+(aw^av^au)+at+aj[aB]+3395469782)&4294967295;at=au;au=av;av=ak(aw,30);aw=ax;ax=aC}ar=(ar+ax)&4294967295;ap=(ap+aw)&4294967295;ao=(ao+av)&4294967295;am=(am+au)&4294967295;al=(al+at)&4294967295}aC=az(ar)+az(ap)+az(ao)+az(am)+az(al);
return aC.toLowerCase()}function W(ak,ai,aj){if(!ak){ak=""}if(!ai){ai=""}if(ak==="translate.googleusercontent.com"){if(aj===""){aj=ai}ai=f(ai,"u");ak=d(ai)}else{if(ak==="cc.bingj.com"||ak==="webcache.googleusercontent.com"||ak.slice(0,5)==="74.6."){ai=E.links[0].href;ak=d(ai)}}return[ak,ai,aj]}function J(aj){var ai=aj.length;if(aj.charAt(--ai)==="."){aj=aj.slice(0,ai)}if(aj.slice(0,2)==="*."){aj=aj.slice(1)}if(aj.indexOf("/")!==-1){aj=aj.substr(0,aj.indexOf("/"))}return aj}function af(aj){aj=aj&&aj.text?aj.text:aj;if(!v(aj)){var ai=E.getElementsByTagName("title");if(ai&&H(ai[0])){aj=ai[0].text}}return aj}function N(ai){if(!ai){return[]}if(!H(ai.children)&&H(ai.childNodes)){return ai.children}if(H(ai.children)){return ai.children}return[]}function S(aj,ai){if(!aj||!ai){return false}if(aj.contains){return aj.contains(ai)}if(aj===ai){return true}if(aj.compareDocumentPosition){return !!(aj.compareDocumentPosition(ai)&16)}return false}function K(ak,al){if(ak&&ak.indexOf){return ak.indexOf(al)
}if(!H(ak)||ak===null){return -1}if(!ak.length){return -1}var ai=ak.length;if(ai===0){return -1}var aj=0;while(aj<ai){if(ak[aj]===al){return aj}aj++}return -1}function j(ak){if(!ak){return false}function ai(am,an){if(R.getComputedStyle){return E.defaultView.getComputedStyle(am,null)[an]}if(am.currentStyle){return am.currentStyle[an]}}function al(am){am=am.parentNode;while(am){if(am===E){return true}am=am.parentNode}return false}function aj(ao,av,am,ar,ap,at,aq){var an=ao.parentNode,au=1;if(!al(ao)){return false}if(9===an.nodeType){return true}if("0"===ai(ao,"opacity")||"none"===ai(ao,"display")||"hidden"===ai(ao,"visibility")){return false}if(!H(av)||!H(am)||!H(ar)||!H(ap)||!H(at)||!H(aq)){av=ao.offsetTop;ap=ao.offsetLeft;ar=av+ao.offsetHeight;am=ap+ao.offsetWidth;at=ao.offsetWidth;aq=ao.offsetHeight}if(ak===ao&&(0===aq||0===at)&&"hidden"===ai(ao,"overflow")){return false}if(an){if(("hidden"===ai(an,"overflow")||"scroll"===ai(an,"overflow"))){if(ap+au>an.offsetWidth+an.scrollLeft||ap+at-au<an.scrollLeft||av+au>an.offsetHeight+an.scrollTop||av+aq-au<an.scrollTop){return false
}}if(ao.offsetParent===an){ap+=an.offsetLeft;av+=an.offsetTop}return aj(an,av,am,ar,ap,at,aq)}return true}return aj(ak)}var Z={htmlCollectionToArray:function(ak){var ai=[],aj;if(!ak||!ak.length){return ai}for(aj=0;aj<ak.length;aj++){ai.push(ak[aj])}return ai},find:function(ai){if(!document.querySelectorAll||!ai){return[]}var aj=document.querySelectorAll(ai);return this.htmlCollectionToArray(aj)},findMultiple:function(ak){if(!ak||!ak.length){return[]}var aj,al;var ai=[];for(aj=0;aj<ak.length;aj++){al=this.find(ak[aj]);ai=ai.concat(al)}ai=this.makeNodesUnique(ai);return ai},findNodesByTagName:function(aj,ai){if(!aj||!ai||!aj.getElementsByTagName){return[]}var ak=aj.getElementsByTagName(ai);return this.htmlCollectionToArray(ak)},makeNodesUnique:function(ai){var an=[].concat(ai);ai.sort(function(ap,ao){if(ap===ao){return 0}var ar=K(an,ap);var aq=K(an,ao);if(ar===aq){return 0}return ar>aq?-1:1});if(ai.length<=1){return ai}var aj=0;var al=0;var am=[];var ak;ak=ai[aj++];while(ak){if(ak===ai[aj]){al=am.push(aj)
}ak=ai[aj++]||null}while(al--){ai.splice(am[al],1)}return ai},getAttributeValueFromNode:function(am,ak){if(!this.hasNodeAttribute(am,ak)){return}if(am&&am.getAttribute){return am.getAttribute(ak)}if(!am||!am.attributes){return}var al=(typeof am.attributes[ak]);if("undefined"===al){return}if(am.attributes[ak].value){return am.attributes[ak].value}if(am.attributes[ak].nodeValue){return am.attributes[ak].nodeValue}var aj;var ai=am.attributes;if(!ai){return}for(aj=0;aj<ai.length;aj++){if(ai[aj].nodeName===ak){return ai[aj].nodeValue}}return null},hasNodeAttributeWithValue:function(aj,ai){var ak=this.getAttributeValueFromNode(aj,ai);return !!ak},hasNodeAttribute:function(ak,ai){if(ak&&ak.hasAttribute){return ak.hasAttribute(ai)}if(ak&&ak.attributes){var aj=(typeof ak.attributes[ai]);return"undefined"!==aj}return false},hasNodeCssClass:function(ak,ai){if(ak&&ai&&ak.className){var aj=typeof ak.className==="string"?ak.className.split(" "):[];if(-1!==K(aj,ai)){return true}}return false},findNodesHavingAttribute:function(am,ak,ai){if(!ai){ai=[]
}if(!am||!ak){return ai}var al=N(am);if(!al||!al.length){return ai}var aj,an;for(aj=0;aj<al.length;aj++){an=al[aj];if(this.hasNodeAttribute(an,ak)){ai.push(an)}ai=this.findNodesHavingAttribute(an,ak,ai)}return ai},findFirstNodeHavingAttribute:function(ak,aj){if(!ak||!aj){return}if(this.hasNodeAttribute(ak,aj)){return ak}var ai=this.findNodesHavingAttribute(ak,aj);if(ai&&ai.length){return ai[0]}},findFirstNodeHavingAttributeWithValue:function(al,ak){if(!al||!ak){return}if(this.hasNodeAttributeWithValue(al,ak)){return al}var ai=this.findNodesHavingAttribute(al,ak);if(!ai||!ai.length){return}var aj;for(aj=0;aj<ai.length;aj++){if(this.getAttributeValueFromNode(ai[aj],ak)){return ai[aj]}}},findNodesHavingCssClass:function(am,al,ai){if(!ai){ai=[]}if(!am||!al){return ai}if(am.getElementsByClassName){var an=am.getElementsByClassName(al);return this.htmlCollectionToArray(an)}var ak=N(am);if(!ak||!ak.length){return[]}var aj,ao;for(aj=0;aj<ak.length;aj++){ao=ak[aj];if(this.hasNodeCssClass(ao,al)){ai.push(ao)
}ai=this.findNodesHavingCssClass(ao,al,ai)}return ai},findFirstNodeHavingClass:function(ak,aj){if(!ak||!aj){return}if(this.hasNodeCssClass(ak,aj)){return ak}var ai=this.findNodesHavingCssClass(ak,aj);if(ai&&ai.length){return ai[0]}},isLinkElement:function(aj){if(!aj){return false}var ai=String(aj.nodeName).toLowerCase();var al=["a","area"];var ak=K(al,ai);return ak!==-1},setAnyAttribute:function(aj,ai,ak){if(!aj||!ai){return}if(aj.setAttribute){aj.setAttribute(ai,ak)}else{aj[ai]=ak}}};var u={CONTENT_ATTR:"data-track-content",CONTENT_CLASS:"piwikTrackContent",CONTENT_NAME_ATTR:"data-content-name",CONTENT_PIECE_ATTR:"data-content-piece",CONTENT_PIECE_CLASS:"piwikContentPiece",CONTENT_TARGET_ATTR:"data-content-target",CONTENT_TARGET_CLASS:"piwikContentTarget",CONTENT_IGNOREINTERACTION_ATTR:"data-content-ignoreinteraction",CONTENT_IGNOREINTERACTION_CLASS:"piwikContentIgnoreInteraction",location:undefined,findContentNodes:function(){var aj="."+this.CONTENT_CLASS;var ai="["+this.CONTENT_ATTR+"]";
var ak=Z.findMultiple([aj,ai]);return ak},findContentNodesWithinNode:function(al){if(!al){return[]}var aj=Z.findNodesHavingCssClass(al,this.CONTENT_CLASS);var ai=Z.findNodesHavingAttribute(al,this.CONTENT_ATTR);if(ai&&ai.length){var ak;for(ak=0;ak<ai.length;ak++){aj.push(ai[ak])}}if(Z.hasNodeAttribute(al,this.CONTENT_ATTR)){aj.push(al)}else{if(Z.hasNodeCssClass(al,this.CONTENT_CLASS)){aj.push(al)}}aj=Z.makeNodesUnique(aj);return aj},findParentContentNode:function(aj){if(!aj){return}var ak=aj;var ai=0;while(ak&&ak!==E&&ak.parentNode){if(Z.hasNodeAttribute(ak,this.CONTENT_ATTR)){return ak}if(Z.hasNodeCssClass(ak,this.CONTENT_CLASS)){return ak}ak=ak.parentNode;if(ai>1000){break}ai++}},findPieceNode:function(aj){var ai;ai=Z.findFirstNodeHavingAttribute(aj,this.CONTENT_PIECE_ATTR);if(!ai){ai=Z.findFirstNodeHavingClass(aj,this.CONTENT_PIECE_CLASS)}if(ai){return ai}return aj},findTargetNodeNoDefault:function(ai){if(!ai){return}var aj=Z.findFirstNodeHavingAttributeWithValue(ai,this.CONTENT_TARGET_ATTR);
if(aj){return aj}aj=Z.findFirstNodeHavingAttribute(ai,this.CONTENT_TARGET_ATTR);if(aj){return aj}aj=Z.findFirstNodeHavingClass(ai,this.CONTENT_TARGET_CLASS);if(aj){return aj}},findTargetNode:function(ai){var aj=this.findTargetNodeNoDefault(ai);if(aj){return aj}return ai},findContentName:function(aj){if(!aj){return}var am=Z.findFirstNodeHavingAttributeWithValue(aj,this.CONTENT_NAME_ATTR);if(am){return Z.getAttributeValueFromNode(am,this.CONTENT_NAME_ATTR)}var ai=this.findContentPiece(aj);if(ai){return this.removeDomainIfIsInLink(ai)}if(Z.hasNodeAttributeWithValue(aj,"title")){return Z.getAttributeValueFromNode(aj,"title")}var ak=this.findPieceNode(aj);if(Z.hasNodeAttributeWithValue(ak,"title")){return Z.getAttributeValueFromNode(ak,"title")}var al=this.findTargetNode(aj);if(Z.hasNodeAttributeWithValue(al,"title")){return Z.getAttributeValueFromNode(al,"title")}},findContentPiece:function(aj){if(!aj){return}var al=Z.findFirstNodeHavingAttributeWithValue(aj,this.CONTENT_PIECE_ATTR);if(al){return Z.getAttributeValueFromNode(al,this.CONTENT_PIECE_ATTR)
}var ai=this.findPieceNode(aj);var ak=this.findMediaUrlInNode(ai);if(ak){return this.toAbsoluteUrl(ak)}},findContentTarget:function(ak){if(!ak){return}var al=this.findTargetNode(ak);if(Z.hasNodeAttributeWithValue(al,this.CONTENT_TARGET_ATTR)){return Z.getAttributeValueFromNode(al,this.CONTENT_TARGET_ATTR)}var aj;if(Z.hasNodeAttributeWithValue(al,"href")){aj=Z.getAttributeValueFromNode(al,"href");return this.toAbsoluteUrl(aj)}var ai=this.findPieceNode(ak);if(Z.hasNodeAttributeWithValue(ai,"href")){aj=Z.getAttributeValueFromNode(ai,"href");return this.toAbsoluteUrl(aj)}},isSameDomain:function(ai){if(!ai||!ai.indexOf){return false}if(0===ai.indexOf(this.getLocation().origin)){return true}var aj=ai.indexOf(this.getLocation().host);if(8>=aj&&0<=aj){return true}return false},removeDomainIfIsInLink:function(ak){var aj="^https?://[^/]+";var ai="^.*//[^/]+";if(ak&&ak.search&&-1!==ak.search(new RegExp(aj))&&this.isSameDomain(ak)){ak=ak.replace(new RegExp(ai),"");if(!ak){ak="/"}}return ak},findMediaUrlInNode:function(am){if(!am){return
}var ak=["img","embed","video","audio"];var ai=am.nodeName.toLowerCase();if(-1!==K(ak,ai)&&Z.findFirstNodeHavingAttributeWithValue(am,"src")){var al=Z.findFirstNodeHavingAttributeWithValue(am,"src");return Z.getAttributeValueFromNode(al,"src")}if(ai==="object"&&Z.hasNodeAttributeWithValue(am,"data")){return Z.getAttributeValueFromNode(am,"data")}if(ai==="object"){var an=Z.findNodesByTagName(am,"param");if(an&&an.length){var aj;for(aj=0;aj<an.length;aj++){if("movie"===Z.getAttributeValueFromNode(an[aj],"name")&&Z.hasNodeAttributeWithValue(an[aj],"value")){return Z.getAttributeValueFromNode(an[aj],"value")}}}var ao=Z.findNodesByTagName(am,"embed");if(ao&&ao.length){return this.findMediaUrlInNode(ao[0])}}},trim:function(ai){return a(ai)},isOrWasNodeInViewport:function(an){if(!an||!an.getBoundingClientRect||an.nodeType!==1){return true}var am=an.getBoundingClientRect();var al=E.documentElement||{};var ak=am.top<0;if(ak&&an.offsetTop){ak=(an.offsetTop+am.height)>0}var aj=al.clientWidth;if(R.innerWidth&&aj>R.innerWidth){aj=R.innerWidth
}var ai=al.clientHeight;if(R.innerHeight&&ai>R.innerHeight){ai=R.innerHeight}return((am.bottom>0||ak)&&am.right>0&&am.left<aj&&((am.top<ai)||ak))},isNodeVisible:function(aj){var ai=j(aj);var ak=this.isOrWasNodeInViewport(aj);return ai&&ak},buildInteractionRequestParams:function(ai,aj,ak,al){var am="";if(ai){am+="c_i="+s(ai)}if(aj){if(am){am+="&"}am+="c_n="+s(aj)}if(ak){if(am){am+="&"}am+="c_p="+s(ak)}if(al){if(am){am+="&"}am+="c_t="+s(al)}return am},buildImpressionRequestParams:function(ai,aj,ak){var al="c_n="+s(ai)+"&c_p="+s(aj);if(ak){al+="&c_t="+s(ak)}return al},buildContentBlock:function(ak){if(!ak){return}var ai=this.findContentName(ak);var aj=this.findContentPiece(ak);var al=this.findContentTarget(ak);ai=this.trim(ai);aj=this.trim(aj);al=this.trim(al);return{name:ai||"Unknown",piece:aj||"Unknown",target:al||""}},collectContent:function(al){if(!al||!al.length){return[]}var ak=[];var ai,aj;for(ai=0;ai<al.length;ai++){aj=this.buildContentBlock(al[ai]);if(H(aj)){ak.push(aj)}}return ak
},setLocation:function(ai){this.location=ai},getLocation:function(){var ai=this.location||R.location;if(!ai.origin){ai.origin=ai.protocol+"//"+ai.hostname+(ai.port?":"+ai.port:"")}return ai},toAbsoluteUrl:function(aj){if((!aj||String(aj)!==aj)&&aj!==""){return aj}if(""===aj){return this.getLocation().href}if(aj.search(/^\/\//)!==-1){return this.getLocation().protocol+aj}if(aj.search(/:\/\//)!==-1){return aj}if(0===aj.indexOf("#")){return this.getLocation().origin+this.getLocation().pathname+aj}if(0===aj.indexOf("?")){return this.getLocation().origin+this.getLocation().pathname+aj}if(0===aj.search("^[a-zA-Z]{2,11}:")){return aj}if(aj.search(/^\//)!==-1){return this.getLocation().origin+aj}var ai="(.*/)";var ak=this.getLocation().origin+this.getLocation().pathname.match(new RegExp(ai))[0];return ak+aj},isUrlToCurrentDomain:function(aj){var ak=this.toAbsoluteUrl(aj);if(!ak){return false}var ai=this.getLocation().origin;if(ai===ak){return true}if(0===String(ak).indexOf(ai)){if(":"===String(ak).substr(ai.length,1)){return false
}return true}return false},setHrefAttribute:function(aj,ai){if(!aj||!ai){return}Z.setAnyAttribute(aj,"href",ai)},shouldIgnoreInteraction:function(ak){var aj=Z.hasNodeAttribute(ak,this.CONTENT_IGNOREINTERACTION_ATTR);var ai=Z.hasNodeCssClass(ak,this.CONTENT_IGNOREINTERACTION_CLASS);return aj||ai}};function M(aj,am){if(am){return am}aj=u.toAbsoluteUrl(aj);if(x(aj,"?")){var al=aj.indexOf("?");aj=aj.slice(0,al)}if(P(aj,"piwik.php")){aj=g(aj,"piwik.php".length)}else{if(P(aj,".php")){var ai=aj.lastIndexOf("/");var ak=1;aj=aj.slice(0,ai+ak)}}if(P(aj,"/js/")){aj=g(aj,"js/".length)}return aj}function L(ao){var aq="Piwik_Overlay";var aj=new RegExp("index\\.php\\?module=Overlay&action=startOverlaySession&idSite=([0-9]+)&period=([^&]+)&date=([^&]+)(&segment=.*)?$");var ak=aj.exec(E.referrer);if(ak){var am=ak[1];if(am!==String(ao)){return false}var an=ak[2],ai=ak[3],al=ak[4];if(!al){al=""}else{if(al.indexOf("&segment=")===0){al=al.substr("&segment=".length)}}R.name=aq+"###"+an+"###"+ai+"###"+al}var ap=R.name.split("###");
return ap.length===4&&ap[0]===aq}function V(aj,ap,al){var ao=R.name.split("###"),an=ao[1],ai=ao[2],am=ao[3],ak=M(aj,ap);n(ak+"plugins/Overlay/client/client.js?v=1",function(){Piwik_Overlay_Client.initialize(ak,al,an,ai,am)})}function t(){var ak;try{ak=R.frameElement}catch(aj){return true}if(H(ak)){return(ak&&String(ak.nodeName).toLowerCase()==="iframe")?true:false}try{return R.self!==R.top}catch(ai){return true}}function O(bZ,bU){var bu=this,bP=W(E.domain,R.location.href,I()),cC=J(bP[0]),bz=o(bP[1]),bc=o(bP[2]),cA=false,b3="GET",cQ=b3,aA="application/x-www-form-urlencoded; charset=UTF-8",cj=aA,aw=bZ||"",bt="",cG="",bR=bU||"",bm="",bA="",aW,a8="",cN=["7z","aac","apk","arc","arj","asf","asx","avi","azw3","bin","csv","deb","dmg","doc","docx","epub","exe","flv","gif","gz","gzip","hqx","ibooks","jar","jpg","jpeg","js","mobi","mp2","mp3","mp4","mpg","mpeg","mov","movie","msi","msp","odb","odf","odg","ods","odt","ogg","ogv","pdf","phps","png","ppt","pptx","qt","qtm","ra","ram","rar","rpm","sea","sit","tar","tbz","tbz2","bz","bz2","tgz","torrent","txt","wav","wma","wmv","wpd","xls","xlsx","xml","z","zip"],ap=[cC],bn=[],bx=[],aZ=[],bv=500,cs,aX,bD,bB,ai,cd=["pk_campaign","piwik_campaign","utm_campaign","utm_source","utm_medium"],bs=["pk_kwd","piwik_kwd","utm_term"],a9="_pk_",ao="pk_vid",aR=180,cE,be,ba=false,cy,a4,bj,ct=33955200000,ca=1800000,cM=15768000000,aU=true,b8=0,bC=false,aH=false,bW,bH={},b7={},bb={},bh=200,cI={},cO={},bV=[],b0=false,cm=false,aj=false,cP=false,cv=false,aF=false,a3=t(),cF=null,bX,aI,bo,bS=ag,bd,aC,ce=0,bi=["id","ses","cvar","ref"],aL=false;
try{a8=E.title}catch(ck){a8=""}function cT(c3,c1,c0,c2,cZ){if(ba){return}var cY;if(c0){cY=new Date();cY.setTime(cY.getTime()+c0)}E.cookie=c3+"="+s(c1)+(c0?";expires="+cY.toGMTString():"")+";path="+(c2||"/")+(cZ?";domain="+cZ:"")+(aL?";secure":"")}function cH(cY){aL=!!cY}function cb(){return aL}function av(c0){if(ba){return 0}var cY=new RegExp("(^|;)[ ]*"+c0+"=([^;]*)"),cZ=cY.exec(E.cookie);return cZ?Q(cZ[2]):0}function bN(cY){var cZ;cY=k(cY,ao);if(bB){cZ=new RegExp("#.*");return cY.replace(cZ,"")}return cY}function bG(c0,cY){var c1=r(cY),cZ;if(c1){return cY}if(cY.slice(0,1)==="/"){return r(c0)+"://"+d(c0)+cY}c0=bN(c0);cZ=c0.indexOf("?");if(cZ>=0){c0=c0.slice(0,cZ)}cZ=c0.lastIndexOf("/");if(cZ!==c0.length-1){c0=c0.slice(0,cZ+1)}return c0+cY}function cr(c0,cY){var cZ;c0=String(c0).toLowerCase();cY=String(cY).toLowerCase();if(c0===cY){return true}if(cY.slice(0,1)==="."){if(c0===cY.slice(1)){return true}cZ=c0.length-cY.length;if((cZ>0)&&(c0.slice(cZ)===cY)){return true}}return false}function b6(cY){var cZ=document.createElement("a");
if(cY.indexOf("//")!==0&&cY.indexOf("http")!==0){if(cY.indexOf("*")===0){cY=cY.substr(1)}if(cY.indexOf(".")===0){cY=cY.substr(1)}cY="http://"+cY}cZ.href=u.toAbsoluteUrl(cY);if(cZ.pathname){return cZ.pathname}return""}function aV(cZ,cY){if(!ad(cY,"/")){cY="/"+cY}if(!ad(cZ,"/")){cZ="/"+cZ}var c0=(cY==="/"||cY==="/*");if(c0){return true}if(cZ===cY){return true}cY=String(cY).toLowerCase();cZ=String(cZ).toLowerCase();if(P(cY,"*")){cY=cY.slice(0,-1);c0=(!cY||cY==="/");if(c0){return true}if(cZ===cY){return true}return cZ.indexOf(cY)===0}if(!P(cZ,"/")){cZ+="/"}if(!P(cY,"/")){cY+="/"}return cZ.indexOf(cY)===0}function al(c2,c4){var cZ,cY,c0,c1,c3;for(cZ=0;cZ<ap.length;cZ++){c1=J(ap[cZ]);c3=b6(ap[cZ]);if(cr(c2,c1)&&aV(c4,c3)){return true}}return false}function aN(c1){var cZ,cY,c0;for(cZ=0;cZ<ap.length;cZ++){cY=J(ap[cZ].toLowerCase());if(c1===cY){return true}if(cY.slice(0,1)==="."){if(c1===cY.slice(1)){return true}c0=c1.length-cY.length;if((c0>0)&&(c1.slice(c0)===cY)){return true}}}return false}function cc(cY,c0){var cZ=new Image(1,1);
cZ.onload=function(){C=0;if(typeof c0==="function"){c0()}};cY=cY.replace("send_image=0","send_image=1");cZ.src=aw+(aw.indexOf("?")<0?"?":"&")+cY}function cL(cZ,c2,cY){if(!H(cY)||null===cY){cY=true}try{var c1=R.XMLHttpRequest?new R.XMLHttpRequest():R.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):null;c1.open("POST",aw,true);c1.onreadystatechange=function(){if(this.readyState===4&&!(this.status>=200&&this.status<300)&&cY){cc(cZ,c2)}else{if(this.readyState===4&&(typeof c2==="function")){c2()}}};c1.setRequestHeader("Content-Type",cj);c1.send(cZ)}catch(c0){if(cY){cc(cZ,c2)}}}function b1(cZ){var cY=new Date();var c0=cY.getTime()+cZ;if(!q||c0>q){q=c0}}function b9(cY){if(bX||!aX){return}bX=setTimeout(function cZ(){bX=null;if(!a3){a3=(!E.hasFocus||E.hasFocus())}if(!a3){b9(aX);return}if(bD()){return}var c0=new Date(),c1=aX-(c0.getTime()-cF);c1=Math.min(aX,c1);b9(c1)},cY||aX)}function bw(){if(!bX){return}clearTimeout(bX);bX=null}function a1(){a3=true;if(bD()){return}b9()}function aq(){bw()}function cV(){if(aF||!aX){return
}aF=true;ah(R,"focus",a1);ah(R,"blur",aq);b9()}function cn(c2){var cZ=new Date();var cY=cZ.getTime();cF=cY;if(cm&&cY<cm){var c0=cm-cY;setTimeout(c2,c0);b1(c0+50);cm+=50;return}if(cm===false){var c1=800;cm=cY+c1}c2()}function br(cZ,cY,c0){if(!cy&&cZ){cn(function(){if(cQ==="POST"||String(cZ).length>2000){cL(cZ,c0)}else{cc(cZ,c0)}b1(cY)})}if(!aF){cV()}else{b9()}}function b5(cY){if(cy){return false}return(cY&&cY.length)}function cU(c0,cY){if(!b5(c0)){return}var cZ='{"requests":["?'+c0.join('","?')+'"]}';cn(function(){cL(cZ,null,false);b1(cY)})}function aK(cY){return a9+cY+"."+bR+"."+bd}function bQ(){if(ba){return"0"}if(!H(h.cookieEnabled)){var cY=aK("testcookie");cT(cY,"1");return av(cY)==="1"?"1":"0"}return h.cookieEnabled?"1":"0"}function a7(){bd=bS((cE||cC)+(be||"/")).slice(0,4)}function bI(){var cZ=aK("cvar"),cY=av(cZ);if(cY.length){cY=JSON_PIWIK.parse(cY);if(T(cY)){return cY}}return{}}function co(){if(aH===false){aH=bI()}}function cz(){return bS((h.userAgent||"")+(h.platform||"")+JSON_PIWIK.stringify(cO)+(new Date()).getTime()+Math.random()).slice(0,16)
}function ar(){return bS((h.userAgent||"")+(h.platform||"")+JSON_PIWIK.stringify(cO)).slice(0,6)}function a5(){return Math.floor((new Date()).getTime()/1000)}function aB(){var cZ=a5();var c0=ar();var cY=String(cZ)+c0;return cY}function cK(c0){c0=String(c0);var c3=ar();var c1=c3.length;var c2=c0.substr(-1*c1,c1);var cZ=parseInt(c0.substr(0,c0.length-c1),10);if(cZ&&c2&&c2===c3){var cY=a5();if(aR<=0){return true}if(cY>=cZ&&cY<=(cZ+aR)){return true}}return false}function cW(cY){if(!cv){return""}var c2=f(cY,ao);if(!c2){return""}c2=String(c2);var c0=new RegExp("^[a-zA-Z0-9]+$");if(c2.length===32&&c0.test(c2)){var cZ=c2.substr(16,32);if(cK(cZ)){var c1=c2.substr(0,16);return c1}}return""}function cw(){if(!bA){bA=cW(bz)}var c0=new Date(),cY=Math.round(c0.getTime()/1000),cZ=aK("id"),c3=av(cZ),c2,c1;if(c3){c2=c3.split(".");c2.unshift("0");if(bA.length){c2[1]=bA}return c2}if(bA.length){c1=bA}else{if("0"===bQ()){c1=""}else{c1=cz()}}c2=["1",c1,cY,0,cY,"",""];return c2}function aP(){var c5=cw(),c1=c5[0],c2=c5[1],cZ=c5[2],cY=c5[3],c3=c5[4],c0=c5[5];
if(!H(c5[6])){c5[6]=""}var c4=c5[6];return{newVisitor:c1,uuid:c2,createTs:cZ,visitCount:cY,currentVisitTs:c3,lastVisitTs:c0,lastEcommerceOrderTs:c4}}function az(){var c1=new Date(),cZ=c1.getTime(),c2=aP().createTs;var cY=parseInt(c2,10);var c0=(cY*1000)+ct-cZ;return c0}function aD(cY){if(!bR){return}var c0=new Date(),cZ=Math.round(c0.getTime()/1000);if(!H(cY)){cY=aP()}var c1=cY.uuid+"."+cY.createTs+"."+cY.visitCount+"."+cZ+"."+cY.lastVisitTs+"."+cY.lastEcommerceOrderTs;cT(aK("id"),c1,az(),be,cE)}function by(){var cY=av(aK("ref"));if(cY.length){try{cY=JSON_PIWIK.parse(cY);if(T(cY)){return cY}}catch(cZ){}}return["","",0,""]}function bJ(c0,cZ,cY){cT(c0,"",-86400,cZ,cY)}function bk(cZ){var cY="testvalue";cT("test",cY,10000,null,cZ);if(av("test")===cY){bJ("test",null,cZ);return true}return false}function ax(){var cZ=ba;ba=false;var cY,c0;for(cY=0;cY<bi.length;cY++){c0=aK(bi[cY]);if(0!==av(c0)){bJ(c0,be,cE)}}ba=cZ}function bO(cY){bR=cY;aD()}function cX(c2){if(!c2||!T(c2)){return}var c1=[];var c0;
for(c0 in c2){if(Object.prototype.hasOwnProperty.call(c2,c0)){c1.push(c0)}}var c3={};c1.sort();var cY=c1.length;var cZ;for(cZ=0;cZ<cY;cZ++){c3[c1[cZ]]=c2[c1[cZ]]}return c3}function bY(){cT(aK("ses"),"*",ca,be,cE)}function a6(){var c1="";var cZ="abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";var c0=cZ.length;var cY;for(cY=0;cY<6;cY++){c1+=cZ.charAt(Math.floor(Math.random()*c0))}return c1}function cf(c0,dl,dm,c1){var dk,cZ=new Date(),c8=Math.round(cZ.getTime()/1000),c5,dj,c2=1024,ds,c9,dh=aH,c3=aK("ses"),df=aK("ref"),dc=aK("cvar"),dd=av(c3),di=by(),dp=aW||bz,c6,cY;if(ba){ax()}if(cy){return""}var de=aP();if(!H(c1)){c1=""}var db=E.characterSet||E.charset;if(!db||db.toLowerCase()==="utf-8"){db=null}c6=di[0];cY=di[1];c5=di[2];dj=di[3];if(!dd){var dn=ca/1000;if(!de.lastVisitTs||(c8-de.lastVisitTs)>dn){de.visitCount++;de.lastVisitTs=de.currentVisitTs}if(!bj||!c6.length){for(dk in cd){if(Object.prototype.hasOwnProperty.call(cd,dk)){c6=f(dp,cd[dk]);if(c6.length){break}}}for(dk in bs){if(Object.prototype.hasOwnProperty.call(bs,dk)){cY=f(dp,bs[dk]);
if(cY.length){break}}}}ds=d(bc);c9=dj.length?d(dj):"";if(ds.length&&!aN(ds)&&(!bj||!c9.length||aN(c9))){dj=bc}if(dj.length||c6.length){c5=c8;di=[c6,cY,c5,bN(dj.slice(0,c2))];cT(df,JSON_PIWIK.stringify(di),cM,be,cE)}}c0+="&idsite="+bR+"&rec=1&r="+String(Math.random()).slice(2,8)+"&h="+cZ.getHours()+"&m="+cZ.getMinutes()+"&s="+cZ.getSeconds()+"&url="+s(bN(dp))+(bc.length?"&urlref="+s(bN(bc)):"")+((bm&&bm.length)?"&uid="+s(bm):"")+"&_id="+de.uuid+"&_idts="+de.createTs+"&_idvc="+de.visitCount+"&_idn="+de.newVisitor+(c6.length?"&_rcn="+s(c6):"")+(cY.length?"&_rck="+s(cY):"")+"&_refts="+c5+"&_viewts="+de.lastVisitTs+(String(de.lastEcommerceOrderTs).length?"&_ects="+de.lastEcommerceOrderTs:"")+(String(dj).length?"&_ref="+s(bN(dj.slice(0,c2))):"")+(db?"&cs="+s(db):"")+"&send_image=0";for(dk in cO){if(Object.prototype.hasOwnProperty.call(cO,dk)){c0+="&"+dk+"="+cO[dk]}}var dr=[];if(dl){for(dk in dl){if(Object.prototype.hasOwnProperty.call(dl,dk)&&/^dimension\d+$/.test(dk)){var c4=dk.replace("dimension","");
dr.push(parseInt(c4,10));dr.push(String(c4));c0+="&"+dk+"="+dl[dk];delete dl[dk]}}}if(dl&&z(dl)){dl=null}for(dk in bb){if(Object.prototype.hasOwnProperty.call(bb,dk)){var da=(-1===K(dr,dk));if(da){c0+="&dimension"+dk+"="+bb[dk]}}}if(dl){c0+="&data="+s(JSON_PIWIK.stringify(dl))}else{if(ai){c0+="&data="+s(JSON_PIWIK.stringify(ai))}}function c7(dt,du){var dv=JSON_PIWIK.stringify(dt);if(dv.length>2){return"&"+du+"="+s(dv)}return""}var dq=cX(bH);var dg=cX(b7);c0+=c7(dq,"cvar");c0+=c7(dg,"e_cvar");if(aH){c0+=c7(aH,"_cvar");for(dk in dh){if(Object.prototype.hasOwnProperty.call(dh,dk)){if(aH[dk][0]===""||aH[dk][1]===""){delete aH[dk]}}}if(bC){cT(dc,JSON_PIWIK.stringify(aH),ca,be,cE)}}if(aU){if(b8){c0+=">_ms="+b8}else{if(i&&i.timing&&i.timing.requestStart&&i.timing.responseEnd){c0+=">_ms="+(i.timing.responseEnd-i.timing.requestStart)}}}if(aC){c0+="&pv_id="+aC}de.lastEcommerceOrderTs=H(c1)&&String(c1).length?c1:de.lastEcommerceOrderTs;aD(de);bY();c0+=X(dm,{tracker:bu,request:c0});if(cG.length){c0+="&"+cG
}if(y(bW)){c0=bW(c0)}return c0}bD=function aY(){var cY=new Date();if(cF+aX<=cY.getTime()){var cZ=cf("ping=1",null,"ping");br(cZ,bv);return true}return false};function bf(c1,c0,c6,c2,cY,c9){var c4="idgoal=0",c5,cZ=new Date(),c7=[],c8,c3=String(c1).length;if(c3){c4+="&ec_id="+s(c1);c5=Math.round(cZ.getTime()/1000)}c4+="&revenue="+c0;if(String(c6).length){c4+="&ec_st="+c6}if(String(c2).length){c4+="&ec_tx="+c2}if(String(cY).length){c4+="&ec_sh="+cY}if(String(c9).length){c4+="&ec_dt="+c9}if(cI){for(c8 in cI){if(Object.prototype.hasOwnProperty.call(cI,c8)){if(!H(cI[c8][1])){cI[c8][1]=""}if(!H(cI[c8][2])){cI[c8][2]=""}if(!H(cI[c8][3])||String(cI[c8][3]).length===0){cI[c8][3]=0}if(!H(cI[c8][4])||String(cI[c8][4]).length===0){cI[c8][4]=1}c7.push(cI[c8])}}c4+="&ec_items="+s(JSON_PIWIK.stringify(c7))}c4=cf(c4,ai,"ecommerce",c5);br(c4,bv);if(c3){cI={}}}function bK(cY,c2,c1,c0,cZ,c3){if(String(cY).length&&H(c2)){bf(cY,c2,c1,c0,cZ,c3)}}function bg(cY){if(H(cY)){bf("",cY,"","","","")}}function bL(cZ,c1,c0){aC=a6();
var cY=cf("action_name="+s(af(cZ||a8)),c1,"log");br(cY,bv,c0)}function aS(c0,cZ){var c1,cY="(^| )(piwik[_-]"+cZ;if(c0){for(c1=0;c1<c0.length;c1++){cY+="|"+c0[c1]}}cY+=")( |$)";return new RegExp(cY)}function aM(cY){return(aw&&cY&&0===String(cY).indexOf(aw))}function cg(c2,cY,c3,cZ){if(aM(cY)){return 0}var c1=aS(bx,"download"),c0=aS(aZ,"link"),c4=new RegExp("\\.("+cN.join("|")+")([?&#]|$)","i");if(c0.test(c2)){return"link"}if(cZ||c1.test(c2)||c4.test(cY)){return"download"}if(c3){return 0}return"link"}function an(cZ){var cY;cY=cZ.parentNode;while(cY!==null&&H(cY)){if(Z.isLinkElement(cZ)){break}cZ=cY;cY=cZ.parentNode}return cZ}function cS(c3){c3=an(c3);if(!Z.hasNodeAttribute(c3,"href")){return}if(!H(c3.href)){return}var c2=Z.getAttributeValueFromNode(c3,"href");if(aM(c2)){return}var cZ=c3.pathname||b6(c3.href);var c4=c3.hostname||d(c3.href);var c5=c4.toLowerCase();var c0=c3.href.replace(c4,c5);var c1=new RegExp("^(javascript|vbscript|jscript|mocha|livescript|ecmascript|mailto|tel):","i");if(!c1.test(c0)){var cY=cg(c3.className,c0,al(c5,cZ),Z.hasNodeAttribute(c3,"download"));
if(cY){return{type:cY,href:c0}}}}function aG(cY,cZ,c0,c1){var c2=u.buildInteractionRequestParams(cY,cZ,c0,c1);if(!c2){return}return cf(c2,null,"contentInteraction")}function cu(c0,c1,c5,cY,cZ){if(!H(c0)){return}if(aM(c0)){return c0}var c3=u.toAbsoluteUrl(c0);var c2="redirecturl="+s(c3)+"&";c2+=aG(c1,c5,cY,(cZ||c0));var c4="&";if(aw.indexOf("?")<0){c4="?"}return aw+c4+c2}function a2(cY,cZ){if(!cY||!cZ){return false}var c0=u.findTargetNode(cY);if(u.shouldIgnoreInteraction(c0)){return false}c0=u.findTargetNodeNoDefault(cY);if(c0&&!S(c0,cZ)){return false}return true}function ch(c0,cZ,c2){if(!c0){return}var cY=u.findParentContentNode(c0);if(!cY){return}if(!a2(cY,c0)){return}var c1=u.buildContentBlock(cY);if(!c1){return}if(!c1.target&&c2){c1.target=c2}return u.buildInteractionRequestParams(cZ,c1.name,c1.piece,c1.target)}function aO(cZ){if(!bV||!bV.length){return false}var cY,c0;for(cY=0;cY<bV.length;cY++){c0=bV[cY];if(c0&&c0.name===cZ.name&&c0.piece===cZ.piece&&c0.target===cZ.target){return true
}}return false}function bq(c1){if(!c1){return false}var c4=u.findTargetNode(c1);if(!c4||u.shouldIgnoreInteraction(c4)){return false}var c5=cS(c4);if(cP&&c5&&c5.type){return false}if(Z.isLinkElement(c4)&&Z.hasNodeAttributeWithValue(c4,"href")){var cY=String(Z.getAttributeValueFromNode(c4,"href"));if(0===cY.indexOf("#")){return false}if(aM(cY)){return true}if(!u.isUrlToCurrentDomain(cY)){return false}var c2=u.buildContentBlock(c1);if(!c2){return}var c0=c2.name;var c6=c2.piece;var c3=c2.target;if(!Z.hasNodeAttributeWithValue(c4,u.CONTENT_TARGET_ATTR)||c4.wasContentTargetAttrReplaced){c4.wasContentTargetAttrReplaced=true;c3=u.toAbsoluteUrl(cY);Z.setAnyAttribute(c4,u.CONTENT_TARGET_ATTR,c3)}var cZ=cu(cY,"click",c0,c6,c3);u.setHrefAttribute(c4,cZ);return true}return false}function aE(cZ){if(!cZ||!cZ.length){return}var cY;for(cY=0;cY<cZ.length;cY++){bq(cZ[cY])}}function aQ(cY){return function(cZ){if(!cY){return}var c2=u.findParentContentNode(cY);var c3;if(cZ){c3=cZ.target||cZ.srcElement}if(!c3){c3=cY
}if(!a2(c2,c3)){return}b1(bv);if(Z.isLinkElement(cY)&&Z.hasNodeAttributeWithValue(cY,"href")&&Z.hasNodeAttributeWithValue(cY,u.CONTENT_TARGET_ATTR)){var c0=Z.getAttributeValueFromNode(cY,"href");if(!aM(c0)&&cY.wasContentTargetAttrReplaced){Z.setAnyAttribute(cY,u.CONTENT_TARGET_ATTR,"")}}var c7=cS(cY);if(aj&&c7&&c7.type){return c7.type}if(bq(c2)){return"href"}var c4=u.buildContentBlock(c2);if(!c4){return}var c1=c4.name;var c8=c4.piece;var c6=c4.target;var c5=aG("click",c1,c8,c6);br(c5,bv);return c5}}function bM(c0){if(!c0||!c0.length){return}var cY,cZ;for(cY=0;cY<c0.length;cY++){cZ=u.findTargetNode(c0[cY]);if(cZ&&!cZ.contentInteractionTrackingSetupDone){cZ.contentInteractionTrackingSetupDone=true;ah(cZ,"click",aQ(cZ))}}}function bl(c0,c1){if(!c0||!c0.length){return[]}var cY,cZ;for(cY=0;cY<c0.length;cY++){if(aO(c0[cY])){c0.splice(cY,1);cY--}else{bV.push(c0[cY])}}if(!c0||!c0.length){return[]}aE(c1);bM(c1);var c2=[];for(cY=0;cY<c0.length;cY++){cZ=cf(u.buildImpressionRequestParams(c0[cY].name,c0[cY].piece,c0[cY].target),undefined,"contentImpressions");
if(cZ){c2.push(cZ)}}return c2}function cl(cZ){var cY=u.collectContent(cZ);return bl(cY,cZ)}function a0(cZ){if(!cZ||!cZ.length){return[]}var cY;for(cY=0;cY<cZ.length;cY++){if(!u.isNodeVisible(cZ[cY])){cZ.splice(cY,1);cY--}}if(!cZ||!cZ.length){return[]}return cl(cZ)}function ay(c0,cY,cZ){var c1=u.buildImpressionRequestParams(c0,cY,cZ);return cf(c1,null,"contentImpression")}function cR(c1,cZ){if(!c1){return}var cY=u.findParentContentNode(c1);var c0=u.buildContentBlock(cY);if(!c0){return}if(!cZ){cZ="Unknown"}return aG(cZ,c0.name,c0.piece,c0.target)}function cx(cZ,c1,cY,c0){return"e_c="+s(cZ)+"&e_a="+s(c1)+(H(cY)?"&e_n="+s(cY):"")+(H(c0)?"&e_v="+s(c0):"")}function am(c0,c2,cY,c1,c4,c3){if(a(String(c0)).length===0||a(String(c2)).length===0){ae("Error while logging event: Parameters `category` and `action` must not be empty or filled with whitespaces");return false}var cZ=cf(cx(c0,c2,cY,c1),c4,"event");br(cZ,bv,c3)}function bT(cY,c1,cZ,c2){var c0=cf("search="+s(cY)+(c1?"&search_cat="+s(c1):"")+(H(cZ)?"&search_count="+cZ:""),c2,"sitesearch");
br(c0,bv)}function cB(cY,c1,c0){var cZ=cf("idgoal="+cY+(c1?"&revenue="+c1:""),c0,"goal");br(cZ,bv)}function cJ(c1,cY,c5,c4,c0){var c3=cY+"="+s(bN(c1));var cZ=ch(c0,"click",c1);if(cZ){c3+="&"+cZ}var c2=cf(c3,c5,"link");br(c2,bv,c4)}function bF(cZ,cY){if(cZ!==""){return cZ+cY.charAt(0).toUpperCase()+cY.slice(1)}return cY}function b2(c3){var c2,cY,c1=["","webkit","ms","moz"],c0;if(!a4){for(cY=0;cY<c1.length;cY++){c0=c1[cY];if(Object.prototype.hasOwnProperty.call(E,bF(c0,"hidden"))){if(E[bF(c0,"visibilityState")]==="prerender"){c2=true}break}}}if(c2){ah(E,c0+"visibilitychange",function cZ(){E.removeEventListener(c0+"visibilitychange",cZ,false);c3()});return}c3()}function b4(cY){if(!cY){return}if(!Z.hasNodeAttribute(cY,"href")){return}var cZ=Z.getAttributeValueFromNode(cY,"href");if(!cZ||aM(cZ)){return}cZ=k(cZ,ao);if(cZ.indexOf("?")>0){cZ+="&"}else{cZ+="?"}var c1=aP().uuid;var c0=aB();cZ=D(cZ,ao,c1+c0);Z.setAnyAttribute(cY,"href",cZ)}function at(c1){var c2=Z.getAttributeValueFromNode(c1,"href");
if(!c2){return false}c2=String(c2);var cZ=c2.indexOf("//")===0||c2.indexOf("http://")===0||c2.indexOf("https://")===0;if(!cZ){return false}var cY=c1.pathname||b6(c1.href);var c0=(c1.hostname||d(c1.href)).toLowerCase();if(al(c0,cY)){if(!cr(cC,J(c0))){return true}return false}return false}function cq(cY){var cZ=cS(cY);if(cZ&&cZ.type){cZ.href=o(cZ.href);cJ(cZ.href,cZ.type,undefined,null,cY);return}if(cv){cY=an(cY);if(at(cY)){b4(cY)}}}function ci(){return E.all&&!E.addEventListener}function cD(cY){var c0=cY.which;var cZ=(typeof cY.button);if(!c0&&cZ!=="undefined"){if(ci()){if(cY.button&1){c0=1}else{if(cY.button&2){c0=3}else{if(cY.button&4){c0=2}}}}else{if(cY.button===0||cY.button==="0"){c0=1}else{if(cY.button&1){c0=2}else{if(cY.button&2){c0=3}}}}}return c0}function bE(cY){switch(cD(cY)){case 1:return"left";case 2:return"middle";case 3:return"right"}}function aT(cY){return cY.target||cY.srcElement}function au(cY){return function(c1){c1=c1||R.event;var c0=bE(c1);var c2=aT(c1);if(c1.type==="click"){var cZ=false;
if(cY&&c0==="middle"){cZ=true}if(c2&&!cZ){cq(c2)}}else{if(c1.type==="mousedown"){if(c0==="middle"&&c2){aI=c0;bo=c2}else{aI=bo=null}}else{if(c1.type==="mouseup"){if(c0===aI&&c2===bo){cq(c2)}aI=bo=null}else{if(c1.type==="contextmenu"){cq(c2)}}}}}}function ak(c0,cZ){var cY=typeof cZ;if(cY==="undefined"){cZ=true}ah(c0,"click",au(cZ),false);if(cZ){ah(c0,"mouseup",au(cZ),false);ah(c0,"mousedown",au(cZ),false);ah(c0,"contextmenu",au(cZ),false)}}function bp(c0,c2){aj=true;var c1,cZ=aS(bn,"ignore"),c3=E.links,cY=null,c4=null;if(c3){for(c1=0;c1<c3.length;c1++){cY=c3[c1];if(!cZ.test(cY.className)){c4=typeof cY.piwikTrackers;if("undefined"===c4){cY.piwikTrackers=[]}if(-1===K(cY.piwikTrackers,c2)){cY.piwikTrackers.push(c2);ak(cY,c0)}}}}}function aJ(cZ,c2,c3){if(b0){return true}b0=true;var c4=false;var c1,c0;function cY(){c4=true}m(function(){function c5(c7){setTimeout(function(){if(!b0){return}c4=false;c3.trackVisibleContentImpressions();c5(c7)},c7)}function c6(c7){setTimeout(function(){if(!b0){return
}if(c4){c4=false;c3.trackVisibleContentImpressions()}c6(c7)},c7)}if(cZ){c1=["scroll","resize"];for(c0=0;c0<c1.length;c0++){if(E.addEventListener){E.addEventListener(c1[c0],cY)}else{R.attachEvent("on"+c1[c0],cY)}}c6(100)}if(c2&&c2>0){c2=parseInt(c2,10);c5(c2)}})}function cp(){var cZ,c1,c2={pdf:"application/pdf",qt:"video/quicktime",realp:"audio/x-pn-realaudio-plugin",wma:"application/x-mplayer2",dir:"application/x-director",fla:"application/x-shockwave-flash",java:"application/x-java-vm",gears:"application/x-googlegears",ag:"application/x-silverlight"};if(!((new RegExp("MSIE")).test(h.userAgent))){if(h.mimeTypes&&h.mimeTypes.length){for(cZ in c2){if(Object.prototype.hasOwnProperty.call(c2,cZ)){c1=h.mimeTypes[c2[cZ]];cO[cZ]=(c1&&c1.enabledPlugin)?"1":"0"}}}if(typeof navigator.javaEnabled!=="unknown"&&H(h.javaEnabled)&&h.javaEnabled()){cO.java="1"}if(y(R.GearsFactory)){cO.gears="1"}cO.cookie=bQ()}var c0=parseInt(U.width,10);var cY=parseInt(U.height,10);cO.res=parseInt(c0,10)+"x"+parseInt(cY,10)
}cp();a7();aD();this.getVisitorId=function(){return aP().uuid};this.getVisitorInfo=function(){return cw()};this.getAttributionInfo=function(){return by()};this.getAttributionCampaignName=function(){return by()[0]};this.getAttributionCampaignKeyword=function(){return by()[1]};this.getAttributionReferrerTimestamp=function(){return by()[2]};this.getAttributionReferrerUrl=function(){return by()[3]};this.setTrackerUrl=function(cY){aw=cY};this.getTrackerUrl=function(){return aw};this.getPiwikUrl=function(){return M(this.getTrackerUrl(),bt)};this.addTracker=function(cY,c0){if(!c0){throw new Error("A siteId must be given to add a new tracker")}if(!H(cY)||null===cY){cY=this.getTrackerUrl()}var cZ=new O(cY,c0);G.push(cZ);return cZ};this.getSiteId=function(){return bR};this.setSiteId=function(cY){bO(cY)};this.setUserId=function(cY){if(!H(cY)||!cY.length){return}bm=cY;bA=bS(bm).substr(0,16)};this.getUserId=function(){return bm};this.setCustomData=function(cY,cZ){if(T(cY)){ai=cY}else{if(!ai){ai={}}ai[cY]=cZ
}};this.getCustomData=function(){return ai};this.setCustomRequestProcessing=function(cY){bW=cY};this.appendToTrackingUrl=function(cY){cG=cY};this.getRequest=function(cY){return cf(cY)};this.addPlugin=function(cY,cZ){b[cY]=cZ};this.setCustomDimension=function(cY,cZ){cY=parseInt(cY,10);if(cY>0){if(!H(cZ)){cZ=""}if(!v(cZ)){cZ=String(cZ)}bb[cY]=cZ}};this.getCustomDimension=function(cY){cY=parseInt(cY,10);if(cY>0&&Object.prototype.hasOwnProperty.call(bb,cY)){return bb[cY]}};this.deleteCustomDimension=function(cY){cY=parseInt(cY,10);if(cY>0){delete bb[cY]}};this.setCustomVariable=function(cZ,cY,c2,c0){var c1;if(!H(c0)){c0="visit"}if(!H(cY)){return}if(!H(c2)){c2=""}if(cZ>0){cY=!v(cY)?String(cY):cY;c2=!v(c2)?String(c2):c2;c1=[cY.slice(0,bh),c2.slice(0,bh)];if(c0==="visit"||c0===2){co();aH[cZ]=c1}else{if(c0==="page"||c0===3){bH[cZ]=c1}else{if(c0==="event"){b7[cZ]=c1}}}}};this.getCustomVariable=function(cZ,c0){var cY;if(!H(c0)){c0="visit"}if(c0==="page"||c0===3){cY=bH[cZ]}else{if(c0==="event"){cY=b7[cZ]
}else{if(c0==="visit"||c0===2){co();cY=aH[cZ]}}}if(!H(cY)||(cY&&cY[0]==="")){return false}return cY};this.deleteCustomVariable=function(cY,cZ){if(this.getCustomVariable(cY,cZ)){this.setCustomVariable(cY,"","",cZ)}};this.deleteCustomVariables=function(cY){if(cY==="page"||cY===3){bH={}}else{if(cY==="event"){b7={}}else{if(cY==="visit"||cY===2){aH={}}}}};this.storeCustomVariablesInCookie=function(){bC=true};this.setLinkTrackingTimer=function(cY){bv=cY};this.getLinkTrackingTimer=function(){return bv};this.setDownloadExtensions=function(cY){if(v(cY)){cY=cY.split("|")}cN=cY};this.addDownloadExtensions=function(cZ){var cY;if(v(cZ)){cZ=cZ.split("|")}for(cY=0;cY<cZ.length;cY++){cN.push(cZ[cY])}};this.removeDownloadExtensions=function(c0){var cZ,cY=[];if(v(c0)){c0=c0.split("|")}for(cZ=0;cZ<cN.length;cZ++){if(K(c0,cN[cZ])===-1){cY.push(cN[cZ])}}cN=cY};this.setDomains=function(cY){ap=v(cY)?[cY]:cY;var c2=false,c0=0,cZ;for(c0;c0<ap.length;c0++){cZ=String(ap[c0]);if(cr(cC,J(cZ))){c2=true;break}var c1=b6(cZ);
if(c1&&c1!=="/"&&c1!=="/*"){c2=true;break}}if(!c2){ap.push(cC)}};this.enableCrossDomainLinking=function(){cv=true};this.disableCrossDomainLinking=function(){cv=false};this.isCrossDomainLinkingEnabled=function(){return cv};this.setCrossDomainLinkingTimeout=function(cY){aR=cY};this.setIgnoreClasses=function(cY){bn=v(cY)?[cY]:cY};this.setRequestMethod=function(cY){cQ=cY||b3};this.setRequestContentType=function(cY){cj=cY||aA};this.setReferrerUrl=function(cY){bc=cY};this.setCustomUrl=function(cY){aW=bG(bz,cY)};this.getCurrentUrl=function(){return aW||bz};this.setDocumentTitle=function(cY){a8=cY};this.setAPIUrl=function(cY){bt=cY};this.setDownloadClasses=function(cY){bx=v(cY)?[cY]:cY};this.setLinkClasses=function(cY){aZ=v(cY)?[cY]:cY};this.setCampaignNameKey=function(cY){cd=v(cY)?[cY]:cY};this.setCampaignKeywordKey=function(cY){bs=v(cY)?[cY]:cY};this.discardHashTag=function(cY){bB=cY};this.setCookieNamePrefix=function(cY){a9=cY;aH=bI()};this.setCookieDomain=function(cY){var cZ=J(cY);if(bk(cZ)){cE=cZ;
a7()}};this.getCookieDomain=function(){return cE};this.hasCookies=function(){return"1"===bQ()};this.setSessionCookie=function(c0,cZ,cY){if(!c0){throw new Error("Missing cookie name")}if(!H(cY)){cY=ca}bi.push(c0);cT(aK(c0),cZ,cY,be,cE)};this.getCookie=function(cZ){var cY=av(aK(cZ));if(cY===0){return null}return cY};this.setCookiePath=function(cY){be=cY;a7()};this.getCookiePath=function(cY){return be};this.setVisitorCookieTimeout=function(cY){ct=cY*1000};this.setSessionCookieTimeout=function(cY){ca=cY*1000};this.getSessionCookieTimeout=function(){return ca};this.setReferralCookieTimeout=function(cY){cM=cY*1000};this.setConversionAttributionFirstReferrer=function(cY){bj=cY};this.disableCookies=function(){ba=true;cO.cookie="0";if(bR){ax()}};this.deleteCookies=function(){ax()};this.setDoNotTrack=function(cZ){var cY=h.doNotTrack||h.msDoNotTrack;cy=cZ&&(cY==="yes"||cY==="1");if(cy){this.disableCookies()}};this.addListener=function(cZ,cY){ak(cZ,cY)};this.enableLinkTracking=function(cZ){cP=true;
var cY=this;b2(function(){p(function(){bp(cZ,cY)})})};this.enableJSErrorTracking=function(){if(cA){return}cA=true;var cY=R.onerror;R.onerror=function(c3,c1,c0,c2,cZ){b2(function(){var c4="JavaScript Errors";var c5=c1+":"+c0;if(c2){c5+=":"+c2}am(c4,c5,c3)});if(cY){return cY(c3,c1,c0,c2,cZ)}return false}};this.disablePerformanceTracking=function(){aU=false};this.setGenerationTimeMs=function(cY){b8=parseInt(cY,10)};this.enableHeartBeatTimer=function(cY){cY=Math.max(cY,1);aX=(cY||15)*1000;if(cF!==null){cV()}};this.disableHeartBeatTimer=function(){bw();if(aX||aF){if(R.removeEventListener){R.removeEventListener("focus",a1,true);R.removeEventListener("blur",aq,true)}else{if(R.detachEvent){R.detachEvent("onfocus",a1);R.detachEvent("onblur",aq)}}}aX=null;aF=false};this.killFrame=function(){if(R.location!==R.top.location){R.top.location=R.location}};this.redirectFile=function(cY){if(R.location.protocol==="file:"){R.location=cY}};this.setCountPreRendered=function(cY){a4=cY};this.trackGoal=function(cY,c0,cZ){b2(function(){cB(cY,c0,cZ)
})};this.trackLink=function(cZ,cY,c1,c0){b2(function(){cJ(cZ,cY,c1,c0)})};this.getNumTrackedPageViews=function(){return ce};this.trackPageView=function(cY,c0,cZ){bV=[];if(L(bR)){b2(function(){V(aw,bt,bR)})}else{b2(function(){ce++;bL(cY,c0,cZ)})}};this.trackAllContentImpressions=function(){if(L(bR)){return}b2(function(){p(function(){var cY=u.findContentNodes();var cZ=cl(cY);cU(cZ,bv)})})};this.trackVisibleContentImpressions=function(cY,cZ){if(L(bR)){return}if(!H(cY)){cY=true}if(!H(cZ)){cZ=750}aJ(cY,cZ,this);b2(function(){m(function(){var c0=u.findContentNodes();var c1=a0(c0);cU(c1,bv)})})};this.trackContentImpression=function(c0,cY,cZ){if(L(bR)){return}c0=a(c0);cY=a(cY);cZ=a(cZ);if(!c0){return}cY=cY||"Unknown";b2(function(){var c1=ay(c0,cY,cZ);br(c1,bv)})};this.trackContentImpressionsWithinNode=function(cY){if(L(bR)||!cY){return}b2(function(){if(b0){m(function(){var cZ=u.findContentNodesWithinNode(cY);var c0=a0(cZ);cU(c0,bv)})}else{p(function(){var cZ=u.findContentNodesWithinNode(cY);var c0=cl(cZ);
cU(c0,bv)})}})};this.trackContentInteraction=function(c0,c1,cY,cZ){if(L(bR)){return}c0=a(c0);c1=a(c1);cY=a(cY);cZ=a(cZ);if(!c0||!c1){return}cY=cY||"Unknown";b2(function(){var c2=aG(c0,c1,cY,cZ);br(c2,bv)})};this.trackContentInteractionNode=function(cZ,cY){if(L(bR)||!cZ){return}b2(function(){var c0=cR(cZ,cY);br(c0,bv)})};this.logAllContentBlocksOnPage=function(){var c0=u.findContentNodes();var cY=u.collectContent(c0);var cZ=typeof console;if(cZ!=="undefined"&&console&&console.log){console.log(cY)}};this.trackEvent=function(cZ,c1,cY,c0,c3,c2){b2(function(){am(cZ,c1,cY,c0,c3,c2)})};this.trackSiteSearch=function(cY,c0,cZ,c1){b2(function(){bT(cY,c0,cZ,c1)})};this.setEcommerceView=function(c1,cY,c0,cZ){if(!H(c0)||!c0.length){c0=""}else{if(c0 instanceof Array){c0=JSON_PIWIK.stringify(c0)}}bH[5]=["_pkc",c0];if(H(cZ)&&String(cZ).length){bH[2]=["_pkp",cZ]}if((!H(c1)||!c1.length)&&(!H(cY)||!cY.length)){return}if(H(c1)&&c1.length){bH[3]=["_pks",c1]}if(!H(cY)||!cY.length){cY=""}bH[4]=["_pkn",cY]};this.addEcommerceItem=function(c2,cY,c0,cZ,c1){if(c2.length){cI[c2]=[c2,cY,c0,cZ,c1]
}};this.trackEcommerceOrder=function(cY,c2,c1,c0,cZ,c3){bK(cY,c2,c1,c0,cZ,c3)};this.trackEcommerceCartUpdate=function(cY){bg(cY)};this.trackRequest=function(cZ,c1,c0,cY){b2(function(){var c2=cf(cZ,c1,cY);br(c2,bv,c0)})};e.trigger("TrackerSetup",[this])}function F(){return{push:aa}}function c(an,am){var ao={};var ak,al;for(ak=0;ak<am.length;ak++){var ai=am[ak];ao[ai]=1;for(al=0;al<an.length;al++){if(an[al]&&an[al][0]){var aj=an[al][0];if(ai===aj){aa(an[al]);delete an[al];if(ao[aj]>1){ae("The method "+aj+' is registered more than once in "_paq" variable. Only the last call has an effect. Please have a look at the multiple Piwik trackers documentation: http://developer.piwik.org/guides/tracking-javascript-guide#multiple-piwik-trackers')}ao[aj]++}}}}return an}var A=["addTracker","disableCookies","setTrackerUrl","setAPIUrl","enableCrossDomainLinking","setCrossDomainLinkingTimeout","setCookiePath","setCookieDomain","setDomains","setUserId","setSiteId","enableLinkTracking","setSecureCookie"];function Y(ai,ak){var aj=new O(ai,ak);
G.push(aj);_paq=c(_paq,A);for(C=0;C<_paq.length;C++){if(_paq[C]){aa(_paq[C])}}_paq=new F();return aj}ah(R,"beforeunload",ac,false);Date.prototype.getTimeAlias=Date.prototype.getTime;e={initialized:false,JSON:JSON_PIWIK,DOM:{addEventListener:function(al,ak,aj,ai){var am=typeof ai;if(am==="undefined"){ai=false}ah(al,ak,aj,ai)},onLoad:m,onReady:p,isNodeVisible:j,isOrWasNodeVisible:u.isNodeVisible},on:function(aj,ai){if(!w[aj]){w[aj]=[]}w[aj].push(ai)},off:function(ak,aj){if(!w[ak]){return}var ai=0;for(ai;ai<w[ak].length;ai++){if(w[ak][ai]===aj){w[ak].splice(ai,1)}}},trigger:function(ak,al,aj){if(!w[ak]){return}var ai=0;for(ai;ai<w[ak].length;ai++){w[ak][ai].apply(aj||R,al)}},addPlugin:function(ai,aj){b[ai]=aj},getTracker:function(ai,aj){if(!H(aj)){aj=this.getAsyncTracker().getSiteId()}if(!H(ai)){ai=this.getAsyncTracker().getTrackerUrl()}return new O(ai,aj)},getAsyncTrackers:function(){return G},addTracker:function(ai,aj){if(!G.length){Y(ai,aj)}else{G[0].addTracker(ai,aj)}},getAsyncTracker:function(aj,am){var al;
if(G&&G.length&&G[0]){al=G[0]}else{return Y(aj,am)}if(!am&&!aj){return al}if((!H(am)||null===am)&&al){am=al.getSiteId()}if((!H(aj)||null===aj)&&al){aj=al.getTrackerUrl()}var ak,ai=0;for(ai;ai<G.length;ai++){ak=G[ai];if(ak&&String(ak.getSiteId())===String(am)&&ak.getTrackerUrl()===aj){return ak}}},retryMissedPluginCalls:function(){var aj=ab;ab=[];var ai=0;for(ai;ai<aj.length;ai++){aa(aj[ai])}}};if(typeof define==="function"&&define.amd){define("piwik",[],function(){return e})}return e}());
/*!!! pluginTrackerHook */
}(function(){function b(){if("object"!==typeof _paq){return false}var c=typeof _paq.length;if("undefined"===c){return false}return !!_paq.length}if(window&&"object"===typeof window.piwikPluginAsyncInit&&window.piwikPluginAsyncInit.length){var a=0;for(a;a<window.piwikPluginAsyncInit.length;a++){if(typeof window.piwikPluginAsyncInit[a]==="function"){window.piwikPluginAsyncInit[a]()}}}if(window&&window.piwikAsyncInit){window.piwikAsyncInit()}if(!window.Piwik.getAsyncTrackers().length){if(b()){window.Piwik.addTracker()
}else{_paq={push:function(c){var d=typeof console;if(d!=="undefined"&&console&&console.error){console.error("_paq.push() was used but Piwik tracker was not initialized before the piwik.js file was loaded. Make sure to configure the tracker via _paq.push before loading piwik.js. Alternatively, you can create a tracker via Piwik.addTracker() manually and then use _paq.push but it may not fully work as tracker methods may not be executed in the correct order.",c)}}}}}window.Piwik.trigger("PiwikInitialized",[]);window.Piwik.initialized=true}());(function(){var a=(typeof AnalyticsTracker);if(a==="undefined"){AnalyticsTracker=window.Piwik}}());if(typeof piwik_log!=="function"){piwik_log=function(b,f,d,g){function a(h){try{if(window["piwik_"+h]){return window["piwik_"+h]}}catch(i){}return}var c,e=window.Piwik.getTracker(d,f);e.setDocumentTitle(b);e.setCustomData(g);c=a("tracker_pause");if(c){e.setLinkTrackingTimer(c)}c=a("download_extensions");if(c){e.setDownloadExtensions(c)}c=a("hosts_alias");
if(c){e.setDomains(c)}c=a("ignore_classes");if(c){e.setIgnoreClasses(c)}e.trackPageView();if(a("install_tracker")){piwik_track=function(i,k,j,h){e.setSiteId(k);e.setTrackerUrl(j);e.trackLink(i,h)};e.enableLinkTracking()}};
/*!! @license-end */
};
================================================
FILE: Vienna/Research Groups • Informatics, TU Vienna_files/uikit.min1.css
================================================
@charset "UTF-8";html,body,div,span,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,abbr,address,cite,code,del,dfn,em,img,ins,kbd,q,samp,small,strong,sub,sup,var,b,i,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,figcaption,figure,footer,header,hgroup,menu,nav,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;outline:0;font-size:100%;vertical-align:baseline;background:transparent;}body{line-height:1;}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block;}nav ul{list-style:none;}blockquote,q{quotes:none;}blockquote:before,blockquote:after,q:before,q:after{content:'';content:none;}a{margin:0;padding:0;font-size:100%;vertical-align:baseline;background:transparent;}ins{background-color:#ff9;color:#000;text-decoration:none;}mark{background-color:#ff9;color:#000;font-style:italic;font-weight:bold;}del{text-decoration:line-through;}abbr[title],dfn[title]{border-bottom:1px dotted;cursor:help;}table{border-collapse:collapse;border-spacing:0;}hr{display:block;height:1px;border:0;border-top:1px solid #ccc;margin:1em 0;padding:0;}input,select{vertical-align:middle;}.clearfix{*zoom:1;}.clearfix:before,.clearfix:after{display:table;content:"";}.clearfix:after{clear:both;}.row-fluid{width:100%;*zoom:1;}.row-fluid:before,.row-fluid:after{display:table;content:"";}.row-fluid:after{clear:both;}.row-fluid>[class*="span"]{float:left;margin-left:2.127659574%;}.row-fluid>[class*="span"]:first-child{margin-left:0;}.row-fluid>.span12{width:99.99999998999999%;}.row-fluid>.span11{width:91.489361693%;}.row-fluid>.span10{width:82.97872339599999%;}.row-fluid>.span9{width:74.468085099%;}.row-fluid>.span8{width:65.95744680199999%;}.row-fluid>.span7{width:57.446808505%;}.row-fluid>.span6{width:48.93617020799999%;}.row-fluid>.span5{width:40.425531911%;}.row-fluid>.span4{width:31.914893614%;}.row-fluid>.span3{width:23.404255317%;}.row-fluid>.span2{width:14.89361702%;}.row-fluid>.span1{width:6.382978723%;}html{overflow-y:scroll;}body{background-color:#eee;color:#666;font-family:Arial,Helvetica,'Helvetica Neue','Liberation Sans',FreeSans,sans-serif;font-size:13px;line-height:18px;}a{border:0;}.uikit-page-attention-container{width:100%;padding:5px 0;border-bottom:2px solid #ffd324;background-color:#fff6bf;color:#514721;}.uikit-page-attention{width:975px;margin:0 auto;}.uikit-page-header{width:975px;margin:0 auto;}.uikit-page-content{width:975px;margin:0 auto;margin-bottom:72px;background-color:white;box-shadow:0 0 15px rgba(0,0,0,0.25);-webkit-box-shadow:0 0 15px rgba(0,0,0,0.25);-moz-box-shadow:0 0 15px rgba(0,0,0,0.25);}.uikit-spinner{display:inline-block;width:16px;height:16px;background-image:url("data:image/gif;base64,R0lGODlhEAAQAPYBALm5udHR0dfX142NjampqcnJycPDw7S0tJ6enpOTk6Wlpebm5tnZ2fr6+vb29ry8vOnp6X9/f8/Pz66urvHx8cbGxt7e3uLi4uzs7Orq6vPz88TExL29ve7u7vf3987Oztvb262trfj4+LCwsOPj48XFxfLy8uXl5ZaWltDQ0ImJifv7+9TU1Kurq+jo6JKSkqenp4uLi6qqqqampru7u9ra2u3t7efn5/X19X5+fsDAwMrKyt/f3+Tk5Lq6uvn5+YiIiM3NzaioqJWVle/v776+vtzc3NPT09bW1svLy9LS0vDw8ODg4LGxsb+/v8LCwoyMjLKysszMzLe3t5+fn7W1teHh4evr6////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQFCgABACwAAAAAEAAQAAAGjMCAcBhIsYjIgMdgCrRaQk9SiQI4YUoM0iNNqU4tLGYlJAcKCIYn9DmRVk2TqxkwcV4Hj1mIIWmJLilJJnsWHIcuSSsnjCYWAIiKbid0ARgWSRhSQx4fMAabZRYpJ2YpIRYrBRYeJidHJiwnZVIkBxgpKSYliSt7ASsAgrkBFgW/ZWpFgitvU0MuiUlBACH5BAUKAAAALAAAAAAQABAAAAaEQIBwCBCAiEhhQQMIhQAdjicJQHCaz9FgOhSJionMKHQZFABf4YcAEh0Ai0VB4e1wNRsr0uOxIzMCSV5DFxuGHYIdHRkeFwaGGYmLXFAXSYhIASEbaUIiCyAZaSAcFyIBCxoaHZYeIJhcCxwaAgIeAZh7Bke1ABe2gkdFgR6MVEMZuURBACH5BAUKAAEALAAAAAAQABAAAAeNgAGCgwEghIeCIlIeAVVVAUtPiIIwG42PACiThVRXjicqSgEejAEsTUwBDyxXV1IhHlIqkqM7lYdLMDlVRIRXhoQiO6mCJzs7UkuTpEsixlJSvYhLHs2DS8SEHiKHLA+ih0QnyoI8TyemV8wn3OOJ3FdP2DyF5IfC9Ez0VzzciEzceNATQcTfpiX2CAUCACH5BAUKAAAALAAAAAAQABAAAAeRgACCgwA8PISIAD8sDgAPDwAmG42IPyFBAD6QD0KUgj8/hUJEDwY9QywADpQMPj0/BgxERAEHDgFDG4K3Izuhgw4hQD4mhESHiEE9gy4BzsWIPULTLM3PiRfTQgGDJi6Jv4M/PAapiCZEnhdBLuNEPw7oqumfgrQOPa89noSLy/kAiCxLBKAdgB7fIoUjGI9gIAAh+QQFCgAAACwAAAAAEAAQAAAHjoAAgoMATEyEiIIMHgBPJQBLSj+JADRKACWPJTKMiUxNGJkZCAwAHp0WTwsABUwYGAJOPwIIBYIeApaEPx5NL05LhEuriErEALACDMGIC00hIQwZAtTMhAvQ0YMeGImtiExKh7syOQfM090LSz/t7BIxToOTSxbc3RiTHtaCFhnI3bhR+tEN4C1KhE5RCgQAIfkEBQoAAAAsAAAAABAAEAAAB5aAAIKDACcnhIgADTwOADs7AA4BDYkNBgKOkDtRlIMNlCcPJjtBRDA8kY0AFzsuDQEXJiY1FQ41QkGCi5edgg4PCLWEJi6JAsWCRDw8F6qEoQcHNcrMzoMn0QeovkSJQYeeJzUnvQ0mIUCiyTwmAESqOzCSQwa6vhfmDhcRAamIJ91kAYgCxZqudgBMNCLywCCiT4kABAIAIfkEBQoAAAAsAAAAABAAEAAAB5CAAIKDABA3hIgAKxceAEpKAB4MK4krSTyOkEo0lIOdECWZHSEXkY0ANywdKyyHADxJKzwjLIIrNx+YhB4GMEmngx2JDBCDJjfIwMFFNDQ8JhfJiRAGRUWEK8qCSq7BF8WIIy/XgseNJosXHyGSCKGKtsIwLTcqkB7aHSYA8wAHKNoUnWoBA4AJAwEJsYCUKBAAIfkEBQoAGQAsAAAAABAAEAAABYVgJo4iRp4i1GSCkDnWejbCxbqCIZ9Y4AgMymORacgwFkrGgnE4LoHGBcAQNSAMIqlRmPi2ytPFJHJgzrsRpmIwXMxo1NpQsY3SIgHkZKYYRw4PCBVhZkYKBQsLAQcOGQQSJxIRFwcHEAkuDY4jFAMHGRMEGYKcJIFKExMZFAWmKBkMVSghACH5BAUKAAAALAAAAAAQABAAAAeXgACCgwBERISIgkQrADw8ACtMjIiREI2PPEmTiEsgOExMSxuWK5NLPTgAPUQ4OD0CKz1Pj5BEq5QBNAKpgytLiT2/gr5LvJxSSUk9K6w4m4NEyMqDmc8AIJw0OTDCkDhPBEm8TyoBOCFSEBAgDys8IQKCOL8BKj1TUwBU2KWEOCg0AOADsIGAsUHffjXJt8RcIkIgsCUKBAAh+QQFCgABACwAAAAAEAAQAAAHkIABgoMBGhqEiIKHATc3ghmJgjcYjCQBJEiRAQ4kK40aR5SEDhgrARkaDisYRqc7loKki4RIBkamhLiEN7NHQr+whKAfRzdIv0LBg6BHH5CSH4lGoooAQCGzmzsjHw6CBkNHDgdHGRlGBpcArZveRwk3BkUYQq3eo0JFAQD6HyO6gxxsOFQEQKEjABORYIcoEAAh+QQFCgAAACwAAAAAEAAQAAAGi0CAcAjA4YhI4RFgswEaziTz2ARkLEic6enM2HC1baMh1MVSDdMYemMKMkLTITdDNiypC3l4KeyHX0MCIYRtSCY1Am81hCOGRIiKUUJoSDeTACYcLwdLQg0pNDVLFQgCDRwCJjYXFQ03OlhFZDUIGRUVNiEXT39FMhUAOjoAob6fH1u4RTXHSBe8SUEAIfkEBQoAAQAsAAAAABAAEAAAB5CAAYKDASsrhIgBDg9EARQUgpCJDlBVjg6OC4gOmBIRVg4UK6CChwEGQ0cOMDuRGSsUFo2OAEAhkoMLNa+ECxKJFJiCNVXFGZNWFrLEVQCam8lWuBkCiQu4ihsIAMKlAhs1phJC4eBERFZHKxk7VoKcARZCRBISFM6FpqVRrTutNQb0DVohAJI/RRYEWnOXKBAAOw==");background-repeat:no-repeat;vertical-align:text-bottom;}.uikit-page-header-container{height:91px;background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAABbCAIAAAA9YnhPAAAAcElEQVQYV02QQRIEMQgCG/7/5YU9xJi5GZSGigsuGHAlt7jURUY44KLRZhZucYSvv5JTZidnvUe7c6p9R3LaZd6s33pObpAjub3zsKQP9/UJR89yu/0izc3rns367NTRvrfTZ//p8Vnt8BgvxVFd9Ad7hWxbhjcqoQAAAABJRU5ErkJggg==");background-color:red;background:-webkit-gradient(linear,left top,left bottom,from(red),to(#840e12));background:-moz-linear-gradient(top,red,#840e12);filter:"progid:DXImageTransform.Microsoft.gradient(startColorStr='#ff0000',endColorStr='#840e12')";-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorStr='#ff0000',endColorStr='#840e12')";}.uikit-page-logo,.uikit-page-meta,.uikit-page-menu{float:left;}.uikit-page-meta,.uikit-page-menu{min-width:525px;}.uikit-page-meta{padding-left:10px;}.uikit-page-menu{margin-top:27px;}.uikit-page-path{position:relative;clear:left;padding-top:48px;padding-left:48px;}.uikit-page-logo{padding-top:42px;padding-left:15px;}.uikit-page-logo div{float:left;height:49px;background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAxCAIAAACUDVRzAAAAD0lEQVQIHWP4//8/wxDHABHGkm7Qg1wGAAAAAElFTkSuQmCC");}.uikit-page-logo div.uikit-helper-first{width:38px!important;background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAAxBAMAAABEwMa+AAAAMFBMVEUAAAD///////////////////////////////////////////////////////////87TQQwAAAAD3RSTlMA74AQv48w359AUCDPcGCOGQZWAAAAjElEQVR4XtXIoQ3CQBzGUdrrXUI6xI1AcDgkYxAWYIWGCTAkMAC+YZILAo1kjA///30Cy5NvEZXXLtZtkkJ9pHhX4TbCpcZ7CJcabxDvzUuV14vXmZvNnc1NvFG8pbn+Dy+bG368ztzW3Gxub67xRvGyubW5FS9VXhZv5pXKOwhXKu8p3EW4u+IdT4q+xhjpd4TUH/QAAAAASUVORK5CYII=");}.uikit-page-logo div.uikit-helper-last{width:38px!important;background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAAxCAYAAAC27tuNAAAAyUlEQVR42u3QMQ3EMBQE0UAwhEAIBEMwhEAwhDAwBEMxhEAIhA/Bt90WueaKk6bwSNs/7TbnfLShNa1qx0Zofu/RupZZsDfyZMHewMyDua4lFszdxlFgLrQdCPNzLJgbPJirVFhoiQVzFxUWPJgrVFinwh4ezO1UWKbCrgVbsAVbsAX7D6xRYWPBfix4MJeosEKFNSrs5sHcToU1Kiy0xIK5CwjzayyYazyYK1RYaAcQZhwQZhwPZlzlwdzQMgv2BhYezIXWtVM7PjpSDlhHtae+AAAAAElFTkSuQmCC");}.uikit-page-logo img{position:relative;z-index:1000;left:-5px;}.uikit-page-path{color:#999;font-size:11px;line-height:16px;}.uikit-page-path a{color:black;text-decoration:none;border-bottom:1px dotted #ed1c24;}.uikit-page-path a:active{border-bottom-style:dotted;}.uikit-page-path a:hover,.uikit-page-path a:focus{color:#ed1c24;border-bottom-style:solid;border-bottom-color:#ed1c24;}.uikit-page-path a{color:#666;border-bottom-color:#999;}.uikit-page-path a:hover,.uikit-page-path a:focus{border-bottom-color:#ed1c24;}.uikit-page-path a{border-bottom:none;}.uikit-page-path a:hover,.uikit-page-path a:focus{text-decoration:underline;border-bottom:none;}.uikit-page-footer{background-color:#d7d7d8;padding:24px 48px;font-size:11px;line-height:16px;}.uikit-page-footer a{color:black;text-decoration:none;border-bottom:1px dotted #ed1c24;}.uikit-page-footer a:active{border-bottom-style:dotted;}.uikit-page-footer a:hover,.uikit-page-footer a:focus{color:#ed1c24;border-bottom-style:solid;border-bottom-color:#ed1c24;}.uikit-page-footer a{color:#666;border-bottom-color:#999;}.uikit-page-footer a:hover,.uikit-page-footer a:focus{border-bottom-color:#ed1c24;}.uikit-page-footer div{float:right;}.uikit-page-footer div p:first-child{padding-right:10px;}.uikit-page-footer p{display:inline-block;}.uikit-article-nav,.uikit-article-content,.uikit-article-sidebar{display:table-cell;vertical-align:top;padding-bottom:24px;}.uikit-article-nav{width:200px;padding-left:38px;padding-right:24px;}.uikit-article-sidebar{width:200px;padding-left:24px;padding-right:0;}.uikit-article-type-content .uikit-article-content{width:879px;padding-left:48px;padding-right:48px;}.uikit-article-type-content .uikit-article-content>table,.uikit-article-type-content .uikit-article-content>form>table{width:846px;}.uikit-article-type-content .uikit-article-content input[type=text],.uikit-article-type-content .uikit-article-content input[type=password],.uikit-article-type-content .uikit-article-content input[type=email],.uikit-article-type-content .uikit-article-content input[type=url],.uikit-article-type-content .uikit-article-content textarea{width:834px;}.uikit-article-type-content .uikit-article-content fieldset input[type=text],.uikit-article-type-content .uikit-article-content fieldset input[type=password],.uikit-article-type-content .uikit-article-content fieldset input[type=email],.uikit-article-type-content .uikit-article-content fieldset input[type=url],.uikit-article-type-content .uikit-article-content fieldset textarea{width:807px;}.uikit-article-type-content .uikit-article-content .uikit-columns .uikit-columns-left,.uikit-article-type-content .uikit-article-content .uikit-columns .uikit-columns-right{width:393px;}.uikit-article-type-content .uikit-article-content .uikit-columns input[type=text],.uikit-article-type-content .uikit-article-content .uikit-columns input[type=password],.uikit-article-type-content .uikit-article-content .uikit-columns input[type=email],.uikit-article-type-content .uikit-article-content .uikit-columns input[type=url],.uikit-article-type-content .uikit-article-content .uikit-columns textarea{width:393px;}.uikit-article-type-content .uikit-article-content .uikit-columns fieldset{width:378px;}.uikit-article-type-content .uikit-article-content .uikit-columns fieldset input[type=text],.uikit-article-type-content .uikit-article-content .uikit-columns fieldset input[type=password],.uikit-article-type-content .uikit-article-content .uikit-columns fieldset input[type=email],.uikit-article-type-content .uikit-article-content .uikit-columns fieldset input[type=url],.uikit-article-type-content .uikit-article-content .uikit-columns fieldset textarea{width:366px;}.uikit-article-type-content .row-fluid.row-fluid-uikit{width:846px;}.uikit-article-type-content fieldset .row-fluid.row-fluid-uikit{width:818px;}.uikit-article-type-content-content .uikit-article-content{width:415px;padding-left:24px;padding-right:48px;}.uikit-article-type-content-content .uikit-article-content>table,.uikit-article-type-content-content .uikit-article-content>form>table{width:382px;}.uikit-article-type-content-content .uikit-article-content input[type=text],.uikit-article-type-content-content .uikit-article-content input[type=password],.uikit-article-type-content-content .uikit-article-content input[type=email],.uikit-article-type-content-content .uikit-article-content input[type=url],.uikit-article-type-content-content .uikit-article-content textarea{width:370px;}.uikit-article-type-content-content .uikit-article-content fieldset input[type=text],.uikit-article-type-content-content .uikit-article-content fieldset input[type=password],.uikit-article-type-content-content .uikit-article-content fieldset input[type=email],.uikit-article-type-content-content .uikit-article-content fieldset input[type=url],.uikit-article-type-content-content .uikit-article-content fieldset textarea{width:343px;}.uikit-article-type-content-content .uikit-article-content .uikit-columns .uikit-columns-left,.uikit-article-type-content-content .uikit-article-content .uikit-columns .uikit-columns-right{width:161px;}.uikit-article-type-content-content .uikit-article-content .uikit-columns input[type=text],.uikit-article-type-content-content .uikit-article-content .uikit-columns input[type=password],.uikit-article-type-content-content .uikit-article-content .uikit-columns input[type=email],.uikit-article-type-content-content .uikit-article-content .uikit-columns input[type=url],.uikit-article-type-content-content .uikit-article-content .uikit-columns textarea{width:161px;}.uikit-article-type-content-content .uikit-article-content .uikit-columns fieldset{width:146px;}.uikit-article-type-content-content .uikit-article-content .uikit-columns fieldset input[type=text],.uikit-article-type-content-content .uikit-article-content .uikit-columns fieldset input[type=password],.uikit-article-type-content-content .uikit-article-content .uikit-columns fieldset input[type=email],.uikit-article-type-content-content .uikit-article-content .uikit-columns fieldset input[type=url],.uikit-article-type-content-content .uikit-article-content .uikit-columns fieldset textarea{width:134px;}.uikit-article-type-content-content .uikit-article-content:first-child{padding-left:48px;padding-right:24px;border-right:1px solid #f1f1f1;}.uikit-article-type-content-content .row-fluid.row-fluid-uikit{width:382px;}.uikit-article-type-content-content fieldset .row-fluid.row-fluid-uikit{width:354px;}.uikit-article-type-content-sidebar .uikit-article-content{width:678px;padding-left:48px;padding-right:24px;border-right:1px solid #f1f1f1;}.uikit-article-type-content-sidebar .uikit-article-content>table,.uikit-article-type-content-sidebar .uikit-article-content>form>table{width:645px;}.uikit-article-type-content-sidebar .uikit-article-content input[type=text],.uikit-article-type-content-sidebar .uikit-article-content input[type=password],.uikit-article-type-content-sidebar .uikit-article-content input[type=email],.uikit-article-type-content-sidebar .uikit-article-content input[type=url],.uikit-article-type-content-sidebar .uikit-article-content textarea{width:633px;}.uikit-article-type-content-sidebar .uikit-article-content fieldset input[type=text],.uikit-article-type-content-sidebar .uikit-article-content fieldset input[type=password],.uikit-article-type-content-sidebar .uikit-article-content fieldset input[type=email],.uikit-article-type-content-sidebar .uikit-article-content fieldset input[type=url],.uikit-article-type-content-sidebar .uikit-article-content fieldset textarea{width:606px;}.uikit-article-type-content-sidebar .uikit-article-content .uikit-columns .uikit-columns-left,.uikit-article-type-content-sidebar .uikit-article-content .uikit-columns .uikit-columns-right{width:292px;}.uikit-article-type-content-sidebar .uikit-article-content .uikit-columns input[type=text],.uikit-article-type-content-sidebar .uikit-article-content .uikit-columns input[type=password],.uikit-article-type-content-sidebar .uikit-article-content .uikit-columns input[type=email],.uikit-article-type-content-sidebar .uikit-article-content .uikit-columns input[type=url],.uikit-article-type-content-sidebar .uikit-article-content .uikit-columns textarea{width:293px;}.uikit-article-type-content-sidebar .uikit-article-content .uikit-columns fieldset{width:278px;}.uikit-article-type-content-sidebar .uikit-article-content .uikit-columns fieldset input[type=text],.uikit-article-type-content-sidebar .uikit-article-content .uikit-columns fieldset input[type=password],.uikit-article-type-content-sidebar .uikit-article-content .uikit-columns fieldset input[type=email],.uikit-article-type-content-sidebar .uikit-article-content .uikit-columns fieldset input[type=url],.uikit-article-type-content-sidebar .uikit-article-content .uikit-columns fieldset textarea{width:266px;}.uikit-article-type-content-sidebar .row-fluid.row-fluid-uikit{width:645px;}.uikit-article-type-content-sidebar fieldset .row-fluid.row-fluid-uikit{width:617px;}.uikit-article-type-nav-content .uikit-article-content{width:665px;padding-left:0;padding-right:48px;}.uikit-article-type-nav-content .uikit-article-content>table,.uikit-article-type-nav-content .uikit-article-content>form>table{width:632px;}.uikit-article-type-nav-content .uikit-article-content input[type=text],.uikit-article-type-nav-content .uikit-article-content input[type=password],.uikit-article-type-nav-content .uikit-article-content input[type=email],.uikit-article-type-nav-content .uikit-article-content input[type=url],.uikit-article-type-nav-content .uikit-article-content textarea{width:620px;}.uikit-article-type-nav-content .uikit-article-content fieldset input[type=text],.uikit-article-type-nav-content .uikit-article-content fieldset input[type=password],.uikit-article-type-nav-content .uikit-article-content fieldset input[type=email],.uikit-article-type-nav-content .uikit-article-content fieldset input[type=url],.uikit-article-type-nav-content .uikit-article-content fieldset textarea{width:593px;}.uikit-article-type-nav-content .uikit-article-content .uikit-columns .uikit-columns-left,.uikit-article-type-nav-content .uikit-article-content .uikit-columns .uikit-columns-right{width:286px;}.uikit-article-type-nav-content .uikit-article-content .uikit-columns input[type=text],.uikit-article-type-nav-content .uikit-article-content .uikit-columns input[type=password],.uikit-article-type-nav-content .uikit-article-content .uikit-columns input[type=email],.uikit-article-type-nav-content .uikit-article-content .uikit-columns input[type=url],.uikit-article-type-nav-content .uikit-article-content .uikit-columns textarea{width:286px;}.uikit-article-type-nav-content .uikit-article-content .uikit-columns fieldset{width:271px;}.uikit-article-type-nav-content .uikit-article-content .uikit-columns fieldset input[type=text],.uikit-article-type-nav-content .uikit-article-content .uikit-columns fieldset input[type=password],.uikit-article-type-nav-content .uikit-article-content .uikit-columns fieldset input[type=email],.uikit-article-type-nav-content .uikit-article-content .uikit-columns fieldset input[type=url],.uikit-article-type-nav-content .uikit-article-content .uikit-columns fieldset textarea{width:259px;}.uikit-article-type-nav-content .row-fluid.row-fluid-uikit{width:632px;}.uikit-article-type-nav-content fieldset .row-fluid.row-fluid-uikit{width:604px;}.uikit-article-type-nav-content-sidebar .uikit-article-content{width:464px;padding-left:0;padding-right:24px;border-right:1px solid #f1f1f1;}.uikit-article-type-nav-content-sidebar .uikit-article-content>table,.uikit-article-type-nav-content-sidebar .uikit-article-content>form>table{width:431px;}.uikit-article-type-nav-content-sidebar .uikit-article-content input[type=text],.uikit-article-type-nav-content-sidebar .uikit-article-content input[type=password],.uikit-article-type-nav-content-sidebar .uikit-article-content input[type=email],.uikit-article-type-nav-content-sidebar .uikit-article-content input[type=url],.uikit-article-type-nav-content-sidebar .uikit-article-content textarea{width:419px;}.uikit-article-type-nav-content-sidebar .uikit-article-content fieldset input[type=text],.uikit-article-type-nav-content-sidebar .uikit-article-content fieldset input[type=password],.uikit-article-type-nav-content-sidebar .uikit-article-content fieldset input[type=email],.uikit-article-type-nav-content-sidebar .uikit-article-content fieldset input[type=url],.uikit-article-type-nav-content-sidebar .uikit-article-content fieldset textarea{width:392px;}.uikit-article-type-nav-content-sidebar .uikit-article-content .uikit-columns .uikit-columns-left,.uikit-article-type-nav-content-sidebar .uikit-article-content .uikit-columns .uikit-columns-right{width:185px;}.uikit-article-type-nav-content-sidebar .uikit-article-content .uikit-columns input[type=text],.uikit-article-type-nav-content-sidebar .uikit-article-content .uikit-columns input[type=password],.uikit-article-type-nav-content-sidebar .uikit-article-content .uikit-columns input[type=email],.uikit-article-type-nav-content-sidebar .uikit-article-content .uikit-columns input[type=url],.uikit-article-type-nav-content-sidebar .uikit-article-content .uikit-columns textarea{width:186px;}.uikit-article-type-nav-content-sidebar .uikit-article-content .uikit-columns fieldset{width:171px;}.uikit-article-type-nav-content-sidebar .uikit-article-content .uikit-columns fieldset input[type=text],.uikit-article-type-nav-content-sidebar .uikit-article-content .uikit-columns fieldset input[type=password],.uikit-article-type-nav-content-sidebar .uikit-article-content .uikit-columns fieldset input[type=email],.uikit-article-type-nav-content-sidebar .uikit-article-content .uikit-columns fieldset input[type=url],.uikit-article-type-nav-content-sidebar .uikit-article-content .uikit-columns fieldset textarea{width:159px;}.uikit-article-type-nav-content-sidebar .row-fluid.row-fluid-uikit{width:431px;}.uikit-article-type-nav-content-sidebar fieldset .row-fluid.row-fluid-uikit{width:403px;}.uikit-article-content .uikit-article-header h1{display:block;background-color:transparent;padding-left:0;padding-right:0;font-weight:normal;font-style:normal;color:inherit;}.uikit-article-content .uikit-article-header h1:after{color:inherit;content:"";}.uikit-article-header{margin-bottom:30px;}.uikit-article-header h1{padding-bottom:10px;color:black!important;font-size:28px;line-height:34px;font-weight:normal;}.uikit-article-header p{margin-left:0;margin-bottom:10px;font-family:Georgia,'Times New Roman',Times,'Century Schoolbook L','Liberation Serif',FreeSerif,serif;font-size:16px;line-height:22px;font-style:italic;}.uikit-article-header p a{color:black;text-decoration:none;border-bottom:1px dotted #ed1c24;}.uikit-article-header p a:active{border-bottom-style:dotted;}.uikit-article-header p a:hover,.uikit-article-header p a:focus{color:#ed1c24;border-bottom-style:solid;border-bottom-color:#ed1c24;}.uikit-article-header p:last-child,.uikit-article-header p.uikit-helper-last{padding-bottom:10px;border-bottom:2px dotted #f1f1f1;}.uikit-article-header strong{font-weight:normal;}.uikit-article-content a{color:black;text-decoration:none;border-bottom:1px dotted #ed1c24;}.uikit-article-content a:active{border-bottom-style:dotted;}.uikit-article-content a:hover,.uikit-article-content a:focus{color:#ed1c24;border-bottom-style:solid;border-bottom-color:#ed1c24;}.uikit-article-content p>strong,.uikit-article-content li>strong,.uikit-article-content dd>strong,.uikit-article-content td>strong{font-weight:normal;background-color:#fff6bf;color:#514721;padding:0 3px;}.uikit-article-content h1,.uikit-article-content h5,.uikit-article-content h6,.uikit-article-content blockquote{display:inline-block;background-color:#fff6bf;padding-left:5px;padding-right:5px;font-weight:normal;font-style:normal;color:#ed1c24;}.uikit-article-content h1:after,.uikit-article-content h5:after,.uikit-article-content h6:after,.uikit-article-content blockquote:after{color:#8a1f11;}.uikit-article-content h1:after{content:" [ERROR:Use <h2>instead of <h1>for top-level content headings]";}.uikit-article-content h5:after{content:" [ERROR:Content should not require <h5>headings]";}.uikit-article-content h6:after{content:" [ERROR:Content should not require <h6>headings]";}.uikit-article-content strong em:after{display:inline-block;background-color:#fff6bf;padding-left:5px;padding-right:5px;font-weight:normal;font-style:normal;color:#ed1c24;content:" [ERROR:Do not use <em>inside <strong>]";}.uikit-article-content strong em:after{color:#8a1f11;}.uikit-article-content em strong:after{display:inline-block;background-color:#fff6bf;padding-left:5px;padding-right:5px;font-weight:normal;font-style:normal;color:#ed1c24;content:" [ERROR:Do not use <strong>inside <em>]";}.uikit-article-content em strong:after{color:#8a1f11;}.uikit-article-content blockquote:after{content:" [ERROR:Do not use <blockquote>to indent content]";}.uikit-article-content>h3,.uikit-article-content>form>h3,.uikit-article-content>h4,.uikit-article-content>form>h4,.uikit-article-content>div,.uikit-article-content>form>div,.uikit-article-content>p,.uikit-article-content>form>p,.uikit-article-content>ol,.uikit-article-content>form>ol,.uikit-article-content>ul,.uikit-article-content>form>ul,.uikit-article-content>dl,.uikit-article-content>form>dl,.uikit-article-content>table,.uikit-article-content>form>table,.uikit-article-content>fieldset,.uikit-article-content>form>fieldset,.uikit-article-content>pre,.uikit-article-content>form>pre,.uikit-article-content>iframe,.uikit-article-content>form>iframe{margin-left:33px;}.uikit-article-content h2{clear:both;color:#0070af;font-size:18px;line-height:22px;font-weight:normal;}.uikit-article-content h3,.uikit-article-content th{color:#4b4b4d;font-size:13px;line-height:18px;font-weight:bold;}.uikit-article-content h4{font-size:13px;line-height:18px;font-weight:bold;}.uikit-article-content h2{margin-top:33px;margin-bottom:3px;}.uikit-article-content h2:first-child{margin-top:0;}.uikit-article-content form:first-child div:first-child+h2{margin-top:0;}.uikit-article-content h3,.uikit-article-content h4,.uikit-article-content table,.uikit-article-content p,.uikit-article-content ul,.uikit-article-content ol,.uikit-article-content dl,.uikit-article-content dd,.uikit-article-content pre{margin-bottom:10px;}.uikit-article-content h2+h3,.uikit-article-content h2+p>label{margin-top:8px;}.uikit-article-content li li{margin-left:33px;}.uikit-article-content ol li li{list-style:lower-alpha;}.uikit-article-content ol li li{list-style:lower-alpha;margin-left:33px;}.uikit-article-content ol li li li{list-style:lower-roman;}.uikit-article-content td li{margin-left:17px;}.uikit-article-content dt{font-style:italic;}.uikit-article-content dd{margin-left:33px;}.uikit-article-content table{border-collapse:separate;}.uikit-article-content th{white-space:nowrap;}.uikit-article-content th,.uikit-article-content td{padding:3px 10px;}.uikit-article-content th:first-child,.uikit-article-content td:first-child{padding-left:0;}.uikit-article-content th:last-child,.uikit-article-content td:last-child{padding-right:0;}.uikit-article-content th{padding-top:10px;text-align:left;border-bottom:2px dotted #0070af;}.uikit-article-content tr:first-child th{padding-top:0;}.uikit-article-content td{vertical-align:top;border-bottom:1px solid #f1f1f1;}.uikit-article-content tr:last-child th,.uikit-article-content tr:last-child td{border-width:0;}.uikit-article-content table.uikit-noborder td,.uikit-article-content table.uikit-noborder th{border-bottom-width:0;}.uikit-article-content a.uikit-noborder{border-bottom-width:0;}.uikit-article-content em{font-style:italic;}.uikit-article-content code,.uikit-article-content pre{font-size:12px;}.uikit-article-content pre{padding-left:33px;}.uikit-article-sidebar a{color:black;text-decoration:none;border-bottom:1px dotted #ed1c24;}.uikit-article-sidebar a:active{border-bottom-style:dotted;}.uikit-article-sidebar a:hover,.uikit-article-sidebar a:focus{color:#ed1c24;border-bottom-style:solid;border-bottom-color:#ed1c24;}.uikit-article-sidebar p>strong,.uikit-article-sidebar li>strong,.uikit-article-sidebar dd>strong,.uikit-article-sidebar td>strong{font-weight:normal;background-color:#fff6bf;color:#514721;padding:0 3px;}.uikit-article-sidebar h2{color:black;font-size:13px;line-height:18px;font-weight:bold;}.uikit-article-sidebar>p,.uikit-article-sidebar table,.uikit-article-sidebar ol,.uikit-article-sidebar ul,.uikit-article-sidebar dl{margin-bottom:24px;padding-right:24px;}.uikit-article-sidebar table{padding-right:0;}.uikit-article-sidebar td{padding-right:10px;}.uikit-article-sidebar ul,.uikit-article-sidebar ol{list-style-position:inside;padding-left:13px;text-indent:-11px;}.uikit-article-sidebar ul{list-style-type:circle;}.uikit-article-sidebar ol{text-indent:-15px;}.uikit-article-sidebar dd{margin-bottom:10px;font-size:11px;line-height:16px;color:#999;}.uikit-article-sidebar dd:last-child,.uikit-article-sidebar dd.uikit-helper-last{margin-bottom:0;}input{vertical-align:baseline;}label{display:inline-block;color:#4b4b4d;font-weight:bold;}input[type=radio]+label,input[type=checkbox]+label{display:inline;color:#666;font-weight:normal;}input[type=radio]+label,input[type=checkbox]+label{margin-right:20px;}input[type=radio]+label:last-child,input[type=checkbox]+label:last-child{margin-right:0;}input[type=radio][disabled=disabled]+label,input[type=checkbox][disabled=disabled]+label{color:#999;}optgroup{font-style:normal;}input[type=text][disabled=disabled],input[type=password][disabled=disabled],input[type=email][disabled=disabled],input[type=url][disabled=disabled],textarea[disabled=disabled],select[disabled=disabled]{opacity:.5;box-shadow:none;-webkit-box-shadow:none;-moz-box-shadow:none;}input[type=text],input[type=password],input[type=email],input[type=url],textarea,select{background-color:#fdfdfd;padding:5px;color:#4b4b4d;font-family:Arial,Helvetica,'Helvetica Neue','Liberation Sans',FreeSans,sans-serif;font-size:13px;border:1px solid #e3e3e3;border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;box-shadow:0 0 3px rgba(0,0,0,0.03);-webkit-box-shadow:0 0 3px rgba(0,0,0,0.03);-moz-box-shadow:0 0 3px rgba(0,0,0,0.03);}input[type=text]:focus,input[type=password]:focus,input[type=email]:focus,input[type=url]:focus,textarea:focus,select:focus{background-color:#fafafa;}select{padding-top:3px;padding-bottom:3px;}textarea{height:126px;line-height:18px;resize:vertical;}input[type=reset][disabled=disabled],input[type=button][disabled=disabled],input[type=submit][disabled=disabled]{background-color:#999;color:#666;}input[type=reset],input[type=button],input[type=submit],a.uikit-button{border:none!important;background-color:#4b4b4d;padding:3px 10px;color:white!important;font-family:Arial,Helvetica,'Helvetica Neue','Liberation Sans',FreeSans,sans-serif;font-size:13px;line-height:18px;border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;}input[type=reset]:hover,input[type=reset]:focus,input[type=button]:hover,input[type=button]:focus,input[type=submit]:hover,input[type=submit]:focus,a.uikit-button:hover,a.uikit-button:focus{background-color:black;}input[type=reset]:active,input[type=button]:active,input[type=submit]:active,a.uikit-button:active{background-color:#4b4b4d;color:#999;}a.uikit-button{display:inline-block;}a.uikit-button:hover,a.uikit-button:focus{color:white;border:none;}a.uikit-button:active{color:#999;}fieldset{margin-bottom:10px;border:1px solid #f0f0f0;padding:7px 13px 0 13px;border-radius:7px;background-color:#fafafa;background:-webkit-gradient(linear,left top,left bottom,from(#fafafa),to(#fbfbfb));background:-moz-linear-gradient(top,#fafafa,#fbfbfb);filter:"progid:DXImageTransform.Microsoft.gradient(startColorStr='#fafafa',endColorStr='#fbfbfb')";-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorStr='#fafafa',endColorStr='#fbfbfb')";}fieldset input[type=text],fieldset input[type=password],fieldset input[type=email],fieldset input[type=url],fieldset textarea,fieldset select{background-color:white;}fieldset input[type=text]:focus,fieldset input[type=password]:focus,fieldset input[type=email]:focus,fieldset input[type=url]:focus,fieldset textarea:focus,fieldset select:focus{background-color:#fdfdfd;}fieldset+fieldset{margin-top:10px!important;}.uikit-article-content .row-fluid input[type="text"],.uikit-article-content .row-fluid input[type="password"],.uikit-article-content .row-fluid input[type="email"],.uikit-article-content .row-fluid input[type="url"],.uikit-article-content .row-fluid textarea{width:100%!important;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}::-webkit-input-placeholder{color:#bbb!important;}:-moz-placeholder{color:#bbb!important;}::-moz-placeholder{color:#bbb!important;}:-ms-input-placeholder{color:#bbb!important;}.uikit-bubble-meta .uikit-bubble-content-container,.uikit-bubble-menu .uikit-bubble-content-container,.uikit-bubble-attention .uikit-bubble-content-container{padding-left:10px;border-radius:10px;-webkit-border-radius:10px;-moz-border-radius:10px;border-top-right-radius:13px;-webkit-border-top-right-radius:13px;-moz-border-radius-topright:13px;border-bottom-right-radius:13px;-webkit-border-bottom-right-radius:13px;-moz-border-radius-bottomright:13px;}.uikit-bubble-meta .uikit-bubble-content,.uikit-bubble-menu .uikit-bubble-content,.uikit-bubble-attention .uikit-bubble-content{background-color:#eaebec;padding:10px;}.uikit-bubble-meta,.uikit-bubble-menu{position:relative;float:left;}.uikit-bubble-meta .uikit-bubble-content-container,.uikit-bubble-menu .uikit-bubble-content-container{background-color:#4b4b4d;box-shadow:0 0 15px rgba(0,0,0,0.25);-webkit-box-shadow:0 0 15px rgba(0,0,0,0.25);-moz-box-shadow:0 0 15px rgba(0,0,0,0.25);border-top-left-radius:0;-webkit-border-top-left-radius:0;-moz-border-radius-topleft:0;}.uikit-bubble-meta .uikit-bubble-content,.uikit-bubble-menu .uikit-bubble-content{border-radius:10px;-webkit-border-radius:10px;-moz-border-radius:10px;border-bottom-left-radius:0;-webkit-border-bottom-left-radius:0;-moz-border-radius-bottomleft:0;}.uikit-bubble-attention .uikit-bubble-content-container{background-color:red;background:-webkit-gradient(linear,left top,left bottom,from(red),to(#840e12));background:-moz-linear-gradient(top,red,#840e12);filter:"progid:DXImageTransform.Microsoft.gradient(startColorStr='#ff0000',endColorStr='#840e12')";-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorStr='#ff0000',endColorStr='#840e12')";}.uikit-article-content .uikit-bubble-attention .uikit-bubble-content{border-radius:10px;-webkit-border-radius:10px;-moz-border-radius:10px;border-top-left-radius:0;-webkit-border-top-left-radius:0;-moz-border-radius-topleft:0;border-bottom-left-radius:0;-webkit-border-bottom-left-radius:0;-moz-border-radius-bottomleft:0;}.uikit-bubble-meta .uikit-bubble-content-container,.uikit-bubble-menu .uikit-bubble-content-container,.uikit-page-header:focus .uikit-bubble-content-container{display:none;}.uikit-bubble-meta:hover .uikit-bubble-content-container,.uikit-bubble-meta:focus .uikit-bubble-content-container,.uikit-bubble-menu:hover .uikit-bubble-content-container,.uikit-bubble-menu:focus .uikit-bubble-content-container,.uikit-bubble-meta .uikit-bubble-header:focus+.uikit-bubble-content-container,.uikit-bubble-menu .uikit-bubble-header:focus+.uikit-bubble-content-container{position:absolute;z-index:1000;display:block;}.uikit-bubble-meta .uikit-bubble-header,.uikit-bubble-menu .uikit-bubble-header{display:block;text-decoration:none;cursor:default;padding:5px 10px;color:white;font-weight:normal;letter-spacing:1px;}.uikit-bubble-meta .uikit-bubble-header{text-shadow:#4b4b4d 1px 1px 0;}.uikit-bubble-menu .uikit-bubble-header{text-shadow:black 1px 1px 0;}.uikit-bubble-header:focus,.uikit-bubble-header:focus,.uikit-bubble-meta:hover .uikit-bubble-header,.uikit-bubble-meta:focus .uikit-bubble-header,.uikit-bubble-menu:hover .uikit-bubble-header,.uikit-bubble-menu:focus .uikit-bubble-header{background-color:#4b4b4d;box-shadow:0 0 15px rgba(0,0,0,0.25);-webkit-box-shadow:0 0 15px rgba(0,0,0,0.25);-moz-box-shadow:0 0 15px rgba(0,0,0,0.25);}.uikit-bubble-meta{color:#666;font-size:11px;line-height:16px;}.uikit-bubble-meta:hover .uikit-bubble-header[href^="/"],.uikit-bubble-meta:focus .uikit-bubble-header[href^="/"]{border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;border-top-left-radius:0;-webkit-border-top-left-radius:0;-moz-border-radius-topleft:0;border-top-right-radius:0;-webkit-border-top-right-radius:0;-moz-border-radius-topright:0;}.uikit-bubble-meta.uikit-state-highlight .uikit-bubble-header{background-color:#4b4b4d;box-shadow:0 0 15px rgba(0,0,0,0.25);-webkit-box-shadow:0 0 15px rgba(0,0,0,0.25);-moz-box-shadow:0 0 15px rgba(0,0,0,0.25);border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;border-top-left-radius:0;-webkit-border-top-left-radius:0;-moz-border-radius-topleft:0;border-top-right-radius:0;-webkit-border-top-right-radius:0;-moz-border-radius-topright:0;}.uikit-bubble-meta.uikit-state-highlight:hover .uikit-bubble-header,.uikit-bubble-meta.uikit-state-highlight:focus .uikit-bubble-header{border-radius:0;-webkit-border-radius:0;-moz-border-radius:0;}.uikit-bubble-meta .uikit-bubble-content-container{width:300px;}.uikit-bubble-meta .uikit-bubble-content-container a{color:black;text-decoration:none;border-bottom:1px dotted #ed1c24;}.uikit-bubble-meta .uikit-bubble-content-container a:active{border-bottom-style:dotted;}.uikit-bubble-meta .uikit-bubble-content-container a:hover,.uikit-bubble-meta .uikit-bubble-content-container a:focus{color:#ed1c24;border-bottom-style:solid;border-bottom-color:#ed1c24;}.uikit-bubble-meta .uikit-bubble-content-container a{color:#666;border-bottom-color:#999;}.uikit-bubble-meta .uikit-bubble-content-container a:hover,.uikit-bubble-meta .uikit-bubble-content-container a:focus{border-bottom-color:#ed1c24;}.uikit-bubble-meta form{padding-right:10px;}.uikit-bubble-meta label{font-weight:normal;}.uikit-bubble-meta input[type=text],.uikit-bubble-meta input[type=password]{width:100%;border:none;background:white;border-radius:3px;-webkit-border-radius:3px;-moz-border-radius:3px;}.uikit-bubble-meta input[type=submit],.uikit-bubble-meta input[type=reset],.uikit-bubble-meta input[type=button],.uikit-bubble-meta a.uikit-button{background-color:#666;font-family:Arial,Helvetica,'Helvetica Neue','Liberation Sans',FreeSans,sans-serif;font-size:11px;line-height:16px;letter-spacing:1px;border-radius:3px;-webkit-border-radius:3px;-moz-border-radius:3px;}.uikit-bubble-meta input[type=submit]:hover,.uikit-bubble-meta input[type=submit]:focus,.uikit-bubble-meta input[type=reset]:hover,.uikit-bubble-meta input[type=reset]:focus,.uikit-bubble-meta input[type=button]:hover,.uikit-bubble-meta input[type=button]:focus,.uikit-bubble-meta a.uikit-button:hover,.uikit-bubble-meta a.uikit-button:focus{background-color:#4b4b4d;}.uikit-bubble-meta p{margin-bottom:10px;}.uikit-bubble-meta p:last-child{margin-bottom:0;}#login p:first-of-type{margin-bottom:5px;}#sitemap dl{display:inline-block;margin-bottom:10px;margin-right:10px;vertical-align:top;}#sitemap dl:last-child{margin-bottom:0;}#sitemap dt{color:#4b4b4d;font-weight:bold;}#sitemap dt a{color:#4b4b4d;font-weight:bold;}#sitemap dt a:hover{color:#ed1c24;}.uikit-bubble-menu .uikit-bubble-header{padding:10px 20px;font-size:16px;border-radius:10px;-webkit-border-radius:10px;-moz-border-radius:10px;border-bottom-left-radius:0;-webkit-border-bottom-left-radius:0;-moz-border-radius-bottomleft:0;border-bottom-right-radius:0;-webkit-border-bottom-right-radius:0;-moz-border-radius-bottomright:0;}.uikit-bubble-menu .uikit-bubble-content-container{width:200px;}.uikit-bubble-menu.uikit-bubble-menu-right .uikit-bubble-header{width:55px;}.uikit-bubble-menu.uikit-bubble-menu-right .uikit-bubble-content-container{margin-left:-115px;padding-left:0;padding-right:10px;border-radius:10px;-webkit-border-radius:10px;-moz-border-radius:10px;border-top-right-radius:0;-webkit-border-top-right-radius:0;-moz-border-radius-topright:0;border-top-left-radius:13px;-webkit-border-top-left-radius:13px;-moz-border-radius-topleft:13px;}.uikit-bubble-menu.uikit-bubble-menu-right .uikit-bubble-content{border-bottom-right-radius:0;-webkit-border-bottom-right-radius:0;-moz-border-radius-bottomright:0;}.uikit-bubble-attention{margin-bottom:30px;color:black;}.uikit-bubble-attention a{color:black;text-decoration:none;border-bottom:1px dotted #ed1c24;}.uikit-bubble-attention a:active{border-bottom-style:dotted;}.uikit-bubble-attention a:hover,.uikit-bubble-attention a:focus{color:#ed1c24;border-bottom-style:solid;border-bottom-color:#ed1c24;}.uikit-bubble-attention h2{display:inline-block;margin-top:0!important;margin-left:0!important;color:black!important;}.uikit-bubble-attention h2 strong{color:#ed1c24!important;}.uikit-bubble-attention h2,.uikit-bubble-attention p,.uikit-bubble-attention ul,.uikit-bubble-attention ol{margin-bottom:10px;}.uikit-bubble-attention h2:last-child,.uikit-bubble-attention p:last-child,.uikit-bubble-attention ul:last-child,.uikit-bubble-attention ol:last-child{margin-bottom:0!important;}.uikit-bubble-attention li{margin-left:20px;}.uikit-bubble-attention strong{color:inherit!important;font-weight:bold!important;background-color:inherit!important;padding:0!important;}.uikit-article-sidebar .uikit-bubble-attention h2{display:block!important;}.uikit-bubble-close{float:right;display:block;width:16px;height:16px;margin-left:5px;margin-top:-6px;margin-right:-6px;background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHCAYAAADEUlfTAAAAOUlEQVQIW2Mw0DJIMNAz+K+jo6PHAAQgGsQHiTOAGTAMVQjDCJVoGGYSA7oOsJEodmDTiddOfK4FAMvlOdrIWnB2AAAAAElFTkSuQmCC");background-repeat:no-repeat;background-position:center;opacity:.5;}.uikit-bubble-close:hover,.uikit-bubble-close:focus{opacity:1;cursor:pointer;}.uikit-bubble-nav li{padding:7px 0;border-bottom:2px dotted #ed1c24;}.uikit-bubble-nav li:first-child{padding-top:0;}.uikit-bubble-nav li:last-child,.uikit-bubble-nav li.uikit-helper-last{border-bottom-width:0;padding-bottom:0;}.uikit-bubble-nav a{display:block;color:#666;font-size:11px;line-height:16px;text-decoration:none;text-shadow:rgba(255,255,255,0.25) 1px 1px 0;}.uikit-bubble-nav a strong{display:block;color:#4b4b4d;font-size:13px;line-height:18px;font-weight:bold;text-decoration:none;text-shadow:none;}.uikit-bubble-nav a:hover,.uikit-bubble-nav a:focus{color:#ed1c24;}.uikit-bubble-nav a:hover strong,.uikit-bubble-nav a:focus strong{color:#ed1c24;}.uikit-bubble-menu .uikit-bubble-nav a strong{font-size:16px;line-height:19px;}.uikit-bubble-menu .uikit-bubble-nav a:hover,.uikit-bubble-menu .uikit-bubble-nav a:focus{color:#ed1c24;}.uikit-bubble-menu .uikit-bubble-nav a:hover strong,.uikit-bubble-menu .uikit-bubble-nav a:focus strong{color:#ed1c24;}.uikit-article-nav .uikit-bubble-nav ~ .uikit-bubble-nav{margin-top:12px;}.uikit-article-nav .uikit-bubble-nav{background-color:#eaebec;padding:10px;border-radius:10px;-webkit-border-radius:10px;-moz-border-radius:10px;}.uikit-article-nav .uikit-bubble-nav a strong{font-size:14px;line-height:17px;}.uikit-article-nav .uikit-bubble-nav a:hover,.uikit-article-nav .uikit-bubble-nav a:focus{color:#ed1c24;}.uikit-article-nav .uikit-bubble-nav a:hover strong,.uikit-article-nav .uikit-bubble-nav a:focus strong{color:#ed1c24;}.uikit-article-nav .uikit-bubble-nav .uikit-bubble-nav-back{padding-left:20px;}.uikit-article-nav .uikit-bubble-nav .uikit-bubble-nav-back strong{margin-left:-19px;}.uikit-article-nav .uikit-bubble-nav .uikit-bubble-nav-back strong:before{content:'← ';}.uikit-submit a{margin-left:10px;}.uikit-article-content .uikit-submit a{color:black;text-decoration:none;border-bottom:1px dotted #ed1c24;}.uikit-article-content .uikit-submit a:active{border-bottom-style:dotted;}.uikit-article-content .uikit-submit a:hover,.uikit-article-content .uikit-submit a:focus{color:#ed1c24;border-bottom-style:solid;border-bottom-color:#ed1c24;}.uikit-article-content .uikit-submit a{color:#666;border-bottom-color:#999;}.uikit-article-content .uikit-submit a:hover,.uikit-article-content .uikit-submit a:focus{border-bottom-color:#ed1c24;}.uikit-article-content .uikit-submit a{color:#999;}.uikit-submit-small{text-align:right;margin-top:10px;margin-bottom:-24px!important;}.uikit-submit-small input{font-size:11px;padding:1px 7px;margin-left:3px;opacity:.3;filter:alpha(opacity=30);}.uikit-submit-small input:hover{opacity:1.0;filter:alpha(opacity=100);}.uikit-submit-small a{font-size:11px;}.uikit-icon+.uikit-icon{margin-left:3px!important;}.uikit-icon{border:none!important;}.uikit-icon .ui-icon{display:inline-block;margin-bottom:-5px;opacity:.3;background-image:url("/images/uikit_ui-icons_000000_256x240.png");}.uikit-icon:hover .ui-icon{opacity:1;}.uikit-more{background-color:#f0f0f0;font-size:11px;color:#999!important;border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px;padding:2px 6px 3px 6px;border-bottom-width:0!important;text-shadow:rgba(255,255,255,0.25) 1px 1px 0;}.uikit-more:hover{background-color:#0070af;color:white!important;text-shadow:none;}.uikit-more:active{background-color:#ed1c24;text-shadow:none;}.uikit-rows th{border-bottom:none;}.uikit-rows th:first-child{padding-left:5px;}.uikit-rows td{vertical-align:baseline;}.uikit-rows td p{margin-top:5px;margin-bottom:5px;}.uikit-rows td:first-child{padding-left:5px;}.uikit-rows td:last-child,.uikit-rows td.uikit-helper-last{padding-right:5px;}.uikit-rows tr:hover td,.uikit-rows tr:focus td{background-color:#fafafa;}.uikit-rows.uikit-rows-checkboxes td:first-child{padding-right:0;}.uikit-rows.uikit-rows-actions td:last-child,.uikit-rows.uikit-rows-actions td.uikit-helper-last{white-space:nowrap;border-left:1px solid #f1f1f1;}.uikit-rows.uikit-rows-actions td:last-child a,.uikit-rows.uikit-rows-actions td.uikit-helper-last a{color:#999;border-color:transparent;}.uikit-rows.uikit-rows-actions td:last-child a+a,.uikit-rows.uikit-rows-actions td.uikit-helper-last a+a{margin-left:10px;}.uikit-rows.uikit-rows-actions tr:hover td:last-child a,.uikit-rows.uikit-rows-actions tr:hover td.uikit-helper-last a,.uikit-rows.uikit-rows-actions tr:focus td:last-child a,.uikit-rows.uikit-rows-actions tr:focus td.uikit-helper-last a{color:black;text-decoration:none;border-bottom:1px dotted #ed1c24;}.uikit-rows.uikit-rows-actions tr:hover td:last-child a:active,.uikit-rows.uikit-rows-actions tr:hover td.uikit-helper-last a:active,.uikit-rows.uikit-rows-actions tr:focus td:last-child a:active,.uikit-rows.uikit-rows-actions tr:focus td.uikit-helper-last a:active{border-bottom-style:dotted;}.uikit-rows.uikit-rows-actions tr:hover td:last-child a:hover,.uikit-rows.uikit-rows-actions tr:hover td:last-child a:focus,.uikit-rows.uikit-rows-actions tr:hover td.uikit-helper-last a:hover,.uikit-rows.uikit-rows-actions tr:hover td.uikit-helper-last a:focus,.uikit-rows.uikit-rows-actions tr:focus td:last-child a:hover,.uikit-rows.uikit-rows-actions tr:focus td:last-child a:focus,.uikit-rows.uikit-rows-actions tr:focus td.uikit-helper-last a:hover,.uikit-rows.uikit-rows-actions tr:focus td.uikit-helper-last a:focus{color:#ed1c24;border-bottom-style:solid;border-bottom-color:#ed1c24;}.uikit-rows.uikit-rows-actions.uikit-rows-actions-noborder td:last-child,.uikit-rows.uikit-rows-actions.uikit-rows-actions-noborder td.uikit-helper-last{border-left-width:0;}.uikit-rows.uikit-rows-fixed{table-layout:fixed;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}.uikit-rows.uikit-rows-fixed td,.uikit-rows.uikit-rows-fixed p,.uikit-rows.uikit-rows-fixed span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis;}th.uikit-rows-border,td.uikit-rows-border{border-left:1px solid #f1f1f1!important;}textarea.uikit-title{height:36px;}.uikit-article-content .row-fluid textarea.uikit-title{height:48px;}h2.uikit-step span{display:inline-block;width:27px;background-color:#0070af;padding:2px 0;color:white;text-align:center;border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;}.uikit-box{border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;color:#666;background-color:#eaebec;padding:10px;}.uikit-box h3{background-color:#eaebec;border-bottom:1px solid #dfdfdf;border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;border-bottom-left-radius:0;-webkit-border-bottom-left-radius:0;-moz-border-radius-bottomleft:0;border-bottom-right-radius:0;-webkit-border-bottom-right-radius:0;-moz-border-radius-bottomright:0;margin:-10px -10px 5px -10px;padding:5px 10px;}.uikit-box p:last-child,.uikit-box p.uikit-helper-last{margin-bottom:0;}.uikit-box.uikit-box-header{background-color:#f9f9f9;}.uikit-tabs{border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;text-shadow:rgba(255,255,255,0.25) 1px 1px 0;margin-left:0!important;margin-top:33px;margin-bottom:1.25em!important;background-color:#f1f1f1;padding:.33em 0;color:#999;font-size:16px;list-style:none;}.uikit-tabs li{padding:6px 13px;display:inline;}.uikit-tabs .uikit-state-highlight{border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;text-shadow:none;background-color:#0070af;color:white;}.uikit-tabs .uikit-state-highlight a,.uikit-tabs .uikit-state-highlight a:hover{color:white;}.uikit-tabs a{color:auto;text-decoration:underline;border:none;}.uikit-tabs a:active{border:none;}.uikit-tabs a:hover,.uikit-tabs a:focus{color:auto;border:none;}.uikit-tabs a{text-decoration:none;color:#999;}.uikit-tabs a:hover{color:#0070af;}.uikit-hero{margin-bottom:33px;margin-left:0!important;border-radius:10px;-webkit-border-radius:10px;-moz-border-radius:10px;background-color:#f6f6f6;padding:33px;}.uikit-hero h1{display:block;background-color:transparent;padding-left:0;padding-right:0;font-weight:normal;font-style:normal;color:inherit;font-size:32px;line-height:38px;letter-spacing:-1px;color:black;margin-bottom:12px;}.uikit-hero h1:after{color:inherit;content:"";}.uikit-hero p{font-size:18px;line-height:27px;color:#0070af;}.uikit-hero p:last-child{margin-bottom:0;}span.uikit-state-small{font-size:11px;}span.uikit-state-normal{font-size:13px;font-weight:normal;}.uikit-state-weak{color:#999;}.uikit-state-weak a{color:black;text-decoration:none;border-bottom:1px dotted #ed1c24;}.uikit-state-weak a:active{border-bottom-style:dotted;}.uikit-state-weak a:hover,.uikit-state-weak a:focus{color:#ed1c24;border-bottom-style:solid;border-bottom-color:#ed1c24;}.uikit-state-weak a{color:#666;border-bottom-color:#999;}.uikit-state-weak a:hover,.uikit-state-weak a:focus{border-bottom-color:#ed1c24;}.uikit-state-weak a{color:#999;}input+.uikit-state-weak,textarea+.uikit-state-weak,select+.uikit-state-weak,.mceEditor+.uikit-state-weak{padding-left:4px;display:block;font-size:11px;line-height:16px;}.uikit-state-weak.uikit-state-weak-inline{display:inline;padding-left:0;}.uikit-page-path .uikit-state-weak a,.uikit-page-path .uikit-state-weak a:hover,.uikit-page-path .uikit-state-weak a:focus{border-bottom:none;color:#999;}.uikit-page-path .uikit-state-weak a:hover,.uikit-page-path .uikit-state-weak a:focus{text-decoration:underline;}span.uikit-state-neutral{padding:0 3px;}.uikit-state-outdent{margin-left:-33px;}.uikit-bubble-menu.uikit-state-highlight .uikit-bubble-header{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAAFCAYAAACTphZWAAAALUlEQVQImWNgQAP///9nBuIMEI0uh03hkv8QsAynBjSF/3FqwKEQUwMBhSgaAJVjfjZXdXuZAAAAAElFTkSuQmCC");background-repeat:no-repeat;background-position:bottom center;}.uikit-bubble-menu.uikit-state-highlight:hover .uikit-bubble-header,.uikit-bubble-menu.uikit-state-highlight:focus .uikit-bubble-header{background-image:none;}.uikit-bubble-attention.uikit-state-highlight .uikit-bubble-content{background-color:#fff6bf;color:#514721;}.uikit-bubble-attention.uikit-state-highlight .uikit-bubble-content h2{color:#514721!important;}span.uikit-state-highlight{background-color:#fff6bf;color:#514721;padding:0 3px;}.uikit-box.uikit-state-highlight,.uikit-box h3.uikit-state-highlight{border-color:#ffd324;background-color:#fff6bf;color:#514721;}.uikit-bubble-attention.uikit-state-error .uikit-bubble-content{background-color:#fbe3e4;color:#8a1f11;}.uikit-bubble-attention.uikit-state-error .uikit-bubble-content h2{color:#8a1f11!important;}span.uikit-state-error{background-color:#fbe3e4;color:#8a1f11;padding:0 3px;}.uikit-box.uikit-state-error,.uikit-box h3.uikit-state-error{border-color:#fbc2c4;background-color:#fbe3e4;color:#8a1f11;}label.uikit-state-error{color:#ed1c24;font-weight:bold;}.uikit-bubble-attention.uikit-state-success .uikit-bubble-content{background-color:#e6efc2;color:#264409;}span.uikit-state-success{background-color:#e6efc2;color:#264409;padding:0 3px;}.uikit-box.uikit-state-success,.uikit-box h3.uikit-state-success{border-color:#c6d880;background-color:#e6efc2;color:#264409;}label .uikit-state-required{color:#ed1c24;font-weight:bold;}.uikit-helper-hidden{display:none;}.translation_missing{display:inline-block;background-color:#fff6bf;padding-left:5px;padding-right:5px;font-weight:normal;font-style:normal;color:#ed1c24;}.translation_missing:after{color:#8a1f11;}.translation_missing:after{content:" [ERROR:Translation missing]";}.debug_dump{display:inline-block;margin-bottom:10px;background-color:#eaebec;padding:10px!important;font-family:Menlo,Consolas,'Courier New',Courier,'Liberation Mono',FreeMono,monospace;font-size:11px;border-radius:10px;-webkit-border-radius:10px;-moz-border-radius:10px;}
================================================
FILE: Vienna/Research Groups • Informatics, TU Vienna_files/uikit.min2.css
================================================
abbr,address,article,aside,audio,b,blockquote,body,canvas,caption,cite,code,dd,del,details,dfn,div,dl,dt,em,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,p,pre,q,samp,section,small,span,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,ul,var,video{background:transparent;border:0;font-size:100%;margin:0;outline:0;padding:0;vertical-align:baseline}body{line-height:1}blockquote,q{quotes:none}blockquote::after,blockquote::before,q::after,q::before{content:'';content:none}a{background:transparent;font-size:100%;margin:0;padding:0;vertical-align:baseline}ins{background-color:#ff9;color:#000;text-decoration:none}mark{background-color:#ff9;color:#000;font-weight:bold}del{text-decoration:line-through}abbr[title],dfn[title]{border-bottom:1px dotted;cursor:help}table{border-collapse:collapse;border-spacing:0}hr{border:0;border-top:1px solid #ccc;height:1px;margin:1em 0;padding:0}article,aside,details,figcaption,figure,footer,header,hgroup,hr,menu,nav,section{display:block}input,select{vertical-align:middle}.row-fluid{width:100%}.clearfix::before,.row-fluid::before{content:"";display:table}.clearfix::after,.row-fluid::after{clear:both;content:"";display:table}.row-fluid>[class*=span]{float:left;margin-left:2.127659574%}.row-fluid>[class*=span]:first-child{margin-left:0}.row-fluid>.span12{width:99.99999998999999%}.row-fluid>.span11{width:91.489361693%}.row-fluid>.span10{width:82.97872339599999%}.row-fluid>.span9{width:74.468085099%}.row-fluid>.span8{width:65.95744680199999%}.row-fluid>.span7{width:57.446808505%}.row-fluid>.span6{width:48.93617020799999%}.row-fluid>.span5{width:40.425531911%}.row-fluid>.span4{width:31.914893614%}.row-fluid>.span3{width:23.404255317%}.row-fluid>.span2{width:14.89361702%}.row-fluid>.span1{width:6.382978723%}html{overflow-y:scroll}body{background-color:#eee;color:#666}a{border:0}.uikit-page-attention-container{background-color:#fff6bf;border-bottom:2px solid #ffd324;color:#514721;padding:5px 0;width:100%}.uikit-page-attention,.uikit-page-header{margin:0 auto;width:975px}.uikit-page-content{background-color:white;margin:0 auto;margin-bottom:72px;width:975px}.uikit-spinner{background-image:url("data:image/gif;base64,R0lGODlhEAAQAPYBALm5udHR0dfX142NjampqcnJycPDw7S0tJ6enpOTk6Wlpebm5tnZ2fr6+vb29ry8vOnp6X9/f8/Pz66urvHx8cbGxt7e3uLi4uzs7Orq6vPz88TExL29ve7u7vf3987Oztvb262trfj4+LCwsOPj48XFxfLy8uXl5ZaWltDQ0ImJifv7+9TU1Kurq+jo6JKSkqenp4uLi6qqqqampru7u9ra2u3t7efn5/X19X5+fsDAwMrKyt/f3+Tk5Lq6uvn5+YiIiM3NzaioqJWVle/v776+vtzc3NPT09bW1svLy9LS0vDw8ODg4LGxsb+/v8LCwoyMjLKysszMzLe3t5+fn7W1teHh4evr6////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQFCgABACwAAAAAEAAQAAAGjMCAcBhIsYjIgMdgCrRaQk9SiQI4YUoM0iNNqU4tLGYlJAcKCIYn9DmRVk2TqxkwcV4Hj1mIIWmJLilJJnsWHIcuSSsnjCYWAIiKbid0ARgWSRhSQx4fMAabZRYpJ2YpIRYrBRYeJidHJiwnZVIkBxgpKSYliSt7ASsAgrkBFgW/ZWpFgitvU0MuiUlBACH5BAUKAAAALAAAAAAQABAAAAaEQIBwCBCAiEhhQQMIhQAdjicJQHCaz9FgOhSJionMKHQZFABf4YcAEh0Ai0VB4e1wNRsr0uOxIzMCSV5DFxuGHYIdHRkeFwaGGYmLXFAXSYhIASEbaUIiCyAZaSAcFyIBCxoaHZYeIJhcCxwaAgIeAZh7Bke1ABe2gkdFgR6MVEMZuURBACH5BAUKAAEALAAAAAAQABAAAAeNgAGCgwEghIeCIlIeAVVVAUtPiIIwG42PACiThVRXjicqSgEejAEsTUwBDyxXV1IhHlIqkqM7lYdLMDlVRIRXhoQiO6mCJzs7UkuTpEsixlJSvYhLHs2DS8SEHiKHLA+ih0QnyoI8TyemV8wn3OOJ3FdP2DyF5IfC9Ez0VzzciEzceNATQcTfpiX2CAUCACH5BAUKAAAALAAAAAAQABAAAAeRgACCgwA8PISIAD8sDgAPDwAmG42IPyFBAD6QD0KUgj8/hUJEDwY9QywADpQMPj0/BgxERAEHDgFDG4K3Izuhgw4hQD4mhESHiEE9gy4BzsWIPULTLM3PiRfTQgGDJi6Jv4M/PAapiCZEnhdBLuNEPw7oqumfgrQOPa89noSLy/kAiCxLBKAdgB7fIoUjGI9gIAAh+QQFCgAAACwAAAAAEAAQAAAHjoAAgoMATEyEiIIMHgBPJQBLSj+JADRKACWPJTKMiUxNGJkZCAwAHp0WTwsABUwYGAJOPwIIBYIeApaEPx5NL05LhEuriErEALACDMGIC00hIQwZAtTMhAvQ0YMeGImtiExKh7syOQfM090LSz/t7BIxToOTSxbc3RiTHtaCFhnI3bhR+tEN4C1KhE5RCgQAIfkEBQoAAAAsAAAAABAAEAAAB5aAAIKDACcnhIgADTwOADs7AA4BDYkNBgKOkDtRlIMNlCcPJjtBRDA8kY0AFzsuDQEXJiY1FQ41QkGCi5edgg4PCLWEJi6JAsWCRDw8F6qEoQcHNcrMzoMn0QeovkSJQYeeJzUnvQ0mIUCiyTwmAESqOzCSQwa6vhfmDhcRAamIJ91kAYgCxZqudgBMNCLywCCiT4kABAIAIfkEBQoAAAAsAAAAABAAEAAAB5CAAIKDABA3hIgAKxceAEpKAB4MK4krSTyOkEo0lIOdECWZHSEXkY0ANywdKyyHADxJKzwjLIIrNx+YhB4GMEmngx2JDBCDJjfIwMFFNDQ8JhfJiRAGRUWEK8qCSq7BF8WIIy/XgseNJosXHyGSCKGKtsIwLTcqkB7aHSYA8wAHKNoUnWoBA4AJAwEJsYCUKBAAIfkEBQoAGQAsAAAAABAAEAAABYVgJo4iRp4i1GSCkDnWejbCxbqCIZ9Y4AgMymORacgwFkrGgnE4LoHGBcAQNSAMIqlRmPi2ytPFJHJgzrsRpmIwXMxo1NpQsY3SIgHkZKYYRw4PCBVhZkYKBQsLAQcOGQQSJxIRFwcHEAkuDY4jFAMHGRMEGYKcJIFKExMZFAWmKBkMVSghACH5BAUKAAAALAAAAAAQABAAAAeXgACCgwBERISIgkQrADw8ACtMjIiREI2PPEmTiEsgOExMSxuWK5NLPTgAPUQ4OD0CKz1Pj5BEq5QBNAKpgytLiT2/gr5LvJxSSUk9K6w4m4NEyMqDmc8AIJw0OTDCkDhPBEm8TyoBOCFSEBAgDys8IQKCOL8BKj1TUwBU2KWEOCg0AOADsIGAsUHffjXJt8RcIkIgsCUKBAAh+QQFCgABACwAAAAAEAAQAAAHkIABgoMBGhqEiIKHATc3ghmJgjcYjCQBJEiRAQ4kK40aR5SEDhgrARkaDisYRqc7loKki4RIBkamhLiEN7NHQr+whKAfRzdIv0LBg6BHH5CSH4lGoooAQCGzmzsjHw6CBkNHDgdHGRlGBpcArZveRwk3BkUYQq3eo0JFAQD6HyO6gxxsOFQEQKEjABORYIcoEAAh+QQFCgAAACwAAAAAEAAQAAAGi0CAcAjA4YhI4RFgswEaziTz2ARkLEic6enM2HC1baMh1MVSDdMYemMKMkLTITdDNiypC3l4KeyHX0MCIYRtSCY1Am81hCOGRIiKUUJoSDeTACYcLwdLQg0pNDVLFQgCDRwCJjYXFQ03OlhFZDUIGRUVNiEXT39FMhUAOjoAob6fH1u4RTXHSBe8SUEAIfkEBQoAAQAsAAAAABAAEAAAB5CAAYKDASsrhIgBDg9EARQUgpCJDlBVjg6OC4gOmBIRVg4UK6CChwEGQ0cOMDuRGSsUFo2OAEAhkoMLNa+ECxKJFJiCNVXFGZNWFrLEVQCam8lWuBkCiQu4ihsIAMKlAhs1phJC4eBERFZHKxk7VoKcARZCRBISFM6FpqVRrTutNQb0DVohAJI/RRYEWnOXKBAAOw==");background-repeat:no-repeat;display:inline-block;height:16px;vertical-align:text-bottom;width:16px}.uikit-page-header-container{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAABbCAIAAAA9YnhPAAAAcElEQVQYV02QQRIEMQgCG/7/5YU9xJi5GZSGigsuGHAlt7jURUY44KLRZhZucYSvv5JTZidnvUe7c6p9R3LaZd6s33pObpAjub3zsKQP9/UJR89yu/0izc3rns367NTRvrfTZ//p8Vnt8BgvxVFd9Ad7hWxbhjcqoQAAAABJRU5ErkJggg==");background-color:red;background:-webkit-gradient(linear,left top,left bottom,from(red),to(#840e12));background:-moz-linear-gradient(top,red,#840e12);height:91px}.uikit-page-menu,.uikit-page-meta{float:left;min-width:525px}.uikit-page-meta{padding-left:10px}.uikit-page-menu{margin-top:27px}.uikit-page-path{clear:left;padding-top:48px;padding-left:48px;position:relative}.uikit-page-logo{float:left;padding-left:15px;padding-top:42px}.uikit-page-logo div{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAxCAIAAACUDVRzAAAAD0lEQVQIHWP4//8/wxDHABHGkm7Qg1wGAAAAAElFTkSuQmCC");float:left;height:49px}.uikit-page-logo div.uikit-helper-first{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAAxBAMAAABEwMa+AAAAMFBMVEUAAAD///////////////////////////////////////////////////////////87TQQwAAAAD3RSTlMA74AQv48w359AUCDPcGCOGQZWAAAAjElEQVR4XtXIoQ3CQBzGUdrrXUI6xI1AcDgkYxAWYIWGCTAkMAC+YZILAo1kjA///30Cy5NvEZXXLtZtkkJ9pHhX4TbCpcZ7CJcabxDvzUuV14vXmZvNnc1NvFG8pbn+Dy+bG368ztzW3Gxub67xRvGyubW5FS9VXhZv5pXKOwhXKu8p3EW4u+IdT4q+xhjpd4TUH/QAAAAASUVORK5CYII=");width:38px!important}.uikit-page-logo div.uikit-helper-last{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAAxCAYAAAC27tuNAAAAyUlEQVR42u3QMQ3EMBQE0UAwhEAIBEMwhEAwhDAwBEMxhEAIhA/Bt90WueaKk6bwSNs/7TbnfLShNa1qx0Zofu/RupZZsDfyZMHewMyDua4lFszdxlFgLrQdCPNzLJgbPJirVFhoiQVzFxUWPJgrVFinwh4ezO1UWKbCrgVbsAVbsAX7D6xRYWPBfix4MJeosEKFNSrs5sHcToU1Kiy0xIK5CwjzayyYazyYK1RYaAcQZhwQZhwPZlzlwdzQMgv2BhYezIXWtVM7PjpSDlhHtae+AAAAAElFTkSuQmCC");width:38px!important}.uikit-page-logo img{left:-5px;position:relative;z-index:1000}.uikit-page-path a:active{border-bottom-style:dotted}.uikit-page-path a{border-bottom:1px dotted #ed1c24;border-bottom-color:#999;border-bottom:none;color:black;color:#666;text-decoration:none}.uikit-page-path a:focus,.uikit-page-path a:hover{border-bottom-color:#ed1c24;border-bottom-style:solid;border-bottom:none;color:#ed1c24;text-decoration:underline}.uikit-page-footer{background-color:#d7d7d8;font-size:11px;line-height:16px;padding:24px 48px}.uikit-page-footer a{border-bottom:1px dotted #ed1c24;color:black;text-decoration:none}.uikit-page-footer a:active{border-bottom-style:dotted}.uikit-page-footer a:focus,.uikit-page-footer a:hover{border-bottom-style:solid;color:#ed1c24}.uikit-page-footer a{border-bottom-color:#999;color:#666}.uikit-page-footer a:focus,.uikit-page-footer a:hover{border-bottom-color:#ed1c24}.uikit-page-footer div{float:right}.uikit-page-footer p{display:inline-block}.uikit-article-content,.uikit-article-nav,.uikit-article-sidebar{display:table-cell;padding-bottom:24px;vertical-align:top}.uikit-article-nav{padding-left:38px;padding-right:24px;width:200px}.uikit-article-sidebar{padding-left:24px;padding-right:0;width:200px}.uikit-article-type-content .uikit-article-content{padding-left:48px;padding-right:48px;width:879px}.uikit-article-type-content .uikit-article-content input[type=email],.uikit-article-type-content .uikit-article-content input[type=password],.uikit-article-type-content .uikit-article-content input[type=text],.uikit-article-type-content .uikit-article-content input[type=url],.uikit-article-type-content .uikit-article-content textarea{width:834px}.uikit-article-type-content .uikit-article-content fieldset input[type=email],.uikit-article-type-content .uikit-article-content fieldset input[type=password],.uikit-article-type-content .uikit-article-content fieldset input[type=text],.uikit-article-type-content .uikit-article-content fieldset input[type=url],.uikit-article-type-content .uikit-article-content fieldset textarea{width:807px}.uikit-article-type-content .uikit-article-content .uikit-columns .uikit-columns-left,.uikit-article-type-content .uikit-article-content .uikit-columns .uikit-columns-right,.uikit-article-type-content .uikit-article-content .uikit-columns input[type=email],.uikit-article-type-content .uikit-article-content .uikit-columns input[type=password],.uikit-article-type-content .uikit-article-content .uikit-columns input[type=text],.uikit-article-type-content .uikit-article-content .uikit-columns input[type=url],.uikit-article-type-content .uikit-article-content .uikit-columns textarea{width:393px}.uikit-article-type-content .uikit-article-content .uikit-columns fieldset{width:378px}.uikit-article-type-content .uikit-article-content .uikit-columns fieldset input[type=email],.uikit-article-type-content .uikit-article-content .uikit-columns fieldset input[type=password],.uikit-article-type-content .uikit-article-content .uikit-columns fieldset input[type=text],.uikit-article-type-content .uikit-article-content .uikit-columns fieldset input[type=url],.uikit-article-type-content .uikit-article-content .uikit-columns fieldset textarea{width:366px}.uikit-article-type-content .row-fluid.row-fluid-uikit,.uikit-article-type-content .uikit-article-content>form>table,.uikit-article-type-content .uikit-article-content>table{width:846px}.uikit-article-type-content fieldset .row-fluid.row-fluid-uikit{width:818px}.uikit-article-type-content-content .uikit-article-content{padding-left:24px;padding-right:48px;width:415px}.uikit-article-type-content-content .uikit-article-content input[type=email],.uikit-article-type-content-content .uikit-article-content input[type=password],.uikit-article-type-content-content .uikit-article-content input[type=text],.uikit-article-type-content-content .uikit-article-content input[type=url],.uikit-article-type-content-content .uikit-article-content textarea{width:370px}.uikit-article-type-content-content .uikit-article-content fieldset input[type=email],.uikit-article-type-content-content .uikit-article-content fieldset input[type=password],.uikit-article-type-content-content .uikit-article-content fieldset input[type=text],.uikit-article-type-content-content .uikit-article-content fieldset input[type=url],.uikit-article-type-content-content .uikit-article-content fieldset textarea{width:343px}.uikit-article-type-content-content .uikit-article-content .uikit-columns .uikit-columns-left,.uikit-article-type-content-content .uikit-article-content .uikit-columns .uikit-columns-right,.uikit-article-type-content-content .uikit-article-content .uikit-columns input[type=email],.uikit-article-type-content-content .uikit-article-content .uikit-columns input[type=password],.uikit-article-type-content-content .uikit-article-content .uikit-columns input[type=text],.uikit-article-type-content-content .uikit-article-content .uikit-columns input[type=url],.uikit-article-type-content-content .uikit-article-content .uikit-columns textarea{width:161px}.uikit-article-type-content-content .uikit-article-content .uikit-columns fieldset{width:146px}.uikit-article-type-content-content .uikit-article-content .uikit-columns fieldset input[type=email],.uikit-article-type-content-content .uikit-article-content .uikit-columns fieldset input[type=password],.uikit-article-type-content-content .uikit-article-content .uikit-columns fieldset input[type=text],.uikit-article-type-content-content .uikit-article-content .uikit-columns fieldset input[type=url],.uikit-article-type-content-content .uikit-article-content .uikit-columns fieldset textarea{width:134px}.uikit-article-type-content-content .row-fluid.row-fluid-uikit,.uikit-article-type-content-content .uikit-article-content>form>table,.uikit-article-type-content-content .uikit-article-content>table{width:382px}.uikit-article-type-content-content fieldset .row-fluid.row-fluid-uikit{width:354px}.uikit-article-type-content-sidebar .uikit-article-content{width:678px}.uikit-article-type-content-content .uikit-article-content:first-child,.uikit-article-type-content-sidebar .uikit-article-content{border-right:1px solid #f1f1f1;padding-right:24px;padding-left:48px}.uikit-article-type-content-sidebar .uikit-article-content input[type=email],.uikit-article-type-content-sidebar .uikit-article-content input[type=password],.uikit-article-type-content-sidebar .uikit-article-content input[type=text],.uikit-article-type-content-sidebar .uikit-article-content input[type=url],.uikit-article-type-content-sidebar .uikit-article-content textarea{width:633px}.uikit-article-type-content-sidebar .uikit-article-content fieldset input[type=email],.uikit-article-type-content-sidebar .uikit-article-content fieldset input[type=password],.uikit-article-type-content-sidebar .uikit-article-content fieldset input[type=text],.uikit-article-type-content-sidebar .uikit-article-content fieldset input[type=url],.uikit-article-type-content-sidebar .uikit-article-content fieldset textarea{width:606px}.uikit-article-type-content-sidebar .uikit-article-content .uikit-columns .uikit-columns-left,.uikit-article-type-content-sidebar .uikit-article-content .uikit-columns .uikit-columns-right{width:292px}.uikit-article-type-content-sidebar .uikit-article-content .uikit-columns input[type=email],.uikit-article-type-content-sidebar .uikit-article-content .uikit-columns input[type=password],.uikit-article-type-content-sidebar .uikit-article-content .uikit-columns input[type=text],.uikit-article-type-content-sidebar .uikit-article-content .uikit-columns input[type=url],.uikit-article-type-content-sidebar .uikit-article-content .uikit-columns textarea{width:293px}.uikit-article-type-content-sidebar .uikit-article-content .uikit-columns fieldset{width:278px}.uikit-article-type-content-sidebar .uikit-article-content .uikit-columns fieldset input[type=email],.uikit-article-type-content-sidebar .uikit-article-content .uikit-columns fieldset input[type=password],.uikit-article-type-content-sidebar .uikit-article-content .uikit-columns fieldset input[type=text],.uikit-article-type-content-sidebar .uikit-article-content .uikit-columns fieldset input[type=url],.uikit-article-type-content-sidebar .uikit-article-content .uikit-columns fieldset textarea{width:266px}.uikit-article-type-content-sidebar .row-fluid.row-fluid-uikit,.uikit-article-type-content-sidebar .uikit-article-content>form>table,.uikit-article-type-content-sidebar .uikit-article-content>table{width:645px}.uikit-article-type-content-sidebar fieldset .row-fluid.row-fluid-uikit{width:617px}.uikit-article-type-nav-content .uikit-article-content{padding-left:0;padding-right:48px;width:665px}.uikit-article-type-nav-content .uikit-article-content input[type=email],.uikit-article-type-nav-content .uikit-article-content input[type=password],.uikit-article-type-nav-content .uikit-article-content input[type=text],.uikit-article-type-nav-content .uikit-article-content input[type=url],.uikit-article-type-nav-content .uikit-article-content textarea{width:620px}.uikit-article-type-nav-content .uikit-article-content fieldset input[type=email],.uikit-article-type-nav-content .uikit-article-content fieldset input[type=password],.uikit-article-type-nav-content .uikit-article-content fieldset input[type=text],.uikit-article-type-nav-content .uikit-article-content fieldset input[type=url],.uikit-article-type-nav-content .uikit-article-content fieldset textarea{width:593px}.uikit-article-type-nav-content .uikit-article-content .uikit-columns .uikit-columns-left,.uikit-article-type-nav-content .uikit-article-content .uikit-columns .uikit-columns-right,.uikit-article-type-nav-content .uikit-article-content .uikit-columns input[type=email],.uikit-article-type-nav-content .uikit-article-content .uikit-columns input[type=password],.uikit-article-type-nav-content .uikit-article-content .uikit-columns input[type=text],.uikit-article-type-nav-content .uikit-article-content .uikit-columns input[type=url],.uikit-article-type-nav-content .uikit-article-content .uikit-columns textarea{width:286px}.uikit-article-type-nav-content .uikit-article-content .uikit-columns fieldset{width:271px}.uikit-article-type-nav-content .uikit-article-content .uikit-columns fieldset input[type=email],.uikit-article-type-nav-content .uikit-article-content .uikit-columns fieldset input[type=password],.uikit-article-type-nav-content .uikit-article-content .uikit-columns fieldset input[type=text],.uikit-article-type-nav-content .uikit-article-content .uikit-columns fieldset input[type=url],.uikit-article-type-nav-content .uikit-article-content .uikit-columns fieldset textarea{width:259px}.uikit-article-type-nav-content .row-fluid.row-fluid-uikit,.uikit-article-type-nav-content .uikit-article-content>form>table,.uikit-article-type-nav-content .uikit-article-content>table{width:632px}.uikit-article-type-nav-content fieldset .row-fluid.row-fluid-uikit{width:604px}.uikit-article-type-nav-content-sidebar .uikit-article-content{border-right:1px solid #f1f1f1;padding-left:0;padding-right:24px;width:464px}.uikit-article-type-nav-content-sidebar .uikit-article-content input[type=email],.uikit-article-type-nav-content-sidebar .uikit-article-content input[type=password],.uikit-article-type-nav-content-sidebar .uikit-article-content input[type=text],.uikit-article-type-nav-content-sidebar .uikit-article-content input[type=url],.uikit-article-type-nav-content-sidebar .uikit-article-content textarea{width:419px}.uikit-article-type-nav-content-sidebar .uikit-article-content fieldset input[type=email],.uikit-article-type-nav-content-sidebar .uikit-article-content fieldset input[type=password],.uikit-article-type-nav-content-sidebar .uikit-article-content fieldset input[type=text],.uikit-article-type-nav-content-sidebar .uikit-article-content fieldset input[type=url],.uikit-article-type-nav-content-sidebar .uikit-article-content fieldset textarea{width:392px}.uikit-article-type-nav-content-sidebar .uikit-article-content .uikit-columns .uikit-columns-left,.uikit-article-type-nav-content-sidebar .uikit-article-content .uikit-columns .uikit-columns-right{width:185px}.uikit-article-type-nav-content-sidebar .uikit-article-content .uikit-columns input[type=email],.uikit-article-type-nav-content-sidebar .uikit-article-content .uikit-columns input[type=password],.uikit-article-type-nav-content-sidebar .uikit-article-content .uikit-columns input[type=text],.uikit-article-type-nav-content-sidebar .uikit-article-content .uikit-columns input[type=url],.uikit-article-type-nav-content-sidebar .uikit-article-content .uikit-columns textarea{width:186px}.uikit-article-type-nav-content-sidebar .uikit-article-content .uikit-columns fieldset{width:171px}.uikit-article-type-nav-content-sidebar .uikit-article-content .uikit-columns fieldset input[type=email],.uikit-article-type-nav-content-sidebar .uikit-article-content .uikit-columns fieldset input[type=password],.uikit-article-type-nav-content-sidebar .uikit-article-content .uikit-columns fieldset input[type=text],.uikit-article-type-nav-content-sidebar .uikit-article-content .uikit-columns fieldset input[type=url],.uikit-article-type-nav-content-sidebar .uikit-article-content .uikit-columns fieldset textarea{width:159px}.uikit-article-type-nav-content-sidebar .row-fluid.row-fluid-uikit,.uikit-article-type-nav-content-sidebar .uikit-article-content>form>table,.uikit-article-type-nav-content-sidebar .uikit-article-content>table{width:431px}.uikit-article-type-nav-content-sidebar fieldset .row-fluid.row-fluid-uikit{width:403px}.uikit-article-content .uikit-article-header h1{color:inherit}.uikit-article-header{margin-bottom:30px}.uikit-article-header h1{color:black!important;font-size:28px;line-height:34px;font-weight:normal;padding-bottom:10px}.uikit-article-header p{font-family:Georgia,'Times New Roman',Times,'Century Schoolbook L','Liberation Serif',FreeSerif,serif;font-size:16px;line-height:22px;font-style:italic;margin-left:0;margin-bottom:10px}.uikit-article-header p.uikit-helper-last,.uikit-article-header p:last-child{border-bottom:2px dotted #f1f1f1;padding-bottom:10px}.uikit-article-header strong{font-weight:normal}.uikit-article-content a{border-bottom:1px dotted #ed1c24;color:black;text-decoration:none}.uikit-article-content a:active{border-bottom-style:dotted}.uikit-article-content a:focus,.uikit-article-content a:hover{border-bottom-style:solid;border-bottom-color:#ed1c24;color:#ed1c24}.uikit-article-content blockquote,.uikit-article-content h1,.uikit-article-content h5,.uikit-article-content h6{background-color:#fff6bf;color:#ed1c24;display:inline-block;font-weight:normal;font-style:normal;padding-left:5px;padding-right:5px}.uikit-article-content h1::after{color:#8a1f11;content:" [ERROR:Use <h2>instead of <h1>for top-level content headings]"}.uikit-article-content h5::after{color:#8a1f11;content:" [ERROR:Content should not require <h5>headings]"}.uikit-article-content h6::after{color:#8a1f11;content:" [ERROR:Content should not require <h6>headings]"}.uikit-article-content strong em::after{content:" [ERROR:Do not use <em>inside <strong>]"}.uikit-article-content em strong::after{content:" [ERROR:Do not use <strong>inside <em>]"}.uikit-article-content em strong::after,.uikit-article-content strong em::after{background-color:#fff6bf;color:#ed1c24;color:#8a1f11;display:inline-block;font-weight:normal;font-style:normal;padding-left:5px;padding-right:5px}.uikit-article-content blockquote::after{color:#8a1f11;content:" [ERROR:Do not use <blockquote>to indent content]"}.uikit-article-content>div,.uikit-article-content>dl,.uikit-article-content>fieldset,.uikit-article-content>form>div,.uikit-article-content>form>dl,.uikit-article-content>form>fieldset,.uikit-article-content>form>h3,.uikit-article-content>form>h4,.uikit-article-content>form>iframe,.uikit-article-content>form>ol,.uikit-article-content>form>p,.uikit-article-content>form>pre,.uikit-article-content>form>table,.uikit-article-content>form>ul,.uikit-article-content>h3,.uikit-article-content>h4,.uikit-article-content>iframe,.uikit-article-content>ol,.uikit-article-content>p,.uikit-article-content>pre,.uikit-article-content>table,.uikit-article-content>ul{margin-left:33px}.uikit-article-content h4{font-size:13px;line-height:18px;font-weight:bold}.uikit-article-content h2{clear:both;color:#0070af;line-height:22px;font-weight:normal;font-size:18px;margin-bottom:3px;margin-top:33px}.uikit-article-content form:first-child div:first-child+h2,.uikit-article-content h2:first-child{margin-top:0}.uikit-article-content dl,.uikit-article-content h3,.uikit-article-content ol,.uikit-article-content p,.uikit-article-content ul{margin-bottom:10px}.uikit-article-content h2+h3,.uikit-article-content h2+p>label{margin-top:8px}.uikit-article-content li li{margin-left:33px}.uikit-article-content ol li li{list-style:lower-alpha;margin-left:33px}.uikit-article-content ol li li li{list-style:lower-roman}.uikit-article-content td li{margin-left:17px}.uikit-article-content table{border-collapse:separate;margin-bottom:10px}.uikit-article-content td:first-child,.uikit-article-content th:first-child{padding-left:0}.uikit-article-content td:last-child,.uikit-article-content th:last-child{padding-right:0}.uikit-article-content td{border-bottom:1px solid #f1f1f1;padding:3px 10px;vertical-align:top}.uikit-article-content tr:last-child td,.uikit-article-content tr:last-child th{border-width:0}.uikit-article-content table.uikit-noborder td,.uikit-article-content table.uikit-noborder th{border-bottom-width:0}.uikit-article-content a.uikit-noborder{border-bottom-width:0}.uikit-article-content dt,.uikit-article-content em,mark{font-style:italic}.uikit-article-content code{font-size:12px}.uikit-article-content pre{font-size:12px;padding-left:33px}.uikit-article-sidebar a{border-bottom:1px dotted #ed1c24;color:black;text-decoration:none}.uikit-article-sidebar a:active{border-bottom-style:dotted}.uikit-article-sidebar a:focus,.uikit-article-sidebar a:hover{border-bottom-style:solid;border-bottom-color:#ed1c24;color:#ed1c24}.uikit-article-content dd>strong,.uikit-article-content li>strong,.uikit-article-content p>strong,.uikit-article-content td>strong,.uikit-article-sidebar dd>strong,.uikit-article-sidebar li>strong,.uikit-article-sidebar p>strong,.uikit-article-sidebar td>strong{background-color:#fff6bf;color:#514721;font-weight:normal;padding:0 3px}.uikit-article-sidebar h2{color:black;font-size:13px;line-height:18px;font-weight:bold}.uikit-article-sidebar dl,.uikit-article-sidebar table,.uikit-article-sidebar>p{margin-bottom:24px;padding-right:24px}.uikit-article-sidebar table{padding-right:0}.uikit-article-sidebar ol,.uikit-article-sidebar ul{list-style-position:inside;margin-bottom:24px;padding-right:24px;padding-left:13px;text-indent:-11px}.uikit-article-sidebar ul{list-style-type:circle}.uikit-article-sidebar ol{text-indent:-15px}.uikit-article-sidebar dd,.uikit-page-path{color:#999;line-height:16px;font-size:11px}input{vertical-align:baseline}input[type=checkbox]+label,input[type=radio]+label{color:#666;display:inline;font-weight:normal;margin-right:20px}input[type=checkbox]+label:last-child,input[type=radio]+label:last-child{margin-right:0}input[type=checkbox][disabled=disabled]+label,input[type=radio][disabled=disabled]+label{color:#999}optgroup{font-style:normal}input[type=email][disabled=disabled],input[type=password][disabled=disabled],input[type=text][disabled=disabled],input[type=url][disabled=disabled],select[disabled=disabled],textarea[disabled=disabled]{-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none;opacity:.5}input[type=email],input[type=password],input[type=text],input[type=url],select,textarea{-moz-border-radius:5px;-moz-box-shadow:0 0 3px rgba(0,0,0,0.03);-webkit-border-radius:5px;-webkit-box-shadow:0 0 3px rgba(0,0,0,0.03);background-color:#fdfdfd;border:1px solid #e3e3e3;border-radius:5px;box-shadow:0 0 3px rgba(0,0,0,0.03);color:#4b4b4d;font-family:Arial,Helvetica,'Helvetica Neue','Liberation Sans',FreeSans,sans-serif;font-size:13px;padding:5px}input[type=email]:focus,input[type=password]:focus,input[type=text]:focus,input[type=url]:focus,select:focus,textarea:focus{background-color:#fafafa}select{padding-top:3px;padding-bottom:3px}textarea{height:126px;resize:vertical}input[type=button][disabled=disabled],input[type=reset][disabled=disabled],input[type=submit][disabled=disabled]{background-color:#999;color:#666}a.uikit-button,input[type=button],input[type=reset],input[type=submit]{-moz-border-radius:5px;-webkit-border-radius:5px;background-color:#4b4b4d;border:none!important;border-radius:5px;color:white!important;padding:3px 10px}a.uikit-button,body,input[type=button],input[type=reset],input[type=submit],textarea{line-height:18px;font-family:Arial,Helvetica,'Helvetica Neue','Liberation Sans',FreeSans,sans-serif;font-size:13px}a.uikit-button:focus,a.uikit-button:hover,input[type=button]:focus,input[type=button]:hover,input[type=reset]:focus,input[type=reset]:hover,input[type=submit]:focus,input[type=submit]:hover{background-color:black}a.uikit-button:active,input[type=button]:active,input[type=reset]:active,input[type=submit]:active{background-color:#4b4b4d;color:#999}a.uikit-button{display:inline-block}a.uikit-button:focus,a.uikit-button:hover{border:none;color:white}a.uikit-button:active{color:#999}fieldset{-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorStr='#fafafa',endColorStr='#fbfbfb')";background-color:#fafafa;background:-webkit-gradient(linear,left top,left bottom,from(#fafafa),to(#fbfbfb));background:-moz-linear-gradient(top,#fafafa,#fbfbfb);border:1px solid #f0f0f0;border-radius:7px;filter:"progid:DXImageTransform.Microsoft.gradient(startColorStr='#fafafa',endColorStr='#fbfbfb')";padding:7px 13px 0 13px}fieldset input[type=email],fieldset input[type=password],fieldset input[type=text],fieldset input[type=url],fieldset select,fieldset textarea{background-color:white}fieldset input[type=email]:focus,fieldset input[type=password]:focus,fieldset input[type=text]:focus,fieldset input[type=url]:focus,fieldset select:focus,fieldset textarea:focus{background-color:#fdfdfd}fieldset+fieldset{margin-top:10px!important}.uikit-article-content .row-fluid input[type=email],.uikit-article-content .row-fluid input[type=password],.uikit-article-content .row-fluid input[type=text],.uikit-article-content .row-fluid input[type=url],.uikit-article-content .row-fluid textarea{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%!important}*::-moz-placeholder,*::-webkit-input-placeholder,:-moz-placeholder,:-ms-input-placeholder{color:#bbb!important}.uikit-article-content th{border-bottom:2px dotted #0070af;padding:3px 10px;padding-top:10px;text-align:left;white-space:nowrap}.uikit-bubble-attention .uikit-bubble-content-container,.uikit-bubble-menu .uikit-bubble-content-container,.uikit-bubble-meta .uikit-bubble-content-container{-moz-border-radius:10px;-moz-border-radius-bottomright:13px;-moz-border-radius-topright:13px;-webkit-border-bottom-right-radius:13px;-webkit-border-radius:10px;-webkit-border-top-right-radius:13px;border-radius:10px;border-top-right-radius:13px;border-bottom-right-radius:13px;padding-left:10px}.uikit-bubble-attention .uikit-bubble-content,.uikit-bubble-menu .uikit-bubble-content,.uikit-bubble-meta .uikit-bubble-content{background-color:#eaebec;padding:10px}.uikit-bubble-menu,.uikit-bubble-meta{float:left;position:relative}.uikit-bubble-menu .uikit-bubble-content-container,.uikit-bubble-meta .uikit-bubble-content-container{-moz-border-radius-topleft:0;-webkit-border-top-left-radius:0;background-color:#4b4b4d;border-top-left-radius:0}.uikit-bubble-menu .uikit-bubble-content,.uikit-bubble-meta .uikit-bubble-content{border-radius:10px}.uikit-bubble-attention .uikit-bubble-content-container{background-color:red;background:-webkit-gradient(linear,left top,left bottom,from(red),to(#840e12));background:-moz-linear-gradient(top,red,#840e12)}.uikit-bubble-attention .uikit-bubble-content-container,.uikit-page-header-container{-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorStr='#ff0000',endColorStr='#840e12')";filter:"progid:DXImageTransform.Microsoft.gradient(startColorStr='#ff0000',endColorStr='#840e12')"}.uikit-article-content .uikit-bubble-attention .uikit-bubble-content{-moz-border-radius:10px;-moz-border-radius-bottomleft:0;-moz-border-radius-topleft:0;-webkit-border-bottom-left-radius:0;-webkit-border-radius:10px;-webkit-border-top-left-radius:0;border-radius:10px;border-top-left-radius:0;border-bottom-left-radius:0}.uikit-bubble-menu .uikit-bubble-content-container,.uikit-bubble-meta .uikit-bubble-content-container,.uikit-page-header:focus .uikit-bubble-content-container{display:none}.uikit-bubble-menu .uikit-bubble-header:focus+.uikit-bubble-content-container,.uikit-bubble-menu:focus .uikit-bubble-content-container,.uikit-bubble-menu:hover .uikit-bubble-content-container,.uikit-bubble-meta .uikit-bubble-header:focus+.uikit-bubble-content-container,.uikit-bubble-meta:focus .uikit-bubble-content-container,.uikit-bubble-meta:hover .uikit-bubble-content-container{display:block;position:absolute;z-index:1000}.uikit-bubble-menu .uikit-bubble-header,.uikit-bubble-meta .uikit-bubble-header{color:white;cursor:default;display:block;font-weight:normal;letter-spacing:1px;padding:5px 10px;text-decoration:none}.uikit-bubble-meta .uikit-bubble-header{text-shadow:#4b4b4d 1px 1px 0}.uikit-bubble-menu .uikit-bubble-header{text-shadow:black 1px 1px 0}.uikit-bubble-meta{color:#666;font-size:11px;line-height:16px}.uikit-bubble-header:focus,.uikit-bubble-menu:focus .uikit-bubble-header,.uikit-bubble-menu:hover .uikit-bubble-header,.uikit-bubble-meta.uikit-state-highlight .uikit-bubble-header,.uikit-bubble-meta:focus .uikit-bubble-header,.uikit-bubble-meta:hover .uikit-bubble-header{-moz-box-shadow:0 0 15px rgba(0,0,0,0.25);-webkit-box-shadow:0 0 15px rgba(0,0,0,0.25);background-color:#4b4b4d;box-shadow:0 0 15px rgba(0,0,0,0.25)}.uikit-bubble-menu .uikit-bubble-content-container,.uikit-bubble-meta .uikit-bubble-content-container,.uikit-page-content{-moz-box-shadow:0 0 15px rgba(0,0,0,0.25);-webkit-box-shadow:0 0 15px rgba(0,0,0,0.25);box-shadow:0 0 15px rgba(0,0,0,0.25)}.uikit-bubble-meta.uikit-state-highlight .uikit-bubble-header,.uikit-bubble-meta:focus .uikit-bubble-header[href^=/],.uikit-bubble-meta:hover .uikit-bubble-header[href^=/]{-moz-border-radius:5px;-moz-border-radius-topleft:0;-moz-border-radius-topright:0;-webkit-border-radius:5px;-webkit-border-top-left-radius:0;-webkit-border-top-right-radius:0;border-radius:5px;border-top-left-radius:0;border-top-right-radius:0}.uikit-bubble-meta.uikit-state-highlight:focus .uikit-bubble-header,.uikit-bubble-meta.uikit-state-highlight:hover .uikit-bubble-header{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.uikit-bubble-meta .uikit-bubble-content-container{width:300px}.uikit-bubble-meta .uikit-bubble-content-container a{border-bottom:1px dotted #ed1c24;color:black;text-decoration:none}.uikit-bubble-meta .uikit-bubble-content-container a:active{border-bottom-style:dotted}.uikit-bubble-meta .uikit-bubble-content-container a:focus,.uikit-bubble-meta .uikit-bubble-content-container a:hover{border-bottom-style:solid;color:#ed1c24}.uikit-bubble-meta .uikit-bubble-content-container a{border-bottom-color:#999;color:#666}.uikit-bubble-meta .uikit-bubble-content-container a:focus,.uikit-bubble-meta .uikit-bubble-content-container a:hover{border-bottom-color:#ed1c24}.uikit-article-sidebar td,.uikit-bubble-meta form,.uikit-page-footer div p:first-child{padding-right:10px}.uikit-bubble-meta label{font-weight:normal}.uikit-bubble-meta input[type=password],.uikit-bubble-meta input[type=text]{-moz-border-radius:3px;-webkit-border-radius:3px;background:white;border:none;border-radius:3px;width:100%}.uikit-bubble-meta a.uikit-button,.uikit-bubble-meta input[type=button],.uikit-bubble-meta input[type=reset],.uikit-bubble-meta input[type=submit]{-moz-border-radius:3px;-webkit-border-radius:3px;background-color:#666;border-radius:3px;font-family:Arial,Helvetica,'Helvetica Neue','Liberation Sans',FreeSans,sans-serif;font-size:11px;line-height:16px;letter-spacing:1px}.uikit-bubble-meta a.uikit-button:focus,.uikit-bubble-meta a.uikit-button:hover,.uikit-bubble-meta input[type=button]:focus,.uikit-bubble-meta input[type=button]:hover,.uikit-bubble-meta input[type=reset]:focus,.uikit-bubble-meta input[type=reset]:hover,.uikit-bubble-meta input[type=submit]:focus,.uikit-bubble-meta input[type=submit]:hover{background-color:#4b4b4d}#sitemap dl{margin-right:10px;vertical-align:top}#sitemap dt a:hover{color:#ed1c24}.uikit-bubble-menu .uikit-bubble-header{-moz-border-radius-bottomright:0;-webkit-border-bottom-right-radius:0;border-radius:10px;border-bottom-right-radius:0;font-size:16px;padding:10px 20px}.uikit-bubble-menu .uikit-bubble-content,.uikit-bubble-menu .uikit-bubble-header,.uikit-bubble-meta .uikit-bubble-content{-moz-border-radius:10px;-moz-border-radius-bottomleft:0;-webkit-border-bottom-left-radius:0;-webkit-border-radius:10px;border-bottom-left-radius:0}.uikit-bubble-menu .uikit-bubble-content-container{width:200px}.uikit-bubble-menu.uikit-bubble-menu-right .uikit-bubble-header{width:55px}.uikit-bubble-menu.uikit-bubble-menu-right .uikit-bubble-content-container{-moz-border-radius:10px;-moz-border-radius-topleft:13px;-moz-border-radius-topright:0;-webkit-border-radius:10px;-webkit-border-top-left-radius:13px;-webkit-border-top-right-radius:0;border-radius:10px;border-top-right-radius:0;border-top-left-radius:13px;margin-left:-115px;padding-left:0;padding-right:10px}.uikit-bubble-attention{color:black;margin-bottom:30px}.uikit-bubble-attention a{border-bottom:1px dotted #ed1c24;color:black;text-decoration:none}.uikit-bubble-attention a:active{border-bottom-style:dotted}.uikit-bubble-attention a:focus,.uikit-bubble-attention a:hover{border-bottom-style:solid;border-bottom-color:#ed1c24;color:#ed1c24}.uikit-bubble-attention h2{color:black!important;display:inline-block;margin-top:0!important;margin-left:0!important}.uikit-bubble-attention h2 strong{color:#ed1c24!important}.uikit-bubble-attention h2:last-child,.uikit-bubble-attention ol:last-child,.uikit-bubble-attention p:last-child,.uikit-bubble-attention ul:last-child{margin-bottom:0!important}.uikit-bubble-attention li{margin-left:20px}.uikit-bubble-attention strong{background-color:inherit!important;color:inherit!important;font-weight:bold!important;padding:0!important}.uikit-article-sidebar .uikit-bubble-attention h2{display:block!important}.uikit-bubble-close{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHCAYAAADEUlfTAAAAOUlEQVQIW2Mw0DJIMNAz+K+jo6PHAAQgGsQHiTOAGTAMVQjDCJVoGGYSA7oOsJEodmDTiddOfK4FAMvlOdrIWnB2AAAAAElFTkSuQmCC");background-repeat:no-repeat;background-position:center;display:block;float:right;height:16px;margin-left:5px;margin-top:-6px;margin-right:-6px;opacity:.5;width:16px}.uikit-bubble-close:focus,.uikit-bubble-close:hover{cursor:pointer;opacity:1}.uikit-bubble-nav li{border-bottom:2px dotted #ed1c24;padding:7px 0}.uikit-article-content tr:first-child th,.uikit-bubble-nav li:first-child{padding-top:0}.uikit-bubble-nav li.uikit-helper-last,.uikit-bubble-nav li:last-child{border-bottom-width:0;padding-bottom:0}.uikit-bubble-nav a{color:#666;display:block;font-size:11px;line-height:16px;text-decoration:none}.uikit-bubble-nav a strong{display:block;text-decoration:none;text-shadow:none}#sitemap dt,#sitemap dt a,label{color:#4b4b4d;font-weight:bold}.uikit-article-content h3,.uikit-article-content th,.uikit-bubble-nav a strong{color:#4b4b4d;font-weight:bold;font-size:13px;line-height:18px}.uikit-bubble-nav a:focus,.uikit-bubble-nav a:hover{color:#ed1c24}.uikit-bubble-nav a:focus strong,.uikit-bubble-nav a:hover strong{color:#ed1c24}.uikit-bubble-menu .uikit-bubble-nav a strong{font-size:16px;line-height:19px}.uikit-bubble-menu .uikit-bubble-nav a:focus,.uikit-bubble-menu .uikit-bubble-nav a:hover{color:#ed1c24}.uikit-bubble-menu .uikit-bubble-nav a:focus strong,.uikit-bubble-menu .uikit-bubble-nav a:hover strong{color:#ed1c24}.uikit-article-nav .uikit-bubble-nav~.uikit-bubble-nav{margin-top:12px}.uikit-article-nav .uikit-bubble-nav{-moz-border-radius:10px;-webkit-border-radius:10px;background-color:#eaebec;border-radius:10px;padding:10px}.uikit-article-nav .uikit-bubble-nav a strong{font-size:14px;line-height:17px}.uikit-article-nav .uikit-bubble-nav a:focus,.uikit-article-nav .uikit-bubble-nav a:hover{color:#ed1c24}.uikit-article-nav .uikit-bubble-nav a:focus strong,.uikit-article-nav .uikit-bubble-nav a:hover strong{color:#ed1c24}.uikit-article-nav .uikit-bubble-nav .uikit-bubble-nav-back{padding-left:20px}.uikit-article-nav .uikit-bubble-nav .uikit-bubble-nav-back strong{margin-left:-19px}.uikit-article-nav .uikit-bubble-nav .uikit-bubble-nav-back strong::before{content:'← '}.uikit-article-content .uikit-submit a:active{border-bottom-style:dotted}.uikit-article-content .uikit-submit a{border-bottom:1px dotted #ed1c24;border-bottom-color:#999;color:black;color:#666;color:#999;text-decoration:none}.uikit-submit-small{margin-top:10px;margin-bottom:-24px!important;text-align:right}.uikit-submit-small input{filter:alpha(opacity=30);font-size:11px;margin-left:3px;opacity:.3;padding:1px 7px}.uikit-submit-small input:hover{filter:alpha(opacity=100);opacity:1.0}.uikit-submit-small a{font-size:11px}.uikit-icon+.uikit-icon{margin-left:3px!important}.uikit-icon{border:none!important}.uikit-icon .ui-icon{background-image:url("/images/uikit_ui-icons_000000_256x240.png");display:inline-block;margin-bottom:-5px;opacity:.3}.uikit-icon:hover .ui-icon{opacity:1}.uikit-more{-moz-border-radius:2px;-webkit-border-radius:2px;background-color:#f0f0f0;border-bottom-width:0!important;border-radius:2px;color:#999!important;font-size:11px;padding:2px 6px 3px 6px}.uikit-more:hover{background-color:#0070af;color:white!important;text-shadow:none}.uikit-more:active{background-color:#ed1c24;text-shadow:none}.uikit-rows th{border-bottom:none}.uikit-rows td{vertical-align:baseline}.uikit-rows td p{margin-top:5px}#login p:first-of-type,.uikit-rows td p{margin-bottom:5px}.uikit-rows td.uikit-helper-last,.uikit-rows td:last-child{padding-right:5px}.uikit-rows tr:focus td,.uikit-rows tr:hover td{background-color:#fafafa}.uikit-rows.uikit-rows-checkboxes td:first-child{padding-right:0}.uikit-rows.uikit-rows-actions td.uikit-helper-last,.uikit-rows.uikit-rows-actions td:last-child{border-left:1px solid #f1f1f1;white-space:nowrap}.uikit-rows.uikit-rows-actions td.uikit-helper-last a,.uikit-rows.uikit-rows-actions td:last-child a{border-color:transparent;color:#999}.uikit-rows.uikit-rows-actions td.uikit-helper-last a+a,.uikit-rows.uikit-rows-actions td:last-child a+a,.uikit-submit a{margin-left:10px}.uikit-article-content .uikit-submit a:focus,.uikit-article-content .uikit-submit a:hover{border-bottom-style:solid;border-bottom-color:#ed1c24;color:#ed1c24}.uikit-rows.uikit-rows-actions.uikit-rows-actions-noborder td.uikit-helper-last,.uikit-rows.uikit-rows-actions.uikit-rows-actions-noborder td:last-ch
gitextract_1nh6rfi8/ ├── .gitignore ├── NOTES.md ├── README.md ├── Vienna/ │ ├── Research Groups • Informatics, TU Vienna.html │ └── Research Groups • Informatics, TU Vienna_files/ │ ├── add.js │ ├── uikit.min1.css │ ├── uikit.min2.css │ └── uikit_branding.css ├── benchmarks/ │ ├── 360-stripmq-cleancss.css │ ├── 360-stripmq-cssmin.css │ ├── 360-stripmq-cssnano.css │ ├── 360-stripmq-csso.css │ ├── 360-stripmq-minify.css │ ├── 360-stripmq-yui.css │ ├── 360-stripmq.css │ ├── amazon-stripmq-cleancss.css │ ├── amazon-stripmq-cssmin.css │ ├── amazon-stripmq-cssnano.css │ ├── amazon-stripmq-csso.css │ ├── amazon-stripmq-minify.css │ ├── amazon-stripmq-yui.css │ ├── amazon-stripmq.css │ ├── archlinux-stripmq-cleancss.css │ ├── archlinux-stripmq-cssmin.css │ ├── archlinux-stripmq-cssnano.css │ ├── archlinux-stripmq-csso.css │ ├── archlinux-stripmq-minify.css │ ├── archlinux-stripmq-yui.css │ ├── archlinux-stripmq.css │ ├── arxiv-stripmq-cleancss.css │ ├── arxiv-stripmq-cssmin.css │ ├── arxiv-stripmq-cssnano.css │ ├── arxiv-stripmq-csso.css │ ├── arxiv-stripmq-minify.css │ ├── arxiv-stripmq-yui.css │ ├── arxiv-stripmq.css │ ├── baidu-1-stripmq-cleancss.css │ ├── baidu-1-stripmq-cssmin.css │ ├── baidu-1-stripmq-cssnano.css │ ├── baidu-1-stripmq-csso.css │ ├── baidu-1-stripmq-minify.css │ ├── baidu-1-stripmq-yui.css │ ├── baidu-1-stripmq.css │ ├── baidu-2-stripmq-cleancss.css │ ├── baidu-2-stripmq-cssmin.css │ ├── baidu-2-stripmq-cssnano.css │ ├── baidu-2-stripmq-csso.css │ ├── baidu-2-stripmq-minify.css │ ├── baidu-2-stripmq-yui.css │ ├── baidu-2-stripmq.css │ ├── baidu-3-stripmq-cleancss.css │ ├── baidu-3-stripmq-cssmin.css │ ├── baidu-3-stripmq-cssnano.css │ ├── baidu-3-stripmq-csso.css │ ├── baidu-3-stripmq-minify.css │ ├── baidu-3-stripmq-yui.css │ ├── baidu-3-stripmq.css │ ├── bing-stripmq-cleancss.css │ ├── bing-stripmq-cssmin.css │ ├── bing-stripmq-cssnano.css │ ├── bing-stripmq-csso.css │ ├── bing-stripmq-minify.css │ ├── bing-stripmq-yui.css │ ├── bing-stripmq.css │ ├── cnn-stripmq-cleancss.css │ ├── cnn-stripmq-cssmin.css │ ├── cnn-stripmq-cssnano.css │ ├── cnn-stripmq-csso.css │ ├── cnn-stripmq-minify.css │ ├── cnn-stripmq-yui.css │ ├── cnn-stripmq.css │ ├── dblp-2015-07-09-stripmq-cleancss.css │ ├── dblp-2015-07-09-stripmq-cssmin.css │ ├── dblp-2015-07-09-stripmq-cssnano.css │ ├── dblp-2015-07-09-stripmq-csso.css │ ├── dblp-2015-07-09-stripmq-minify.css │ ├── dblp-2015-07-09-stripmq-yui.css │ ├── dblp-2015-07-09-stripmq.css │ ├── ebay-stripmq-cleancss.css │ ├── ebay-stripmq-cssmin.css │ ├── ebay-stripmq-cssnano.css │ ├── ebay-stripmq-csso.css │ ├── ebay-stripmq-minify.css │ ├── ebay-stripmq-yui.css │ ├── ebay-stripmq.css │ ├── example-list-nano.txt.1 │ ├── example-list-nano.txt.2 │ ├── example-list-nano.txt.3 │ ├── facebook1-stripmq-cleancss.css │ ├── facebook1-stripmq-cssmin.css │ ├── facebook1-stripmq-cssnano.css │ ├── facebook1-stripmq-csso.css │ ├── facebook1-stripmq-minify.css │ ├── facebook1-stripmq-yui.css │ ├── facebook1-stripmq.css │ ├── github-stripmq-cleancss.css │ ├── github-stripmq-cssmin.css │ ├── github-stripmq-cssnano.css │ ├── github-stripmq-csso.css │ ├── github-stripmq-minify.css │ ├── github-stripmq-yui.css │ ├── github-stripmq.css │ ├── google-1-stripmq-cleancss.css │ ├── google-1-stripmq-cssmin.css │ ├── google-1-stripmq-cssnano.css │ ├── google-1-stripmq-csso.css │ ├── google-1-stripmq-minify.css │ ├── google-1-stripmq-yui.css │ ├── google-1-stripmq.css │ ├── google-2-stripmq-cleancss.css │ ├── google-2-stripmq-cssmin.css │ ├── google-2-stripmq-cssnano.css │ ├── google-2-stripmq-csso.css │ ├── google-2-stripmq-minify.css │ ├── google-2-stripmq-yui.css │ ├── google-2-stripmq.css │ ├── googlenews-1-stripmq-cleancss.css │ ├── googlenews-1-stripmq-cssmin.css │ ├── googlenews-1-stripmq-cssnano.css │ ├── googlenews-1-stripmq-csso.css │ ├── googlenews-1-stripmq-minify.css │ ├── googlenews-1-stripmq-yui.css │ ├── googlenews-1-stripmq.css │ ├── googlenews-2-stripmq-cleancss.css │ ├── googlenews-2-stripmq-cssmin.css │ ├── googlenews-2-stripmq-cssnano.css │ ├── googlenews-2-stripmq-csso.css │ ├── googlenews-2-stripmq-minify.css │ ├── googlenews-2-stripmq-yui.css │ ├── googlenews-2-stripmq.css │ ├── guardian-stripmq-cleancss.css │ ├── guardian-stripmq-cssmin.css │ ├── guardian-stripmq-cssnano.css │ ├── guardian-stripmq-csso.css │ ├── guardian-stripmq-minify.css │ ├── guardian-stripmq-yui.css │ ├── guardian-stripmq.css │ ├── guardian-stripmq.css.buggy │ ├── imdb-1-stripmq-cleancss.css │ ├── imdb-1-stripmq-cssmin.css │ ├── imdb-1-stripmq-cssnano.css │ ├── imdb-1-stripmq-csso.css │ ├── imdb-1-stripmq-minify.css │ ├── imdb-1-stripmq-yui.css │ ├── imdb-1-stripmq.css │ ├── imdb-2-stripmq-cleancss.css │ ├── imdb-2-stripmq-cssmin.css │ ├── imdb-2-stripmq-cssnano.css │ ├── imdb-2-stripmq-csso.css │ ├── imdb-2-stripmq-minify.css │ ├── imdb-2-stripmq-yui.css │ ├── imdb-2-stripmq.css │ ├── imgur-1-stripmq-cleancss.css │ ├── imgur-1-stripmq-cssmin.css │ ├── imgur-1-stripmq-cssnano.css │ ├── imgur-1-stripmq-csso.css │ ├── imgur-1-stripmq-minify.css │ ├── imgur-1-stripmq-yui.css │ ├── imgur-1-stripmq.css │ ├── imgur-2-stripmq-cleancss.css │ ├── imgur-2-stripmq-cssmin.css │ ├── imgur-2-stripmq-cssnano.css │ ├── imgur-2-stripmq-csso.css │ ├── imgur-2-stripmq-minify.css │ ├── imgur-2-stripmq-yui.css │ ├── imgur-2-stripmq.css │ ├── instagram-stripmq-cleancss.css │ ├── instagram-stripmq-cssmin.css │ ├── instagram-stripmq-cssnano.css │ ├── instagram-stripmq-csso.css │ ├── instagram-stripmq-minify.css │ ├── instagram-stripmq-yui.css │ ├── instagram-stripmq.css │ ├── linkedin-stripmq-cleancss.css │ ├── linkedin-stripmq-cssmin.css │ ├── linkedin-stripmq-cssnano.css │ ├── linkedin-stripmq-csso.css │ ├── linkedin-stripmq-minify.css │ ├── linkedin-stripmq-yui.css │ ├── linkedin-stripmq.css │ ├── londonist-stripmq-cleancss.css │ ├── londonist-stripmq-cssmin.css │ ├── londonist-stripmq-cssnano.css │ ├── londonist-stripmq-csso.css │ ├── londonist-stripmq-minify.css │ ├── londonist-stripmq-yui.css │ ├── londonist-stripmq.css │ ├── microsoft-2-stripmq-cleancss.css │ ├── microsoft-2-stripmq-cssmin.css │ ├── microsoft-2-stripmq-cssnano.css │ ├── microsoft-2-stripmq-csso.css │ ├── microsoft-2-stripmq-minify.css │ ├── microsoft-2-stripmq-yui.css │ ├── microsoft-2-stripmq.css │ ├── microsoft-3-stripmq-cleancss.css │ ├── microsoft-3-stripmq-cssmin.css │ ├── microsoft-3-stripmq-cssnano.css │ ├── microsoft-3-stripmq-csso.css │ ├── microsoft-3-stripmq-minify.css │ ├── microsoft-3-stripmq-yui.css │ ├── microsoft-3-stripmq.css │ ├── microsoft-4-stripmq-cleancss.css │ ├── microsoft-4-stripmq-cssmin.css │ ├── microsoft-4-stripmq-cssnano.css │ ├── microsoft-4-stripmq-csso.css │ ├── microsoft-4-stripmq-minify.css │ ├── microsoft-4-stripmq-yui.css │ ├── microsoft-4-stripmq.css │ ├── msn-stripmq-cleancss.css │ ├── msn-stripmq-cssmin.css │ ├── msn-stripmq-cssnano.css │ ├── msn-stripmq-csso.css │ ├── msn-stripmq-minify.css │ ├── msn-stripmq-yui.css │ ├── msn-stripmq.css │ ├── netflix-stripmq-cleancss.css │ ├── netflix-stripmq-cssmin.css │ ├── netflix-stripmq-cssnano.css │ ├── netflix-stripmq-csso.css │ ├── netflix-stripmq-minify.css │ ├── netflix-stripmq-yui.css │ ├── netflix-stripmq.css │ ├── networkx-theme-stripmq-cleancss.css │ ├── networkx-theme-stripmq-cssmin.css │ ├── networkx-theme-stripmq-cssnano.css │ ├── networkx-theme-stripmq-csso.css │ ├── networkx-theme-stripmq-minify.css │ ├── networkx-theme-stripmq-yui.css │ ├── networkx-theme-stripmq.css │ ├── nytimes-stripmq-cleancss.css │ ├── nytimes-stripmq-cssmin.css │ ├── nytimes-stripmq-cssnano.css │ ├── nytimes-stripmq-csso.css │ ├── nytimes-stripmq-minify.css │ ├── nytimes-stripmq-yui.css │ ├── nytimes-stripmq.css │ ├── openstreetmap-stripmq-cleancss.css │ ├── openstreetmap-stripmq-cssmin.css │ ├── openstreetmap-stripmq-cssnano.css │ ├── openstreetmap-stripmq-csso.css │ ├── openstreetmap-stripmq-minify.css │ ├── openstreetmap-stripmq-yui.css │ ├── openstreetmap-stripmq.css │ ├── outlook-1-stripmq-cleancss.css │ ├── outlook-1-stripmq-cssmin.css │ ├── outlook-1-stripmq-cssnano.css │ ├── outlook-1-stripmq-csso.css │ ├── outlook-1-stripmq-minify.css │ ├── outlook-1-stripmq-yui.css │ ├── outlook-1-stripmq.css │ ├── outlook-2-stripmq-cleancss.css │ ├── outlook-2-stripmq-cssmin.css │ ├── outlook-2-stripmq-cssnano.css │ ├── outlook-2-stripmq-csso.css │ ├── outlook-2-stripmq-minify.css │ ├── outlook-2-stripmq-yui.css │ ├── outlook-2-stripmq.css │ ├── outlook-3-stripmq-cleancss.css │ ├── outlook-3-stripmq-cssmin.css │ ├── outlook-3-stripmq-cssnano.css │ ├── outlook-3-stripmq-csso.css │ ├── outlook-3-stripmq-minify.css │ ├── outlook-3-stripmq-yui.css │ ├── outlook-3-stripmq.css │ ├── outlook-4-stripmq-cleancss.css │ ├── outlook-4-stripmq-cssmin.css │ ├── outlook-4-stripmq-cssnano.css │ ├── outlook-4-stripmq-csso.css │ ├── outlook-4-stripmq-minify.css │ ├── outlook-4-stripmq-yui.css │ ├── outlook-4-stripmq.css │ ├── qq-stripmq-cleancss.css │ ├── qq-stripmq-cssmin.css │ ├── qq-stripmq-cssnano.css │ ├── qq-stripmq-csso.css │ ├── qq-stripmq-minify.css │ ├── qq-stripmq-yui.css │ ├── qq-stripmq.css │ ├── reddit-stripmq-cleancss.css │ ├── reddit-stripmq-cssmin.css │ ├── reddit-stripmq-cssnano.css │ ├── reddit-stripmq-csso.css │ ├── reddit-stripmq-minify.css │ ├── reddit-stripmq-yui.css │ ├── reddit-stripmq.css │ ├── sina-stripmq-cleancss.css │ ├── sina-stripmq-cssmin.css │ ├── sina-stripmq-cssnano.css │ ├── sina-stripmq-csso.css │ ├── sina-stripmq-minify.css │ ├── sina-stripmq-yui.css │ ├── sina-stripmq.css │ ├── sohu-1-stripmq-cleancss.css │ ├── sohu-1-stripmq-cssmin.css │ ├── sohu-1-stripmq-cssnano.css │ ├── sohu-1-stripmq-csso.css │ ├── sohu-1-stripmq-minify.css │ ├── sohu-1-stripmq-yui.css │ ├── sohu-1-stripmq.css │ ├── sohu-2-stripmq-cleancss.css │ ├── sohu-2-stripmq-cssmin.css │ ├── sohu-2-stripmq-cssnano.css │ ├── sohu-2-stripmq-csso.css │ ├── sohu-2-stripmq-minify.css │ ├── sohu-2-stripmq-yui.css │ ├── sohu-2-stripmq.css │ ├── sohu-3-stripmq-cleancss.css │ ├── sohu-3-stripmq-cssmin.css │ ├── sohu-3-stripmq-cssnano.css │ ├── sohu-3-stripmq-csso.css │ ├── sohu-3-stripmq-minify.css │ ├── sohu-3-stripmq-yui.css │ ├── sohu-3-stripmq.css │ ├── taobao-1-stripmq-cleancss.css │ ├── taobao-1-stripmq-cssmin.css │ ├── taobao-1-stripmq-cssnano.css │ ├── taobao-1-stripmq-csso.css │ ├── taobao-1-stripmq-minify.css │ ├── taobao-1-stripmq-yui.css │ ├── taobao-1-stripmq.css │ ├── taobao-2-stripmq-cleancss.css │ ├── taobao-2-stripmq-cssmin.css │ ├── taobao-2-stripmq-cssnano.css │ ├── taobao-2-stripmq-csso.css │ ├── taobao-2-stripmq-minify.css │ ├── taobao-2-stripmq-yui.css │ ├── taobao-2-stripmq.css │ ├── tmall-1-stripmq-cleancss.css │ ├── tmall-1-stripmq-cssmin.css │ ├── tmall-1-stripmq-cssnano.css │ ├── tmall-1-stripmq-csso.css │ ├── tmall-1-stripmq-minify.css │ ├── tmall-1-stripmq-yui.css │ ├── tmall-1-stripmq.css │ ├── tmall-2-stripmq-cleancss.css │ ├── tmall-2-stripmq-cssmin.css │ ├── tmall-2-stripmq-cssnano.css │ ├── tmall-2-stripmq-csso.css │ ├── tmall-2-stripmq-minify.css │ ├── tmall-2-stripmq-yui.css │ ├── tmall-2-stripmq.css │ ├── tmall-3-stripmq-cleancss.css │ ├── tmall-3-stripmq-cssmin.css │ ├── tmall-3-stripmq-cssnano.css │ ├── tmall-3-stripmq-csso.css │ ├── tmall-3-stripmq-minify.css │ ├── tmall-3-stripmq-yui.css │ ├── tmall-3-stripmq.css │ ├── tmall-5-stripmq-cleancss.css │ ├── tmall-5-stripmq-cssmin.css │ ├── tmall-5-stripmq-cssnano.css │ ├── tmall-5-stripmq-csso.css │ ├── tmall-5-stripmq-minify.css │ ├── tmall-5-stripmq-yui.css │ ├── tmall-5-stripmq.css │ ├── tumblr-1-stripmq-cleancss.css │ ├── tumblr-1-stripmq-cssmin.css │ ├── tumblr-1-stripmq-cssnano.css │ ├── tumblr-1-stripmq-csso.css │ ├── tumblr-1-stripmq-minify.css │ ├── tumblr-1-stripmq-yui.css │ ├── tumblr-1-stripmq.css │ ├── tumblr-3-stripmq-cleancss.css │ ├── tumblr-3-stripmq-cssmin.css │ ├── tumblr-3-stripmq-cssnano.css │ ├── tumblr-3-stripmq-csso.css │ ├── tumblr-3-stripmq-minify.css │ ├── tumblr-3-stripmq-yui.css │ ├── tumblr-3-stripmq.css │ ├── tumblr-5-stripmq-cleancss.css │ ├── tumblr-5-stripmq-cssmin.css │ ├── tumblr-5-stripmq-cssnano.css │ ├── tumblr-5-stripmq-csso.css │ ├── tumblr-5-stripmq-minify.css │ ├── tumblr-5-stripmq-yui.css │ ├── tumblr-5-stripmq.css │ ├── twitter-1-stripmq-cleancss.css │ ├── twitter-1-stripmq-cssmin.css │ ├── twitter-1-stripmq-cssnano.css │ ├── twitter-1-stripmq-csso.css │ ├── twitter-1-stripmq-minify.css │ ├── twitter-1-stripmq-yui.css │ ├── twitter-1-stripmq.css │ ├── twitter-2-stripmq-cleancss.css │ ├── twitter-2-stripmq-cssmin.css │ ├── twitter-2-stripmq-cssnano.css │ ├── twitter-2-stripmq-csso.css │ ├── twitter-2-stripmq-minify.css │ ├── twitter-2-stripmq-yui.css │ ├── twitter-2-stripmq.css │ ├── twitter-3-stripmq-cleancss.css │ ├── twitter-3-stripmq-cssmin.css │ ├── twitter-3-stripmq-cssnano.css │ ├── twitter-3-stripmq-csso.css │ ├── twitter-3-stripmq-minify.css │ ├── twitter-3-stripmq-yui.css │ ├── twitter-3-stripmq.css │ ├── twitter-4-stripmq-cleancss.css │ ├── twitter-4-stripmq-cssmin.css │ ├── twitter-4-stripmq-cssnano.css │ ├── twitter-4-stripmq-csso.css │ ├── twitter-4-stripmq-minify.css │ ├── twitter-4-stripmq-yui.css │ ├── twitter-4-stripmq.css │ ├── twitter-5-stripmq-cleancss.css │ ├── twitter-5-stripmq-cssmin.css │ ├── twitter-5-stripmq-cssnano.css │ ├── twitter-5-stripmq-csso.css │ ├── twitter-5-stripmq-minify.css │ ├── twitter-5-stripmq-yui.css │ ├── twitter-5-stripmq.css │ ├── vk-1-stripmq-cleancss.css │ ├── vk-1-stripmq-cssmin.css │ ├── vk-1-stripmq-cssnano.css │ ├── vk-1-stripmq-csso.css │ ├── vk-1-stripmq-minify.css │ ├── vk-1-stripmq-yui.css │ ├── vk-1-stripmq.css │ ├── vk-2-stripmq-cleancss.css │ ├── vk-2-stripmq-cssmin.css │ ├── vk-2-stripmq-cssnano.css │ ├── vk-2-stripmq-csso.css │ ├── vk-2-stripmq-minify.css │ ├── vk-2-stripmq-yui.css │ ├── vk-2-stripmq.css │ ├── vk-3-stripmq-cleancss.css │ ├── vk-3-stripmq-cssmin.css │ ├── vk-3-stripmq-cssnano.css │ ├── vk-3-stripmq-csso.css │ ├── vk-3-stripmq-minify.css │ ├── vk-3-stripmq-yui.css │ ├── vk-3-stripmq.css │ ├── w3schools-stripmq-cleancss.css │ ├── w3schools-stripmq-cssmin.css │ ├── w3schools-stripmq-cssnano.css │ ├── w3schools-stripmq-csso.css │ ├── w3schools-stripmq-minify.css │ ├── w3schools-stripmq-yui.css │ ├── w3schools-stripmq.css │ ├── wikipedia-stripmq-cleancss.css │ ├── wikipedia-stripmq-cssmin.css │ ├── wikipedia-stripmq-cssnano.css │ ├── wikipedia-stripmq-csso.css │ ├── wikipedia-stripmq-minify.css │ ├── wikipedia-stripmq-yui.css │ ├── wikipedia-stripmq.css │ ├── wordpress-1-stripmq-cleancss.css │ ├── wordpress-1-stripmq-cssmin.css │ ├── wordpress-1-stripmq-cssnano.css │ ├── wordpress-1-stripmq-csso.css │ ├── wordpress-1-stripmq-minify.css │ ├── wordpress-1-stripmq-yui.css │ ├── wordpress-1-stripmq.css │ ├── wordpress-2-stripmq-cleancss.css │ ├── wordpress-2-stripmq-cssmin.css │ ├── wordpress-2-stripmq-cssnano.css │ ├── wordpress-2-stripmq-csso.css │ ├── wordpress-2-stripmq-minify.css │ ├── wordpress-2-stripmq-yui.css │ ├── wordpress-2-stripmq.css │ ├── yahoo-jp-1-stripmq-cleancss.css │ ├── yahoo-jp-1-stripmq-cssmin.css │ ├── yahoo-jp-1-stripmq-cssnano.css │ ├── yahoo-jp-1-stripmq-csso.css │ ├── yahoo-jp-1-stripmq-minify.css │ ├── yahoo-jp-1-stripmq-yui.css │ ├── yahoo-jp-1-stripmq.css │ ├── yahoo-jp-2-stripmq-cleancss.css │ ├── yahoo-jp-2-stripmq-cssmin.css │ ├── yahoo-jp-2-stripmq-cssnano.css │ ├── yahoo-jp-2-stripmq-csso.css │ ├── yahoo-jp-2-stripmq-minify.css │ ├── yahoo-jp-2-stripmq-yui.css │ ├── yahoo-jp-2-stripmq.css │ ├── yahoo-uk-2-stripmq-cleancss.css │ ├── yahoo-uk-2-stripmq-cssmin.css │ ├── yahoo-uk-2-stripmq-cssnano.css │ ├── yahoo-uk-2-stripmq-csso.css │ ├── yahoo-uk-2-stripmq-minify.css │ ├── yahoo-uk-2-stripmq-yui.css │ ├── yahoo-uk-2-stripmq.css │ ├── yahoo-uk-3-stripmq-cleancss.css │ ├── yahoo-uk-3-stripmq-cssmin.css │ ├── yahoo-uk-3-stripmq-cssnano.css │ ├── yahoo-uk-3-stripmq-csso.css │ ├── yahoo-uk-3-stripmq-minify.css │ ├── yahoo-uk-3-stripmq-yui.css │ ├── yahoo-uk-3-stripmq.css │ ├── yahoo-uk-4-stripmq-cleancss.css │ ├── yahoo-uk-4-stripmq-cssmin.css │ ├── yahoo-uk-4-stripmq-cssnano.css │ ├── yahoo-uk-4-stripmq-csso.css │ ├── yahoo-uk-4-stripmq-minify.css │ ├── yahoo-uk-4-stripmq-yui.css │ ├── yahoo-uk-4-stripmq.css │ ├── yahoo-uk-5-stripmq-cleancss.css │ ├── yahoo-uk-5-stripmq-cssmin.css │ ├── yahoo-uk-5-stripmq-cssnano.css │ ├── yahoo-uk-5-stripmq-csso.css │ ├── yahoo-uk-5-stripmq-minify.css │ ├── yahoo-uk-5-stripmq-yui.css │ ├── yahoo-uk-5-stripmq.css │ ├── yahoo-uk-6-stripmq-cleancss.css │ ├── yahoo-uk-6-stripmq-cssmin.css │ ├── yahoo-uk-6-stripmq-cssnano.css │ ├── yahoo-uk-6-stripmq-csso.css │ ├── yahoo-uk-6-stripmq-minify.css │ ├── yahoo-uk-6-stripmq-yui.css │ ├── yahoo-uk-6-stripmq.css │ ├── youtube-stripmq-cleancss.css │ ├── youtube-stripmq-cssmin.css │ ├── youtube-stripmq-cssnano.css │ ├── youtube-stripmq-csso.css │ ├── youtube-stripmq-minify.css │ ├── youtube-stripmq-yui.css │ └── youtube-stripmq.css ├── main.py ├── pyproject.toml ├── requirements.txt ├── satcss/ │ ├── all_in_deduct_refactor.py │ ├── autemptiness-unoptimised.py │ ├── autemptiness.py │ ├── childcollector.py │ ├── cliqueCSS.py │ ├── cmdZ3Wrapper.py │ ├── cnflib.py │ ├── cssautomaton.py │ ├── cssfile.py │ ├── cssselect_parser.py │ ├── deduct_refactor.py │ ├── dimacsWrapper.py │ ├── dimacsWrapperFull.py │ ├── main.py │ ├── refactoring.py │ ├── safetrim.py │ ├── simpleCSS.py │ ├── simplecssbuilder.py │ ├── stringcons.py │ ├── test.py │ ├── wcnf2z3.py │ ├── wcnfWrapper.py │ └── z3int.py └── test.py
SYMBOL INDEX (1064 symbols across 24 files)
FILE: Vienna/Research Groups • Informatics, TU Vienna_files/add.js
function j (line 13) | function j(ab,V){ab||(ab=i.Object());V||(V=i.Object());var K=ab.Number||...
function o (line 22) | function o(ai){try{return Q(ai)}catch(aj){return unescape(ai)}}
function H (line 22) | function H(aj){var ai=typeof aj;return ai!=="undefined"}
function y (line 22) | function y(ai){return typeof ai==="function"}
function T (line 22) | function T(ai){return typeof ai==="object"}
function v (line 22) | function v(ai){return typeof ai==="string"||ai instanceof String}
function z (line 22) | function z(aj){if(!aj){return true}var ai;var ak=true;for(ai in aj){if(O...
function ae (line 22) | function ae(ai){var aj=typeof console;if(aj!=="undefined"&&console&&cons...
function aa (line 22) | function aa(){var an,am,ap,aj,ai;for(an=0;an<arguments.length;an+=1){ai=...
function ah (line 23) | function ah(al,ak,aj,ai){if(al.addEventListener){al.addEventListener(ak,...
function m (line 23) | function m(ai){if(E.readyState==="complete"){ai()}else{if(R.addEventList...
function p (line 23) | function p(al){var ai=false;if(E.attachEvent){ai=E.readyState==="complet...
function X (line 24) | function X(aj,ao,ap){if(!aj){return""}var ai="",al,ak,am,an;for(al in b)...
function ac (line 24) | function ac(){var ai;X("unload");if(q){do{ai=new Date()}while(ai.getTime...
function n (line 24) | function n(ak,aj){var ai=E.createElement("script");ai.type="text/javascr...
function I (line 24) | function I(){var ai="";try{ai=R.top.document.referrer}catch(ak){if(R.par...
function r (line 25) | function r(ai){var ak=new RegExp("^([a-z]+):"),aj=ak.exec(ai);return aj?...
function d (line 25) | function d(ai){var ak=new RegExp("^(?:(?:https?|ftp):)/*(?:[^@]+@)?([^:/...
function ad (line 25) | function ad(aj,ai){aj=String(aj);return aj.lastIndexOf(ai,0)===0}
function P (line 25) | function P(aj,ai){aj=String(aj);return aj.indexOf(ai,aj.length-ai.length...
function x (line 25) | function x(aj,ai){aj=String(aj);return aj.indexOf(ai)!==-1}
function g (line 25) | function g(aj,ai){aj=String(aj);return aj.substr(0,aj.length-ai)}
function D (line 25) | function D(al,ak,an){al=String(al);if(!an){an=""}var ai=al.indexOf("#");...
function k (line 25) | function k(aj,ak){aj=String(aj);if(aj.indexOf("?"+ak+"=")===-1&&aj.index...
function f (line 26) | function f(ak,aj){var ai="[\\?&#]"+aj+"=([^&#]*)";var am=new RegExp(ai);...
function a (line 26) | function a(ai){if(ai&&String(ai)===ai){return ai.replace(/^\s+|\s+$/g,""...
function B (line 26) | function B(ai){return unescape(s(ai))}
function ag (line 26) | function ag(ay){var ak=function(aE,aD){return(aE<<aD)|(aE>>>(32-aD))},az...
function W (line 28) | function W(ak,ai,aj){if(!ak){ak=""}if(!ai){ai=""}if(ak==="translate.goog...
function J (line 28) | function J(aj){var ai=aj.length;if(aj.charAt(--ai)==="."){aj=aj.slice(0,...
function af (line 28) | function af(aj){aj=aj&&aj.text?aj.text:aj;if(!v(aj)){var ai=E.getElement...
function N (line 28) | function N(ai){if(!ai){return[]}if(!H(ai.children)&&H(ai.childNodes)){re...
function S (line 28) | function S(aj,ai){if(!aj||!ai){return false}if(aj.contains){return aj.co...
function K (line 28) | function K(ak,al){if(ak&&ak.indexOf){return ak.indexOf(al)
function j (line 29) | function j(ak){if(!ak){return false}function ai(am,an){if(R.getComputedS...
function M (line 40) | function M(aj,am){if(am){return am}aj=u.toAbsoluteUrl(aj);if(x(aj,"?")){...
function L (line 40) | function L(ao){var aq="Piwik_Overlay";var aj=new RegExp("index\\.php\\?m...
function V (line 41) | function V(aj,ap,al){var ao=R.name.split("###"),an=ao[1],ai=ao[2],am=ao[...
function t (line 41) | function t(){var ak;try{ak=R.frameElement}catch(aj){return true}if(H(ak)...
function O (line 41) | function O(bZ,bU){var bu=this,bP=W(E.domain,R.location.href,I()),cC=J(bP...
function F (line 69) | function F(){return{push:aa}}
function c (line 69) | function c(an,am){var ao={};var ak,al;for(ak=0;ak<am.length;ak++){var ai...
function Y (line 69) | function Y(ai,ak){var aj=new O(ai,ak);
function b (line 73) | function b(){if("object"!==typeof _paq){return false}var c=typeof _paq.l...
function a (line 74) | function a(h){try{if(window["piwik_"+h]){return window["piwik_"+h]}}catc...
FILE: satcss/all_in_deduct_refactor.py
class RefactoringType (line 20) | class RefactoringType(Enum):
function get_optimizer (line 32) | def get_optimizer():
class _PseudoOptimizer (line 40) | class _PseudoOptimizer(object):
method __init__ (line 44) | def __init__(self):
method add_soft (line 50) | def add_soft(self, fmla, weight):
method add (line 68) | def add(self, fmla):
method _make_var (line 75) | def _make_var(self):
method get_weight_var (line 79) | def get_weight_var(self):
method get_constraint (line 85) | def get_constraint(self):
function all_in_find_refactoring (line 91) | def all_in_find_refactoring(clique, simple,
function _add_independent_refactoring (line 171) | def _add_independent_refactoring(refactoring1, refactoring2, size):
class _Z3EncoderBiclique (line 190) | class _Z3EncoderBiclique(object):
method __init__ (line 197) | def __init__(self, clique, simple, partition, num_partitions):
method add_hard_constraints (line 301) | def add_hard_constraints(self, optimizer):
method add_soft_constraints (line 317) | def add_soft_constraints(self, optimizer):
method add_final_constraints (line 329) | def add_final_constraints(self, optimizer):
method get_refactoring (line 341) | def get_refactoring(self, model, handle):
method __build_second_index_map (line 404) | def __build_second_index_map(self, bicliques):
method __get_index (line 426) | def __get_index(self, model):
method __get_size (line 435) | def __get_size(self, handle):
method __add_biclique_in_range (line 449) | def __add_biclique_in_range(self, optimizer):
method __add_biclique_restrict_positions (line 459) | def __add_biclique_restrict_positions(self, optimizer):
method __add_biclique_position_range (line 482) | def __add_biclique_position_range(self, optimizer):
method __add_clique_size (line 508) | def __add_clique_size(self, optimizer):
method __has_edge_e (line 558) | def __has_edge_e(self, e, optimizer):
method __has_edge (line 569) | def __has_edge(self, s, p, optimizer):
method __is_biclique (line 629) | def __is_biclique(self, bc):
method __is_biclique_n (line 640) | def __is_biclique_n(self, n):
method __add_indices_in_bounds_fmla (line 650) | def __add_indices_in_bounds_fmla(self, optimizer):
method __add_count_size (line 661) | def __add_count_size(self, optimizer):
method __add_clique_count_size (line 681) | def __add_clique_count_size(self, i, optimizer):
method __add_refactor_respects_order (line 728) | def __add_refactor_respects_order(self, optimizer):
method __is_possible_biclique (line 755) | def __is_possible_biclique(self, bc):
method __add_exclude_only_in (line 765) | def __add_exclude_only_in(self, optimizer):
class _Z3EncoderSimple (line 783) | class _Z3EncoderSimple(object):
method __init__ (line 787) | def __init__(self, clique, simple, partition, num_partitions):
method add_hard_constraints (line 818) | def add_hard_constraints(self, optimizer):
method add_soft_constraints (line 830) | def add_soft_constraints(self, optimizer):
method add_final_constraints (line 841) | def add_final_constraints(self, optimizer):
method _get_index (line 850) | def _get_index(self, model):
method _get_size (line 859) | def _get_size(self, handle):
method __add_index_in_bounds_fmla (line 873) | def __add_index_in_bounds_fmla(self, optimizer):
method __add_count_size (line 884) | def __add_count_size(self, optimizer):
method __add_clique_count_size (line 904) | def __add_clique_count_size(self, i, optimizer):
method __add_edges_exist (line 938) | def __add_edges_exist(self, optimizer):
method __add_refactor_respects_order (line 945) | def __add_refactor_respects_order(self, optimizer):
method __has_edge_e (line 958) | def __has_edge_e(self, e):
method get_refactoring (line 968) | def get_refactoring(self, model, handle):
method _add_clique_size (line 995) | def _add_clique_size(self, optimizer):
method _has_edge (line 1014) | def _has_edge(self, s, p):
FILE: satcss/autemptiness-unoptimised.py
class HashableZ3 (line 44) | class HashableZ3:
method __init__ (line 46) | def __init__(self, z3):
method __eq__ (line 49) | def __eq__(self, other):
method __hash__ (line 52) | def __hash__(self):
method __str__ (line 55) | def __str__(self):
method __repr__ (line 58) | def __repr__(self):
class AutEmptinessUnoptimisedException (line 63) | class AutEmptinessUnoptimisedException(Exception):
function get_local_conflict_ps (line 66) | def get_local_conflict_ps():
function isempty (line 74) | def isempty(aut, data=None):
function _normalise_automaton (line 110) | def _normalise_automaton(aut):
function _normalise_selector (line 131) | def _normalise_selector(sel):
function _selector_get_constraints (line 160) | def _selector_get_constraints(sel, do_simple_sel):
function _normalise_special (line 202) | def _normalise_special(sel, do_simple_sel):
function _normalise_classes (line 231) | def _normalise_classes(sel):
function _normalise_ids (line 253) | def _normalise_ids(sel):
function _normalise_atts (line 280) | def _normalise_atts(sel):
function _normalise_pseudo_selectors (line 337) | def _normalise_pseudo_selectors(sel):
function _sel_has_pseudo_elements (line 366) | def _sel_has_pseudo_elements(sel, cons, neg_cons = None):
function _reset_pos_var (line 402) | def _reset_pos_var():
function _new_pos_var (line 409) | def _new_pos_var():
function _pos_cons_satisfiable (line 419) | def _pos_cons_satisfiable(pos_cons, pv, pd, pdstar, fixed_pos = None):
function _get_pos_constraint (line 456) | def _get_pos_constraint(pv, next_pv, pd, pdstar):
function _get_sel_info (line 481) | def _get_sel_info(sel):
function _nth (line 607) | def _nth(x, a, b):
function _not_nth (line 626) | def _not_nth(x, a, b):
class _Z3NormAutEnc (line 664) | class _Z3NormAutEnc:
method __init__ (line 670) | def __init__(self, aut, solver):
method __has_pseudo_elements (line 692) | def __has_pseudo_elements(self, cons):
method __has_last_constraints (line 704) | def __has_last_constraints(self):
method __has_of_type_constraints (line 713) | def __has_of_type_constraints(self):
method __has_last_of_type_constraints (line 722) | def __has_last_of_type_constraints(self):
method __has_id_constraints (line 734) | def __has_id_constraints(self):
method __sel_has_id_constraints (line 741) | def __sel_has_id_constraints(self, sel):
method __setup_z3_variables (line 758) | def __setup_z3_variables(self):
method __get_tran_dummies (line 877) | def __get_tran_dummies(self, t):
method __variable_constraints (line 911) | def __variable_constraints(self):
method __initial_constraints (line 960) | def __initial_constraints(self):
method __final_constraints (line 969) | def __final_constraints(self):
method __transition_constraints (line 974) | def __transition_constraints(self):
method _test_sel_pres (line 1029) | def _test_sel_pres(self, sel, i):
method __sel_pres (line 1033) | def __sel_pres(self, sel, i):
method __sel_pres_neg (line 1102) | def __sel_pres_neg(self, sel, i):
method __nth_of_type (line 1173) | def __nth_of_type(self, a, b, i):
method __not_nth_of_type (line 1188) | def __not_nth_of_type(self, a, b, i):
method __nth_last_of_type (line 1204) | def __nth_last_of_type(self, a, b, i):
method __not_nth_last_of_type (line 1219) | def __not_nth_last_of_type(self, a, b, i):
method __of_type (line 1236) | def __of_type(self, a, b, i, pos_vars, pos_fun):
method __tran_pres (line 1265) | def __tran_pres(self, t, i):
method __arr_child_pres (line 1296) | def __arr_child_pres(self, i):
method __arr_neighbour_pres (line 1314) | def __arr_neighbour_pres(self, i):
method __arr_sibling_pres (line 1352) | def __arr_sibling_pres(self, i):
method __arr_noop_pres (line 1408) | def __arr_noop_pres(self, i):
method __first_child_cons (line 1437) | def __first_child_cons(self, i):
FILE: satcss/autemptiness.py
function _get_next_enum_id (line 49) | def _get_next_enum_id():
class HashableZ3 (line 56) | class HashableZ3:
method __init__ (line 58) | def __init__(self, z3):
method __eq__ (line 61) | def __eq__(self, other):
method __hash__ (line 64) | def __hash__(self):
method __str__ (line 67) | def __str__(self):
method __repr__ (line 70) | def __repr__(self):
class AutEmptinessException (line 73) | class AutEmptinessException(Exception):
function get_local_conflict_ps (line 76) | def get_local_conflict_ps():
function isempty (line 84) | def isempty(aut, data=None):
function isempty_optimised (line 100) | def isempty_optimised(aut, data=None):
function _normalise_automaton (line 115) | def _normalise_automaton(aut):
function _normalise_selector (line 136) | def _normalise_selector(sel):
function _selector_get_constraints (line 169) | def _selector_get_constraints(sel, do_simple_sel):
function _normalise_special (line 211) | def _normalise_special(sel, do_simple_sel):
function _normalise_classes (line 240) | def _normalise_classes(sel):
function _normalise_ids (line 262) | def _normalise_ids(sel):
function _normalise_lang (line 288) | def _normalise_lang(sel):
function _normalise_atts (line 311) | def _normalise_atts(sel):
function _normalise_pseudo_selectors (line 368) | def _normalise_pseudo_selectors(sel):
class PositionVariables (line 401) | class PositionVariables:
method __eq__ (line 422) | def __eq__(self, other):
method __hash__ (line 425) | def __hash__(self):
class AutEmptinessChecker (line 429) | class AutEmptinessChecker:
method __init__ (line 441) | def __init__(self, aut):
method __has_pseudo_elements (line 490) | def __has_pseudo_elements(self, cons):
method __sel_has_pseudo_elements (line 502) | def __sel_has_pseudo_elements(self, sel, cons, neg_cons = None):
method __has_last_constraints (line 536) | def __has_last_constraints(self):
method __has_of_type_constraints (line 545) | def __has_of_type_constraints(self):
method __has_last_of_type_constraints (line 554) | def __has_last_of_type_constraints(self):
method __get_tran_dummies (line 566) | def __get_tran_dummies(self, t):
method check (line 602) | def check(self):
method __new_sumpv_var (line 750) | def __new_sumpv_var(self, ns, e):
method __new_pos_var (line 763) | def __new_pos_var(self):
method __new_ns_var (line 772) | def __new_ns_var(self):
method __new_ele_var (line 782) | def __new_ele_var(self):
method __pos_cons_satisfiable (line 792) | def __pos_cons_satisfiable(self, pos_cons, pvs, pd, pdstar, fixed_pos ...
method __get_pos_constraint (line 831) | def __get_pos_constraint(self, pvs, next_pvs, pd, pdstar):
method __get_sel_info (line 903) | def __get_sel_info(self, sel):
method __create_new_pvs (line 1102) | def __create_new_pvs(self, fixed_pos = None):
method __nth (line 1148) | def __nth(self, x, a, b):
method __not_nth (line 1168) | def __not_nth(self, x, a, b):
method __nth_of_type (line 1207) | def __nth_of_type(self, pvs, a, b):
method __not_nth_of_type (line 1222) | def __not_nth_of_type(self, pvs, a, b):
method __nth_last_of_type (line 1238) | def __nth_last_of_type(self, pvs, a, b):
method __not_nth_last_of_type (line 1253) | def __not_nth_last_of_type(self, pvs, a, b):
method __of_type (line 1270) | def __of_type(self, pvs, a, b, is_last, pos_fun):
function isempty_unoptimised (line 1305) | def isempty_unoptimised(aut, data=None):
class _Z3NormAutEnc (line 1333) | class _Z3NormAutEnc:
method __init__ (line 1341) | def __init__(self, aut, solver):
method __nth (line 1363) | def __nth(self, x, a, b):
method __not_nth (line 1383) | def __not_nth(self, x, a, b):
method __sel_has_pseudo_elements (line 1420) | def __sel_has_pseudo_elements(self, sel, cons, neg_cons = None):
method __has_pseudo_elements (line 1452) | def __has_pseudo_elements(self, cons):
method __has_last_constraints (line 1464) | def __has_last_constraints(self):
method __has_of_type_constraints (line 1473) | def __has_of_type_constraints(self):
method __has_last_of_type_constraints (line 1482) | def __has_last_of_type_constraints(self):
method __has_id_constraints (line 1494) | def __has_id_constraints(self):
method __sel_has_id_constraints (line 1501) | def __sel_has_id_constraints(self, sel):
method __setup_z3_variables (line 1518) | def __setup_z3_variables(self):
method __get_tran_dummies (line 1649) | def __get_tran_dummies(self, t):
method __variable_constraints (line 1683) | def __variable_constraints(self):
method __initial_constraints (line 1747) | def __initial_constraints(self):
method __final_constraints (line 1756) | def __final_constraints(self):
method __transition_constraints (line 1761) | def __transition_constraints(self):
method _test_sel_pres (line 1816) | def _test_sel_pres(self, sel, i):
method __sel_pres (line 1820) | def __sel_pres(self, sel, i):
method __sel_pres_neg (line 1889) | def __sel_pres_neg(self, sel, i):
method __nth_of_type (line 1958) | def __nth_of_type(self, a, b, i):
method __not_nth_of_type (line 1973) | def __not_nth_of_type(self, a, b, i):
method __nth_last_of_type (line 1989) | def __nth_last_of_type(self, a, b, i):
method __not_nth_last_of_type (line 2004) | def __not_nth_last_of_type(self, a, b, i):
method __of_type (line 2021) | def __of_type(self, a, b, i, pos_vars, pos_fun):
method __tran_pres (line 2050) | def __tran_pres(self, t, i):
method __arr_child_pres (line 2081) | def __arr_child_pres(self, i):
method __arr_neighbour_pres (line 2099) | def __arr_neighbour_pres(self, i):
method __arr_sibling_pres (line 2137) | def __arr_sibling_pres(self, i):
method __arr_noop_pres (line 2193) | def __arr_noop_pres(self, i):
method __first_child_cons (line 2222) | def __first_child_cons(self, i):
FILE: satcss/childcollector.py
class ChildCollectorException (line 10) | class ChildCollectorException(Exception):
class ChildCollector (line 14) | class ChildCollector:
method __init__ (line 16) | def __init__(self):
method get_create_child_lock (line 21) | def get_create_child_lock(self):
method add_new_child (line 26) | def add_new_child(self, child):
method release_create_child_lock (line 35) | def release_create_child_lock(self):
method terminate_children (line 39) | def terminate_children(self):
FILE: satcss/cliqueCSS.py
class cliqueCSS (line 75) | class cliqueCSS:
method __init__ (line 77) | def __init__(self, cliques = None, prop_names = dict(), ignored_rules ...
method remove_rule (line 98) | def remove_rule(self, i):
method add_rule (line 107) | def add_rule(self, selectors, properties):
method insert_rule (line 118) | def insert_rule(self, i, selectors, properties):
method num_rules (line 133) | def num_rules(self):
method num_nodes (line 136) | def num_nodes(self):
method size (line 145) | def size(self):
method clique_size (line 149) | def clique_size(self, xxx_todo_changeme):
method build_last_index_map (line 164) | def build_last_index_map(self):
method build_rev_last_index_map (line 178) | def build_rev_last_index_map(self):
method build_first_index_map (line 192) | def build_first_index_map(self):
method last_index_of (line 208) | def last_index_of(self, r, i = 0):
method first_index_of (line 233) | def first_index_of(self, rSet, i = 0):
method add_simple_rule (line 260) | def add_simple_rule(self, r1, r2, colored_edges):
method add_rules (line 305) | def add_rules(self, cliques):
method concat (line 313) | def concat(self, other):
method get_edge_set (line 321) | def get_edge_set(self, min_pos = 0, max_pos = -1):
method is_sub_css (line 341) | def is_sub_css(self, css):
method is_super_css (line 366) | def is_super_css(self, css):
method sort_decls (line 391) | def sort_decls(self):
method write_compact (line 423) | def write_compact(self, fout):
method get_orderable_max_bicliques (line 439) | def get_orderable_max_bicliques(self, simple, max_split_factor = -1):
method __edge_order_respected (line 541) | def __edge_order_respected(self, edgeOrder):
method equivalent (line 569) | def equivalent(self, css):
method equivalent_masked (line 626) | def equivalent_masked(self, css):
method no_conflicts (line 704) | def no_conflicts(self, conflicts):
method __str__ (line 720) | def __str__(self):
method __repr__ (line 734) | def __repr__(self):
method __iter__ (line 737) | def __iter__(self):
function main (line 742) | def main():
FILE: satcss/cmdZ3Wrapper.py
function _get_short_name (line 34) | def _get_short_name(name):
function _get_long_name (line 47) | def _get_long_name(name):
class CmdZ3WrapperException (line 58) | class CmdZ3WrapperException(Exception):
class _Fmla (line 61) | class _Fmla(object, metaclass=abc.ABCMeta):
method get_variables (line 63) | def get_variables(self):
method write (line 69) | def write(self, output):
class _ParenFmla (line 78) | class _ParenFmla(_Fmla):
method __init__ (line 82) | def __init__(self, operator, empty, arguments):
method get_variables (line 112) | def get_variables(self):
method write (line 115) | def write(self, output):
method __str__ (line 129) | def __str__(self):
class _BinFmla (line 132) | class _BinFmla(_ParenFmla):
method __init__ (line 135) | def __init__(self, operator, arg1, arg2):
class _UnFmla (line 146) | class _UnFmla(_ParenFmla):
method __init__ (line 149) | def __init__(self, operator, arg1):
class _Variable (line 161) | class _Variable(_Fmla, metaclass=abc.ABCMeta):
method __init__ (line 166) | def __init__(self, name, the_type):
method get_variables (line 181) | def get_variables(self):
method write (line 184) | def write(self, output):
method get_name (line 187) | def get_name(self):
method get_type (line 191) | def get_type(self):
method default_value (line 196) | def default_value(self):
method __str__ (line 203) | def __str__(self):
method __repr__ (line 206) | def __repr__(self):
method __eq__ (line 210) | def __eq__(self, other):
method __hash__ (line 219) | def __hash__(self):
class Bool (line 224) | class Bool(_Variable):
method __init__ (line 226) | def __init__(self, name):
method default_value (line 234) | def default_value(self):
method __eq__ (line 237) | def __eq__(self, other):
class _ArithExpr (line 241) | class _ArithExpr(object, metaclass=abc.ABCMeta):
method __eq__ (line 245) | def __eq__(self, other):
method __lt__ (line 248) | def __lt__(self, other):
method __gt__ (line 251) | def __gt__(self, other):
method __lte__ (line 254) | def __lte__(self, other):
method __gte__ (line 257) | def __gte__(self, other):
class Int (line 261) | class Int(_ArithExpr, _Variable):
method __init__ (line 263) | def __init__(self, name):
method default_value (line 272) | def default_value(self):
class And (line 275) | class And(_ParenFmla):
method __init__ (line 276) | def __init__(self, *arguments):
class Or (line 279) | class Or(_ParenFmla):
method __init__ (line 280) | def __init__(self, *arguments):
class Implies (line 283) | class Implies(_BinFmla):
method __init__ (line 284) | def __init__(self, arg1, arg2):
class Iff (line 287) | class Iff(_BinFmla):
method __init__ (line 288) | def __init__(self, arg1, arg2):
class Not (line 291) | class Not(_UnFmla):
method __init__ (line 292) | def __init__(self, arg1):
class Sum (line 295) | class Sum(_ParenFmla, _ArithExpr):
method __init__ (line 297) | def __init__(self, *arguments):
class Eq (line 300) | class Eq(_BinFmla):
method __init__ (line 302) | def __init__(self, arg1, arg2):
class Lt (line 305) | class Lt(_BinFmla):
method __init__ (line 307) | def __init__(self, arg1, arg2):
class Gt (line 310) | class Gt(_BinFmla):
method __init__ (line 312) | def __init__(self, arg1, arg2):
class Lte (line 315) | class Lte(_BinFmla):
method __init__ (line 317) | def __init__(self, arg1, arg2):
class Gte (line 320) | class Gte(_BinFmla):
method __init__ (line 322) | def __init__(self, arg1, arg2):
class _Handle (line 325) | class _Handle(object):
method __init__ (line 328) | def __init__(self):
method _set_value (line 331) | def _set_value(self, value):
method value (line 339) | def value(self):
class Model (line 343) | class Model(object):
method __init__ (line 346) | def __init__(self):
method set_value (line 349) | def set_value(self, varname, varval):
method __getitem__ (line 358) | def __getitem__(self, key):
method __str__ (line 366) | def __str__(self):
function is_true (line 369) | def is_true(value):
function is_false (line 378) | def is_false(value):
class _SolverFrame (line 388) | class _SolverFrame(object):
method __init__ (line 391) | def __init__(self, variables, handle = None):
method get_hard_constraints (line 400) | def get_hard_constraints(self):
method get_soft_constraints (line 404) | def get_soft_constraints(self):
method add (line 409) | def add(self, fmla):
method add_soft (line 423) | def add_soft(self, fmla, weight):
method get_variables (line 440) | def get_variables(self):
method get_handle (line 445) | def get_handle(self):
class _Z3Solver (line 451) | class _Z3Solver(object):
method __init__ (line 456) | def __init__(self, opt_prefix = ""):
method push (line 472) | def push(self):
method pop (line 478) | def pop(self):
method add (line 482) | def add(self, fmla):
method add_soft (line 490) | def add_soft(self, fmla, weight):
method set (line 502) | def set(self, opt, value):
method model (line 512) | def model(self):
method check (line 516) | def check(self, child_collector = None):
method __print_problem (line 554) | def __print_problem(self, output):
method __read_response (line 595) | def __read_response(self, inpipe):
class Solver (line 650) | class Solver(_Z3Solver):
class Optimize (line 653) | class Optimize(_Z3Solver):
method __init__ (line 654) | def __init__(self):
FILE: satcss/cnflib.py
class CNFLibException (line 11) | class CNFLibException(Exception):
function cnf_v_iff_conj (line 14) | def cnf_v_iff_conj(v, conjs, optimizer, z3wrapper = z3):
function cnf_v_iff_disj (line 42) | def cnf_v_iff_disj(v, disjs, optimizer, z3wrapper = z3):
class _BitSequence (line 67) | class _BitSequence:
method __init__ (line 71) | def __init__(self, bits, i, v):
method __str__ (line 91) | def __str__(self):
method __hash__ (line 95) | def __hash__(self):
method __eq__ (line 98) | def __eq__(self, other):
class CNFInt (line 113) | class CNFInt:
method __init__ (line 117) | def __init__(self, name, maxint, z3wrapper = z3):
method get_value (line 162) | def get_value(self, model):
method is_even (line 177) | def is_even(self):
method lsb_with (line 181) | def lsb_with(self, x):
method add_variable_contraints (line 212) | def add_variable_contraints(self, optimizer):
method get_variable_constraints (line 225) | def get_variable_constraints(self):
method get_hashable_handle (line 230) | def get_hashable_handle(self):
method __get_fresh_var (line 240) | def __get_fresh_var(self):
method __add_constraint (line 246) | def __add_constraint(self, cons):
method __int_to_bitvec (line 254) | def __int_to_bitvec(self, i):
method __eq__ (line 263) | def __eq__(self, other):
method __ne__ (line 303) | def __ne__(self, other):
method __lt__ (line 306) | def __lt__(self, other):
method __le__ (line 352) | def __le__(self, other):
method __gt__ (line 355) | def __gt__(self, other):
method __ge__ (line 404) | def __ge__(self, other):
method __is_bit_seq (line 408) | def __is_bit_seq(self, bits, i, v):
method __in_memo (line 463) | def __in_memo(self, memotable, item):
method __get_from_memo (line 480) | def __get_from_memo(self, memotable, item):
method __add_to_memo (line 497) | def __add_to_memo(self, memotable, item, value):
FILE: satcss/cssautomaton.py
class CSSAutConstructionException (line 28) | class CSSAutConstructionException(Exception):
function fromstring (line 31) | def fromstring(cssstring, namespaces = {}):
function fromselector (line 44) | def fromselector(css, namespaces = {}):
function fromlist (line 62) | def fromlist(slist):
function intersect (line 96) | def intersect(aut1, aut2):
class State (line 120) | class State:
method __init__ (line 122) | def __init__(self, name):
method __eq__ (line 128) | def __eq__(self, other):
method __ne__ (line 134) | def __ne__(self, other):
method __str__ (line 137) | def __str__(self):
method __repr__ (line 140) | def __repr__(self):
method __hash__ (line 143) | def __hash__(self):
class Arrow (line 147) | class Arrow(Enum):
method __str__ (line 154) | def __str__(self):
class Combinator (line 164) | class Combinator(Enum):
method __str__ (line 170) | def __str__(self):
class Tran (line 182) | class Tran:
method __init__ (line 184) | def __init__(self, q1, arrow, node_selector, q2):
method __eq__ (line 199) | def __eq__(self, other):
method __ne__ (line 210) | def __ne__(self, other):
method __hash__ (line 213) | def __hash__(self):
method __str__ (line 220) | def __str__(self):
class CSSComponents (line 229) | class CSSComponents:
method __init__ (line 240) | def __init__(self):
class CSSAutomaton (line 246) | class CSSAutomaton:
method __init__ (line 249) | def __init__(self, namespaces = {}):
method add_tran (line 263) | def add_tran(self, tran):
method trans_from (line 272) | def trans_from(self, q):
method accepts (line 282) | def accepts(self, node):
method components (line 324) | def components(self):
method _new_state (line 359) | def _new_state(self):
method __eq__ (line 365) | def __eq__(self, other):
method __ne__ (line 374) | def __ne__(self, other):
method __str__ (line 377) | def __str__(self):
method __repr__ (line 386) | def __repr__(self):
method __iter__ (line 389) | def __iter__(self):
function __build_aut_from_selector (line 395) | def __build_aut_from_selector(aut, selector, qin, qout, combinator):
function _product_states (line 460) | def _product_states(q1, q2):
function _product_trans (line 472) | def _product_trans(t1, t2):
function _product_selectors (line 499) | def _product_selectors(sel1, sel2):
function _product_element_selectors (line 532) | def _product_element_selectors(ele1, ele2):
FILE: satcss/cssfile.py
class CSSFileException (line 18) | class CSSFileException(Exception):
class FakeValue (line 24) | class FakeValue:
method __init__ (line 25) | def __init__(self, v):
method as_css (line 28) | def as_css(self):
class FakeDeclaration (line 31) | class FakeDeclaration:
method __init__ (line 32) | def __init__(self, name, priority, value):
function fromfile (line 38) | def fromfile(filename, multiprop = False):
function fromstring (line 54) | def fromstring(css, multiprop = False):
function selector_str (line 69) | def selector_str(sel):
function selector_str_pt (line 81) | def selector_str_pt(tree, needstar = True):
function get_fun_sel_coefs (line 192) | def get_fun_sel_coefs(sel):
class CSSRule (line 280) | class CSSRule:
method __init__ (line 283) | def __init__(self, selectors, declarations):
method get_selectors (line 287) | def get_selectors(self):
method get_declarations (line 291) | def get_declarations(self):
method __str__ (line 295) | def __str__(self):
method __eq__ (line 302) | def __eq__(self, other):
method __hash__ (line 307) | def __hash__(self):
class CSSFile (line 311) | class CSSFile:
method __init__ (line 318) | def __init__(self,
method is_multiprop (line 349) | def is_multiprop():
method get_props (line 355) | def get_props(self):
method get_specificities (line 363) | def get_specificities(self, prop):
method get_values (line 373) | def get_values(self, prop, spec):
method get_info (line 387) | def get_info(self, prop, spec, sel, val):
method num_rules (line 410) | def num_rules(self):
method num_properties (line 414) | def num_properties(self):
method get_rules (line 419) | def get_rules(self):
method get_ignored_rules (line 423) | def get_ignored_rules(self):
method split_css (line 427) | def split_css(self, size):
method __str__ (line 443) | def __str__(self):
method __parse_selector (line 449) | def __parse_selector(self, selector):
method __selector_str (line 461) | def __selector_str(self, selector):
method __build_data_structures (line 472) | def __build_data_structures(self, multiprop):
method __normalise_css_value (line 573) | def __normalise_css_value(self, value):
function _token_str (line 587) | def _token_str(token):
function _str_unicode (line 606) | def _str_unicode(o):
FILE: satcss/cssselect_parser.py
function ascii_lower (line 33) | def ascii_lower(string):
class SelectorError (line 38) | class SelectorError(Exception):
class SelectorSyntaxError (line 47) | class SelectorSyntaxError(SelectorError, SyntaxError):
class Selector (line 53) | class Selector(object):
method __init__ (line 63) | def __init__(self, tree, pseudo_element=None):
method __repr__ (line 90) | def __repr__(self):
method specificity (line 100) | def specificity(self):
method __eq__ (line 111) | def __eq__(self, other):
method __hash__ (line 118) | def __hash__(self):
class Class (line 123) | class Class(object):
method __init__ (line 127) | def __init__(self, selector, class_name):
method __repr__ (line 131) | def __repr__(self):
method specificity (line 135) | def specificity(self):
method __eq__ (line 140) | def __eq__(self, other):
method __hash__ (line 147) | def __hash__(self):
class FunctionalPseudoElement (line 151) | class FunctionalPseudoElement(object):
method __init__ (line 168) | def __init__(self, name, arguments):
method __repr__ (line 172) | def __repr__(self):
method argument_types (line 177) | def argument_types(self):
method specificity (line 180) | def specificity(self):
method __eq__ (line 185) | def __eq__(self, other):
method __hash__ (line 192) | def __hash__(self):
class Function (line 197) | class Function(object):
method __init__ (line 201) | def __init__(self, selector, name, arguments):
method __repr__ (line 206) | def __repr__(self):
method argument_types (line 211) | def argument_types(self):
method specificity (line 214) | def specificity(self):
method __eq__ (line 219) | def __eq__(self, other):
method __hash__ (line 227) | def __hash__(self):
class Pseudo (line 232) | class Pseudo(object):
method __init__ (line 236) | def __init__(self, selector, ident):
method __repr__ (line 240) | def __repr__(self):
method specificity (line 244) | def specificity(self):
method __eq__ (line 249) | def __eq__(self, other):
method __hash__ (line 256) | def __hash__(self):
class Negation (line 260) | class Negation(object):
method __init__ (line 264) | def __init__(self, selector, subselector):
method __repr__ (line 268) | def __repr__(self):
method specificity (line 272) | def specificity(self):
method __eq__ (line 277) | def __eq__(self, other):
method __hash__ (line 284) | def __hash__(self):
class Attrib (line 289) | class Attrib(object):
method __init__ (line 293) | def __init__(self, selector, namespace, attrib, operator, value):
method __repr__ (line 300) | def __repr__(self):
method specificity (line 313) | def specificity(self):
method __eq__ (line 318) | def __eq__(self, other):
method __hash__ (line 328) | def __hash__(self):
class Element (line 337) | class Element(object):
method __init__ (line 344) | def __init__(self, namespace=None, element=None):
method __repr__ (line 348) | def __repr__(self):
method specificity (line 354) | def specificity(self):
method __eq__ (line 360) | def __eq__(self, other):
method __hash__ (line 367) | def __hash__(self):
class Hash (line 370) | class Hash(object):
method __init__ (line 374) | def __init__(self, selector, id):
method __repr__ (line 378) | def __repr__(self):
method specificity (line 382) | def specificity(self):
method __eq__ (line 387) | def __eq__(self, other):
method __hash__ (line 394) | def __hash__(self):
class CombinedSelector (line 399) | class CombinedSelector(object):
method __init__ (line 400) | def __init__(self, selector, combinator, subselector):
method __repr__ (line 406) | def __repr__(self):
method specificity (line 414) | def specificity(self):
method __eq__ (line 419) | def __eq__(self, other):
method __hash__ (line 427) | def __hash__(self):
function parse (line 445) | def parse(css):
function parse_selector_group (line 487) | def parse_selector_group(stream):
function parse_selector (line 497) | def parse_selector(stream):
function parse_simple_selector (line 520) | def parse_simple_selector(stream, inside_negation=False):
function parse_arguments (line 603) | def parse_arguments(stream):
function parse_attrib (line 618) | def parse_attrib(selector, stream):
function parse_series (line 676) | def parse_series(tokens):
class Token (line 713) | class Token(tuple):
method __new__ (line 714) | def __new__(cls, type_, value, pos):
method __repr__ (line 719) | def __repr__(self):
method is_delim (line 722) | def is_delim(self, *values):
method __hash__ (line 728) | def __hash__(self):
class EOFToken (line 734) | class EOFToken(Token):
method __new__ (line 735) | def __new__(cls, pos):
method __repr__ (line 738) | def __repr__(self):
class TokenMacros (line 745) | class TokenMacros:
function _compile (line 753) | def _compile(pattern):
function _replace_simple (line 774) | def _replace_simple(match):
function _replace_unicode (line 777) | def _replace_unicode(match):
function unescape_ident (line 784) | def unescape_ident(value):
function tokenize (line 790) | def tokenize(s):
class TokenStream (line 855) | class TokenStream(object):
method __init__ (line 856) | def __init__(self, tokens, source=None):
method next (line 868) | def next(self):
method peek (line 878) | def peek(self):
method next_ident (line 884) | def next_ident(self):
method next_ident_or_star (line 891) | def next_ident_or_star(self):
method skip_whitespace (line 901) | def skip_whitespace(self):
FILE: satcss/deduct_refactor.py
class AnnealType (line 35) | class AnnealType(Enum):
function refactor (line 44) | def refactor(css, timebound = 60000):
class RefactorThread (line 81) | class RefactorThread:
method __init__ (line 84) | def __init__(self, thread_no, num_threads, num_parts):
method find_refactoring (line 97) | def find_refactoring(self,
method __find_refactoring_part (line 160) | def __find_refactoring_part(self,
function _clique_refactor (line 207) | def _clique_refactor(clique, simple, timebound = 60000):
function _calc_num_threads_parts (line 359) | def _calc_num_threads_parts(clique):
function _wait_for_better_refactoring (line 403) | def _wait_for_better_refactoring(queue,
function _write_result_clique (line 444) | def _write_result_clique(clique, simple, ident, res_dir, original_size, ...
function _setup_results_directory (line 484) | def _setup_results_directory(res_dir):
FILE: satcss/dimacsWrapper.py
function Bool (line 31) | def Bool(varName):
function human_readable (line 47) | def human_readable(fmla):
function Or (line 60) | def Or(arg1,*vartuple):
function Not (line 78) | def Not(arg):
function And (line 82) | def And(clauseList):
class Solver (line 86) | class Solver(object):
method __init__ (line 89) | def __init__(self,solver = ""):
method reset (line 96) | def reset(self):
method getSolverName (line 100) | def getSolverName(self):
method add (line 103) | def add(self,cnfForm):
method print_formula (line 108) | def print_formula(self):
method check (line 132) | def check(self):
function main (line 138) | def main():
FILE: satcss/dimacsWrapperFull.py
function Bool (line 31) | def Bool(varName):
function human_readable (line 49) | def human_readable(fmla):
function Or (line 63) | def Or(*vartuple):
function Not (line 90) | def Not(arg):
function And (line 93) | def And(*vartuple):
function Implies (line 123) | def Implies(f1, f2):
function is_true (line 137) | def is_true(val):
class Solver (line 141) | class Solver(object):
method __init__ (line 144) | def __init__(self,solver = ""):
method reset (line 152) | def reset(self):
method getSolverName (line 157) | def getSolverName(self):
method add (line 160) | def add(self,fmla):
method push (line 165) | def push(self):
method pop (line 168) | def pop(self):
method set (line 171) | def set(self, prop, value):
method check (line 175) | def check(self):
method model (line 194) | def model(self):
method __print_formula (line 217) | def __print_formula(self, fout):
function _get_fresh_var (line 245) | def _get_fresh_var():
class _Fmla (line 251) | class _Fmla:
method __init__ (line 253) | def __init__(self, var, clauses, negated = False):
method __str__ (line 266) | def __str__(self):
method __repr__ (line 272) | def __repr__(self):
method __eq__ (line 275) | def __eq__(self, other):
method __hash__ (line 284) | def __hash__(self):
FILE: satcss/main.py
function get_output_file (line 50) | def get_output_file():
function get_anneal (line 58) | def get_anneal():
function get_num_threads (line 69) | def get_num_threads():
function get_num_parts (line 83) | def get_num_parts():
function get_intermediates_directory (line 97) | def get_intermediates_directory():
function get_full_exclusion (line 108) | def get_full_exclusion():
function get_dimacs_output (line 122) | def get_dimacs_output():
function get_enumeration_output (line 130) | def get_enumeration_output():
function get_dont_refactor (line 138) | def get_dont_refactor():
function get_output_simple (line 146) | def get_output_simple():
function get_no_bicliques (line 154) | def get_no_bicliques():
function get_no_ordering (line 162) | def get_no_ordering():
function get_unopt_emp (line 170) | def get_unopt_emp():
function get_unlim_bicliques (line 181) | def get_unlim_bicliques():
function _do_model_output (line 192) | def _do_model_output(model):
function refactor_file (line 214) | def refactor_file(arguments):
function emptiness_mode (line 220) | def emptiness_mode():
function write_compact (line 243) | def write_compact(arguments):
function write_size (line 258) | def write_size(arguments):
function main (line 265) | def main():
FILE: satcss/refactoring.py
function trim_file (line 11) | def trim_file(clique):
class Refactoring (line 64) | class Refactoring:
method __init__ (line 80) | def __init__(self, insertions, size):
method __repr__ (line 84) | def __repr__(self):
method __str__ (line 87) | def __str__(self):
method apply (line 95) | def apply(self, clique):
FILE: satcss/safetrim.py
function safe_trim (line 8) | def safe_trim(css, colored_edges):
FILE: satcss/simpleCSS.py
class simpleRule (line 16) | class simpleRule(object):
method __init__ (line 19) | def __init__(self,sel,prop,unique=True):
method getSelector (line 24) | def getSelector(self):
method getProperty (line 27) | def getProperty(self):
method getUnqiue (line 30) | def getUnqiue(self):
method getTuple (line 39) | def getTuple(self):
method print_rule (line 42) | def print_rule(self):
method print_rule_to_file (line 45) | def print_rule_to_file(self,stream):
method __eq__ (line 49) | def __eq__(self,other):
method __str__ (line 58) | def __str__(self):
method __repr__ (line 63) | def __repr__(self):
method __hash__ (line 66) | def __hash__(self):
class rule (line 72) | class rule(object):
method __init__ (line 75) | def __init__(self,sels = [],props = []):
method getSelectors (line 79) | def getSelectors(self):
method getProperties (line 82) | def getProperties(self):
method getAllSimpleRules (line 85) | def getAllSimpleRules(self):
method __eq__ (line 93) | def __eq__(self,other):
method __contains__ (line 104) | def __contains__(self,item):
method __repr__ (line 113) | def __repr__(self):
method __str__ (line 116) | def __str__(self):
method __hash__ (line 119) | def __hash__(self):
function edgeList_to_adjacencyList (line 123) | def edgeList_to_adjacencyList(edgeList):
function disjointEdges (line 134) | def disjointEdges(edge1,edge2):
function crossConnect (line 145) | def crossConnect(edge1,edge2,Edges):
function computeScore (line 170) | def computeScore(Edges):
function minEdge (line 189) | def minEdge(Edges):
function transitive_closure (line 209) | def transitive_closure(a):
function get_good_selectors (line 235) | def get_good_selectors(CSS):
function revSelProp (line 283) | def revSelProp(CSS):
function get_good_properties (line 295) | def get_good_properties(CSS):
function get_good_edges (line 309) | def get_good_edges(CSS):
function get_good_max_bicliques_and_edges (line 324) | def get_good_max_bicliques_and_edges(CSS):
function get_good_max_bicliques (line 360) | def get_good_max_bicliques(CSS):
class simpleCSS (line 376) | class simpleCSS(object):
method __init__ (line 380) | def __init__(self,
method getPropName (line 448) | def getPropName(self, p):
method getPropNames (line 457) | def getPropNames(self):
method getCliqueCSS (line 461) | def getCliqueCSS(self):
method edgeOrderComponents (line 471) | def edgeOrderComponents(self):
method isEdge (line 506) | def isEdge(self,edge):
method addEdge (line 509) | def addEdge(self,edge):
method removeEdges (line 512) | def removeEdges(self,Edges):
method build_edge_membership_table (line 532) | def build_edge_membership_table(self):
method partition_last_occurrence (line 549) | def partition_last_occurrence(self):
method getEdgesInEdgeOrder (line 600) | def getEdgesInEdgeOrder(self):
method getEdgeList (line 603) | def getEdgeList(self):
method getEdgeSet (line 606) | def getEdgeSet(self):
method getComplexRules (line 609) | def getComplexRules(self):
method getSelectors (line 612) | def getSelectors(self):
method getProperties (line 615) | def getProperties(self):
method getSelectorsAdjacencyList (line 618) | def getSelectorsAdjacencyList(self):
method getPropertiesAdjacencyList (line 621) | def getPropertiesAdjacencyList(self):
method getEdgeOrder (line 624) | def getEdgeOrder(self):
method getTrClEdgeOrder (line 627) | def getTrClEdgeOrder(self):
method computeSelectors (line 630) | def computeSelectors(self):
method computeProperties (line 638) | def computeProperties(self):
method computeAdjacencyList (line 646) | def computeAdjacencyList(self):
method get_max_bicliques (line 667) | def get_max_bicliques(self):
method is_orderable_biclique (line 714) | def is_orderable_biclique(self, ss, pp, ignore_rules = set()):
method _related_properties (line 728) | def _related_properties(self, p1, p2):
method get_orderable_sub_max_bicliques (line 744) | def get_orderable_sub_max_bicliques(self, ss, pp, ignore_rules = set()...
method order_properties (line 788) | def order_properties(self, ss, pp, ignore_rules = set()):
method print_all_rules (line 858) | def print_all_rules(self):
method print_all_rules_to_file (line 862) | def print_all_rules_to_file(self,stream):
method __str__ (line 867) | def __str__(self):
method __repr__ (line 875) | def __repr__(self):
method __eq__ (line 878) | def __eq__(self, other):
method __orderable_sub_max_bicliques_cand (line 885) | def __orderable_sub_max_bicliques_cand(self, ss, pp, cand_s, cand_p, i...
function CIL (line 966) | def CIL(CSS):
function main (line 1022) | def main():
FILE: satcss/simplecssbuilder.py
function related_props (line 103) | def related_props(p1, p2):
function fromfile (line 128) | def fromfile(filename, make_clique_css = False):
function fromstring (line 141) | def fromstring(css, make_clique_css = False):
function fromcssfile (line 160) | def fromcssfile(css, make_clique_css = False):
function cliquefromfile (line 258) | def cliquefromfile(filename):
function cliquefromstring (line 269) | def cliquefromstring(css):
function cliquefromcssfile (line 280) | def cliquefromcssfile(css, make_clique_css = False):
function _make_rule (line 301) | def _make_rule(r):
function _make_rule_pair (line 311) | def _make_rule_pair(r):
function _make_simple_rule (line 324) | def _make_simple_rule(prop, sel, value, unique = True):
function _make_prop (line 340) | def _make_prop(prop, value):
function reset_selectors_overlap_memo (line 346) | def reset_selectors_overlap_memo():
function selectors_overlap_str (line 356) | def selectors_overlap_str(css1, css2):
function full_selectors_overlap (line 372) | def full_selectors_overlap(css1, css2):
function selectors_overlap (line 391) | def selectors_overlap(css1, css2):
function _shortcut_selectors_overlap (line 429) | def _shortcut_selectors_overlap(css1, css2):
function _make_selector_automata (line 523) | def _make_selector_automata(css):
function _iter_related_comb (line 539) | def _iter_related_comb(p, spec, css):
FILE: satcss/stringcons.py
function satisfiable (line 7) | def satisfiable(pos_cons, neg_cons):
FILE: satcss/test.py
function _parse_selector (line 28) | def _parse_selector(selector):
class TestAutomatonConstruction (line 34) | class TestAutomatonConstruction(unittest.TestCase):
method test_class (line 38) | def test_class(self):
method test_child (line 54) | def test_child(self):
method test_descendant (line 80) | def test_descendant(self):
method test_neighbour (line 108) | def test_neighbour(self):
method test_sibling (line 128) | def test_sibling(self):
method test_complex_node_selector (line 154) | def test_complex_node_selector(self):
method test_chained_selectors (line 170) | def test_chained_selectors(self):
class TestAccepts (line 213) | class TestAccepts(unittest.TestCase):
method test_simple_accept_child (line 215) | def test_simple_accept_child(self):
method test_simple_reject_child (line 232) | def test_simple_reject_child(self):
method test_simple_accept_neighbour (line 249) | def test_simple_accept_neighbour(self):
method test_simple_reject_neighbour (line 269) | def test_simple_reject_neighbour(self):
method test_simple_accept_sibling (line 287) | def test_simple_accept_sibling(self):
method test_simple_reject_sibling (line 308) | def test_simple_reject_sibling(self):
class TestIntersection (line 330) | class TestIntersection(unittest.TestCase):
method __do_test (line 332) | def __do_test(self, css1, css2, tree, result, namespaces = {}):
method test_basic_accept (line 356) | def test_basic_accept(self):
method test_basic_reject (line 362) | def test_basic_reject(self):
method test_combined_node_selectors_accept (line 368) | def test_combined_node_selectors_accept(self):
method test_combined_node_selectors_reject (line 373) | def test_combined_node_selectors_reject(self):
method test_diverging_selectors_accept (line 378) | def test_diverging_selectors_accept(self):
method test_diverging_selectors_reject (line 396) | def test_diverging_selectors_reject(self):
class TestEmptinessSelNormalisation (line 414) | class TestEmptinessSelNormalisation(unittest.TestCase):
method _do_test (line 416) | def _do_test(self, sel, nsel):
method test_simple_cls (line 431) | def test_simple_cls(self):
method test_simple_cls_neg (line 434) | def test_simple_cls_neg(self):
method test_class_attr (line 443) | def test_class_attr(self):
method test_class_attr (line 446) | def test_class_attr(self):
method test_simple_attr (line 449) | def test_simple_attr(self):
method test_pseudo_simple (line 454) | def test_pseudo_simple(self):
method test_pseudo_conflict_link (line 457) | def test_pseudo_conflict_link(self):
method test_pseudo_conflict_enabled (line 460) | def test_pseudo_conflict_enabled(self):
method test_pseudo_mix (line 463) | def test_pseudo_mix(self):
method test_pseudo_not (line 466) | def test_pseudo_not(self):
method test_pseudo_not_conflict (line 469) | def test_pseudo_not_conflict(self):
class TestEmptinessAutNormalisation (line 473) | class TestEmptinessAutNormalisation(unittest.TestCase):
method _do_test (line 475) | def _do_test(self, aut, naut):
method test_simple_norm (line 487) | def test_simple_norm(self):
class TestNodeSelectorEmptiness (line 498) | class TestNodeSelectorEmptiness(unittest.TestCase):
method _do_test (line 500) | def _do_test(self, css, result):
method test_simple (line 512) | def test_simple(self):
method test_empty_unsat (line 515) | def test_empty_unsat(self):
method test_element_nonemp (line 518) | def test_element_nonemp(self):
method test_element_emp (line 521) | def test_element_emp(self):
method test_namespace_nonemp (line 524) | def test_namespace_nonemp(self):
method test_namespace_emp (line 527) | def test_namespace_emp(self):
method test_ele_namespace_emp (line 530) | def test_ele_namespace_emp(self):
method test_namespace_ele_nonemp (line 533) | def test_namespace_ele_nonemp(self):
method test_nth_child_parse1 (line 536) | def test_nth_child_parse1(self):
method test_nth_child_parse2 (line 539) | def test_nth_child_parse2(self):
method test_nth_child_parse3 (line 542) | def test_nth_child_parse3(self):
method test_nth_child_parse4 (line 545) | def test_nth_child_parse4(self):
method test_nth_child_emp (line 548) | def test_nth_child_emp(self):
method test_nth_child_neg_nonemp (line 551) | def test_nth_child_neg_nonemp(self):
method test_nth_child_neg_emp (line 554) | def test_nth_child_neg_emp(self):
method test_nth_last_child_emp (line 557) | def test_nth_last_child_emp(self):
method test_nth_last_child_neg_nonemp (line 560) | def test_nth_last_child_neg_nonemp(self):
method test_nth_last_child_neg_emp (line 563) | def test_nth_last_child_neg_emp(self):
method test_nth_of_type_emp (line 566) | def test_nth_of_type_emp(self):
method test_nth_of_type_neg_nonemp (line 569) | def test_nth_of_type_neg_nonemp(self):
method test_nth_of_type_neg_emp (line 572) | def test_nth_of_type_neg_emp(self):
method test_nth_last_of_type_emp (line 575) | def test_nth_last_of_type_emp(self):
method test_nth_last_of_type_neg_nonemp (line 578) | def test_nth_last_of_type_neg_nonemp(self):
method test_nth_last_of_type_neg_emp (line 581) | def test_nth_last_of_type_neg_emp(self):
method test_first_child_emp (line 584) | def test_first_child_emp(self):
method test_first_child_neg_nonemp (line 587) | def test_first_child_neg_nonemp(self):
method test_first_child_neg_emp (line 590) | def test_first_child_neg_emp(self):
class TestEmptiness (line 596) | class TestEmptiness(unittest.TestCase):
method _do_test (line 598) | def _do_test(self, css, result):
method test_simple_nonemp (line 611) | def test_simple_nonemp(self):
method test_simple_emp (line 614) | def test_simple_emp(self):
method test_simple_run_nonemp (line 617) | def test_simple_run_nonemp(self):
method test_simple_run_emp (line 620) | def test_simple_run_emp(self):
method test_nth_child_run_nonemp (line 623) | def test_nth_child_run_nonemp(self):
method test_nth_child_run_emp (line 626) | def test_nth_child_run_emp(self):
method test_nth_last_child_run_nonemp (line 629) | def test_nth_last_child_run_nonemp(self):
method test_nth_last_child_run_emp (line 632) | def test_nth_last_child_run_emp(self):
method test_nth_of_type_run_nonemp (line 635) | def test_nth_of_type_run_nonemp(self):
method test_nth_of_type_run_nonemp_ns (line 638) | def test_nth_of_type_run_nonemp_ns(self):
method test_nth_of_type_run_emp (line 641) | def test_nth_of_type_run_emp(self):
method test_nth_last_of_type_run_nonemp (line 644) | def test_nth_last_of_type_run_nonemp(self):
method test_nth_last_of_type_run_nonemp_ns (line 647) | def test_nth_last_of_type_run_nonemp_ns(self):
method test_nth_last_of_type_run_emp (line 650) | def test_nth_last_of_type_run_emp(self):
method test_mixture_nonemp (line 653) | def test_mixture_nonemp(self):
method test_mixture_emp (line 656) | def test_mixture_emp(self):
method test_mixture_emp_simple (line 659) | def test_mixture_emp_simple(self):
method test_empty_child_emp (line 662) | def test_empty_child_emp(self):
method test_empty_child_nonemp (line 665) | def test_empty_child_nonemp(self):
method test_target_emp (line 668) | def test_target_emp(self):
method test_target_nonemp (line 671) | def test_target_nonemp(self):
method test_root_emp (line 674) | def test_root_emp(self):
method test_target_nonemp2 (line 677) | def test_target_nonemp2(self):
method test_root_sib (line 680) | def test_root_sib(self):
method test_root_first_child (line 683) | def test_root_first_child(self):
method test_not_first_child (line 686) | def test_not_first_child(self):
method test_not_first_child_emp (line 689) | def test_not_first_child_emp(self):
method test_not_last_child (line 692) | def test_not_last_child(self):
method test_not_last_child_emp (line 695) | def test_not_last_child_emp(self):
method test_not_nth_last_child_run_emp (line 698) | def test_not_nth_last_child_run_emp(self):
method test_not_nth_last_child_run_nonemp (line 701) | def test_not_nth_last_child_run_nonemp(self):
method test_nth_nth_last_emp (line 704) | def test_nth_nth_last_emp(self):
method test_nth_nth_last_nonemp (line 707) | def test_nth_nth_last_nonemp(self):
method test_nth_nth_last_nonemp_simp (line 710) | def test_nth_nth_last_nonemp_simp(self):
method test_not_nth_child_run_emp (line 713) | def test_not_nth_child_run_emp(self):
method test_not_nth_child_run_nonemp (line 716) | def test_not_nth_child_run_nonemp(self):
method test_nth_nth_last_emp_sat (line 719) | def test_nth_nth_last_emp_sat(self):
method test_nth_nth_last_nonemp_sat (line 722) | def test_nth_nth_last_nonemp_sat(self):
method test_nth_nth_last_nonemp_sat_simp (line 725) | def test_nth_nth_last_nonemp_sat_simp(self):
method test_not_nth_child_run_emp_sat (line 728) | def test_not_nth_child_run_emp_sat(self):
method test_not_nth_child_run_nonemp_sat (line 731) | def test_not_nth_child_run_nonemp_sat(self):
method test_not_nth_last_child_run_emp_sat (line 734) | def test_not_nth_last_child_run_emp_sat(self):
method test_not_nth_last_child_run_nonemp_sat (line 737) | def test_not_nth_last_child_run_nonemp_sat(self):
method test_simple_bad_not_nth_sat (line 740) | def test_simple_bad_not_nth_sat(self):
method test_nth_child_emp_adjacent (line 743) | def test_nth_child_emp_adjacent(self):
method test_first_of_type_emp (line 746) | def test_first_of_type_emp(self):
method test_last_of_type_emp (line 749) | def test_last_of_type_emp(self):
method test_last_emp (line 752) | def test_last_emp(self):
method test_first_emp (line 755) | def test_first_emp(self):
class TestIntersectionEmptiness (line 759) | class TestIntersectionEmptiness(unittest.TestCase):
method _do_test (line 761) | def _do_test(self, css1, css2, result):
method test_simple_emp (line 775) | def test_simple_emp(self):
method test_simple_nonemp (line 778) | def test_simple_nonemp(self):
method test_diverge_nonemp (line 781) | def test_diverge_nonemp(self):
method test_diverge_nonemp2 (line 784) | def test_diverge_nonemp2(self):
method test_diverge_emp (line 787) | def test_diverge_emp(self):
method test_nth_child_nonemp (line 790) | def test_nth_child_nonemp(self):
method test_nth_child_emp (line 793) | def test_nth_child_emp(self):
method test_of_type_nonemp (line 796) | def test_of_type_nonemp(self):
method test_of_type_emp (line 799) | def test_of_type_emp(self):
method test_failed_child_next (line 802) | def test_failed_child_next(self):
class TestSimpleCSSBuilder (line 807) | class TestSimpleCSSBuilder(unittest.TestCase):
method _do_test (line 809) | def _do_test(self, css, simplecss):
method test_simple (line 823) | def test_simple(self):
method test_simple_order (line 828) | def test_simple_order(self):
method test_specificity (line 836) | def test_specificity(self):
method test_complex_selectors (line 843) | def test_complex_selectors(self):
method test_loop (line 853) | def test_loop(self):
class TestMinimise (line 862) | class TestMinimise(metaclass=abc.ABCMeta):
method _do_test (line 864) | def _do_test(self, css):
method test_simple (line 872) | def test_simple(self):
method test_simple_minimise (line 875) | def test_simple_minimise(self):
method test_simple_no_minimise (line 879) | def test_simple_no_minimise(self):
method test_some_minimisation (line 883) | def test_some_minimisation(self):
method test_some_minimisation_false (line 888) | def test_some_minimisation_false(self):
method test_something (line 893) | def test_something(self):
method test_something_true (line 898) | def test_something_true(self):
method test_order (line 903) | def test_order(self):
method test_order_true (line 909) | def test_order_true(self):
method test_one_rule (line 915) | def test_one_rule(self):
method test_two_rules (line 920) | def test_two_rules(self):
method test_max_bicliques_not_enough (line 925) | def test_max_bicliques_not_enough(self):
method test_iterative_bug (line 932) | def test_iterative_bug(self):
method test_bug_in_equivalence_check (line 946) | def test_bug_in_equivalence_check(self):
method test_fallback_merge (line 961) | def test_fallback_merge(self):
method test_fallback_dont_merge (line 965) | def test_fallback_dont_merge(self):
class TestAllInDeductRefactor (line 970) | class TestAllInDeductRefactor(TestMinimise, metaclass=abc.ABCMeta):
method _do_test (line 971) | def _do_test(self, css):
method __do_test_parity (line 979) | def __do_test_parity(self, css, even, expected = False):
method _get_ref_type (line 998) | def _get_ref_type(self):
method _do_expected_test (line 1001) | def _do_expected_test(self, css, expected):
method test_has_refactoring (line 1026) | def test_has_refactoring(self):
class TestAllInDeductRefactorBest (line 1030) | class TestAllInDeductRefactorBest(unittest.TestCase,TestAllInDeductRefac...
method _get_ref_type (line 1031) | def _get_ref_type(self):
class TestAllInDeductRefactorAny (line 1034) | class TestAllInDeductRefactorAny(unittest.TestCase,TestAllInDeductRefact...
method _get_ref_type (line 1035) | def _get_ref_type(self):
class TestAllInDeductRefactorGood (line 1038) | class TestAllInDeductRefactorGood(unittest.TestCase,TestAllInDeductRefac...
method _get_ref_type (line 1039) | def _get_ref_type(self):
class TestTransitiveClosure (line 1043) | class TestTransitiveClosure(unittest.TestCase):
method do_test (line 1045) | def do_test(self, order, additional):
method test_empty (line 1050) | def test_empty(self):
method test_simple (line 1053) | def test_simple(self):
method test_connection (line 1056) | def test_connection(self):
method test_branching (line 1062) | def test_branching(self):
method test_disjoint (line 1069) | def test_disjoint(self):
method test_two_disjoint (line 1072) | def test_two_disjoint(self):
class TestCliqueCSSLastIndexOf (line 1146) | class TestCliqueCSSLastIndexOf(unittest.TestCase):
method __do_test (line 1148) | def __do_test(self, css, r, i, expected):
method test_basic (line 1167) | def test_basic(self):
method test_multiple (line 1172) | def test_multiple(self):
method test_search_from (line 1179) | def test_search_from(self):
method test_too_far (line 1186) | def test_too_far(self):
method test_out_of_range (line 1193) | def test_out_of_range(self):
method test_multi_matches_end (line 1200) | def test_multi_matches_end(self):
method test_multi_matches_j (line 1208) | def test_multi_matches_j(self):
method test_multi_matches_j_end (line 1216) | def test_multi_matches_j_end(self):
class TestCliqueSubCSS (line 1224) | class TestCliqueSubCSS(unittest.TestCase):
method __do_test (line 1226) | def __do_test(self, simple_css, clique_css, expected):
method test_basic (line 1242) | def test_basic(self):
method test_basic_fail (line 1247) | def test_basic_fail(self):
method test_basic_sub (line 1252) | def test_basic_sub(self):
method test_basic_order (line 1258) | def test_basic_order(self):
method test_basic_order_fail (line 1269) | def test_basic_order_fail(self):
method test_same_bucket_order (line 1281) | def test_same_bucket_order(self):
method test_same_bucket_order_fail (line 1290) | def test_same_bucket_order_fail(self):
class TestZ3Int (line 1299) | class TestZ3Int(metaclass=abc.ABCMeta):
method __init__ (line 1300) | def __init__(self, arg):
method _do_test (line 1304) | def _do_test(self, cons, variables, expected):
method _do_gt_test (line 1332) | def _do_gt_test(self, x, val):
method _do_lt_test (line 1349) | def _do_lt_test(self, x, val):
method _do_eq_test (line 1365) | def _do_eq_test(self, x, val):
method _make_var (line 1382) | def _make_var(self, name, maxint):
method test_lt_34 (line 1396) | def test_lt_34(self):
method test_lt_35 (line 1400) | def test_lt_35(self):
method test_lt_44 (line 1404) | def test_lt_44(self):
method test_147 (line 1408) | def test_147(self):
method test_lt_possible_bug (line 1412) | def test_lt_possible_bug(self):
method test_lt_4_val (line 1416) | def test_lt_4_val(self):
method test_lt_possible_bug (line 1420) | def test_lt_possible_bug(self):
method test_gt_54 (line 1424) | def test_gt_54(self):
method test_gt_45 (line 1428) | def test_gt_45(self):
method test_gt_44 (line 1432) | def test_gt_44(self):
method test_gt_34 (line 1436) | def test_gt_34(self):
method test_gt_35 (line 1440) | def test_gt_35(self):
method test_gt_33 (line 1444) | def test_gt_33(self):
method test_eq_0 (line 1448) | def test_eq_0(self):
method test_eq_max (line 1452) | def test_eq_max(self):
method test_eq_5 (line 1456) | def test_eq_5(self):
method test_gt_147 (line 1460) | def test_gt_147(self):
class TestZ3BinInt (line 1465) | class TestZ3BinInt(unittest.TestCase, TestZ3Int):
method _make_var (line 1467) | def _make_var(self, name, maxint):
method test_lt_vars_yes_eq (line 1470) | def test_lt_vars_yes_eq(self):
method test_lt_vars_no_eq (line 1475) | def test_lt_vars_no_eq(self):
method test_lt_vars_yes_xsmall (line 1480) | def test_lt_vars_yes_xsmall(self):
method test_lt_vars_no_xsmall (line 1485) | def test_lt_vars_no_xsmall(self):
method test_lt_vars_yes_xlarge (line 1490) | def test_lt_vars_yes_xlarge(self):
method test_lt_vars_no_xlarge (line 1495) | def test_lt_vars_no_xlarge(self):
class TestZ3UnaryIntEq (line 1500) | class TestZ3UnaryIntEq(unittest.TestCase, TestZ3Int):
method __init__ (line 1501) | def __init__(self, arg):
method _make_var (line 1504) | def _make_var(self, name, maxint):
class TestZ3UnaryIntGT (line 1507) | class TestZ3UnaryIntGT(unittest.TestCase, TestZ3Int):
method __init__ (line 1508) | def __init__(self, arg):
method _make_var (line 1511) | def _make_var(self, name, maxint):
class TestCNFInt (line 1514) | class TestCNFInt(unittest.TestCase, TestZ3Int):
method __init__ (line 1515) | def __init__(self, arg):
method _make_var (line 1518) | def _make_var(self, name, maxint):
function _read_simple_css (line 1539) | def _read_simple_css(simplecss):
function _read_simple_css_full (line 1555) | def _read_simple_css_full(simplecss):
function _read_simple_rule (line 1596) | def _read_simple_rule(rule):
function _read_clique_css (line 1615) | def _read_clique_css(cliquecss):
function test (line 1640) | def test():
FILE: satcss/wcnf2z3.py
function construct_z3_optimizer (line 11) | def construct_z3_optimizer(fin):
function main (line 70) | def main():
FILE: satcss/wcnfWrapper.py
function Bool (line 46) | def Bool(varName):
function Or (line 63) | def Or(*vartuple):
function Not (line 87) | def Not(arg):
function is_true (line 93) | def is_true(value):
function is_false (line 102) | def is_false(value):
class Optimize (line 111) | class Optimize(object):
method __init__ (line 114) | def __init__(self,solver = ""):
method reset (line 126) | def reset(self):
method getSolverName (line 132) | def getSolverName(self):
method add (line 135) | def add(self,fmla):
method add_soft (line 144) | def add_soft(self,fmla,wt):
method push (line 159) | def push(self):
method pop (line 162) | def pop(self):
method set (line 165) | def set(self, prop, value):
method check (line 169) | def check(self, child_collector = None):
method value (line 229) | def value(self):
method model (line 233) | def model(self):
method __print_formula (line 259) | def __print_formula(self, fout):
function _get_fresh_var (line 290) | def _get_fresh_var():
class _Var (line 296) | class _Var:
method __init__ (line 298) | def __init__(self, var):
method __str__ (line 305) | def __str__(self):
method __repr__ (line 308) | def __repr__(self):
method __eq__ (line 311) | def __eq__(self,other):
method __hash__ (line 317) | def __hash__(self):
class _Lit (line 320) | class _Lit:
method __init__ (line 322) | def __init__(self,var,negated = False):
method negate (line 326) | def negate(self):
method __str__ (line 329) | def __str__(self):
method __repr__ (line 337) | def __repr__(self):
method __eq__ (line 340) | def __eq__(self,other):
method __hash__ (line 347) | def __hash__(self):
class _Clause (line 350) | class _Clause:
method __init__ (line 352) | def __init__(self, literals):
method set_weight (line 365) | def set_weight(self,wt):
method get_weight (line 370) | def get_weight(self):
method add_lit (line 374) | def add_lit(self,literal):
method is_weighted (line 379) | def is_weighted(self):
method is_empty (line 382) | def is_empty(self):
method join (line 388) | def join(self,clause):
method __len__ (line 393) | def __len__(self):
method __str__ (line 396) | def __str__(self):
method __repr__ (line 399) | def __repr__(self):
method __eq__ (line 402) | def __eq__(self,other):
method __hash__ (line 412) | def __hash__(self):
class _OptimizeHandle (line 416) | class _OptimizeHandle:
method __init__ (line 418) | def __init__(self,optimizer):
method value (line 423) | def value(self):
class _Fmla (line 426) | class _Fmla:
method __init__ (line 428) | def __init__(self, var, clauses, negated = False):
method __str__ (line 441) | def __str__(self):
method __repr__ (line 447) | def __repr__(self):
method __eq__ (line 450) | def __eq__(self, other):
method __hash__ (line 459) | def __hash__(self):
function main (line 464) | def main():
FILE: satcss/z3int.py
class Z3IntException (line 32) | class Z3IntException(Exception):
class Z3BinInt (line 35) | class Z3BinInt:
method __init__ (line 37) | def __init__(self, name, maxint, z3wrapper = z3):
method get_value (line 68) | def get_value(self, model):
method is_even (line 83) | def is_even(self):
method get_variable_constraints (line 87) | def get_variable_constraints(self):
method get_hashable_handle (line 90) | def get_hashable_handle(self):
method __int_to_bitvec (line 100) | def __int_to_bitvec(self, i):
method __eq__ (line 109) | def __eq__(self, other):
method __ne__ (line 141) | def __ne__(self, other):
method __lt__ (line 144) | def __lt__(self, other):
method __le__ (line 198) | def __le__(self, other):
method __gt__ (line 201) | def __gt__(self, other):
method __ge__ (line 254) | def __ge__(self, other):
method __in_memo (line 257) | def __in_memo(self, memotable, item):
method __get_from_memo (line 274) | def __get_from_memo(self, memotable, item):
method __add_to_memo (line 291) | def __add_to_memo(self, memotable, item, value):
class Z3UnaryIntGT (line 309) | class Z3UnaryIntGT:
method __init__ (line 311) | def __init__(self, name, maxint, z3wrapper = z3):
method get_variable_constraints (line 344) | def get_variable_constraints(self):
method get_value (line 350) | def get_value(self, model):
method is_even (line 363) | def is_even(self):
method __eq__ (line 376) | def __eq__(self, other):
method __ne__ (line 399) | def __ne__(self, other):
method __lt__ (line 402) | def __lt__(self, other):
method __le__ (line 421) | def __le__(self, other):
method __ge__ (line 424) | def __ge__(self, other):
method __gt__ (line 443) | def __gt__(self, other):
class Z3UnaryIntEq (line 447) | class Z3UnaryIntEq:
method __init__ (line 449) | def __init__(self, name, maxint, z3wrapper = z3):
method get_variable_constraints (line 482) | def get_variable_constraints(self):
method get_value (line 488) | def get_value(self, model):
method is_even (line 500) | def is_even(self):
method __construct_variable_constraint (line 512) | def __construct_variable_constraint(self):
method __eq__ (line 542) | def __eq__(self, other):
method __ne__ (line 565) | def __ne__(self, other):
method __lt__ (line 568) | def __lt__(self, other):
method __le__ (line 587) | def __le__(self, other):
method __ge__ (line 590) | def __ge__(self, other):
method __gt__ (line 609) | def __gt__(self, other):
Copy disabled (too large)
Download .json
Condensed preview — 543 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (38,501K chars).
[
{
"path": ".gitignore",
"chars": 22,
"preview": "__pycache__\nsatcss/z3\n"
},
{
"path": "NOTES.md",
"chars": 384,
"preview": "\n# Note on pseudo classes\n\nWe support fully all CSS3 pseudo classes, as defined in the specification.\nAdditionally we su"
},
{
"path": "README.md",
"chars": 2498,
"preview": "# SatCSS\n\nMinimise CSS files through semantics-preserving refactoring. E.g.\n\n .a { color: red }\n .b { color: red "
},
{
"path": "Vienna/Research Groups • Informatics, TU Vienna.html",
"chars": 36469,
"preview": "<!DOCTYPE html>\n<!-- saved from url=(0050)http://www.informatik.tuwien.ac.at/research/groups -->\n<html lang=\"en\"><head><"
},
{
"path": "Vienna/Research Groups • Informatics, TU Vienna_files/add.js",
"chars": 63223,
"preview": "/*!!\n * Piwik - free/libre analytics platform\n *\n * JavaScript tracking client\n *\n * @link http://piwik.org\n * @source h"
},
{
"path": "Vienna/Research Groups • Informatics, TU Vienna_files/uikit.min1.css",
"chars": 53762,
"preview": "@charset \"UTF-8\";html,body,div,span,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,abbr,address,cite,code,del,dfn,em,i"
},
{
"path": "Vienna/Research Groups • Informatics, TU Vienna_files/uikit.min2.css",
"chars": 50194,
"preview": "abbr,address,article,aside,audio,b,blockquote,body,canvas,caption,cite,code,dd,del,details,dfn,div,dl,dt,em,fieldset,fig"
},
{
"path": "Vienna/Research Groups • Informatics, TU Vienna_files/uikit_branding.css",
"chars": 277,
"preview": ".uikit-page-logo div { width: 215px !important; }\n.uikit-page-logo img { top: 15px; }\n.uikit-page-content { padding-top:"
},
{
"path": "benchmarks/360-stripmq-cleancss.css",
"chars": 29476,
"preview": "body{-webkit-font-smoothing:antialiased;font-size:12px;font-family:arial,\"Microsoft YaHei\",\"\\5fae\\8f6f\\96c5\\9ed1\";line-h"
},
{
"path": "benchmarks/360-stripmq-cssmin.css",
"chars": 32870,
"preview": "body{-webkit-font-smoothing:antialiased;font-size:12px;font-family:arial,\"Microsoft YaHei\",\"\\5fae\\8f6f\\96c5\\9ed1\";line-h"
},
{
"path": "benchmarks/360-stripmq-cssnano.css",
"chars": 31380,
"preview": "body{-webkit-font-smoothing:antialiased;font-size:12px;font-family:arial,Microsoft YaHei,\"\\5fae\\8f6f\\96c5\\9ed1\";line-hei"
},
{
"path": "benchmarks/360-stripmq-csso.css",
"chars": 29585,
"preview": "a,body{color:#333}body{-webkit-font-smoothing:antialiased;font-size:12px;font-family:arial,\"Microsoft YaHei\",\"\\5fae\\8f6f"
},
{
"path": "benchmarks/360-stripmq-minify.css",
"chars": 32884,
"preview": "body{-webkit-font-smoothing:antialiased;font-size:12px;font-family:arial,\"Microsoft YaHei\",\"\\5fae\\8f6f\\96c5\\9ed1\";line-h"
},
{
"path": "benchmarks/360-stripmq-yui.css",
"chars": 32873,
"preview": "body{-webkit-font-smoothing:antialiased;font-size:12px;font-family:arial,\"Microsoft YaHei\",\"\\5fae\\8f6f\\96c5\\9ed1\";line-h"
},
{
"path": "benchmarks/360-stripmq.css",
"chars": 32889,
"preview": "body{-webkit-font-smoothing:antialiased;font-size:12px;font-family:arial,\"Microsoft YaHei\",\"\\5fae\\8f6f\\96c5\\9ed1\";line-h"
},
{
"path": "benchmarks/amazon-stripmq-cleancss.css",
"chars": 116565,
"preview": ".nav-hidden,.nav-hidden-aria{height:1px;left:-10000px;overflow:hidden;position:absolute;top:auto;width:1px}body{margin:0"
},
{
"path": "benchmarks/amazon-stripmq-cssmin.css",
"chars": 119450,
"preview": ".nav-hidden,.nav-hidden-aria{height:1px;left:-10000px;overflow:hidden;position:absolute;top:auto;width:1px}body{margin:0"
},
{
"path": "benchmarks/amazon-stripmq-cssnano.css",
"chars": 118169,
"preview": ".nav-hidden,.nav-hidden-aria{height:1px;left:-10000px;overflow:hidden;position:absolute;top:auto;width:1px}body{margin:0"
},
{
"path": "benchmarks/amazon-stripmq-csso.css",
"chars": 116553,
"preview": ".nav-hidden,.nav-hidden-aria{height:1px;left:-10000px;overflow:hidden;position:absolute;top:auto;width:1px}body{margin:0"
},
{
"path": "benchmarks/amazon-stripmq-minify.css",
"chars": 119520,
"preview": ".nav-hidden,.nav-hidden-aria{height:1px;left:-10000px;overflow:hidden;position:absolute;top:auto;width:1px}body{margin:0"
},
{
"path": "benchmarks/amazon-stripmq-yui.css",
"chars": 119488,
"preview": ".nav-hidden,.nav-hidden-aria{height:1px;left:-10000px;overflow:hidden;position:absolute;top:auto;width:1px}body{margin:0"
},
{
"path": "benchmarks/amazon-stripmq.css",
"chars": 119530,
"preview": ".nav-hidden,.nav-hidden-aria{height:1px;left:-10000px;overflow:hidden;position:absolute;top:auto;width:1px}body{margin:0"
},
{
"path": "benchmarks/archlinux-stripmq-cleancss.css",
"chars": 11838,
"preview": "#archnavbar{background:#333!important;border-bottom:5px solid #08c!important;height:40px!important;padding:10px 15px!imp"
},
{
"path": "benchmarks/archlinux-stripmq-cssmin.css",
"chars": 11950,
"preview": "#archnavbar{background:#333!important;border-bottom:5px #08c solid!important;height:40px!important;padding:10px 15px!imp"
},
{
"path": "benchmarks/archlinux-stripmq-cssnano.css",
"chars": 11816,
"preview": "#archnavbar{background:#333!important;border-bottom:5px solid #08c!important;height:40px!important;padding:10px 15px!imp"
},
{
"path": "benchmarks/archlinux-stripmq-csso.css",
"chars": 11347,
"preview": "#archnavbar{background:#333!important;border-bottom:5px #08c solid!important;height:40px!important;padding:10px 15px!imp"
},
{
"path": "benchmarks/archlinux-stripmq-minify.css",
"chars": 11929,
"preview": "#archnavbar{background:#333!important;border-bottom:5px #08c solid!important;height:40px!important;padding:10px 15px!imp"
},
{
"path": "benchmarks/archlinux-stripmq-yui.css",
"chars": 11982,
"preview": "#archnavbar{background:#333 !important;border-bottom:5px #08c solid !important;height:40px !important;padding:10px 15px "
},
{
"path": "benchmarks/archlinux-stripmq.css",
"chars": 11956,
"preview": "#archnavbar{background:#333!important;border-bottom:5px #08c solid!important;height:40px!important;padding:10px 15px!imp"
},
{
"path": "benchmarks/arxiv-stripmq-cleancss.css",
"chars": 11847,
"preview": "body{background-color:#fff;color:#000;font-family:Lucida Grande,helvetica,arial,verdana,sans-serif;margin:0;padding:0}a:"
},
{
"path": "benchmarks/arxiv-stripmq-cssmin.css",
"chars": 12146,
"preview": "body{background-color:#fff;color:#000;font-family:Lucida Grande,helvetica,arial,verdana,sans-serif;margin:0;padding:0}a:"
},
{
"path": "benchmarks/arxiv-stripmq-cssnano.css",
"chars": 11941,
"preview": "body{background-color:#fff;color:#000;font-family:Lucida Grande,helvetica,arial,verdana,sans-serif;margin:0;padding:0}a:"
},
{
"path": "benchmarks/arxiv-stripmq-csso.css",
"chars": 10880,
"preview": "#abs .submission-history pre,body{font-family:Lucida Grande,helvetica,arial,verdana,sans-serif;margin:0;padding:0}body{b"
},
{
"path": "benchmarks/arxiv-stripmq-minify.css",
"chars": 12170,
"preview": "body{background-color:#fff;color:#000;font-family:Lucida Grande,helvetica,arial,verdana,sans-serif;margin:0;padding:0}a:"
},
{
"path": "benchmarks/arxiv-stripmq-yui.css",
"chars": 12134,
"preview": "body{background-color:#fff;color:#000;font-family:Lucida Grande,helvetica,arial,verdana,sans-serif;margin:0;padding:0}a:"
},
{
"path": "benchmarks/arxiv-stripmq.css",
"chars": 12170,
"preview": "body{background-color:#fff;color:#000;font-family:Lucida Grande,helvetica,arial,verdana,sans-serif;margin:0;padding:0}a:"
},
{
"path": "benchmarks/baidu-1-stripmq-cleancss.css",
"chars": 13430,
"preview": "body,html{height:100%}html{overflow-y:auto}body{background:#fff;font:12px arial;text-align:center}body,form,li,p,ul{list"
},
{
"path": "benchmarks/baidu-1-stripmq-cssmin.css",
"chars": 14168,
"preview": "body,html{height:100%}html{overflow-y:auto}body{background:#fff;font:12px arial;text-align:center}body,form,li,p,ul{list"
},
{
"path": "benchmarks/baidu-1-stripmq-cssnano.css",
"chars": 13929,
"preview": "body,html{height:100%}html{overflow-y:auto}body{background:#fff;font:12px arial;text-align:center}body,form,li,p,ul{list"
},
{
"path": "benchmarks/baidu-1-stripmq-csso.css",
"chars": 13489,
"preview": "body,html{height:100%}html{overflow-y:auto}body{background:#fff;font:12px arial;text-align:center}body,form,li,p,ul{list"
},
{
"path": "benchmarks/baidu-1-stripmq-minify.css",
"chars": 14170,
"preview": "body,html{height:100%}html{overflow-y:auto}body{background:#fff;font:12px arial;text-align:center}body,form,li,p,ul{list"
},
{
"path": "benchmarks/baidu-1-stripmq-yui.css",
"chars": 14170,
"preview": "body,html{height:100%}html{overflow-y:auto}body{background:#fff;font:12px arial;text-align:center}body,form,li,p,ul{list"
},
{
"path": "benchmarks/baidu-1-stripmq.css",
"chars": 14170,
"preview": "body,html{height:100%}html{overflow-y:auto}body{background:#fff;font:12px arial;text-align:center}body,form,li,p,ul{list"
},
{
"path": "benchmarks/baidu-2-stripmq-cleancss.css",
"chars": 3591,
"preview": "#seth{behavior:url(#default#homepage);display:inline}#setf{display:inline}#sekj{margin-left:14px}#sekj,#st{display:none}"
},
{
"path": "benchmarks/baidu-2-stripmq-cssmin.css",
"chars": 3792,
"preview": "#seth{behavior:url(#default#homepage);display:inline}#setf{display:inline}#sekj{margin-left:14px}#sekj,#st{display:none}"
},
{
"path": "benchmarks/baidu-2-stripmq-cssnano.css",
"chars": 3668,
"preview": "#seth{behavior:url(#default#homepage)}#setf,#seth{display:inline}#sekj{margin-left:14px}#sekj,#st{display:none}.s_ipt_wr"
},
{
"path": "benchmarks/baidu-2-stripmq-csso.css",
"chars": 3586,
"preview": "#seth{behavior:url(#default#homepage)}#setf,#seth{display:inline}#sekj{margin-left:14px}#sekj,#st{display:none}.s_ipt_wr"
},
{
"path": "benchmarks/baidu-2-stripmq-minify.css",
"chars": 3792,
"preview": "#seth{behavior:url(#default#homepage);display:inline}#setf{display:inline}#sekj{margin-left:14px}#sekj,#st{display:none}"
},
{
"path": "benchmarks/baidu-2-stripmq-yui.css",
"chars": 3794,
"preview": "#seth{behavior:url(#default#homepage);display:inline}#setf{display:inline}#sekj{margin-left:14px}#sekj,#st{display:none}"
},
{
"path": "benchmarks/baidu-2-stripmq.css",
"chars": 3792,
"preview": "#seth{behavior:url(#default#homepage);display:inline}#setf{display:inline}#sekj{margin-left:14px}#sekj,#st{display:none}"
},
{
"path": "benchmarks/baidu-3-stripmq-cleancss.css",
"chars": 11898,
"preview": "#kw::-ms-clear{display:none}#kw::-moz-input-placeholder,#kw::-ms-input-placeholder,#kw::-moz-input-placeholder,#kw::-web"
},
{
"path": "benchmarks/baidu-3-stripmq-cssmin.css",
"chars": 12029,
"preview": "#kw::-ms-clear{display:none}#kw::-moz-input-placeholder,#kw::-ms-input-placeholder,#kw::-moz-input-placeholder,#kw::-web"
},
{
"path": "benchmarks/baidu-3-stripmq-cssnano.css",
"chars": 11927,
"preview": "#kw::-ms-clear{display:none}#kw::-moz-input-placeholder,#kw::-ms-input-placeholder,#kw::-webkit-input-placeholder{color:"
},
{
"path": "benchmarks/baidu-3-stripmq-csso.css",
"chars": 11818,
"preview": "#kw::-ms-clear{display:none}#kw::-moz-input-placeholder,#kw::-ms-input-placeholder,#kw::-moz-input-placeholder,#kw::-web"
},
{
"path": "benchmarks/baidu-3-stripmq-minify.css",
"chars": 12029,
"preview": "#kw::-ms-clear{display:none}#kw::-moz-input-placeholder,#kw::-ms-input-placeholder,#kw::-moz-input-placeholder,#kw::-web"
},
{
"path": "benchmarks/baidu-3-stripmq-yui.css",
"chars": 12049,
"preview": "#kw::-ms-clear{display:none}#kw::-moz-input-placeholder,#kw::-ms-input-placeholder,#kw::-moz-input-placeholder,#kw::-web"
},
{
"path": "benchmarks/baidu-3-stripmq.css",
"chars": 12029,
"preview": "#kw::-ms-clear{display:none}#kw::-moz-input-placeholder,#kw::-ms-input-placeholder,#kw::-moz-input-placeholder,#kw::-web"
},
{
"path": "benchmarks/bing-stripmq-cleancss.css",
"chars": 39193,
"preview": "html{overflow:auto}a,body{font-family:\"Segoe UI\",Segoe,Tahoma,Arial,Verdana,sans-serif;font-size:small;text-decoration:n"
},
{
"path": "benchmarks/bing-stripmq-cssmin.css",
"chars": 52636,
"preview": "html{overflow:auto}a,body{font-family:\"Segoe UI\",Segoe,Tahoma,Arial,Verdana,sans-serif;font-size:small;text-decoration:n"
},
{
"path": "benchmarks/bing-stripmq-cssnano.css",
"chars": 41118,
"preview": "html{overflow:auto}a,body{font-family:Segoe UI,Segoe,Tahoma,Arial,Verdana,sans-serif;font-size:small;text-decoration:non"
},
{
"path": "benchmarks/bing-stripmq-csso.css",
"chars": 40105,
"preview": "html{overflow:auto}a,body{font-family:\"Segoe UI\",Segoe,Tahoma,Arial,Verdana,sans-serif;font-size:small}body{text-decorat"
},
{
"path": "benchmarks/bing-stripmq-minify.css",
"chars": 52723,
"preview": "html{overflow:auto}a,body{font-family:\"Segoe UI\",Segoe,Tahoma,Arial,Verdana,sans-serif;font-size:small;text-decoration:n"
},
{
"path": "benchmarks/bing-stripmq-yui.css",
"chars": 52667,
"preview": "html{overflow:auto}a,body{font-family:\"Segoe UI\",Segoe,Tahoma,Arial,Verdana,sans-serif;font-size:small;text-decoration:n"
},
{
"path": "benchmarks/bing-stripmq.css",
"chars": 52738,
"preview": "html{overflow:auto}a,body{font-family:\"Segoe UI\",Segoe,Tahoma,Arial,Verdana,sans-serif;font-size:small;text-decoration:n"
},
{
"path": "benchmarks/cnn-stripmq-cleancss.css",
"chars": 36118,
"preview": ".ob-tcolor{color:#262626}.ob-lcolor{color:#006598}.ob-bgtcolor{background-color:#262626}.item-link-container:hover .ob-t"
},
{
"path": "benchmarks/cnn-stripmq-cssmin.css",
"chars": 41633,
"preview": ".ob-tcolor{color:#262626}.ob-lcolor{color:#006598}.ob-bgtcolor{background-color:#262626}.item-link-container:hover .ob-t"
},
{
"path": "benchmarks/cnn-stripmq-cssnano.css",
"chars": 36992,
"preview": ".ob-tcolor{color:#262626}.ob-lcolor{color:#006598}.ob-bgtcolor{background-color:#262626}.item-link-container:hover .ob-t"
},
{
"path": "benchmarks/cnn-stripmq-csso.css",
"chars": 34882,
"preview": ".ob-tcolor{color:#262626}.ob-lcolor{color:#006598}.ob-bgtcolor{background-color:#262626}.item-link-container:hover .ob-t"
},
{
"path": "benchmarks/cnn-stripmq-minify.css",
"chars": 41644,
"preview": ".ob-tcolor{color:rgb(38,38,38)}.ob-lcolor{color:rgb(0,101,152)}.ob-bgtcolor{background-color:rgb(38,38,38)}.item-link-co"
},
{
"path": "benchmarks/cnn-stripmq-yui.css",
"chars": 0,
"preview": ""
},
{
"path": "benchmarks/cnn-stripmq.css",
"chars": 41752,
"preview": ".ob-tcolor{color:rgb(38, 38, 38)}.ob-lcolor{color:rgb(0, 101, 152)}.ob-bgtcolor{background-color:rgb(38, 38, 38)}.item-l"
},
{
"path": "benchmarks/dblp-2015-07-09-stripmq-cleancss.css",
"chars": 24165,
"preview": "body{background:#ccc;color:#505b62;font-family:'Open Sans',sans-serif;font-size:11pt;font-weight:400;margin:0;padding:0}"
},
{
"path": "benchmarks/dblp-2015-07-09-stripmq-cssmin.css",
"chars": 24747,
"preview": "body{background:#ccc;color:#505b62;font-family:'Open Sans',sans-serif;font-size:11pt;font-weight:400;margin:0;padding:0}"
},
{
"path": "benchmarks/dblp-2015-07-09-stripmq-cssnano.css",
"chars": 23841,
"preview": "body{background:#ccc;color:#505b62;font-family:Open Sans,sans-serif;font-size:11pt;font-weight:400;margin:0;padding:0}bo"
},
{
"path": "benchmarks/dblp-2015-07-09-stripmq-csso.css",
"chars": 21290,
"preview": "body,mark{color:#505b62}body{background:#ccc;font-family:'Open Sans',sans-serif;font-size:11pt;font-weight:400;margin:0;"
},
{
"path": "benchmarks/dblp-2015-07-09-stripmq-minify.css",
"chars": 24897,
"preview": "body{background:#ccc;color:#505b62;font-family:'Open Sans',sans-serif;font-size:11pt;font-weight:400;margin:0;padding:0}"
},
{
"path": "benchmarks/dblp-2015-07-09-stripmq-yui.css",
"chars": 24755,
"preview": "body{background:#ccc;color:#505b62;font-family:'Open Sans',sans-serif;font-size:11pt;font-weight:400;margin:0;padding:0}"
},
{
"path": "benchmarks/dblp-2015-07-09-stripmq.css",
"chars": 25661,
"preview": "body{background:#cccccc;color:#505b62;font-family:'Open Sans', sans-serif;font-size:11pt;font-weight:400;margin:0px;padd"
},
{
"path": "benchmarks/ebay-stripmq-cleancss.css",
"chars": 122846,
"preview": "abbr,address,article,aside,audio,b,blockquote,body,canvas,caption,cite,code,dd,del,details,dfn,div,dl,dt,em,fieldset,fig"
},
{
"path": "benchmarks/ebay-stripmq-cssmin.css",
"chars": 131310,
"preview": "abbr,address,article,aside,audio,b,blockquote,body,canvas,caption,cite,code,dd,del,details,dfn,div,dl,dt,em,fieldset,fig"
},
{
"path": "benchmarks/ebay-stripmq-cssnano.css",
"chars": 123622,
"preview": "abbr,address,article,aside,audio,b,blockquote,body,canvas,caption,cite,code,dd,del,details,dfn,div,dl,dt,em,fieldset,fig"
},
{
"path": "benchmarks/ebay-stripmq-csso.css",
"chars": 122160,
"preview": "abbr,address,article,aside,audio,canvas,cite,code,dd,del,details,dfn,div,dl,dt,em,fieldset,figcaption,figure,footer,h5,h"
},
{
"path": "benchmarks/ebay-stripmq-minify.css",
"chars": 130787,
"preview": "abbr,address,article,aside,audio,b,blockquote,body,canvas,caption,cite,code,dd,del,details,dfn,div,dl,dt,em,fieldset,fig"
},
{
"path": "benchmarks/ebay-stripmq-yui.css",
"chars": 131074,
"preview": "abbr,address,article,aside,audio,b,blockquote,body,canvas,caption,cite,code,dd,del,details,dfn,div,dl,dt,em,fieldset,fig"
},
{
"path": "benchmarks/ebay-stripmq.css",
"chars": 131310,
"preview": "abbr,address,article,aside,audio,b,blockquote,body,canvas,caption,cite,code,dd,del,details,dfn,div,dl,dt,em,fieldset,fig"
},
{
"path": "benchmarks/example-list-nano.txt.1",
"chars": 13476,
"preview": "examples.2/amazon-stripmq-cleancss.css, 4, 119773\nexamples.2/amazon-stripmq-cssmin.css, 4, 119773\nexamples.2/amazon-stri"
},
{
"path": "benchmarks/example-list-nano.txt.2",
"chars": 18993,
"preview": "examples.2/amazon-stripmq.css, 0, 0\nexamples.2/archlinux-stripmq.css, 0, 0\nexamples.2/arxiv-stripmq.css, 0, 0\nexamples.2"
},
{
"path": "benchmarks/example-list-nano.txt.3",
"chars": 21990,
"preview": "examples.2/360-stripmq.css, 0, 0\nexamples.2/360-stripmq-cleancss.css, 0, 0\nexamples.2/360-stripmq-cssmin.css, 0, 0\nexamp"
},
{
"path": "benchmarks/facebook1-stripmq-cleancss.css",
"chars": 45593,
"preview": "._6vg{border-radius:1px}._2wk7{width:16px}._4vhx{border-bottom:1px solid #dcdee3}._2246{background-color:#f5f7fa}._1wcv{"
},
{
"path": "benchmarks/facebook1-stripmq-cssmin.css",
"chars": 45764,
"preview": "._6vg{border-radius:1px}._2wk7{width:16px}._4vhx{border-bottom:1px solid #dcdee3}._2246{background-color:#f5f7fa}._1wcv{"
},
{
"path": "benchmarks/facebook1-stripmq-cssnano.css",
"chars": 44722,
"preview": "._6vg{border-radius:1px}._2wk7{width:16px}._4vhx{border-bottom:1px solid #dcdee3}._2246{background-color:#f5f7fa}._1wcv{"
},
{
"path": "benchmarks/facebook1-stripmq-csso.css",
"chars": 43905,
"preview": "._6vg{border-radius:1px}._2wk7{width:16px}._4vhx{border-bottom:1px solid #dcdee3}._2246{background-color:#f5f7fa}._1wcv{"
},
{
"path": "benchmarks/facebook1-stripmq-minify.css",
"chars": 45763,
"preview": "._6vg{border-radius:1px}._2wk7{width:16px}._4vhx{border-bottom:1px solid #dcdee3}._2246{background-color:#f5f7fa}._1wcv{"
},
{
"path": "benchmarks/facebook1-stripmq-yui.css",
"chars": 45777,
"preview": "._6vg{border-radius:1px}._2wk7{width:16px}._4vhx{border-bottom:1px solid #dcdee3}._2246{background-color:#f5f7fa}._1wcv{"
},
{
"path": "benchmarks/facebook1-stripmq.css",
"chars": 45925,
"preview": "._6vg{border-radius:1px}._2wk7{width:16px}._4vhx{border-bottom:1px solid #dcdee3}._2246{background-color:#f5f7fa}._1wcv{"
},
{
"path": "benchmarks/github-stripmq-cleancss.css",
"chars": 184292,
"preview": "html{-webkit-text-size-adjust:100%;font-family:sans-serif;text-size-adjust:100%}article,aside,details,figcaption,figure,"
},
{
"path": "benchmarks/github-stripmq-cssmin.css",
"chars": 186178,
"preview": "html{-webkit-text-size-adjust:100%;font-family:sans-serif;text-size-adjust:100%}body{margin:0}article,aside,details,figc"
},
{
"path": "benchmarks/github-stripmq-cssnano.css",
"chars": 183557,
"preview": "html{-webkit-text-size-adjust:100%;font-family:sans-serif;text-size-adjust:100%}body{margin:0}article,aside,details,figc"
},
{
"path": "benchmarks/github-stripmq-csso.css",
"chars": 180907,
"preview": "html{-webkit-text-size-adjust:100%;font-family:sans-serif;text-size-adjust:100%}body{background-color:#fff;color:#333;fo"
},
{
"path": "benchmarks/github-stripmq-minify.css",
"chars": 185897,
"preview": "html{-webkit-text-size-adjust:100%;font-family:sans-serif;text-size-adjust:100%}body{margin:0}article,aside,details,figc"
},
{
"path": "benchmarks/github-stripmq-yui.css",
"chars": 186311,
"preview": "html{-webkit-text-size-adjust:100%;font-family:sans-serif;text-size-adjust:100%}body{margin:0}article,aside,details,figc"
},
{
"path": "benchmarks/github-stripmq.css",
"chars": 186598,
"preview": "html{-webkit-text-size-adjust:100%;font-family:sans-serif;text-size-adjust:100%}body{margin:0}article,aside,details,figc"
},
{
"path": "benchmarks/google-1-stripmq-cleancss.css",
"chars": 9386,
"preview": "[dir=ltr],[dir=rtl]{unicode-bidi:-webkit-isolate;unicode-bidi:isolate}bdo[dir=ltr],bdo[dir=rtl]{unicode-bidi:bidi-overri"
},
{
"path": "benchmarks/google-1-stripmq-cssmin.css",
"chars": 9775,
"preview": "[dir=ltr],[dir=rtl]{unicode-bidi:-webkit-isolate;unicode-bidi:isolate}bdo[dir=ltr],bdo[dir=rtl]{unicode-bidi:bidi-overri"
},
{
"path": "benchmarks/google-1-stripmq-cssnano.css",
"chars": 9550,
"preview": "[dir=ltr],[dir=rtl]{unicode-bidi:-webkit-isolate;unicode-bidi:isolate}bdo[dir=ltr],bdo[dir=rtl]{unicode-bidi:bidi-overri"
},
{
"path": "benchmarks/google-1-stripmq-csso.css",
"chars": 9534,
"preview": "[dir=ltr],[dir=rtl]{unicode-bidi:-webkit-isolate;unicode-bidi:isolate}bdo[dir=ltr],bdo[dir=rtl]{unicode-bidi:-webkit-iso"
},
{
"path": "benchmarks/google-1-stripmq-minify.css",
"chars": 9780,
"preview": "[dir=ltr],[dir=rtl]{unicode-bidi:-webkit-isolate;unicode-bidi:isolate}bdo[dir=ltr],bdo[dir=rtl]{unicode-bidi:bidi-overri"
},
{
"path": "benchmarks/google-1-stripmq-yui.css",
"chars": 9779,
"preview": "[dir=ltr],[dir=rtl]{unicode-bidi:-webkit-isolate;unicode-bidi:isolate}bdo[dir=ltr],bdo[dir=rtl]{unicode-bidi:bidi-overri"
},
{
"path": "benchmarks/google-1-stripmq.css",
"chars": 9985,
"preview": "[dir=ltr],[dir=rtl]{unicode-bidi:-webkit-isolate;unicode-bidi:isolate}bdo[dir=ltr],bdo[dir=rtl]{unicode-bidi:bidi-overri"
},
{
"path": "benchmarks/google-2-stripmq-cleancss.css",
"chars": 4274,
"preview": "body,html{font-size:small;height:100%;margin:0}#viewport{min-height:100%;position:relative;width:100%}.content{padding-b"
},
{
"path": "benchmarks/google-2-stripmq-cssmin.css",
"chars": 4421,
"preview": "body,html{height:100%;margin:0}#viewport{min-height:100%;position:relative;width:100%}.content{padding-bottom:35px}#foot"
},
{
"path": "benchmarks/google-2-stripmq-cssnano.css",
"chars": 4345,
"preview": "body,html{height:100%;margin:0}#viewport{min-height:100%;position:relative;width:100%}.content{padding-bottom:35px}#foot"
},
{
"path": "benchmarks/google-2-stripmq-csso.css",
"chars": 4306,
"preview": "body,html{height:100%;margin:0}#viewport{min-height:100%;position:relative;width:100%}.content{padding-bottom:35px}#foot"
},
{
"path": "benchmarks/google-2-stripmq-minify.css",
"chars": 4422,
"preview": "body,html{height:100%;margin:0}#viewport{min-height:100%;position:relative;width:100%}.content{padding-bottom:35px}#foot"
},
{
"path": "benchmarks/google-2-stripmq-yui.css",
"chars": 4427,
"preview": "body,html{height:100%;margin:0}#viewport{min-height:100%;position:relative;width:100%}.content{padding-bottom:35px}#foot"
},
{
"path": "benchmarks/google-2-stripmq.css",
"chars": 4429,
"preview": "body,html{height:100%;margin:0}#viewport{min-height:100%;position:relative;width:100%}.content{padding-bottom:35px}#foot"
},
{
"path": "benchmarks/googlenews-1-stripmq-cleancss.css",
"chars": 68580,
"preview": "html{height:100%;overflow:hidden}textarea{font-family:Roboto,RobotoDraft,Helvetica,Arial,sans-serif}button{outline:0}img"
},
{
"path": "benchmarks/googlenews-1-stripmq-cssmin.css",
"chars": 70145,
"preview": "html{height:100%;overflow:hidden}body{-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;-webkit-text-size"
},
{
"path": "benchmarks/googlenews-1-stripmq-cssnano.css",
"chars": 67242,
"preview": "body,html{height:100%;overflow:hidden}body{-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;color:rgba(0"
},
{
"path": "benchmarks/googlenews-1-stripmq-csso.css",
"chars": 65993,
"preview": "body,html{overflow:hidden}body{-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;background-color:#f7f7f7"
},
{
"path": "benchmarks/googlenews-1-stripmq-minify.css",
"chars": 69603,
"preview": "html{height:100%;overflow:hidden}body{-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;-webkit-text-size"
},
{
"path": "benchmarks/googlenews-1-stripmq-yui.css",
"chars": 70126,
"preview": "html{height:100%;overflow:hidden}body{-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;-webkit-text-size"
},
{
"path": "benchmarks/googlenews-1-stripmq.css",
"chars": 70262,
"preview": "html{height:100%;overflow:hidden}body{-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;-webkit-text-size"
},
{
"path": "benchmarks/googlenews-2-stripmq-cleancss.css",
"chars": 34352,
"preview": ".gb_pd{font:13px/27px Roboto,RobotoDraft,Arial,sans-serif;z-index:986}a.gb_Ca{-webkit-user-select:none;border:none;color"
},
{
"path": "benchmarks/googlenews-2-stripmq-cssmin.css",
"chars": 35334,
"preview": ".gb_pd{font:13px/27px Roboto,RobotoDraft,Arial,sans-serif;z-index:986}a.gb_Ca{-webkit-user-select:none;border:0;color:#4"
},
{
"path": "benchmarks/googlenews-2-stripmq-cssnano.css",
"chars": 34260,
"preview": ".gb_pd{font:13px/27px Roboto,RobotoDraft,Arial,sans-serif;z-index:986}a.gb_Ca{-webkit-user-select:none;border:none;color"
},
{
"path": "benchmarks/googlenews-2-stripmq-csso.css",
"chars": 33916,
"preview": ".gb_pd{font:13px/27px Roboto,RobotoDraft,Arial,sans-serif;z-index:986}a.gb_Ca{-webkit-user-select:none;border:0;color:#4"
},
{
"path": "benchmarks/googlenews-2-stripmq-minify.css",
"chars": 35282,
"preview": ".gb_pd{font:13px/27px Roboto,RobotoDraft,Arial,sans-serif;z-index:986}a.gb_Ca{-webkit-user-select:none;border:none;color"
},
{
"path": "benchmarks/googlenews-2-stripmq-yui.css",
"chars": 35325,
"preview": ".gb_pd{font:13px/27px Roboto,RobotoDraft,Arial,sans-serif;z-index:986}a.gb_Ca{-webkit-user-select:none;border:0;color:#4"
},
{
"path": "benchmarks/googlenews-2-stripmq.css",
"chars": 35454,
"preview": ".gb_pd{font:13px/27px Roboto,RobotoDraft,Arial,sans-serif;z-index:986}a.gb_Ca{-webkit-user-select:none;border:none;color"
},
{
"path": "benchmarks/guardian-stripmq-cleancss.css",
"chars": 171339,
"preview": ".social-icon{padding:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;background-colo"
},
{
"path": "benchmarks/guardian-stripmq-cssmin.css",
"chars": 196719,
"preview": ".social-icon{width:1.875rem;height:1.875rem;border:.0625rem solid #333;padding:0;-webkit-box-sizing:content-box;-moz-box"
},
{
"path": "benchmarks/guardian-stripmq-cssnano.css",
"chars": 174184,
"preview": ".social-icon{width:1.875rem;height:1.875rem;border:.0625rem solid #333;padding:0;-webkit-box-sizing:content-box;-moz-box"
},
{
"path": "benchmarks/guardian-stripmq-csso.css",
"chars": 168715,
"preview": ".social-icon{width:1.875rem;border:.0625rem solid #333;padding:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-"
},
{
"path": "benchmarks/guardian-stripmq-minify.css",
"chars": 196500,
"preview": ".social-icon{width:1.875rem;height:1.875rem;border:.0625rem solid #333;padding:0;-webkit-box-sizing:content-box;-moz-box"
},
{
"path": "benchmarks/guardian-stripmq-yui.css",
"chars": 196766,
"preview": ".social-icon{width:1.875rem;height:1.875rem;border:.0625rem solid #333;padding:0;-webkit-box-sizing:content-box;-moz-box"
},
{
"path": "benchmarks/guardian-stripmq.css",
"chars": 197068,
"preview": ".social-icon{width:1.875rem;height:1.875rem;border:.0625rem solid #333;padding:0;-webkit-box-sizing:content-box;-moz-box"
},
{
"path": "benchmarks/guardian-stripmq.css.buggy",
"chars": 180747,
"preview": ".social-icon{-moz-box-sizing:content-box;-webkit-box-sizing:content-box;background-color:transparent;border:0.0625rem so"
},
{
"path": "benchmarks/imdb-1-stripmq-cleancss.css",
"chars": 188229,
"preview": ".otw-row{padding:7px 0 5px}.otw-showtimes{float:right;font-size:11px;line-height:19px;margin-left:8px}.on-aiv-row{paddin"
},
{
"path": "benchmarks/imdb-1-stripmq-cssmin.css",
"chars": 198764,
"preview": ".otw-row{padding:7px 0 5px 0}.otw-showtimes{float:right}.otw-showtimes{font-size:11px;line-height:19px;margin-left:8px}."
},
{
"path": "benchmarks/imdb-1-stripmq-cssnano.css",
"chars": 189725,
"preview": ".otw-row{padding:7px 0 5px}.otw-showtimes{float:right;font-size:11px;line-height:19px;margin-left:8px}.on-aiv-row{paddin"
},
{
"path": "benchmarks/imdb-1-stripmq-csso.css",
"chars": 188902,
"preview": ".otw-row{padding:7px 0 5px}.otw-showtimes{float:right;font-size:11px;line-height:19px;margin-left:8px}.on-aiv-row{paddin"
},
{
"path": "benchmarks/imdb-1-stripmq-minify.css",
"chars": 198752,
"preview": ".otw-row{padding:7px 0 5px 0}.otw-showtimes{float:right}.otw-showtimes{font-size:11px;line-height:19px;margin-left:8px}."
},
{
"path": "benchmarks/imdb-1-stripmq-yui.css",
"chars": 198742,
"preview": ".otw-row{padding:7px 0 5px 0}.otw-showtimes{float:right}.otw-showtimes{font-size:11px;line-height:19px;margin-left:8px}."
},
{
"path": "benchmarks/imdb-1-stripmq.css",
"chars": 200068,
"preview": ".otw-row{padding:7px 0 5px 0}.otw-showtimes{float:right}.otw-showtimes{font-size:11px;line-height:19px;margin-left:8px}."
},
{
"path": "benchmarks/imdb-2-stripmq-cleancss.css",
"chars": 17787,
"preview": ".rating .rating-error-icon,.rating-bg,.rating-cancel,.rating-imdb,.rating-rating,.rating-stars{margin:0;position:absolut"
},
{
"path": "benchmarks/imdb-2-stripmq-cssmin.css",
"chars": 18602,
"preview": ".rating .rating-error-icon,.rating-bg,.rating-cancel,.rating-imdb,.rating-rating,.rating-stars{margin:0;position:absolut"
},
{
"path": "benchmarks/imdb-2-stripmq-cssnano.css",
"chars": 17770,
"preview": ".rating-bg,.rating-cancel,.rating-imdb,.rating-rating,.rating-stars,.rating .rating-error-icon{margin:0;position:absolut"
},
{
"path": "benchmarks/imdb-2-stripmq-csso.css",
"chars": 17936,
"preview": ".rating .rating-error-icon,.rating-bg,.rating-cancel,.rating-imdb,.rating-rating,.rating-stars{margin:0;position:absolut"
},
{
"path": "benchmarks/imdb-2-stripmq-minify.css",
"chars": 18616,
"preview": ".rating .rating-error-icon,.rating-bg,.rating-cancel,.rating-imdb,.rating-rating,.rating-stars{margin:0;position:absolut"
},
{
"path": "benchmarks/imdb-2-stripmq-yui.css",
"chars": 18607,
"preview": ".rating .rating-error-icon,.rating-bg,.rating-cancel,.rating-imdb,.rating-rating,.rating-stars{margin:0;position:absolut"
},
{
"path": "benchmarks/imdb-2-stripmq.css",
"chars": 18720,
"preview": ".rating .rating-error-icon,.rating-bg,.rating-cancel,.rating-imdb,.rating-rating,.rating-stars{margin:0px;position:absol"
},
{
"path": "benchmarks/imgur-1-stripmq-cleancss.css",
"chars": 110240,
"preview": ".caption-toolbar,.comment-expand-icon{vertical-align:sub}.caption-create-username,.comment-username{overflow:hidden;text"
},
{
"path": "benchmarks/imgur-1-stripmq-cssmin.css",
"chars": 111493,
"preview": ".caption-toolbar,.comment-expand-icon{vertical-align:sub}.caption-create-username,.comment-username{overflow:hidden;text"
},
{
"path": "benchmarks/imgur-1-stripmq-cssnano.css",
"chars": 110382,
"preview": ".caption-toolbar,.comment-expand-icon{vertical-align:sub}.caption-create-username,.comment-username{overflow:hidden;text"
},
{
"path": "benchmarks/imgur-1-stripmq-csso.css",
"chars": 110582,
"preview": ".caption-toolbar,.comment-expand-icon{vertical-align:sub}.caption-create-username,.comment-username{overflow:hidden;text"
},
{
"path": "benchmarks/imgur-1-stripmq-minify.css",
"chars": 111859,
"preview": ".caption-toolbar,.comment-expand-icon{vertical-align:sub}.caption-create-username,.comment-username{overflow:hidden;text"
},
{
"path": "benchmarks/imgur-1-stripmq-yui.css",
"chars": 111537,
"preview": ".caption-toolbar,.comment-expand-icon{vertical-align:sub}.caption-create-username,.comment-username{overflow:hidden;text"
},
{
"path": "benchmarks/imgur-1-stripmq.css",
"chars": 111888,
"preview": ".caption-toolbar,.comment-expand-icon{vertical-align:sub}.caption-create-username,.comment-username{overflow:hidden;text"
},
{
"path": "benchmarks/imgur-2-stripmq-cleancss.css",
"chars": 108129,
"preview": "#topbar ul li,.combobox,.like-combobox-but-not{-moz-user-select:none;-webkit-user-select:none}#content,#topbar .global-s"
},
{
"path": "benchmarks/imgur-2-stripmq-cssmin.css",
"chars": 110131,
"preview": "#topbar ul li,.combobox,.like-combobox-but-not{-moz-user-select:none;-webkit-user-select:none}#content,#topbar .global-s"
},
{
"path": "benchmarks/imgur-2-stripmq-cssnano.css",
"chars": 109065,
"preview": "#topbar ul li,.combobox,.like-combobox-but-not{-moz-user-select:none;-webkit-user-select:none}#content,#topbar .global-s"
},
{
"path": "benchmarks/imgur-2-stripmq-csso.css",
"chars": 109370,
"preview": "#topbar ul li,.combobox,.like-combobox-but-not{-moz-user-select:none;-webkit-user-select:none}#content,#topbar .global-s"
},
{
"path": "benchmarks/imgur-2-stripmq-minify.css",
"chars": 110273,
"preview": "#topbar ul li,.combobox,.like-combobox-but-not{-moz-user-select:none;-webkit-user-select:none}#content,#topbar .global-s"
},
{
"path": "benchmarks/imgur-2-stripmq-yui.css",
"chars": 110201,
"preview": "#topbar ul li,.combobox,.like-combobox-but-not{-moz-user-select:none;-webkit-user-select:none}#content,#topbar .global-s"
},
{
"path": "benchmarks/imgur-2-stripmq.css",
"chars": 110321,
"preview": "#topbar ul li,.combobox,.like-combobox-but-not{-moz-user-select:none;-webkit-user-select:none}#content,#topbar .global-s"
},
{
"path": "benchmarks/instagram-stripmq-cleancss.css",
"chars": 108389,
"preview": "._okmo7{margin-right:8px}._okmo7:last-child{margin-right:0}._t5w1b{height:40px}._q605d{-ms-flex-align:center;-ms-flex-pa"
},
{
"path": "benchmarks/instagram-stripmq-cssmin.css",
"chars": 108710,
"preview": "._okmo7{margin-right:8px}._okmo7:last-child{margin-right:0}._t5w1b{height:40px}._q605d{-ms-flex-align:center;-ms-flex-pa"
},
{
"path": "benchmarks/instagram-stripmq-cssnano.css",
"chars": 107894,
"preview": "._okmo7{margin-right:8px}._okmo7:last-child{margin-right:0}._t5w1b{height:40px}._q605d{-ms-flex-align:center;-ms-flex-pa"
},
{
"path": "benchmarks/instagram-stripmq-csso.css",
"chars": 108138,
"preview": "._okmo7{margin-right:8px}._okmo7:last-child{margin-right:0}._t5w1b{height:40px}._q605d{-ms-flex-align:center;-ms-flex-pa"
},
{
"path": "benchmarks/instagram-stripmq-minify.css",
"chars": 108897,
"preview": "._okmo7{margin-right:8px}._okmo7:last-child{margin-right:0}._t5w1b{height:40px}._q605d{-ms-flex-align:center;-ms-flex-pa"
},
{
"path": "benchmarks/instagram-stripmq-yui.css",
"chars": 108695,
"preview": "._okmo7{margin-right:8px}._okmo7:last-child{margin-right:0}._t5w1b{height:40px}._q605d{-ms-flex-align:center;-ms-flex-pa"
},
{
"path": "benchmarks/instagram-stripmq.css",
"chars": 108944,
"preview": "._okmo7{margin-right:8px}._okmo7:last-child{margin-right:0}._t5w1b{height:40px}._q605d{-ms-flex-align:center;-ms-flex-pa"
},
{
"path": "benchmarks/linkedin-stripmq-cleancss.css",
"chars": 50781,
"preview": "a,abbr,acronym,address,applet,article,aside,audio,b,big,blockquote,body,canvas,caption,center,cite,code,dd,del,details,d"
},
{
"path": "benchmarks/linkedin-stripmq-cssmin.css",
"chars": 53644,
"preview": "a,abbr,acronym,address,applet,article,aside,audio,b,big,blockquote,body,canvas,caption,center,cite,code,dd,del,details,d"
},
{
"path": "benchmarks/linkedin-stripmq-cssnano.css",
"chars": 49546,
"preview": "a,abbr,acronym,address,applet,article,aside,audio,b,big,blockquote,body,canvas,caption,center,cite,code,dd,del,details,d"
},
{
"path": "benchmarks/linkedin-stripmq-csso.css",
"chars": 45644,
"preview": "a,abbr,acronym,address,applet,article,aside,audio,b,big,blockquote,body,canvas,caption,center,cite,code,dd,del,details,d"
},
{
"path": "benchmarks/linkedin-stripmq-minify.css",
"chars": 53488,
"preview": "a,abbr,acronym,address,applet,article,aside,audio,b,big,blockquote,body,canvas,caption,center,cite,code,dd,del,details,d"
},
{
"path": "benchmarks/linkedin-stripmq-yui.css",
"chars": 53643,
"preview": "a,abbr,acronym,address,applet,article,aside,audio,b,big,blockquote,body,canvas,caption,center,cite,code,dd,del,details,d"
},
{
"path": "benchmarks/linkedin-stripmq.css",
"chars": 54386,
"preview": "a,abbr,acronym,address,applet,article,aside,audio,b,big,blockquote,body,canvas,caption,center,cite,code,dd,del,details,d"
},
{
"path": "benchmarks/londonist-stripmq-cleancss.css",
"chars": 67956,
"preview": "html{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;font-family:sans-serif}article,aside,details,figcaption,fig"
},
{
"path": "benchmarks/londonist-stripmq-cssmin.css",
"chars": 70318,
"preview": "html{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;font-family:sans-serif}body{margin:0}article,aside,details,"
},
{
"path": "benchmarks/londonist-stripmq-cssnano.css",
"chars": 69302,
"preview": "html{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;font-family:sans-serif}body{margin:0}article,aside,details,"
},
{
"path": "benchmarks/londonist-stripmq-csso.css",
"chars": 66425,
"preview": "html{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}main,summary{display:block}audio,canvas,progress,video{disp"
},
{
"path": "benchmarks/londonist-stripmq-minify.css",
"chars": 70375,
"preview": "html{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;font-family:sans-serif}body{margin:0}article,aside,details,"
},
{
"path": "benchmarks/londonist-stripmq-yui.css",
"chars": 70347,
"preview": "html{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;font-family:sans-serif}body{margin:0}article,aside,details,"
},
{
"path": "benchmarks/londonist-stripmq.css",
"chars": 71220,
"preview": "html{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;font-family:sans-serif}body{margin:0}article,aside,details,"
},
{
"path": "benchmarks/microsoft-2-stripmq-cleancss.css",
"chars": 81456,
"preview": ".shell-footer,.shell-header,.shell-header-HL2{border:0;font-weight:400;line-height:1.5;font-family:\"Segoe UI\",wf_segoe-u"
},
{
"path": "benchmarks/microsoft-2-stripmq-cssmin.css",
"chars": 105295,
"preview": ".shell-footer,.shell-header,.shell-header-HL2{border:0;font-weight:normal;line-height:1.5;font-family:\"Segoe UI\",\"wf_seg"
},
{
"path": "benchmarks/microsoft-2-stripmq-cssnano.css",
"chars": 90220,
"preview": ".shell-footer,.shell-header,.shell-header-HL2{border:0;font-weight:400;line-height:1.5;font-family:Segoe UI,wf_segoe-ui_"
},
{
"path": "benchmarks/microsoft-2-stripmq-csso.css",
"chars": 80763,
"preview": ".shell-footer,.shell-header,.shell-header-HL2{border:0;font-weight:400;line-height:1.5;font-family:\"Segoe UI\",\"wf_segoe-"
},
{
"path": "benchmarks/microsoft-2-stripmq-minify.css",
"chars": 105178,
"preview": ".shell-footer,.shell-header,.shell-header-HL2{border:0;font-weight:400;line-height:1.5;font-family:\"Segoe UI\",\"wf_segoe-"
},
{
"path": "benchmarks/microsoft-2-stripmq-yui.css",
"chars": 105280,
"preview": ".shell-footer,.shell-header,.shell-header-HL2{border:0;font-weight:normal;line-height:1.5;font-family:\"Segoe UI\",\"wf_seg"
},
{
"path": "benchmarks/microsoft-2-stripmq.css",
"chars": 105295,
"preview": ".shell-footer,.shell-header,.shell-header-HL2{border:0;font-weight:normal;line-height:1.5;font-family:\"Segoe UI\",\"wf_seg"
},
{
"path": "benchmarks/microsoft-3-stripmq-cleancss.css",
"chars": 3488,
"preview": ".shopper_section .lnk_no_mwf a{background:0 0;border-color:transparent;border-width:2px;color:#0078d7;margin-left:-24px;"
},
{
"path": "benchmarks/microsoft-3-stripmq-cssmin.css",
"chars": 4145,
"preview": ".shopper_section .lnk_no_mwf a{background:transparent;border-color:transparent;border-width:2px;color:#0078d7;margin-lef"
},
{
"path": "benchmarks/microsoft-3-stripmq-cssnano.css",
"chars": 3675,
"preview": ".shopper_section .lnk_no_mwf a{background:transparent;border-color:transparent;border-width:2px;color:#0078d7;margin-lef"
},
{
"path": "benchmarks/microsoft-3-stripmq-csso.css",
"chars": 3360,
"preview": ".shopper_section .lnk_no_mwf a{background:0 0;border-color:transparent;border-width:2px;color:#0078d7;margin-left:-24px;"
},
{
"path": "benchmarks/microsoft-3-stripmq-minify.css",
"chars": 4151,
"preview": ".shopper_section .lnk_no_mwf a{background:transparent;border-color:transparent;border-width:2px;color:#0078D7;margin-lef"
},
{
"path": "benchmarks/microsoft-3-stripmq-yui.css",
"chars": 4169,
"preview": ".shopper_section .lnk_no_mwf a{background:transparent;border-color:transparent;border-width:2px;color:#0078d7;margin-lef"
}
]
// ... and 343 more files (download for full content)
About this extraction
This page contains the full source code of the matthewhague/sat-css-tool GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 543 files (36.6 MB), approximately 9.6M tokens, and a symbol index with 1064 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.