SlideShare una empresa de Scribd logo
1 de 38
Implementing Ajax in CF7 Basic and Intermediate Level using JavaScript, JSON and ColdFusion 7 Harbinger Systems Pranav Prakash (pranav@HarbingerGroup.com)
Agenda ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Harbinger Systems
The Internet ,[object Object],[object Object],[object Object],[object Object],Harbinger Systems
Under the hood ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Harbinger Systems
Limitations ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Harbinger Systems
Agenda ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Harbinger Systems
AJAX ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Harbinger Systems
AJAX in two slides … #1 Harbinger Systems
AJAX in two slides … #2 Harbinger Systems
AJAX flow ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Harbinger Systems
XMLHttpRequest (XHR)  ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Harbinger Systems
Creating XMLHttpRequest  // create ajaxObject supports all browser with XMLHttpRequest Support   ajaxObject = function() {  try{ // Firefox, Opera 8.0+, Safari xmlHttp=new XMLHttpRequest(); } catch (e){ // Internet Explorer try{ xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); } catch (e){ try{ xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); } catch (e){ alert("Your browser does not support AJAX!"); return false; } } } return xmlHttp; }  ajax = new ajaxObject();  Harbinger Systems
Sending data to server ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Harbinger Systems
Sending data to server ,[object Object],[object Object],[object Object],[object Object],Harbinger Systems
XMLHttpRequest open() method ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Harbinger Systems
XMLHttpRequest send() method ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Harbinger Systems
Handling Server Response ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Harbinger Systems
Checking the state of request ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Harbinger Systems
Checking the state of request … if (httpRequest.readyState == 4) { // everything is good, the response is received  }  else {  // still not ready  }   Harbinger Systems
Checking the server response code ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Harbinger Systems
Checking the server response code if (httpRequest.readyState == 4) {  if (httpRequest.status == 200) {  // perfect!  } else { // there was a problem with the request,  // maybe a 404 or 500  // show user friendly message } }   Harbinger Systems
Obtaining Data ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Harbinger Systems
Summing it all … Algorithm ,[object Object],[object Object],[object Object],[object Object],[object Object],Harbinger Systems
Done with AJAX ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Harbinger Systems
JSON ,[object Object],[object Object],[object Object],[object Object],[object Object],Harbinger Systems
JSON data types ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Harbinger Systems
Example JSON {  "Unassigned_Instructors": [ {"name":"Chavan swapnil","id":133693}, {"name":"Instructor Default","id" :4}, {"name":"prakash Pranav","id":133699}, {"name":"s m","id":133700} ], "Unassigned_Equipment":[ {"name" :"equipment 1","id":3} ], "Classrooms": [ {"capacity":25,"name":"Test Classroom","id":1}, {"capacity":50,"name" :"test classroom (50)","id":2}, {"capacity":2,"name":"Test class","id":3}, {"capacity":15,"name":"Dev Classroom 1","id":6} ], "Assigned_Equipment":[], "Assigned_Instructors":[] }   Harbinger Systems
Recreating JSON Object ,[object Object],[object Object],[object Object],[object Object],Harbinger Systems
Using the JSON Objects ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Harbinger Systems
Creating JSON in ColdFusion ,[object Object],[object Object],[object Object],Harbinger Systems
Creating JSON in ColdFusion… <cfquery name=“instructors” datasource=“#application.LMSDSN#”> <!---// find out instructors ---• </cfquery> <cfset ResultStruct = StructNew() > <cfset ResultStruct[&quot;Assigned_Instructors&quot;] = structnew() > <cfloop from=&quot;1&quot; to =&quot;#instructors2.recordcount#&quot; index=&quot;i&quot;> <cfset ResultStruct.unassigned_Instructors[i][&quot;id&quot;] = #instructors2.userid[i]# > <cfset ResultStruct.unassigned_Instructors[i][&quot;name&quot;] = #instructors2.lastname[i]# & ' ' & #instructors2.firstname[i]# > </cfloop> <cfinvoke component=&quot;JSON&quot; method=&quot;encode&quot; data=&quot;#ResultStruct#&quot; returnvariable=&quot;result&quot; /> Harbinger Systems
Done with JSON ,[object Object],[object Object],[object Object],[object Object],[object Object],Harbinger Systems
Adding ILT classes ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Harbinger Systems
The B I G picture ,[object Object],[object Object],[object Object],Harbinger Systems
The solution ,[object Object],[object Object],[object Object],[object Object],[object Object],Harbinger Systems
Homework ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Harbinger Systems
Further resources ,[object Object],[object Object],[object Object],[object Object],Harbinger Systems
That’s all from my side Thanks … Harbinger Systems

Más contenido relacionado

La actualidad más candente

Ajax Fundamentals Web Applications
Ajax Fundamentals Web ApplicationsAjax Fundamentals Web Applications
Ajax Fundamentals Web Applications
dominion
 
JSON-RPC Proxy Generation with PHP 5
JSON-RPC Proxy Generation with PHP 5JSON-RPC Proxy Generation with PHP 5
JSON-RPC Proxy Generation with PHP 5
Stephan Schmidt
 
12-security.ppt - PHP and Arabic Language - Index
12-security.ppt - PHP and Arabic Language - Index12-security.ppt - PHP and Arabic Language - Index
12-security.ppt - PHP and Arabic Language - Index
webhostingguy
 
course slides -- powerpoint
course slides -- powerpointcourse slides -- powerpoint
course slides -- powerpoint
webhostingguy
 

La actualidad más candente (20)

Ajax Fundamentals Web Applications
Ajax Fundamentals Web ApplicationsAjax Fundamentals Web Applications
Ajax Fundamentals Web Applications
 
JSON-RPC Proxy Generation with PHP 5
JSON-RPC Proxy Generation with PHP 5JSON-RPC Proxy Generation with PHP 5
JSON-RPC Proxy Generation with PHP 5
 
Testing RESTful Webservices using the REST-assured framework
Testing RESTful Webservices using the REST-assured frameworkTesting RESTful Webservices using the REST-assured framework
Testing RESTful Webservices using the REST-assured framework
 
Ajax
AjaxAjax
Ajax
 
Ajax
AjaxAjax
Ajax
 
XML and Web Services with PHP5 and PEAR
XML and Web Services with PHP5 and PEARXML and Web Services with PHP5 and PEAR
XML and Web Services with PHP5 and PEAR
 
T2
T2T2
T2
 
12-security.ppt - PHP and Arabic Language - Index
12-security.ppt - PHP and Arabic Language - Index12-security.ppt - PHP and Arabic Language - Index
12-security.ppt - PHP and Arabic Language - Index
 
Security.ppt
Security.pptSecurity.ppt
Security.ppt
 
Ajax to the Moon
Ajax to the MoonAjax to the Moon
Ajax to the Moon
 
Ruby
RubyRuby
Ruby
 
Http Parameter Pollution, a new category of web attacks
Http Parameter Pollution, a new category of web attacksHttp Parameter Pollution, a new category of web attacks
Http Parameter Pollution, a new category of web attacks
 
Jsp And Jdbc
Jsp And JdbcJsp And Jdbc
Jsp And Jdbc
 
Pragmatics of Declarative Ajax
Pragmatics of Declarative AjaxPragmatics of Declarative Ajax
Pragmatics of Declarative Ajax
 
Session Server - Maintaing State between several Servers
Session Server - Maintaing State between several ServersSession Server - Maintaing State between several Servers
Session Server - Maintaing State between several Servers
 
Javazone 2010-lift-framework-public
Javazone 2010-lift-framework-publicJavazone 2010-lift-framework-public
Javazone 2010-lift-framework-public
 
ASP.NET 02 - How ASP.NET Works
ASP.NET 02 - How ASP.NET WorksASP.NET 02 - How ASP.NET Works
ASP.NET 02 - How ASP.NET Works
 
JSON Injection
JSON InjectionJSON Injection
JSON Injection
 
course slides -- powerpoint
course slides -- powerpointcourse slides -- powerpoint
course slides -- powerpoint
 
Processing XML with Java
Processing XML with JavaProcessing XML with Java
Processing XML with Java
 

Destacado (8)

Coldfusion
ColdfusionColdfusion
Coldfusion
 
Vsftpd
VsftpdVsftpd
Vsftpd
 
Term paper presentation on NUCLEAR COLD FUSION REACTION
Term paper presentation on NUCLEAR COLD FUSION REACTIONTerm paper presentation on NUCLEAR COLD FUSION REACTION
Term paper presentation on NUCLEAR COLD FUSION REACTION
 
Detailed Report on Nuclear cold fusion Reaction and it's Future aspects
Detailed Report on Nuclear cold fusion Reaction and it's Future aspectsDetailed Report on Nuclear cold fusion Reaction and it's Future aspects
Detailed Report on Nuclear cold fusion Reaction and it's Future aspects
 
Apache安装配置mod security
Apache安装配置mod securityApache安装配置mod security
Apache安装配置mod security
 
mod_security introduction at study2study #3
mod_security introduction at study2study #3mod_security introduction at study2study #3
mod_security introduction at study2study #3
 
The Users are Restless
The Users are RestlessThe Users are Restless
The Users are Restless
 
Intro to Coldfusion
Intro to ColdfusionIntro to Coldfusion
Intro to Coldfusion
 

Similar a Implementing Ajax In ColdFusion 7

jQuery : Talk to server with Ajax
jQuery : Talk to server with AjaxjQuery : Talk to server with Ajax
jQuery : Talk to server with Ajax
Wildan Maulana
 

Similar a Implementing Ajax In ColdFusion 7 (20)

jQuery : Talk to server with Ajax
jQuery : Talk to server with AjaxjQuery : Talk to server with Ajax
jQuery : Talk to server with Ajax
 
Ajax
AjaxAjax
Ajax
 
Asynchronous JavaScript & XML (AJAX)
Asynchronous JavaScript & XML (AJAX)Asynchronous JavaScript & XML (AJAX)
Asynchronous JavaScript & XML (AJAX)
 
Ajax
AjaxAjax
Ajax
 
Ajax Ppt
Ajax PptAjax Ppt
Ajax Ppt
 
Ajax
AjaxAjax
Ajax
 
Ajax
AjaxAjax
Ajax
 
Implementing Comet using PHP
Implementing Comet using PHPImplementing Comet using PHP
Implementing Comet using PHP
 
Ajax
AjaxAjax
Ajax
 
AJAX Transport Layer
AJAX Transport LayerAJAX Transport Layer
AJAX Transport Layer
 
AJAX.pptx
AJAX.pptxAJAX.pptx
AJAX.pptx
 
AJAX Workshop Notes
AJAX Workshop NotesAJAX Workshop Notes
AJAX Workshop Notes
 
How to make Ajax work for you
How to make Ajax work for youHow to make Ajax work for you
How to make Ajax work for you
 
Ajax
AjaxAjax
Ajax
 
Core Java tutorial at Unit Nexus
Core Java tutorial at Unit NexusCore Java tutorial at Unit Nexus
Core Java tutorial at Unit Nexus
 
RIA and Ajax
RIA and AjaxRIA and Ajax
RIA and Ajax
 
Ajax and xml
Ajax and xmlAjax and xml
Ajax and xml
 
Ajax presentation
Ajax presentationAjax presentation
Ajax presentation
 
Ajax Technology
Ajax TechnologyAjax Technology
Ajax Technology
 
Ajax
AjaxAjax
Ajax
 

Más de Pranav Prakash

Apple banana oranges_peaches
Apple banana oranges_peachesApple banana oranges_peaches
Apple banana oranges_peaches
Pranav Prakash
 
Banana oranges peaches
Banana oranges peachesBanana oranges peaches
Banana oranges peaches
Pranav Prakash
 

Más de Pranav Prakash (20)

Data engineering track module 2
Data engineering track module 2Data engineering track module 2
Data engineering track module 2
 
Data engineering track module 2
Data engineering track module 2Data engineering track module 2
Data engineering track module 2
 
Machine Learning Introduction
Machine Learning IntroductionMachine Learning Introduction
Machine Learning Introduction
 
Test document
Test documentTest document
Test document
 
Webtech1b
Webtech1bWebtech1b
Webtech1b
 
Solidry @ bakheda2
Solidry @ bakheda2Solidry @ bakheda2
Solidry @ bakheda2
 
To Infinity and Beyond - OSDConf2014
To Infinity and Beyond - OSDConf2014To Infinity and Beyond - OSDConf2014
To Infinity and Beyond - OSDConf2014
 
#comments
#comments#comments
#comments
 
Ibm haifa.mq.final
Ibm haifa.mq.finalIbm haifa.mq.final
Ibm haifa.mq.final
 
Apple banana oranges_peaches
Apple banana oranges_peachesApple banana oranges_peaches
Apple banana oranges_peaches
 
Oranges
OrangesOranges
Oranges
 
Oranges peaches
Oranges peachesOranges peaches
Oranges peaches
 
Banana
BananaBanana
Banana
 
Banana peaches
Banana peachesBanana peaches
Banana peaches
 
Banana oranges
Banana orangesBanana oranges
Banana oranges
 
Banana oranges peaches
Banana oranges peachesBanana oranges peaches
Banana oranges peaches
 
Apple
AppleApple
Apple
 
Apple peaches
Apple peachesApple peaches
Apple peaches
 
Apple oranges
Apple orangesApple oranges
Apple oranges
 
Apple oranges peaches
Apple oranges peachesApple oranges peaches
Apple oranges peaches
 

Último

Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 

Último (20)

FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 

Implementing Ajax In ColdFusion 7

  • 1. Implementing Ajax in CF7 Basic and Intermediate Level using JavaScript, JSON and ColdFusion 7 Harbinger Systems Pranav Prakash (pranav@HarbingerGroup.com)
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8. AJAX in two slides … #1 Harbinger Systems
  • 9. AJAX in two slides … #2 Harbinger Systems
  • 10.
  • 11.
  • 12. Creating XMLHttpRequest // create ajaxObject supports all browser with XMLHttpRequest Support ajaxObject = function() { try{ // Firefox, Opera 8.0+, Safari xmlHttp=new XMLHttpRequest(); } catch (e){ // Internet Explorer try{ xmlHttp=new ActiveXObject(&quot;Msxml2.XMLHTTP&quot;); } catch (e){ try{ xmlHttp=new ActiveXObject(&quot;Microsoft.XMLHTTP&quot;); } catch (e){ alert(&quot;Your browser does not support AJAX!&quot;); return false; } } } return xmlHttp; } ajax = new ajaxObject(); Harbinger Systems
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19. Checking the state of request … if (httpRequest.readyState == 4) { // everything is good, the response is received } else { // still not ready } Harbinger Systems
  • 20.
  • 21. Checking the server response code if (httpRequest.readyState == 4) { if (httpRequest.status == 200) { // perfect! } else { // there was a problem with the request, // maybe a 404 or 500 // show user friendly message } } Harbinger Systems
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27. Example JSON { &quot;Unassigned_Instructors&quot;: [ {&quot;name&quot;:&quot;Chavan swapnil&quot;,&quot;id&quot;:133693}, {&quot;name&quot;:&quot;Instructor Default&quot;,&quot;id&quot; :4}, {&quot;name&quot;:&quot;prakash Pranav&quot;,&quot;id&quot;:133699}, {&quot;name&quot;:&quot;s m&quot;,&quot;id&quot;:133700} ], &quot;Unassigned_Equipment&quot;:[ {&quot;name&quot; :&quot;equipment 1&quot;,&quot;id&quot;:3} ], &quot;Classrooms&quot;: [ {&quot;capacity&quot;:25,&quot;name&quot;:&quot;Test Classroom&quot;,&quot;id&quot;:1}, {&quot;capacity&quot;:50,&quot;name&quot; :&quot;test classroom (50)&quot;,&quot;id&quot;:2}, {&quot;capacity&quot;:2,&quot;name&quot;:&quot;Test class&quot;,&quot;id&quot;:3}, {&quot;capacity&quot;:15,&quot;name&quot;:&quot;Dev Classroom 1&quot;,&quot;id&quot;:6} ], &quot;Assigned_Equipment&quot;:[], &quot;Assigned_Instructors&quot;:[] } Harbinger Systems
  • 28.
  • 29.
  • 30.
  • 31. Creating JSON in ColdFusion… <cfquery name=“instructors” datasource=“#application.LMSDSN#”> <!---// find out instructors ---• </cfquery> <cfset ResultStruct = StructNew() > <cfset ResultStruct[&quot;Assigned_Instructors&quot;] = structnew() > <cfloop from=&quot;1&quot; to =&quot;#instructors2.recordcount#&quot; index=&quot;i&quot;> <cfset ResultStruct.unassigned_Instructors[i][&quot;id&quot;] = #instructors2.userid[i]# > <cfset ResultStruct.unassigned_Instructors[i][&quot;name&quot;] = #instructors2.lastname[i]# & ' ' & #instructors2.firstname[i]# > </cfloop> <cfinvoke component=&quot;JSON&quot; method=&quot;encode&quot; data=&quot;#ResultStruct#&quot; returnvariable=&quot;result&quot; /> Harbinger Systems
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38. That’s all from my side Thanks … Harbinger Systems