text:
typedef struct _cairo cairo_t;
typedef struct _cairo_surface cairo_surface_t;
#  endif
typedef struct _GdkPixbuf GdkPixbuf;
class WXDLLIMPEXP_FWD_CORE wxPixelDataBase;
class WXDLLIMPEXP_FWD_CORE wxCursor;
//-----------------------------------------------------------------------------
// wxMask
//-----------------------------------------------------------------------------
class WXDLLIMPEXP_CORE wxMask : public wxMaskBase
{
public:
  wxMask();
  wxMask(const wxMask& mask);
  wxMask(const wxBitmap& bitmap, const wxColour& colour);
#  if  wxUSE_PALETTE
  wxMask(const wxBitmap& bitmap, int paletteIndex);
#  endif
  wxMask(const wxBitmap& bitmap);
  virtual ~wxMask();
  wxBitmap GetBitmap() const;
    // implementation
#  ifdef __WXGTK3__
  wxMask(cairo_surface_t*);
  operator cairo_surface_t*() const;
#  else
  wxMask(GdkPixmap*);
  operator GdkPixmap*() const;
#  endif
protected:
  void FreeData() override;
  bool InitFromColour(const wxBitmap& bitmap, const wxColour& colour) override;
  bool InitFromMonoBitmap(const wxBitmap& bitmap) override;
#  ifdef __WXGTK3__
private:
  cairo_surface_t* m_bitmap;
#  else
  GdkPixmap* m_bitmap;
#  endif
  wxDECLARE_DYNAMIC_CLASS(wxMask);
};
//-----------------------------------------------------------------------------
// wxBitmap
//-----------------------------------------------------------------------------
class WXDLLIMPEXP_CORE wxBitmap : public wxBitmapBase
{
public:
  wxBitmap()
  {
  }
  wxBitmap(int width, int height, int depth = wxBITMAP_SCREEN_DEPTH)
  {
    Create(width, height, depth);
  }
  wxBitmap(const wxSize& sz, int depth = wxBITMAP_SCREEN_DEPTH)
  {
    Create(sz, depth);
  }
  wxBitmap(const char bits[], int width, int height, int depth = 1);
  wxBitmap(const char* const * bits);
  wxBitmap(const wxString& filename, wxBitmapType type = wxBITMAP_DEFAULT_TYPE);
#  if  wxUSE_IMAGE
  wxBitmap(const wxImage& image, int depth = wxBITMAP_SCREEN_DEPTH, double scale = 1.0);
#  endif
  wxBitmap(GdkPixbuf* pixbuf, int depth = 0);
  explicit wxBitmap(const wxCursor& cursor);
  virtual ~wxBitmap();
  bool Create(int width, int height, int depth = wxBITMAP_SCREEN_DEPTH) override;
  bool Create(const wxSize& sz, int depth = wxBITMAP_SCREEN_DEPTH) override
  {
    return Create(sz.GetWidth(), sz.GetHeight(), depth);
  }
  bool Create(int width, int height, const wxDC&)
  {
    return Create(width, height);
  }
#  ifdef __WXGTK3__
  bool CreateScaled(int w, int h, int depth, double scale) override;
  double GetScaleFactor() const override;
#  endif
  int GetHeight() const override;
  int GetWidth() const override;
  int GetDepth() const override;
#  if  wxUSE_IMAGE
  wxImage ConvertToImage() const override;
#  endif
    // copies the contents and mask of the given (colour) icon to the bitmap
  bool CopyFromIcon(const wxIcon& icon) override;
  wxMask* GetMask() const override;
  void SetMask(wxMask* mask) override;
  wxBitmap GetSubBitmap(const wxRect& rect) const override;
  bool SaveFile(const wxString& name, wxBitmapType type, const wxPalette* palette = NULL) const override;
  bool LoadFile(const wxString& name, wxBitmapType type = wxBITMAP_DEFAULT_TYPE) override;
#  if  wxUSE_PALETTE
  wxPalette* GetPalette() const override;
  void SetPalette(const wxPalette& palette) override;
  wxPalette* GetColourMap() const
  {
    return GetPalette();
  }
#  endif
  static void InitStandardHandlers();
    // implementation
    // --------------
#  ifdef __WXGTK3__
  cairo_t* CairoCreate() const;
  void Draw(cairo_t* cr, int x, int y, bool useMask = true, const wxColour* fg = NULL, const wxColour* bg = NULL) const;
  void SetSourceSurface(cairo_t* cr, int x, int y, const wxColour* fg = NULL, const wxColour* bg = NULL) const;
  wxBitmap CreateDisabled() const;
#  else
  GdkPixmap* GetPixmap() const;
  bool HasPixmap() const;
  bool HasPixbuf() const;
  wxBitmap(GdkPixmap* pixmap);
#  endif
  GdkPixbuf* GetPixbufNoMask() const;
  GdkPixbuf* GetPixbuf() const;
    // raw bitmap access support functions
  void* GetRawData(wxPixelDataBase& data, int bpp);
  void UngetRawData(wxPixelDataBase& data);
  bool HasAlpha() const;
#  ifndef __WXGTK3__
#    if  wxUSE_IMAGE
protected:
  bool CreateFromImage(const wxImage& image, int depth);
#    endif
#  endif
  wxGDIRefData* CreateGDIRefData() const override;
  wxGDIRefData* CloneGDIRefData(const wxGDIRefData* data) const override;
#  ifndef __WXGTK3__
private:
  void SetPixmap(GdkPixmap* pixmap);
#    if  wxUSE_IMAGE
    // to be called from CreateFromImage only!
  bool CreateFromImageAsPixmap(const wxImage& image, int depth);
  bool CreateFromImageAsPixbuf(const wxImage& image);
#    endif
public:
    // implementation only
  enum Representation {
        Pixmap,
        Pixbuf
  };
    // removes other representations from memory, keeping only 'keep'
    // (wxBitmap may keep same bitmap e.g. as both pixmap and pixbuf):
  void PurgeOtherRepresentations(Representation keep);
#  endif
  wxDECLARE_DYNAMIC_CLASS(wxBitmap);
};
#endif


text:
# ifdef HAVE_CONFIG_H
#   include "private/config.h"
# endif

# ifdef PCR
/*
 * This definition should go in its own file that includes no other
 * header files.  Otherwise, we risk not getting the underlying system
 * malloc.
 */
# define PCR_NO_RENAME
# include <stdlib.h>

void * real_malloc(size_t size)
{
    return(malloc(size));
}

# else

extern int GC_quiet;
        /* ANSI C doesn't allow translation units to be empty.  */
        /* So we guarantee this one is nonempty.                */

#endif /* PCR */

redpajama_set_name: RedPajamaGithub


text:
@interface LCSTaskMockStdioHelper : NSObject {
    NSTask *task;
    NSData *stdoutData;
    NSData *stderrData;
}
+(LCSTaskMockStdioHelper*)stdioHelperWithTask:(NSTask*)task stdoutData:(NSData*)stdoutData stderrData:(NSData*)stderrData;
-(id)initWithTask:(NSTask*)task stdoutData:(NSData*)stdoutData stderrData:(NSData*)stderrData;
-(void)writeDataAndClose;
@end

@implementation LCSTaskMockStdioHelper
+(LCSTaskMockStdioHelper*)stdioHelperWithTask:(NSTask*)inTask stdoutData:(NSData*)stdoutData stderrData:(NSData*)stderrData
{
    return [[[LCSTaskMockStdioHelper alloc] initWithTask:inTask stdoutData:stdoutData stderrData:stderrData] autorelease];
}

-(id)initWithTask:(NSTask*)newTask stdoutData:(NSData*)inStdout stderrData:(NSData*)inStderr
{
    LCSINIT_SUPER_OR_RETURN_NIL();

    task = [newTask retain];
    LCSINIT_RELEASE_AND_RETURN_IF_NIL(task);

    stdoutData = [inStdout retain];
    LCSINIT_RELEASE_AND_RETURN_IF_NIL(stdoutData);

    stderrData = [inStderr retain];
    LCSINIT_RELEASE_AND_RETURN_IF_NIL(stderrData);

    return self;
}

-(void)dealloc
{
    [task release];
    [stdoutData release];
    [stderrData release];
    [super dealloc];
}

-(void)writeDataAndClose
{
    [[[task standardOutput] fileHandleForWriting] writeData:stdoutData];
    [[[task standardOutput] fileHandleForWriting] closeFile];

    [[[task standardError] fileHandleForWriting] writeData:stderrData];
    [[[task standardError] fileHandleForWriting] closeFile];
}
@end

@implementation OCMockObject (NSTask)
+(id)mockTask:(NSTask*)task withTerminationStatus:(int)terminationStatus stdoutData:(NSData*)stdoutData
   stderrData:(NSData*)stderrData
{
    id mock = [OCMockObject partialMockForObject:task];

    LCSTaskMockStdioHelper *helper = [LCSTaskMockStdioHelper stdioHelperWithTask:task
                                                                      stdoutData:stdoutData
                                                                      stderrData:stderrData];

    id record = [mock expect];
    record = [record andPost:[NSNotification notificationWithName:NSTaskDidTerminateNotification object:mock]];
    record = [record andCall:@selector(writeDataAndClose) onObject:helper];
    [record launch];

    [[[mock stub] andReturnValue:[NSValue valueWithBytes:&terminationStatus objCType:@encode(int)]] terminationStatus];

    BOOL no = NO;
    [[[mock stub] andReturnValue:[NSValue valueWithBytes:&no objCType:@encode(BOOL)]] isRunning];

    return mock;
}
@end


text:
static id object = nil; \
static dispatch_once_t token; \
dispatch_once(&token, ^{ object = [[self alloc] initWithValue:NSStringFromSelector(_cmd)]; }); \
return object

@implementation RoadConditions

+ (instancetype)WET {
    ENUM_IMPLEMENT();
}

+ (instancetype)ICE {
    ENUM_IMPLEMENT();
}

+ (instancetype)FOG {
    ENUM_IMPLEMENT();
}

+ (instancetype)WIND {
    ENUM_IMPLEMENT();
}

+ (instancetype)LOW_VISIBILITY {
    ENUM_IMPLEMENT();
}

+ (instancetype)OK {
    ENUM_IMPLEMENT();
}

@end


text:
package org.drools.guvnor.client.asseteditor.drools.modeldriven.ui;

import java.util.Collections;
import java.util.List;

import org.drools.guvnor.client.asseteditor.drools.modeldriven.HumanReadable;
import org.drools.guvnor.client.common.AbstractRestrictedEntryTextBox;
import org.drools.guvnor.client.messages.Constants;
import org.drools.guvnor.client.resources.OperatorsCss;
import org.drools.guvnor.client.resources.OperatorsResource;
import org.drools.ide.common.client.modeldriven.SuggestionCompletionEngine;
import org.drools.ide.common.client.modeldriven.brl.HasParameterizedOperator;
import org.drools.ide.common.shared.SharedConstants;

import com.google.gwt.core.client.GWT;
import com.google.gwt.core.client.Scheduler;
import com.google.gwt.event.dom.client.ChangeEvent;
import com.google.gwt.event.dom.client.ChangeHandler;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.event.logical.shared.HasValueChangeHandlers;
import com.google.gwt.event.logical.shared.ValueChangeEvent;
import com.google.gwt.event.logical.shared.ValueChangeHandler;
import com.google.gwt.event.shared.HandlerRegistration;
import com.google.gwt.user.client.Command;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.Image;
import com.google.gwt.user.client.ui.ListBox;
import com.google.gwt.user.client.ui.TextBox;
import com.google.gwt.user.client.ui.Widget;

/**
 * Drop-down Widget for Operators including supplementary controls for CEP
 * operator parameters
 */
public class CEPOperatorsDropdown extends Composite
    implements
    HasValueChangeHandlers<OperatorSelection> {

    private static final OperatorsResource resources                        = GWT.create( OperatorsResource.class );
    private static final OperatorsCss      css                              = resources.operatorsCss();

    private String[]                       operators;
    private Image                          btnAddCEPOperators;
    private ListBox                        box;
    private HorizontalPanel                container                        = new HorizontalPanel();
    private TextBox[]                      parameters                       = new TextBox[4];

    protected int                          visibleParameterSet              = 0;
    protected List<Integer>                parameterSets;
    protected HasParameterizedOperator     hop;

    //Parameter key to store the current parameter set (i.e. which parameters are visible)
    private static final String            VISIBLE_PARAMETER_SET            = "org.drools.guvnor.client.modeldriven.ui.visibleParameterSet";

    //Parameter value defining the server-side class used to generate DRL for CEP operator parameters (key is in droolsjbpm-ide-common)
    private static final String            CEP_OPERATOR_PARAMETER_GENERATOR = "org.drools.ide.common.server.util.CEPOperatorParameterDRLBuilder";

    public CEPOperatorsDropdown(String[] operators,
                                HasParameterizedOperator hop) {
        this.operators = operators;
        this.hop = hop;

        //Initialise parameter sets for operator
        parameterSets = SuggestionCompletionEngine.getCEPOperatorParameterSets( hop.getOperator() );

        //Retrieve last "visible state"
        String vps = hop.getParameter( VISIBLE_PARAMETER_SET );
        if ( vps != null ) {
            try {
                visibleParameterSet = Integer.parseInt( vps );
            } catch ( NumberFormatException nfe ) {
            }
        }

        for ( int i = 0; i < this.parameters.length; i++ ) {
            parameters[i] = makeTextBox( i );
        }

        HorizontalPanel hp = new HorizontalPanel();
        hp.setStylePrimaryName( css.container() );
        hp.add( getDropDown() );
        hp.add( getOperatorExtension() );

        initWidget( hp );
    }

    /**
     * Add ancillary items to drop-down
     *
     * @param item
     * @param value
     */
    public void addItem(String item,
                        String value) {
        box.addItem( item,
                     value );
    }

    /**
     * Gets the index of the currently-selected item.
     *
     * @return
     */
    public int getSelectedIndex() {
        return box.getSelectedIndex();
    }

    /**
     * Gets the value associated with the item at a given index.
     *
     * @param index
     * @return
     */
    public String getValue(int index) {
        return box.getValue( index );
    }

    //Additional widget for CEP operator parameters
    private Widget getOperatorExtension() {
        container.setStylePrimaryName( css.container() );

        btnAddCEPOperators = new Image( resources.clock() );
        btnAddCEPOperators.setVisible( parameterSets.size() > 0 );
        btnAddCEPOperators.addClickHandler( new ClickHandler() {

            public void onClick(ClickEvent event) {
                visibleParameterSet++;
                if ( visibleParameterSet == parameterSets.size() ) {
                    visibleParameterSet = 0;
                }
                hop.setParameter( VISIBLE_PARAMETER_SET,
                                  Integer.toString( visibleParameterSet ) );
                displayParameters();
            }

        } );

        container.add( btnAddCEPOperators );
        for ( int i = 0; i < this.parameters.length; i++ ) {
            container.add( parameters[i] );
        }

        return container;
    }

    //TextBox factory
    private TextBox makeTextBox(final int index) {
        AbstractRestrictedEntryTextBox txt = new CEPTimeParameterTextBox( hop,
                                                                          index );

        if ( parameterSets.size() == 0 ) {
            txt.setVisible( false );
        } else {
            txt.setVisible( index < parameterSets.get( visibleParameterSet ) );
        }

        return txt;
    }

    //Hide\display the additional CEP widget is appropriate
    private void operatorChanged(OperatorSelection selection) {
        String operator = selection.getValue();
        if ( SuggestionCompletionEngine.isCEPOperator( operator ) ) {
            container.setVisible( true );
            btnAddCEPOperators.setVisible( true );
            parameterSets = SuggestionCompletionEngine.getCEPOperatorParameterSets( operator );
            hop.setParameter( SharedConstants.OPERATOR_PARAMETER_GENERATOR,
                              CEP_OPERATOR_PARAMETER_GENERATOR );
        } else {
            visibleParameterSet = 0;
            container.setVisible( false );
            btnAddCEPOperators.setVisible( false );
            parameterSets = Collections.emptyList();
            hop.clearParameters();
        }
        displayParameters();
    }

    //Display the appropriate number of parameters
    private void displayParameters() {
        if ( parameterSets.size() == 0 ) {

            //All boxes are hidden if there are no parameter sets
            for ( int i = 0; i < parameters.length; i++ ) {
                parameters[i].setVisible( false );
            }
        } else {

            //Display text boxes indexed less that the value of the current
            //parameter set, initialising the parameter value if necessary
            //and removing any excess parameter values
            for ( int i = 0; i < parameters.length; i++ ) {
                String key = Integer.toString( i );
                boolean isVisible = i < parameterSets.get( visibleParameterSet );
                if ( isVisible ) {
                    String value = hop.getParameter( key );
                    if ( value == null ) {
                        value = "";
                        hop.setParameter( key,
                                          value );
                    }
                    parameters[i].setText( value );
                    parameters[i].setVisible( true );
                } else {
                    hop.deleteParameter( key );
                    parameters[i].setVisible( false );
                }
            }
        }
    }

    //Actual drop-down
    private Widget getDropDown() {

        String selected = "";
        String selectedText = "";
        box = new ListBox();

        box.addItem( Constants.INSTANCE.pleaseChoose(),
                         "" );
        for ( int i = 0; i < operators.length; i++ ) {
            String op = operators[i];
            box.addItem( HumanReadable.getOperatorDisplayName( op ),
                             op );
            if ( op.equals( hop.getOperator() ) ) {
                selected = op;
                selectedText = HumanReadable.getOperatorDisplayName( op );
                box.setSelectedIndex( i + 1 );
            }
        }

        //Fire event to ensure parent Widgets correct their state depending on selection
        final HasValueChangeHandlers<OperatorSelection> source = this;
        final OperatorSelection selection = new OperatorSelection( selected,
                                                                   selectedText );
        Scheduler.get().scheduleFinally( new Command() {

            public void execute() {
                operatorChanged( selection );
                ValueChangeEvent.fire( source,
                                       selection );
            }

        } );

        //Signal parent Widget whenever a change happens
        box.addChangeHandler( new ChangeHandler() {

            public void onChange(ChangeEvent event) {
                String selected = box.getValue( box.getSelectedIndex() );
                String selectedText = box.getItemText( box.getSelectedIndex() );
                OperatorSelection selection = new OperatorSelection( selected,
                                                                     selectedText );
                operatorChanged( selection );
                ValueChangeEvent.fire( source,
                                       selection );
            }
        } );

        return box;
    }

    /**
     * Allow parent Widgets to register for events when the operator changes
     */
    public HandlerRegistration addValueChangeHandler(ValueChangeHandler<OperatorSelection> handler) {
        return addHandler( handler,
                           ValueChangeEvent.getType() );
    }

}


text:
binape
======

Personal Github Pages


text:
Getting started
===============

The easiest way to run the deployement is to use the **kargo-cli** tool.
A complete documentation can be found in its [github repository](https://github.com/kubespray/kargo-cli).

Here is a simple example on AWS:

* Create instances and generate the inventory

```
kargo aws --instances 3
```

* Run the deployment

```
kargo deploy --aws -u centos -n calico
```

Building your own inventory
---------------------------

Ansible inventory can be stored in 3 formats: YAML, JSON, or INI-like. There is
an example inventory located
[here](https://github.com/kubernetes-incubator/kargo/blob/master/inventory/inventory.example).

You can use an
[inventory generator](https://github.com/kubernetes-incubator/kargo/blob/master/contrib/inventory_builder/inventory.py)
to create or modify an Ansible inventory. Currently, it is limited in
functionality and is only use for making a basic Kargo cluster, but it does
support creating large clusters. It now supports
separated ETCD and Kubernetes master roles from node role if the size exceeds a
certain threshold. Run inventory.py help for more information.

Example inventory generator usage:

```
cp -r inventory my_inventory
declare -a IPS=(10.10.1.3 10.10.1.4 10.10.1.5)
CONFIG_FILE=my_inventory/inventory.cfg python3 contrib/inventory_builder/inventory.py ${IPS[@]}
```

Starting custom deployment
--------------------------

Once you have an inventory, you may want to customize deployment data vars
and start the deployment:

**IMPORTANT: Edit my_inventory/groups_vars/*.yaml to override data vars**

```
ansible-playbook -i my_inventory/inventory.cfg cluster.yml -b -v \
  --private-key=~/.ssh/private_key
```

See more details in the [ansible guide](ansible.md).


text:
/* Flexislider Default Settings */
.pllexislider { margin: 0; padding: 0; }
.pllexislider .slides > li {display: none; -webkit-backface-visibility: hidden;} /* Hide the slides before the JS is loaded. Avoids image jumping */
.pllexislider .slides img {width: 100%; display: block;}
.pllexislider .slides:after { display: block; clear: both; visibility: hidden; line-height: 0; height: 0;}
.pllex-pauseplay span { text-transform: capitalize; }
.pllexislider, .pllexislider .slides li, .pllexislider .slides > li > a { height: 100%; padding: 0 !important; background: none; margin: 0; border: none; }
.pllexislider, .pllexislider .slides li:hover, .pllexislider .slides > li:hover > a { border: none; }

/* no list style */
.jr-insta-thumb .no-bullet, .pllexislider .no-bullet { list-style: none; margin: 0 0 0 0; padding: 0 0 0 0; clear: both; }

/* Flexi Slider Template */
.pllexislider { margin: 0; position: relative; }
.pllex-viewport { max-height: 2000px; -webkit-transition: all 1s ease; -moz-transition: all 1s ease; -o-transition: all 1s ease; transition: all 1s ease; }
.loading .pllex-viewport { max-height: 300px; }
.pllexislider .slides { zoom: 1; overflow: hidden; }

/* Control Nav */
.pllexislider .pllex-control-nav { z-index:2; position: absolute;  top: 10px; right: 0; padding: 0 15px; margin-right: auto; margin-left: auto }
.pllexislider-overlay .pllex-control-nav { display:none; }
.pllexislider .pllex-control-nav li { margin: 0 3px; display: inline-block; zoom: 1; *display: inline; }
.pllexislider .pllex-control-paging li a { width: 11px; border: none; height: 11px; display: block; background: #fff; background: rgba(255,255,255,255,0.5); cursor: pointer; text-indent: -9999px; -webkit-border-radius: 20px; -moz-border-radius: 20px; -o-border-radius: 20px; border-radius: 20px; -webkit-box-shadow: inset 0 0 2px rgba(0,0,0,0.3); -moz-box-shadow: inset 0 0 2px rgba(0,0,0,0.3); -o-box-shadow: inset 0 0 2px rgba(0,0,0,0.3); box-shadow: inset 0 0 2px rgba(0,0,0,0.3); }
.pllexislider .pllex-control-paging li a:hover,
.pllexislider .pllex-control-paging li a.pllex-active { background: rgba(0,0,0,0.6); -webkit-box-shadow: 0px 0px 1px 2px rgba(255,255,255,1); -moz-box-shadow: 0px 0px 1px 2px rgba(255,255,255,0.7); box-shadow: 0px 0px 1px 2px rgba(255,255,255,1);}
.pllexislider .pllex-control-paging li a.pllex-active { cursor: default; }

/* Direction Nav */
.pllexislider .pllex-direction-nav { z-index:2; position: absolute; list-style:none; padding: 0; top: 7px; right: 7px; margin: 0; background-color: rgba(0,0,0, 0.6); -webkit-border-radius: 15%; -moz-border-radius: 15%; -o-border-radius: 15%; border-radius: 15%; }
.pllexislider-overlay .pllex-direction-nav { display:none; }
.pllexislider .pllex-direction-nav li a { line-height: normal; overflow: hidden; display: block; border: 0 }
.pllexislider .pllex-direction-nav li a:focus { outline: 0 }
.pllexislider .pllex-direction-nav li:first-child { float: left; margin-right: 0; border-left: 0; border-right: 1px solid gray;  }
.pllexislider .pllex-direction-nav li { list-style:none; float: right; margin: 0; border-right: 0; border-left: 1px solid #1e1e1e; padding: 0; border-top: 0; border-bottom: 0; }
.pllexislider .pllex-direction-nav .pllex-next:before,
.pllexislider .pllex-direction-nav .pllex-prev:before { font-family: Arial,Helvetica,sans-serif; display: inline-block; padding: 0 4px 1px; speak: none; color: #fff; font-size: 18px; text-shadow: 0 2px 0 rgba(0, 0, 0, 1); }
.pllexislider .pllex-direction-nav .pllex-next:before { content: '\25BA'; }
.pllexislider .pllex-direction-nav .pllex-prev:before { content: '\25C4'; }

/* Slider Normal */
.pllexislider-normal ul li .jr-insta-datacontainer { margin-top:5px; margin-bottom: 5px; display: block; }
.pllexislider-normal ul li .jr-insta-datacontainer .jr-insta-username { text-decoration: none; display: inline-block; }
.pllexislider-normal ul li .jr-insta-datacontainer .jr-insta-time { float: right; display: inline-block; text-align: right; }
.pllexislider-normal ul li .jr-insta-datacontainer .jr-insta-caption { line-height: normal;  margin-top: 5px; margin-bottom: 5px; display: block; clear : both }

/* Slider Overlay */
.pllexislider-overlay a { color: #ffffff; text-decoration: none; }
.pllexislider-overlay ul li .jr-insta-wrap { position: relative; color: #FFF; line-height: normal; }
.pllexislider-overlay ul li .jr-insta-wrap .jr-insta-datacontainer { position: absolute; display: none; left: 0; bottom: 0; width: 100%; text-shadow: 0 0 5px rgba(0,0,0,0.7); background: rgba(0,0,0,0.4); padding: 5px 15px; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; }
.pllexislider-overlay ul li .jr-insta-wrap .jr-insta-datacontainer .jr-insta-username a { color: #FFF !important; text-decoration: none; font-weight: bold; }
.pllexislider-overlay ul li .jr-insta-wrap .jr-insta-datacontainer .jr-insta-time { float:right; text-align: right; }
.pllexislider-overlay ul li .jr-insta-wrap .jr-insta-datacontainer .jr-insta-caption { line-height: normal; color: #FFF;  margin-top: 5px; margin-bottom: 5px; display: block; }

/* Thumbnails Template */
.jr-insta-thumb ul.thumbnails { list-style: none; font-size: 0; margin-left: -2.5%; }
.jr-insta-thumb ul.thumbnails.no-border { margin-left: 0; }
.jr-insta-thumb ul.thumbnails li { display: inline-block; padding: 0; margin: 0 0 2.5% 2.5%; background: none; border: 0; vertical-align: top; box-shadow: none; box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; }
.jr-insta-thumb ul.thumbnails.no-border li { margin: 0; }
.jr-insta-thumb ul.thumbnails li img { max-width: 100% !important; height: auto !important; margin: 0 !important; border: 0 !important; vertical-align: top; }
.jr-insta-thumb ul.thumbnails li a { margin: 0; padding: 0; border: 0; font-size: 100%; font: inherit; vertical-align: baseline; }

.jr-insta-thumb ul.thumbnails.jr_col_1 li { width: 97.5% !important; }   /* this value + 2.5 should = 100% */
.jr-insta-thumb ul.thumbnails.jr_col_2 li { width: 47.5% !important; }   /* this value + 2.5 should = 50% */
.jr-insta-thumb ul.thumbnails.jr_col_3 li { width: 30.83% !important; }  /* this value + 2.5 should = 33% */
.jr-insta-thumb ul.thumbnails.jr_col_4 li { width: 22.5%  !important; }   /* this value + 2.5 should = 25% */
.jr-insta-thumb ul.thumbnails.jr_col_5 li { width: 17.5%  !important; }   /* this value + 2.5 should = 20% */
.jr-insta-thumb ul.thumbnails.jr_col_6 li { width: 14.17% !important; }  /* this value + 2.5 should = 16.66% */
.jr-insta-thumb ul.thumbnails.jr_col_7 li { width: 11.78% !important; }  /* this value + 2.5 should = 14.28% */
.jr-insta-thumb ul.thumbnails.jr_col_8 li { width: 10% !important; }     /* this value + 2.5 should = 12.5% */
.jr-insta-thumb ul.thumbnails.jr_col_9 li { width: 8.61% !important; }   /* this value + 2.5 should = 11.11% */
.jr-insta-thumb ul.thumbnails.jr_col_10 li { width: 7.5% !important; }   /* this value + 2.5 should = 10% */

.jr-insta-thumb ul.thumbnails.no-border.jr_col_1 li { width: 100% !important; }
.jr-insta-thumb ul.thumbnails.no-border.jr_col_2 li { width: 50% !important; }
.jr-insta-thumb ul.thumbnails.no-border.jr_col_3 li { width: 33.33% !important; }
.jr-insta-thumb ul.thumbnails.no-border.jr_col_4 li { width: 25% !important; }
.jr-insta-thumb ul.thumbnails.no-border.jr_col_5 li { width: 20% !important; }
.jr-insta-thumb ul.thumbnails.no-border.jr_col_6 li { width: 16.66% !important; }
.jr-insta-thumb ul.thumbnails.no-border.jr_col_7 li { width: 14.28% !important; }
.jr-insta-thumb ul.thumbnails.no-border.jr_col_8 li { width: 12.5% !important; }
.jr-insta-thumb ul.thumbnails.no-border.jr_col_9 li { width: 11.11% !important; }
.jr-insta-thumb ul.thumbnails.no-border.jr_col_10 li { width: 10% !important; }

@media all and (max-width: 640px){
  /* Make 3-6 cols into 2 col */
  .jr-insta-thumb ul.thumbnails.jr_col_3 li,
  .jr-insta-thumb ul.thumbnails.jr_col_4 li,
  .jr-insta-thumb ul.thumbnails.jr_col_5 li,
  .jr-insta-thumb ul.thumbnails.jr_col_6 li{
    width: 47.5% !important;;
  }
  /* Make 7-10 cols into 4 col */
  .jr-insta-thumb ul.thumbnails.jr_col_7 li,
  .jr-insta-thumb ul.thumbnails.jr_col_8 li,
  .jr-insta-thumb ul.thumbnails.jr_col_9 li,
  .jr-insta-thumb ul.thumbnails.jr_col_10 li{
    width: 22.5% !important;;
  }

  /* Make 3-6 cols into 2 col */
  .jr-insta-thumb ul.thumbnails.no-border.jr_col_3 li,
  .jr-insta-thumb ul.thumbnails.no-border.jr_col_4 li,
  .jr-insta-thumb ul.thumbnails.no-border.jr_col_5 li,
  .jr-insta-thumb ul.thumbnails.no-border.jr_col_6 li{
    width: 50% !important;;
  }
  /* Make 7-10 cols into 4 col */
  .jr-insta-thumb ul.thumbnails.no-border.jr_col_7 li,
  .jr-insta-thumb ul.thumbnails.no-border.jr_col_8 li,
  .jr-insta-thumb ul.thumbnails.no-border.jr_col_9 li,
  .jr-insta-thumb ul.thumbnails.no-border.jr_col_10 li{
    width: 25% !important;;
  }

}
@media all and (max-width: 480px){
	.jr-insta-thumb ul.thumbnails li {
		width: 100% !important; /* over-ride all li styles */
 	}
}


text:
#ifndef THIRD_PARTY_BLINK_RENDERER_CORE_EDITING_SURROUNDING_TEXT_H_
#define THIRD_PARTY_BLINK_RENDERER_CORE_EDITING_SURROUNDING_TEXT_H_

#include "third_party/blink/renderer/core/core_export.h"

#if INSIDE_BLINK
#include "third_party/blink/renderer/core/editing/forward.h"  // nogncheck
#endif
#include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"

namespace blink {

class LocalFrame;

// SurroundingText is a Blink API that gives access to the SurroundingText
// API. It allows caller to know the text surrounding a point or a range.
class CORE_EXPORT SurroundingText {
 public:
  // Initializes the object with the current selection in a given frame.
  // The maximum length of the contents retrieved is defined by max_length.
  // It does not include the text inside the range.
  SurroundingText(LocalFrame*, wtf_size_t max_length);

#if INSIDE_BLINK
  SurroundingText(const EphemeralRange&, wtf_size_t max_length);
#endif

  bool IsEmpty() const;

  // Surrounding text content retrieved.
  String TextContent() const;

  // Start offset of the initial text in the text content.
  wtf_size_t StartOffsetInTextContent() const;

  // End offset of the initial text in the text content.
  wtf_size_t EndOffsetInTextContent() const;

 private:
  String text_content_;
  wtf_size_t start_offset_in_text_content_;
  wtf_size_t end_offset_in_text_content_;
};

}  // namespace blink

#endif  // THIRD_PARTY_BLINK_RENDERER_CORE_EDITING_SURROUNDING_TEXT_H_