text:
enum ESteamControllerPad
{
	k_ESteamControllerPad_Left,
	k_ESteamControllerPad_Right
};
#endif

enum EControllerSource
{
	k_EControllerSource_None,
	k_EControllerSource_LeftTrackpad,
	k_EControllerSource_RightTrackpad,
	k_EControllerSource_Joystick,
	k_EControllerSource_ABXY,
	k_EControllerSource_Switch,
	k_EControllerSource_LeftTrigger,
	k_EControllerSource_RightTrigger,
	k_EControllerSource_LeftBumper,
	k_EControllerSource_RightBumper,
	k_EControllerSource_Gyro,
	k_EControllerSource_CenterTrackpad,		// PS4
	k_EControllerSource_RightJoystick,		// Traditional Controllers
	k_EControllerSource_DPad,				// Traditional Controllers
	k_EControllerSource_Key,                // Keyboards with scan codes - Unused
	k_EControllerSource_Mouse,              // Traditional mouse - Unused
	k_EControllerSource_LeftGyro,			// Secondary Gyro - Switch - Unused
	k_EControllerSource_Count
};

enum EControllerSourceMode
{
	k_EControllerSourceMode_None,
	k_EControllerSourceMode_Dpad,
	k_EControllerSourceMode_Buttons,
	k_EControllerSourceMode_FourButtons,
	k_EControllerSourceMode_AbsoluteMouse,
	k_EControllerSourceMode_RelativeMouse,
	k_EControllerSourceMode_JoystickMove,
	k_EControllerSourceMode_JoystickMouse,
	k_EControllerSourceMode_JoystickCamera,
	k_EControllerSourceMode_ScrollWheel,
	k_EControllerSourceMode_Trigger,
	k_EControllerSourceMode_TouchMenu,
	k_EControllerSourceMode_MouseJoystick,
	k_EControllerSourceMode_MouseRegion,
	k_EControllerSourceMode_RadialMenu,
	k_EControllerSourceMode_SingleButton,
	k_EControllerSourceMode_Switches
};

// Note: Please do not use action origins as a way to identify controller types. There is no
// guarantee that they will be added in a contiguous manner - use GetInputTypeForHandle instead
// Versions of Steam that add new controller types in the future will extend this enum if you're
// using a lookup table please check the bounds of any origins returned by Steam.
enum EControllerActionOrigin
{
	// Steam Controller
	k_EControllerActionOrigin_None,
	k_EControllerActionOrigin_A,
	k_EControllerActionOrigin_B,
	k_EControllerActionOrigin_X,
	k_EControllerActionOrigin_Y,
	k_EControllerActionOrigin_LeftBumper,
	k_EControllerActionOrigin_RightBumper,
	k_EControllerActionOrigin_LeftGrip,
	k_EControllerActionOrigin_RightGrip,
	k_EControllerActionOrigin_Start,
	k_EControllerActionOrigin_Back,
	k_EControllerActionOrigin_LeftPad_Touch,
	k_EControllerActionOrigin_LeftPad_Swipe,
	k_EControllerActionOrigin_LeftPad_Click,
	k_EControllerActionOrigin_LeftPad_DPadNorth,
	k_EControllerActionOrigin_LeftPad_DPadSouth,
	k_EControllerActionOrigin_LeftPad_DPadWest,
	k_EControllerActionOrigin_LeftPad_DPadEast,
	k_EControllerActionOrigin_RightPad_Touch,
	k_EControllerActionOrigin_RightPad_Swipe,
	k_EControllerActionOrigin_RightPad_Click,
	k_EControllerActionOrigin_RightPad_DPadNorth,
	k_EControllerActionOrigin_RightPad_DPadSouth,
	k_EControllerActionOrigin_RightPad_DPadWest,
	k_EControllerActionOrigin_RightPad_DPadEast,
	k_EControllerActionOrigin_LeftTrigger_Pull,
	k_EControllerActionOrigin_LeftTrigger_Click,
	k_EControllerActionOrigin_RightTrigger_Pull,
	k_EControllerActionOrigin_RightTrigger_Click,
	k_EControllerActionOrigin_LeftStick_Move,
	k_EControllerActionOrigin_LeftStick_Click,
	k_EControllerActionOrigin_LeftStick_DPadNorth,
	k_EControllerActionOrigin_LeftStick_DPadSouth,
	k_EControllerActionOrigin_LeftStick_DPadWest,
	k_EControllerActionOrigin_LeftStick_DPadEast,
	k_EControllerActionOrigin_Gyro_Move,
	k_EControllerActionOrigin_Gyro_Pitch,
	k_EControllerActionOrigin_Gyro_Yaw,
	k_EControllerActionOrigin_Gyro_Roll,

	// PS4 Dual Shock
	k_EControllerActionOrigin_PS4_X,
	k_EControllerActionOrigin_PS4_Circle,
	k_EControllerActionOrigin_PS4_Triangle,
	k_EControllerActionOrigin_PS4_Square,
	k_EControllerActionOrigin_PS4_LeftBumper,
	k_EControllerActionOrigin_PS4_RightBumper,
	k_EControllerActionOrigin_PS4_Options,  //Start
	k_EControllerActionOrigin_PS4_Share,	//Back
	k_EControllerActionOrigin_PS4_LeftPad_Touch,
	k_EControllerActionOrigin_PS4_LeftPad_Swipe,
	k_EControllerActionOrigin_PS4_LeftPad_Click,
	k_EControllerActionOrigin_PS4_LeftPad_DPadNorth,
	k_EControllerActionOrigin_PS4_LeftPad_DPadSouth,
	k_EControllerActionOrigin_PS4_LeftPad_DPadWest,
	k_EControllerActionOrigin_PS4_LeftPad_DPadEast,
	k_EControllerActionOrigin_PS4_RightPad_Touch,
	k_EControllerActionOrigin_PS4_RightPad_Swipe,
	k_EControllerActionOrigin_PS4_RightPad_Click,
	k_EControllerActionOrigin_PS4_RightPad_DPadNorth,
	k_EControllerActionOrigin_PS4_RightPad_DPadSouth,
	k_EControllerActionOrigin_PS4_RightPad_DPadWest,
	k_EControllerActionOrigin_PS4_RightPad_DPadEast,
	k_EControllerActionOrigin_PS4_CenterPad_Touch,
	k_EControllerActionOrigin_PS4_CenterPad_Swipe,
	k_EControllerActionOrigin_PS4_CenterPad_Click,
	k_EControllerActionOrigin_PS4_CenterPad_DPadNorth,
	k_EControllerActionOrigin_PS4_CenterPad_DPadSouth,
	k_EControllerActionOrigin_PS4_CenterPad_DPadWest,
	k_EControllerActionOrigin_PS4_CenterPad_DPadEast,
	k_EControllerActionOrigin_PS4_LeftTrigger_Pull,
	k_EControllerActionOrigin_PS4_LeftTrigger_Click,
	k_EControllerActionOrigin_PS4_RightTrigger_Pull,
	k_EControllerActionOrigin_PS4_RightTrigger_Click,
	k_EControllerActionOrigin_PS4_LeftStick_Move,
	k_EControllerActionOrigin_PS4_LeftStick_Click,
	k_EControllerActionOrigin_PS4_LeftStick_DPadNorth,
	k_EControllerActionOrigin_PS4_LeftStick_DPadSouth,
	k_EControllerActionOrigin_PS4_LeftStick_DPadWest,
	k_EControllerActionOrigin_PS4_LeftStick_DPadEast,
	k_EControllerActionOrigin_PS4_RightStick_Move,
	k_EControllerActionOrigin_PS4_RightStick_Click,
	k_EControllerActionOrigin_PS4_RightStick_DPadNorth,
	k_EControllerActionOrigin_PS4_RightStick_DPadSouth,
	k_EControllerActionOrigin_PS4_RightStick_DPadWest,
	k_EControllerActionOrigin_PS4_RightStick_DPadEast,
	k_EControllerActionOrigin_PS4_DPad_North,
	k_EControllerActionOrigin_PS4_DPad_South,
	k_EControllerActionOrigin_PS4_DPad_West,
	k_EControllerActionOrigin_PS4_DPad_East,
	k_EControllerActionOrigin_PS4_Gyro_Move,
	k_EControllerActionOrigin_PS4_Gyro_Pitch,
	k_EControllerActionOrigin_PS4_Gyro_Yaw,
	k_EControllerActionOrigin_PS4_Gyro_Roll,

	// XBox One
	k_EControllerActionOrigin_XBoxOne_A,
	k_EControllerActionOrigin_XBoxOne_B,
	k_EControllerActionOrigin_XBoxOne_X,
	k_EControllerActionOrigin_XBoxOne_Y,
	k_EControllerActionOrigin_XBoxOne_LeftBumper,
	k_EControllerActionOrigin_XBoxOne_RightBumper,
	k_EControllerActionOrigin_XBoxOne_Menu,  //Start
	k_EControllerActionOrigin_XBoxOne_View,  //Back
	k_EControllerActionOrigin_XBoxOne_LeftTrigger_Pull,
	k_EControllerActionOrigin_XBoxOne_LeftTrigger_Click,
	k_EControllerActionOrigin_XBoxOne_RightTrigger_Pull,
	k_EControllerActionOrigin_XBoxOne_RightTrigger_Click,
	k_EControllerActionOrigin_XBoxOne_LeftStick_Move,
	k_EControllerActionOrigin_XBoxOne_LeftStick_Click,
	k_EControllerActionOrigin_XBoxOne_LeftStick_DPadNorth,
	k_EControllerActionOrigin_XBoxOne_LeftStick_DPadSouth,
	k_EControllerActionOrigin_XBoxOne_LeftStick_DPadWest,
	k_EControllerActionOrigin_XBoxOne_LeftStick_DPadEast,
	k_EControllerActionOrigin_XBoxOne_RightStick_Move,
	k_EControllerActionOrigin_XBoxOne_RightStick_Click,
	k_EControllerActionOrigin_XBoxOne_RightStick_DPadNorth,
	k_EControllerActionOrigin_XBoxOne_RightStick_DPadSouth,
	k_EControllerActionOrigin_XBoxOne_RightStick_DPadWest,
	k_EControllerActionOrigin_XBoxOne_RightStick_DPadEast,
	k_EControllerActionOrigin_XBoxOne_DPad_North,
	k_EControllerActionOrigin_XBoxOne_DPad_South,
	k_EControllerActionOrigin_XBoxOne_DPad_West,
	k_EControllerActionOrigin_XBoxOne_DPad_East,

	// XBox 360
	k_EControllerActionOrigin_XBox360_A,
	k_EControllerActionOrigin_XBox360_B,
	k_EControllerActionOrigin_XBox360_X,
	k_EControllerActionOrigin_XBox360_Y,
	k_EControllerActionOrigin_XBox360_LeftBumper,
	k_EControllerActionOrigin_XBox360_RightBumper,
	k_EControllerActionOrigin_XBox360_Start,  //Start
	k_EControllerActionOrigin_XBox360_Back,  //Back
	k_EControllerActionOrigin_XBox360_LeftTrigger_Pull,
	k_EControllerActionOrigin_XBox360_LeftTrigger_Click,
	k_EControllerActionOrigin_XBox360_RightTrigger_Pull,
	k_EControllerActionOrigin_XBox360_RightTrigger_Click,
	k_EControllerActionOrigin_XBox360_LeftStick_Move,
	k_EControllerActionOrigin_XBox360_LeftStick_Click,
	k_EControllerActionOrigin_XBox360_LeftStick_DPadNorth,
	k_EControllerActionOrigin_XBox360_LeftStick_DPadSouth,
	k_EControllerActionOrigin_XBox360_LeftStick_DPadWest,
	k_EControllerActionOrigin_XBox360_LeftStick_DPadEast,
	k_EControllerActionOrigin_XBox360_RightStick_Move,
	k_EControllerActionOrigin_XBox360_RightStick_Click,
	k_EControllerActionOrigin_XBox360_RightStick_DPadNorth,
	k_EControllerActionOrigin_XBox360_RightStick_DPadSouth,
	k_EControllerActionOrigin_XBox360_RightStick_DPadWest,
	k_EControllerActionOrigin_XBox360_RightStick_DPadEast,
	k_EControllerActionOrigin_XBox360_DPad_North,
	k_EControllerActionOrigin_XBox360_DPad_South,
	k_EControllerActionOrigin_XBox360_DPad_West,
	k_EControllerActionOrigin_XBox360_DPad_East,

	// SteamController V2
	k_EControllerActionOrigin_SteamV2_A,
	k_EControllerActionOrigin_SteamV2_B,
	k_EControllerActionOrigin_SteamV2_X,
	k_EControllerActionOrigin_SteamV2_Y,
	k_EControllerActionOrigin_SteamV2_LeftBumper,
	k_EControllerActionOrigin_SteamV2_RightBumper,
	k_EControllerActionOrigin_SteamV2_LeftGrip_Lower,
	k_EControllerActionOrigin_SteamV2_LeftGrip_Upper,
	k_EControllerActionOrigin_SteamV2_RightGrip_Lower,
	k_EControllerActionOrigin_SteamV2_RightGrip_Upper,
	k_EControllerActionOrigin_SteamV2_LeftBumper_Pressure,
	k_EControllerActionOrigin_SteamV2_RightBumper_Pressure,
	k_EControllerActionOrigin_SteamV2_LeftGrip_Pressure,
	k_EControllerActionOrigin_SteamV2_RightGrip_Pressure,
	k_EControllerActionOrigin_SteamV2_LeftGrip_Upper_Pressure,
	k_EControllerActionOrigin_SteamV2_RightGrip_Upper_Pressure,
	k_EControllerActionOrigin_SteamV2_Start,
	k_EControllerActionOrigin_SteamV2_Back,
	k_EControllerActionOrigin_SteamV2_LeftPad_Touch,
	k_EControllerActionOrigin_SteamV2_LeftPad_Swipe,
	k_EControllerActionOrigin_SteamV2_LeftPad_Click,
	k_EControllerActionOrigin_SteamV2_LeftPad_Pressure,
	k_EControllerActionOrigin_SteamV2_LeftPad_DPadNorth,
	k_EControllerActionOrigin_SteamV2_LeftPad_DPadSouth,
	k_EControllerActionOrigin_SteamV2_LeftPad_DPadWest,
	k_EControllerActionOrigin_SteamV2_LeftPad_DPadEast,
	k_EControllerActionOrigin_SteamV2_RightPad_Touch,
	k_EControllerActionOrigin_SteamV2_RightPad_Swipe,
	k_EControllerActionOrigin_SteamV2_RightPad_Click,
	k_EControllerActionOrigin_SteamV2_RightPad_Pressure,
	k_EControllerActionOrigin_SteamV2_RightPad_DPadNorth,
	k_EControllerActionOrigin_SteamV2_RightPad_DPadSouth,
	k_EControllerActionOrigin_SteamV2_RightPad_DPadWest,
	k_EControllerActionOrigin_SteamV2_RightPad_DPadEast,
	k_EControllerActionOrigin_SteamV2_LeftTrigger_Pull,
	k_EControllerActionOrigin_SteamV2_LeftTrigger_Click,
	k_EControllerActionOrigin_SteamV2_RightTrigger_Pull,
	k_EControllerActionOrigin_SteamV2_RightTrigger_Click,
	k_EControllerActionOrigin_SteamV2_LeftStick_Move,
	k_EControllerActionOrigin_SteamV2_LeftStick_Click,
	k_EControllerActionOrigin_SteamV2_LeftStick_DPadNorth,
	k_EControllerActionOrigin_SteamV2_LeftStick_DPadSouth,
	k_EControllerActionOrigin_SteamV2_LeftStick_DPadWest,
	k_EControllerActionOrigin_SteamV2_LeftStick_DPadEast,
	k_EControllerActionOrigin_SteamV2_Gyro_Move,
	k_EControllerActionOrigin_SteamV2_Gyro_Pitch,
	k_EControllerActionOrigin_SteamV2_Gyro_Yaw,
	k_EControllerActionOrigin_SteamV2_Gyro_Roll,

	// Switch - Pro or Joycons used as a single input device.
	// This does not apply to a single joycon
	k_EControllerActionOrigin_Switch_A,
	k_EControllerActionOrigin_Switch_B,
	k_EControllerActionOrigin_Switch_X,
	k_EControllerActionOrigin_Switch_Y,
	k_EControllerActionOrigin_Switch_LeftBumper,
	k_EControllerActionOrigin_Switch_RightBumper,
	k_EControllerActionOrigin_Switch_Plus,  //Start
	k_EControllerActionOrigin_Switch_Minus,	//Back
	k_EControllerActionOrigin_Switch_Capture,
	k_EControllerActionOrigin_Switch_LeftTrigger_Pull,
	k_EControllerActionOrigin_Switch_LeftTrigger_Click,
	k_EControllerActionOrigin_Switch_RightTrigger_Pull,
	k_EControllerActionOrigin_Switch_RightTrigger_Click,
	k_EControllerActionOrigin_Switch_LeftStick_Move,
	k_EControllerActionOrigin_Switch_LeftStick_Click,
	k_EControllerActionOrigin_Switch_LeftStick_DPadNorth,
	k_EControllerActionOrigin_Switch_LeftStick_DPadSouth,
	k_EControllerActionOrigin_Switch_LeftStick_DPadWest,
	k_EControllerActionOrigin_Switch_LeftStick_DPadEast,
	k_EControllerActionOrigin_Switch_RightStick_Move,
	k_EControllerActionOrigin_Switch_RightStick_Click,
	k_EControllerActionOrigin_Switch_RightStick_DPadNorth,
	k_EControllerActionOrigin_Switch_RightStick_DPadSouth,
	k_EControllerActionOrigin_Switch_RightStick_DPadWest,
	k_EControllerActionOrigin_Switch_RightStick_DPadEast,
	k_EControllerActionOrigin_Switch_DPad_North,
	k_EControllerActionOrigin_Switch_DPad_South,
	k_EControllerActionOrigin_Switch_DPad_West,
	k_EControllerActionOrigin_Switch_DPad_East,
	k_EControllerActionOrigin_Switch_ProGyro_Move,  // Primary Gyro in Pro Controller, or Right JoyCon
	k_EControllerActionOrigin_Switch_ProGyro_Pitch,  // Primary Gyro in Pro Controller, or Right JoyCon
	k_EControllerActionOrigin_Switch_ProGyro_Yaw,  // Primary Gyro in Pro Controller, or Right JoyCon
	k_EControllerActionOrigin_Switch_ProGyro_Roll,  // Primary Gyro in Pro Controller, or Right JoyCon
	// Switch JoyCon Specific
	k_EControllerActionOrigin_Switch_RightGyro_Move,  // Right JoyCon Gyro generally should correspond to Pro's single gyro
	k_EControllerActionOrigin_Switch_RightGyro_Pitch,  // Right JoyCon Gyro generally should correspond to Pro's single gyro
	k_EControllerActionOrigin_Switch_RightGyro_Yaw,  // Right JoyCon Gyro generally should correspond to Pro's single gyro
	k_EControllerActionOrigin_Switch_RightGyro_Roll,  // Right JoyCon Gyro generally should correspond to Pro's single gyro
	k_EControllerActionOrigin_Switch_LeftGyro_Move,
	k_EControllerActionOrigin_Switch_LeftGyro_Pitch,
	k_EControllerActionOrigin_Switch_LeftGyro_Yaw,
	k_EControllerActionOrigin_Switch_LeftGyro_Roll,
	k_EControllerActionOrigin_Switch_LeftGrip_Lower, // Left JoyCon SR Button
	k_EControllerActionOrigin_Switch_LeftGrip_Upper, // Left JoyCon SL Button
	k_EControllerActionOrigin_Switch_RightGrip_Lower,  // Right JoyCon SL Button
	k_EControllerActionOrigin_Switch_RightGrip_Upper,  // Right JoyCon SR Button

	k_EControllerActionOrigin_Count, // If Steam has added support for new controllers origins will go here.
	k_EControllerActionOrigin_MaximumPossibleValue = 32767, // Origins are currently a maximum of 16 bits.
};

#ifndef ISTEAMINPUT_H
enum EXboxOrigin
{
	k_EXboxOrigin_A,
	k_EXboxOrigin_B,
	k_EXboxOrigin_X,
	k_EXboxOrigin_Y,
	k_EXboxOrigin_LeftBumper,
	k_EXboxOrigin_RightBumper,
	k_EXboxOrigin_Menu,  //Start
	k_EXboxOrigin_View,  //Back
	k_EXboxOrigin_LeftTrigger_Pull,
	k_EXboxOrigin_LeftTrigger_Click,
	k_EXboxOrigin_RightTrigger_Pull,
	k_EXboxOrigin_RightTrigger_Click,
	k_EXboxOrigin_LeftStick_Move,
	k_EXboxOrigin_LeftStick_Click,
	k_EXboxOrigin_LeftStick_DPadNorth,
	k_EXboxOrigin_LeftStick_DPadSouth,
	k_EXboxOrigin_LeftStick_DPadWest,
	k_EXboxOrigin_LeftStick_DPadEast,
	k_EXboxOrigin_RightStick_Move,
	k_EXboxOrigin_RightStick_Click,
	k_EXboxOrigin_RightStick_DPadNorth,
	k_EXboxOrigin_RightStick_DPadSouth,
	k_EXboxOrigin_RightStick_DPadWest,
	k_EXboxOrigin_RightStick_DPadEast,
	k_EXboxOrigin_DPad_North,
	k_EXboxOrigin_DPad_South,
	k_EXboxOrigin_DPad_West,
	k_EXboxOrigin_DPad_East,
};

enum ESteamInputType
{
	k_ESteamInputType_Unknown,
	k_ESteamInputType_SteamController,
	k_ESteamInputType_XBox360Controller,
	k_ESteamInputType_XBoxOneController,
	k_ESteamInputType_GenericGamepad,		// DirectInput controllers
	k_ESteamInputType_PS4Controller,
	k_ESteamInputType_AppleMFiController,	// Unused
	k_ESteamInputType_AndroidController,	// Unused
	k_ESteamInputType_SwitchJoyConPair,		// Unused
	k_ESteamInputType_SwitchJoyConSingle,	// Unused
	k_ESteamInputType_SwitchProController,
	k_ESteamInputType_MobileTouch,			// Steam Link App On-screen Virtual Controller
	k_ESteamInputType_PS3Controller,		// Currently uses PS4 Origins
	k_ESteamInputType_Count,
	k_ESteamInputType_MaximumPossibleValue = 255,
};
#endif

enum ESteamControllerLEDFlag
{
	k_ESteamControllerLEDFlag_SetColor,
	k_ESteamControllerLEDFlag_RestoreUserDefault
};

// ControllerHandle_t is used to refer to a specific controller.
// This handle will consistently identify a controller, even if it is disconnected and re-connected
typedef uint64 ControllerHandle_t;

// These handles are used to refer to a specific in-game action or action set
// All action handles should be queried during initialization for performance reasons
typedef uint64 ControllerActionSetHandle_t;
typedef uint64 ControllerDigitalActionHandle_t;
typedef uint64 ControllerAnalogActionHandle_t;

#pragma pack( push, 1 )

#ifdef ISTEAMINPUT_H
#define ControllerAnalogActionData_t InputAnalogActionData_t
#define ControllerDigitalActionData_t InputDigitalActionData_t
#define ControllerMotionData_t  InputMotionData_t
#else
struct ControllerAnalogActionData_t
{
	// Type of data coming from this action, this will match what got specified in the action set
	EControllerSourceMode eMode;

	// The current state of this action; will be delta updates for mouse actions
	float x, y;

	// Whether or not this action is currently available to be bound in the active action set
	bool bActive;
};

struct ControllerDigitalActionData_t
{
	// The current state of this action; will be true if currently pressed
	bool bState;

	// Whether or not this action is currently available to be bound in the active action set
	bool bActive;
};

struct ControllerMotionData_t
{
	// Sensor-fused absolute rotation; will drift in heading
	float rotQuatX;
	float rotQuatY;
	float rotQuatZ;
	float rotQuatW;

	// Positional acceleration
	float posAccelX;
	float posAccelY;
	float posAccelZ;

	// Angular velocity
	float rotVelX;
	float rotVelY;
	float rotVelZ;
};
#endif
#pragma pack( pop )

//-----------------------------------------------------------------------------
// Purpose: Steam Input API
//-----------------------------------------------------------------------------
class ISteamController
{
public:

	// Init and Shutdown must be called when starting/ending use of this interface
	virtual bool Init() = 0;
	virtual bool Shutdown() = 0;

	// Synchronize API state with the latest Steam Controller inputs available. This
	// is performed automatically by SteamAPI_RunCallbacks, but for the absolute lowest
	// possible latency, you call this directly before reading controller state. This must
	// be called from somewhere before GetConnectedControllers will return any handles
	virtual void RunFrame() = 0;

	// Enumerate currently connected controllers
	// handlesOut should point to a STEAM_CONTROLLER_MAX_COUNT sized array of ControllerHandle_t handles
	// Returns the number of handles written to handlesOut
	virtual int GetConnectedControllers( ControllerHandle_t *handlesOut ) = 0;

	//-----------------------------------------------------------------------------
	// ACTION SETS
	//-----------------------------------------------------------------------------

	// Lookup the handle for an Action Set. Best to do this once on startup, and store the handles for all future API calls.
	virtual ControllerActionSetHandle_t GetActionSetHandle( const char *pszActionSetName ) = 0;

	// Reconfigure the controller to use the specified action set (ie 'Menu', 'Walk' or 'Drive')
	// This is cheap, and can be safely called repeatedly. It's often easier to repeatedly call it in
	// your state loops, instead of trying to place it in all of your state transitions.
	virtual void ActivateActionSet( ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetHandle ) = 0;
	virtual ControllerActionSetHandle_t GetCurrentActionSet( ControllerHandle_t controllerHandle ) = 0;

	// ACTION SET LAYERS
	virtual void ActivateActionSetLayer( ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetLayerHandle ) = 0;
	virtual void DeactivateActionSetLayer( ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetLayerHandle ) = 0;
	virtual void DeactivateAllActionSetLayers( ControllerHandle_t controllerHandle ) = 0;
	virtual int GetActiveActionSetLayers( ControllerHandle_t controllerHandle, ControllerActionSetHandle_t *handlesOut ) = 0;

	//-----------------------------------------------------------------------------
	// ACTIONS
	//-----------------------------------------------------------------------------

	// Lookup the handle for a digital action. Best to do this once on startup, and store the handles for all future API calls.
	virtual ControllerDigitalActionHandle_t GetDigitalActionHandle( const char *pszActionName ) = 0;

	// Returns the current state of the supplied digital game action
	virtual ControllerDigitalActionData_t GetDigitalActionData( ControllerHandle_t controllerHandle, ControllerDigitalActionHandle_t digitalActionHandle ) = 0;

	// Get the origin(s) for a digital action within an action set. Returns the number of origins supplied in originsOut. Use this to display the appropriate on-screen prompt for the action.
	// originsOut should point to a STEAM_CONTROLLER_MAX_ORIGINS sized array of EControllerActionOrigin handles. The EControllerActionOrigin enum will get extended as support for new controller controllers gets added to
	// the Steam client and will exceed the values from this header, please check bounds if you are using a look up table.
	virtual int GetDigitalActionOrigins( ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetHandle, ControllerDigitalActionHandle_t digitalActionHandle, EControllerActionOrigin *originsOut ) = 0;

	// Lookup the handle for an analog action. Best to do this once on startup, and store the handles for all future API calls.
	virtual ControllerAnalogActionHandle_t GetAnalogActionHandle( const char *pszActionName ) = 0;

	// Returns the current state of these supplied analog game action
	virtual ControllerAnalogActionData_t GetAnalogActionData( ControllerHandle_t controllerHandle, ControllerAnalogActionHandle_t analogActionHandle ) = 0;

	// Get the origin(s) for an analog action within an action set. Returns the number of origins supplied in originsOut. Use this to display the appropriate on-screen prompt for the action.
	// originsOut should point to a STEAM_CONTROLLER_MAX_ORIGINS sized array of EControllerActionOrigin handles. The EControllerActionOrigin enum will get extended as support for new controller controllers gets added to
	// the Steam client and will exceed the values from this header, please check bounds if you are using a look up table.
	virtual int GetAnalogActionOrigins( ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetHandle, ControllerAnalogActionHandle_t analogActionHandle, EControllerActionOrigin *originsOut ) = 0;

	// Get a local path to art for on-screen glyph for a particular origin - this call is cheap
	virtual const char *GetGlyphForActionOrigin( EControllerActionOrigin eOrigin ) = 0;

	// Returns a localized string (from Steam's language setting) for the specified origin - this call is serialized
	virtual const char *GetStringForActionOrigin( EControllerActionOrigin eOrigin ) = 0;

	virtual void StopAnalogActionMomentum( ControllerHandle_t controllerHandle, ControllerAnalogActionHandle_t eAction ) = 0;

	// Returns raw motion data from the specified controller
	virtual ControllerMotionData_t GetMotionData( ControllerHandle_t controllerHandle ) = 0;

	//-----------------------------------------------------------------------------
	// OUTPUTS
	//-----------------------------------------------------------------------------

	// Trigger a haptic pulse on a controller
	virtual void TriggerHapticPulse( ControllerHandle_t controllerHandle, ESteamControllerPad eTargetPad, unsigned short usDurationMicroSec ) = 0;

	// Trigger a pulse with a duty cycle of usDurationMicroSec / usOffMicroSec, unRepeat times.
	// nFlags is currently unused and reserved for future use.
	virtual void TriggerRepeatedHapticPulse( ControllerHandle_t controllerHandle, ESteamControllerPad eTargetPad, unsigned short usDurationMicroSec, unsigned short usOffMicroSec, unsigned short unRepeat, unsigned int nFlags ) = 0;

	// Trigger a vibration event on supported controllers.
	virtual void TriggerVibration( ControllerHandle_t controllerHandle, unsigned short usLeftSpeed, unsigned short usRightSpeed ) = 0;

	// Set the controller LED color on supported controllers.
	virtual void SetLEDColor( ControllerHandle_t controllerHandle, uint8 nColorR, uint8 nColorG, uint8 nColorB, unsigned int nFlags ) = 0;

	//-----------------------------------------------------------------------------
	// Utility functions availible without using the rest of Steam Input API
	//-----------------------------------------------------------------------------

	// Invokes the Steam overlay and brings up the binding screen if the user is using Big Picture Mode
	// If the user is not in Big Picture Mode it will open up the binding in a new window
	virtual bool ShowBindingPanel( ControllerHandle_t controllerHandle ) = 0;

	// Returns the input type for a particular handle
	virtual ESteamInputType GetInputTypeForHandle( ControllerHandle_t controllerHandle ) = 0;

	// Returns the associated controller handle for the specified emulated gamepad - can be used with the above 2 functions
	// to identify controllers presented to your game over Xinput. Returns 0 if the Xinput index isn't associated with Steam Input
	virtual ControllerHandle_t GetControllerForGamepadIndex( int nIndex ) = 0;

	// Returns the associated gamepad index for the specified controller, if emulating a gamepad or -1 if not associated with an Xinput index
	virtual int GetGamepadIndexForController( ControllerHandle_t ulControllerHandle ) = 0;

	// Returns a localized string (from Steam's language setting) for the specified Xbox controller origin. This function is cheap.
	virtual const char *GetStringForXboxOrigin( EXboxOrigin eOrigin ) = 0;

	// Get a local path to art for on-screen glyph for a particular Xbox controller origin. This function is serialized.
	virtual const char *GetGlyphForXboxOrigin( EXboxOrigin eOrigin ) = 0;

	// Get the equivalent ActionOrigin for a given Xbox controller origin this can be chained with GetGlyphForActionOrigin to provide future proof glyphs for
	// non-Steam Input API action games. Note - this only translates the buttons directly and doesn't take into account any remapping a user has made in their configuration
	virtual EControllerActionOrigin GetActionOriginFromXboxOrigin( ControllerHandle_t controllerHandle, EXboxOrigin eOrigin ) = 0;

	// Convert an origin to another controller type - for inputs not present on the other controller type this will return k_EControllerActionOrigin_None
	virtual EControllerActionOrigin TranslateActionOrigin( ESteamInputType eDestinationInputType, EControllerActionOrigin eSourceOrigin ) = 0;
};

#define STEAMCONTROLLER_INTERFACE_VERSION "SteamController007"

// Global interface accessor
inline ISteamController *SteamController();
STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamController *, SteamController, STEAMCONTROLLER_INTERFACE_VERSION );

#endif // ISTEAMCONTROLLER_H

redpajama_set_name: RedPajamaGithub


text:
NYU Letter of Support
St. Andrews Letter
Fordham Letter of Support
CCR Statement
AMBA Letter
LSSA Union Statement
Prep for Prep
NBA-YLD Letter
UROOJ
LAWYERS CHARGED WITH SEVEN FELONIES IN MOLOTOV COCKTAIL ATTACK OUT ON BAIL
A surveillance camera is said to have recorded it all: a woman in a black t-shirt stepping out of a tan minivan; the lighting of a toilet-paper fuse, the arc of a beer bottle filled with fuel as it was thrown onto the dashboard of an empty police car. That act of vandalism, in the early hours of May 30, is why two Brooklyn lawyers are fighting federal explosives charges and could face as much as life in prison. They had been sitting in a New York jail until Tuesday night, after a government effort to keep them behind bars failed.
HOW MANDATORY MINIMUMS ARE WEAPONIZED
After a protest, two Brooklyn lawyers are each facing 45 years behind bars.
In the early morning hours of May 30, Colinford Mattis and Urooj Rahman were arrested in Brooklyn after a night of citywide protests in response to the killing of George Floyd. They are charged with throwing a Molotov cocktail through the broken window of an unoccupied police car. No one was hurt. Both have plead not guilty, but if they are convicted of the array of federal charges leveled against them, there will be no judging involved when they are sentenced: They will face mandatory sentences of 45 years in prison.
THE PEOPLE ARRESTED FOR PROTESTING POLICE ARE IN DANGER
The full weight of the carceral system is against them.
Right before Christmas 2014, police killed a Black 18-year-old, Antonio Martin, in Berkley, Missouri—two miles away from Ferguson. Josh Williams, also 18 at the time, became a known and prominent activist in the protests that erupted over Martin's death. During the unrest, Williams was allegedly seen on camera taking chips and lighting a small fire in a QuikTrip trash can, which was quickly put out and caused no serious damage. He had no prior record. The judge sentenced him to 8 years, the longest sentence of any Ferguson protester.
SUPPORTERS OF ATTORNEY ACCUSED IN MOLOTOV COCKTAIL CASE SPEAK OUT DURING ARRAIGNMENT
Because of the coronavirus pandemic, the hearing for Colinford Mattis, a suspended corporate law associate at Pryor Cashman, was held by conference call, which was briefly interrupted by enthusiastic supporters.
LEGAL EXPERTS QUESTION USE OF FEDERAL LAW TO PROSECUTE TORCHING OF EMPTY NYPD PATROL CAR DURING PROTESTS
Federal prosecutors argue that damaging a police vehicle is a violation of federal statutes in part because the police department receives federal funding. Former prosecutors and law professors say it's an absurd rationale driven by politics of the Justice Department.
WHY TWO LAWYERS ACCUSED OF TOSSING MOLOTOV COCKTAILS AT NYPD CAR COULD FACE LIFE IN PRISON
IA federal appeals court panel will hear arguments Tuesday on whether two attorneys accused of throwing a Molotov cocktail at an empty police car in Brooklyn, during a protest against the police killing of George Floyd, should be held in jail until their trial.
TWO BROOKLYN LAWYERS ACCUSED OF THROWING MOLOTOV COCKTAILS ARE THE PUBLIC FACE OF TRUMP ADMINISTRATION'S CRACKDOWN ON DISSENT
THE KILLING OF George Floyd by Minneapolis police in late May ignited protests in cities and towns across the United States. These largely peaceful demonstrations have been punctuated by acts of violence, frequently committed by the police themselves. But other incidents of both violence and property destruction have also been reported. Among them was the case of two young Brooklyn lawyers accused of burning the dashboard of a New York Police Department cruiser — a case that has become a flashpoint in the Trump administration's legal and public relations response to the protests.
2 LAWYERS OF COLOR FACE 45-YEAR SENTENCES — FOR VANDALISM
In a high school English assignment in which students were asked to describe themselves as a metaphor, Colinford King Mattis had a lot of fun with his essay.
Mattis described himself as a piece of vintage furniture that you aren't sure you want, but you bring it home anyway and put it in a room — and it somehow perfectly brings the room together, and you don't know how you lived without it in the first place.
HOW TWO PROMISING LAWYERS FOUND THEMSELVES FACING LIFE IN PRISON FOR ALLEGED MOLOTOV COCKTAIL ATTACK DURING PROTESTS IN NY
New York (CNN) On an early October evening in 2014, a group of New York University law school students gathered for a joint birthday party at (Le) Poisson Rouge, a popular bar and music venue a few blocks from campus.
One of the birthday celebrants, Colinford Mattis, quickly hit it off with another guest, Urooj Rahman, who was studying law at Fordham. Both raised in Brooklyn, the two bonded over their professional interest in human rights and their engagement in local politics, becoming friends from there on.
56 FORMER PROSECUTORS WRITE TO APPEALS COURT IN SUPPORT OF BAIL FOR LAWYERS ACCUSED OF THROWING MOLOTOV COCKTAIL AT POLICE VEHICLE
NEW YORK — Over 50 former federal prosecutors are urging an appeals court to cast aside the government's ongoing detention bid for a pair of activists — attorneys by trade — charged in a molotov cocktail attack on a marked police car, on a violence-ridden night of protests after the death of George Floyd in police custody in Minneapolis.
Made by Family & Friends.

redpajama_set_name: RedPajamaCommonCrawl


text:
Q: Geometry shader output filling Z-Buffer with closest value possible? (DirectX) I need lines of a certain thickness in my CAD viewer and found out that I should use a geometry shader to accomplish this.
I then went ahead and found demo code of a geometry shader that creates lines at a given thickness.
Here: https://github.com/paulhoux/Cinder-Samples/blob/master/GeometryShader/assets/shaders/lines1.geom
Discussion about it here: https://forum.libcinder.org/topic/smooth-thick-lines-using-geometry-shader
This shader was written in OpenGL but I translated it to DirectX.
The issue I got now is that the faces generated by the shader are ignoring my Z-Buffer (Depth-Buffer), did I miss something really important?
My full shader code:
//Input for the vertex shader
struct VS_IN
{
    float4 pos : POSITION;
    float4 col : COLOR;
};

//Input for the geometry shader, as provided by the vertex shader
struct GS_IN
{
    float4 pos : SV_POSITION;
    float4 col : COLOR;
};

//Input for the pixel shader, as provided by the geometry shader
struct PS_IN
{
    float4 pos : SV_POSITION;
    float4 col : COLOR;
};

//Only used in the vertex shader, to give the vertex its final position on screen
cbuffer viewProj : register (b0)
{
    matrix viewProj;
}

//The vertex shader
GS_IN VS(VS_IN input)
{
    GS_IN output = (GS_IN)0;

    //Should multiply it by a world matrix of identity, so the input vertices should be using world coordinates...
    output.pos = mul(input.pos, viewProj);
    output.col = input.col;

    return output;
};

//The geometry shader

cbuffer windowSize : register (b1)
{
    float2 WIN_SCALE;
}

float MITER_LIMIT = -1;
float THICKNESS = 10;

float2 screen_space(float4 vertex)
{
    return float2(vertex.xy / vertex.w) * WIN_SCALE;
}

[maxvertexcount(7)]
void GS(lineadj GS_IN input[4], inout TriangleStream<PS_IN> OutputStream)
{
    // get the four vertices passed to the shader:
    float2 p0 = screen_space(input[0].pos); // start of previous segment
        float2 p1 = screen_space(input[1].pos); // end of previous segment, start of current segment
        float2 p2 = screen_space(input[2].pos); // end of current segment, start of next segment
        float2 p3 = screen_space(input[3].pos); // end of next segment

        // perform naive culling
        /*
        float2 area = WIN_SCALE * 1.2;
        if (p1.x < -area.x || p1.x > area.x) return;
        if (p1.y < -area.y || p1.y > area.y) return;
        if (p2.x < -area.x || p2.x > area.x) return;
        if (p2.y < -area.y || p2.y > area.y) return;
        */

        // determine the direction of each of the 3 segments (previous, current, next)
        float2 v0 = normalize(p1 - p0);
        float2 v1 = normalize(p2 - p1);
        float2 v2 = normalize(p3 - p2);

        // determine the normal of each of the 3 segments (previous, current, next)
        float2 n0 = float2(-v0.y, v0.x);
        float2 n1 = float2(-v1.y, v1.x);
        float2 n2 = float2(-v2.y, v2.x);

        // determine miter lines by averaging the normals of the 2 segments
        float2 miter_a = normalize(n0 + n1);    // miter at start of current segment
        float2 miter_b = normalize(n1 + n2);    // miter at end of current segment

        // determine the length of the miter by projecting it onto normal and then inverse it
        float length_a = THICKNESS / dot(miter_a, n1);
    float length_b = THICKNESS / dot(miter_b, n1);

    PS_IN output = (PS_IN)0;
    if (dot(v0, v1) < -MITER_LIMIT) {
        miter_a = n1;
        length_a = THICKNESS;

        // close the gap
        if (dot(v0, n1) > 0) {
            output.col = input[1].col;
            output.pos = float4((p1 + THICKNESS * n0) / WIN_SCALE, 0.0, 1.0);
            OutputStream.Append(output);

            output.col = input[1].col;
            output.pos = float4((p1 + THICKNESS * n1) / WIN_SCALE, 0.0, 1.0);
            OutputStream.Append(output);

            output.col = input[1].col;
            output.pos = float4(p1 / WIN_SCALE, 0.0, 1.0);
            OutputStream.Append(output);
        }
        else {
            output.col = input[1].col;
            output.pos = float4((p1 - THICKNESS * n1) / WIN_SCALE, 0.0, 1.0);
            OutputStream.Append(output);

            output.col = input[1].col;
            output.pos = float4((p1 - THICKNESS * n0) / WIN_SCALE, 0.0, 1.0);
            OutputStream.Append(output);

            output.col = input[1].col;
            output.pos = float4(p1 / WIN_SCALE, 0.0, 1.0);
            OutputStream.Append(output);
        }
    }

    if (dot(v1, v2) < -MITER_LIMIT) {
        miter_b = n1;
        length_b = THICKNESS;
    }

    // generate the triangle strip
    output.col = input[1].col;
    output.pos = float4((p1 + length_a * miter_a) / WIN_SCALE, 0.0, 1.0);
    OutputStream.Append(output);

    output.col = input[1].col;
    output.pos = float4((p1 - length_a * miter_a) / WIN_SCALE, 0.0, 1.0);
    OutputStream.Append(output);

    output.col = input[2].col;
    output.pos = float4((p2 + length_b * miter_b) / WIN_SCALE, 0.0, 1.0);
    OutputStream.Append(output);

    output.col = input[2].col;
    output.pos = float4((p2 - length_b * miter_b) / WIN_SCALE, 0.0, 1.0);
    OutputStream.Append(output);
};

//The pixel shader
float4 PS(PS_IN input) : SV_Target
{
    return input.col;
};

technique10 Render
{
    pass P0
    {
        SetVertexShader(CompileShader(vs_4_0, VS()));
        SetGeometryShader(CompileShader(gs_4_0, GS()));
        SetPixelShader(CompileShader(ps_4_0, PS()));
    }
}

If I disable the Geometry shader I get:

If I enable the Geometry shader I get:

As you can see the thick line suddenly is in front of everything else.
Can this be fixed? Should I use a different approach? Are geometry shaders really the solution?

Edit 1: I found out that it's not ignoring the Z-Buffer, it's filling it with the closest depth-value possible (black in debugging). Why is this happening?

A: I think that geometry buffers are a good and fast solution for your case.
Your error happens because your geometry buffer sets all z-values to 0.0, so any depth information is dropped. The outputted triangles are all on the same depth plane in screen space. To fix this, they should inherit the depth value from the original lines.
Keep in mind that this could lead to intersection issues, e.g. if your line is near a ground, the inflated line would penetrate the ground and can look thinner than other ones.

redpajama_set_name: RedPajamaStackExchange


text:
Enid Blyton's Nature Lover's Book
Title: Enid Blyton's Nature Lover's Book
Blyton, Enid
(29 of 165 for author by title) ⇤
→ Enid Blyton's Treasury
← Enid Blyton's Nature Lessons
Hopking, Noel
Publisher: Evans Brothers Limited
Tags: juvenile, nature, mixed fiction/nonfiction
Lots and lots of images, but the text is simple, intended for children. [Suggest a different description.]
Author Bio for Blyton, Enid
Enid Blyton (1897-1968) was a prolific English author of children's books. Born in London, she began writing while still in school. Her first attempts at writing were rejected by publishers which just made her more determined to succeed. She trained as a teacher and in her spare time continued to write. Her first book, a collection of poems, was published in 1922. Her first series of books, "Old Thatch", began in 1934 and eventually encompassed 28 books. In the 1940's she began to churn out books sometimes three or four per year. By the 1950's she was publishing upwards of 50 books per year. In all, she wrote over 750 books which sold over 600 million copies. While critics called her writing unimaginative and lacking literary merit, this did not stop her adoring fans from scooping her books off the shelf. Even after her death, her endearing stories continue to draw the rapt attention of children everywhere. (Enid Blyton Society)


text:
Orzyc (Orzycz, Orzyca) – rzeka, prawy dopływ Narwi o długości 142,52 km i powierzchni dorzecza 2 077 km².

Opis
Rzeka płynie przez Nizinę Północnomazowiecką, w województwie warmińsko-mazurskim i mazowieckim. Wypływa z bagien na obszarze Wzniesień Mławskich, na wschód od Mławy. Płynie przez Równinę Kurpiowską i Wysoczyznę Ciechanowską, przez miejscowości Grzebsk, Chorzele, Małowidz, Jednorożec, Drążdżewo, Janowo, Krasnosielc, Maków Mazowiecki, Stary Szelków, a do Narwi uchodzi we wsi Kalinowo, poniżej wsi Przeradowo, a powyżej wsi Zambski Kościelne.

Rzekę cechuje powolny nurt i niewielki spadek koryta. Jej lewymi dopływami są Grabowski Rów i Baranowska Struga, a prawymi Tamka, Bobrynka, Ulatówka, Bramura i Węgierka.

Na kilku odcinkach rzeka jest spławna. Organizowane są spływy kajakowe.

Historia
W XIX wieku rzeka była określana nazwą Uzgierka.

W latach 30. XX wieku przeprowadzono regulację rzeki na odcinku między Chorzelami a Krasnosielcem. Prace prowadzono ręcznie, maszynowo i za pomocą dynamitu.

Rzeka jest uważana za zachodnią granicę Puszczy Zielonej, ale na jej prawym brzegu jest jeszcze kurpiowska wieś Jednorożec i miejscowości, które przyjęły tradycje kurpiowskie i są uważane za pograniczne: Połoń, Małowidz, Stegna, Drążdżewo Nowe.

Zobacz też
 Rzeki Polski

Przypisy

Linki zewnętrzne
 Zdjęcia rzeki Orzyc

Rzeki w Polsce

redpajama_set_name: RedPajamaWikipedia


Technically, monochromes mean single color. Back then, artists used different shades of one color to create monochromatic artworks. They diluted black/brown ink to get lighter or darker tones of the same color.
Well, the question arises if you can create an excellent artwork with just one color.
HOW DO YOU PAINT IN ONE COLOR?
Brown and black are not the same colors. However, grey and black are. Diluting black or adding white to it will produce grey. In fact, adding more white will get you a lighter shade of grey. These are values of the same color. Similarly, grey can be shaded by adding black. In this way, you can mix up a gradient of different color variations.
Remember, it is difficult to re-mix the same colors. Hence, better save the colors if you are not planning to finish the painting in one sitting. Preserve your paintings in separate plastic cases.
There are a lot of technicalities depending on what you are painting. You could paint a live model or landscape depending on your skills. Also, many beginners use reference images. The overall result will be in one single color.
WHY DO ARTISTS USE ONLY ONE COLOR?
Monochromatic paintings reduce art into its simplest form. Grisaille is a technique of executing an entire painting in different shades of grey. Here 'Gris' is a French word meaning grey.
In earlier days, abstract art drove all the artistic minds to a whole new level. A group of French artists called the 'Incoherents'(19th century) produced the first monochromes. However, Kasimir Malevich's 'White Square on White field' (1918) stood out. In fact, art history considers it to be to the first monochrome. He expressed the absoluteness of painting. Also, it moved us towards an infinite and dynamic space by freeing our minds of any material considerations.
Several artists brought up new ideas by following the monochromatic path. Moreover, by using one the color, the artists discovered the tranquillity of total abstraction.
Monochromatic paintings help beginners focus on an art as a whole. This, in turn, helps them avoid glaring issues. Also, the role of light and dark enables an artist to define form and create a piece. Color plays a different story. However, the profound impact of wholeness can only be achieved by black and white.
WANT TO PURSUE A CAREER IN FINE ARTS?
Kala Bhavana ( Institute of Fine Arts), Visva Bharati, Shantiniketan offers all major streams of art.
Pencil and Chai, by Coloring India Foundation, Bangalore conducts sketching classes on Sundays.
Faculty of Visual Arts (BHU), Banaras offers Undergraduate (UG) and Postgraduate (PG) degrees in painting, applied arts, plastic arts, textile designing, pottery and ceramics.


Rob Williams teaches communications at Champlain College in Burlington, Vt. He also volunteers his time in K-12 schools in Vermont teaching kids how to use video to tell stories with a public-policy message. A co-president of the Action Coalition for Media Education, Williams demonstrated student anti-tobacco videos and discussed production techiques on June 30, 2006 at the Media Giraffe conference at the University of Massachusetts Amherst.


If your Lexus needs a little tender love and care, trust the experts at Spinelli Lexus Pointe-Claire's body and detailing center. We will have your Lexus looking brand new in no time! At Spinelli Lexus Pointe-Claire, we treat your vehicle as if it belonged to us, and our team of competent and experienced technicians know how to restore the luster of your Lexus.
Book an appointment today with our detailing center by contacting us at 1 844 725-3436 or online using our contact form. Also, please note that Spinelli Lexus Pointe-Claire offers numerous seasonal and regularly-updated promotions that you can browse on our website.


You walk in the house after a long day at work, put down your jacket, and notice your children waiting with a baseball and glove in their hands. You can't help but smile as they lead you outside.
It's fun to play with the kids. But it doesn't take long for your son to heave a ball in precisely the wrong direction. You know what will happen, but you still cringe at the tell-tale crack of a broken window.
While your son worries he might get grounded, you calculate how much a new window will cost and how that's going to fit in the monthly budget. Replacing an entire window may seem costly, but you'll save costs in Aurora, IL with window glass replacement installation from Glasshopper.
Full window units can cost hundreds of dollars. Glasshopper Schor Glass offers a better solution: glass replacement.
When you simply replace the glass panes inside your window frame, you get a well-crafted and economical window. Avoid the extravagant costs of unnecessary renovations with our streamlined repairs.
In addition to our residential window glass replacement in Aurora, IL and the surrounding areas, we offer commercial and industrial glass. Whatever you need for your home or business, we have the product you've been looking for.
We know you're busy and don't have time for drawn-out repairs. That's why Glasshopper Schor Glass trains each installation expert to work efficiently without compromising the quality of your glass.
We are so confident in our service that we provide a one-year workmanship warranty.
Call 630-701-6619 to speak with a glass installation expert. Or feel free to visit our storefront in Aurora or send us a message on our contact page.


Opportunity knocks! Gorgeous end unit townhome in gated Deerfield Landing! Completely turnkey, super clean and well maintained. Great kitchen with loads of cabinets and granite counter space, stainless appliances, space for eat in table and chairs, plus separate dining room! Open to family rm w FP. Upstairs has three BR's including Master BR with b'ful spa-like BA, double vanities, spacious closets. Two add'l BR's share generous hall BA. Just in time to get in before pool season!


text:
A Very Harold & Kumar 3D Christmas (2011)
(In theaters, December 2011) I'm not sure there's a more conceptually offensive film out there in theaters at this end of 2011: Whether you're talking about characters who enjoy the stoner lifestyle, a toddler doing cocaine, graphically-portrayed phalluses, Santa Claus getting shot in the face, nude nuns, angels performing sexual favours on a cracked version of Neil Patrick Harris or a murderous waffle-making robot, a straight-up description of the film's content reads like a decadent horror show at the end of civilization. And yet, the series' considerable irreverent charm is intact, and a solid core of moral value underlies the entire film: the story daringly picks up six years later with a grown-up Harold and a arrested-development Kumar, then throws them together in order to come up with a relatively mainstream-friendly conclusion. In-between, though, there's plenty of refreshing hijinks, quasi-experimental segments (just wait for the Claymation stuff, or the 3D-tableau "plan") and meta-fictional laughs about the actor's other careers/roles, 3D gags (I almost regret not seeing this one in 3D) and more irreverence than you'd think possible. It's still a silly comedy for people who like silly comedies, but it's hilarious, fast-paced, sweet without being cloying and a perfectly self-aware third installment in a series –for one thing, it doesn't seem as if it's simply coasting on recycling its previous gags. Both Kal Penn and John Cho are great in the title role, with Neil Patrick Harris once again stealing the show and Danny Trejo joining the cast as a pitch-perfect father-in-law. If you're a fan of the series, don't miss it.
Danny TrejoJohn ChoKal PennNeil Patrick Harris
Previous PostMargin Call (2011)Next PostThe Rise and Fall of the Great Powers, Paul Kennedy


Antique Rose hand dyed silk ribbons, wrapped around handmade paper. You will receive two yards per width: 0.79" and 1.5". Eco friendly, plant dyed. 100% silk ribbon. Beautiful for styling invitation, bouquet, gift wrapping, or as hair tie!


Experienced gardeners rely on a few important tools to make life in the garden much easier.
All of these can be used both in and outside the growing season. Even when all the crops have withered and it's time to prep for the season ahead.
Here are six of the most important garden tools a regular gardener would be grateful for in their arsenal.
If you have manure or compost to move around the garden, or even wood to make another raised bed, a wheelbarrow is a necessity as it can save countless trips back and forth.
They're also ideal when weeding or moving plants which can be composted. Why make ten trips when you can do it all in one?
When you have a significant amount of soil to move, or if you're filling your raised bed, there's nothing better than a spade.
Due to the strength of the spade head, these can be great for cutting through small roots or soil which is still slightly frozen from a spring frost.
These digging spades shouldn't be confused with a shovel. They have a larger, curved face, and are better served as a means of moving large amounts of earth.
These come in two varieties and are intended for different purposes. A fork hoe can break up already dug soil quicker than a regular garden fork.
A heavy duty hoe is ideal when you are trying to break new soil that the digging spade can't handle. These give a more extended reach so you can cover most of your growing bed while standing on the pathway.
As with a garden fork, the fork hoe can be used as a small garden rake if you need to gather weeds or dead leaves. Just be sure not to mix the two and put the weeds on your compost heap.
When on your knees planting seedlings or transplanting plants, trowels are the best tool for digging the small holes required.
Even in hanging baskets, they can move the potting soil to the side so the plant's roots can be placed into the soil without damaging them.
These can also come with a hand-fork style which can be ideal for breaking up soil around a plant without risk of damaging roots.
Good quality trowels constructed from cast are best as cheaper ones can bend when small rocks under the ground are hit.
It might seem too expensive to buy a pressure washer, but the amount of time and work they can save is well worth it.
Homes which have shaded patio areas might be susceptible to growing moss or lichen. This looks unsightly and can become slippery and dangerous. A good pressure washer can remove these traces with hardly any effort.
A patio can look as good as new after half an hour. There are other uses for a pressure washer, and all the mud stuck to your tools or boots can be blasted off in a matter of seconds.
These may seem like a luxury, but find the right one, and you'll wonder how you lived without one!
When you're in the midst of soil preparation, garden forks do what a spade or a hoe can't.
Soil which appears to be impossible to break up will quickly be lightened and turned over. Compost or manure can easily be mixed into your freshly dug earth and spread level.
If you have your own compost heap, these are invaluable and the only tool which is suited to turn your compost.
The tines of the fork break up the clumps and allow air inside. Your plants will thank you for the investment in a good quality garden fork.
These 6 tools are just the basics for serious gardeners and a great place for beginners to start!
If you have limited space and only have raised beds or a container garden you can leave out the digging spade and garden fork.
No matter what tools you opt for, better quality ones are essential as they take a lot of abuse while digging, moving and clearing.
Choose wisely, and on many occasions, it might be worth spending a few extra dollars to make sure your tools will last many seasons.


Abstract This paper reviews the purpose and potential of commodity exchanges in Africa. Drawing from the existing literature and using indicative empirics, it examines the conditions that enable successful exchanges, highlights the special challenges to setting up exchanges in Africa, and reviews alternatives to domestic exchanges. We argue that many critical preconditions for the successful establishment of commodity exchanges in Africa remain binding in the short to medium term. The development of commodity exchanges in the region is impeded by the relatively small size of domestic commodity markets, the weak physical and communication infrastructure, a lack of supportive legal and regulatory environments, and the likelihood of policy interventions, particularly in the staple cereals market. Meanwhile, the demand for a domestic commodity exchange for export crops may be limited due to the availability of well-established exchanges abroad and functioning auction floors. The paper highlights three points: (a) efforts to launch exchanges in Africa should realistically assess whether basic conditions for success can be met, (b) if the pre-conditions cannot be met, the use of existing exchanges abroad or the development of regional exchanges may be more feasible than the establishment of national commodity exchanges, and (c) the goals of risk management and reduced transaction costs might be achieved more effectively by improving market fundamentals through investments in transportation, information services, or other financial institutions.


text:
O RE50 é o modelo da Renault da temporada de  da F1.
Condutores: Patrick Tambay, Derek Warwick e Philippe Streiff.

Resultados
(legenda) (em negrito indica pole position e itálico volta mais rápida)

Carros de Fórmula 1 da Renault


A baby. Obviously the baby wasn't going to bring salvation as a baby. The baby had to grow up. SO what did that mean? That meant everyone had to wait. Well, at least until that baby grew up.
Waiting. A topic not many of us are very good at. At least not in this day and age. However, sometimes the Father sends an answer to a prayer and we have to wait on the right timing.


text:
Trains and Golden Shovels
It's 6.00 a.m. and I'm writing this from a hotel room in Birmingham. I'm here for the Verve Poetry Festival. It's the end of a very good week. I've been so busy I haven't even fitted in a run this week. I haven't given up on the NY resolution though, just too much else going on.
On Sunday it was dog-sitting day again: a couple of long, snowy walks. By the time we went home at 9.00 p.m. there was much snow on Saddleworth roads and a hair-raising drive home. This was worrying because on Monday we were due to travel to Glasgow and it looked as if we might be snowed in. But there was no extra snow overnight and we were taken to the station in a 4×4 car, so apart from a short delay at Piccadilly we were OK. We were in Glasgow by 1.00 p.m. We went to the Museum of Modern Art, walked to George Square, where the striking ship-workers had raised the red flag in the early twenties and had afternoon tea at the Willow Tea Rooms, the décor designed by Charles Rennie Mackintosh. The chairs are designed for aesthetics, but not so much for comfort:
Yes, that is the tops of heads you can see: the chairs are very tall and double as screens to afford some privacy to customers. We had five hours in Glasgow, so only time for a taster; we are definitely up for a weekend break at some time in the future. I had bought first class tickets on the train for Bill's birthday: it wasn't a first-class journey. The heating failed in our carriage—it was 'toasty warm' in the other carriages apparently—and we rode home togged up in coats, hats, scarves and gloves!
On Tuesday I met Hilary for coffee. We discussed the hand-stitched pamphlets we're preparing for our reading in York on Feb 22nd. In the afternoon I spent a couple of hours processing entries for the Poets & Players competition:
https://poetsandplayers.co/competition/competition-2018-closing-date-28-february-2018/ As you can see, there are still ten days to get your entries in, so what are you waiting for?
Tuesday evening, Hilary and I went to the International Anthony Burgess Foundation in Manchester for 'A Body of Words', a talk/reading around food and the body. Kelsie Silverstone read some poems and talked about her fund-raising commitment to 'Beat', an eating disorder charity. She is planning a sponsored head-shave: if you would like to support Kelsie, her Just Giving page can be found through this link: https://www.justgiving.com/fundraising/kelsie-silverstone
Dr Angelica Michelis gave a talk about "the relationship between eating/non-eating bodies and how food, its consumption, digestion and rejection tell us stories about desire, abjection, fear and pleasure, in short – stories about our selves/ourselves." (ref IABF website). Malika Booker read her wonderful poetry, a modern Carribbean take on Bible stories. It was an interesting and thought provoking evening.
Wednesday daytime was taken up with the accounts at the Black Ladd. Of course, it was Valentines Day. I don't subscribe, seeing it as yet another way for consumerism to put my money into the pockets of people who don't need it as much as I do. However, we did go out to eat, prior to seeing the live screening of RSC's Twelfth Night at the Odeon in Oldham. Oh my, it was good. Ade Edmondson played the pompous and down-fallen Malvolio. He was impressive; but my favourite performer was Beruce Khan playing Feste. If you get chance to see it, don't miss it, either live in Stratford or live screened to a cinema near you.
Thursday was taken up with stuff that must be done before I could come away on Friday: ironing, packing, processing competition entries, printing poems for the judge, hand-stitching pamphlets: there aren't enough hours in a day. On Friday, Hilary and I travelled to Birmingham for Verve. On Friday evening there were fantastic poetry readings by Mir Mahfuz Ali, Sasha Dugdale and Karen McCarthy Woolf. Very different poets, but all good. The evening was chaired very efficiently, and with humour, by Jo Bell. I bought, and got signed, Mahfuz Ali's Midnight, Dhaka a very challenging collection of poetry remembering Bangladesh's bloody independence from Pakistan in 1971. I was particularly interested by this collection, because when I was a primary school head-teacher—1993 to 2003—my school served the Bangladeshi community in Hyde. Of course, I knew the history; but the harrowing human element, the extreme suffering of that history, is addressed in this collection.
Saturday was a full-on day. We had breakfast at the hotel then took the fifteen minute walk to Waterstones for a day of poetry at the festival. It started with a poetry breakfast, which didn't include a second breakfast, but it did involve poetry. It was an introduction to the weekend. I had to leave after half an hour because I had a workshop booked with Karen McCarthy Woolf. This was about form, especially little known poetry forms: who has heard of the 'gramofand' for instance? Not me. It's a form that makes near-anagrams of the title of a poem in the end words of its lines—I think. There is an example in McCarthy Woolf's first collection An Aviary of Small Birds. 'Emotions' plays with that title throughout the poem. But mostly we were exploring the 'golden shovel', a form where you take a striking line from a published poem and use the words of that line as end-words of the lines of your own poem. I've experimented with this form before, but we studied it in more detail yesterday. We even heard a wonderful recording of Gwendolyn Brooks reading 'The Pool Players', the short poem that inspired Terrance Hayes to invent the form in the first place: https://www.poetryfoundation.org/poems/55678/the-golden-shovel
I had an afternoon free after the workshop so I walked around The Bullring, a mass of humanity on a Saturday afternoon, then walked back to the hotel for a brew and a glass of wine in the bar before returning to Waterstones for the evening readings by Pascale Petit, Hannah Lowe and Sandeep Parmar. Pascale read from Mama Amazonica, which was a real treat for me; Hannah Lowe impressed: she is funny and entertaining and her poetry is brilliant. She reminded me a lot of Kim Moore. I bought her collection Chan, which she signed for me. Sandeep read from her collection Eidolon, a modern retelling of the Helen of Troy myth, questioning the patriarchal interpretations of history. The Q&A session after the readings was interesting. After a short break there was another event, the Out-Spoken Press showcase, with interesting readings by 'performance' poets. My favourite was Bridget Minamore's reading from her collection Titanic, reliving the breakdown of a love affair. It wasn't all broken hearts and teardrops though; it was funny and poignant and her delivery was thoroughly entertaining. I might buy her collection today. Carribean food was served during the interval as well, compliments of the festival organisers. Well, even poets need to eat. The vegetable curry was lovely. We were so buzzed-up by poetry that it was well after midnight before we were ready for sleep.
And here I am, awake at 6.00 a.m. writing all about it. You may have noticed I haven't mentioned PhD once in this blog post. That's because I haven't been able to fit it in anywhere, except inside my head. It is a constant psychological presence, and the notes I took from last night's Q&A session, particularly Pascale Petit's responses, were all with that in mind. I promise it will feature more next week, by hook or crook.
Here's a poem, a 'golden shovel' I wrote for Carrie Etter's NaPoWriMo last April—she's planning another event for this April if you're a poet and you're on Facebook and you fancy it. My 'shovel' takes that famous opening line from Sylvia Plath's poem 'Morning Song' and uses the words of that line as the end words of the lines of my poem 'Making Cakes'. After yesterday's workshop, it would probably be a different poem, but it was my first 'golden shovel'. I'll try harder in future, I promise.
Making Cakes
after Sylvia Plath's 'Morning Song'
When I think of you baking, it's about love—
the way you lay out your ingredients, set
out bowls and spoons before you begin. You
work in your own way, no recipe, say going
to a recipe book is a waste of time—shortcuts like
weighing eggs, then equal measures of butter, sugar, flour: a
perfect Victoria sponge, this is your way. Your cakes are fat
monuments to Demeter, spread with jam and that gold
impersonator, buttercream. I'll just pull up a chair to watch.


Chewy Chocolate Chip Oatmeal Cookies.
I know. Gross. I can barely even think of a raisin without cringing.
I'm just not into them. I can't chew something that is labeled plump and shriveled at the same time. I like the words plump and shriveled to pertain to warm, cuddly and loving grandmas who knit blankets and scarves and drink hot cocoa. Not my food.
Sometimes I accidentally eat a raisin when I shovel handfuls of salty trail mix into my mouth. Other times I accidentally eat a raisin when I'm picking every single chocolate chip out of a bag of trail mix. Occasionally I bite into a warm, gooey cookie expecting to find a melted chocolate chip ribbon, only to discover… a raisin. Then I cry. Ew.
Sometimes I can snack on one or two raisins, but I'm really just… judging them.
Luckily… these cookies have nothing to do with raisins. Lovely, right?
Instead of raisins, I stuffed thick oatmeal cookies with a boatload of chocolate chips. Large and in charge cookies. I underbaked them slightly, resulting in a super chewy and gooey cookie with the perfect chocolate ribbons I crave. Then I ate them. Almost all of them. They complete me.
Beat butter and sugars with an electric mixer until smooth. Add egg and vanilla, mixing well until combined, about 2 minutes. Stir in flour, baking powder, salt, and 1 1/2 teaspoons cinnamon with the mixer on medium speed. Beat in oats. Mix until dough comes together. Add in 1 tablespoon milk if the dough is crumbly. If dough is still crumbly, add milk 1 tablespoon at a time until it comes together. Fold in chocolate chips. Refrigerate for 30 minutes.
Remove dough from fridge and roll into big 1 1/2 inch balls. Set on a baking sheet about 2 inches apart. Lightly press down on dough to flatten it. Bake at 375 for 9-11 minutes.
Grilled Corn and Tomato Fettuccine.
I've Barely Taken Any Pictures.
These were awesome, exactly what I wanted, a little crisp on the outside and soft and chewy on the inside. I only used about half the cinnamon, I didn't chill them or squish them before baking and they turned out wonderful too!
I've been looking for a smaller batch recipe without 3 cups of oats since I just have 1 left! Can't wait to try these–I typically bake from a box so I'll report back.
Me too! So glad I found this one!
very sticky, though i really liked it!
Awesome oatmeal cookies! I didn't chill the dough. Flattened them after they were baked. Added 1/2 teaspoon of nutmeg, 1/4 cup of broken walnuts and a small amount of dried cranberries. No kiddin', the best oatmeal cookie I've ever eaten. Thanks for the recipe….
This is honestly the best recipe I have tried so far! Thank you for sharing! They're perfectly chewy.


text:
PRIONS 1:14
Tabitha asks, or should I say commands with purpose, "Remember the Bible story about the garden of Eden?"
Kevin replies with sarcasm, "The myth about the talking snake, and the man fooled into eating an apple?"
"It's not a myth; it's very real, it's a literal story, translated into base components for primitive minds to understand."
"A talking snake is real?"
"Have you ever communicated with an animal? A dog or a close pet?"
"Did the dog say words?"
"No." Then reflectively, "But it could understand my emotions, and I could understand its intent."
"When a fierce dog growls, you bet you can understand — By the way, in Genesis, it wasn't a snake, it was a serpent; and it wasn't an apple, it was the fruit of knowledge. Further, at the time, men had not yet developed spoken language, so Adam was able to communicate through emotions far better than a modern, so-called-civilized man can communicate with a dog.
As man has evolved, through the ages, we've become more and more dependent on language as a means of communication; less and less do we hear base emotions — primitive raw emotion IS communication, a universal language easily understood by all animals — but you know that already.
I do not want to spend any more time quibbling on whether or not Eden was a real place, or whether or not a serpent, representing The Devil can actually talk with words — it's not important for you, at this time, to accept the literal story. If you prefer, call Genesis a divine metaphor to teach man profound spiritual Truth. Genesis is the word of God, translated into the words of man. It's a story about man's nature, and how to destroy man through deception. Why did you become a pig Kevin? What transformed you?"
"Those others did it. Those kids playing on the beach, they cast a spell on me."
"So you were victimized?"
"Maybe I deserved it, but, yes, I was transformed by their majik."
"No! They did not transform you Kevin — you transfigured yourself! They deceived you. Many have been deceived; many have fallen; many have been separated from the presence of God. Genesis is about man's divine nature, and about the ultimate perversion of divine nature. A core lesson of Genesis — at its root — Genesis is a story of deicide, how to destroy a god — how to make a god into something he's not. Man are gods from birth, only by deception can we become lower than this.
26 Then God said, "Let us make mankind in our image, in our likeness, so that they may rule over the fish in the sea and the birds in the sky, over the livestock and all the wild animals, and over all the creatures that move along the ground."
27 So God created mankind in His Own Image, in the image of God He created them; male and female He created them.
Tabitha booms with emotion, as if trying by sheer force of her will to implant — then cement — a message into Kevin's head, "God made you in His image! You are A god! Not THE God — A god. You are divine by nature. You can do everything He can do. And what can God do? He can create the universe, then transform it to his wishes with a conceived idea and intensely focussed energy and emotion. Everything in the universe that currently exists was created by this divine Process: focus, energy, and emotion.
1 In the beginning God created the heavens and the earth.
2 Now the earth was formless and empty, darkness was over the surface of the deep, and the Spirit of God was hovering over the waters.
3 And God said, "Let there be light!" and there was light.
God said, 'Let there be light!' Four simple words uttered from God forged the universe, and all its laws as we know it. Did God have to speak these words aloud? Irrelevant. What is relevant is this is the power you have, it's the power all men have. This is the highest plane of existence, men, connected with God as creators. You are a creator! All men create with just their thoughts.
The lie in Eden, the deception of the serpent was that man are NOT gods. That's why Adam fell, he was fooled into believing he was NOT like god. Just like you were deceived into believing you were a pig. And the serpent said to the man, 'do this and you'll be like God.' That's a deception. We do not need to do anything to 'be like God,' that is how we were created! We were formed in God's image, by definition WE are like God!
Question, what would happen to a god, who by it's divine nature, could create an UNLIMITED amount of food, had an UNLIMITED stomach, yet could not control his ravenous hunger? What if a god could be convinced he was not a 'man formed in God's image,' but rather a pig?"
"He'd gorge a never ending stream of vomit for eternity."
"And where does the vomit come from?"
"The god transformed into a pig creates the vomit — he so enjoys eating — manifests the vomit from nothingness into reality by focus, energy, and emotion. A never ending stream of vomit."
"Very good Kevin!" Tabitha smiles, then continues, "I have a nephew named Jeremy, smart kid, very smart. Always excelled in school growing up, people liked him. Had lots of friends, girls loved him. Then he tried crack-cocaine, a life changing experience. Why would anyone intelligent try crack-cocaine? What kind of deception would it take?
All the horror stories, all the death associated with the scourge of that substance in the 80s and early 90s — how was a smart kid deceived by others into trying it? What sexy woman deceived him into trying it? Was he trying to impress others? Was it an inability, as a people pleaser, for him to say no to anyone? Or, what kind of deception did Jeremy tell himself, the day he went looking for cocaine? Or, what message did the serpent whisper into Jeremy's ear, perhaps for months, before he tried it? I'll never know.
When Jeremy first tried crack he changed forever — his 'eyes were opened' to quote Genesis. This substance, this chemical was IT for him. Jeremy pursued his 'panacea' with all the enthusiasm of a swine pursuing vomit. He dropped out of high school, began stealing to obtain his drug — committed his life to pursuing this single desire. Then they caught him; he did a one year bid for burglary.
Jeremy came out of prison addiction free, then went right back to cocaine — then the cycle started. A condition of his parole was to remain substance free — they piss tested him regularly — eventually he was back in jail.
Jeremy's appetite for the substance increased — he needed more and more to achieve the same euphoria. As a people person, he knew everyone, and so whenever he chose to indulge in his now $1000 a day cocaine habit — this high school drop out found a way to CREATE the substance! How many intelligent people do you know who earn $1000 a day? Jeremy, like all men are born gods — users of magick — manifestors of anything they desire.
Jeremy would get clean for a while, get a job, attend AA and NA meetings — get on the right path — then the substance would call to him.
Jeremy's drug binges would start with a $50 cocaine purchase — he knew where to buy it — knew the right people — had the connections. With that $50 purchase from a distributor — who liked Jeremy and sold to him wholesale — Jeremy sold some at retail, doubled his money, used a little — then purchased bigger quantities, repeating the process. Thousands and thousands of dollars in cash transactions he closed, and more and more substance he consumed.
Jeremy never saw a need to build a business, he cared nothing for money — but Jeremy created a real cocaine-distribution business as an ancillary need. A god can always create as much as he needs — a driven addict IS a god, just like you and I — (a powerful, motivated-yet-twisted god who has become lower than any animal in higher purpose.) With Jeremy's skill-set he could have been a billionaire — instead he's lost."
"Can't you save him?"
"You listened to my voice for a thousand years before lifting your pig-snout from the vomit! I'm not sure I can save you. It remains to be seen whether you can be saved."
"I've never been an addict; never did drugs in my life."
"Not all addictions are drugs. Any habitual death-seeking behavior is an addiction. Any vice you can't control is vomit. A wizard who seeks death is a danger to himself, and the entire human race. To convince a man — the image of God — a god — to destroy himself is really a simple process: 1. Convince the man he is NOT a creator of reality — not a god. Deceive the man — convince him he has a deficiency of some sort. 2. Convince the man that a destructive behavior will lead to a desired outcome, a better place."
Kevin, in the process of working through Tabitha's words in his mind, removes a glass bottle of Coke embedded in ice from his cooler; takes a long swig. "So what was I doing wrong when I attempted to work majik?"
"Kevin, there's so much for you to learn! You can't create majik the way you're going about it, or, more precisely, your efforts will lead to your destruction — if, they even work at all."
She looks at Kevin with astonishment, "Are you really —"
"Hello!" A man's voice, booming from the sky, interrupts Tabitha mid thought. With his voice, the beach, the houses, the ocean all ripple and swirl — a kaleidoscope of colors — as if this whole world was made of liquid, and a cinder block was thrown into the center, causing a reverberating disturbance.
Tabitha looks up at Kevin and says, "Looks like the pigs have arrived. Time for you to go, Evan."
Read more: PRIONS
Posted in CONCUSSION, MAJIK, PRIONS, RELIGION, SALES, THE FURAI COMPILATION, WARFIGHTINGTagged aa, addiction, bible secrets, black magicians, black magick, cast a spell, cast spell, cocaine, communication, CONCUSSION, crack, creation, deicide, drug addict, eden, emotion, emotions, end addiction, focus energy emotion, free yourself of addiction, garden of eden, genesis, hex, magick, magick 101, mainstream religion, mind reading, na, nonverbal communication, prion, PRIONS, read the bible, reading minds, reading people, satan, spiritual truth, the bible, the deceiver, the devil, THE FURAI COMPILATION, the serpent, universal language, you are a god
Previous Ted Cruz's False Religion
Next PRIONS 1:13


text:
NY: Some Game Farm animals ...
Lion cub and baby deer ...
NY: Some Game Farm animals headed to canned hunts, Humane Society says
By Joshua M. Rinaldi , Freeman staff
The Humane Society of the United States alleges that two dealers known to sell animals to people operating canned hunts purchased animals at the Catskill Game Farm auction on Oct. 18.
"These are tamed animals, that people once hand-fed, that are now going to be mounted on someone's wall," said Andrew Page, manager of the Humane Society's anti-hunting campaign.
Fearing the worst, the Humane Society sent three people to the auction to monitor who was buying animals. The two dealers in question have been known to sell animals to canned hunts in Texas and purchased antlered fallow deer, yak and red deer, among other animals, Page said. One dealer spent more than $22,000, he said.
"It's what we expected and what we had kind of warned the public of since the beginning," Page said.
Catskill Game Farm owner Kathie Schulz, who closed the operation earlier this month after 73 years in business, could not be reached for comment on Thursday. She previously said the Game Farm would not sell any of its animals to operators of canned hunts, which allow people to shoot exotic animals at close range in a controlled environment. However, the auction was open to all, and permits were required for the purchase of only six species.
The Game Farm, off state Route 32 in Catskill, auctioned about half of its 2,000 animals – along with rides and various pieces of equipment – on Oct. 18, two months after Schulz announced the hands-on zoo was going out of business.
The animals that weren't auctioned were sent to sanctuaries or remained in Schulz's family's private collection, she said previously.
The Humane Society petitioned the U.S. Department of Agriculture to monitor the auction, but the USDA replied that it did not have any authority in such matters.
While the Humane Society monitored the auction inside the Game Farm's gates, other animals rights activists – calling themselves Advocates for Game Farm Animals – staged a protest outside, on Game Farm Road, during the zoo's final weekend of operation.
Some of the advocates also aligned with a similar group in Washington, D.C., and bought 205 animals at the auction, including two rhinos and a warthog that went for $9,000.
"It was the last thing we could do to save some lives," said Jim Van Alstine of the advocacy group.
The animals purchased by the coalition will go to sanctuaries or private owners, Van Alstine said. He said animal rights groups usually don't buy animals during auctions – because it simply gives the owners money to buy more animals – but the coalition made an exception in this case because the Catskill Game Farm was going out of business.
"Or course, we would have liked to get more (animals) out, but we got quite a few out and more than I thought possible a few weeks ago," he said.
Page fears the animals allegedly sold to canned hunt dealers are lost, but he hopes the Catskill Game Farm auction will help generate legislation to ban canned hunts nationwide.
"Ultimately, getting an animal at an auction is not illegal, which illustrated the need for legislation," he said.
More than 20 states currently ban canned hunts, Page said. New York is not one of them.
74969&newsid=17384608&PAG=461&rfi=9
Lion cub and baby deer are close pals in Qatar zoo
Women train exotic pets — and husbands, too
Oregon: Zoo euthanizes rare Amur leopard
PORTLAND — Oregon Zoo veterinarians euthanized Fred, a rare, 17-year-old Amur leopard, who had ...
BCR November 20, 2008
Zoo director says tiger wall lower than recommended height
Zoo director says tiger wall lower than recommended height SAN JOSE, Calif. (AP) ...
BCR December 29, 2007
MP HC seeks Union, State govt reply on tiger's decline
MP HC seeks Union, State govt reply on tiger's decline 6/25/2009 The Madhya Pradesh ...


text:
I'm OFF!
"On Conditions"
By Francis W. Porretto in political combat
Way, way back at the dawn of history, when I was a wee lad and IBM still ruled the computer industry, I was briefly focused on learning a language that has since passed into obscurity. It was IBM's "everything" language: PL/I. The computer giant had dedicated serious resources to develop a language that would be "all things to all men." It would satisfy the science nerds who programmed in FORTRAN. It would please the commercial wonks who programmed in COBOL. And it would mollify the academics who believed that ALGOL was the only decent way to express an algorithm.
PL/I was one of the first languages to be too big for the computers on which it was used. The PL/I compiler for the IBM 360/65 on which I learned it made over 80 passes over the source code before it could create a relocatable object module. Why? Well, when your compiler's design objectives include the ability to compile FORTRAN and COBOL code without modifications, you have a few obstacles to surmount. I knew a couple of PL/I freaks who used up more time running the compiler than they did on the execution of their applications. After I'd played with it a bit, I grew disgusted and decided to turn my attention to "the language of the gods:" IBM 360 assembly language. Some of the mistakes I made in IBM assembler were glorious enough to shut down the entire computing center. One of them is still memorialized on that building's Wall of Fame.
(Hey, if you'd managed to code an error so severe that all OS/360 had to say about it was "I'm sorry. You've made a mistake. I think I'll be dying now," you'd be pretty proud of it too.)
But enough of that. I was just thinking about one of PL/I's innovations: the ON CONDITION statement. This feature, new among programming languages in its day, specified a condition which required special, "emergency" handling. When the condition was recognized by the program, it would trigger an immediate transfer of control to a designated routine that would handle it. A program could specify several such conditions and handlers for them.
Societies have "ON CONDITIONS" built into them, too. Most don't explicitly "code handlers" for them. Nevertheless, they exist. Thomas Jefferson – remember him? – explicitly noted one in what the late Gene Burns liked to call "the birth document of the Republic:"
…when a long train of abuses and usurpations, pursuing invariably the same Object evinces a design to reduce them under absolute Despotism, it is their right, it is their duty, to throw off such Government, and to provide new Guards for their future security.
However, societies are a bit more uncertain about whether they've detected the indicated condition than are computer programs.
It might seem a bit disconnected, but what has the above on my mind are two recent developments, one more recent than the other. The first is nicely expressed by a graphic I stole from Ninety Miles From Tyranny:
That's an ongoing condition that many well-meaning Americans, averse to "offending" anyone regardless of the reason or the context, have been coping with for about thirty years. I'm sure my Gentle Readers have detected it, though what their personal ON CONDITION handlers have done about it has varied widely.
My ON CONDITION handler immediately acts to reinforce and intensify the "offense" whenever the occasion arises. The reactions have been uniformly gratifying. The "offended" are seldom aware of the First Amendment to the Constitution. It appalls them to be informed that it's not illegal to abrade their sensibilities. Their ON CONDITION OFFENDED handlers usually prove inadequate. Express their disapproval orally? No effect. Swing at me? Not recommended; I'm old and conspicuously armed. That leaves sputtering in outrage, which buys them nothing.
(No, I'm not a "nice person." But you knew that already.)
I believe this is the only way to defeat the cancer of "political correctness" which has done such harm to American public discourse. The "offended" seek to silence us. They'd like to render any expression of disapproved sentiment illegal, but failing that they'll use the "offense" weapon for whatever it can buy them. Until the "purchasing power" of being "offended" drops to zero, their campaign to censor the rest of us will continue.
The second item of interest is the odious Hunter Biden and his sale of his "art." Great God in heaven! If there's ever in the history of the world been a less talented "artist," that worthy's name has gone unrecorded. Indeed, several of those "artworks" were created by blowing paint through a straw. In what bizarre universe is this considered an artistic technique?
But wait: there's more! According to the reports, the gallery holding this sale will keep the names of the purchasers confidential! Thus, huge amounts of money can be funneled to Hunter Biden for his trash "artworks" without anyone knowing the sources. Is it not superb!
How much more outrageous does arrant, undisguised corruption have to get before it triggers America's ON CONDITION handler?
Perhaps the problem is that American patriots have only one "programmed response:"
While it is a bit wholesale, that response is well suited to a state of affairs in which a gaggle of totalitarians have captured the federal government and are busily working to destroy the nation. But our ON CONDITION handler has defined the condition to a high degree of detail – perhaps too high. The narrowness of that definition might have emboldened those whose aim is "to reduce [us] under absolute Despotism." They're taking larger and larger "slices" of our "salami." And that means that, in Larry Correia's words, when the handler is finally triggered, it will "make Bosnia look like a trip to Disneyworld."
I don't like what I've been thinking. However, dispelling it and concentrating on purely personal matters has proved ever more difficult as the Usurpers have progressed. What about you, Gentle Reader?
Clayton Barnett on June 19, 2021 at 8:47 AM
Like most, "all I ask to be let alone." That, of course, is impossible so long as a single goodwhite thinks there is one badwhite left in the world. Still, I restock things at my DayJob and scribble stories in the evenings, trying to keep my head down.
A significant change in the background, as I have warned my wife, is that my kids are no longer at home. Prior to that, had my Bolshevik neighbors summoned a truck-full of BLM/Antifa, we would have put the lights out and waited in the basement for the morning.
Now? No. The switch will be flipped. I pray to not see that day.
Steve Walton on June 19, 2021 at 10:22 AM
Interrupt Service Routines can be a real bitch. You need to be careful about what happens if you receive an interrupt whilst servicing another…and another…and another…
SteveF on June 20, 2021 at 3:41 PM
Until the "purchasing power" of being "offended" drops to zero
Similar to the almighty accusations of racism, I think that "I'm offended!" has worn out its welcome.
I don't like what I've been thinking. … What about you, Gentle Reader?
I'm making plans not only for defense of myself and my children but for retribution for a long train of abuses and usurpations. I'm not nice, and I'm patriotic to the ideals of my nation and to my culture.
Bear Claw Chris Lapp on June 20, 2021 at 10:20 PM
Quote of unknown origin but dead on I believe.
"The most terrifying force of death, comes from the hands of "Men who wanted to be left Alone".
They try, so very hard, to mind their own business and provide for themselves and those they love.
They resist every impulse to fight back, knowing the forced and permanent change of life that will come from it.
They know, that the moment they fight back, the lives as they have lived them, are over.
The moment the "Men who wanted to be left Alone" are forced to fight back, it is a small form of suicide. They are literally killing off who they used to be. . . .
Which is why, when forced to take up violence, these "Men who wanted to be left Alone", fight with unholy vengeance against those who murdered their former lives. They fight with raw hate, and a drive that cannot be fathomed by those who are merely play-acting at politics and terror. TRUE TERROR will arrive at the Left's door, and they will cry, scream, and beg for mercy . . . . but it will fall upon deaf ears."


Application Submission for Tamilnadu Common Entrance Test (TANCET 2015) has already started from April 01, 2015 and will end on April 20, 2015.
Eligible candidates can apply for TANCET 2015 at its official website (click here).
TANCET 2015 exam is scheduled for May 16-17, 2015.
Tamilnadu Common Entrance Test (TANCET 2015) will be conducted by Anna University Chennai on behalf of the Govt. of Tamil Nadu for candidates who seek admission to Master of Business Administration (MBA), Master of Computer Applications (MCA), Master of Engineering (M.E), Master of Technology (M.Tech), Master of Architecture (M.Arch), Master of Planning (M.Plan) Degree programmes in Tamil Nadu for the year 2015-16.
Admit cards for TANCET 2015 will be available from the first week of May 2015.
For complete details on TANCET 2015 eligibility, application process, Exam centres and imp dates click here.


This course covers key components of project management including project environment and organization, project planning, methodologies and strategies, team organization and communications planning, and stakeholder management.
At the end of the course, the student will be able to identify various organizational structures, leadership models, and project structure methodologies, utilize effective stakeholder management and communication strategies, and understand how project planning methodology influences the success of a project. Additionally, the student should feel more equipped to handle the ambiguities in power dynamics, inconsistent authority, and title-less influence necessary in every project management role.