The document discusses socket programming in Python. It describes how sockets provide a way for programs to communicate over a network, with sockets acting as endpoints. It explains the client-server model, with the server listening on a port for connection requests from clients. It then provides details on creating both server and client sockets in Python, including required methods like bind(), listen(), accept(), connect(), recv(), and send(). It also includes tables summarizing socket vocabulary, common server/client socket methods, and Python modules for various internet protocols.
What is Socket Programming in Python | EdurekaEdureka!
YouTube Link: https://youtu.be/T0rYSFPAR0A
** Python Certification Training: https://www.edureka.co/python **
This Edureka PPT on 'Socket Programming in Python' is to educate you as to how networks are created using the socket module in Python. Below are the topics covered in this PPT:
What are sockets?
How to achieve socket programming in Python?
Servers and clients
Client-server communication
Transferring Python objects
Python Tutorial Playlist: https://goo.gl/WsBpKe
Blog Series: http://bit.ly/2sqmP4s
Follow us to never miss an update in the future.
YouTube: https://www.youtube.com/user/edurekaIN
Instagram: https://www.instagram.com/edureka_learning/
Facebook: https://www.facebook.com/edurekaIN/
Twitter: https://twitter.com/edurekain
LinkedIn: https://www.linkedin.com/company/edureka
Castbox: https://castbox.fm/networks/505?country=in
What is Socket Programming in Python | EdurekaEdureka!
YouTube Link: https://youtu.be/T0rYSFPAR0A
** Python Certification Training: https://www.edureka.co/python **
This Edureka PPT on 'Socket Programming in Python' is to educate you as to how networks are created using the socket module in Python. Below are the topics covered in this PPT:
What are sockets?
How to achieve socket programming in Python?
Servers and clients
Client-server communication
Transferring Python objects
Python Tutorial Playlist: https://goo.gl/WsBpKe
Blog Series: http://bit.ly/2sqmP4s
Follow us to never miss an update in the future.
YouTube: https://www.youtube.com/user/edurekaIN
Instagram: https://www.instagram.com/edureka_learning/
Facebook: https://www.facebook.com/edurekaIN/
Twitter: https://twitter.com/edurekain
LinkedIn: https://www.linkedin.com/company/edureka
Castbox: https://castbox.fm/networks/505?country=in
Slides for protocol layering and network applicationsjajinekkanti
why and how Protocol layering is done in TCP/IP protocol suite, how multiplexing and demultiplexing can be done in different protocol layers in TCP\IP.
A distributed system is a collection of computational and storage devices connected through a communications network. In this type of system, data, software, and users are distributed.
Remote procedure call on client server computingSatya P. Joshi
Remote procedure call on client server computing, what is Remote procedure call on client server computing, Remote procedure call on java, Remote procedure call on client server computing
INTERNET PROTOCOL (IP)
, Datagram Format
, Fragmentation
, Options
, Security of IPv4 Datagrams
,ICMPv4
, MESSAGES
, Debugging Tools
, ICMP Checksum
, MOBILE IP
, Addressing
, Agents
, Three Phases
, Inefficiency in Mobile IP
The Raspberry Pi is a series of credit card–sized single-board computers developed in the UK by the Raspberry Pi Foundation with the intention of promoting the teaching of basic computer science in schools.
The original Raspberry Pi and Raspberry Pi 2 are manufactured in several board configurations through licensed manufacturing agreements with Newark element14 (Premier Farnell), RS Components and Egoman. These companies sell the Raspberry Pi online. Egoman produces a version for distribution solely in China and Taiwan, which can be distinguished from other Pis by their red colouring and lack of FCC/CE marks. The hardware is the same across all manufacturers.
The original Raspberry Pi is based on the Broadcom BCM2835 system on a chip (SoC), which includes an ARM1176JZF-S 700 MHz processor, VideoCore IV GPU, and was originally shipped with 256 megabytes of RAM, later upgraded (models B and B+) to 512 MB. The system has Secure Digital (SD) (models A and B) or MicroSD (models A+ and B+) sockets for boot media and persistent storage.
Slides for protocol layering and network applicationsjajinekkanti
why and how Protocol layering is done in TCP/IP protocol suite, how multiplexing and demultiplexing can be done in different protocol layers in TCP\IP.
A distributed system is a collection of computational and storage devices connected through a communications network. In this type of system, data, software, and users are distributed.
Remote procedure call on client server computingSatya P. Joshi
Remote procedure call on client server computing, what is Remote procedure call on client server computing, Remote procedure call on java, Remote procedure call on client server computing
INTERNET PROTOCOL (IP)
, Datagram Format
, Fragmentation
, Options
, Security of IPv4 Datagrams
,ICMPv4
, MESSAGES
, Debugging Tools
, ICMP Checksum
, MOBILE IP
, Addressing
, Agents
, Three Phases
, Inefficiency in Mobile IP
The Raspberry Pi is a series of credit card–sized single-board computers developed in the UK by the Raspberry Pi Foundation with the intention of promoting the teaching of basic computer science in schools.
The original Raspberry Pi and Raspberry Pi 2 are manufactured in several board configurations through licensed manufacturing agreements with Newark element14 (Premier Farnell), RS Components and Egoman. These companies sell the Raspberry Pi online. Egoman produces a version for distribution solely in China and Taiwan, which can be distinguished from other Pis by their red colouring and lack of FCC/CE marks. The hardware is the same across all manufacturers.
The original Raspberry Pi is based on the Broadcom BCM2835 system on a chip (SoC), which includes an ARM1176JZF-S 700 MHz processor, VideoCore IV GPU, and was originally shipped with 256 megabytes of RAM, later upgraded (models B and B+) to 512 MB. The system has Secure Digital (SD) (models A and B) or MicroSD (models A+ and B+) sockets for boot media and persistent storage.
The presentation given at MSBTE sponsored content updating program on 'Advanced Java Programming' for Diploma Engineering teachers of Maharashtra. Venue: Guru Gobind Singh Polytechnic, Nashik
Date: 22/12/2010
Session: Java Network Programming
The Presentation given at Guru Gobind Singh Polytechnic, Nashik for Third Year Information Technology and Computer Engineering Students on 08/02/2011.
Topic: Java Network Programming
UNIT I FUNDAMENTALS & LINK LAYER 9
Building a network – Requirements – Layering and protocols – Internet Architecture – Network software – Performance ; Link layer Services – Framing – Error Detection – Flow control
When we desire a communication between two applications possibly running on different machines, we need sockets. This presentation aims to provide knowledge of basic socket programming to undergraduate students. Basically, this presentation gives the importance of socket in the area of networking and Unix Programming. The presentation of Topic (Sockets) has designed according to the Network Programming Subject, B.Tech, 6th Semester syllabus of Punjab Technical University Kapurthala, Punjab.
Overview of the fundamental roles in Hydropower generation and the components involved in wider Electrical Engineering.
This paper presents the design and construction of hydroelectric dams from the hydrologist’s survey of the valley before construction, all aspects and involved disciplines, fluid dynamics, structural engineering, generation and mains frequency regulation to the very transmission of power through the network in the United Kingdom.
Author: Robbie Edward Sayers
Collaborators and co editors: Charlie Sims and Connor Healey.
(C) 2024 Robbie E. Sayers
Saudi Arabia stands as a titan in the global energy landscape, renowned for its abundant oil and gas resources. It's the largest exporter of petroleum and holds some of the world's most significant reserves. Let's delve into the top 10 oil and gas projects shaping Saudi Arabia's energy future in 2024.
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...Dr.Costas Sachpazis
Terzaghi's soil bearing capacity theory, developed by Karl Terzaghi, is a fundamental principle in geotechnical engineering used to determine the bearing capacity of shallow foundations. This theory provides a method to calculate the ultimate bearing capacity of soil, which is the maximum load per unit area that the soil can support without undergoing shear failure. The Calculation HTML Code included.
About
Indigenized remote control interface card suitable for MAFI system CCR equipment. Compatible for IDM8000 CCR. Backplane mounted serial and TCP/Ethernet communication module for CCR remote access. IDM 8000 CCR remote control on serial and TCP protocol.
• Remote control: Parallel or serial interface.
• Compatible with MAFI CCR system.
• Compatible with IDM8000 CCR.
• Compatible with Backplane mount serial communication.
• Compatible with commercial and Defence aviation CCR system.
• Remote control system for accessing CCR and allied system over serial or TCP.
• Indigenized local Support/presence in India.
• Easy in configuration using DIP switches.
Technical Specifications
Indigenized remote control interface card suitable for MAFI system CCR equipment. Compatible for IDM8000 CCR. Backplane mounted serial and TCP/Ethernet communication module for CCR remote access. IDM 8000 CCR remote control on serial and TCP protocol.
Key Features
Indigenized remote control interface card suitable for MAFI system CCR equipment. Compatible for IDM8000 CCR. Backplane mounted serial and TCP/Ethernet communication module for CCR remote access. IDM 8000 CCR remote control on serial and TCP protocol.
• Remote control: Parallel or serial interface
• Compatible with MAFI CCR system
• Copatiable with IDM8000 CCR
• Compatible with Backplane mount serial communication.
• Compatible with commercial and Defence aviation CCR system.
• Remote control system for accessing CCR and allied system over serial or TCP.
• Indigenized local Support/presence in India.
Application
• Remote control: Parallel or serial interface.
• Compatible with MAFI CCR system.
• Compatible with IDM8000 CCR.
• Compatible with Backplane mount serial communication.
• Compatible with commercial and Defence aviation CCR system.
• Remote control system for accessing CCR and allied system over serial or TCP.
• Indigenized local Support/presence in India.
• Easy in configuration using DIP switches.
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...Amil Baba Dawood bangali
Contact with Dawood Bhai Just call on +92322-6382012 and we'll help you. We'll solve all your problems within 12 to 24 hours and with 101% guarantee and with astrology systematic. If you want to take any personal or professional advice then also you can call us on +92322-6382012 , ONLINE LOVE PROBLEM & Other all types of Daily Life Problem's.Then CALL or WHATSAPP us on +92322-6382012 and Get all these problems solutions here by Amil Baba DAWOOD BANGALI
#vashikaranspecialist #astrologer #palmistry #amliyaat #taweez #manpasandshadi #horoscope #spiritual #lovelife #lovespell #marriagespell#aamilbabainpakistan #amilbabainkarachi #powerfullblackmagicspell #kalajadumantarspecialist #realamilbaba #AmilbabainPakistan #astrologerincanada #astrologerindubai #lovespellsmaster #kalajaduspecialist #lovespellsthatwork #aamilbabainlahore#blackmagicformarriage #aamilbaba #kalajadu #kalailam #taweez #wazifaexpert #jadumantar #vashikaranspecialist #astrologer #palmistry #amliyaat #taweez #manpasandshadi #horoscope #spiritual #lovelife #lovespell #marriagespell#aamilbabainpakistan #amilbabainkarachi #powerfullblackmagicspell #kalajadumantarspecialist #realamilbaba #AmilbabainPakistan #astrologerincanada #astrologerindubai #lovespellsmaster #kalajaduspecialist #lovespellsthatwork #aamilbabainlahore #blackmagicforlove #blackmagicformarriage #aamilbaba #kalajadu #kalailam #taweez #wazifaexpert #jadumantar #vashikaranspecialist #astrologer #palmistry #amliyaat #taweez #manpasandshadi #horoscope #spiritual #lovelife #lovespell #marriagespell#aamilbabainpakistan #amilbabainkarachi #powerfullblackmagicspell #kalajadumantarspecialist #realamilbaba #AmilbabainPakistan #astrologerincanada #astrologerindubai #lovespellsmaster #kalajaduspecialist #lovespellsthatwork #aamilbabainlahore #Amilbabainuk #amilbabainspain #amilbabaindubai #Amilbabainnorway #amilbabainkrachi #amilbabainlahore #amilbabaingujranwalan #amilbabainislamabad
COLLEGE BUS MANAGEMENT SYSTEM PROJECT REPORT.pdfKamal Acharya
The College Bus Management system is completely developed by Visual Basic .NET Version. The application is connect with most secured database language MS SQL Server. The application is develop by using best combination of front-end and back-end languages. The application is totally design like flat user interface. This flat user interface is more attractive user interface in 2017. The application is gives more important to the system functionality. The application is to manage the student’s details, driver’s details, bus details, bus route details, bus fees details and more. The application has only one unit for admin. The admin can manage the entire application. The admin can login into the application by using username and password of the admin. The application is develop for big and small colleges. It is more user friendly for non-computer person. Even they can easily learn how to manage the application within hours. The application is more secure by the admin. The system will give an effective output for the VB.Net and SQL Server given as input to the system. The compiled java program given as input to the system, after scanning the program will generate different reports. The application generates the report for users. The admin can view and download the report of the data. The application deliver the excel format reports. Because, excel formatted reports is very easy to understand the income and expense of the college bus. This application is mainly develop for windows operating system users. In 2017, 73% of people enterprises are using windows operating system. So the application will easily install for all the windows operating system users. The application-developed size is very low. The application consumes very low space in disk. Therefore, the user can allocate very minimum local disk space for this application.
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptxR&R Consult
CFD analysis is incredibly effective at solving mysteries and improving the performance of complex systems!
Here's a great example: At a large natural gas-fired power plant, where they use waste heat to generate steam and energy, they were puzzled that their boiler wasn't producing as much steam as expected.
R&R and Tetra Engineering Group Inc. were asked to solve the issue with reduced steam production.
An inspection had shown that a significant amount of hot flue gas was bypassing the boiler tubes, where the heat was supposed to be transferred.
R&R Consult conducted a CFD analysis, which revealed that 6.3% of the flue gas was bypassing the boiler tubes without transferring heat. The analysis also showed that the flue gas was instead being directed along the sides of the boiler and between the modules that were supposed to capture the heat. This was the cause of the reduced performance.
Based on our results, Tetra Engineering installed covering plates to reduce the bypass flow. This improved the boiler's performance and increased electricity production.
It is always satisfying when we can help solve complex challenges like this. Do your systems also need a check-up or optimization? Give us a call!
Work done in cooperation with James Malloy and David Moelling from Tetra Engineering.
More examples of our work https://www.r-r-consult.dk/en/cases-en/
Final project report on grocery store management system..pdfKamal Acharya
In today’s fast-changing business environment, it’s extremely important to be able to respond to client needs in the most effective and timely manner. If your customers wish to see your business online and have instant access to your products or services.
Online Grocery Store is an e-commerce website, which retails various grocery products. This project allows viewing various products available enables registered users to purchase desired products instantly using Paytm, UPI payment processor (Instant Pay) and also can place order by using Cash on Delivery (Pay Later) option. This project provides an easy access to Administrators and Managers to view orders placed using Pay Later and Instant Pay options.
In order to develop an e-commerce website, a number of Technologies must be studied and understood. These include multi-tiered architecture, server and client-side scripting techniques, implementation technologies, programming language (such as PHP, HTML, CSS, JavaScript) and MySQL relational databases. This is a project with the objective to develop a basic website where a consumer is provided with a shopping cart website and also to know about the technologies used to develop such a website.
This document will discuss each of the underlying technologies to create and implement an e- commerce website.
Immunizing Image Classifiers Against Localized Adversary Attacksgerogepatton
This paper addresses the vulnerability of deep learning models, particularly convolutional neural networks
(CNN)s, to adversarial attacks and presents a proactive training technique designed to counter them. We
introduce a novel volumization algorithm, which transforms 2D images into 3D volumetric representations.
When combined with 3D convolution and deep curriculum learning optimization (CLO), itsignificantly improves
the immunity of models against localized universal attacks by up to 40%. We evaluate our proposed approach
using contemporary CNN architectures and the modified Canadian Institute for Advanced Research (CIFAR-10
and CIFAR-100) and ImageNet Large Scale Visual Recognition Challenge (ILSVRC12) datasets, showcasing
accuracy improvements over previous techniques. The results indicate that the combination of the volumetric
input and curriculum learning holds significant promise for mitigating adversarial attacks without necessitating
adversary training.
Quality defects in TMT Bars, Possible causes and Potential Solutions.PrashantGoswami42
Maintaining high-quality standards in the production of TMT bars is crucial for ensuring structural integrity in construction. Addressing common defects through careful monitoring, standardized processes, and advanced technology can significantly improve the quality of TMT bars. Continuous training and adherence to quality control measures will also play a pivotal role in minimizing these defects.
Welcome to WIPAC Monthly the magazine brought to you by the LinkedIn Group Water Industry Process Automation & Control.
In this month's edition, along with this month's industry news to celebrate the 13 years since the group was created we have articles including
A case study of the used of Advanced Process Control at the Wastewater Treatment works at Lleida in Spain
A look back on an article on smart wastewater networks in order to see how the industry has measured up in the interim around the adoption of Digital Transformation in the Water Industry.
Democratizing Fuzzing at Scale by Abhishek Aryaabh.arya
Presented at NUS: Fuzzing and Software Security Summer School 2024
This keynote talks about the democratization of fuzzing at scale, highlighting the collaboration between open source communities, academia, and industry to advance the field of fuzzing. It delves into the history of fuzzing, the development of scalable fuzzing platforms, and the empowerment of community-driven research. The talk will further discuss recent advancements leveraging AI/ML and offer insights into the future evolution of the fuzzing landscape.
Courier management system project report.pdfKamal Acharya
It is now-a-days very important for the people to send or receive articles like imported furniture, electronic items, gifts, business goods and the like. People depend vastly on different transport systems which mostly use the manual way of receiving and delivering the articles. There is no way to track the articles till they are received and there is no way to let the customer know what happened in transit, once he booked some articles. In such a situation, we need a system which completely computerizes the cargo activities including time to time tracking of the articles sent. This need is fulfilled by Courier Management System software which is online software for the cargo management people that enables them to receive the goods from a source and send them to a required destination and track their status from time to time.
1. Socket Programming in Python
Nemi Chandra Rathore
Department of Computer Science
Central University of South Bihar, Patna
August 25, 2017
2. Outline
Introduction
Nemi Chandra Rathore (Department of Computer Science Central University of South Bihar, Patna)Socket Programming in Python August 25, 2017 2 / 19
3. Introduction to Sockets
A socket is one endpoint of a two-way communication link between
two programs running on the network.[1]
process sends/receives messages to/from its socket.
Nemi Chandra Rathore (Department of Computer Science Central University of South Bihar, Patna)Socket Programming in Python August 25, 2017 3 / 19
4. Introduction to Sockets
Figure: Process communication on network using sockets(TCP)
Nemi Chandra Rathore (Department of Computer Science Central University of South Bihar, Patna)Socket Programming in Python August 25, 2017 4 / 19
5. Introduction to Sockets
A socket is bound to a port number so that the TCP layer can
identify the application that data is destined to be sent to.
On the Server Side:
Normally, a server runs on a specific computer and has a socket that is
bound to a specific port number.
The server just waits, listening to the socket for a client to make a
connection request.
Nemi Chandra Rathore (Department of Computer Science Central University of South Bihar, Patna)Socket Programming in Python August 25, 2017 5 / 19
6. Introduction to Sockets
On the Client-Side:
The client knows the hostname of the machine on which the server is
running and the port number on which the server is listening.
To make a connection request, the client connect with the server on
the server’s machine and port.
The client also needs to identify itself to the server so it binds to a
local port number that it will use during this connection.
Nemi Chandra Rathore (Department of Computer Science Central University of South Bihar, Patna)Socket Programming in Python August 25, 2017 6 / 19
7. Socket Programming in Python
Python provides two levels of access to network services [2]:
1 Low Level Access
Offers access the basic socket support in the underlying operating
system.
2 High Level Access
Offers libraries that provide higher-level access to specific
application-level network protocols, such as FTP, HTTP, and so on.
Nemi Chandra Rathore (Department of Computer Science Central University of South Bihar, Patna)Socket Programming in Python August 25, 2017 7 / 19
8. Socket Programming in Python
Sockets may be implemented over a number of different channel
types: Unix domain sockets, TCP, UDP, and so on.
The socket library provides specific classes for handling the common
transports as well as a generic interface for handling the rest.
Nemi Chandra Rathore (Department of Computer Science Central University of South Bihar, Patna)Socket Programming in Python August 25, 2017 8 / 19
9. Socket Programming in Python
Term Decscription
domain The family of protocols that is used as the trans-
port mechanism. Indicated by constants like
AF INET, AF INET6, PF UNIX, PF X25 and so
on.
type The type of communications between the two end-
points, SOCK STREAM, SOCK DGRAM
protocol Used to identify a variant of a protocol, typically
0.
hostname A string representing host machine.(IP Address)
port A string containing a port number, or the name of
a service.
Table: Socket vocabulary
Nemi Chandra Rathore (Department of Computer Science Central University of South Bihar, Patna)Socket Programming in Python August 25, 2017 9 / 19
10. Socket Programming in Python: Creating a server
Import socket API using ”import socket” statement.
Create a socket, you must use the socket.socket() function available
in socket module
s = socket.socket(socket family, socket type, protocol = 0)
Example:
s = socket.socket(socket.AF INET, socket.SOCK STREAM)
Nemi Chandra Rathore (Department of Computer Science Central University of South Bihar, Patna)Socket Programming in Python August 25, 2017 10 / 19
11. Socket Programming in Python: Creating a server
Now bind the socket using bind function with a port and IP.
s.bind(IP, PORT)
This makes the server listen to requests coming from other computers
on the network on PORT
Now put the socket into listening mode by adding line s.listen(51).
1
5 indicates that 5 connections are kept waiting if the server is busy.
Nemi Chandra Rathore (Department of Computer Science Central University of South Bihar, Patna)Socket Programming in Python August 25, 2017 11 / 19
12. Socket Programming in Python: Creating a server
Now create a forever loop until we interrupt it or an error occurs:
accept and process any request from client within the loop.
Use s.accept() to accept a connection from client.
s.accept returns a tuple conn, addr where conn is a connection object
to the client and addr is address of the client.
Nemi Chandra Rathore (Department of Computer Science Central University of South Bihar, Patna)Socket Programming in Python August 25, 2017 12 / 19
13. Socket Programming in Python: Creating a client
Import socket API using ”import socket” statement.
Create a socket, you must use the socket.socket() function available
in socket module.
Connect the set server running at machine with (IP, port) pair using
s.connect((IP, port))
Now client can communicate using send() and recv() methods of the
socket object.
Nemi Chandra Rathore (Department of Computer Science Central University of South Bihar, Patna)Socket Programming in Python August 25, 2017 13 / 19
14. Socket Programming in Python
Table: Server Socket Methods
Method Decscription
s.bind() This method binds address (hostname, port num-
ber pair) to socket.
s.listen() This method sets up and start TCP listener.
s.accept() This passively accept TCP client connection, wait-
ing until connection arrives (blocking).
Nemi Chandra Rathore (Department of Computer Science Central University of South Bihar, Patna)Socket Programming in Python August 25, 2017 14 / 19
15. Socket Programming in Python
Table: Cleint Socket Methods
Method Decscription
s.connect() This method actively initiates TCP server connec-
tion.
Nemi Chandra Rathore (Department of Computer Science Central University of South Bihar, Patna)Socket Programming in Python August 25, 2017 15 / 19
16. Socket Programming in Python
Table: General Socket Methods
Method Decscription
s.recv() Receives TCP message.
s.send() Transmits TCP message.
s.recvfrom() Receives UDP message.
s.sendto() Transmits UDP message.
s.close() Closes socket.
socket.gethostname() Returns the hostname.
Nemi Chandra Rathore (Department of Computer Science Central University of South Bihar, Patna)Socket Programming in Python August 25, 2017 16 / 19
17. Socket Programming in Python
Protocol Common func-
tion
Port
No
Python module
HTTP Web pages 80 httplib, urllib, xml-
rpclib
NNTP2 Usenet news 119 nntplib
FTP File transfers 20 ftplib, urllib
SMTP Sending email 25 smtplib
Telnet Command lines 23 telnetlib
IMAP4 Fetching email 143 imaplib
POP3 Fetching email 110 poplib
Table: Python Internet modules
2
Network News Transfer Protocol
Nemi Chandra Rathore (Department of Computer Science Central University of South Bihar, Patna)Socket Programming in Python August 25, 2017 17 / 19
18. Socket Programming in Python
Nemi Chandra Rathore (Department of Computer Science Central University of South Bihar, Patna)Socket Programming in Python August 25, 2017 18 / 19
19. References I
Oracle: Java Documentation. https://docs.oracle.com/
javase/tutorial/networking/sockets/definition.html.
Accessed: 2017-08-20.
Python Network Programming. https:
//www.tutorialspoint.com/python/python_networking.htm.
Accessed: 2017-08-20.
Nemi Chandra Rathore (Department of Computer Science Central University of South Bihar, Patna)Socket Programming in Python August 25, 2017 19 / 19