text:
package org.apache.commons.math3.genetics;

import java.util.ArrayList;
import java.util.Iterator;

import org.apache.commons.math3.exception.NotPositiveException;
import org.apache.commons.math3.exception.NumberIsTooLargeException;
import org.apache.commons.math3.exception.NumberIsTooSmallException;
import org.junit.Assert;
import org.junit.Test;

public class ListPopulationTest {

    @Test
    public void testGetFittestChromosome() {
        Chromosome c1 = new Chromosome() {
            public double fitness() {
                return 0;
            }
        };
        Chromosome c2 = new Chromosome() {
            public double fitness() {
                return 10;
            }
        };
        Chromosome c3 = new Chromosome() {
            public double fitness() {
                return 15;
            }
        };

        ArrayList<Chromosome> chromosomes = new ArrayList<Chromosome> ();
        chromosomes.add(c1);
        chromosomes.add(c2);
        chromosomes.add(c3);

        ListPopulation population = new ListPopulation(chromosomes, 10) {
            public Population nextGeneration() {
                // not important
                return null;
            }
        };

        Assert.assertEquals(c3, population.getFittestChromosome());
    }

    @Test
    public void testChromosomes() {
        final ArrayList<Chromosome> chromosomes = new ArrayList<Chromosome> ();
        chromosomes.add(new DummyBinaryChromosome(BinaryChromosome.randomBinaryRepresentation(3)));
        chromosomes.add(new DummyBinaryChromosome(BinaryChromosome.randomBinaryRepresentation(3)));
        chromosomes.add(new DummyBinaryChromosome(BinaryChromosome.randomBinaryRepresentation(3)));

        final ListPopulation population = new ListPopulation(10) {
            public Population nextGeneration() {
                // not important
                return null;
            }
        };

        population.addChromosomes(chromosomes);

        Assert.assertEquals(chromosomes, population.getChromosomes());
        Assert.assertEquals(chromosomes.toString(), population.toString());

        population.setPopulationLimit(50);
        Assert.assertEquals(50, population.getPopulationLimit());
    }

    @Test(expected = NotPositiveException.class)
    public void testSetPopulationLimit() {
        final ListPopulation population = new ListPopulation(10) {
            public Population nextGeneration() {
                // not important
                return null;
            }
        };

        population.setPopulationLimit(-50);
    }

    @Test(expected = NotPositiveException.class)
    public void testConstructorPopulationLimitNotPositive() {
        new ListPopulation(-10) {
            public Population nextGeneration() {
                // not important
                return null;
            }
        };
    }

    @Test(expected = NotPositiveException.class)
    public void testChromosomeListConstructorPopulationLimitNotPositive() {
        final ArrayList<Chromosome> chromosomes = new ArrayList<Chromosome> ();
        chromosomes.add(new DummyBinaryChromosome(BinaryChromosome.randomBinaryRepresentation(3)));
        new ListPopulation(chromosomes, -10) {
            public Population nextGeneration() {
                // not important
                return null;
            }
        };
    }

    @Test(expected = NumberIsTooLargeException.class)
    public void testConstructorListOfChromosomesBiggerThanPopulationSize() {
        final ArrayList<Chromosome> chromosomes = new ArrayList<Chromosome> ();
        chromosomes.add(new DummyBinaryChromosome(BinaryChromosome.randomBinaryRepresentation(3)));
        chromosomes.add(new DummyBinaryChromosome(BinaryChromosome.randomBinaryRepresentation(3)));
        chromosomes.add(new DummyBinaryChromosome(BinaryChromosome.randomBinaryRepresentation(3)));
        new ListPopulation(chromosomes, 1) {
            public Population nextGeneration() {
                // not important
                return null;
            }
        };
    }

    @Test(expected=NumberIsTooLargeException.class)
    public void testAddTooManyChromosomes() {
        final ArrayList<Chromosome> chromosomes = new ArrayList<Chromosome> ();
        chromosomes.add(new DummyBinaryChromosome(BinaryChromosome.randomBinaryRepresentation(3)));
        chromosomes.add(new DummyBinaryChromosome(BinaryChromosome.randomBinaryRepresentation(3)));
        chromosomes.add(new DummyBinaryChromosome(BinaryChromosome.randomBinaryRepresentation(3)));

        final ListPopulation population = new ListPopulation(2) {
            public Population nextGeneration() {
                // not important
                return null;
            }
        };

        population.addChromosomes(chromosomes);
    }

    @Test(expected=NumberIsTooLargeException.class)
    public void testAddTooManyChromosomesSingleCall() {

        final ListPopulation population = new ListPopulation(2) {
            public Population nextGeneration() {
                // not important
                return null;
            }
        };

        for (int i = 0; i <= population.getPopulationLimit(); i++) {
            population.addChromosome(new DummyBinaryChromosome(BinaryChromosome.randomBinaryRepresentation(3)));
        }
    }

    @Test(expected = UnsupportedOperationException.class)
    public void testIterator() {
        final ArrayList<Chromosome> chromosomes = new ArrayList<Chromosome>();
        chromosomes.add(new DummyBinaryChromosome(BinaryChromosome.randomBinaryRepresentation(3)));
        chromosomes.add(new DummyBinaryChromosome(BinaryChromosome.randomBinaryRepresentation(3)));
        chromosomes.add(new DummyBinaryChromosome(BinaryChromosome.randomBinaryRepresentation(3)));

        final ListPopulation population = new ListPopulation(10) {
            public Population nextGeneration() {
                // not important
                return null;
            }
        };

        population.addChromosomes(chromosomes);

        final Iterator<Chromosome> iter = population.iterator();
        while (iter.hasNext()) {
            iter.next();
            iter.remove();
        }
    }

    @Test(expected=NumberIsTooSmallException.class)
    public void testSetPopulationLimitTooSmall() {
        final ArrayList<Chromosome> chromosomes = new ArrayList<Chromosome> ();
        chromosomes.add(new DummyBinaryChromosome(BinaryChromosome.randomBinaryRepresentation(3)));
        chromosomes.add(new DummyBinaryChromosome(BinaryChromosome.randomBinaryRepresentation(3)));
        chromosomes.add(new DummyBinaryChromosome(BinaryChromosome.randomBinaryRepresentation(3)));

        final ListPopulation population = new ListPopulation(chromosomes, 3) {
            public Population nextGeneration() {
                // not important
                return null;
            }
        };

        population.setPopulationLimit(2);
    }

}


text:
require File.dirname(__FILE__) + '/../../../spec_helper'
require 'csv'

describe "CSV::Reader.create" do
  it "needs to be reviewed for spec completeness" do
  end
end

redpajama_set_name: RedPajamaGithub


text:
> AngularJS is an open-source front-end MVC framework
> from Google for dynamic web apps. On top of the
> customary MVC features, AngularJS has a rich
> vocabulary of components including services for code
> sharing, filters for view layer data transformation,
> and directives for extending HTML. At Dealer.com, we
> recently built a centralized remote configuration
> service and we chose AngularJS to handle the user
> interface concerns. This talk will provide a high-
> level introduction to AngularJS, discuss the front-
> end challenges we faced, and describe how we solved
> those problems with AngularJS.

## 1
_n/a_

## 2
_n/a_

### 2.1
_n/a_

### 2.2
_n/a_

### 2.3
* re: open source: MIT
* "complex webapps" is the part where I mention the Tripoli case study

### 2.4
* "It's like Clojure or some other Lisp like that..."
  * it's the tools to build the tools...
  * "Not quite macros but..."

## 3
* re: "the basics" - philosophy: yes; but only the
  briefest intro
  * there are already lots of good intro tutorials
* re: "feature coverage": _not_ here to introduce and/or
  discuss every feature
  * won't be talking about routes (much), views,
    resource plugin, etc.
* re: "side-by-side" - this is _not_ "Angular vs. Ember"
* re: "SPAs" - I assume you've already done your own
  homework on this subject

## 4
_n/a_

### 4.1
* "You probably already know that..."
* "...know what that means..."
* the whatever is _their_ term

### 4.2
_n/a_

### 4.3
* some explanation is in order
* UN-opinionated about models ("mostly")
  * c/w Backbone, Ember
* UN-opinionated about views ("mostly")
  * we've heard this before
    * (Murphey, 2012; re: Backbone)
  * similar critique as hers?
  * and/but (TO TOTALLY UNDERMINE MYSELF HERE...)
    plenty of "magic" in the views by way of directives
* "So why _opinionated in the middle_ ?"
  * RE: opinions about how to separate code
  * RE: opinions about how to re-use code
  * RE: opinions about how to fit things together
  * examples:
    * controllers call services directly
    * directives get their own scope whenever possible
    * (_WHAT ELSE?_)
    * "Does this all seem like common sense?"

## 5
* example Angular "app" put together in approx. 30 min
* uses Bootstrap (_only_ for CSS) and _only_ Angular
* nothing fancy/crazy - just an ng-controller
  * and the stock filters/directives
  * only service = $window
* noted: `ng-app` (don't forget this)
* noted: `ng-app` (remember to tell it your module)
  * b/c you _are_ going to want to use the modules

## 6
_n/a_

### 6.1
* get this point out of the way right off the bat
* module pattern more/less enforced by the framework
* if you're writing idiomatic Angular it should be hard to
  accidentally leak globals

### 6.2
* JS is for business logic (mostly)
* services should never touch the DOM
* controllers should _almost_ never touch the DOM
* filters won't even let you "do HTML"
* directives: if you need to touch the DOM, do it here

### 6.3
* HTML: great for static docs
* JS: actually a pretty nice language for solving problems
  * and even if you don't like it... you're stuck with it
* HTML + JS: starts to give you what you want
* but what you want are dynamic docs
* now: how do you _want_ to wire things up?
* ANECDOTES: compare/contrast
  * dev work w/ something like ExtJS
    * "do it all in JS" (and/but: what about the mark-up?)
  * HTML + jQuery = jQuery soup
  * Knockout: getting warmer...

## 7
_n/a_

### 7.1
_n/a_

### 7.2
* "familiar with controllers"
  * from other MVCs...
* arguably more of a "ViewModel"
  * c/w Knockout.js
* main function of controller:
  * set up execution context for your views
    * that's `$scope`
  * putting your data onto `$scope`
  * putting your methods etc. onto `$scope`
    * example:
      * `ng-hide="{{ thing == true }}"`
      * and/but have that more than once and consider
      * `ng-hide="hasThing()"`
* yes: you can have more than 1 per "page"
  * and you _should_ b/c each controller should really just be responsible for
    _one thing_
* `$scope` inheritance
  * as prototypal...
  * controllers w/in controllers...
  * directives w/in controllers
  * `$scope.thing` ... `thing` may _actually_ be from `$scope.$parent`
  * see also: `$rootScope`

### 7.3
_n/a_

### 7.4
_n/a_

### 7.5
* important point: `$scope` is not your model
* `$scope` is the surface area b/w controller + view
* remember: ng has not strong opinions about model
  * "bring your own model" philosophy
  * your model is largely a back-end concern
  * (hence putting it in a little abstract cloud here)
* 2-way relationships, but mediated

### 7.6
* anything you want to share b/w controllers
* you're not setting up inheritance chains b/w controllers
* share code through DI
  * side note: the "DI" bit bothers me - you're just
    passing references to the service singletons into your
    controllers as function args
  * _anyway_ - "inject" as args into contructor functions
    for controllers, directives, other services
  * side note: the DI winds up feeling a bit like "ceremony"
* THINK FUNCTIONALLY HERE
  * w/ services you don't want side effects
    * (just arguments and return values)
  * (side note: Angular is designed to not have side effects - remember: "lethally allergic to global state")

### 7.7
_n/a_

### 7.8
* _don't_ transform data in your controllers
* data (on your model) goes _directly_ to the view via
  `$scope`
* then: `{{ value | filter: filterArg }}`
  * transformations happen like that
* AGAIN : the idea there is to minimize side effects
  * i.e., don't transform the data "in place" (in the model)
  * transform it for the view where it makes sense (in the
    view)
* "pure functions" - simply returning the transformed value
  to the rendered view

### 7.9
_n/a_

### 7.10
_n/a_

### 7.11
* THIS IS THE MAGIC
* "extending" HTML
  * turns `<div my-directive></div>` into... whatever
    you want
* directives and `$scope`
* compiling + linking
* templates + templateUrl
* restriction
  * Attributes
  * Classes
  * Elements
  * coMments
* the "core" ng directives make up the heart of the
  framework
  * `ng-app`? `ng-controller`? consider that those are
    both directives necessary to even bootstrap the app
* EXCELLENT WAY to break your app down into small pieces

### 7.12
_n/a_

### 7.13
_n/a_

### 7.14
_n/a_

### 7.15
* plenty I'm not covering here
* core APIs
  * called "global APIs" in the docs
    * but hey... "global" is a dirty word
  * the point: some utils to help keep other libraries out
    * not _to_ keep them out but: why bring in all of jQuery
      if all you need are some simple selectors?
    * which leads us to...
* jqLite (explain!)
* routes (for making sane and sensible and shareable URLs
  for client-side state...)
* `$apply`, `$digest`, + `$watch`
  * noted: some of the "magic" around `$scope` objects
  * the digests are on short but regular intervals
  * ...to try to prevent ng from performing poorly
    * "don't watch yourself to death"
  * some added security there - i.e., throw errors if
    items in the apply/digest loop start setting each
    other recursively and dangerously
* testing (testable out of the box!)

## 8
_n/a_

### 8.1
* refer back to Pearlin's talk
* quick-n-dirty definition for centralized config
* Tripoli as the front-end app for that
  * "making simple that which is not"
* explain the pun:
  * Externalized Environmental End-Point Config Service
  * -> EEECS -> "triple-E" -> Tripoli
  * haha

## 9
_et al._

## 10
* "Preface this discussion by saying..."
* we already knew that we needed client-side
  * the way that we were working w/ the config trees
  * (recall: not discussing pros/cons of SPAs here)
* as a co. we'd done some experiments with a few
  client-side MVCs...
* most success w/ Angular so... prototype w/ Angular
  * (and prototype worked well and grew...)

### 10.1
* ng idioms encourage strong/opinionated ways to
  separate your code
* see above: controllers, services, filters,
  directives, etc.
* the idioms behind that SOC make it easy to figure out
  where everything is
  * i.e., you aren't wondering about some magical class
    that is magically picked up by jQuery...
  * ...ng-controller tells you exactly what to look for

### 10.2
* services: look a certain way
* controllers: look a certain way
* directives + filters : ...you get the idea
* "idiomatic Angular" : guided by the opinionated SOC
* this makes it easy to jump right in and know what's going on

### 10.3
* not just a buzzwordy "Agile" word!
* SOC leads to idiomaticity
  * idiomaticity leads to clarity
    * clarity leads to simplicity
* w/ ng we were able to iterate quickly
* w/ ng we were able to refactor quickly
  * example: the "params as DI" idiom makes it very easy to
    find where a given service is being used
  * example: b/c of the declarative nature of controllers
    and directives... it's also easy to find where they are
    used
    * "And also the reverse..." (but more on that in a bit)
* w/ ng we were able to on-board another UI dev quickly

### 10.4
* ng module system keeps everything out of the global scope
* effectively zero chance of stomping all over something
  provided by some other library, etc.
* granted: ng module system isn't buying you anything
  super-fancy (e.g., not AMD style lazy-loading or anything
  like that)
* but use it now b/c who knows what the next version will
  bring?

### 10.5
* anecdote: select2
  * needed to use it in the app...
  * tried to hook into it w/ "naked ng"
  * tried to roll our own wrapper directive
    * quickly discovered there was more to it...
  * found "AngularUI" + its `select2` directive
    * did the trick (and in way less time)
* other notes on this:
  * >280 packages in Bower
  * >3300 questions on Stack Overflow
  * >7800 threads on the Google Group

### 10.6
* "You hear this a lot..."
  * the smaller the framework, the louder this is touted?
* and/but - "normal patterns apply"
  * lots of "pure functions"
  * "pure fns" attached to `$scope`
  * basically one big module pattern all over the place
* exceptions to this?
  * data binding may require some dances w/ `$watch` and
    `$apply` etc. (but most of the time not)
  * see also the `@` + `=` + `&` stuff with directives
    * "but you get used to it"

### 10.7
* hoping by the time I give this talk, this isn't an
  empty statement...
* ng as testable "out of the box"
* ng idioms as being easily testable
  * and/or encouraging testability
* ...so? anything to show for it?

## 11
* not all unicorns and rainbows
* a couple of things are ... weird

### 11.1
* NOT ACROSS THE BOARD!
* some of the docs are actually really good
* but about 50% of the API docs feel about 50% done
  * information seems to be missing
  * or else the example provided is... too simple
* Developer Guide is richer, but takes a lot more digging
* forums + Stack Overflow are good resources but the usual
  warnings for those apply...

### 11.2
* reiterate : claim : "lethally allergic to global state"
* and/but a lot of the examples do "this..."
  * (reveal code example)

### 11.3
**RIGHT OFF THE BAT...***

* a function that goes right into the global ns
* `$scope` through DI and/but that won't survive
  minification
* seems minor and forgivable but...

### 11.4
* tutorial is OK and/but...
* difficult to know where to start with some of ng's
  concepts/features
* given that the examples appear to lead you ever so
  slightly astray, there is an argument to make there that
  the credibility is a bit hurt
* BACK UP : most things you _can_ just pick up and start
  using
* BUT again ng is more of a fwk than a lib
  * and as such: you're using it to "build apps"
  * you _can_ just sprinkle a little bit in to your
    existing apps
  * but I'm not sure that that's where you'll get the most
    value (i.e., best results from going all in?)
* in other words: although you _can_ try to just sprinkle it
  in a little bit at a time to experiment with it, you're
  likely to get better results if you do some up-front
  research and design...

### 11.5
* all that "hands off the DOM" business...
* great for decoupling, great for arch.
* and/but: "You're a UI developer and you care about that
  fit-and-finish that goes in to the end result..."
* animations are not always gratuitous
  * they're part of "surprise and delight"
  * they're part of your brand
  * and they can serve a _function_ in your UI as well
  * (but you already know this...)
* ng can make this... difficult sometimes
* through 1.0.8 there is nothing build-in
  * and the 1.1.x stuff is unstable
  * and I can't say I've figured out the 1.2.0 animation
    support yet
  * (and/but: links!)
* you can get down into the directives to do some of this
  * recall: directive are where it's "safe" to do DOM
    manipulation
* and/but : pros and cons here
  * restricting DOM manipulation to directives makes a lot
    of sense
  * but sometimes it also feels like overkill?

### 11.6
* ng does a lot of work "for you" w/r/t/ tracking values
  that are attached to `$scope`
  * (that's the `$digest`)
* and/but it isn't always clear how or why or when you can
  update items directly and have it "just work" and when
  you need to hit it `$apply`
* the rule of thumb from the docs: use `$apply` whenever
  "non-ng" code is updating values in ng scopes
* which seems like a simple enough rule except...
  * ...when you _do_ update w/o `$apply` and think that
    you _should have_ but then it just works anyway; vs.
  * ...when you update a value fr/ w/in ng but it doesn't
    (appear) to update the way it "should"
  * CAN BE CONFUSING
* also: be doubly careful w/ the latter case: it's almost
  too easy to think "oh I just need to wrap that in an
  `$apply`" and then you get that error about already being
  in a `$digest` cycle etc.

### 11.7
* the temptation is strong
* b/c ng is probably quite unlike any front-end fwk you've
  dealt with before
* anecdote: events
  * I wanted to use events in a certain way...
  * ...b/c that's how I've done it in other fwks
    (e.g., ExtJS)
  * ...but Stack Overflow thread leads us to a classic
    case of "you're doing it wrong"
* observation: temptation to use `$scope` as model
* controversy: the `ng-` attrs...
  * they _feel_ dirty
  * b/c we've spent the last couple years arguing about
    `onclick` + the like
  * "decouple your HTML and JS!"
  * will feel like _that_
    * see also: that HN thread from 6 months ago...
  * ANYWAY: don't think of it as tightly coupling your
    DOM to your JS; think of it as turning your HTML into
    a potent DSL for your app
* (starting to sound like a selling point, eh?)

## 12
_n/a_

### 12.1
* w/ controllers: less is more...
* set up your `$scope` and ask hard questions if you wind
  up doing anything else

### 12.2
* take the time to learn directives
* use the built-in stuff as much as you can
* but directives are where you'll see your most powerful
  code re-use

### 12.3
* oddly (!?) ng docs don't seem to have any strong opinions
  about how to organize your ng code
* Angular Seed project puts all controllers, filters,
  services, and directives into one file for each type
* instead try something more like...

### 12.4
* variation on Angular Seed
  * "...but better!"
* `ng-app-base.js` (or eq.) is where your modules are
  declared, where you do global config, etc.
* separate directory for each type
* each type gets its own file
  * (you're concat'ing and min'ing anyway, right?)
* each file should match what is inside
  * makes everything easy to find
* templates: each partial name should match the directive
  that it corresponds with
  * (we use Grails so ours went into...)
* side note: directive namespace! decide on one early
  * use a good (short!) one for your app-specific stuff
  * and if you can't decide on one... use `ngx-`
    * for "ng-extended"

## 13
_n/a_

## 14
_n/a_


text:
.k-in, .k-item, .k-window-action {
    border-color: transparent
}

.k-block, .k-widget {
    background-color: #fff;
}

.k-block, .k-widget, .k-input, .k-textbox, .k-group, .k-content, .k-header, .k-editable-area, .k-separator, .k-colorpicker .k-i-arrow-s, .k-textbox>input, .k-autocomplete, .k-dropdown-wrap, .k-toolbar, .k-group-footer td, .k-grid-footer, .k-footer-template td, .k-state-default, .k-state-default .k-select, .k-state-disabled, .k-grid-header-wrap, .k-grid-header, .k-grid td, .k-grid td.k-state-selected, .k-grid-footer-wrap, .k-pager-wrap, .k-pager-wrap .k-link, .k-pager-refresh, .k-grouping-header, .k-grouping-header .k-group-indicator, .k-panelbar>.k-item>.k-link, .k-panel>.k-item>.k-link, .k-panelbar .k-panel, .k-panelbar .k-content, .k-calendar th, .k-slider-track, .k-splitbar, .k-dropzone-active, .k-tiles, .k-toolbar, .k-tooltip, .k-editor-button .k-tool-icon, .k-upload-files {
}

.k-group, .k-toolbar, .k-grouping-header, .k-pager-wrap, .k-group-footer td, .k-grid-footer, .k-footer-template td, .k-widget .k-status, .k-calendar th, .k-dropzone-hovered, .k-widget.k-popup {
    background-color: #fff
}

.k-grouping-row td, td.k-group-cell {
    background-color: #f5f5f5
}

.k-list-container {
    border-color: rgba(0, 0, 0, 0.2);
    background-color: #f5f5f5
}

.k-content, .k-editable-area, .k-panelbar>li.k-item, .k-panel>li.k-item, .k-tiles {
    background-color: #fff;
}

.k-alt, .k-separator {
    background-color: #f5f5f5
}

.k-textbox, .k-autocomplete.k-header, .k-dropdown-wrap.k-state-active, .k-picker-wrap.k-state-active, .k-numeric-wrap.k-state-active {
    border-color: #dcdcdc #dcdcdc #b3b3b3;
    background-color: #f5f5f5
}

.k-textbox>input, .k-autocomplete .k-input, .k-dropdown-wrap .k-input, .k-autocomplete.k-state-focused .k-input, .k-dropdown-wrap.k-state-focused .k-input, .k-picker-wrap.k-state-focused .k-input, .k-numeric-wrap.k-state-focused .k-input {
    border-color: #dcdcdc #dcdcdc #b3b3b3
}

input.k-textbox, textarea.k-textbox, input.k-textbox:hover, textarea.k-textbox:hover, .k-textbox>input {
    background: 0
}

.k-input, input.k-textbox, textarea.k-textbox, input.k-textbox:hover, textarea.k-textbox:hover, .k-textbox>input, .k-multiselect-wrap {
    background-color: #fff;
    color: #333
}

.k-input[readonly] {
    background-color: #fff;
    color: #333
}

.k-block, .k-widget, .k-popup, .k-content, .k-dropdown .k-input {
    color: #333333
}

.k-link:link, .k-link:visited, .k-nav-current.k-state-hover .k-link {
    color: #586C7C;
    transition: none 0s ease 0s;
}

.k-tabstrip-items .k-link, .k-panelbar>li>.k-link {
    color: #333
}

.k-header {
    color: #333
}

.k-header, .k-grid-header, .k-toolbar, .k-dropdown-wrap, .k-picker-wrap, .k-numeric-wrap, .k-grouping-header, .k-pager-wrap, .k-textbox, .k-button, .k-draghandle, .k-autocomplete, .k-state-highlight, .k-tabstrip-items .k-item {
    background: #dddddd
}

.k-widget.k-tooltip {
    background-image: none
}

.k-block, .k-header, .k-grid-header, .k-toolbar, .k-grouping-header, .k-pager-wrap, .k-button, .k-draghandle {
    background-color: #f5f5f5
}

.k-icon:hover, .k-state-hover .k-icon, .k-state-selected .k-icon, .k-state-focused .k-icon, .k-column-menu .k-state-hover .k-sprite, .k-column-menu .k-state-active .k-sprite {
    opacity: 1
}

.k-icon, .k-state-disabled .k-icon, .k-column-menu .k-sprite {
    opacity: 1
}

.k-icon, .k-tool-icon, .k-grouping-dropclue, .k-drop-hint, .k-column-menu .k-sprite {
    background-image: url('/Images/sprite.png');
    border-color: transparent
}

.k-loading, .k-state-hover .k-loading {
    background-image: url('/Images/loading.gif');
    background-position: 50% 50%
}

.k-loading-image {
    background-image: url('/Images/loading.gif')
}

.k-loading-color {
    background-color: #fff
}

.k-button {
   border: none;
}

.k-button:hover {
}

.k-state-disabled .k-button, .k-state-disabled .k-button:hover, .k-button.k-state-disabled:hover, .k-state-disabled .k-button:hover, .k-button.k-state-disabled:active, .k-state-disabled .k-button:active {

}

.k-draghandle {
    border-color: #dcdcdc #dcdcdc #b3b3b3;
    background-color: #fff;
    -webkit-box-shadow: none;
    box-shadow: none
}

.k-draghandle:hover {
    border-color: #0062b7 #005ab7 #005299;
    background-color: #006dcc;
    -webkit-box-shadow: none;
    box-shadow: none
}

.k-scheduler, .k-scheduler-datecolumn, .k-scheduler-groupcolumn {
    background-color: #fff;
    color: #333
}

.k-scheduler-times tr, .k-scheduler-times th, .k-scheduler-table td, .k-scheduler-header th, .k-scheduler-header-wrap, .k-scheduler-times {
    border-color: #bebebe
}

.k-scheduler-table .k-today, .k-today>.k-scheduler-datecolumn, .k-today>.k-scheduler-groupcolumn {
    background-color: #e9e9e9
}

.k-scheduler-now-arrow {
    border-left-color: #eed3d7
}

.k-scheduler-now-line {
    background-color: #eed3d7
}

.k-event {
    border-color: rgba(0, 0, 0, 0.13);
    background: #0187cb 0 -257px none repeat-x;
    color: #fff
}

.k-ie7 .k-event .k-resize-handle, .k-event .k-resize-handle:after {
    background-color: #333
}

.k-scheduler-marquee:before, .k-scheduler-marquee:after {
    border-color: #04c
}

.k-panelbar .k-content, .k-panelbar .k-panel, .k-panelbar .k-item {
    background-color: #fff;
    color: #333;
    border-color: #dcdcdc #dcdcdc #b3b3b3
}

.k-panelbar>li>.k-link {
    color: #333
}

.k-panelbar>.k-item>.k-link {
    border-color: #dcdcdc #dcdcdc #b3b3b3
}

.k-panel>li.k-item {
    background-color: #fff
}

.k-state-active, .k-state-active:hover, .k-active-filter, .k-tabstrip .k-state-active {
    background-color: #fff;
    border-color: #006dcc;
    color: #333
}

.k-menu .k-state-hover>.k-state-active {
    background-color: transparent
}

.k-state-highlight {
    background: #fff;
    color: #333
}

.k-state-focused, .k-grouping-row .k-state-focused {
    border-color: #75b9f0
}

.k-calendar .k-link {
    color: #333
}

.k-calendar .k-footer {
    padding: 0
}

.k-calendar .k-footer .k-nav-today {
    display: inline-block;
    width: 100%;
    height: 100%;
    padding: .5em 0;
    color: #333;
    text-decoration: none;
    background-color: #fff
}

.k-calendar .k-footer .k-nav-today:hover {
    background-color: #fff;
    text-decoration: underline
}

.k-calendar .k-footer .k-nav-today:active {
    background-color: #fff
}

.k-calendar .k-link.k-nav-fast {
    color: #333
}

.k-calendar .k-nav-fast.k-state-hover {
    text-decoration: none;
    background-color: #006dcc;
    color: #fff
}

.k-calendar .k-link.k-state-hover, .k-window .k-link {
    border-radius: 4px
}

.k-calendar .k-footer .k-link {
    border-radius: 0
}

.k-calendar th {
    background-color: #fff
}

.k-calendar-container.k-group {
    border-color: rgba(0, 0, 0, 0.2)
}

.k-state-selected, .k-state-selected:link, .k-state-selected:visited, .k-list>.k-state-selected, .k-list>.k-state-highlight, .k-panel>.k-state-selected, .k-button:active, .k-ghost-splitbar-vertical, .k-ghost-splitbar-horizontal, .k-draghandle.k-state-selected:hover, .k-scheduler .k-scheduler-toolbar .k-state-selected, .k-marquee-color {
    color: #dddddd;
    background-color: #586C7C;
}

.k-marquee-text {
    color: #fff
}

.k-state-focused, .k-list>.k-state-focused, .k-listview>.k-state-focused, .k-grid-header th.k-state-focused, td.k-state-focused, .k-button:focus, .k-button.k-state-focused {

}

.k-state-focused.k-state-selected, .k-list>.k-state-focused.k-state-selected, .k-listview>.k-state-focused.k-state-selected, td.k-state-focused.k-state-selected, .k-button:focus:active {

}

.k-ie8 .k-panelbar span.k-state-focused, .k-ie8 .k-menu li.k-state-focused, .k-ie8 .k-listview>.k-state-focused, .k-ie8 .k-grid-header th.k-state-focused, .k-ie8 td.k-state-focused, .k-ie8 .k-button:focus, .k-ie8 .k-button.k-state-focused, .k-ie7 .k-panelbar span.k-state-focused, .k-ie7 .k-menu li.k-state-focused, .k-ie7 .k-listview>.k-state-focused, .k-ie7 .k-grid-header th.k-state-focused, .k-ie7 td.k-state-focused, .k-ie7 .k-button:focus, .k-ie7 .k-button.k-state-focused {
    background-color: #006dcc
}

.k-list>.k-state-selected.k-state-focused {
    -webkit-box-shadow: none;
    box-shadow: none
}

.k-state-selected>.k-link, .k-panelbar>li>.k-state-selected {
    color: #fff
}

.k-state-selected, .k-button:active, .k-draghandle.k-state-selected:hover {
}

.k-button:active, .k-draghandle.k-state-selected:hover {
}

.k-state-hover, .k-state-hover:hover, .k-splitbar-horizontal-hover:hover, .k-splitbar-vertical-hover:hover, .k-list>.k-state-hover, .k-scheduler .k-scheduler-toolbar ul li.k-state-hover, .k-pager-wrap .k-link:hover, .k-dropdown .k-state-focused, .k-imagebrowser-dropzone {
    color: #586C7C;
    background-color: #dddddd;
    border-color: #dddddd;
    transition: none 0s ease 0s;
}

.k-state-hover>.k-select, .k-state-focused>.k-select {
    border-color: #0062b7 #005ab7 #005299
}

.k-button:hover, .k-button:focus, .k-button.k-state-focused, .k-textbox:hover, .k-state-hover, .k-state-hover:hover, .k-pager-wrap .k-link:hover, .k-other-month.k-state-hover .k-link, div.k-imagebrowser-dropzone em, .k-draghandle:hover {

}

.k-pager-wrap {
    color: #586C7C;
}

.k-autocomplete.k-state-active, .k-picker-wrap.k-state-active, .k-numeric-wrap.k-state-active, .k-dropdown-wrap.k-state-active, .k-state-active, .k-state-active:hover, .k-state-active>.k-link, .k-button:active, .k-panelbar>.k-item>.k-state-focused {
    background-image: none
}

.k-tool-icon {
    background-image: url('/Images/sprite.png');
    transition: none;
}

.k-tool-icon.k-state-hover {
    background-image: url('/Images/sprite.png');
    background-color: #dddddd;
    transition: none;
}

.k-tool-icon.k-state-active, .k-tool-icon.k-state-active.k-state-hover, .k-tool-icon.k-state-selected, .k-tool-icon.k-state-selected.k-state-hover {
    background-image: url('/Images/sprite.png')
}

.k-state-hover>.k-link, .k-other-month.k-state-hover .k-link, div.k-imagebrowser-dropzone em {
    color: #fff
}

.k-autocomplete.k-state-hover, .k-autocomplete.k-state-focused, .k-picker-wrap.k-state-hover, .k-picker-wrap.k-state-focused, .k-numeric-wrap.k-state-hover, .k-numeric-wrap.k-state-focused, .k-dropdown-wrap.k-state-hover, .k-dropdown-wrap.k-state-focused {
    background-color: #dddddd;
    border-color: #0062b7 #005ab7 #005299;
}

.k-dropdown .k-state-focused .k-input {
    color: #333
}

.k-dropdown .k-state-hover .k-input {
    color: #fff
}

.k-state-error {
    border-color: #eed3d7;
    background-color: #f2dede;
    color: #b94a48
}

.k-state-disabled {
    filter: alpha(opacity=70);
    opacity: .7
}

.k-tile-empty.k-state-selected, .k-loading-mask.k-state-selected {
    border-width: 0;
    background-image: none;
    background-color: transparent
}

.k-state-disabled, .k-state-disabled .k-link, .k-state-disabled .k-button, .k-other-month, .k-other-month .k-link, .k-dropzone em, .k-dropzone .k-upload-status, .k-tile-empty strong, .k-slider .k-draghandle {
    color: #999
}

.k-slider-track {
    background-color: #dcdcdc #dcdcdc #b3b3b3
}

.k-slider-selection {
    background-color: #04c
}

.k-slider-horizontal .k-tick {
    background-image: url('Bootstrap/slider-h.gif')
}

.k-slider-vertical .k-tick {
    background-image: url('Bootstrap/slider-v.gif')
}

.k-widget.k-tooltip {
    border-color: #bebebe;
    background-color: #e6e6e6;
    color: #333
}

.k-widget.k-tooltip-validation {
    border-color: #fbeed5;
    background-color: #fcf8e3;
    color: #c09853
}

.input-prepend .k-tooltip-validation, .input-append .k-tooltip-validation {
    font-size: 12px;
    position: relative;
    top: 3px
}

.k-callout-n {
    border-bottom-color: #bebebe
}

.k-callout-w {
    border-right-color: #bebebe
}

.k-callout-s {
    border-top-color: #bebebe
}

.k-callout-e {
    border-left-color: #bebebe
}

.k-tooltip-validation .k-callout-n {
    border-bottom-color: #fbeed5
}

.k-tooltip-validation .k-callout-w {
    border-right-color: #fbeed5
}

.k-tooltip-validation .k-callout-s {
    border-top-color: #fbeed5
}

.k-tooltip-validation .k-callout-e {
    border-left-color: #fbeed5
}

.k-splitbar {
    background-color: #f5f5f5
}

.k-restricted-size-vertical, .k-restricted-size-horizontal {
    background-color: #b94a48
}

.k-file {
    background-color: #fff;
    border-color: #bebebe
}

.k-file-progress {
    color: #06c
}

.k-file-progress .k-progress {
    background-color: #d0f8ff
}

.k-file-success {
    color: #28760b
}

.k-file-success .k-progress {
    background-color: #ddffd0
}

.k-file-error {
    color: #c00
}

.k-file-error .k-progress {
    background-color: #ffded7
}

.k-tile {
    border-color: #fff
}

.k-textbox:hover, .k-tiles li.k-state-hover {
    border-color: #0062b7 #005ab7 #005299
}

.k-tiles li.k-state-selected {
    border-color: #003db7 #003db7 #039
}

.k-tile .k-folder, .k-tile .k-file {
    background-image: url('/Images/Imagebrowser.png')
}

.k-widget, .k-button {

}

.k-slider, .k-treeview, .k-upload {
    -webkit-box-shadow: none;
    box-shadow: none
}

.k-state-hover {
    -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.2) inset, 0 1px 2px rgba(0, 0, 0, 0.05);
    box-shadow: 0 1px 0 rgba(255, 255, 255, 0.2) inset, 0 1px 2px rgba(0, 0, 0, 0.05)
}

.k-autocomplete.k-state-focused, .k-dropdown-wrap.k-state-focused, .k-picker-wrap.k-state-focused, .k-numeric-wrap.k-state-focused {

}

.k-state-selected {
    background: #EEEEEE;
    border-color: #EEEEEE;
    color: #ddd;
}

.k-state-active {
    -webkit-box-shadow: none;
    box-shadow: none
}

.k-grid td.k-state-selected.k-state-focused {
    background-color: #0049db
}

.k-popup, .k-menu .k-group, .k-grid .k-filter-options, .k-time-popup, .k-datepicker-calendar, .k-autocomplete.k-state-border-down, .k-autocomplete.k-state-border-up, .k-dropdown-wrap.k-state-active, .k-picker-wrap.k-state-active, .k-multiselect.k-state-focused, .k-imagebrowser .k-image, .k-tooltip {
}

.k-window {
    border-color: rgba(0, 0, 0, 0.2);
    -webkit-box-shadow: 1px 1px 7px 1px rgba(128, 128, 128, 0.2);
    box-shadow: 1px 1px 7px 1px rgba(128, 128, 128, 0.2);
    background-color: #fff
}

.k-window.k-state-focused {
    border-color: rgba(0, 0, 0, 0.2);
    -webkit-box-shadow: 1px 1px 7px 1px rgba(0, 0, 0, 0.2);
    box-shadow: 1px 1px 7px 1px rgba(0, 0, 0, 0.2)
}

.k-shadow {
    -webkit-box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.2);
    box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.2)
}

.k-inset {
    -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.2);
    box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.2)
}

.k-editor-inline ::selection {
    background-color: #003db7 #003db7 #039;
    text-shadow: none;
    color: #fff
}

.k-editor-inline ::-moz-selection {
    background-color: #003db7 #003db7 #039;
    text-shadow: none;
    color: #fff
}

.k-block, .k-button, .k-textbox, .k-drag-clue, .k-touch-scrollbar, .k-window, .k-window-titleless .k-window-content, .k-window-action, .k-inline-block, .k-grid .k-filter-options, .k-grouping-header .k-group-indicator, .k-autocomplete, .k-multiselect, .k-combobox, .k-dropdown, .k-dropdown-wrap, .k-datepicker, .k-timepicker, .k-colorpicker, .k-datetimepicker, .k-numerictextbox, .k-picker-wrap, .k-numeric-wrap, .k-colorpicker.k-list-container, .k-calendar-container, .k-calendar td, .k-calendar .k-link, .k-treeview .k-in, .k-editor-inline, .k-tooltip, .k-tile, .k-slider-track, .k-slider-selection, .k-upload {
    -moz-border-radius: 2px;
    -webkit-border-radius: 2px;
    border-radius: 2px
}

.k-group-start .k-tool-icon {
    -moz-border-radius: 2px 0 0 2px;
    -webkit-border-radius: 2px 0 0 2px;
    border-radius: 2px 0 0 2px
}

.k-group-end .k-tool-icon {
    -moz-border-radius: 0 2px 2px 0;
    -webkit-border-radius: 0 2px 2px 0;
    border-radius: 0 2px 2px 0
}

.k-group-start.k-group-end .k-tool-icon {
    -moz-border-radius: 2px;
    -webkit-border-radius: 2px;
    border-radius: 2px
}

.k-calendar-container.k-state-border-up, .k-list-container.k-state-border-up, .k-autocomplete.k-state-border-up, .k-multiselect.k-state-border-up, .k-dropdown-wrap.k-state-border-up, .k-picker-wrap.k-state-border-up, .k-numeric-wrap.k-state-border-up, .k-window-content, .k-filter-menu {
    -moz-border-radius: 0 0 2px 2px;
    -webkit-border-radius: 0 0 2px 2px;
    border-radius: 0 0 2px 2px
}

.k-autocomplete.k-state-border-up .k-input, .k-dropdown-wrap.k-state-border-up .k-input, .k-picker-wrap.k-state-border-up .k-input, .k-picker-wrap.k-state-border-up .k-selected-color, .k-numeric-wrap.k-state-border-up .k-input {
    -moz-border-radius: 0 0 0 2px;
    -webkit-border-radius: 0 0 0 2px;
    border-radius: 0 0 0 2px
}

.k-multiselect.k-state-border-up .k-multiselect-wrap {
    -moz-border-radius: 0 0 2px 2px;
    -webkit-border-radius: 0 0 2px 2px;
    border-radius: 0 0 2px 2px
}

.k-window-titlebar, .k-block>.k-header, .k-tabstrip-items .k-item, .k-panelbar .k-tabstrip-items .k-item, .k-tabstrip-items .k-link, .k-calendar-container.k-state-border-down, .k-list-container.k-state-border-down, .k-autocomplete.k-state-border-down, .k-multiselect.k-state-border-down, .k-dropdown-wrap.k-state-border-down, .k-picker-wrap.k-state-border-down, .k-numeric-wrap.k-state-border-down {
    -moz-border-radius: 2px 2px 0 0;
    -webkit-border-radius: 2px 2px 0 0;
    border-radius: 2px 2px 0 0
}

.k-dropdown-wrap .k-input, .k-picker-wrap .k-input, .k-numeric-wrap .k-input {
    -moz-border-radius: 2px 0 0 2px;
    -webkit-border-radius: 2px 0 0 2px;
    border-radius: 2px 0 0 2px
}

.k-numeric-wrap .k-link {
    -moz-border-radius: 0 2px 0 0;
    -webkit-border-radius: 0 2px 0 0;
    border-radius: 0 2px 0 0
}

.k-numeric-wrap .k-link+.k-link {
    -moz-border-radius: 0 0 2px 0;
    -webkit-border-radius: 0 0 2px 0;
    border-radius: 0 0 2px 0
}

.k-colorpicker .k-selected-color {
    -moz-border-radius: 2px 0 0 2px;
    -webkit-border-radius: 2px 0 0 2px;
    border-radius: 2px 0 0 2px
}

.k-rtl .k-colorpicker .k-selected-color {
    -moz-border-radius: 0 2px 2px 0;
    -webkit-border-radius: 0 2px 2px 0;
    border-radius: 0 2px 2px 0
}

.k-autocomplete.k-state-border-down .k-input, .k-dropdown-wrap.k-state-border-down .k-input, .k-picker-wrap.k-state-border-down .k-input, .k-picker-wrap.k-state-border-down .k-selected-color, .k-numeric-wrap.k-state-border-down .k-input {
    -moz-border-radius: 2px 0 0 0;
    -webkit-border-radius: 2px 0 0 0;
    border-radius: 2px 0 0 0
}

.k-numeric-wrap .k-link.k-state-selected {
    background-color: #04c
}

.k-multiselect.k-state-border-down .k-multiselect-wrap {
    -moz-border-radius: 2px 2px 0 0;
    -webkit-border-radius: 2px 2px 0 0;
    border-radius: 2px 2px 0 0
}

.k-dropdown-wrap .k-select, .k-picker-wrap .k-select, .k-numeric-wrap .k-select, .k-datetimepicker .k-select+.k-select, .k-list-container.k-state-border-right {
    -moz-border-radius: 0 2px 2px 0;
    -webkit-border-radius: 0 2px 2px 0;
    border-radius: 0 2px 2px 0
}

.k-rtl .k-dropdown-wrap .k-select, .k-rtl .k-picker-wrap .k-select, .k-rtl .k-numeric-wrap .k-select, .k-rtl .k-datetimepicker .k-select+.k-select, .k-rtl .k-list-container.k-state-border-right {
    -moz-border-radius: 2px 0 0 2px;
    -webkit-border-radius: 2px 0 0 2px;
    border-radius: 2px 0 0 2px
}

.k-numeric-wrap.k-expand-padding .k-input {
    -moz-border-radius: 2px;
    -webkit-border-radius: 2px;
    border-radius: 2px
}

.k-textbox>input, .k-autocomplete .k-input, .k-multiselect-wrap {
    -moz-border-radius: 2px;
    -webkit-border-radius: 2px;
    border-radius: 2px
}

.k-list .k-state-hover, .k-list .k-state-focused, .k-list .k-state-highlight, .k-list .k-state-selected, .k-dropzone {

}

.k-slider .k-button, .k-grid .k-slider .k-button {
    -moz-border-radius: 13px;
    -webkit-border-radius: 13px;
    border-radius: 13px
}

.k-draghandle {
    -moz-border-radius: 7px;
    -webkit-border-radius: 7px;
    border-radius: 7px
}

.k-scheduler-toolbar>ul li:first-child, .k-scheduler-toolbar>ul li:first-child .k-link {
    border-top-left-radius: 2px;
    border-bottom-left-radius: 2px
}

.k-rtl .k-scheduler-toolbar>ul li:first-child, .k-rtl .k-scheduler-toolbar>ul li:first-child .k-link {
    border-radius: 0 2px 2px 0
}

.k-scheduler-toolbar .k-nav-next, .k-scheduler-toolbar ul+ul li:last-child, .k-scheduler-toolbar .k-nav-next .k-link, .k-scheduler-toolbar ul+ul li:last-child .k-link {
    border-top-right-radius: 2px;
    border-bottom-right-radius: 2px
}

.k-rtl .k-scheduler-toolbar .k-nav-next, .k-rtl .k-scheduler-toolbar ul+ul li:last-child, .k-rtl .k-scheduler-toolbar .k-nav-next .k-link, .k-rtl .k-scheduler-toolbar ul+ul li:last-child .k-link {
    border-radius: 2px 0 0 2px
}

.k-scheduler div.k-scheduler-footer ul li, .k-scheduler div.k-scheduler-footer .k-link {
    border-radius: 2px
}

.k-more-events, .k-event, .k-event .k-link {
    -moz-border-radius: 2px;
    -webkit-border-radius: 2px;
    border-radius: 2px
}

.k-autocomplete.k-state-default, .k-picker-wrap.k-state-default, .k-numeric-wrap.k-state-default, .k-dropdown-wrap.k-state-default {
    background-color: #e9e9e9;
    border-color: #dddddd;
}

.k-autocomplete.k-state-hover, .k-picker-wrap.k-state-hover, .k-numeric-wrap.k-state-hover, .k-dropdown-wrap.k-state-hover {
    background-color: #dddddd;
    border-color: #0062b7 #005ab7 #005299;
}

.k-autocomplete.k-state-focused, .k-picker-wrap.k-state-focused, .k-numeric-wrap.k-state-focused, .k-dropdown-wrap.k-state-focused {
    background-color: #dddddd;
    border-color: #75b9f0
}

.k-multiselect.k-header {
    border-color: #dcdcdc #dcdcdc #b3b3b3
}

.k-multiselect.k-header.k-state-hover {
    border-color: #0062b7 #005ab7 #005299
}

.k-multiselect.k-header.k-state-focused {
    border-color: #75b9f0
}

.k-list-container {
    color: #333
}

.k-dropdown .k-input, .k-dropdown .k-state-focused .k-input, .k-menu .k-popup {
    color: #333
}

.k-state-default>.k-select {
    border-color: #dcdcdc #dcdcdc #b3b3b3
}

.k-state-hover>.k-select {
    border-color: #0062b7 #005ab7 #005299
}

.k-state-focused>.k-select {
    border-color: #75b9f0
}

.k-tabstrip-items .k-state-default .k-link, .k-panelbar>li.k-state-default>.k-link {
    color: #333
}

.k-tabstrip-items .k-state-hover .k-link, .k-panelbar>li.k-state-hover>.k-link {
    color: #fff
}

.k-tabstrip-items .k-state-default {
    border-color: #dcdcdc #dcdcdc #b3b3b3
}

.k-tabstrip-items .k-state-hover {
    border-color: #0062b7 #005ab7 #005299
}

.k-tabstrip-items .k-state-active {
    background-color: #fff;
    background-image: none;
    border-color: #006dcc
}

.k-tabstrip .k-content.k-state-active {
    background-color: #fff;
    color: #333
}

.k-menu.k-header, .k-menu .k-item {
    border-color: #dcdcdc #dcdcdc #b3b3b3
}

.k-column-menu, .k-column-menu .k-item {
    border-color: #dcdcdc #dcdcdc #b3b3b3
}

.k-column-menu .k-separator {
    border-color: #dcdcdc #dcdcdc #b3b3b3;
    background-color: transparent
}

.k-menu .k-group {
    border-color: rgba(0, 0, 0, 0.2)
}

.k-secondary .k-picker-wrap, .k-secondary .k-dropdown-wrap, .k-secondary .k-numeric-wrap, .k-secondary.k-scheduler-toolbar>ul>li {
    background-color: #f5f5f5;
    border-color: #dddddd;
}

.k-secondary .k-editor-button .k-tool-icon {
    border-color: #DCDCDC;
}

.k-secondary.k-splitbar {
    border-color: #dcdcdc #dcdcdc #b3b3b3
}

.k-secondary .k-state-default>.k-select {
    border-color: #dcdcdc #dcdcdc #b3b3b3
}

.k-secondary .k-state-hover>.k-select {
    border-color: #DCDCDC #DCDCDC #B3B3B3
}

.k-secondary .k-state-focused>.k-select {
    border-color: #dcdcdc #dcdcdc #b3b3b3
}

.k-secondary .k-autocomplete.k-state-hover, .k-secondary .k-picker-wrap.k-state-hover, .k-secondary .k-numeric-wrap.k-state-hover, .k-secondary .k-dropdown-wrap.k-state-hover {
    background-color: #dddddd;
    border-color: #dddddd;
}

.k-secondary .k-autocomplete.k-state-focused, .k-secondary .k-picker-wrap.k-state-focused, .k-secondary .k-numeric-wrap.k-state-focused, .k-secondary .k-dropdown-wrap.k-state-focused {
    background-color: #dddddd;
    border-color: #dddddd;
}

.k-secondary .k-button, .k-secondary.k-button {
}

.k-secondary .k-button:hover, .k-secondary.k-button:hover {
}

.k-secondary .k-button:active {
    background-color: transparent;

}

.k-secondary .k-dropdown .k-input, .k-secondary .k-dropdown .k-state-focused .k-input, .k-secondary .k-menu .k-popup {
    color: #333
}

.k-secondary .k-toolbar {
    color: #333;
    border-color: #dcdcdc #dcdcdc #b3b3b3;
    text-align:right;
}

.k-secondary.k-popup.k-group {
    border-color: rgba(0, 0, 0, 0.2)
}

.k-secondary.k-filter-menu {
    background-color: #fff;
    color: #333
}

.k-grouping-row td, .k-group-footer td, .k-grid-footer td {
    color: #333;
    border-color: #dddddd;
}

.k-grouping-header {
    color: #586C7C
}

.k-grid td.k-state-focused {
    -webkit-box-shadow: inset 0 0 0 1px inset 0 0 3px 1px #75b9f0;
    box-shadow: inset 0 0 0 1px inset 0 0 3px 1px #75b9f0
}

.k-header, .k-grid-header-wrap, .k-grid .k-grouping-header, .k-grid-header, .k-pager-wrap, .k-pager-wrap .k-textbox, .k-pager-wrap .k-link, .k-grouping-header .k-group-indicator {
    border-color: #DDDDDD
}

.k-treeview .k-icon, .k-scheduler-table .k-icon {
    background-color: transparent;
    border-radius: 4px
}

.k-scheduler-table .k-state-hover .k-icon {
    background-color: transparent
}

@media only screen and (-webkit-min-device-pixel-ratio:2), only screen and (min-device-pixel-ratio:2) {
    .k-icon:not(.k-loading), .k-grouping-dropclue, .k-drop-hint, .k-callout, .k-tool-icon, .k-tool-icon.k-state-hover, .k-tool-icon.k-state-active, .k-tool-icon.k-state-active.k-state-hover, .k-tool-icon.k-state-selected, .k-tool-icon.k-state-selected.k-state-hover, .k-column-menu .k-sprite {
        background-image: url('/Images/sprite_2x.png');
        background-size: 340px 336px
    }

    .k-dropdown-wrap .k-input, .k-picker-wrap .k-input, .k-numeric-wrap .k-input {
        -moz-border-radius: 2px 0 0 2px;
        -webkit-border-radius: 2px 0 0 2px;
        border-radius: 2px 0 0 2px
    }
}

/***************************************|NEWS ADDED STYLE|****************************************/
.myjb-grid {
    width: 100%;
}
.myjb-grid .k-grid{
    border: 1px solid #586c7c;
    border-radius: 2px;
    -webkit-border-radius: 2px;
    -moz-border-radius: 2px;
    color: #586c7c;
    float: left;
    text-align: left;
    width:100%;
    box-sizing: border-box;
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
}
.myjb-grid .k-grouping-header{
    background: none repeat scroll 0 0 #586c7c;
    color: #ddd;
}
.myjb-grid .k-grid-header .k-header a{
    color: #323a45;
}
.k-group-indicator{
    background: #F5F5F5;
}
.k-grid-View {
    background: url("/Images/Ico/View.png") no-repeat scroll 0 0 transparent;
    height: 20px;
    padding: 0 8px;
    transition: none;
    margin: 0 2px;
}
.k-grid-Edit {
    background: url("/Images/Ico/gridEdit.png") no-repeat scroll 0 0 transparent;
    height: 20px;
    margin: 0 2px;
    padding: 0 8px;
    transition: none;
}
.k-grid-Delete {
    background: url("/Images/Ico/delete.png") no-repeat scroll 0 0 transparent;
    height: 20px;
    padding: 0 8px;
    margin: 0 2px;
    transition: none;
}
.k-grid-UploadImage {
    background: url("/Images/Ico/upload.png") no-repeat scroll 0 0 transparent;
    height: 20px;
    padding: 0 8px;
    margin: 0 2px;
    transition: none;
}
.k-grid-NewEnteries{
    background: url("/Images/Ico/newenteries.png") no-repeat scroll 0 0 transparent;
    height: 20px;
    padding: 0 8px;
    margin: 0 2px;
    transition: none;
}
.k-grid-Payments{
    background: url("/Images/Ico/payments.png") no-repeat scroll 0 0 transparent;
    height: 20px;
    padding: 0 8px;
    margin: 0 2px;
    transition: none;
}
.k-grid-AddEntry{
    background: url("/Images/Ico/add-entry.png") no-repeat scroll 0 0 transparent;
    height: 20px;
    padding: 0 8px;
    margin: 0 2px;
    transition: none;
}
.k-grid-View:hover, .k-grid-Edit:hover, .k-grid-Delete:hover,
.k-grid-NewEnteries:hover, .k-grid-Payments:hover, .k-grid-AddEntry:hover {
    background-position: -16px 0 !important;
    height: 20px;
    transition: none;
    border-color: transparent;
}

/***************************************|COACHES ADDED STYLE|****************************************/
.myjb-grid .k-grid-header, .myjb-grid .k-grid-header-wrap{
    background: none repeat scroll 0 0 #586c7c;
    color: #ddd;
}
.myjb-grid .photo > img {
    border-radius: 40px;
    -webkit-border-radius: 40px;
    -moz-border-radius: 40px;
}
.myjb-grid .details .title strong, .myjb-grid .details .description strong{
    color: #323A45;
}

.k-type{
    background: #dddddd;
}
.k-type td{
    font-weight: bold;
}


text:
/* Process inline math */

'use strict';

var ascii2mathml = null;
require('./lib/polyfills');

function scanDelims(state, start, delimLength) {
  var pos = start, lastChar, nextChar, count, can_open, can_close,
      isLastWhiteSpace, isLastPunctChar,
      isNextWhiteSpace, isNextPunctChar,
      left_flanking = true,
      right_flanking = true,
      max = state.posMax,
      isWhiteSpace = state.md.utils.isWhiteSpace,
      isPunctChar = state.md.utils.isPunctChar,
      isMdAsciiPunct = state.md.utils.isMdAsciiPunct;

  // treat beginning of the line as a whitespace
  lastChar = start > 0 ? state.src.charCodeAt(start - 1) : 0x20;

  if (pos >= max) {
    can_open = false;
  }

  pos += delimLength;

  count = pos - start;

  // treat end of the line as a whitespace
  nextChar = pos < max ? state.src.charCodeAt(pos) : 0x20;

  isLastPunctChar = isMdAsciiPunct(lastChar) || isPunctChar(String.fromCharCode(lastChar));
  isNextPunctChar = isMdAsciiPunct(nextChar) || isPunctChar(String.fromCharCode(nextChar));

  isLastWhiteSpace = isWhiteSpace(lastChar);
  isNextWhiteSpace = isWhiteSpace(nextChar);

  if (isNextWhiteSpace) {
    left_flanking = false;
  } else if (isNextPunctChar) {
    if (!(isLastWhiteSpace || isLastPunctChar)) {
      left_flanking = false;
    }
  }

  if (isLastWhiteSpace) {
    right_flanking = false;
  } else if (isLastPunctChar) {
    if (!(isNextWhiteSpace || isNextPunctChar)) {
      right_flanking = false;
    }
  }

  can_open = left_flanking;
  can_close = right_flanking;

  return {
    can_open: can_open,
    can_close: can_close,
    delims: count
  };
}

function makeMath_inline(open, close) {
  return function math_inline(state, silent) {
    var startCount,
        found,
        res,
        token,
        closeDelim,
        max = state.posMax,
        start = state.pos,
        openDelim = state.src.slice(start, start + open.length);

    if (openDelim !== open) { return false; }
    if (silent) { return false; }    // Don't run any pairs in validation mode

    res = scanDelims(state, start, openDelim.length);
    startCount = res.delims;

    if (!res.can_open) {
      state.pos += startCount;
      // Earlier we checked !silent, but this implementation does not need it
      state.pending += state.src.slice(start, state.pos);
      return true;
    }

    state.pos = start + open.length;

    while (state.pos < max) {
      closeDelim = state.src.slice(state.pos, state.pos + close.length);
      if (closeDelim === close) {
        res = scanDelims(state, state.pos, close.length);
        if (res.can_close) {
          found = true;
          break;
        }
      }

      state.md.inline.skipToken(state);
    }

    if (!found) {
      // Parser failed to find ending tag, so it is not a valid math
      state.pos = start;
      return false;
    }

    // Found!
    state.posMax = state.pos;
    state.pos = start + close.length;

    // Earlier we checked !silent, but this implementation does not need it
    token = state.push('math_inline', 'math', 0);
    token.content = state.src.slice(state.pos, state.posMax);
    token.markup = open;

    state.pos = state.posMax + close.length;
    state.posMax = max;

    return true;
  };
}

function makeMath_block(open, close) {
  return function math_block(state, startLine, endLine, silent) {
    var openDelim, len, params, nextLine, token, firstLine, lastLine, lastLinePos,
        haveEndMarker = false,
        pos = state.bMarks[startLine] + state.tShift[startLine],
        max = state.eMarks[startLine];

    if (pos + open.length > max) { return false; }

    openDelim = state.src.slice(pos, pos + open.length);

    if (openDelim !== open) { return false; }

    pos += open.length;
    firstLine = state.src.slice(pos, max);

    // Since start is found, we can report success here in validation mode
    if (silent) { return true; }

    if (firstLine.trim().slice(-close.length) === close) {
      // Single line expression
      firstLine = firstLine.trim().slice(0, -close.length);
      haveEndMarker = true;
    }

    // search end of block
    nextLine = startLine;

    for (;;) {
      if (haveEndMarker) { break; }

      nextLine++;

      if (nextLine >= endLine) {
        // unclosed block should be autoclosed by end of document.
        // also block seems to be autoclosed by end of parent
        break;
      }

      pos = state.bMarks[nextLine] + state.tShift[nextLine];
      max = state.eMarks[nextLine];

      if (pos < max && state.tShift[nextLine] < state.blkIndent) {
        // non-empty line with negative indent should stop the list:
        break;
      }

      if (state.src.slice(pos, max).trim().slice(-close.length) !== close) {
        continue;
      }

      if (state.tShift[nextLine] - state.blkIndent >= 4) {
        // closing block math should be indented less then 4 spaces
        continue;
      }

      lastLinePos = state.src.slice(0, max).lastIndexOf(close);
      lastLine = state.src.slice(pos, lastLinePos);

      pos += lastLine.length + close.length;

      // make sure tail has spaces only
      pos = state.skipSpaces(pos);

      if (pos < max) { continue; }

      // found!
      haveEndMarker = true;
    }

    // If math block has heading spaces, they should be removed from its inner block
    len = state.tShift[startLine];

    state.line = nextLine + (haveEndMarker ? 1 : 0);

    token = state.push('math_block', 'math', 0);
    token.block = true;
    token.content = (firstLine && firstLine.trim() ? firstLine + '\n' : '') +
      state.getLines(startLine + 1, nextLine, len, true) +
      (lastLine && lastLine.trim() ? lastLine : '');
    token.info = params;
    token.map = [ startLine, state.line ];
    token.markup = open;

    return true;
  };
}

function makeMathRenderer(renderingOptions) {
  if (ascii2mathml === null) {
    try {
      ascii2mathml = require('ascii2mathml');
    } catch (e) {
      return renderingOptions && renderingOptions.display === 'block' ?
        function(tokens, idx) {
          return '
' + tokens[idx].content + '
';
        } :
        function(tokens, idx) {
          return '' + tokens[idx].content + '';
        };
    }
  }

  var mathml = ascii2mathml(Object.assign({}, renderingOptions));

  return renderingOptions && renderingOptions.display === 'block' ?
    function(tokens, idx) {
      return mathml(tokens[idx].content) + '\n';
    } :
    function(tokens, idx) {
      return mathml(tokens[idx].content);
    };
}

module.exports = function math_plugin(md, options) {
  // Default options
  options = typeof options === 'object' ? options : {};
  var inlineOpen = options.inlineOpen || '$$',
      inlineClose = options.inlineClose || '$$',
      blockOpen = options.blockOpen || '$$$',
      blockClose = options.blockClose || '$$$';
  var inlineRenderer = options.inlineRenderer ?
        function(tokens, idx) {
          return options.inlineRenderer(tokens[idx].content);
        } :
      makeMathRenderer(options.renderingOptions);
  var blockRenderer = options.blockRenderer ?
        function(tokens, idx) {
          return options.blockRenderer(tokens[idx].content) + '\n';
        } :
      makeMathRenderer(Object.assign({ display: 'block' },
                                     options.renderingOptions));

  var math_inline = makeMath_inline(inlineOpen, inlineClose);
  var math_block = makeMath_block(blockOpen, blockClose);

  md.inline.ruler.before('escape', 'math_inline', math_inline);
  md.block.ruler.after('blockquote', 'math_block', math_block, {
    alt: [ 'paragraph', 'reference', 'blockquote', 'list' ]
  });
  md.renderer.rules.math_inline = inlineRenderer;
  md.renderer.rules.math_block = blockRenderer;

  // Push configuration options to MarkdownIt instance
  md.math = typeof md.math === 'object' ? md.math : [];
  md.math.push({
    inlineOpen: inlineOpen,
    inlineClose: inlineClose,
    blockOpen: blockOpen,
    blockClose: blockClose
  });

  // Replace existing table parser with parser that respects new inline delims
  var table_block = require('./lib/table')(md);
  md.block.ruler.at('table', table_block, {
    alt: [ 'paragraph', 'reference' ]
  });
};


text:
from django.contrib import admin

class FriendlyOwnerAdminMixin(admin.ModelAdmin):
    fields = ('name', 'email', 'phone', 'notes', 'parcels', 'lot', 'added',)
    list_display = ('name', 'email', 'phone', 'lot', 'added',)
    readonly_fields = ('added', 'lot', 'parcels',)


text:
package org.hibernate.exception;

import java.sql.SQLException;

import org.hibernate.JDBCException;

/**
 * Implementation of JDBCException indicating a problem acquiring lock
 * on the database.
 *
 * @author Steve Ebersole
 */
public class LockAcquisitionException extends JDBCException {
	public LockAcquisitionException(String string, SQLException root) {
		super( string, root );
	}

	public LockAcquisitionException(String string, SQLException root, String sql) {
		super( string, root, sql );
	}
}


text:
// Copyright (c) 2009 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef CHROME_BROWSER_COCOA_BOOKMARK_EDITOR_BASE_CONTROLLER_H_
#define CHROME_BROWSER_COCOA_BOOKMARK_EDITOR_BASE_CONTROLLER_H_

#import <Cocoa/Cocoa.h>

#import "base/cocoa_protocols_mac.h"
#include "base/scoped_ptr.h"
#include "base/scoped_nsobject.h"
#include "chrome/browser/bookmarks/bookmark_editor.h"

class BookmarkModel;
@class BookmarkTreeBrowserCell;

// A base controller class for bookmark creation and editing dialogs which
// present the current bookmark folder structure in a tree view.  Do not
// instantiate this controller directly -- use one of its derived classes.
// NOTE: If a derived class is intended to be dispatched via the
// BookmarkEditor::Show static function found in the accompanying
// implementation, that function will need to be update.
@interface BookmarkEditorBaseController : NSWindowController {
 @private
  IBOutlet NSButton* newFolderButton_;
  IBOutlet NSButton* okButton_;  // Used for unit testing only.
  IBOutlet NSTreeController* folderTreeController_;
  IBOutlet NSOutlineView* folderTreeView_;

  NSWindow* parentWindow_;  // weak
  Profile* profile_;  // weak
  const BookmarkNode* parentNode_;  // weak; owned by the model
  BookmarkEditor::Configuration configuration_;
  scoped_ptr<BookmarkEditor::Handler> handler_;  // we take ownership
  NSString* initialName_;
  NSString* displayName_;  // Bound to a text field in the dialog.
  BOOL okEnabled_;  // Bound to the OK button.
  // An array of BookmarkFolderInfo where each item describes a folder in the
  // BookmarkNode structure.
  scoped_nsobject<NSArray> folderTreeArray_;
  // Bound to the table view giving a path to the current selections, of which
  // there should only ever be one.
  scoped_nsobject<NSArray> tableSelectionPaths_;
}

@property (copy) NSString* initialName;
@property (copy) NSString* displayName;
@property (assign) BOOL okEnabled;
@property (retain, readonly) NSArray* folderTreeArray;
@property (copy) NSArray* tableSelectionPaths;

// Designated initializer.  Derived classes should call through to this init.
- (id)initWithParentWindow:(NSWindow*)parentWindow
                   nibName:(NSString*)nibName
                   profile:(Profile*)profile
                    parent:(const BookmarkNode*)parent
             configuration:(BookmarkEditor::Configuration)configuration
                   handler:(BookmarkEditor::Handler*)handler;

// Run the bookmark editor as a modal sheet.  Does not block.
- (void)runAsModalSheet;

// Create a new folder at the end of the selected parent folder, give it
// an untitled name, and put it into editing mode.
- (IBAction)newFolder:(id)sender;

// The cancel action will dismiss the dialog.  Derived classes which
// override cancel:, must call this after accessing any dialog-related
// data.
- (IBAction)cancel:(id)sender;

// The OK action will dismiss the dialog.  This action is bound
// to the OK button of a dialog which presents a tree view of a profile's
// folder hierarchy and allows the creation of new folders within that tree.
// When the OK button is pressed, this function will: 1) call the derived
// class's -[willCommit] function, 2) create any new folders created by
// the user while the dialog is presented, 3) call the derived class's
// -[didCommit] function, and then 4) dismiss the dialog.  At least one
// of -[willCommit] and -[didCommit] must be provided by the derived class
// and should return a NSNumber containing a BOOL or nil ('nil' means YES)
// indicating if the operation should be allowed to continue.
// Note: A derived class should not override the ok: action.
- (IBAction)ok:(id)sender;

// Methods for use by derived classes only.

// Determine and returns the rightmost selected/highlighted element (node)
// in the bookmark tree view if the tree view is showing, otherwise returns
// the original |parentNode_|.  If the tree view is showing but nothing is
// selected then the root node is returned.
- (const BookmarkNode*)selectedNode;

// Select/highlight the given node within the browser tree view.  If the
// node is nil then select the bookmark bar node.  Exposed for unit test.
- (void)selectNodeInBrowser:(const BookmarkNode*)node;

// Notify the handler, if any, of a node creation.
- (void)notifyHandlerCreatedNode:(const BookmarkNode*)node;

// Accessors
- (BookmarkModel*)bookmarkModel;
- (const BookmarkNode*)parentNode;

@end

// Describes the profile's bookmark folder structure: the folder name, the
// original BookmarkNode pointer (if the folder already exists), a BOOL
// indicating if the folder is new (meaning: created during this session
// but not yet committed to the bookmark structure), and an NSArray of
// child folder BookmarkFolderInfo's following this same structure.
@interface BookmarkFolderInfo : NSObject {
 @private
  NSString* folderName_;
  const BookmarkNode* folderNode_;  // weak
  NSMutableArray* children_;
  BOOL newFolder_;
}

@property (copy, readwrite) NSString* folderName;
@property (assign, readwrite) const BookmarkNode* folderNode;
@property (retain, readwrite) NSMutableArray* children;
@property (assign, readwrite) BOOL newFolder;

// Convenience creator for adding a new folder to the editor's bookmark
// structure.  This folder will be added to the bookmark model when the
// user accepts the dialog. |folderName| must be provided.
+ (id)bookmarkFolderInfoWithFolderName:(NSString*)folderName;

// Designated initializer.  |folderName| must be provided.  For folders which
// already exist in the bookmark model, |folderNode| and |children| (if any
// children are already attached to this folder) must be provided and
// |newFolder| should be NO.  For folders which the user has added during
// this session and which have not been committed yet, |newFolder| should be
// YES and |folderNode| and |children| should be NULL/nil.
- (id)initWithFolderName:(NSString*)folderName
              folderNode:(const BookmarkNode*)folderNode
                children:(NSMutableArray*)children
               newFolder:(BOOL)newFolder;

// Convenience creator used during construction of the editor's bookmark
// structure.  |folderName| and |folderNode| must be provided. |children|
// is optional.  Private: exposed here for unit testing purposes.
+ (id)bookmarkFolderInfoWithFolderName:(NSString*)folderName
                            folderNode:(const BookmarkNode*)folderNode
                              children:(NSMutableArray*)children;

@end

@interface BookmarkEditorBaseController(TestingAPI)

@property (readonly) BOOL okButtonEnabled;

// Create any newly added folders.  New folders are nodes in folderTreeArray
// which are marked as being new (i.e. their kFolderTreeNewFolderKey
// dictionary item is YES).  This is called by -[ok:].
- (void)createNewFolders;

// Select the given bookmark node within the tree view.
- (void)selectTestNodeInBrowser:(const BookmarkNode*)node;

// Return the dictionary for the folder selected in the tree.
- (BookmarkFolderInfo*)selectedFolder;

@end

#endif  /* CHROME_BROWSER_COCOA_BOOKMARK_EDITOR_BASE_CONTROLLER_H_ */


text:
Small Promo

Product

Learn all about dragons and maybe even purchase one!

      Buy a Dragon


text:
CKEDITOR.plugins.setLang( 'autoembed', 'de-ch', {
	embeddingInProgress: 'Einbetten der eingefügten URL wird versucht...',
	embeddingFailed: 'Diese URL konnte nicht automatisch eingebettet werden.'
} );


text:
@implementation FF5103ChunkEvent

//重写父类的init方法,在原有的init方法基础上添加计算4分音符时长的方法
-(instancetype)initWithMIDIData:(NSData *)midiData andDeltaNum:(NSUInteger)deltaNum andEventStatus:(NSString *)eventStatus andEventLength:(NSUInteger)eventLength andEventLocation:(NSUInteger)location andIsUnformal:(BOOL)isUnFormal
{
    if (self = [super initWithMIDIData:midiData andDeltaNum:deltaNum andEventStatus:eventStatus andEventLength:eventLength andEventLocation:location andIsUnformal:isUnFormal])
    {

        //添加计算4分音符时长的方法
        _theQuartTime = [self CaculateTheQuartTimeWithMidiData:midiData andEventLocation:location andDeltaNum:deltaNum];
    }
    return self;
}

//计算4分音符时长
-(NSUInteger)CaculateTheQuartTimeWithMidiData:(NSData *)midiData andEventLocation:(NSUInteger)location andDeltaNum:(NSUInteger)deltaNum
{
    __block NSUInteger theQuartTime = 0;

    [midiData enumerateByteRangesUsingBlock:^(const void * _Nonnull bytes, NSRange byteRange, BOOL * _Nonnull stop) {

        for (NSUInteger i = location + deltaNum + 3; i <= location + deltaNum + 5; ++i)
        {
            NSString *tempString = [NSString stringWithFormat:@"%02x",((uint8_t*)bytes)[i]];

            NSUInteger theTempNum = strtoul([tempString UTF8String],0,16);

            theQuartTime += theTempNum << 8*(location + deltaNum + 5 - i);

        }

    }];

    return theQuartTime;
}

@end


text:
package com.github.kospiotr.spring;

import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.BeanPostProcessor;

public class SimpleBeanPostProcessor implements BeanPostProcessor {

    public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
        System.out.println("before bean init = " + beanName);
        return bean;
    }

    public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
        System.out.println("after bean init = " + beanName);
        return bean;
    }

}


text:
package org.apache.ambari.server.controller.internal;

import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;

import org.apache.ambari.server.AmbariException;
import org.apache.ambari.server.StaticallyInject;
import org.apache.ambari.server.api.resources.OperatingSystemResourceDefinition;
import org.apache.ambari.server.api.services.AmbariMetaInfo;
import org.apache.ambari.server.controller.AmbariManagementController;
import org.apache.ambari.server.controller.predicate.AndPredicate;
import org.apache.ambari.server.controller.predicate.EqualsPredicate;
import org.apache.ambari.server.controller.predicate.OrPredicate;
import org.apache.ambari.server.controller.spi.NoSuchParentResourceException;
import org.apache.ambari.server.controller.spi.NoSuchResourceException;
import org.apache.ambari.server.controller.spi.Predicate;
import org.apache.ambari.server.controller.spi.Request;
import org.apache.ambari.server.controller.spi.Resource;
import org.apache.ambari.server.controller.spi.Resource.Type;
import org.apache.ambari.server.controller.spi.SystemException;
import org.apache.ambari.server.controller.spi.UnsupportedPropertyException;
import org.apache.ambari.server.controller.utilities.PredicateBuilder;
import org.apache.ambari.server.orm.dao.RepositoryVersionDAO;
import org.apache.ambari.server.orm.entities.RepositoryVersionEntity;
import org.apache.ambari.server.stack.upgrade.UpgradePack;
import org.apache.ambari.server.state.ServiceInfo;
import org.apache.ambari.server.state.StackId;
import org.apache.ambari.server.state.StackInfo;
import org.apache.ambari.server.state.repository.ManifestServiceInfo;
import org.apache.ambari.server.state.repository.VersionDefinitionXml;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
import com.google.inject.Inject;
import com.google.inject.Provider;

/**
 * Resource provider for repository versions resources.
 */
@StaticallyInject
public class CompatibleRepositoryVersionResourceProvider extends ReadOnlyResourceProvider {

  private static final Logger LOG = LoggerFactory.getLogger(CompatibleRepositoryVersionResourceProvider.class);

  // ----- Property ID constants ---------------------------------------------

  public static final String REPOSITORY_VERSION_ID_PROPERTY_ID                 = "CompatibleRepositoryVersions/id";
  public static final String REPOSITORY_VERSION_STACK_NAME_PROPERTY_ID         = "CompatibleRepositoryVersions/stack_name";
  public static final String REPOSITORY_VERSION_STACK_VERSION_PROPERTY_ID      = "CompatibleRepositoryVersions/stack_version";
  public static final String REPOSITORY_VERSION_REPOSITORY_VERSION_PROPERTY_ID = "CompatibleRepositoryVersions/repository_version";
  public static final String REPOSITORY_VERSION_DISPLAY_NAME_PROPERTY_ID       = "CompatibleRepositoryVersions/display_name";
  public static final String REPOSITORY_UPGRADES_SUPPORTED_TYPES_ID            = "CompatibleRepositoryVersions/upgrade_types";
  public static final String REPOSITORY_VERSION_SERVICES                       = "CompatibleRepositoryVersions/services";
  public static final String REPOSITORY_VERSION_STACK_SERVICES                 = "CompatibleRepositoryVersions/stack_services";
  public static final String SUBRESOURCE_OPERATING_SYSTEMS_PROPERTY_ID         = new OperatingSystemResourceDefinition().getPluralName();
  private static final String REPOSITORY_STACK_VALUE                           = "stack_value";

  private static final Set<String> pkPropertyIds = Collections.singleton(REPOSITORY_VERSION_ID_PROPERTY_ID);

  static final Set<String> propertyIds = ImmutableSet.of(
    REPOSITORY_STACK_VALUE,
    REPOSITORY_VERSION_ID_PROPERTY_ID,
    REPOSITORY_VERSION_REPOSITORY_VERSION_PROPERTY_ID,
    REPOSITORY_VERSION_DISPLAY_NAME_PROPERTY_ID,
    REPOSITORY_VERSION_STACK_NAME_PROPERTY_ID,
    REPOSITORY_VERSION_STACK_VERSION_PROPERTY_ID,
    SUBRESOURCE_OPERATING_SYSTEMS_PROPERTY_ID,
    REPOSITORY_UPGRADES_SUPPORTED_TYPES_ID,
    REPOSITORY_VERSION_SERVICES,
    REPOSITORY_VERSION_STACK_SERVICES);

  static final Map<Type, String> keyPropertyIds = new ImmutableMap.Builder<Type, String>()
    .put(Type.Stack, REPOSITORY_VERSION_STACK_NAME_PROPERTY_ID)
    .put(Type.StackVersion, REPOSITORY_VERSION_STACK_VERSION_PROPERTY_ID)
    .put(Type.Upgrade, REPOSITORY_UPGRADES_SUPPORTED_TYPES_ID)
    .put(Type.CompatibleRepositoryVersion, REPOSITORY_VERSION_ID_PROPERTY_ID)
    .build();

  @Inject
  private static RepositoryVersionDAO s_repositoryVersionDAO;

  @Inject
  private static Provider<AmbariMetaInfo> s_ambariMetaInfo;

  /**
   * Create a new resource provider.
   */
  public CompatibleRepositoryVersionResourceProvider(AmbariManagementController amc) {
    super(Type.CompatibleRepositoryVersion, propertyIds, keyPropertyIds, amc);
  }

  @Override
  public Set<Resource> getResources(Request request, Predicate predicate)
    throws SystemException, UnsupportedPropertyException, NoSuchResourceException, NoSuchParentResourceException {
    final Set<Resource> resources = new HashSet<>();
    final Set<String> requestedIds = getRequestPropertyIds(request, predicate);
    final Set<Map<String, Object>> propertyMaps = getPropertyMaps(predicate);

    Long currentStackUniqueId = null;
    Map<Long, CompatibleRepositoryVersion> compatibleRepositoryVersionsMap = new HashMap<>();

    StackId stackId = null;
    // !!! this is the case where the predicate was altered to include all stacks
    for (Map<String, Object> propertyMap : propertyMaps) {
      if (propertyMap.containsKey(REPOSITORY_STACK_VALUE)) {
        stackId = new StackId(propertyMap.get(REPOSITORY_STACK_VALUE).toString());
        break;
      }
    }

    if (null == stackId) {
      if (propertyMaps.size() == 1) {
        Map<String, Object> propertyMap = propertyMaps.iterator().next();
        stackId = getStackInformationFromUrl(propertyMap);
      } else {
        LOG.error("Property Maps size is NOT equal to 1. Current 'propertyMaps' size = {}", propertyMaps.size());
      }
    }

    if (null == stackId) {
      LOG.error("Could not determine stack to process.  Returning empty set.");
      return resources;
    }

    for (RepositoryVersionEntity repositoryVersionEntity : s_repositoryVersionDAO.findByStack(stackId)) {
      currentStackUniqueId = repositoryVersionEntity.getId();
      compatibleRepositoryVersionsMap.put(repositoryVersionEntity.getId(),
          new CompatibleRepositoryVersion(repositoryVersionEntity));
      if (LOG.isDebugEnabled()) {
        LOG.debug("Added current stack id: {} to map", repositoryVersionEntity.getId());
      }
    }

    Map<String, UpgradePack> packs = s_ambariMetaInfo.get().getUpgradePacks(
      stackId.getStackName(), stackId.getStackVersion());

    for (UpgradePack up : packs.values()) {
      if (null != up.getTargetStack()) {
        StackId targetStackId = new StackId(up.getTargetStack());
        List<RepositoryVersionEntity> repositoryVersionEntities = s_repositoryVersionDAO.findByStack(targetStackId);

        for (RepositoryVersionEntity repositoryVersionEntity : repositoryVersionEntities) {
          if (compatibleRepositoryVersionsMap.containsKey(repositoryVersionEntity.getId())) {
            compatibleRepositoryVersionsMap.get(repositoryVersionEntity.getId()).addUpgradePackType(up.getType());
            if (LOG.isDebugEnabled()) {
              LOG.debug("Stack id: {} exists in map.  Appended new upgrade type {}{}", up.getType(), repositoryVersionEntity.getId());
            }
          } else {
            CompatibleRepositoryVersion compatibleRepositoryVersionEntity = new CompatibleRepositoryVersion(repositoryVersionEntity);
            compatibleRepositoryVersionEntity.addUpgradePackType(up.getType());
            compatibleRepositoryVersionsMap.put(repositoryVersionEntity.getId(), compatibleRepositoryVersionEntity);
            if (LOG.isDebugEnabled()) {
              LOG.debug("Added Stack id: {} to map with upgrade type {}", repositoryVersionEntity.getId(), up.getType());
            }
          }
        }
      } else {
        if (currentStackUniqueId != null) {
          compatibleRepositoryVersionsMap.get(currentStackUniqueId).addUpgradePackType(up.getType());
          if (LOG.isDebugEnabled()) {
            LOG.debug("Current Stack id: {} retrieved from map. Added upgrade type {}", currentStackUniqueId, up.getType());
          }
        } else {
          LOG.error("Couldn't retrieve Current stack entry from Map.");
        }
      }
    }

    for (CompatibleRepositoryVersion entity : compatibleRepositoryVersionsMap.values()) {

      RepositoryVersionEntity repositoryVersionEntity = entity.getRepositoryVersionEntity();
      final Resource resource = new ResourceImpl(Resource.Type.CompatibleRepositoryVersion);
      setResourceProperty(resource, REPOSITORY_VERSION_ID_PROPERTY_ID, repositoryVersionEntity.getId(), requestedIds);

      setResourceProperty(resource, REPOSITORY_VERSION_STACK_NAME_PROPERTY_ID, repositoryVersionEntity.getStackName(), requestedIds);
      setResourceProperty(resource, REPOSITORY_VERSION_STACK_VERSION_PROPERTY_ID, repositoryVersionEntity.getStackVersion(), requestedIds);

      setResourceProperty(resource, REPOSITORY_VERSION_DISPLAY_NAME_PROPERTY_ID, repositoryVersionEntity.getDisplayName(), requestedIds);
      setResourceProperty(resource, REPOSITORY_VERSION_REPOSITORY_VERSION_PROPERTY_ID, repositoryVersionEntity.getVersion(), requestedIds);
      setResourceProperty(resource, REPOSITORY_UPGRADES_SUPPORTED_TYPES_ID, entity.getSupportedTypes(), requestedIds);

      final VersionDefinitionXml xml;
      try {
        xml = repositoryVersionEntity.getRepositoryXml();
      } catch (Exception e) {
        throw new SystemException(String.format("Could not load xml for Repository %s", repositoryVersionEntity.getId()), e);
      }

      final StackInfo stack;
      try {
        stack = s_ambariMetaInfo.get().getStack(repositoryVersionEntity.getStackName(), repositoryVersionEntity.getStackVersion());
      } catch (AmbariException e) {
        throw new SystemException(String.format("Could not load stack %s for Repository %s",
            repositoryVersionEntity.getStackId().toString(), repositoryVersionEntity.getId()));
      }

      final List<ManifestServiceInfo> stackServices;

      if (null != xml) {
        setResourceProperty(resource, REPOSITORY_VERSION_SERVICES, xml.getAvailableServices(stack), requestedIds);
        stackServices = xml.getStackServices(stack);
      } else {
        stackServices = new ArrayList<>();

        for (ServiceInfo si : stack.getServices()) {
          stackServices.add(new ManifestServiceInfo(si.getName(), si.getDisplayName(), si.getComment(),
              Collections.singleton(si.getVersion())));
        }
      }

      setResourceProperty(resource, REPOSITORY_VERSION_STACK_SERVICES, stackServices, requestedIds);

      resources.add(resource);
    }
    return resources;
  }

  @Override
  protected Set<String> getPKPropertyIds() {
    return pkPropertyIds;
  }

  /**
   * Gets the stack id from the request map
   *
   * @param propertyMap the request map
   * @return the StackId, or {@code null} if not found.
   */
  protected StackId getStackInformationFromUrl(Map<String, Object> propertyMap) {
    if (propertyMap.containsKey(REPOSITORY_VERSION_STACK_NAME_PROPERTY_ID) && propertyMap.containsKey(REPOSITORY_VERSION_STACK_VERSION_PROPERTY_ID)) {
      return new StackId(propertyMap.get(REPOSITORY_VERSION_STACK_NAME_PROPERTY_ID).toString(), propertyMap.get(REPOSITORY_VERSION_STACK_VERSION_PROPERTY_ID).toString());
    }
    return null;
  }

  /**
   * Identify the case where this is a top-level request, containing ONLY the stack name
   * and stack version. Determine all other compatible stacks and make a new Predicate
   * out of them.
   *
   * Consider a stack STACK-2.2 that is compatible with 2.3 and 2.4.  The result of this
   * call will be a predicate like so (abbreviated):
   * <pre>
   * in -> AndPredicate([stack_name=STACK],[stack_version=2.2])
   * out-> OrPredicate(
   *         AndPredicate([stack_name=STACK],[stack_version=2.2]),
   *         AndPredicate([stack_name=STACK],[stack_version=2.3]),
   *         AndPredicate([stack_name=STACK],[stack_version=2.4]) )
   * </pre>
   *
   * Any input predicate that does not conform to ONLY stack_name/stack_version will
   * revert to the that predicate (return {@code null}).
   */
  @SuppressWarnings("rawtypes")
  @Override
  public Predicate amendPredicate(Predicate predicate) {
    if (!AndPredicate.class.isInstance(predicate)) {
      return null;
    }

    AndPredicate ap = (AndPredicate) predicate;
    if (2 != ap.getPropertyIds().size()) {
      return null;
    }

    if (!ap.getPropertyIds().contains(REPOSITORY_VERSION_STACK_NAME_PROPERTY_ID) &&
        !ap.getPropertyIds().contains(REPOSITORY_VERSION_STACK_VERSION_PROPERTY_ID)) {
      return null;
    }

    Predicate[] predicates = ap.getPredicates();
    if (!EqualsPredicate.class.isInstance(predicates[0]) || !EqualsPredicate.class.isInstance(predicates[1])) {
      return null;
    }

    EqualsPredicate pred1 = (EqualsPredicate) predicates[0];
    EqualsPredicate pred2 = (EqualsPredicate) predicates[1];

    StackId stackId = null;
    if (pred1.getPropertyId().equals(REPOSITORY_VERSION_STACK_NAME_PROPERTY_ID)) {
      stackId = new StackId(pred1.getValue().toString(), pred2.getValue().toString());
    } else {
      stackId = new StackId(pred2.getValue().toString(), pred1.getValue().toString());
    }

    Map<String, UpgradePack> packs = s_ambariMetaInfo.get().getUpgradePacks(
        stackId.getStackName(), stackId.getStackVersion());

    Set<String> stackIds = new HashSet<>();

    for (Entry<String, UpgradePack> entry : packs.entrySet()) {
      UpgradePack pack = entry.getValue();
      String packStack = pack.getTargetStack();
      if (null == packStack || !packStack.equals(stackId.toString())) {
        stackIds.add(packStack);
      }
    }

    // !!! use the one passed in, it already includes the one of interest
    List<Predicate> usable = new ArrayList<>();
    usable.add(predicate);

    // !!! add predicate for each of the compatible stacks as found by the upgrade packs
    for (String requiredStack : stackIds) {
      StackId targetStack = new StackId(requiredStack);
      Predicate p = new PredicateBuilder().property(REPOSITORY_VERSION_STACK_NAME_PROPERTY_ID).equals(targetStack.getStackName())
          .and().property(REPOSITORY_VERSION_STACK_VERSION_PROPERTY_ID).equals(targetStack.getStackVersion()).toPredicate();
      usable.add(p);
    }

    // !!! add the stack that is used to find compatible versions for
    Predicate p = new PredicateBuilder().property(REPOSITORY_STACK_VALUE).equals(stackId.toString()).toPredicate();
    usable.add(p);

    p = new OrPredicate(usable.toArray(new Predicate[usable.size()]));

    return p;
  }

}


text:
import fs = require('fs');
import { AzureSpringCloudUnitTests } from './AzureSpringCloudUnitTests';
import { nock } from './mock_utils';
import { CreateNamedDeploymentFailsDeploymentDoesNotAlreadyExist } from './CreateNamedDeploymentFailsDeploymentDoesNotAlreadyExist';
import { CreateNamedDeploymentFailsWhenTwoDeploymentsExist } from './CreateNamedDeploymentFailsWhenTwoDeploymentsExist';
import { DeploymentFailsWithInsufficientDeployments } from './DeploymentFailsWithInsufficientDeployments';
import { DeploymentToStagingSucceeds } from './DeploymentToStagingSucceeds';
import { SetProductionUseStagingFailsWithNoStaging } from './SetProductionUseStagingFailsWithNoStaging';
import { SetProductionUseStagingSucceeds } from './SetProductionUseStagingSucceeds';
import { SetNamedDeploymentFailsWhenDeploymentDoesNotExist } from './SetNamedDeploymentFailsWhenDeploymentDoesNotExist';
import { SetProductionNamedDeploymentSucceeds } from './SetProductionNamedDeploymentSucceeds';
import { DeleteStagingDeploymentTest } from './DeleteStagingDeploymentTest';

describe('Azure Spring Cloud deployment Suite', function () {
    afterEach(() => {
        nock.cleanAll();
    });

    this.timeout(900000);

    // /*************** Unit Tests ***************/
    it('Azure Spring Cloud wrapper behaves according to expectations', AzureSpringCloudUnitTests.testDeploymentNameRetrieval);
    it('Prevents a path traversal attack in the Azure Spring Cloud Resource ID', AzureSpringCloudUnitTests.testDeploymentNameRetrieval);

    /*************** Deployment tests ************/
    it('Correctly errors out when attempting to use staging deployment and no staging deployment exists', DeploymentFailsWithInsufficientDeployments.mochaTest);
    it('Correctly errors out when attempting to create a new deployment, and two deployments already exist.', CreateNamedDeploymentFailsWhenTwoDeploymentsExist.mochaTest);
    it('Correctly errors out deploying to a named deployment with "create new" disabled, and the named deployment does not exist', CreateNamedDeploymentFailsDeploymentDoesNotAlreadyExist.mochaTest);
    it('Correctly deploys to a current staging deployment', DeploymentToStagingSucceeds.mochaTest);

    /*************** Set Production Deployment tests ************/
    it('Correctly errors out when "Use Staging Deployment" is set but no such deployment exists', SetProductionUseStagingFailsWithNoStaging.mochaTest);
    it('Deploys correctly to a staging deployment when "Use Staging Deployment is set', SetProductionUseStagingSucceeds.mochaTest);
    it('Correctly errors out when setting named deployment as production, but the deployment does not exist', SetNamedDeploymentFailsWhenDeploymentDoesNotExist.mochaTestTargetDeploymentDoesNotExist);
    it('Correctly errors out when setting named deployment as production, but the deployment is already production', SetNamedDeploymentFailsWhenDeploymentDoesNotExist.mochaTestTargetDeploymentAlreadyProduction);
    it('Correctly sets a named deployment as production', SetProductionNamedDeploymentSucceeds.mochaTest);

    /********** Delete Deployment ****************/
    it('Correctly errors out when attempting to delete the staging deployment and no such deployment exists', DeploymentFailsWithInsufficientDeployments.mochaTest);
    it('Correctly deletes the staging deployment', DeleteStagingDeploymentTest.mochaTest);
});


text:
(function() {
  "use strict";

  function getHyperlink(cm, data) {
    if (!data)
      return;
    var token = data.token, pos = data.pos;
    var ts = CodeMirror.tern.getServer(cm);
    return {
        open : function() {
          ts.jumpToDef(cm, pos);
        }
    }
  }

  CodeMirror.registerHelper("hyperlink", "javascript", function(cm, data) {
    return getHyperlink(cm, data)
  });
})();


text:
namespace blink {

DOMWindowStorageController::DOMWindowStorageController(LocalDOMWindow& window)
    : Supplement<LocalDOMWindow>(window) {
  window.RegisterEventListenerObserver(this);
}

void DOMWindowStorageController::Trace(Visitor* visitor) const {
  Supplement<LocalDOMWindow>::Trace(visitor);
}

// static
const char DOMWindowStorageController::kSupplementName[] =
    "DOMWindowStorageController";

// static
DOMWindowStorageController& DOMWindowStorageController::From(
    LocalDOMWindow& window) {
  DOMWindowStorageController* controller =
      Supplement<LocalDOMWindow>::From<DOMWindowStorageController>(window);
  if (!controller) {
    controller = MakeGarbageCollected<DOMWindowStorageController>(window);
    ProvideTo(window, controller);
  }
  return *controller;
}

void DOMWindowStorageController::DidAddEventListener(
    LocalDOMWindow* window,
    const AtomicString& event_type) {
  if (event_type == event_type_names::kStorage) {
    // Creating these blink::Storage objects informs the system that we'd like
    // to receive notifications about storage events that might be triggered in
    // other processes. Rather than subscribe to these notifications explicitly,
    // we subscribe to them implicitly to simplify the work done by the system.
    DOMWindowStorage::From(*window).localStorage(IGNORE_EXCEPTION_FOR_TESTING);
    DOMWindowStorage::From(*window).sessionStorage(
        IGNORE_EXCEPTION_FOR_TESTING);
  }
}

}  // namespace blink


text:
struct AutocompleteMatch;
class AutocompleteProvider;
class AutocompleteProviderClient;

// Returns a verbatim match for input.text() with a relevance of
// |verbatim_relevance|. If |verbatim_relevance| is negative then a default
// value is used. If the desired |destination_url| is already known and a
// |history_url_provider| is also provided, use |destination_description| as the
// description. Providing |history_url_provider| also may be more efficient (see
// implementation for details) than the default code path.
// input.text() must not be empty.
AutocompleteMatch VerbatimMatchForURL(
    AutocompleteProvider* provider,
    AutocompleteProviderClient* client,
    const AutocompleteInput& input,
    const GURL& destination_url,
    const std::u16string& destination_description,
    int verbatim_relevance);

// Returns a match representing a navigation to |destination_url|, highlighted
// appropriately against |input|.  |trim_default_scheme| controls whether the
// match's |fill_into_edit| and |contents| should have the scheme (http or
// https only) stripped off, and should not be set to true if the user's
// original input contains the scheme. The default scheme is https if |input|
// is upgraded to https, otherwise it's http.
// NOTES: This does not set the relevance of the returned match, as different
//        callers want different behavior. Callers must set this manually.
//        This function should only be called on the UI thread.
AutocompleteMatch VerbatimMatchForInput(AutocompleteProvider* provider,
                                        AutocompleteProviderClient* client,
                                        const AutocompleteInput& input,
                                        const GURL& destination_url,
                                        bool trim_http);

#endif  // COMPONENTS_OMNIBOX_BROWSER_VERBATIM_MATCH_H_


text:
package org.apache.qpid.jms.meta;

public final class JmsTransactionInfo extends JmsAbstractResource implements Comparable<JmsTransactionInfo> {

    private final JmsSessionId sessionId;
    private final JmsTransactionId transactionId;
    private volatile boolean inDoubt;

    public JmsTransactionInfo(JmsSessionId sessionId, JmsTransactionId transactionId) {
        if (sessionId == null) {
            throw new IllegalArgumentException("Session ID cannot be null");
        }
        if (transactionId == null) {
            throw new IllegalArgumentException("Transaction ID cannot be null");
        }

        this.sessionId = sessionId;
        this.transactionId = transactionId;
    }

    public JmsTransactionInfo copy() {
        return new JmsTransactionInfo(sessionId, transactionId);
    }

    @Override
    public JmsTransactionId getId() {
        return transactionId;
    }

    /**
     * @return the JmsSessionId of the Session that this transaction is owned by.
     */
    public JmsSessionId getSessionId() {
        return this.sessionId;
    }

    /**
     * @return the inDoubt
     */
    public boolean isInDoubt() {
        return inDoubt;
    }

    /**
     * @param inDoubt the inDoubt to set
     */
    public void setInDoubt(boolean inDoubt) {
        this.inDoubt = inDoubt;
    }

    @Override
    public int hashCode() {
        return transactionId.hashCode();
    }

    @Override
    public boolean equals(Object obj) {
        if (this == obj) {
            return true;
        }
        if (obj == null || getClass() != obj.getClass()) {
            return false;
        }

        JmsTransactionInfo other = (JmsTransactionInfo) obj;
        return transactionId.equals(other.transactionId);
    }

    @Override
    public int compareTo(JmsTransactionInfo other) {
        return transactionId.compareTo(other.transactionId);
    }

    @Override
    public String toString() {
        return "JmsTransactionInfo { " + this.transactionId + " }";
    }

    @Override
    public void visit(JmsResourceVistor visitor) throws Exception {
        visitor.processTransactionInfo(this);
    }
}


text: A basic application framework for Ruby


text:
<!DOCTYPE html>

    <meta charset="utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <title>Steve Lang - Profile - PyGotham 2014</title>

    <meta name="viewport" content="width=device-width" /><meta charset="utf-8">

  <meta name="msapplication-TileColor" content="#79d6db">
  <meta name="msapplication-TileImage" content="/static/img/metro-icon.png">
  <link rel="apple-touch-icon-precomposed" href="../../static/img/apple-touch-icon.png">
  <link rel="icon" href="../../static/img/favicon.png">

    <link rel="stylesheet" href="../../static/gen/css/foundation.min.css%3F897a9ed3.css">

  <link href="http://fonts.googleapis.com/css?family=Lato:400,700" rel="stylesheet">

    <link rel="stylesheet" href="../../static/gen/css/screen.min.css%3F91312ff0.css" media="screen, projection">

    <link rel="stylesheet" href="../../static/gen/css/print.min.css%3Fd41d8cd9.css" media="print">

PyGotham 2014

                Menu

                  About

FAQ

Code of Conduct

Privacy Policy

                    Events

Talk List

Talk Schedule

                          Unnamed Social Event

                  Speaking

Call for Proposals

Venue

                  Sponsors

Sponsors

Sponsorship Prospectus

Big Apple Py

                  Registration

Information

Register

Steve Lang

Steve Lang has 25 Years in scientific/engineering software support, consulting and development. He became passionate about Python in the mid 2000's and led the development of a Python interface to the IMSL analytic and statistical libraries while at Visual Numerics (now Rogue Wave Software). He is now involved in the video game industry working with big data and Python in a new Game Analytics Team at Activision Central Studios.  Activision is headquartered in Santa Monica , CA but Steve works primarily in Boulder Colorado with a growing Analytic Services group.

Presentations

Python in the Video Game Industry – Best Practices and Finding  Cheaters

PyGotham 2014

            PyGotham 2014 is a production of Big Apple Py.

            Design by Sonja Leix. Hosting provided by Rackspace.

            Questions? Comments? Please contact organizers@pygotham.org.