Se presenta un análisis preliminar de correlación de la Pérdida
Indeterminada Porcentual (%) de PSA para la Zafra
2023-2024.
Gráficos de Dispersión Variables Correlacionadas
Temperatura Masa Tacho Continuo 1A
ggplot(df, aes(x=Temperatura.masa.1A...F..TT595504, y=Pérdidas.indeterminadas)) +
geom_point(
color="orange",
fill="#69b3a2",
shape=21,
alpha=0.5,
size=6,
stroke = 2
) +
geom_smooth(method=lm , color="blue", fill="#69b3a2", se=TRUE) +
ggtitle("Pérdida Indeterminada vrs. Temperatura Masa 1A") +
xlab("Temperatura Masa 1A (°F)") + ylab("Pérdida Indeterminada (%)")

Nivel Vaso A4
ggplot(df, aes(x=Nivel.Vaso.A4.....LT58A404, y=Pérdidas.indeterminadas)) +
geom_point(
color="orange",
fill="#69b3a2",
shape=21,
alpha=0.5,
size=6,
stroke = 2
) +
geom_smooth(method=lm , color="blue", fill="#69b3a2", se=TRUE) +
ggtitle("Perdida Indeterminada vrs. Nivel Vaso A4") +
xlab("Nivel Vaso A4 (%)") + ylab("Pérdida Indeterminada (%)")

Caña Quemada
ggplot(df, aes(x=Total.de.caña.quemada..t..4737, y=Pérdidas.indeterminadas)) +
geom_point(
color="orange",
fill="#69b3a2",
shape=21,
alpha=0.5,
size=6,
stroke = 2
) +
geom_smooth(method=lm , color="blue", fill="#69b3a2", se=TRUE) +
ggtitle("Perdida Indeterminada vrs. Caña Quemada") +
xlab("Caña Quemada (t)") + ylab("Pérdida Indeterminada (%)")

Transmitancia Jugo Claro
ggplot(df, aes(x=Transmitancia.Jugo.Claro, y=Pérdidas.indeterminadas)) +
geom_point(
color="orange",
fill="#69b3a2",
shape=21,
alpha=0.5,
size=6,
stroke = 2
) +
geom_smooth(method=lm , color="blue", fill="#69b3a2", se=TRUE) +
ggtitle("Perdida Indeterminada vrs. Transmitancia Jugo Claro") +
xlab("Transmitancia Jugo Claro (%)") + ylab("Pérdida Indeterminada (%)")

Dia de Zafra
ggplot(df, aes(x=Dia.Zafra, y=Pérdidas.indeterminadas)) +
geom_point(
color="orange",
fill="#69b3a2",
shape=21,
alpha=0.5,
size=6,
stroke = 2
) +
geom_smooth(method=lm , color="blue", fill="#69b3a2", se=TRUE) +
ggtitle("Perdida Indeterminada vrs. Dia de Zafra") +
xlab("Dia de Zafra") + ylab("Pérdida Indeterminada (%)")

Nivel Vaso D4
ggplot(df, aes(x=Nivel.Vaso.D4.....LT584704, y=Pérdidas.indeterminadas)) +
geom_point(
color="orange",
fill="#69b3a2",
shape=21,
alpha=0.5,
size=6,
stroke = 2
) +
geom_smooth(method=lm , color="blue", fill="#69b3a2", se=TRUE) +
ggtitle("Perdida Indeterminada vrs. Nivel Vaso D4") +
xlab("Nivel Vaso D4 (%)") + ylab("Pérdida Indeterminada (%)")

Retención de Masa C (%)
ggplot(df, aes(x=Retención.Masa.C, y=Pérdidas.indeterminadas)) +
geom_point(
color="orange",
fill="#69b3a2",
shape=21,
alpha=0.5,
size=6,
stroke = 2
) +
geom_smooth(method=lm , color="blue", fill="#69b3a2", se=TRUE) +
ggtitle("Perdida Indeterminada vrs. Retención Masa C") +
xlab("Retención Masa C (%)") + ylab("Pérdida Indeterminada (%)")

Flujo Wash 1A (gpm)
ggplot(df, aes(x=Flujo.Wash.1A..gpm..FT594704, y=Pérdidas.indeterminadas)) +
geom_point(
color="orange",
fill="#69b3a2",
shape=21,
alpha=0.5,
size=6,
stroke = 2
) +
geom_smooth(method=lm , color="blue", fill="#69b3a2", se=TRUE) +
ggtitle("Perdida Indeterminada vrs. Flujo Wash 1A") +
xlab("Flujo Wash 1A (gpm)") + ylab("Pérdida Indeterminada (%)")

Trash Total (%)
ggplot(df, aes(x=Trash.Total, y=Pérdidas.indeterminadas)) +
geom_point(
color="orange",
fill="#69b3a2",
shape=21,
alpha=0.5,
size=6,
stroke = 2
) +
geom_smooth(method=lm , color="blue", fill="#69b3a2", se=TRUE) +
ggtitle("Perdida Indeterminada vrs. Trash Total") +
xlab("Trash Total (%)") + ylab("Pérdida Indeterminada (%)")

Vacio Tacho 13 Semilla (%)
ggplot(df, aes(x=Vacio.tacho.13.semilla.tacho.continuo..PSIA..PT594102, y=Pérdidas.indeterminadas)) +
geom_point(
color="orange",
fill="#69b3a2",
shape=21,
alpha=0.5,
size=6,
stroke = 2
) +
geom_smooth(method=lm , color="blue", fill="#69b3a2", se=TRUE) +
ggtitle("Perdida Indeterminada vrs. Vacío Tacho 13") +
xlab("Vacío Tacho 13 (psia)") + ylab("Pérdida Indeterminada (%)")

Trash Caña Mecanizada
ggplot(df, aes(x=Trash.de.caña.mecanizada..Kg..6054, y=Pérdidas.indeterminadas)) +
geom_point(
color="orange",
fill="#69b3a2",
shape=21,
alpha=0.5,
size=6,
stroke = 2
) +
geom_smooth(method=lm , color="blue", fill="#69b3a2", se=TRUE) +
ggtitle("Perdida Indeterminada vrs. Trash Caña Mecanizada") +
xlab("Trash Caña Mecanizada (%)") + ylab("Pérdida Indeterminada (%)")

Carrera Tacho Continuo 2A
ggplot(df, aes(x=Flujo.meladura.tacho.continuo.2A...gal.min..FT59650Ta, y=Pérdidas.indeterminadas)) +
geom_point(
color="orange",
fill="#69b3a2",
shape=21,
alpha=0.5,
size=6,
stroke = 2
) +
geom_smooth(method=lm , color="blue", fill="#69b3a2", se=TRUE) +
ggtitle("Perdida Indeterminada vrs. Carrera Tacho Continuo") +
xlab("Flujo Tacho Continuo 2A (gpm)") + ylab("Pérdida Indeterminada (%)")

Caña Quemada antes de 36 horas
ggplot(df, aes(x=Caña.quemada.antes.de.36.h..t..4738, y=Pérdidas.indeterminadas)) +
geom_point(
color="orange",
fill="#69b3a2",
shape=21,
alpha=0.5,
size=6,
stroke = 2
) +
geom_smooth(method=lm , color="blue", fill="#69b3a2", se=TRUE) +
ggtitle("Perdida Indeterminada vrs. Caña Quemada < 36 horas") +
xlab("Caña Quemada < 36 horas (t)") + ylab("Pérdida Indeterminada (%)")

Floculante a Meladura
ggplot(df, aes(x=Floculante.meladura...Kg..4796, y=Pérdidas.indeterminadas)) +
geom_point(
color="orange",
fill="#69b3a2",
shape=21,
alpha=0.5,
size=6,
stroke = 2
) +
geom_smooth(method=lm , color="blue", fill="#69b3a2", se=TRUE) +
ggtitle("Perdida Indeterminada vrs. Caña Quemada < 36 horas") +
xlab("Caña Quemada < 36 horas (t)") + ylab("Pérdida Indeterminada (%)")

Hojas Maleza Trash
ggplot(df, aes(x=Hojas.maleza.trash, y=Pérdidas.indeterminadas)) +
geom_point(
color="orange",
fill="#69b3a2",
shape=21,
alpha=0.5,
size=6,
stroke = 2
) +
geom_smooth(method=lm , color="blue", fill="#69b3a2", se=TRUE) +
ggtitle("Perdida Indeterminada vrs. Hojas Maleza Trash") +
xlab("Hojas Maleza Trash (%)") + ylab("Pérdida Indeterminada (%)")

Nivel Promedio Efecto C
ggplot(df, aes(x=Nivel.promedio.efecto.C.....LT_MediaQuintuplesC, y=Pérdidas.indeterminadas)) +
geom_point(
color="orange",
fill="#69b3a2",
shape=21,
alpha=0.5,
size=6,
stroke = 2
) +
geom_smooth(method=lm , color="blue", fill="#69b3a2", se=TRUE) +
ggtitle("Perdida Indeterminada vrs. Nivel Medio Efecto C") +
xlab("Nivel Medio Efecto C (%)") + ylab("Pérdida Indeterminada (%)")

Caña Molida Diaria
ggplot(df, aes(x=Caña.molida.dia..t..1, y=Pérdidas.indeterminadas)) +
geom_point(
color="orange",
fill="#69b3a2",
shape=21,
alpha=0.5,
size=6,
stroke = 2
) +
geom_smooth(method=lm , color="blue", fill="#69b3a2", se=TRUE) +
ggtitle("Perdida Indeterminada vrs. Caña Molida por Día") +
xlab("Caña Molida por Día (t)") + ylab("Pérdida Indeterminada (%)")

Pureza Miel Final
ggplot(df, aes(x=Pureza.Miel.final, y=Pérdidas.indeterminadas)) +
geom_point(
color="orange",
fill="#69b3a2",
shape=21,
alpha=0.5,
size=6,
stroke = 2
) +
geom_smooth(method=lm , color="blue", fill="#69b3a2", se=TRUE) +
ggtitle("Perdida Indeterminada vrs. Pureza Miel Final") +
xlab("Pureza Miel Final (%)") + ylab("Pérdida Indeterminada (%)")

LS0tDQp0aXRsZTogIkFuw6FsaXNpcyBQw6lyZGlkYXMgSW5kZXRlcm1pbmFkYXMgUFNBIDIwMjQiDQpvdXRwdXQ6DQogIGh0bWxfZG9jdW1lbnQ6DQogICAgZGZfcHJpbnQ6IHBhZ2VkDQotLS0NCg0KU2UgcHJlc2VudGEgdW4gYW7DoWxpc2lzIHByZWxpbWluYXIgZGUgY29ycmVsYWNpw7NuIGRlIGxhIFDDqXJkaWRhIEluZGV0ZXJtaW5hZGEgUG9yY2VudHVhbCAoJSkgZGUgUFNBIHBhcmEgbGEgKipaYWZyYSAyMDIzLTIwMjQqKi4NCg0KKk5vdGE6IE5vIGVzIHVuIGFuw6FsaXNpcyBkZSBjYXVzYWxpZGFkLiBFc3RlIHNlIHByb3ZlZXLDoSBhbCBkaXNjdXRpciBsb3MgcmVzdWx0YWRvcyBjb24gZXhwZXJ0b3MgZGVsIHByb2Nlc28uKg0KDQpMaWJyZXLDrWFzDQpgYGB7cn0NCmxpYnJhcnkoZHBseXIpDQpsaWJyYXJ5KG1hZ3JpdHRyKQ0KbGlicmFyeShtbGJlbmNoKQ0KbGlicmFyeShjYXJldCkNCmxpYnJhcnkoZ2dwbG90MikNCmxpYnJhcnkocGxvdGx5KQ0KbGlicmFyeShocmJydGhlbWVzKQ0KbGlicmFyeShsYXJlcykNCmBgYA0KDQoNCg0KIyMjIERhdGFzZXQgZGUgUMOpcmRpZGFzIEluZGV0ZXJtaW5hZGFzDQoNCkVsIGNvbmp1bnRvIGRlIGRhdG9zIGFuYWxpemFkb3MgY29udGllbmUgKioqMjI5IHZhcmlhYmxlcyoqKiBkZWwgU2lzdGVtYSBkZSBDb250cm9sIChQcm9jZXNvcyBkZSBGYWJyaWNhY2nDs24pIHkgTGFib3JhdG9yaW8gSW5kdXN0cmlhbC4NCkxhIHZhcmlhYmxlIG9iamV0aXZvIGVzIGxhIFDDqXJkaWRhIEluZGV0ZXJtaW5hZGEgUG9yY2VudHVhbCAoJSksIHF1ZSBlcyAqbGEgcHJvcG9yY2nDs24gZGUgcMOpcmRpZGEgcXVlIGNvcnJlc3BvbmRlIGEgbGEgUMOpcmRpZGEgSW5kZXRlcm1pbmFkYSAoa2cvdCkgcmVzcGVjdG8gYWwgVG90YWwgZGUgUMOpcmRpZGFzIChrZy90KSBkZXNkZSBlbCBDb3JlIFNhbXBsZXIqLg0KYGBge3J9DQpkYXRhc2V0X2luZGV0ZXJtaW5hZGFzIDwtIHJlYWQuY3N2KGZpbGUgPSAnYzovdXNlcnMvMTAwMzQ2L09uZURyaXZlIC0gUGFudGFsZW9uLiBTLkEvRGVza3RvcC9EYXRhU2NpZW5jZS9QZXJkaWRhcyBJbmRldGVybWluYWRhcy9QZXJkaWRhcyBJbmRldGVybWluYWRhcyAyMDI0LmNzdicpDQpkYXRhc2V0X2luZGV0ZXJtaW5hZGFzDQpgYGANCkVsIGRhdGFzZXQgaW5jbHV5ZSAqKjI0IGTDrWFzIGRlIG9wZXJhY2nDs24qKi4NCg0KDQojIyMgRnVuY2nDs24gZGUgRGVuc2lkYWQ6IFDDqXJkaWRhcyBJbmRldGVybWluYWRhcyAoJSkNCmBgYHtyfQ0KZGlzdHIoZGYsUMOpcmRpZGFzLmluZGV0ZXJtaW5hZGFzKQ0KYGBgDQpMYSBtYXlvciBjYW50aWRhZCBkZSBkw61hcyBtdWVzdHJhbiB1bmEgcMOpcmRpZGEgZW50cmUgZWwgNSUgeSBlbCA5JSwgc2luIGVtYmFyZ28gZXhpc3RlbiBkw61hcyBjb24gcMOpcmRpZGFzIGJhc3RhbnRlIGVsZXZhZGFzLCBoYXN0YSB1biAxMyUuDQoNCmBgYHtyfQ0KZGlzdHIoZGYsRGlhLlphZnJhLFDDqXJkaWRhcy5pbmRldGVybWluYWRhcykNCmBgYA0KKioqTGEgbWF5b3IgcGFydGUgZGUgbGFzIHDDqXJkaWRhcyBpbmRldGVybWluYWRhcyBhbHRhcyBvY3VycmVuIGVuIGxhIHByaW1lcmEgc2VtYW5hIGRlIHphZnJhLioqKg0KDQojIyMgQW7DoWxpc2lzIGRlIENvcnJlbGFjacOzbg0KU2UgY29tcGFyYW4gdG9kYXMgbGFzIHZhcmlhYmxlcyBjb24gbGEgdmFyaWFibGUgb2JqZXRpdm8gZGUgUMOpcmRpZGEgSW5kZXRlcm1pbmFkYSwgeSBwYXJhIGNhZGEgdW5hLCBzZSBkZXRlcm1pbmEgc3UgY29ycmVsYWNpw7NuLCBhIHVuIG5pdmVsIGRlIGNvbmZpYW56YSBkZWwgOTUlIChzaWduaWZpY2FuY2lhIDUlLCBwPD0gMC4wNSkuDQoNCkVudHJlIGVsbGFzLCBzZSBzZWxlY2Npb25hbiBsYXMgdmFyaWFibGVzIHF1ZSBtdWVzdHJhbiAqKmNvcnJlbGFjacOzbiBtb2RlcmFkYSBhIGNvcnJlbGFjacOzbiBmdWVydGUqKiAodmFsb3JlcyBtYXlvcmVzIGEgMC41KQ0KDQpgYGB7cn0NCmRmIDwtIGRhdGFzZXRfaW5kZXRlcm1pbmFkYXNbLWMoNDAsNzYsNzgpXQ0KDQpjb3JyX3ZhcihkZiwgIyBub21icmUgZGVsIGRhdGFmcmFtZQ0KICBQw6lyZGlkYXMuaW5kZXRlcm1pbmFkYXMsICMgdmFyaWFibGUgb2JqZXRpdm8NCiAgbWF4X3B2YWx1ZSA9IDAuMDUsICMgbml2ZWwgZGUgc2lnbmlmaWNhbmNpYSBwYXJhIGxhIHJlZ2nDs24gZGUgcmVjaGF6byBlbiBsYXMgcHJ1ZWJhcyBkZSBoaXDDs3Rlc2lzDQogIHRvcCA9IDMwLCAjIGRlc3BsaWVndWUgZGUgbGFzIDMwIHZhcmlhYmxlcyBtw6FzIGNvcnJlbGFjaW9uYWRhcyBjb24gbGEgdmFyaWFibGUgb2JqZXRpdm8NCiAgcGxvdCA9IFQNCikNCg0KYGBgDQoNCiMjIyBHcsOhZmljb3MgZGUgRGlzcGVyc2nDs24gVmFyaWFibGVzIENvcnJlbGFjaW9uYWRhcw0KDQoqKlRlbXBlcmF0dXJhIE1hc2EgVGFjaG8gQ29udGludW8gMUEqKg0KYGBge3J9DQpnZ3Bsb3QoZGYsIGFlcyh4PVRlbXBlcmF0dXJhLm1hc2EuMUEuLi5GLi5UVDU5NTUwNCwgeT1Qw6lyZGlkYXMuaW5kZXRlcm1pbmFkYXMpKSArIA0KICAgIGdlb21fcG9pbnQoDQogICAgICAgIGNvbG9yPSJvcmFuZ2UiLA0KICAgICAgICBmaWxsPSIjNjliM2EyIiwNCiAgICAgICAgc2hhcGU9MjEsDQogICAgICAgIGFscGhhPTAuNSwNCiAgICAgICAgc2l6ZT02LA0KICAgICAgICBzdHJva2UgPSAyDQogICAgICAgICkgKw0KICAgIGdlb21fc21vb3RoKG1ldGhvZD1sbSAsIGNvbG9yPSJibHVlIiwgZmlsbD0iIzY5YjNhMiIsIHNlPVRSVUUpICsNCiBnZ3RpdGxlKCJQw6lyZGlkYSBJbmRldGVybWluYWRhIHZycy4gVGVtcGVyYXR1cmEgTWFzYSAxQSIpICsNCiAgeGxhYigiVGVtcGVyYXR1cmEgTWFzYSAxQSAowrBGKSIpICsgeWxhYigiUMOpcmRpZGEgSW5kZXRlcm1pbmFkYSAoJSkiKQ0KYGBgDQoqKk5pdmVsIFZhc28gQTQqKg0KYGBge3J9DQpnZ3Bsb3QoZGYsIGFlcyh4PU5pdmVsLlZhc28uQTQuLi4uLkxUNThBNDA0LCB5PVDDqXJkaWRhcy5pbmRldGVybWluYWRhcykpICsgDQogICAgZ2VvbV9wb2ludCgNCiAgICAgICAgY29sb3I9Im9yYW5nZSIsDQogICAgICAgIGZpbGw9IiM2OWIzYTIiLA0KICAgICAgICBzaGFwZT0yMSwNCiAgICAgICAgYWxwaGE9MC41LA0KICAgICAgICBzaXplPTYsDQogICAgICAgIHN0cm9rZSA9IDINCiAgICAgICAgKSArDQogICAgZ2VvbV9zbW9vdGgobWV0aG9kPWxtICwgY29sb3I9ImJsdWUiLCBmaWxsPSIjNjliM2EyIiwgc2U9VFJVRSkgKw0KIGdndGl0bGUoIlBlcmRpZGEgSW5kZXRlcm1pbmFkYSB2cnMuIE5pdmVsIFZhc28gQTQiKSArDQogIHhsYWIoIk5pdmVsIFZhc28gQTQgKCUpIikgKyB5bGFiKCJQw6lyZGlkYSBJbmRldGVybWluYWRhICglKSIpDQpgYGANCioqQ2HDsWEgUXVlbWFkYSoqDQpgYGB7cn0NCmdncGxvdChkZiwgYWVzKHg9VG90YWwuZGUuY2HDsWEucXVlbWFkYS4udC4uNDczNywgeT1Qw6lyZGlkYXMuaW5kZXRlcm1pbmFkYXMpKSArIA0KICAgIGdlb21fcG9pbnQoDQogICAgICAgIGNvbG9yPSJvcmFuZ2UiLA0KICAgICAgICBmaWxsPSIjNjliM2EyIiwNCiAgICAgICAgc2hhcGU9MjEsDQogICAgICAgIGFscGhhPTAuNSwNCiAgICAgICAgc2l6ZT02LA0KICAgICAgICBzdHJva2UgPSAyDQogICAgICAgICkgKw0KICAgIGdlb21fc21vb3RoKG1ldGhvZD1sbSAsIGNvbG9yPSJibHVlIiwgZmlsbD0iIzY5YjNhMiIsIHNlPVRSVUUpICsNCiBnZ3RpdGxlKCJQZXJkaWRhIEluZGV0ZXJtaW5hZGEgdnJzLiBDYcOxYSBRdWVtYWRhIikgKw0KICB4bGFiKCJDYcOxYSBRdWVtYWRhICh0KSIpICsgeWxhYigiUMOpcmRpZGEgSW5kZXRlcm1pbmFkYSAoJSkiKQ0KYGBgDQoNCioqVHJhbnNtaXRhbmNpYSBKdWdvIENsYXJvKioNCmBgYHtyfQ0KZ2dwbG90KGRmLCBhZXMoeD1UcmFuc21pdGFuY2lhLkp1Z28uQ2xhcm8sIHk9UMOpcmRpZGFzLmluZGV0ZXJtaW5hZGFzKSkgKyANCiAgICBnZW9tX3BvaW50KA0KICAgICAgICBjb2xvcj0ib3JhbmdlIiwNCiAgICAgICAgZmlsbD0iIzY5YjNhMiIsDQogICAgICAgIHNoYXBlPTIxLA0KICAgICAgICBhbHBoYT0wLjUsDQogICAgICAgIHNpemU9NiwNCiAgICAgICAgc3Ryb2tlID0gMg0KICAgICAgICApICsNCiAgICBnZW9tX3Ntb290aChtZXRob2Q9bG0gLCBjb2xvcj0iYmx1ZSIsIGZpbGw9IiM2OWIzYTIiLCBzZT1UUlVFKSArDQogZ2d0aXRsZSgiUGVyZGlkYSBJbmRldGVybWluYWRhIHZycy4gVHJhbnNtaXRhbmNpYSBKdWdvIENsYXJvIikgKw0KICB4bGFiKCJUcmFuc21pdGFuY2lhIEp1Z28gQ2xhcm8gKCUpIikgKyB5bGFiKCJQw6lyZGlkYSBJbmRldGVybWluYWRhICglKSIpDQpgYGANCg0KDQoNCioqRGlhIGRlIFphZnJhKioNCmBgYHtyfQ0KZ2dwbG90KGRmLCBhZXMoeD1EaWEuWmFmcmEsIHk9UMOpcmRpZGFzLmluZGV0ZXJtaW5hZGFzKSkgKyANCiAgICBnZW9tX3BvaW50KA0KICAgICAgICBjb2xvcj0ib3JhbmdlIiwNCiAgICAgICAgZmlsbD0iIzY5YjNhMiIsDQogICAgICAgIHNoYXBlPTIxLA0KICAgICAgICBhbHBoYT0wLjUsDQogICAgICAgIHNpemU9NiwNCiAgICAgICAgc3Ryb2tlID0gMg0KICAgICAgICApICsNCiAgICBnZW9tX3Ntb290aChtZXRob2Q9bG0gLCBjb2xvcj0iYmx1ZSIsIGZpbGw9IiM2OWIzYTIiLCBzZT1UUlVFKSArDQogZ2d0aXRsZSgiUGVyZGlkYSBJbmRldGVybWluYWRhIHZycy4gRGlhIGRlIFphZnJhIikgKw0KICB4bGFiKCJEaWEgZGUgWmFmcmEiKSArIHlsYWIoIlDDqXJkaWRhIEluZGV0ZXJtaW5hZGEgKCUpIikNCmBgYA0KDQoqKk5pdmVsIFZhc28gRDQqKg0KYGBge3J9DQpnZ3Bsb3QoZGYsIGFlcyh4PU5pdmVsLlZhc28uRDQuLi4uLkxUNTg0NzA0LCB5PVDDqXJkaWRhcy5pbmRldGVybWluYWRhcykpICsgDQogICAgZ2VvbV9wb2ludCgNCiAgICAgICAgY29sb3I9Im9yYW5nZSIsDQogICAgICAgIGZpbGw9IiM2OWIzYTIiLA0KICAgICAgICBzaGFwZT0yMSwNCiAgICAgICAgYWxwaGE9MC41LA0KICAgICAgICBzaXplPTYsDQogICAgICAgIHN0cm9rZSA9IDINCiAgICAgICAgKSArDQogICAgZ2VvbV9zbW9vdGgobWV0aG9kPWxtICwgY29sb3I9ImJsdWUiLCBmaWxsPSIjNjliM2EyIiwgc2U9VFJVRSkgKw0KIGdndGl0bGUoIlBlcmRpZGEgSW5kZXRlcm1pbmFkYSB2cnMuIE5pdmVsIFZhc28gRDQiKSArDQogIHhsYWIoIk5pdmVsIFZhc28gRDQgKCUpIikgKyB5bGFiKCJQw6lyZGlkYSBJbmRldGVybWluYWRhICglKSIpDQpgYGANCg0KDQoNCioqUmV0ZW5jacOzbiBkZSBNYXNhIEMgKCUpKioNCmBgYHtyfQ0KZ2dwbG90KGRmLCBhZXMoeD1SZXRlbmNpw7NuLk1hc2EuQywgeT1Qw6lyZGlkYXMuaW5kZXRlcm1pbmFkYXMpKSArIA0KICAgIGdlb21fcG9pbnQoDQogICAgICAgIGNvbG9yPSJvcmFuZ2UiLA0KICAgICAgICBmaWxsPSIjNjliM2EyIiwNCiAgICAgICAgc2hhcGU9MjEsDQogICAgICAgIGFscGhhPTAuNSwNCiAgICAgICAgc2l6ZT02LA0KICAgICAgICBzdHJva2UgPSAyDQogICAgICAgICkgKw0KICAgIGdlb21fc21vb3RoKG1ldGhvZD1sbSAsIGNvbG9yPSJibHVlIiwgZmlsbD0iIzY5YjNhMiIsIHNlPVRSVUUpICsNCiBnZ3RpdGxlKCJQZXJkaWRhIEluZGV0ZXJtaW5hZGEgdnJzLiBSZXRlbmNpw7NuIE1hc2EgQyIpICsNCiAgeGxhYigiUmV0ZW5jacOzbiBNYXNhIEMgKCUpIikgKyB5bGFiKCJQw6lyZGlkYSBJbmRldGVybWluYWRhICglKSIpDQpgYGANCg0KKipGbHVqbyBXYXNoIDFBIChncG0pKioNCmBgYHtyfQ0KZ2dwbG90KGRmLCBhZXMoeD1GbHVqby5XYXNoLjFBLi5ncG0uLkZUNTk0NzA0LCB5PVDDqXJkaWRhcy5pbmRldGVybWluYWRhcykpICsgDQogICAgZ2VvbV9wb2ludCgNCiAgICAgICAgY29sb3I9Im9yYW5nZSIsDQogICAgICAgIGZpbGw9IiM2OWIzYTIiLA0KICAgICAgICBzaGFwZT0yMSwNCiAgICAgICAgYWxwaGE9MC41LA0KICAgICAgICBzaXplPTYsDQogICAgICAgIHN0cm9rZSA9IDINCiAgICAgICAgKSArDQogICAgZ2VvbV9zbW9vdGgobWV0aG9kPWxtICwgY29sb3I9ImJsdWUiLCBmaWxsPSIjNjliM2EyIiwgc2U9VFJVRSkgKw0KIGdndGl0bGUoIlBlcmRpZGEgSW5kZXRlcm1pbmFkYSB2cnMuIEZsdWpvIFdhc2ggMUEiKSArDQogIHhsYWIoIkZsdWpvIFdhc2ggMUEgKGdwbSkiKSArIHlsYWIoIlDDqXJkaWRhIEluZGV0ZXJtaW5hZGEgKCUpIikNCmBgYA0KDQoNCioqVHJhc2ggVG90YWwgKCUpKioNCmBgYHtyfQ0KZ2dwbG90KGRmLCBhZXMoeD1UcmFzaC5Ub3RhbCwgeT1Qw6lyZGlkYXMuaW5kZXRlcm1pbmFkYXMpKSArIA0KICAgIGdlb21fcG9pbnQoDQogICAgICAgIGNvbG9yPSJvcmFuZ2UiLA0KICAgICAgICBmaWxsPSIjNjliM2EyIiwNCiAgICAgICAgc2hhcGU9MjEsDQogICAgICAgIGFscGhhPTAuNSwNCiAgICAgICAgc2l6ZT02LA0KICAgICAgICBzdHJva2UgPSAyDQogICAgICAgICkgKw0KICAgIGdlb21fc21vb3RoKG1ldGhvZD1sbSAsIGNvbG9yPSJibHVlIiwgZmlsbD0iIzY5YjNhMiIsIHNlPVRSVUUpICsNCiBnZ3RpdGxlKCJQZXJkaWRhIEluZGV0ZXJtaW5hZGEgdnJzLiBUcmFzaCBUb3RhbCIpICsNCiAgeGxhYigiVHJhc2ggVG90YWwgKCUpIikgKyB5bGFiKCJQw6lyZGlkYSBJbmRldGVybWluYWRhICglKSIpDQpgYGANCioqVmFjaW8gVGFjaG8gMTMgU2VtaWxsYSAoJSkqKg0KYGBge3J9DQpnZ3Bsb3QoZGYsIGFlcyh4PVZhY2lvLnRhY2hvLjEzLnNlbWlsbGEudGFjaG8uY29udGludW8uLlBTSUEuLlBUNTk0MTAyLCB5PVDDqXJkaWRhcy5pbmRldGVybWluYWRhcykpICsgDQogICAgZ2VvbV9wb2ludCgNCiAgICAgICAgY29sb3I9Im9yYW5nZSIsDQogICAgICAgIGZpbGw9IiM2OWIzYTIiLA0KICAgICAgICBzaGFwZT0yMSwNCiAgICAgICAgYWxwaGE9MC41LA0KICAgICAgICBzaXplPTYsDQogICAgICAgIHN0cm9rZSA9IDINCiAgICAgICAgKSArDQogICAgZ2VvbV9zbW9vdGgobWV0aG9kPWxtICwgY29sb3I9ImJsdWUiLCBmaWxsPSIjNjliM2EyIiwgc2U9VFJVRSkgKw0KIGdndGl0bGUoIlBlcmRpZGEgSW5kZXRlcm1pbmFkYSB2cnMuIFZhY8OtbyBUYWNobyAxMyIpICsNCiAgeGxhYigiVmFjw61vIFRhY2hvIDEzIChwc2lhKSIpICsgeWxhYigiUMOpcmRpZGEgSW5kZXRlcm1pbmFkYSAoJSkiKQ0KYGBgDQoNCioqVHJhc2ggQ2HDsWEgTWVjYW5pemFkYSoqDQpgYGB7cn0NCmdncGxvdChkZiwgYWVzKHg9VHJhc2guZGUuY2HDsWEubWVjYW5pemFkYS4uS2cuLjYwNTQsIHk9UMOpcmRpZGFzLmluZGV0ZXJtaW5hZGFzKSkgKyANCiAgICBnZW9tX3BvaW50KA0KICAgICAgICBjb2xvcj0ib3JhbmdlIiwNCiAgICAgICAgZmlsbD0iIzY5YjNhMiIsDQogICAgICAgIHNoYXBlPTIxLA0KICAgICAgICBhbHBoYT0wLjUsDQogICAgICAgIHNpemU9NiwNCiAgICAgICAgc3Ryb2tlID0gMg0KICAgICAgICApICsNCiAgICBnZW9tX3Ntb290aChtZXRob2Q9bG0gLCBjb2xvcj0iYmx1ZSIsIGZpbGw9IiM2OWIzYTIiLCBzZT1UUlVFKSArDQogZ2d0aXRsZSgiUGVyZGlkYSBJbmRldGVybWluYWRhIHZycy4gVHJhc2ggQ2HDsWEgTWVjYW5pemFkYSIpICsNCiAgeGxhYigiVHJhc2ggQ2HDsWEgTWVjYW5pemFkYSAoJSkiKSArIHlsYWIoIlDDqXJkaWRhIEluZGV0ZXJtaW5hZGEgKCUpIikNCmBgYA0KKipDYXJyZXJhIFRhY2hvIENvbnRpbnVvIDJBKioNCmBgYHtyfQ0KZ2dwbG90KGRmLCBhZXMoeD1GbHVqby5tZWxhZHVyYS50YWNoby5jb250aW51by4yQS4uLmdhbC5taW4uLkZUNTk2NTBUYSwgeT1Qw6lyZGlkYXMuaW5kZXRlcm1pbmFkYXMpKSArIA0KICAgIGdlb21fcG9pbnQoDQogICAgICAgIGNvbG9yPSJvcmFuZ2UiLA0KICAgICAgICBmaWxsPSIjNjliM2EyIiwNCiAgICAgICAgc2hhcGU9MjEsDQogICAgICAgIGFscGhhPTAuNSwNCiAgICAgICAgc2l6ZT02LA0KICAgICAgICBzdHJva2UgPSAyDQogICAgICAgICkgKw0KICAgIGdlb21fc21vb3RoKG1ldGhvZD1sbSAsIGNvbG9yPSJibHVlIiwgZmlsbD0iIzY5YjNhMiIsIHNlPVRSVUUpICsNCiBnZ3RpdGxlKCJQZXJkaWRhIEluZGV0ZXJtaW5hZGEgdnJzLiBDYXJyZXJhIFRhY2hvIENvbnRpbnVvIikgKw0KICB4bGFiKCJGbHVqbyBUYWNobyBDb250aW51byAyQSAoZ3BtKSIpICsgeWxhYigiUMOpcmRpZGEgSW5kZXRlcm1pbmFkYSAoJSkiKQ0KYGBgDQoqKkNhw7FhIFF1ZW1hZGEgYW50ZXMgZGUgMzYgaG9yYXMqKg0KYGBge3J9DQpnZ3Bsb3QoZGYsIGFlcyh4PUNhw7FhLnF1ZW1hZGEuYW50ZXMuZGUuMzYuaC4udC4uNDczOCwgeT1Qw6lyZGlkYXMuaW5kZXRlcm1pbmFkYXMpKSArIA0KICAgIGdlb21fcG9pbnQoDQogICAgICAgIGNvbG9yPSJvcmFuZ2UiLA0KICAgICAgICBmaWxsPSIjNjliM2EyIiwNCiAgICAgICAgc2hhcGU9MjEsDQogICAgICAgIGFscGhhPTAuNSwNCiAgICAgICAgc2l6ZT02LA0KICAgICAgICBzdHJva2UgPSAyDQogICAgICAgICkgKw0KICAgIGdlb21fc21vb3RoKG1ldGhvZD1sbSAsIGNvbG9yPSJibHVlIiwgZmlsbD0iIzY5YjNhMiIsIHNlPVRSVUUpICsNCiBnZ3RpdGxlKCJQZXJkaWRhIEluZGV0ZXJtaW5hZGEgdnJzLiBDYcOxYSBRdWVtYWRhIDwgMzYgaG9yYXMiKSArDQogIHhsYWIoIkNhw7FhIFF1ZW1hZGEgPCAzNiBob3JhcyAodCkiKSArIHlsYWIoIlDDqXJkaWRhIEluZGV0ZXJtaW5hZGEgKCUpIikNCmBgYA0KKipGbG9jdWxhbnRlIGEgTWVsYWR1cmEqKg0KYGBge3J9DQpnZ3Bsb3QoZGYsIGFlcyh4PUZsb2N1bGFudGUubWVsYWR1cmEuLi5LZy4uNDc5NiwgeT1Qw6lyZGlkYXMuaW5kZXRlcm1pbmFkYXMpKSArIA0KICAgIGdlb21fcG9pbnQoDQogICAgICAgIGNvbG9yPSJvcmFuZ2UiLA0KICAgICAgICBmaWxsPSIjNjliM2EyIiwNCiAgICAgICAgc2hhcGU9MjEsDQogICAgICAgIGFscGhhPTAuNSwNCiAgICAgICAgc2l6ZT02LA0KICAgICAgICBzdHJva2UgPSAyDQogICAgICAgICkgKw0KICAgIGdlb21fc21vb3RoKG1ldGhvZD1sbSAsIGNvbG9yPSJibHVlIiwgZmlsbD0iIzY5YjNhMiIsIHNlPVRSVUUpICsNCiBnZ3RpdGxlKCJQZXJkaWRhIEluZGV0ZXJtaW5hZGEgdnJzLiBDYcOxYSBRdWVtYWRhIDwgMzYgaG9yYXMiKSArDQogIHhsYWIoIkNhw7FhIFF1ZW1hZGEgPCAzNiBob3JhcyAodCkiKSArIHlsYWIoIlDDqXJkaWRhIEluZGV0ZXJtaW5hZGEgKCUpIikNCmBgYA0KDQoqKkhvamFzIE1hbGV6YSBUcmFzaCoqDQpgYGB7cn0NCmdncGxvdChkZiwgYWVzKHg9SG9qYXMubWFsZXphLnRyYXNoLCB5PVDDqXJkaWRhcy5pbmRldGVybWluYWRhcykpICsgDQogICAgZ2VvbV9wb2ludCgNCiAgICAgICAgY29sb3I9Im9yYW5nZSIsDQogICAgICAgIGZpbGw9IiM2OWIzYTIiLA0KICAgICAgICBzaGFwZT0yMSwNCiAgICAgICAgYWxwaGE9MC41LA0KICAgICAgICBzaXplPTYsDQogICAgICAgIHN0cm9rZSA9IDINCiAgICAgICAgKSArDQogICAgZ2VvbV9zbW9vdGgobWV0aG9kPWxtICwgY29sb3I9ImJsdWUiLCBmaWxsPSIjNjliM2EyIiwgc2U9VFJVRSkgKw0KIGdndGl0bGUoIlBlcmRpZGEgSW5kZXRlcm1pbmFkYSB2cnMuIEhvamFzIE1hbGV6YSBUcmFzaCIpICsNCiAgeGxhYigiSG9qYXMgTWFsZXphIFRyYXNoICglKSIpICsgeWxhYigiUMOpcmRpZGEgSW5kZXRlcm1pbmFkYSAoJSkiKQ0KYGBgDQoNCg0KDQoNCioqTml2ZWwgUHJvbWVkaW8gRWZlY3RvIEMqKg0KYGBge3J9DQpnZ3Bsb3QoZGYsIGFlcyh4PU5pdmVsLnByb21lZGlvLmVmZWN0by5DLi4uLi5MVF9NZWRpYVF1aW50dXBsZXNDLCB5PVDDqXJkaWRhcy5pbmRldGVybWluYWRhcykpICsgDQogICAgZ2VvbV9wb2ludCgNCiAgICAgICAgY29sb3I9Im9yYW5nZSIsDQogICAgICAgIGZpbGw9IiM2OWIzYTIiLA0KICAgICAgICBzaGFwZT0yMSwNCiAgICAgICAgYWxwaGE9MC41LA0KICAgICAgICBzaXplPTYsDQogICAgICAgIHN0cm9rZSA9IDINCiAgICAgICAgKSArDQogICAgZ2VvbV9zbW9vdGgobWV0aG9kPWxtICwgY29sb3I9ImJsdWUiLCBmaWxsPSIjNjliM2EyIiwgc2U9VFJVRSkgKw0KIGdndGl0bGUoIlBlcmRpZGEgSW5kZXRlcm1pbmFkYSB2cnMuIE5pdmVsIE1lZGlvIEVmZWN0byBDIikgKw0KICB4bGFiKCJOaXZlbCBNZWRpbyBFZmVjdG8gQyAoJSkiKSArIHlsYWIoIlDDqXJkaWRhIEluZGV0ZXJtaW5hZGEgKCUpIikNCmBgYA0KDQoqKkNhw7FhIE1vbGlkYSBEaWFyaWEqKg0KYGBge3J9DQpnZ3Bsb3QoZGYsIGFlcyh4PUNhw7FhLm1vbGlkYS5kaWEuLnQuLjEsIHk9UMOpcmRpZGFzLmluZGV0ZXJtaW5hZGFzKSkgKyANCiAgICBnZW9tX3BvaW50KA0KICAgICAgICBjb2xvcj0ib3JhbmdlIiwNCiAgICAgICAgZmlsbD0iIzY5YjNhMiIsDQogICAgICAgIHNoYXBlPTIxLA0KICAgICAgICBhbHBoYT0wLjUsDQogICAgICAgIHNpemU9NiwNCiAgICAgICAgc3Ryb2tlID0gMg0KICAgICAgICApICsNCiAgICBnZW9tX3Ntb290aChtZXRob2Q9bG0gLCBjb2xvcj0iYmx1ZSIsIGZpbGw9IiM2OWIzYTIiLCBzZT1UUlVFKSArDQogZ2d0aXRsZSgiUGVyZGlkYSBJbmRldGVybWluYWRhIHZycy4gQ2HDsWEgTW9saWRhIHBvciBEw61hIikgKw0KICB4bGFiKCJDYcOxYSBNb2xpZGEgcG9yIETDrWEgKHQpIikgKyB5bGFiKCJQw6lyZGlkYSBJbmRldGVybWluYWRhICglKSIpDQpgYGANCg0KKipQdXJlemEgTWllbCBGaW5hbCoqDQpgYGB7cn0NCmdncGxvdChkZiwgYWVzKHg9UHVyZXphLk1pZWwuZmluYWwsIHk9UMOpcmRpZGFzLmluZGV0ZXJtaW5hZGFzKSkgKyANCiAgICBnZW9tX3BvaW50KA0KICAgICAgICBjb2xvcj0ib3JhbmdlIiwNCiAgICAgICAgZmlsbD0iIzY5YjNhMiIsDQogICAgICAgIHNoYXBlPTIxLA0KICAgICAgICBhbHBoYT0wLjUsDQogICAgICAgIHNpemU9NiwNCiAgICAgICAgc3Ryb2tlID0gMg0KICAgICAgICApICsNCiAgICBnZW9tX3Ntb290aChtZXRob2Q9bG0gLCBjb2xvcj0iYmx1ZSIsIGZpbGw9IiM2OWIzYTIiLCBzZT1UUlVFKSArDQogZ2d0aXRsZSgiUGVyZGlkYSBJbmRldGVybWluYWRhIHZycy4gUHVyZXphIE1pZWwgRmluYWwiKSArDQogIHhsYWIoIlB1cmV6YSBNaWVsIEZpbmFsICglKSIpICsgeWxhYigiUMOpcmRpZGEgSW5kZXRlcm1pbmFkYSAoJSkiKQ0KYGBgDQoNCg0KDQoNCg==