text:
var gulp = require('gulp');
var sass = require('gulp-sass');
var livereload = require('gulp-livereload');
var autoprefixer = require('gulp-autoprefixer');

gulp.task('sass', function() {
  gulp.src('sass/**/*.scss')
    .pipe(sass({includePaths: ["bower_components/foundation/scss"]}).on('error', sass.logError))
    .pipe(autoprefixer({
      browsers: ['last 2 versions', 'ie >= 9', 'and_chr >= 2.3'],
      cascade: false
    }))
    .pipe(gulp.dest('./css/'))
    .pipe(livereload());
});

//Watch task
gulp.task('default',function() {
  livereload.listen();
  gulp.watch('sass/**/*.scss',['sass']);
});


text:
import { Component } from "@angular/core";

@Component({
    selector: "admin",
    templateUrl: 'admin.component.html'
})
export class Admin {
    constructor() {
        // ...
    }
}

redpajama_set_name: RedPajamaGithub


text:
@charset "utf-8";
/* CSS Document */

/* =Clearfix
--------------------------------------------------------------------------------------------------------*/
.clear { clear: both; }
.clearfix:after { content: "."; display:block; height:0; clear:both; visibility:hidden; }/* ----- clear fix for floats ----- */
.clearfix { display:inline-block; }
* html .clearfix { height:1%; }/* hides clearfix from IE-mac */
.clearfix { display:block; }/* end hide from IE-mac */
.alignleft { float:left; }
.alignright { float:right; }
.aligncenter { margin:auto; display:block; }
.alignnone { clear:both; font-size:0; line-height:0; margin:0; padding:0; border:0; height:0; width:0; }
.centered { text-align:center; }
/* End Clearfix
--------------------------------------------------------------------------------------------------------*/

/* =Typography
--------------------------------------------------------------------------------------------------------*/
body { font: 18px 'Open Sans', 'Helvetica Neue', Arial, Helvetica, sans-serif; color:#999; background: url(../img/fond_page.jpg); letter-spacing:-1px; }
strong { font-weight:bold; }
a, a > * {-webkit-transition: all 0.2s ease 0s; -moz-transition: all 0.2s ease 0s; -o-transition: all 0.2s ease 0s; transition: all 0.2s ease 0s; }
p { line-height:36px; font-size:25px; font-weight:300; letter-spacing:-1px }
.descriptionPerso{ line-height:36px; font-size:25px; font-weight:300; letter-spacing:-1px; padding: 25px 50px 0px 55px;}
.col2-3 p, .col1-1 p, .col1-1lightbox p , .col1-1lightbox2 p, .sliderlightbox p{ padding:20px 40px 0px 40px; }
.col1-3 p { padding:14px 20px 0px 20px; }
.col1-3 p a{ color:#999; text-decoration:none;}
.col1-3 p a:hover{ color:#c7c7c7; text-decoration:none;}
p.comments { padding:14px 40px 0px 40px; }
.title p {font-size:18px; color:#a3a3a3; padding:0px 20px 0px 20px; font-weight:400; }
.infos p {font-size:18px; padding:0px 20px 0px 20px; font-weight:400; }
.infosStages p {font-size:18px; padding: 25px 50px 0px 55px; font-weight:400; }
p.blockquote { font-family:Georgia, "Times New Roman", Times, serif; font-style:italic; font-weight:normal; padding:21px 20px 20px 20px; clear:both }
p.blockquote span {font: 12px 'Open Sans', 'Helvetica Neue', Arial, Helvetica, sans-serif; color:#777; text-transform:uppercase; letter-spacing:1px; }
.col2-3 p.blockquote { padding:20px 40px 20px 60px; }
.col1-1 p.blockquote { padding:20px 80px 0px 80px; }
.no-heading {padding-top:20px !important; }
p span {color:#0eb493; }
a { color:#c7c7c7; text-decoration:none; }
a:hover { text-decoration:none; color:#0eb493; }
/* End Typography
--------------------------------------------------------------------------------------------------------*/

/* =Headings
--------------------------------------------------------------------------------------------------------*/
#logo-container {height:130px; width:100%;  background-color: rgba(13, 96, 80, 0.3); text-align:center;}
h1#logo a { display:inline-block; color:#242527; font-size:60px; font-weight:700; text-transform:uppercase; text-decoration:none; letter-spacing:-0.02em }
h1#logo a span {font-family:Arial, Helvetica, sans-serif; }
.slogan {color:#a3a3a3; font-size:11px; padding:0; margin-top:-14px; font-weight:400; letter-spacing:0; }
h2, h3, h4 { line-height:1.25; letter-spacing:-1px }
h2 { font-size:28px; font-weight:700; color:#0eb493; padding:47px 40px 0px 40px;}
h2.blog-heading { padding:31px 40px 0px 40px; }
.clients h2 {padding-bottom:23px; }
.col1-3 h2 { padding:21px 20px 0px 20px; }
h3 { font-size:52px; font-weight:300; color:#999; line-height:68px; padding:40px; padding-top:14px; letter-spacing:-3px; }
h3 span {color:#0eb493; font-family: "Fredericka The Great", serif }
h4 { font-size:23px; font-weight:700; color:#c7c7c7; padding:47px 40px 0px 40px; }
.title h4 { color:#1b1c1e; padding:15px 20px 0px 20px; line-height:1; }
.infos h4 { padding:47px 40px 0px 40px; line-height:1.25; }
.infos h3 span{font-family:'Open Sans', sans-serif; }
.infos h4 span{ font-size:35px; font-weight:300; color:#0eb493; font-family:'Open Sans', sans-serif; line-height:38px; }
.infosFormations h4 { padding:25px 50px 0px 55px; padding-top:14px; line-height:1; font-size:23px; }
.infosFormations h2 { padding:25px 50px 0px 55px;padding-top:60px; font-size:23px;}
.infosStages h4 { padding:25px 50px 0px 55px; padding-top:14px; line-height:1; font-size:23px; }
.infosStages h2 { padding:25px 50px 0px 55px;padding-top:90px; font-size:23px;}
.infosPerso h4 { padding:25px 50px 0px 55px;padding-top:40px; font-size:23px;}
.infosPerso h2 { padding:25px 50px 0px 55px;padding-top:40px; font-size:23px;}
.descriptionPerso span{ padding:25px 50px 0px 0px;  font-size:23px; font-weight:700; color:#c7c7c7;}
.infosPerso img {width:250px; height:250px; padding-left:250px;}
/* End Headings
--------------------------------------------------------------------------------------------------------*/

/* =Contact
--------------------------------------------------------------------------------------------------------*/
#wrap{ width:530px; largin:20px auto 0; height:500px;}
#form_wrap{overflow:hidden; width:530px; height :446px; position: relative; top:0px;-webkit-transition: all 1s ease-in-out .3s;
		-moz-transition: all 1s ease-in-out .3s;
		-o-transition: all 1s ease-in-out .3s;
		transition: all 1s ease-in-out .3s;}

#form_wrap:before{content:""; position : absolute; bottom:128px; left: 120px; background:url('img/before1.png'); width:390px; height: 316px; background-repeat: no-repeat;}
#form_wrap:after{content:""; position:absolute; bottom:70px; left:120px; background:url('img/after2.png'); width:480px; height: 260px; background-repeat: no-repeat;}
#form_wrap:hover{height: 680px; top: -150px; -webkit-transition: all 1s ease-in-out .3s;
		-moz-transition: all 1s ease-in-out .3s;
		-o-transition: all 1s ease-in-out .3s;
		transition: all 1s ease-in-out .3s;}

form{background: #f7f2ec url('img/letter_bg.png');position: relative; top:130px;overflow:hidden; height:40px; width:260px; margin:0px auto; padding:20px; border :1px solid #fff;
	-moz-border-radius:3px; -webkit-border-radius:3px; border-radius:3px;
	-webkit-box-shadow: 0px 0px 3px #9d9d9d, inset 0px 0px 27px #fff;
	-moz-box-shadow: 0px 0px 3px #9d9d9d, inset 0px 0px 27px #fff;
	box-shadow: 0px 0px 3px #9d9d9d, inset 0px 0px 27px #fff;
	left:20px;-webkit-transition: all 1s ease-in-out .3s;
	-moz-transition: all 1s ease-in-out .3s;
	-o-transition: all 1s ease-in-out .3s;
	transition: all 1s ease-in-out .3s;}

#form_wrap:hover form{height:270px;-webkit-transition: all 1s ease-in-out .3s;
		-moz-transition: all 1s ease-in-out .3s;
		-o-transition: all 1s ease-in-out .3s;
		transition: all 1s ease-in-out .3s; }

/* End Contact
--------------------------------------------------------------------------------------------------------*/

/* =Info-Bulle
--------------------------------------------------------------------------------------------------------*/
.tooltip{ position: relative; cursor: help; display: inline-block; text-decoration: none; color: #0eb493; font-family: "Fredericka The Great", serif; outline: none;}
.tooltip span{ font-family:Open Sans, Helvetica, sans-serif; font-size:15px; font-weight:300; letter-spacing:-1px; color:#FFFFFF;

visibility: hidden; position: absolute; bottom: 60px; left: 50%; z-index: 999; width: 245px; margin-left: -127px; padding: 10px; border: 2px solid #128670; opacity: .9;
background-color: #128670;
background-image: -webkit-linear-gradient(rgba(255,255,255,.5), rgba(255,255,255,0));
background-image: -moz-linear-gradient(rgba(255,255,255,.5), rgba(255,255,255,0));
background-image: -ms-linear-gradient(rgba(255,255,255,.5), rgba(255,255,255,0));
background-image: -o-linear-gradient(rgba(255,255,255,.5), rgba(255,255,255,0));
background-image: linear-gradient(rgba(255,255,255,.5), rgba(255,255,255,0));
-moz-border-radius: 4px;
border-radius: 4px;
-moz-box-shadow: 0 1px 2px rgba(0,0,0,.4), 0 1px 0 rgba(255,255,255,.5) inset;
-webkit-box-shadow: 0 1px 2px rgba(0,0,0,.4), 0 1px 0 rgba(255,255,255,.5) inset;
box-shadow: 0 1px 2px rgba(0,0,0,.4), 0 1px 0 rgba(255,255,255,.5) inset;
}
.tooltip:hover{border: 0; /* IE6 fix */}
.tooltip:hover span{visibility: visible;}
.tooltip span:before,
.tooltip span:after
{
  content: "";
  position: absolute;
  z-index: 1000;
  bottom: -7px;
  left: 50%;
  margin-left: -8px;
  border-top: 8px solid #128670;
  border-left: 8px solid transparent;
  border-right: 8px solid transparent;
  border-bottom: 0;
}

.tooltip span:before
{
  border-top-color: #128670;
  bottom: -8px;
}

/* End Info-bulle
--------------------------------------------------------------------------------------------------------*/

/* =Info-Bulle Spécial Objet
--------------------------------------------------------------------------------------------------------*/
.tooltip2{ position: relative; cursor: help; display: inline-block; text-decoration: none; color: #0eb493; font-family: "Fredericka The Great", serif; outline: none;}
.tooltip2 span{ font-family:Open Sans, Helvetica, sans-serif; font-size:15px; font-weight:300; letter-spacing:-1px; color:#FFFFFF;

visibility: hidden; position: absolute; bottom: 60px; left: 90%; z-index: 999; width: 200px; margin-left: -127px; padding: 10px; border: 2px solid #128670; opacity: .9;
background-color: #128670;
background-image: -webkit-linear-gradient(rgba(255,255,255,.5), rgba(255,255,255,0));
background-image: -moz-linear-gradient(rgba(255,255,255,.5), rgba(255,255,255,0));
background-image: -ms-linear-gradient(rgba(255,255,255,.5), rgba(255,255,255,0));
background-image: -o-linear-gradient(rgba(255,255,255,.5), rgba(255,255,255,0));
background-image: linear-gradient(rgba(255,255,255,.5), rgba(255,255,255,0));
-moz-border-radius: 4px;
border-radius: 4px;
-moz-box-shadow: 0 1px 2px rgba(0,0,0,.4), 0 1px 0 rgba(255,255,255,.5) inset;
-webkit-box-shadow: 0 1px 2px rgba(0,0,0,.4), 0 1px 0 rgba(255,255,255,.5) inset;
box-shadow: 0 1px 2px rgba(0,0,0,.4), 0 1px 0 rgba(255,255,255,.5) inset;
}
.tooltip2:hover{border: 0; /* IE6 fix */}
.tooltip2:hover span{visibility: visible;}
.tooltip2 span:before,
.tooltip2 span:after
{
  content: "";
  position: absolute;
  z-index: 1000;
  bottom: -7px;
  left: 45%;
  margin-left: -8px;
  border-top: 8px solid #128670;
  border-left: 8px solid transparent;
  border-right: 8px solid transparent;
  border-bottom: 0;
}

.tooltip2 span:before
{
  border-top-color: #128670;
  bottom: -8px;
}

/* End Info-bulle Spécial Objet
--------------------------------------------------------------------------------------------------------*/

/* =Main Content
--------------------------------------------------------------------------------------------------------*/
.col1-1 { width:940px; margin:10px; background:#f4f7f9; }
.col1-1lightbox { width:800px; height:350px; margin:10px; background:#f4f7f9; }
.col1-1lightbox2{ width:800px; height:370px; margin:10px; background:#f4f7f9; }
.col1-3 { width:300px; height:300px; margin:10px; float:left; background:#f4f7f9; border-bottom :3px solid #128670;}
.col2-3 { width:620px; height:620px; margin:10px; float:left; background:#f4f7f9; }
.col1-3slider{width:300px; height:300px; margin:10px; float:left; background: #DBDEDF; border-bottom :3px solid #128670;}
.colYoutube{ width:560px; height:315px; margin:10px;}
.colSoundcloud{ width:560px; height:166px; margin:10px;}
.sliderlightbox{ width:430px; height:300px; margin:10px; float:left; background:#f4f7f9; }
.slider{ padding-top:45px; display:block; position:relative; -webkit-transition: all 0.2s ease 0s; -moz-transition: all 0.2s ease 0s; -o-transition: all 0.2s ease 0s; transition: all 0.2s ease 0s; overflow:hidden; background-color: #DBDEDF;}
.colContact{width:620px; height:295px; margin:10px; float:left; background:#f4f7f9; border-bottom :3px solid #128670;}
.colStages{width:620px; height:295px; margin:10px; float:left; background:#f4f7f9; border-bottom :3px solid #128670;}
.colFormations{ width:620px; height:620px; margin:10px; float:left; background:#f4f7f9; border-bottom :3px solid #128670;}
.colPerso{ width:620px; height:620px; margin:10px; float:left; background:#f4f7f9; border-bottom :3px solid #128670;}
.colCercle{ background:#f4f7f9; border-radius:50%; width:300px; height:300px; border:2px solid #128670;}
.break { height:50px; position:relative; }
.images { display:block; position:relative; -webkit-transition: all 0.2s ease 0s; -moz-transition: all 0.2s ease 0s; -o-transition: all 0.2s ease 0s; transition: all 0.2s ease 0s; overflow:hidden; background-color: #DBDEDF;}
.title {height:84px; width:300px; background:#fbfbfb; position:absolute; bottom:0px; }
.titleFormations {height:620px; width:620px; background:#fbfbfb; position:absolute; bottom:0px; }
.logo { width:206px; height:99px; text-align:center; border:1px solid #1b1c1e; border-left:0px; padding-top:33px; float:left; margin-top:1px; margin-bottom:1px; }
.logo.last {border-right:0px; }
.stages, .about , .cv, .realisations{overflow:hidden; }
.load-more {background:url(../images/bg-load.png) center 45px no-repeat #0099DF; background-size:26px 26px; display:block; height:216px; width:220px; font-size:18px; line-height:26px; padding:84px 40px 0px 40px; color:#fbfbfb; letter-spacing:-1px; cursor:pointer !important; text-align:center}
@media only screen and (-Webkit-min-device-pixel-ratio: 1.5),
only screen and (-moz-min-device-pixel-ratio: 1.5),
only screen and (-o-min-device-pixel-ratio: 3/2),
only screen and (min-device-pixel-ratio: 1.5) {
  .load-more {background:url(../images/bg-load@2x.png) center 45px no-repeat #0099DF; }
}
/* =End Main Content
--------------------------------------------------------------------------------------------------------*/

/* =Container stages et réalisations
--------------------------------------------------------------------------------------------------------*/

.overlay {background-color: rgba(14,180,147,.9); text-align: center; position: absolute; left: 0; top: 0; width: 100%; height: 100%; color: #fff; opacity: 0; filter: alpha(opacity=0);

-webkit-transition: all 450ms ease-out 0s;
   -moz-transition: all 450ms ease-out 0s;
	 -o-transition: all 450ms ease-out 0s;
		transition: all 450ms ease-out 0s;

-webkit-transform: rotateY(180deg) scale(0.5,0.5);
   -moz-transform: rotateY(180deg) scale(0.5,0.5);
	-ms-transform: rotateY(180deg) scale(0.5,0.5);
	 -o-transform: rotateY(180deg) scale(0.5,0.5);
		transform: rotateY(180deg) scale(0.5,0.5);
}

.work-item:hover .overlay { opacity: 1; filter: alpha(opacity=100);
-webkit-transform: rotateY(0deg) scale(1,1);
   -moz-transform: rotateY(0deg) scale(1,1);
	-ms-transform: rotateY(0deg) scale(1,1);
	 -o-transform: rotateY(0deg) scale(1,1);
		transform: rotateY(0deg) scale(1,1);
}
.work-item .overlay a { border: 1px solid #fff; border-radius: 50%; color: #fff; display: inline-block; margin-top: 20%; padding: 7px 10px;}
.work-item .overlay a:hover { color: #fff;}
.work-item .overlay h4 { font-size: 18px; font-weight: 700; line-height: 24px; color: #fff;}
.work-item .overlay p {font-size: 14px; line-height: 24px;}

/* =EndContainer stages et réalisations
--------------------------------------------------------------------------------------------------------*/

/* =Single Work
--------------------------------------------------------------------------------------------------------*/
.dedicated-page-navi {width:100%; height:10px; margin-bottom:29px; position:fixed; z-index:300; text-align:center; margin-top:0px; background-color:rgba(255, 255, 255, 0.98) !important; background-color:#fff; -webkit-box-shadow:0 1px 0 rgba(0, 0, 0, 0.1); -moz-box-shadow:0 1px 0 rgba(0, 0, 0, 0.1); box-shadow:0 1px 0 rgba(0, 0, 0, 0.1); }
.close {position:absolute; top:10px; right:30px; width:58px; height:48px; background:url(../images/bg-close.png) center 10px no-repeat #fbfbfb; background-size: 18px 18px; background-color:rgba(255, 255, 255, 0.98) !important; background-color:#fff; -webkit-box-shadow:0 1px 0 rgba(0, 0, 0, 0.1); -moz-box-shadow:0 1px 0 rgba(0, 0, 0, 0.1); box-shadow:0 1px 0 rgba(0, 0, 0, 0.1); cursor:pointer; }
@media only screen and (-Webkit-min-device-pixel-ratio: 1.5),
only screen and (-moz-min-device-pixel-ratio: 1.5),
only screen and (-o-min-device-pixel-ratio: 3/2),
only screen and (min-device-pixel-ratio: 1.5) {
  .close { background:url(../images/bg-close@2x.png) center 10px no-repeat #fbfbfb; }
}
.dedicated-page {padding-top:20px; }
.infos.single-work {width:300px; height:auto !important; border:0; padding:0; z-index:1; background:#1F313A; position:relative; }
.videos {width:450px !important; height:263px !important; border:none; margin:0px; display:block; z-index:8; }
.videos.single-work {width:610px !important; height:353px !important;  }
/* =End Single Work
--------------------------------------------------------------------------------------------------------*/

/* =Image Hover
--------------------------------------------------------------------------------------------------------*/
.images img {width:100%; display: block; z-index:9 }
.slider img {width:100%; display: block; z-index:9 }
.infos {width:300px; height:300px; top:0; left:0px; border:0; padding:0; display:none; z-index:1; background:#1F313A; position:absolute; }
.infosPerso{width:620px; height:620px; top:0; left:0px; border:0; padding:0; display:none; z-index:1; background:#1F313A; position:absolute; }
.infosFormations {width:620px; height:620px; top:0; left:0px; border:0; padding:0; display:none; z-index:1; background:#1F313A; position:absolute; }
.infosStages {width:620px; height:620px; top:0; left:0px; border:0; padding:0; display:none; z-index:1; background:#1F313A; position:absolute; }
.movable-contentFormations {z-index:2; position:absolute; width:620px; height:620px; }
.infos-single-work {width:300px; height:300px;  }
.movable-content {z-index:2; position:absolute; width:300px; height:300px; }
.tab.first {margin-top:10px; }
.tab.last {border-bottom:1px solid #1F313A;}
.tab {border-top:1px solid #1F313A; width:280px; height:26px; padding:19px 0px 19px 20px; }
.tab:hover {background-color:#2c2d2f; color:#999; }
a .tab {color:#999; }
a .tab:hover {color:#999; }
.icons { float:left; height:24px; width:24px; margin-right:21px; margin-top:1px; display:inline-block }
.email {background:url(../images/bg-email.png) no-repeat; background-size:24px 24px; }
.xing {background:url(../images/bg-xing.png) no-repeat; background-size:24px 24px; }
.tweat {background:url(../images/bg-tweat.png) no-repeat; background-size:24px 24px; }
.view-more {background:url(../images/bg-view-more.png) no-repeat; background-size:31px 17px; width:31px; margin-left:-3px; margin-top:4px;}
.zoom {background:url(../images/bg-zoom.png) no-repeat; background-size:25px 25px; }
.link {background:url(../images/bg-link.png) no-repeat; background-size:24px 24px; }
.pdf {background:url(../images/bg-file.png) no-repeat; background-size:24px 24px; }
.video {background:url(../images/bg-video.png) no-repeat; background-size:24px 24px; }
.bubble {background:url(../images/bg-bubble.png) no-repeat; background-size:24px 24px; }
.quote {background:url(../images/bg-heart.png) no-repeat; background-size:24px 24px; }
.slideshow {background:url(../images/bg-slideshow.png) no-repeat; background-size:28px 15px; width:28px; margin-top:5px; margin-left:-1px; }
.aside {background:url(../images/bg-aside.png) no-repeat; background-size:23px 23px; }
@media only screen and (-Webkit-min-device-pixel-ratio: 1.5),
only screen and (-moz-min-device-pixel-ratio: 1.5),
only screen and (-o-min-device-pixel-ratio: 3/2),
only screen and (min-device-pixel-ratio: 1.5) {
.email {background:url(../images/bg-email@2x.png) no-repeat; }
.xing {background:url(../images/bg-xing@2x.png) no-repeat; }
.dribble {background:url(../images/bg-dribble@2x.png) no-repeat;  }
.view-more {background:url(../images/bg-view-more@2x.png) no-repeat; }
.zoom {background:url(../images/bg-zoom@2x.png) no-repeat; }
.link {background:url(../images/bg-link@2x.png) no-repeat; }
.pdf {background:url(../images/bg-file@2x.png) no-repeat; }
.video {background:url(../images/bg-video@2x.png) no-repeat; }
.bubble {background:url(../images/bg-bubble@2x.png) no-repeat; }
.quote {background:url(../images/bg-heart@2x.png) no-repeat; }
.slideshow {background:url(../images/bg-slideshow@2x.png) no-repeat; }
.aside {background:url(../images/bg-aside@2x.png) no-repeat; }
}
/* End Image Hover
--------------------------------------------------------------------------------------------------------*/

#owl-demo .owl-item div{
  padding:5px;

}
#owl-demo .owl-item img{
  display: block;
   width:auto;
  -webkit-border-radius: 3px;
  -moz-border-radius: 3px;
  border-radius: 3px;
}

#owl-slide .owl-item img{
    display: block;
	width: 210px;
	height: 120px;
}

/* =Footer
--------------------------------------------------------------------------------------------------------*/
footer { background:#242527; width:100%; height:180px; margin:0px 0px 0 0px; padding:50px 0 0 0px;  }
/* End Footer
--------------------------------------------------------------------------------------------------------*/

/* =Isotope
--------------------------------------------------------------------------------------------------------*/
.isotope-item { z-index: 2; }
.isotope-hidden.isotope-item { pointer-events: none; z-index: 1; }
/**** Isotope CSS3 transitions ****/
.isotope, .isotope .isotope-item { -webkit-transition-duration: 0.8s; -moz-transition-duration: 0.8s; -ms-transition-duration: 0.8s; -o-transition-duration: 0.8s; transition-duration: 0.8s; }
.isotope { -webkit-transition-property: height, width; -moz-transition-property: height, width; -ms-transition-property: height, width; -o-transition-property: height, width; transition-property: height, width; }
.isotope .isotope-item { -webkit-transition-property: -webkit-transform, opacity; -moz-transition-property:    -moz-transform, opacity; -ms-transition-property:     -ms-transform, opacity; -o-transition-property:         top, left, opacity; transition-property:         transform, opacity; }
/**** disabling Isotope CSS3 transitions ****/
.isotope.no-transition, .isotope.no-transition .isotope-item, .isotope .isotope-item.no-transition { -webkit-transition-duration: 0s; -moz-transition-duration: 0s; -ms-transition-duration: 0s; -o-transition-duration: 0s; transition-duration: 0s; }
/* End: Recommended Isotope styles */

/* disable CSS transitions for containers with infinite scrolling*/
.isotope.infinite-scrolling { -webkit-transition: none; -moz-transition: none; -ms-transition: none; -o-transition: none; transition: none; }

#options { background-color: rgba(13, 96, 80, 0.3); width:100%; height:35px; position:fixed; z-index:300; text-align:center;  -webkit-box-shadow:0 1px 0 rgba(0, 0, 0, 0.4); -moz-box-shadow:0 1px 0 rgba(0, 0, 0, 0.4); box-shadow:0 1px 0 rgba(0, 0, 0, 0.4);  -webkit-transition: background-color 800ms linear;
       -moz-transition: background-color 800ms linear;
	    -ms-transition: background-color 800ms linear;
         -o-transition: background-color 800ms linear;
			transition: background-color 800ms linear;}
#options ul { margin: 0; list-style: none; display:inline-block; padding-top:0px; }
#options li { float: left;  }
#options li a { color: #128670; font-family: "oswald", Arial, Helvetica, sans-serif; font-size:15px; font-weight:normal; letter-spacing:0.05em; text-decoration:none; text-transform:uppercase; display:inline-block; padding:5px 17px;  margin:0px; }
#options li a:hover {color:#0D6050;
-moz-transition: color 400ms linear;
	    -ms-transition: color 400ms linear;
         -o-transition: color 400ms linear;
			transition: color 400ms linear;}
#options li a.selected { background: #18AD90; color: #ffffff;
-moz-transition: background-color 800ms linear;
	    -ms-transition: background-color 800ms linear;
         -o-transition: background-color 800ms linear;
			transition: background-color 800ms linear;}
#options.fixed { position: fixed; top: -5px;  }
/* End Isotope
--------------------------------------------------------------------------------------------------------*/

@media only screen and (min-width: 1600px) {
.container { padding:0px; width:1600px; position:relative; margin:0 auto; }
}

@media only screen and (min-width: 1280px) {
.container { padding:0px; width:1280px; position:relative; margin:0 auto; }
}

/* Standard 960 or larger (browsers) */
@media only screen and (min-width: 960px) {

}

/* Smaller than standard 960 (devices and browsers) */
@media only screen and (max-width: 959px) {

}

img.opacity {
	-webkit-transition: opacity 0.2s linear;
	opacity: 0.7;
}
img.opacity:hover {
	opacity: 1;
}


text:
function githubProvider() {
  // [START auth_github_provider_create]
  const { GithubAuthProvider } = require("firebase/auth");

  const provider = new GithubAuthProvider();
  // [END auth_github_provider_create]

  // [START auth_github_provider_scopes]
  provider.addScope('repo');
  // [END auth_github_provider_scopes]

  // [START auth_github_provider_params]
  provider.setCustomParameters({
    'allow_signup': 'false'
  });
  // [END auth_github_provider_params]
}

function githubProviderCredential(token) {
  // [START auth_github_provider_credential]
  const { GithubAuthProvider } = require("firebase/auth");

  const credential = GithubAuthProvider.credential(token);
  // [END auth_github_provider_credential]
}

function githubSignInPopup(provider) {
  // [START auth_github_signin_popup]
  const { getAuth, signInWithPopup, GithubAuthProvider } = require("firebase/auth");

  const auth = getAuth();
  signInWithPopup(auth, provider)
    .then((result) => {
      // This gives you a GitHub Access Token. You can use it to access the GitHub API.
      const credential = GithubAuthProvider.credentialFromResult(result);
      const token = credential.accessToken;

      // The signed-in user info.
      const user = result.user;
      // ...
    }).catch((error) => {
      // Handle Errors here.
      const errorCode = error.code;
      const errorMessage = error.message;
      // The email of the user's account used.
      const email = error.customData.email;
      // The AuthCredential type that was used.
      const credential = GithubAuthProvider.credentialFromError(error);
      // ...
    });
  // [END auth_github_signin_popup]
}

function githubSignInRedirectResult() {
  // [START auth_github_signin_redirect_result]
  const { getAuth, getRedirectResult, GithubAuthProvider } = require("firebase/auth");

  const auth = getAuth();
  getRedirectResult(auth)
    .then((result) => {
      const credential = GithubAuthProvider.credentialFromResult(result);
      if (credential) {
        // This gives you a GitHub Access Token. You can use it to access the GitHub API.
        const token = credential.accessToken;
        // ...
      }

      // The signed-in user info.
      const user = result.user;
    }).catch((error) => {
      // Handle Errors here.
      const errorCode = error.code;
      const errorMessage = error.message;
      // The email of the user's account used.
      const email = error.customData.email;
      // The AuthCredential type that was used.
      const credential = GithubAuthProvider.credentialFromError(error);
      // ...
    });
  // [END auth_github_signin_redirect_result]
}


text:
VdProjEdit
==========

A simple utility to set a Visual Studio installer projects Version, ProductName and Title based on an existing assembly


text:
import re

class Parser:
    @classmethod
    def accept(cls, first_line):
        raise NotImplementedError()

    def parse(self, line):
        raise NotImplementedError()

    def get_post(self):
        raise NotImplementedError()

    def parse_lines(self, lines):
        for line in lines:
            self.parse(line)

class FirstFileFormatParser(Parser):
    accept_pattern = re.compile('\\w+\\.\\d+')

    def __init__(self):
        self.post = { 'body': '' }
        self.line_number = 0
        self.keys = [
            'message_id',
            'newsgroup',
            'path',
            'timestamp',
            'subject'
        ]

    @classmethod
    def accept(cls, first_line):
        return cls.accept_pattern.match(first_line)

    def parse(self, line):
        if self.line_number < len(self.keys):
            self.parse_header(line)
        else:
            self.parse_body(line)
        self.line_number += 1

    def get_post(self):
        post = self.post
        post['body'] = post['body'][:-1]
        return post

    def parse_header(self, line):
        key = self.keys[self.line_number]
        self.post[key] = line

    def parse_body(self, line):
        self.post['body'] = self.post['body'] + line + '\n'

class SecondFileFormatParser(Parser):

    def __init__(self):
        self.post = { 'body': '' }
        self.new_line_count = 0

    @classmethod
    def accept(cls, first_line):
        return first_line.startswith('Path: ')

    def parse(self, line):
        if self.new_line_count < 3:
            if line == '':
                self.new_line_count += 1
            else:
                self.parse_header(line)
        else:
            self.parse_body(line)

    def get_post(self):
        post = self.post
        post['body'] = post['body'][:-1]
        return post

    def parse_header(self, line):
        key, value = line.split(': ', 1)
        key = key.replace('-', '_')
        key = key.replace('Date', 'timestamp')
        self.post[key.lower()] = value

    def parse_body(self, line):
        self.post['body'] = self.post['body'] + line + '\n'


text:
namespace view_manager {

FocusController::FocusController(FocusControllerDelegate* delegate,
                                 ServerView* root)
    : delegate_(delegate), root_(root) {
}

FocusController::~FocusController() {
}

void FocusController::SetFocusedView(ServerView* view) {
  if (GetFocusedView() == view)
    return;

  SetFocusedViewImpl(view, CHANGE_SOURCE_EXPLICIT);
}

ServerView* FocusController::GetFocusedView() {
  return drawn_tracker_ ? drawn_tracker_->view() : nullptr;
}

void FocusController::SetFocusedViewImpl(ServerView* view,
                                         ChangeSource change_source) {
  ServerView* old = GetFocusedView();

  DCHECK(!view || view->IsDrawn(root_));

  if (view)
    drawn_tracker_.reset(new ServerViewDrawnTracker(root_, view, this));
  else
    drawn_tracker_.reset();

  if (change_source == CHANGE_SOURCE_DRAWN_STATE_CHANGED)
    delegate_->OnFocusChanged(old, view);
}

void FocusController::OnDrawnStateChanged(ServerView* ancestor,
                                          ServerView* view,
                                          bool is_drawn) {
  DCHECK(!is_drawn);  // We only observe when drawn.
  SetFocusedViewImpl(ancestor, CHANGE_SOURCE_DRAWN_STATE_CHANGED);
}

}  // namespace view_manager


text:
package Paws::SSM::DescribeDocumentPermissionResponse;
  use Moose;
  has AccountIds => (is => 'ro', isa => 'ArrayRef[Str|Undef]');

  has _request_id => (is => 'ro', isa => 'Str');

### main pod documentation begin ###

=head1 NAME

Paws::SSM::DescribeDocumentPermissionResponse

=head1 ATTRIBUTES

=head2 AccountIds => ArrayRef[Str|Undef]

The account IDs that have permission to use this document. The ID can
be either an AWS account or I<All>.

=head2 _request_id => Str

=cut

1;


text:
package cc.nfscan.server.utils;

import org.junit.Assert;
import org.junit.Test;
import static cc.nfscan.server.utils.StringUtils.*;

/**
 * Test targeting String manipulation methods used across the whole application
 *
 * @author Paulo Miguel Almeida @PauloMigAlmeida
 */
public class StringUtilsTest {

    @Test
    public void testIsNumeric() throws Exception {
        Assert.assertTrue(isNumeric("10"));
        Assert.assertFalse(isNumeric("10a"));
        Assert.assertTrue(isNumeric("6548"));
    }

    @Test
    public void testValidateCNPJ() throws Exception {
        Assert.assertTrue(validateCNPJ("22843642000195"));
        Assert.assertFalse(validateCNPJ("22843642500155"));
        Assert.assertTrue(validateCNPJ("22.843.642/0001-95"));
    }

    @Test
    public void testReverseString() throws Exception {
        Assert.assertEquals(reverseString("nfscan-receipt-donation"), "noitanod-tpiecer-nacsfn");
        Assert.assertEquals(reverseString("ljkahsldkjfhalskjdhflasjd"), "djsalfhdjkslahfjkdlshakjl");
        Assert.assertNotEquals(reverseString("ljkahsldkjfhalskjdhflasjd"), "nfscan-receipt-donation");
    }

    @Test
    public void testValidateElectronicTaxReceiptAccessKey() throws Exception {
        Assert.assertTrue(validateElectronicTaxReceiptAccessKey("35151222843642000195650010000018121400020216"));
        Assert.assertTrue(validateElectronicTaxReceiptAccessKey("3515 1222 8436 4200 0195 6500 1000 0018 1214 0002 0216"));
        Assert.assertFalse(validateElectronicTaxReceiptAccessKey("3515 1222 8436 2400 0195 6650 1000 0018 1214 0002 0216"));
        Assert.assertTrue(validateElectronicTaxReceiptAccessKey("3515 0922 8436 4200 0195 6500 1000 0000 2314 0000 2313"));
        Assert.assertFalse(validateElectronicTaxReceiptAccessKey("3500 1222 8436 2400 0195 6650 1000 0018 1214 0002 0216"));
        Assert.assertTrue(validateElectronicTaxReceiptAccessKey("3500 0922 8436 4200 0195 6500 1000 0000 2314 0000 2313"));
        Assert.assertTrue(validateElectronicTaxReceiptAccessKey("3599 0922 8436 4200 0195 6500 1000 0000 2314 0000 2313"));
        Assert.assertFalse(validateElectronicTaxReceiptAccessKey("3599 1322 8436 4200 0195 6500 1000 0000 2314 0000 2313"));
        Assert.assertFalse(validateElectronicTaxReceiptAccessKey("3599 1232 8436 4200 0195 6500 1000 0000 2314 0000 2313"));
    }

    @Test
    public void testRemoveNonNumeric() throws Exception {
        Assert.assertEquals(removeNonNumeric("3515 1222 8436 4200 0195 6500 1000 0018 1214 0002 0216"), "35151222843642000195650010000018121400020216");
        Assert.assertEquals(removeNonNumeric("22.843.642/0001-95"),"22843642000195");
    }
}


text:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.15"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Drake: SolverInterface Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>

<link href="navtree.css" rel="stylesheet" type="text/css"/>

<link href="search/search.css" rel="stylesheet" type="text/css"/>

<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen_extra.css" rel="stylesheet" type="text/css"/>

     Home

     Installation

     Gallery

API Documentation

      C++
      Python

Resources

      Getting Help
      Tutorials
      Python Bindings
      For Developers
      Credits

     GitHub

Drake

  Drake C++ Documentation

  <form id="ddg-search-form" class="wy_form" action="https://duckduckgo.com/" method="get">
   <input type="text" name="q" placeholder="Search C++ API only…">
   <input type="hidden" name="sites" value="drake.mit.edu/doxygen_cxx">
  </form>
  <form id="ddg-search-form" class="wy_form" action="https://duckduckgo.com/" method="get">
   <input type="text" name="q" placeholder="Search all of Drake…">
   <input type="hidden" name="sites" value="drake.mit.edu">
  </form>

          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)"
               onblur="searchBox.OnSearchFieldFocus(false)"
               onkeyup="searchBox.OnSearchFieldChange(event)"/>

Public Member Functions |
Protected Member Functions |
List of all members

SolverInterface Class Referenceabstract

Detailed Description

Interface used by implementations of individual solvers.

#include <drake/solvers/solver_interface.h>

Public Member Functions

virtual 	~SolverInterface ()

virtual bool 	available () const =0

 	Returns true iff support for this solver has been compiled into Drake.  More...

virtual bool 	enabled () const =0

 	Returns true iff this solver is properly configured for use at runtime.  More...

virtual void 	Solve (const MathematicalProgram &prog, const std::optional< Eigen::VectorXd > &initial_guess, const std::optional< SolverOptions > &solver_options, MathematicalProgramResult *result) const =0

 	Solves an optimization program with optional initial guess and solver options.  More...

virtual SolverId 	solver_id () const =0

 	Returns the identifier of this solver.  More...

virtual bool 	AreProgramAttributesSatisfied (const MathematicalProgram &prog) const =0

 	Returns true iff the program's attributes are compatible with this solver's capabilities.  More...

virtual std::string 	ExplainUnsatisfiedProgramAttributes (const MathematicalProgram &prog) const =0

 	Describes the reasons (if any) why the program is incompatible with this solver's capabilities.  More...

Does not allow copy, move, or assignment

 	SolverInterface (const SolverInterface &)=delete

SolverInterface & 	operator= (const SolverInterface &)=delete

 	SolverInterface (SolverInterface &&)=delete

SolverInterface & 	operator= (SolverInterface &&)=delete

Protected Member Functions

 	SolverInterface ()

Constructor & Destructor Documentation

◆ SolverInterface() [1/3]

          SolverInterface
          (
          const SolverInterface &
          	)

delete

◆ SolverInterface() [2/3]

          SolverInterface
          (
          SolverInterface &&
          	)

delete

◆ ~SolverInterface()

          virtual ~SolverInterface
          (
          	)

virtual

◆ SolverInterface() [3/3]

          SolverInterface
          (
          	)

protected

Member Function Documentation

◆ AreProgramAttributesSatisfied()

          virtual bool AreProgramAttributesSatisfied
          (
          const MathematicalProgram &
          prog	)
           const

pure virtual

Returns true iff the program's attributes are compatible with this solver's capabilities.

Implemented in SolverBase.

◆ available()

          virtual bool available
          (
          	)
           const

pure virtual

Returns true iff support for this solver has been compiled into Drake.

When this method returns false, the Solve method will throw.

Most solver implementations will always return true, but certain solvers may have been excluded at compile-time due to licensing restrictions, or to narrow Drake's dependency footprint. In Drake's default build, only commercially-licensed solvers might return false.

Contrast this with enabled(), which reflects whether a solver has been configured for use at runtime (not compile-time).

For details on linking commercial solvers, refer to the solvers' class overview documentation, e.g., SnoptSolver, <a class="el" href="classdrake_1_1solvers_1_1_mosek_solver.html" title="An implementation of SolverInterface for the commercially-licensed MOSEK™ solver (https://www....">MosekSolver, GurobiSolver.

Implemented in SolverBase.

◆ enabled()

          virtual bool enabled
          (
          	)
           const

pure virtual

Returns true iff this solver is properly configured for use at runtime.

When this method returns false, the Solve method will throw.

Most solver implementation will always return true, but certain solvers require additional configuration before they may be used, e.g., setting an environment variable to specify a license file or license server. In Drake's default build, only commercially-licensed solvers might return false.

Contrast this with available(), which reflects whether a solver has been incorporated into Drake at compile-time (and has nothing to do with the runtime configuration). A solver where available() returns false may still return true for enabled() if it is properly configured.

The mechanism to configure a particular solver implementation is specific to the solver in question, but typically uses an environment variable. For details on configuring commercial solvers, refer to the solvers' class overview documentation, e.g., SnoptSolver, <a class="el" href="classdrake_1_1solvers_1_1_mosek_solver.html" title="An implementation of SolverInterface for the commercially-licensed MOSEK™ solver (https://www....">MosekSolver, GurobiSolver.

Implemented in SolverBase.

◆ ExplainUnsatisfiedProgramAttributes()

          virtual std::string ExplainUnsatisfiedProgramAttributes
          (
          const MathematicalProgram &
          prog	)
           const

pure virtual

Describes the reasons (if any) why the program is incompatible with this solver's capabilities.

If AreProgramAttributesSatisfied would return true for the program, then this function returns the empty string.

Implemented in SolverBase.

◆ operator=() [1/2]

          SolverInterface& operator=
          (
          const SolverInterface &
          	)

delete

◆ operator=() [2/2]

          SolverInterface& operator=
          (
          SolverInterface &&
          	)

delete

◆ Solve()

          virtual void Solve
          (
          const MathematicalProgram &
          prog,

          const std::optional< Eigen::VectorXd > &
          initial_guess,

          const std::optional< SolverOptions > &
          solver_options,

          MathematicalProgramResult *
          result

          )
          	 const

pure virtual

Solves an optimization program with optional initial guess and solver options.

Note that these initial guess and solver options are not written to prog. If the prog has set an option for a solver, and solver_options contains a different value for the same option on the same solver, then solver_options takes priority. Derived implementations of this interface may elect to throw std::exception for badly formed programs.

Implemented in SolverBase.

◆ solver_id()

          virtual SolverId solver_id
          (
          	)
           const

pure virtual

Returns the identifier of this solver.

Implemented in SolverBase.

The documentation for this class was generated from the following file:

drake/solvers/solver_interface.h

drake

solvers

SolverInterface

          C++

          Python

          GitHub


text:
  context "update action" do
    should "render edit template when model is invalid" do
      <%= class_name %>.any_instance.stubs(:valid?).returns(false)
      put :update, :id => <%= class_name %>.first
      assert_template 'edit'
    end

    should "redirect when model is valid" do
      <%= class_name %>.any_instance.stubs(:valid?).returns(true)
      put :update, :id => <%= class_name %>.first
      assert_redirected_to <%= item_path_for_test('url') %>
    end
  end


text:
/**
 * Internal dependencies
 */
import { renderHook, actHook } from '../../../tests/js/test-utils';
import useQueryArg from './useQueryArg';

describe( 'useQueryArg', () => {
	let mockGlobal;
	const historyReplaceStateMock = jest.fn();

	beforeAll( () => {
		mockGlobal = {
			location: {
				href: 'http://example.com/path?page=demo',
			},
			history: {
				replaceState: historyReplaceStateMock,
			},
		};
	} );

	afterEach( () => {
		historyReplaceStateMock.mockClear();
	} );

	it( 'should return initial query param by default', () => {
		const { result } = renderHook( () =>
			useQueryArg( 'page', '', mockGlobal )
		);
		const [ query ] = result.current;

		expect( query ).toBe( 'demo' );
	} );

	it( 'should push a new state to history when setQuery is called', () => {
		const { result } = renderHook( () =>
			useQueryArg( 'page', '', mockGlobal )
		);
		const [ , setQuery ] = result.current;

		actHook( () => {
			setQuery( 'prod' );
		} );

		const updatedURL = 'http://example.com/path?page=prod';
		expect( historyReplaceStateMock ).toHaveBeenCalledWith(
			null,
			'',
			updatedURL
		);
	} );

	it( 'should push a new state to history when setQuery is called with url encodable value', () => {
		const { result } = renderHook( () =>
			useQueryArg( 'page', '', mockGlobal )
		);
		const [ , setQuery ] = result.current;

		actHook( () => {
			setQuery( 'p%$^rod' );
		} );

		const updatedURL = 'http://example.com/path?page=p%25%24%5Erod';
		expect( historyReplaceStateMock ).toHaveBeenCalledWith(
			null,
			'',
			updatedURL
		);
	} );
} );


text:
import { expect } from 'chai';
import {
  focusedElement,
  initialState,
  reducer,
  restoreFocus,
  saveFocus,
  unfocusedElement,
} from '../focus';

describe('focus reducer', () => {
  it('should focus a given element', () => {
    const testState = reducer(initialState, focusedElement('testFocusedElement'));
    expect(
      testState.getIn(['currentlyFocused']),
    ).to.equal(
      'testFocusedElement',
    );
  });

  it('should focus a new given element', () => {
    let testState = reducer(initialState, focusedElement('testFocusedElement'));
    expect(
      testState.getIn(['currentlyFocused']),
    ).to.equal(
      'testFocusedElement',
    );

    testState = reducer(testState, focusedElement('testNewFocusedElement'));
    expect(
      testState.getIn(['currentlyFocused']),
    ).to.equal(
      'testNewFocusedElement',
    );
  });

  it('should unfocus an element', () => {
    let testState = reducer(initialState, focusedElement('testFocusedElement'));
    expect(
      testState.getIn(['currentlyFocused']),
    ).to.equal(
      'testFocusedElement',
    );

    testState = reducer(testState, unfocusedElement());
    expect(
      testState.getIn(['currentlyFocused']),
    ).to.equal(
      null,
    );
  });

  it('should save the focus of an element', () => {
    let testState = reducer(initialState, focusedElement('testFocusedElement'));
    expect(
      testState.getIn(['stack']).size,
    ).to.equal(
      0,
    );

    testState = reducer(testState, saveFocus());
    expect(
      testState.getIn(['stack']).size,
    ).to.equal(
      1,
    );
  });

  it('should save the focus of two elements', () => {
    let testState = reducer(initialState, focusedElement('testFocusedElement'));
    expect(
      testState.getIn(['currentlyFocused']),
    ).to.equal(
      'testFocusedElement',
    );

    testState = reducer(testState, saveFocus());
    expect(
      testState.getIn(['stack']).size,
    ).to.equal(
      1,
    );

    testState = reducer(testState, focusedElement('testSecondFocusedElement'));
    expect(
      testState.getIn(['currentlyFocused']),
    ).to.equal(
      'testSecondFocusedElement',
    );

    testState = reducer(testState, saveFocus());
    expect(
      testState.getIn(['stack']).size,
    ).to.equal(
      2,
    );
  });

  it('should restore the focus of the previously focused element', () => {
    let testState = reducer(initialState, focusedElement('testFocusedElement'));
    expect(
      testState.getIn(['currentlyFocused']),
    ).to.equal(
      'testFocusedElement',
    );

    testState = reducer(testState, saveFocus());
    expect(
      testState.getIn(['stack']).size,
    ).to.equal(
      1,
    );

    testState = reducer(testState, unfocusedElement());
    expect(
      testState.getIn(['currentlyFocused']),
    ).to.equal(
      null,
    );

    testState = reducer(testState, restoreFocus());
    expect(
      testState.getIn(['currentlyFocused']),
    ).to.equal(
      'testFocusedElement',
    );
  });

  it('should restore the focus of the previously focused element after two save states', () => {
    let testState = reducer(initialState, focusedElement('testFocusedElement'));
    expect(
      testState.getIn(['currentlyFocused']),
    ).to.equal(
      'testFocusedElement',
    );

    testState = reducer(testState, saveFocus());
    expect(
      testState.getIn(['stack']).size,
    ).to.equal(
      1,
    );

    testState = reducer(testState, focusedElement('testSecondFocusedElement'));
    expect(
      testState.getIn(['currentlyFocused']),
    ).to.equal(
      'testSecondFocusedElement',
    );

    testState = reducer(testState, saveFocus());
    expect(
      testState.getIn(['stack']).size,
    ).to.equal(
      2,
    );

    testState = reducer(testState, focusedElement('testThirdFocusedElement'));
    expect(
      testState.getIn(['currentlyFocused']),
    ).to.equal(
      'testThirdFocusedElement',
    );

    testState = reducer(testState, restoreFocus());
    expect(
      testState.getIn(['currentlyFocused']),
    ).to.equal(
      'testSecondFocusedElement',
    );
  });
});


text:
Using the [script](extension_query.py) (
[python 2.7 compatible version](extension_query_py2.py)) to download extensions
list from all browsers.

### Setup Access to API

Before using CBCM Takeout API you will need to do some initial setup:

1.  Enable the Admin SDK API (if not already enabled) in the Google Developer
    Console by following this
    [link](https://console.developers.google.com/apis/api/admin.googleapis.com/overview?project=_)
    and selecting the project on which you wish to enable the API.
1.  Create a service account and have the necessary service account keys for
    this service account. You can follow
    [this](https://developers.google.com/admin-sdk/directory/v1/guides/delegation)
    for creating a service account and getting the service account keys. You
    must grant the service account the "Service Account User" role on the
    permissions during creation.
1.  The client ID for this service account will need to be authorized for the
    OAuth scopes listed below in the Admin Console under Security -> Advanced
    settings -> Manage API client access. On this page, the Client ID
    corresponds to the Unique ID of your service account. You will need to
    authorize the client ID for the scope:
    * https://www.googleapis.com/auth/admin.directory.device.chromebrowsers.readonly

### Running the Script

With the service account keys, you can now run the script which uses Google API
Client Libraries to make the necessary queries to the API. The script requires
that both the service account keys you downloaded from the developers console as
well as the e-mail of an admin user in your domain that is allowed to access the
data you wish to query.

You can run the script from the command-line:
```
python extension_query.py --service_account_key_path <service_account_key_file> --admin_email <admin_email>
```
(also: `python extension_query.py --help` for a reminder of the
argument names)

## Example Data output

Here is an example of what that data will look like:
![Sample Results](extension_query_sample.png)


text:
//
//  ShaderTypes.h
//  MetalPetalDemo
//
//  Created by YuAo on 2021/4/4.
//

#ifndef ShaderTypes_h
#define ShaderTypes_h

#include <simd/simd.h>

struct ParticleData {
    vector_float2 position;
    vector_float2 speed;
    float size;
};

#endif /* ShaderTypes_h */


text:
// AttentionNoticeHandler.hh for fluxbox
// Copyright (c) 2006 Fluxbox Team (fluxgen at fluxbox dot org)
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the "Software"),
// to deal in the Software without restriction, including without limitation
// the rights to use, copy, modify, merge, publish, distribute, sublicense,
// and/or sell copies of the Software, and to permit persons to whom the
// Software is furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.

#ifndef ATTENTIONNOTICEHANDLER_HH
#define ATTENTIONNOTICEHANDLER_HH

#include "FbTk/Observer.hh"

#include <map>

class Focusable;

namespace FbTk {
class Timer;
}
/**
 * Handles demands attention signals.
 * Makes the title and iconbutton flash when the window
 * demands attention.
 */
class AttentionNoticeHandler: public FbTk::Observer {
public:
    ~AttentionNoticeHandler();

    typedef std::map<Focusable*, FbTk::Timer*> NoticeMap;
    /// Adds a client that requires attention,
    /// will fail if the client is already active
    void addAttention(Focusable &client);
    /// removes the client from the attention map
    void update(FbTk::Subject *subj);

    bool isDemandingAttention(const Focusable &client);

private:
    NoticeMap m_attentions;
};

#endif // ATTENTIONNOTICEHANDLER_HH


text:
//
//  YYLocationPickerView.m
//  YYPickerViewDemo
//
//  Created by 房俊杰 on 2017/2/26.
//  Copyright © 2017年 上海涵予信息科技有限公司. All rights reserved.
//

#import "YYLocationPickerView.h"
#import "YYLocationDataBase.h"
#define WIDTH [UIScreen mainScreen].bounds.size.width
#define HEIGHT 200
#define HEIGHT_BUTTON 40

#define ANIMATION_DURATION 0.3f

@interface YYLocationPickerView ()<UIPickerViewDelegate,UIPickerViewDataSource>
/** 代理 */
@property (nonatomic,weak) __weak id<YYLocationPickerViewDelegate> delegate;
/** 级别 */
@property (nonatomic,assign) YYLocationPickerViewLevel level;
/** 背景 */
@property (nonatomic,strong) UIView *bgBlackView;
/** pickerView */
@property (nonatomic,strong) UIPickerView *pickerView;
/** 省 */
@property (nonatomic,strong) NSArray *provinceArray;
/** 市 */
@property (nonatomic,strong) NSArray *cityArray;
/** 区县 */
@property (nonatomic,strong) NSArray *areaArray;
/** 区域model */
@property (nonatomic,strong) YYLocationPickerViewModel *model;
/** 选中区域id */
@property (nonatomic,strong) NSString *locationID;

@end

@implementation YYLocationPickerView

- (instancetype)init
{
    if(self == [super init])
    {
        [[YYLocationDataBase sharedDataBase] createDataBase];
        [self setup];
        [self setupUI];
    }
    return self;
}
- (instancetype)initWithLevel:(YYLocationPickerViewLevel)level andDelegate:(__weak id<YYLocationPickerViewDelegate>)delegate
{
    self.delegate = delegate;
    self.level = level;
    return [self init];
}
#pragma mark - 初始化
- (void)setup
{
    self.frame = CGRectMake(0, [UIScreen mainScreen].bounds.size.height, WIDTH, HEIGHT);

    self.backgroundColor = [UIColor whiteColor];

    UIWindow *window = [[UIApplication sharedApplication] keyWindow];
    UIView *topView = window.subviews.firstObject;
    [topView addSubview:self.bgBlackView];
    [topView addSubview:self];
    [self addSubview:self.pickerView];

    [self layoutIfNeeded];
}
- (void)setupUI
{
    UIView *bgView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, WIDTH, HEIGHT_BUTTON)];
    bgView.backgroundColor = [UIColor orangeColor];
    [self addSubview:bgView];

    UIButton *cancelButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    cancelButton.frame = CGRectMake(0, 0, 60, CGRectGetHeight(bgView.frame));
    [cancelButton setTitle:@"取消" forState:UIControlStateNormal];
    [cancelButton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
    cancelButton.tag = 1;
    cancelButton.titleLabel.font = [UIFont systemFontOfSize:16];
    [cancelButton addTarget:self action:@selector(buttonClick:) forControlEvents:UIControlEventTouchUpInside];
    [bgView addSubview:cancelButton];

    UIButton *sureButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    sureButton.frame = CGRectMake(CGRectGetWidth(self.frame)-60, 0, 60, CGRectGetHeight(bgView.frame));
    [sureButton setTitle:@"确定" forState:UIControlStateNormal];
    [sureButton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
    sureButton.tag = 2;
    sureButton.titleLabel.font = [UIFont systemFontOfSize:16];
    [sureButton addTarget:self action:@selector(buttonClick:) forControlEvents:UIControlEventTouchUpInside];
    [bgView addSubview:sureButton];

    [self layoutIfNeeded];

}

- (void)buttonClick:(UIButton *)sender
{
    if(sender.tag == 2)
    {
        if(self.delegate && [self.delegate respondsToSelector:@selector(locationPickerView:didSelectedLocation:locationID:)])
        {
            [self.delegate locationPickerView:self didSelectedLocation:[NSString stringWithFormat:@"%@",self.model] locationID:self.locationID];
        }
    }
    [self hide];
}
#pragma mark - setter
- (UIView *)bgBlackView
{
    if(_bgBlackView == nil)
    {
        UIView *blackBgView = [[UIView alloc] initWithFrame:[UIScreen mainScreen].bounds];
        blackBgView.alpha = 0.0f;
        blackBgView.backgroundColor = [UIColor blackColor];

        UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(hide)];
        [blackBgView addGestureRecognizer:tap];

        _bgBlackView = blackBgView;
    }
    return _bgBlackView;
}
- (UIPickerView *)pickerView
{
    if(_pickerView == nil)
    {
        UIView *bgView = [[UIView alloc] initWithFrame:CGRectMake(0, HEIGHT_BUTTON+(HEIGHT-HEIGHT_BUTTON-35)/2, WIDTH, 35)];
        bgView.backgroundColor = [UIColor redColor];
        [self addSubview:bgView];

        UIPickerView *pickerView = [[UIPickerView alloc] init];
        pickerView.frame = CGRectMake(0, HEIGHT_BUTTON, WIDTH, HEIGHT-HEIGHT_BUTTON);
        pickerView.dataSource = self;
        pickerView.delegate = self;
        pickerView.backgroundColor = [UIColor clearColor];
        pickerView.showsSelectionIndicator = YES;
        [self clearSeparatorWithView:pickerView];
        _pickerView = pickerView;
    }
    return _pickerView;
}
- (NSArray *)provinceArray
{
    if(_provinceArray == nil)
    {
        if(self.level >= YYLocationPickerViewLevelProvince)
        {
            _provinceArray = [[YYLocationDataBase sharedDataBase] selectValueWithPid:@"0"];
            self.model.province = ((YYLocationDataBaseModel *)_provinceArray[0]).title;
            self.locationID = ((YYLocationDataBaseModel *)_provinceArray[0]).ID;
        }
    }
    return _provinceArray;
}
- (NSArray *)cityArray
{
    if(_cityArray == nil)
    {
        if(self.level >= YYLocationPickerViewLevelCity)
        {
            YYLocationDataBaseModel *model = self.provinceArray[0];
            _cityArray = [[YYLocationDataBase sharedDataBase] selectValueWithPid:model.ID];

            self.model.city = ((YYLocationDataBaseModel *)_cityArray[0]).title;
            self.locationID = ((YYLocationDataBaseModel *)_cityArray[0]).ID;
        }
    }
    return _cityArray;
}
- (YYLocationPickerViewLevel)level
{
    if(!_level)
    {
        _level = YYLocationPickerViewLevelProvince;
    }
    return _level;
}
- (NSArray *)areaArray
{
    if(_areaArray == nil)
    {
        if(self.level == YYLocationPickerViewLevelArea)
        {
            YYLocationDataBaseModel *model = self.cityArray[0];
            _areaArray = [[YYLocationDataBase sharedDataBase] selectValueWithPid:model.ID];

            if(_areaArray.count)
            {
                self.model.area = ((YYLocationDataBaseModel *)_areaArray[0]).title;
                self.locationID = ((YYLocationDataBaseModel *)_areaArray[0]).ID;
            }
            else
            {
                self.model.area = @"";
            }
        }
    }
    return _areaArray;
}
#pragma mark - 模型
- (YYLocationPickerViewModel *)model
{
    if(!_model)
    {
        _model = [[YYLocationPickerViewModel alloc] init];
    }
    return _model;
}
#pragma mark - UIPickerViewDataSource
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
    return self.level;
}
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{
    switch (component)
    {
        case 0:
            return self.provinceArray.count;
            break;
        case 1:
            return self.cityArray.count;
            break;
        default:
            return self.areaArray.count;
            break;
    }
}

#pragma mark - UIPickerViewDelegate
- (CGFloat)pickerView:(UIPickerView *)pickerView rowHeightForComponent:(NSInteger)component
{
    return 35;
}
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
    switch (component)
    {
        case 0:
            return ((YYLocationDataBaseModel *)[self.provinceArray objectAtIndex:row]).title;
            break;
        case 1:
            return ((YYLocationDataBaseModel *)[self.cityArray objectAtIndex:row]).title;
            break;
        default:
            return ((YYLocationDataBaseModel *)[self.areaArray objectAtIndex:row]).title;
            break;
    }
}
- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view
{
    UILabel* pickerLabel = (UILabel*)view;
    if (!pickerLabel)
    {
        pickerLabel = [[UILabel alloc] init];
        pickerLabel.minimumScaleFactor = 5.0;
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
        pickerLabel.minimumFontSize = 8.0;
#pragma clang diagnostic pop
        pickerLabel.adjustsFontSizeToFitWidth = YES;
        [pickerLabel setTextAlignment:NSTextAlignmentCenter];
        [pickerLabel setBackgroundColor:[UIColor clearColor]];
        [pickerLabel setFont:[UIFont systemFontOfSize:15]];
    }
    pickerLabel.text=[self pickerView:pickerView titleForRow:row forComponent:component];
    return pickerLabel;
}
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component{

    if(self.level == YYLocationPickerViewLevelProvince)
    {
        self.model.province = ((YYLocationDataBaseModel *)self.provinceArray[row]).title;
        self.locationID = ((YYLocationDataBaseModel *)self.provinceArray[row]).ID;
    }
    else if(self.level == YYLocationPickerViewLevelCity)
    {
        switch (component)
        {
            case 0:
            {
                YYLocationDataBaseModel *model = self.provinceArray[row];
                self.cityArray = [[YYLocationDataBase sharedDataBase] selectValueWithPid:model.ID];
                [self.pickerView reloadComponent:1];
                [self.pickerView selectRow:0 inComponent:1 animated:YES];

                self.model.province = ((YYLocationDataBaseModel *)self.provinceArray[row]).title;
                self.model.city = ((YYLocationDataBaseModel *)self.cityArray[0]).title;
                self.locationID = ((YYLocationDataBaseModel *)self.cityArray[0]).ID;
                break;
            }
            case 1:
            {

                self.model.city = ((YYLocationDataBaseModel *)self.cityArray[row]).title;
                self.locationID = ((YYLocationDataBaseModel *)self.cityArray[row]).ID;
                break;
            }
            default:
                break;
        }
    }
    else
    {
        switch (component)
        {
            case 0:
            {
                YYLocationDataBaseModel *model = self.provinceArray[row];
                self.cityArray = [[YYLocationDataBase sharedDataBase] selectValueWithPid:model.ID];
                [self.pickerView reloadComponent:1];
                [self.pickerView selectRow:0 inComponent:1 animated:YES];

                YYLocationDataBaseModel *cityModel = self.cityArray[0];
                self.areaArray = [[YYLocationDataBase sharedDataBase] selectValueWithPid:cityModel.ID];
                [self.pickerView reloadComponent:2];
                [self.pickerView selectRow:0 inComponent:2 animated:YES];

                self.model.province = ((YYLocationDataBaseModel *)self.provinceArray[row]).title;
                self.model.city = ((YYLocationDataBaseModel *)self.cityArray[0]).title;
                self.locationID = ((YYLocationDataBaseModel *)self.cityArray[0]).ID;
                if(self.areaArray.count)
                {
                    self.model.area = ((YYLocationDataBaseModel *)self.areaArray[0]).title;
                    self.locationID = ((YYLocationDataBaseModel *)self.areaArray[0]).ID;
                }
                else
                {
                    self.model.area = @"";
                }
                break;
            }
            case 1:
            {

                YYLocationDataBaseModel *cityModel = self.cityArray[row];
                self.areaArray = [[YYLocationDataBase sharedDataBase] selectValueWithPid:cityModel.ID];
                [self.pickerView reloadComponent:2];
                [self.pickerView selectRow:0 inComponent:2 animated:YES];

                self.model.city = ((YYLocationDataBaseModel *)self.cityArray[row]).title;
                self.locationID = ((YYLocationDataBaseModel *)self.cityArray[row]).ID;
                if(self.areaArray.count)
                {
                    self.model.area = ((YYLocationDataBaseModel *)self.areaArray[0]).title;
                    self.locationID = ((YYLocationDataBaseModel *)self.areaArray[0]).ID;
                }
                else
                {
                    self.model.area = @"";
                }
                break;
            }
            default:
            {
                if(self.areaArray.count)
                {
                    self.model.area = ((YYLocationDataBaseModel *)self.areaArray[row]).title;
                    self.locationID = ((YYLocationDataBaseModel *)self.areaArray[row]).ID;
                }
                else
                {
                    self.model.area = @"";
                }
                break;
            }
        }
    }
}
#pragma mark - function
- (void)clearSeparatorWithView:(UIView * )view
{
    if(view.subviews != 0)
    {
        if(view.bounds.size.height < 5)
        {
            view.backgroundColor = [UIColor clearColor];
        }

        [view.subviews enumerateObjectsUsingBlock:^( UIView *  obj, NSUInteger idx, BOOL *  stop) {
            [self clearSeparatorWithView:obj];
        }];
    }

}
- (void)show
{
    [UIView animateWithDuration:ANIMATION_DURATION animations:^{

        self.bgBlackView.alpha = 0.5f;
        self.frame = CGRectMake(0, [UIScreen mainScreen].bounds.size.height-HEIGHT, WIDTH, HEIGHT);
    }];
}
- (void)hide
{
    [UIView animateWithDuration:ANIMATION_DURATION animations:^{

        self.bgBlackView.alpha = 0.0f;
        self.frame = CGRectMake(0, [UIScreen mainScreen].bounds.size.height, WIDTH, HEIGHT);

    } completion:^(BOOL finished) {
        [self.bgBlackView removeFromSuperview];
        [self.subviews makeObjectsPerformSelector:@selector(removeFromSuperview)];
        [self removeFromSuperview];
    }];

}

@end

@implementation YYLocationPickerViewModel

- (NSString *)description
{
    if(self.city.length)
    {
        if(self.area.length)
        {
            return [NSString stringWithFormat:@"%@-%@-%@",self.province,self.city,self.area];
        }
        else
        {
            return [NSString stringWithFormat:@"%@-%@",self.province,self.city];
        }
    }
    else
    {
        return [NSString stringWithFormat:@"%@",self.province];
    }
}

@end


text:
layout: about
title: about
permalink: /
subtitle: Oguzhan Gencel.

profile:
  align: right
  image: profil.jpeg
  address: >

Istanbul

Ankara

Munich

news: true  # includes a list of news items
selected_papers: false # includes a list of papers marked as "selected={true}"
social: true  # includes social icons at the bottom of the page
---
- Sofware Developer @Celonis
- Guitarist @Home
- Traveller @World

Hello, you are looking mine personal website, but you can't find too many things because I am lazy person :D


text:
<?php

namespace QrCodeBitcoin;

class Module
{
    public function getConfig()
    {
        return include __DIR__ . '/../../config/module.config.php';
    }

    public function getAutoloaderConfig()
    {
        return array(
            'Zend\Loader\StandardAutoloader' => array(
                'namespaces' => array(
                    __NAMESPACE__ => __DIR__,
                ),
            ),
        );
    }

    public function getViewHelperConfig()
    {
        return array(
            'factories' => array(
                'btc_qrcode' => function($sm) {
                    $bitcoinQrCodeGenerator = new QrCode\Generator();
                    return $bitcoinQrCodeGenerator;
                }
            )
        );
    }
}