layout y template para calendario, adicion de fullcalendarjs, cambio en los datos de las conferencias y sesiones

This commit is contained in:
Germán Correa 2021-08-11 10:06:06 -03:00
parent c16677b2ac
commit 7706dd9238
5 changed files with 571 additions and 11 deletions

View File

@ -8,6 +8,8 @@
nombre: Jairo Bochi
afiliacion: Penn State University
web: http://www.mat.uc.cl/~jairo.bochi/
start: 2021-09-13T09:00
end: 2021-09-13T10:30
- titulo: Symmetrical optimal partitions for the Yamabe equation
abstract: |
The Yamabe equation is relevant in differential geometry. A positive solution to it gives rise to a metric on a Riemannian manifold \((M,g)\), conformally equivalent to its given metric \(g\), which has constant scalar curvature.
@ -19,6 +21,8 @@
nombre: Mónica Clapp
afiliacion: UNAM
web: https://www.matem.unam.mx/fsd/mclapp
start: 2021-09-14T09:00
end: 2021-09-14T10:30
- titulo: Herramientas de geometría algebraica en biología de sistemas
abstract: Motivaré e introduciré algunos métodos y conceptos de la geometría algebraica que se están utilizando en los últimos años para analizar modelos estándar en biología molecular. La teoría algebraica de los sistemas de reacciones químicas tiene como objetivo comprender su comportamiento dinámico aprovechando la estructura algebraica inherente en las ecuaciones cinéticas, y no necesita la determinación de los parámetros a priori, que puede ser teórica o prácticamente imposible. También señalaré algunos de los desafíos matemáticos que surgen de esta aplicación.
pdf: ''
@ -26,6 +30,8 @@
nombre: Alicia Dickenstein
afiliacion: Universidad de Buenos Aires
web: http://mate.dm.uba.ar/~alidick/
start: 2021-09-15T09:00
end: 2021-09-15T10:30
- titulo: Entropy methods and sharp convergence of Markov Chains.
abstract: We describe how entropy methods can be used to derive quantitative versions of various scaling limits of Markov chains. We will focus on the the description of non-equilibrium states of interacting particle systems.
pdf: ''
@ -33,6 +39,8 @@
nombre: Milton Jara
afiliacion: Instituto de Matemática Pura e Aplicada
web: https://impa.br/page-pessoas/milton-jara/
start: 2021-09-16T09:00
end: 2021-09-16T10:30
- titulo: Measuring the complexity of countable objects
abstract: Computability theory is the sub-area of mathematical logic that studies ways to measure the complexity of objects, constructions, theorems, and mathematical proofs related to countably infinite objects. On one hand, the natural objects seem to be linearly ordered from simpler to more complex, while, on the other hand the general objects are ordered in a chaotic way. This dichotomy between natural objects and objects in general is hard to study mathematically, as we don't have a formal definition of "natural object." The objective of this talk is to introduce Martin's conjecture (open for more than 40 years) and see how it explains this dichotomy.
pdf: ''
@ -40,6 +48,8 @@
nombre: Antonio Montalbán
afiliacion: University of California, Berkeley
web: https://math.berkeley.edu/~antonio/
start: 2021-09-17T09:00
end: 2021-09-17T10:30
- categoria: Semiplenarias
charlas:
- titulo: Eigenfunction concentration via geodesic beams
@ -48,7 +58,9 @@
speaker:
nombre: Yaiza Canzani
afiliacion: University of North Carolina
web: https://canzani.web.unc.edu/
web: https://canzani.web.unc.edu/
start: 2021-09-13T11:00
end: 2021-09-13T12:30
- titulo: Unconditional discriminant lower bounds exploiting violations of the generalized riemann hypothesis
abstract: |
In the 1970s Andrew Odlyzko proved good lower bounds for the discriminant of a number field. He also showed that his results could be sharpened by assuming the Generalized Riemann Hypothesis. Some years later Odlyzko suggested that it might be possible to do without GRH. I shall explain Odlyzkos ideas and sketch how for number fields of reasonably small degree (say up to degree 11 or 12) one can indeed improve the lower known bounds by exploiting hypothetical violations of GRH. This is joint work with Karim Belabas, Francisco Diaz y Diaz and Salvador Reyes, extending unpublished results of Matías Atria.
@ -77,6 +89,8 @@
nombre: Luz Roncal
afiliacion: UBCAM -Basque Center for applied mathematics
web: https://sites.google.com/view/luzroncal
start: 2021-09-14T11:00
end: 2021-09-14T12:30
- titulo: Characterizations of Nonnegative polynomials of some varieties
abstract: |
I will describe some recent results on the characterization of those polynomials that are nonnegative on a variety \(X\) in \(R^n\). In the first part of the talk I will explain why this is an interesting problem it turns out to have a wealth of applications ranging from nonconvex optimization to stochastic control. In the second part of the talk I will explain how this problem can be approached on algebraic curves and surfaces, presenting ongoing joint work with G. Blekherman (GA Tech), R. Sinn (U. Lepizig) and G.G. Smith (Queen's U).
@ -85,6 +99,8 @@
nombre: Mauricio Velasco
afiliacion: Universidad de los Andes
web: http://wwwprof.uniandes.edu.co/~mvelasco/Velasco.html
start: 2021-09-14T11:00
end: 2021-09-14T12:30
- titulo: Pointed Hopf algebras over nilpotent groups
abstract: I will report on the ongoing project of classifying pointed Hopf algebras with finite Gelfand-Kirillov dimension.
pdf: ''
@ -92,6 +108,8 @@
nombre: Nicolás Andruskiewitsch
afiliacion: Universidad Nacional de Córdoba
web: https://www.famaf.unc.edu.ar/~andrus/
start: 2021-09-15T11:00
end: 2021-09-15T12:30
- titulo: Optimal adjustment sets in non-parametric causal graphical models
abstract: Causal graphical models are statistical models represented by a directed acyclic graph in which each vertex stands for a random variable and a structural equation that generates it which is a function of its parents in the graph and an independent error.
I will start with a brief introduction of causal graphical models and of their use in the determination of identifiability and optimal estimation of the so-called average treatment effect (ATE) of static and personalized treatments in the presence of confounding variables.
@ -101,6 +119,8 @@
nombre: Andrea Rotnizky
afiliacion: Universidad di Tella, Buenos Aires
web: https://www.hsph.harvard.edu/andrea-rotnitzky/
start: 2021-09-16T11:00
end: 2021-09-16T12:30
- titulo: Inviscid dissipation and turbulence
abstract: ''
pdf: ''
@ -108,6 +128,8 @@
nombre: Helena Nussenszveig Lopes
afiliacion: Universidad Federal de Rio de Janeiro
web: http://www.im.ufrj.br/hlopes/
start: 2021-09-16T11:00
end: 2021-09-16T12:30
- titulo: Unique Continuation for some Nonlinear Dispersive Models
abstract: |
We shall study unique continuation properties (UCP) of solutions to some time evolution eqs. We are interested in the following two questions:
@ -123,6 +145,8 @@
nombre: Gustavo Ponce
afiliacion: University of California
web: http://web.math.ucsb.edu/~ponce/
start: 2021-09-17T011:00
end: 2021-09-17T12:30
- titulo: Transfer operators and atomic decomposition
abstract: Since the groundbreaking contributions of Ruelle, the study of transfer operators has been one of the main tools to understand the ergodic theory of expanding maps, that is, discrete dynamical systems that locally expand distances. Questions on the existence of interesting invariant measures, as well the statistical properties of such dynamics system, as exponential decay of correlations and Central Limit Theorem, can be answered studying the spectral properties of the action of these operators on suitable spaces of functions. Using the method of atomic decomposition, we consider new Banach spaces of functions (that in some cases coincides with Besov spaces) that have a remarkably simple definition and allows us to obtain very general results on the quasi-compactness of the transfer operator acting in these spaces, even when the underlying phase space and expanding map are very irregular. Joint work with Alexander Arbieto (UFRJ-Brazil).
pdf: ''
@ -130,6 +154,8 @@
nombre: Daniel Smania
afiliacion: Universidade de São Paulo
web: http://conteudo.icmc.usp.br/pessoas/smania/
start: 2021-09-17T11:00
end: 2021-09-17T12:30
- categoria: Cursos
charlas:
- titulo: Reversible Markov chains with nonnegative spectrum
@ -138,7 +164,9 @@
speaker:
nombre: Roberto Imbuzeiro
afiliacion: IMPA
web: https://impa.br/page-pessoas/roberto-imbuzeiro-oliveira/
web: https://impa.br/page-pessoas/roberto-imbuzeiro-oliveira/
start: 2021-09-13T15:00
end: 2021-09-13T16:30
- titulo: Rigidity of actions of Lie groups and its lattices
abstract: This will be an introductory course about lattices in (semi-simple) Lie groups and some famous theorems of Furstenberg, Margulis and Mostow (among others) about the "rigidity" of these groups. Time allowing, I'll discuss some recent theorems about actions of lattices on manifolds.
pdf: ''
@ -146,6 +174,8 @@
nombre: Sebastian Hurtado
afiliacion: University of Chicago
web: https://math.uchicago.edu/~shurtados/
start: 2021-09-14T15:00
end: 2021-09-14T16:30
- titulo: TBA
abstract: ''
pdf: ''
@ -153,6 +183,8 @@
nombre: Isabel Hubard
afiliacion: UNAM
web: https://www.matem.unam.mx/fsd/hubard
start: 2021-09-15T15:00
end: 2021-09-15T16:30
- categoria: Públicas
charlas:
- titulo: Números grandes, enormes, descomunales y desorbitados
@ -162,6 +194,8 @@
nombre: Eduardo Saez de Cabezón
afiliacion: Universidad de la Rioja
web: https://investigacion.unirioja.es/investigadores/247/detalle
start: 2021-09-16T15:00
end: 2021-09-16T17:00
- titulo: Mathematicians helping Art Historians and Art Conservators
abstract: Mathematics can help Art Historians and Art Conservators in studying and understanding art works, their manufacture process and their state of conservation. The presentation will review several instances of such collaborations, explaining the role of mathematics in each instance, and illustrating the approach with extensive documentation of the art works.
pdf: ''
@ -169,3 +203,5 @@
nombre: Ingrid Daubechis
afiliacion: DUKE University
web: https://ece.duke.edu/faculty/ingrid-daubechies
start: 2021-09-17T15:00
end: 2021-09-17T17:00

View File

@ -5,24 +5,156 @@
mail: ca.di@uniandes.edu.co
- nombre: Christina Brech
mail: brech@ime.usp.br
charlas:
- titulo: ''
abstract: ''
start:
end:
speaker:
nombre:
afiliacion:
web:
- titulo: ''
abstract: ''
start:
end:
speaker:
nombre:
afiliacion:
web:
- titulo: ''
abstract: ''
start:
end:
speaker:
nombre:
afiliacion:
web:
- titulo: ''
abstract: ''
start:
end:
speaker:
nombre:
afiliacion:
web:
- titulo: Combinatoria algebraica de funciones simétricas, cuasisimétricas y sus generalizaciones
organizadores:
- nombre: Rafael S. González D'León
mail: rafael.gonzalezl@usa.edu.co
- nombre: Yannic Vargas Lozada
mail: yannicmath@gmail.com
charlas:
- titulo: ''
abstract: ''
start:
end:
speaker:
nombre:
afiliacion:
web:
- titulo: ''
abstract: ''
start:
end:
speaker:
nombre:
afiliacion:
web:
- titulo: ''
abstract: ''
start:
end:
speaker:
nombre:
afiliacion:
web:
- titulo: ''
abstract: ''
start:
end:
speaker:
nombre:
afiliacion:
web:
- titulo: Lógica y Computación
organizadores:
- nombre: Alexandre Miquel
mail: amiquel@fing.edu.uy
- nombre: Martin Hyland
mail: M.Hyland@dpmms.cam.ac.uk
mail: M.Hyland@dpmms.cam.ac.uk
charlas:
- titulo: ''
abstract: ''
start:
end:
speaker:
nombre:
afiliacion:
web:
- titulo: ''
abstract: ''
start:
end:
speaker:
nombre:
afiliacion:
web:
- titulo: ''
abstract: ''
start:
end:
speaker:
nombre:
afiliacion:
web:
- titulo: ''
abstract: ''
start:
end:
speaker:
nombre:
afiliacion:
web:
- titulo: Algebraic and categorical structures in geometry and topology
organizadores:
- nombre: Manuel Rivera
mail: manuelor@gmail.com
- nombre: Camilo Arias Abad
mail: carias0@unal.edu.co
charlas:
- titulo: ''
abstract: ''
start:
end:
speaker:
nombre:
afiliacion:
web:
- titulo: ''
abstract: ''
start:
end:
speaker:
nombre:
afiliacion:
web:
- titulo: ''
abstract: ''
start:
end:
speaker:
nombre:
afiliacion:
web:
- titulo: ''
abstract: ''
start:
end:
speaker:
nombre:
afiliacion:
web:
- titulo: 'Problemas inversos: desde la teoría a las aplicaciones'
organizadores:
- nombre: Adriano Dr Cezaro
@ -31,6 +163,39 @@
mail: alberto.mercado@usm.cl
- nombre: Juan Pablo Agnelli
mail: agnelli@famaf.unc.edu.ar
charlas:
- titulo: ''
abstract: ''
start:
end:
speaker:
nombre:
afiliacion:
web:
- titulo: ''
abstract: ''
start:
end:
speaker:
nombre:
afiliacion:
web:
- titulo: ''
abstract: ''
start:
end:
speaker:
nombre:
afiliacion:
web:
- titulo: ''
abstract: ''
start:
end:
speaker:
nombre:
afiliacion:
web:
- titulo: Estadística Matemática
organizadores:
- nombre: Florencia Leonardi
@ -39,6 +204,39 @@
mail: lloppamela@gmail.com
- nombre: Daniela Rodriguez
mail: drodrig@dm.uba.ar
charlas:
- titulo: ''
abstract: ''
start:
end:
speaker:
nombre:
afiliacion:
web:
- titulo: ''
abstract: ''
start:
end:
speaker:
nombre:
afiliacion:
web:
- titulo: ''
abstract: ''
start:
end:
speaker:
nombre:
afiliacion:
web:
- titulo: ''
abstract: ''
start:
end:
speaker:
nombre:
afiliacion:
web:
- titulo: Teorı́a de bordismo y acciones de grupos finitos
organizadores:
- nombre: Andrés Ángel
@ -48,7 +246,40 @@
- nombre: Rita Jiménez Rolland
mail: rita@im.unam.mx csegovia@matem.unam.mx
- nombre: Carlos Segovia
mail: csegovia@matem.unam.mx
mail: csegovia@matem.unam.mx
charlas:
- titulo: ''
abstract: ''
start:
end:
speaker:
nombre:
afiliacion:
web:
- titulo: ''
abstract: ''
start:
end:
speaker:
nombre:
afiliacion:
web:
- titulo: ''
abstract: ''
start:
end:
speaker:
nombre:
afiliacion:
web:
- titulo: ''
abstract: ''
start:
end:
speaker:
nombre:
afiliacion:
web:
- titulo: Ecuaciones de evolución no-lineales y su Dinámica
organizadores:
- nombre: Jaime Angulo Pava
@ -57,6 +288,39 @@
mail: diego.chamorro@univ-evry.fr
- nombre: Claudio Muñoz
mail: cmunoz@dim.uchile.cl
charlas:
- titulo: ''
abstract: ''
start:
end:
speaker:
nombre:
afiliacion:
web:
- titulo: ''
abstract: ''
start:
end:
speaker:
nombre:
afiliacion:
web:
- titulo: ''
abstract: ''
start:
end:
speaker:
nombre:
afiliacion:
web:
- titulo: ''
abstract: ''
start:
end:
speaker:
nombre:
afiliacion:
web:
- titulo: Combinatoria
organizadores:
- nombre: Celina Miraglia Herrera de Figueiredo
@ -65,6 +329,39 @@
mail: fbonomo@dc.uba.ar
- nombre: Lucia Moura
mail: lmoura@uottawa.ca
charlas:
- titulo: ''
abstract: ''
start:
end:
speaker:
nombre:
afiliacion:
web:
- titulo: ''
abstract: ''
start:
end:
speaker:
nombre:
afiliacion:
web:
- titulo: ''
abstract: ''
start:
end:
speaker:
nombre:
afiliacion:
web:
- titulo: ''
abstract: ''
start:
end:
speaker:
nombre:
afiliacion:
web:
- titulo: Análisis Numérico
organizadores:
- nombre: Gabriel Acosta

View File

@ -4,6 +4,36 @@ use Slim\Http\Request;
use Slim\Http\Response;
use Symfony\Component\Yaml\Yaml;
function getEventos($tipo){
$conferencias = Yaml::parseFile(__DIR__."/../data/conferencias.yml");
$sesiones = Yaml::parseFile(__DIR__."/../data/sesiones.yml");
if($tipo !== 'sesiones'){
foreach ($conferencias as $val){
if ($val['categoria'] === $tipo){
$charlas = $val['charlas'];
$mockHour=8;
return array_map(function($event) use($val,&$mockHour){
$evento = array(
'title'=>$event['titulo'],
'start'=>$event['start']?$event['start']:'2021-09-15T'.++$mockHour.':00',
'end'=>$event['end']?$event['end']:'2021-09-15T'.++$mockHour.':30',
'description'=>$event['abstract'],
'speaker'=>$event['speaker'],
'resourceId'=>$val['categoria']
);
return $evento;
},$charlas);
//echo json_encode($ret);
}
}
}
else{
return $sesiones;
}
}
// Routes
$app->add(new Tuupola\Middleware\HttpBasicAuthentication([
"path" => ["/inscriptos", "inscriptoscsv"], /* or ["/admin", "/api"] */
@ -103,9 +133,7 @@ $app->get('/conferencias', function (Request $request, Response $response, array
$app->get('/sesiones', function (Request $request, Response $response, array $args) {
$this->logger->info("GDDWorkshop '/sesiones' route");
$sesiones = Yaml::parseFile(__DIR__."/../data/sesiones.yml");
//$strsesiones = file_get_contents(__DIR__."/../data/sesiones.json");
//$sesiones = json_decode($strsesiones,true);
$sesiones = Yaml::parseFile(__DIR__."/../data/sesiones.yml");
function removeAccents($string) {
return strtolower(trim(preg_replace('~[^0-9a-z]+~i', '-', preg_replace('~&([a-z]{1,2})(acute|cedil|circ|grave|lig|orn|ring|slash|th|tilde|uml);~i', '$1', htmlentities($string, ENT_QUOTES, 'UTF-8'))), ' '));
@ -163,7 +191,16 @@ $mw = function ($request, $response, $next) {
// API ROUTES
$app->group('/api', function($app){
$app->get("/eventos/{tipo:cursos|plenarias|semiplenarias|publicas}",function(Request $request, Response $response, array $args) {
$tipo=$args['tipo']=="publicas"?"Públicas":ucfirst($args['tipo']);
$newres = $response->withJson(getEventos($tipo));
return $newres;
});
$app->get("/eventos/sesiones[/{sesionId}]",function(Request $request, Response $response, array $args) {
$newres = $response->withJson(getEventos('sesiones'));
return $newres;
});
$app->get("/test", function(Request $request, Response $response, array $args) {
$this->logger->info("GDDWorkshop '/api/test' route");
return var_dump($request);

View File

@ -0,0 +1,29 @@
<!DOCTYPE HTML>
<html>
{% include 'head.html' %}
<body>
<div id="main">
{% include 'header.html' %}
<div id="site_content" class="container">
<div class="row">
<div id="content" class="col-xs-12">
{% block content %}
{% endblock %}
</div>
</div>
<div class="row">
{% block nosidebar %}
{% endblock %}
</div>
</div>
</div>
{% include 'footer.html' %}
</body>
</html>

View File

@ -1,12 +1,173 @@
{% extends "layout.html" %}
{% extends "layout-calendar.html" %}
{% block content %}
<!--<script src="https://cdn.jsdelivr.net/npm/fullcalendar@5.9.0/main.min.js"></script>-->
<!--<script src="https://cdn.jsdelivr.net/npm/fullcalendar@5.9.0/locales-all.min.js"></script>-->
<script src="https://cdn.jsdelivr.net/npm/fullcalendar-scheduler@5.9.0/main.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/fullcalendar-scheduler@5.9.0/locales-all.min.js"></script>
<script src="https://unpkg.com/@popperjs/core@2"></script>
<script src="https://unpkg.com/tippy.js@6"></script>
<!--<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/fullcalendar@5.9.0/main.min.css">-->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/fullcalendar-scheduler@5.9.0/main.min.css">
<script>
document.addEventListener('DOMContentLoaded', function() {
var calendarEl = document.getElementById('calendar');
var calendar = new FullCalendar.Calendar(calendarEl, {
schedulerLicenseKey: 'CC-Attribution-NonCommercial-NoDerivatives',
googleCalendarApiKey:'AIzaSyCAkkSHMyz2HuxXxux2gOfUsLY9EC-gisE',
//themeSystem:'bootstrap',
eventDidMount: function(info) {
var tooltip = tippy(info.el, {
content:`<strong>${info.event.title}</strong><br/><strong>${info.event.extendedProps.speaker.nombre}</strong><br/>${info.event.extendedProps.description}`,
allowHTML: true,
});
},
eventSources:[
/*{
googleCalendarId:'iga8lgjufumlgsmaltgmppuvj4@group.calendar.google.com',
color:'red'
},
{
googleCalendarId:'lo68cu653fgec0l4ira0pul564@group.calendar.google.com'
},*/
{
url: '/api/eventos/cursos',
color: 'black',
},
{
url:'/api/eventos/plenarias',
color: 'blue',
},
{
url:'/api/eventos/semiplenarias',
color: 'red'
},
{
url:'/api/eventos/publicas',
color:'gray'
}
],
events:[{
title:"Sesiones",
startTime:"15:00",
endTime:"18:15",
startRecur:"2021-09-13",
endRecur:"2021-09-18",
speaker:{nombre:"organizadores"},
//duration:{days:5}
}],
/*events:[
{
title:'Reversible Markov chains with nonnegative spectrum',
speaker:'Jairo Bochi (Penn State University)',
start:'2021-09-13T11:00:00',
end:'2021-09-13T12:00:00',
},
{
title:'Curso2',
description:'La descri del curso1',
start:'2021-09-13T11:00:00',
end:'2021-09-13T12:00:00',
},
{
groupId:1,
title:'ses1',
speaker:'Jairo Bochi (Penn State University)',
start:'2021-09-13T15:00:00',
end:'2021-09-13T16:00:00',
},
{
groupId:1,
title:'ses2',
description:'La descri del curso1',
start:'2021-09-13T15:00:00',
end:'2021-09-13T16:00:00',
},
{
groupId:1,
title:'ses3',
description:'La descri del curso1',
start:'2021-09-13T15:00:00',
end:'2021-09-13T16:00:00',
}
],*/
headerToolbar:{
center:'timeGridAll,timeGridThree,timeGridOne,TimeGridDay,Timeline'
},
locales:'es',
initialView: 'timeGridThree',
initialDate:'2021-09-13',
validRange: {
start: '2021-09-13',
end: '2021-09-19'
},
nowIndicator:true,
now:'2021-09-13',
slotMinTime:"11:00:00",
slotMaxTime:"19:00:00",
slotDuration:'00:15',
//displayEventTime:false,
allDaySlot:false,
slotLabelFormat:{
hour: 'numeric',
minute: '2-digit',
omitZeroMinute: false,
meridiem: 'short'
},
eventDisplay:'block',
views:{
timeGridAll:{
type:'timeGrid',
duration:{days:6},
buttonText:"Todos los dias"
},
timeGridThree:{
type:'timeGrid',
duration:{days:2},
buttonText:"2 dias",
},
timeGridOne:{
type:'timeGrid',
duration:{days:1},
buttonText:"1 dia"
},
TimeGridDay:{
type:'resourceTimeGrid',
duration:{days:2},
buttonText:"By resources"
},
Timeline:{
type:'resourceTimeline',
duration:{days:1},
buttonText:"timeline",
}
},
duration:{days:1},
resources:[{id:"Plenarias",title:"Plenarias"},{id:"Cursos",title:"Cursos"},{id:"Semiplenarias",title:"Semiplenarias"},{id:"Públicas",title:"Públicas"}]
});
calendar.render();
});
</script>
<div class="row">
<h1 id="programa"><strong>Calendario</strong> </h1>
<div id="calendar"></div>
<div class="col-xs-12">
<div class="alert alert-info">
<!--<div class="alert alert-info">
<i class="glyphicon glyphicon-info-sign"></i> <strong>To be announced</strong><br/>
</div>
</div>-->
<!-- <div class="media">
<a style="display:block;" href="program-files/program.pdf" target="_blank">