body{margin:0;padding:0;color:#666;-webkit-text-size-adjust:none;-webkit-transition:-webkit-transform .2s cubic-bezier(.4,.01,.165,.99);transition:-webkit-transform .2s cubic-bezier(.4,.01,.165,.99);transition:transform .2s cubic-bezier(.4,.01,.165,.99);transition:transform .2s cubic-bezier(.4,.01,.165,.99),-webkit-transform .2s cubic-bezier(.4,.01,.165,.99);-webkit-tap-highlight-color:transparent;font-family:"Helvetica Neue",Arial,"Hiragino Sans GB",STHeiti,"Microsoft YaHei";-webkit-font-smoothing:antialiased;-webkit-overflow-scrolling:touch}body,html{width:100%;height:100%}h1,h2,h3,h4,h5,h6{margin:0;padding:0}a,a:hover{color:#2479CC;text-decoration:none}ol,ul{padding:0}*{-webkit-box-sizing:border-box;box-sizing:border-box}body.side{position:fixed;-webkit-transform:translate3D(250px,0,0);-ms-transform:translate3D(250px,0,0);transform:translate3D(250px,0,0)}#main{background-color:#fff;padding-left:290px;padding-right:40px;max-width:1390px;-webkit-overflow-scrolling:touch}h1.intro{padding:20px 30px;background-color:#f6f9fa;text-align:center;color:#999}
@font-face{font-family:iconfont;src:url(../font/iconfont.eot);src:url(../font/iconfont.eot?#iefix) format("embedded-opentype"),url(../font/iconfont.ttf) format("truetype"),url(../font/iconfont.svg#iconfont) format("svg")}.iconfont{font-family:iconfont!important;font-size:16px;font-style:normal;-webkit-font-smoothing:antialiased;-webkit-text-stroke-width:.2px;-moz-osx-font-smoothing:grayscale}.icon-weibo:before{content:"\e600"}.icon-archive:before{content:"\e601"}.icon-user:before{content:"\e602"}.icon-rss-v:before{content:"\e603"}.icon-tags:before{content:"\e604"}.icon-home:before{content:"\e605"}.icon-search:before{content:"\e606"}.icon-googleplus:before{content:"\e607"}.icon-weixin:before{content:"\e608"}.icon-mail:before{content:"\e609"}.icon-twitter-v:before{content:"\e60a"}.icon-linkedin:before{content:"\e60b"}.icon-stackoverflow:before{content:"\e60c"}.icon-github-v:before{content:"\e60d"}.icon-facebook:before{content:"\e60e"}.icon-right:before{content:"\e60f"}.icon-left:before{content:"\e610"}.icon-link:before{content:"\e611"}.icon-https:before{content:"\e612"}
.hljs{display:block;background:#fff;padding:.5em;color:#333;overflow-x:auto;-webkit-text-size-adjust:none}.hljs-comment,.lang-bash .hljs-shebang,.lang-java .hljs-javadoc,.lang-javascript .hljs-javadoc,.lang-rust .hljs-preprocessor{color:#969896}.hljs-string,.lang-apache .hljs-sqbracket,.lang-c .hljs-preprocessor,.lang-coffeescript .hljs-regexp,.lang-coffeescript .hljs-subst,.lang-cpp .hljs-preprocessor,.lang-javascript .hljs-regexp,.lang-json .hljs-attribute,.lang-less .hljs-built_in,.lang-makefile .hljs-variable,.lang-markdown .hljs-blockquote,.lang-markdown .hljs-emphasis,.lang-markdown .hljs-link_label,.lang-markdown .hljs-strong,.lang-markdown .hljs-value,.lang-nginx .hljs-number,.lang-nginx .hljs-regexp,.lang-objectivec .hljs-preprocessor .hljs-title,.lang-perl .hljs-regexp,.lang-php .hljs-regexp,.lang-scss .hljs-built_in,.lang-xml .hljs-value{color:#df5000}.hljs-keyword,.lang-css .hljs-at_rule,.lang-css .hljs-important,.lang-go .hljs-typename,.lang-haskell .hljs-type,.lang-http .hljs-request,.lang-ini .hljs-setting,.lang-java .hljs-javadoctag,.lang-javascript .hljs-javadoctag,.lang-javascript .hljs-tag,.lang-less .hljs-at_rule,.lang-less .hljs-tag,.lang-nginx .hljs-title,.lang-objectivec .hljs-preprocessor,.lang-php .hljs-phpdoc,.lang-scss .hljs-at_rule,.lang-scss .hljs-important,.lang-scss .hljs-tag,.lang-sql .hljs-built_in,.lang-stylus .hljs-at_rule,.lang-swift .hljs-preprocessor{color:#a71d5d}.lang-apache .hljs-cbracket,.lang-apache .hljs-common,.lang-apache .hljs-keyword,.lang-bash .hljs-built_in,.lang-bash .hljs-literal,.lang-c .hljs-built_in,.lang-c .hljs-number,.lang-coffeescript .hljs-built_in,.lang-coffeescript .hljs-literal,.lang-coffeescript .hljs-number,.lang-cpp .hljs-built_in,.lang-cpp .hljs-number,.lang-cs .hljs-built_in,.lang-cs .hljs-number,.lang-css .hljs-attribute,.lang-css .hljs-function,.lang-css .hljs-hexcolor,.lang-css .hljs-number,.lang-go .hljs-built_in,.lang-go .hljs-constant,.lang-haskell .hljs-number,.lang-http .hljs-attribute,.lang-http .hljs-literal,.lang-java .hljs-number,.lang-javascript .hljs-built_in,.lang-javascript .hljs-literal,.lang-javascript .hljs-number,.lang-json .hljs-number,.lang-less .hljs-attribute,.lang-less .hljs-function,.lang-less .hljs-hexcolor,.lang-less .hljs-number,.lang-makefile .hljs-keyword,.lang-markdown .hljs-link_reference,.lang-nginx .hljs-built_in,.lang-objectivec .hljs-built_in,.lang-objectivec .hljs-literal,.lang-objectivec .hljs-number,.lang-php .hljs-literal,.lang-php .hljs-number,.lang-puppet .hljs-function,.lang-python .hljs-number,.lang-ruby .hljs-constant,.lang-ruby .hljs-number,.lang-ruby .hljs-prompt,.lang-ruby .hljs-subst .hljs-keyword,.lang-ruby .hljs-symbol,.lang-rust .hljs-number,.lang-scss .hljs-attribute,.lang-scss .hljs-function,.lang-scss .hljs-hexcolor,.lang-scss .hljs-number,.lang-scss .hljs-preprocessor,.lang-sql .hljs-number,.lang-stylus .hljs-attribute,.lang-stylus .hljs-hexcolor,.lang-stylus .hljs-number,.lang-stylus .hljs-params,.lang-swift .hljs-built_in,.lang-swift .hljs-number{color:#0086b3}.lang-apache .hljs-tag,.lang-cs .hljs-xmlDocTag,.lang-css .hljs-tag,.lang-stylus .hljs-tag,.lang-xml .hljs-title{color:#63a35c}.lang-bash .hljs-variable,.lang-cs .hljs-preprocessor,.lang-cs .hljs-preprocessor .hljs-keyword,.lang-css .hljs-attr_selector,.lang-css .hljs-value,.lang-ini .hljs-keyword,.lang-ini .hljs-value,.lang-javascript .hljs-tag .hljs-title,.lang-makefile .hljs-constant,.lang-nginx .hljs-variable,.lang-scss .hljs-variable,.lang-xml .hljs-tag{color:#333}.lang-bash .hljs-title,.lang-c .hljs-title,.lang-coffeescript .hljs-title,.lang-cpp .hljs-title,.lang-cs .hljs-title,.lang-css .hljs-class,.lang-css .hljs-id,.lang-css .hljs-pseudo,.lang-diff .hljs-chunk,.lang-haskell .hljs-pragma,.lang-haskell .hljs-title,.lang-ini .hljs-title,.lang-java .hljs-title,.lang-javascript .hljs-title,.lang-less .hljs-class,.lang-less .hljs-id,.lang-less .hljs-pseudo,.lang-makefile .hljs-title,.lang-objectivec .hljs-title,.lang-perl .hljs-sub,.lang-php .hljs-title,.lang-puppet .hljs-title,.lang-python .hljs-decorator,.lang-python .hljs-title,.lang-ruby .hljs-parent,.lang-ruby .hljs-title,.lang-rust .hljs-title,.lang-scss .hljs-class,.lang-scss .hljs-id,.lang-scss .hljs-pseudo,.lang-stylus .hljs-class,.lang-stylus .hljs-id,.lang-stylus .hljs-pseudo,.lang-stylus .hljs-title,.lang-swift .hljs-title,.lang-xml .hljs-attribute{color:#795da3}.lang-coffeescript .hljs-attribute,.lang-coffeescript .hljs-reserved{color:#1d3e81}.lang-diff .hljs-chunk{font-weight:700}.lang-diff .hljs-addition{color:#55a532;background-color:#eaffea}.lang-diff .hljs-deletion{color:#bd2c00;background-color:#ffecec}.lang-markdown .hljs-link_url{text-decoration:underline}
#sidebar{width:250px;height:100%;position:fixed;left:0;top:0;background-image: url('/static/bg.jpg');background-size: cover;background-color: #9e9e9e;overflow:auto;z-index:1;-webkit-overflow-scrolling:touch}#sidebar li,#sidebar ul{margin:0;padding:0;list-style:none}#sidebar .profile{padding-top:40px;padding-bottom:10px}#sidebar .profile a,#sidebar .profile img{width:140px;height:140px;border-radius:70px;overflow:hidden}#sidebar .profile a{display:block;margin:0 auto}#sidebar .profile span{display:block;padding:10px 0;font-size:18px;color:#e5e3e9;text-align:center}#sidebar .buttons{margin-left:50px}#sidebar .buttons li{display:block;width:100%;height:45px;line-height:45px;font-size:16px}#sidebar .buttons li a{display:block;color:#e5e3e9;-webkit-transition:color .2s cubic-bezier(.4,.01,.165,.99);transition:color .2s cubic-bezier(.4,.01,.165,.99);text-decoration:none}#sidebar .buttons li a i,#sidebar .buttons li a span{display:inline-block;vertical-align:middle}#sidebar .buttons li a i{font-size:20px;width:40px;height:45px;line-height:45px;text-align:center;}#sidebar .buttons li a:hover{color:#e5e3e9}#sidebar .buttons li a.inline{display:inline-block;width:40px}#sidebar-mask{position:absolute;left:0;top:0;right:0;bottom:0;z-index:999;overflow:hidden;display:none;background-color:rgba(255,255,255,0)}
#header{display:none}#header{width:100%;height:50px;line-height:50px;overflow:hidden;position:fixed;left:0;top:0;z-index:20;background-color:#323436}body.side #header .btn-bar:before{width:24px;-webkit-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg);top:25px}body.side #header .btn-bar:after{width:24px;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg);bottom:24px}body.side #header .btn-bar i{opacity:0}#header h1{text-align:center;font-size:16px}#header h1 a{color:#999}#header .btn-bar{width:50px;height:50px;position:absolute;left:0;top:0;z-index:30}#header .btn-bar i,#header .btn-bar:after,#header .btn-bar:before{width:22px;height:1px;position:absolute;left:14px;background-color:#999;-webkit-transition:all .2s cubic-bezier(.4,.01,.165,.99) .3s;transition:all .2s cubic-bezier(.4,.01,.165,.99) .3s}#header .btn-bar i{top:25px;opacity:1}#header .btn-bar:before{content:'';top:17px}#header .btn-bar:after{content:'';bottom:16px}#header a.me,#header a.me img{width:30px;height:30px;border-radius:30px;overflow:hidden}#header a.me{position:absolute;right:10px;top:10px}
.pagination{width:100%;line-height:20px;position:relative;border-top:1px solid #fff;border-bottom:1px solid #ddd;padding:20px 0;overflow:hidden}.pagination .prev{float:left}.pagination .next{float:right}.pagination .center{text-align:center;width:80px;margin:auto}
article{border-bottom:1px solid #ddd;border-top:1px solid #fff;position:relative;padding:30px 0;word-wrap:break-word}article .meta{position:relative;float:right;color:#555;font-size:.9em;line-height:2;width:auto;text-align:right}article .meta a{color:#999}article .meta .comment,article .meta .date,article .meta .tags{position:relative}article h1.title{color:#333;font-size:2em;font-weight:300;line-height:35px;margin-bottom:25px}article h1.title a{color:#333}article h1.title a:hover{color:#2479CC;transition:color .3s}article button,article input.runcode{line-height:1;border:none;cursor:pointer;padding:.625em .5em;box-shadow:inset 0 -5px 20px rgba(0,0,0,.1);background:#12b0e6;color:#fff;font-size:14px;margin-top:10px;-webkit-appearance:button}article input.runcode:active,article input.runcode:focus,article input.runcode:hover{background:#f6ad08}article strong{font-weight:700}article em{font-style:italic}article blockquote{margin:10px 0 0 0;padding:15px 20px;border-left:5px solid #2479CC;background-color:#f8f8f8}article blockquote p{margin-bottom:0}article blockquote a{word-break:break-all;word-wrap:break-word}article code{font-family:Consolas,"Courier New",Courier,mono,serif;font-size:80%;margin:0 2px;padding:4px 5px;background-color:#f2f2f2;vertical-align:middle;border-radius:5px}article pre{font-family:Consolas,"Liberation Mono",Courier,monospace;font-size:14px;line-height:1.6;color:#5d6a6a;padding:.6em;border-left:5px solid #ccc;word-break:break-all;word-wrap:break-word;white-space:pre-wrap;position:relative;overflow:hidden}article pre code{border-radius:0;background-color:transparent;border:0;padding:0;margin:0;font-size:100%;display:block;position:relative}article pre b.name{position:absolute;line-height:1;top:10px;right:10px;font-size:60px;color:#eee;pointer-events:none}@media screen and (max-width:768px){article pre b.name{font-size:30px}}article img{padding:0;display:block;border:1px solid #ccc;margin:10px 0 5px 0;max-width:100%}article table{border:0;border-collapse:collapse;border-spacing:0}article table td,article table th{border:0}article table th{border-bottom:2px solid #848484;text-align:left;padding:6px 20px}article table td{border-bottom:1px solid #d0d0d0;padding:6px 20px}article .expire-tips{padding:5px 10px;font-size:15px;border:1px solid #e2e2e2;background-color:#ffffc0;border-left:5px solid #fff000;color:#333}article .aliyun-tips{padding:5px 10px;font-size:15px;border:1px solid #e2e2e2;background-color:#f0f8f4;border-left:5px solid #7cc4a0}article .post-info{font-size:14px}article .entry-content{font-size:16px;line-height:1.8;word-wrap:break-word}article .entry-content .date{color:#999;font-size:14px;font-style:italic}article .entry-content blockquote,article .entry-content dl,article .entry-content h1,article .entry-content h2,article .entry-content h3,article .entry-content h4,article .entry-content h5,article .entry-content h6,article .entry-content iframe,article .entry-content ol,article .entry-content p,article .entry-content pre,article .entry-content table,article .entry-content ul{margin-top:15px}article .entry-content blockquote>p:first-of-type,article .entry-content dl dl,article .entry-content dl ol,article .entry-content dl ul,article .entry-content ol dl,article .entry-content ol ol,article .entry-content ol ul,article .entry-content ul dl,article .entry-content ul ol,article .entry-content ul ul{margin-top:0}article .entry-content dl,article .entry-content ol,article .entry-content ul{margin-left:25px}article.tags section a{display:inline-block;font-size:14px;padding:0 15px;height:40px;line-height:40px;color:rgba(36,121,204,.8);border:1px solid rgba(36,121,204,.8);border-radius:4px;margin:0 15px 10px 0;text-decoration:none;-webkit-transition:color .2s cubic-bezier(.4,.01,.165,.99),border .2s cubic-bezier(.4,.01,.165,.99);transition:color .2s cubic-bezier(.4,.01,.165,.99),border .2s cubic-bezier(.4,.01,.165,.99)}article.tags section a:hover{color:#2479CC;border-color:#2479CC}a.anchor{display:block;position:relative;visibility:hidden}article .app-code>ul{list-style:decimal;background-color:#fff;margin:0;margin-left:40px;padding:0}article .app-code li{list-style:decimal-leading-zero;border-left:1px solid #ddd;padding-left:2px;position:relative}article .app-code li.mark{background-color:#fffbdd!important}article .app-code li:hover{background-color:#f3f3f3!important}article .app-code .line-num{width:40px;position:absolute;left:0;top:0;height:100%;left:-40px;cursor:pointer}article .app-code li:nth-of-type(even){background-color:#fcfcfc;color:inherit}article .entry-content pre .app-code{background-color:#eee}article pre{border-left:none;padding:0}article .entry-content pre code{font-size:12px;background-color:#fff;border:1px solid #eee;padding:0;line-height:26px}
#search .wrapper{margin-right:72px}#search form{position:relative}#search .wrapper input{-webkit-appearance:none;border:1px solid #bbb;border-radius:0;box-sizing:border-box;display:block;font-size:16px;height:40px;outline:0;padding:4px 6px;width:100%}#search .submit{-webkit-appearance:none;background-color:#e7e7e7;border:1px solid #bbb;border-left:0;border-radius:0;color:#222;display:block;font-size:16px;height:40px;outline:0;position:absolute;right:0;top:0;width:72px}#searchResult{min-height:350px;overflow-x:hidden}#searchResult .info{color:#676767;font-size:13px;padding:15px 0;border-bottom:1px solid #e9e9e9}#searchResult .no-result{padding:5px;margin:15px 0;border:1px solid #fc3;background-color:#fff4c2;font-size:13px}#searchResult .loading{margin-top:20px}#searchResult .hot-words{margin-top:20px}#searchResult .hot-words a{margin-right:20px}#searchResult .item{padding:.5em 0 .3em 0}#searchResult .item .title a{font-size:16px;text-decoration:underline}#searchResult .item .title .type{display:inline-block;background-color:#eee;color:#888;margin-right:8px;padding:0 5px;font-size:13px;border-radius:3px}#searchResult .item .desc{font-size:14px;line-height:1.6}#searchResult .item .tags{font-size:14px;line-height:1.8}#searchResult .item .tags a{margin-right:12px;color:#666}#searchResult .item .desc b,#searchResult .item .title b{color:#C00;font-weight:400}
#footer{line-height:1.8;text-align:center;padding:15px;border-top:1px solid #fff;font-size:.9em;}#footer .beian{color:#666}
#comments{border-top:1px solid #fff;border-bottom:1px solid #ddd;padding:30px 0;min-height:350px}#comments h1.title{font-size:25px;font-weight:300;line-height:35px;margin-bottom:20px}
/* responsive */
@media screen and (max-width:768px){#header{-webkit-transform:translate3D(0,0,0);-ms-transform:translate3D(0,0,0);transform:translate3D(0,0,0);-webkit-transition:all .2s cubic-bezier(.4,.01,.165,.99);transition:all .2s cubic-bezier(.4,.01,.165,.99);display:block}a.anchor{top:-50px}}@media screen and (max-width:768px){#sidebar.behavior_1{-webkit-transform:translate3D(-250px,0,0);-ms-transform:translate3D(-250px,0,0);transform:translate3D(-250px,0,0)}#sidebar.behavior_2{-webkit-transform:translate3D(0,0,0);-ms-transform:translate3D(0,0,0);transform:translate3D(0,0,0)}#sidebar{-webkit-transition:-webkit-transform .2s cubic-bezier(.4,.01,.165,.99);transition:-webkit-transform .2s cubic-bezier(.4,.01,.165,.99);transition:transform .2s cubic-bezier(.4,.01,.165,.99);transition:transform .2s cubic-bezier(.4,.01,.165,.99),-webkit-transform .2s cubic-bezier(.4,.01,.165,.99)}#sidebar .profile{padding-top:20px;padding-bottom:20px}#sidebar .profile a,#sidebar .profile img{width:100px;height:100px;border-radius:100px}#sidebar .profile span{display:none}}@media screen and (min-width:769px) and (max-width:1024px){#sidebar{width:75px}#sidebar .buttons {margin-left: 0;}#sidebar .profile{padding-top:20px}#sidebar .profile a,#sidebar .profile img{width:40px;height:40px;border-radius:40px}#sidebar .profile span{display:none}#sidebar .buttons li a{padding:0}#sidebar .buttons li a.inline{width:100%}#sidebar .buttons li a i{font-size:18px;display:block;margin:0 auto}#sidebar .buttons li a span{display:none}}@media screen and (min-width:768px) and (max-width:1024px){#main{padding-left:115px}}@media screen and (max-width:769px){#main{width:100%;min-height:100%;padding-top:50px;padding-left:10px;padding-right:10px}}@media screen and (max-width:769px){article{background-color:#fff;padding:10px}article .meta{display:none}article h1{font-size:22px;padding:5px 0 10px;margin:0}article .desc{color:#999;font-size:14px}article p.more{font-size:14px;margin:5px 0}}@media screen and (min-width: 768px) {.toc {right: 10%;padding: 6px;position: fixed;font-size: 12px;margin: 0 0 15px 20px;max-width: 260px;min-width: 120px;max-height: 400px;overflow-y: auto;opacity: 0.7;z-index: 1001;}}