uniform half4 colorGreen;
uniform half4 colorRed;
bool switch_fallthrough_twice_0(int value);
bool switch_fallthrough_twice_0(int value)
{
	bool ok = false;
	switch (value) 
	{
		case 0:break;
		case 1:case 2:case 3:ok = true;
		break;
		default:break;
	}
	return ok;
}
half4 main(float2 coords)
{
	int x = int(colorGreen.y);
	bool _0_ok = false;
	switch (x) 
	{
		case 2:break;
		case 1:case 0:_0_ok = true;
		break;
		default:break;
	}
	return half4(_0_ok && switch_fallthrough_twice_0(x) ? colorGreen : colorRed);
}
