Overview / Introduction about Wikki Tourists FC
Wikki Tourists Football Club, commonly known as Wikki Tourists FC, is a prominent football team based in Kano State, Nigeria. Competing in the Nigerian Professional Football League (NPFL), the club was established in 1976 and has since become a staple in Nigerian football. Under the guidance of their current coach, the team plays with a focus on strategic formations and dynamic play.
Team History and Achievements
Since its inception, Wikki Tourists FC has experienced various phases of success and development. Notably, they have secured several league titles and have consistently been among the top contenders in the NPFL. The club’s notable seasons include their championship victories and commendable performances that have solidified their reputation in Nigerian football.
Current Squad and Key Players
The squad features a mix of seasoned players and promising young talent. Key players such as [Star Player Name] play pivotal roles, with positions ranging from forwards to defenders. Their statistics highlight their contributions to the team’s performance, making them crucial for any betting analysis.
Team Playing Style and Tactics
Wikki Tourists FC is known for its versatile playing style, often employing formations like 4-4-2 or 4-3-3. Their tactics emphasize strong defensive strategies coupled with swift counter-attacks. Strengths include disciplined defense and effective set-pieces, while weaknesses may involve occasional lapses in midfield control.
Interesting Facts and Unique Traits
The club is affectionately nicknamed “The Eagles” by fans who are passionate about supporting their team. Rivalries with teams like [Rival Team] add excitement to matches, while traditions such as pre-game rituals engage the fanbase deeply.
Lists & Rankings of Players, Stats, or Performance Metrics
- Top Scorer: [Player Name] – Goals: ✅
- Best Defender: [Player Name] – Clean Sheets: 🎰
- MVP: [Player Name] – Key Performances: 💡
Comparisons with Other Teams in the League or Division
In comparison to other NPFL teams, Wikki Tourists FC stands out for its tactical discipline and ability to perform under pressure. While some teams may boast stronger individual talents, Wikki Tourists excel through cohesive teamwork.
Case Studies or Notable Matches
A breakthrough game that exemplifies Wikki Tourists’ capabilities was their victory against [Opponent Team], where strategic substitutions turned the match around in their favor. This game highlighted their adaptability and resilience on the field.
Tables Summarizing Team Stats, Recent Form, Head-to-Head Records, or Odds
| Date | Opponent | Result | Odds |
|---|---|---|---|
| [Date] | [Opponent] | [Result] | [Odds] |
Tips & Recommendations for Analyzing the Team or Betting Insights
- Analyze recent form to gauge momentum before placing bets.
- Closely monitor key player performances as they can significantly influence match outcomes.
- Evaluate head-to-head records against upcoming opponents for better predictions.
Frequently Asked Questions (FAQ)
What are some key strengths of Wikki Tourists FC?
Their disciplined defense and ability to execute effective counter-attacks are significant strengths that contribute to their competitive edge.
Who are some notable players on the team?
[Star Player Name] is a standout performer known for his scoring ability and leadership on the field.
How does Wikki Tourists FC perform against top-tier teams?
The team often performs admirably against top-tier opponents due to their tactical discipline and teamwork-focused approach.
Tips & Recommendations for Betting Analysis (continued)
- Pay attention to coaching changes or tactical shifts that could impact performance.
- Bet on odds that reflect potential upsets if you believe Wikki Tourists can capitalize on opponent weaknesses. </ul
- ✅ Strong defensive record this season ensures stability during games.</li
xuehaiyu/BookStore/src/main/java/com/bookstore/controller/AdminController.java
package com.bookstore.controller;
import com.bookstore.entity.Admin;
import com.bookstore.service.AdminService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
@RequestMapping(“/admin”)
public class AdminController {
@Autowired
private AdminService adminService;
/**
* 根据用户名和密码查询管理员信息
* @param username 用户名
* @param password 密码
* @return 返回结果信息,如果是null,说明登录失败,否则返回Admin对象的json字符串表示形式
*/
@ResponseBody
@RequestMapping(“/login”)
public String login(String username,String password){
return adminService.login(username,password);
}
}
xuehaiyu/BookStore<|file_sep[{"pid":0,"ph":"i","name":"Memory sample","ts":1521192603812000,"args":{"JVM stats":"heap_memory_usage: 311893312nnon_heap_memory_usage: 158823784nloaded_class_count: 16376nthread_count: 22ngarbage_collection_stats {n name: "PS Scavenge"n gc_collections: 0n gc_time: 0n}ngarbage_collection_stats {n name: "PS MarkSweep"n gc_collections: 0n gc_time: 0n}n"}},{"pid":0,"ph":"i","name":"Memory sample","ts":1521192603881000,"args":{"JVM stats":"heap_memory_usage: 322512848nnon_heap_memory_usage: 158826520nloaded_class_count: 16376nthread_count: 27ngarbage_collection_stats {n name: "PS Scavenge"n gc_collections: 0n gc_time: 0n}ngarbage_collection_stats {n name: "PS MarkSweep"n gc_collections: 0n gc_time: 0n}n"}},{"pid":0,"ph":"i","name":"Memory sample","ts":1521192603881001,"args":{"JVM stats":"heap_memory_usage: 322512848nnon_heap_memory_usage: 158826520nloaded_class_count: 16376nthread_count: 27ngarbage_collection_stats {n name: "PS Scavenge"n gc_collections: 0n gc_time: 0n}ngarbage_collection_stats {n name: "PS MarkSweep"n gc_collections: 0nmohsinanwar12/RealTimeVehicleDetectionSystem> System >> Advanced System Settings >> Environment Variables.
iii) Click New under system variables.
iv) Variable name :- JAVA_HOME , Variable Value :- C:Program FilesJavajdk1.8.0_251
v) In Path variable add %JAVA_HOME%bin.
Note:- If you already have Java installed then skip this step.
——————————————————–
Installation Steps For OpenCV :
1) Download opencv source code from here : https://github.com/opencv/opencv/releases/tag/4.5.1
Unzip it at location : C:UsersDesktopopencv
Note:- Replace YourUsername with your actual username.
—————————————————————–
Installation Steps For OpenCV Contrib Source Code :
1) Download opencv contrib source code from here : https://github.com/opencv/opencv_contrib/releases/tag/4.5.1
Unzip it at location : C:UsersDesktopopencv_contrib
Note:- Replace YourUsername with your actual username.
—————————————————————–
Installation Steps For MinGW :
Download MinGW from here : http://mingw-w64.org/doku.php/download/mingw-builds
Install it at location : C:MinGW
Select MinGW-W64 x86_64-posix-seh-rt_v10-rev1.exe file.
—————————————————————–
Installation Steps For CMake :
Download CMake from here : https://cmake.org/download/
Install it at default location i.e., C:Program FilesCMakebin
—————————————————————–
Installation Steps For Python:
Download Python version python-3.x.x-amd64.exe from here : https://www.python.org/downloads/windows/
Install it at default location i.e., C:Python37_x64
Set path environment variable value = %PATH%;C:Python37_x64;C:Python37_x64Scripts;C:MinGWbin
——————————————————————
Installation Steps For Jupyter Notebook:
Open command prompt then type following commands one by one.
pip install jupyter notebook
pip install –upgrade pip setuptools wheel
To start jupyter notebook open command prompt go to Desktop folder using cd Desktop then type following command.
jupyter notebook
Open browser go to localhost link shown by jupyter notebook.
Click Create New Button then select Python File option.
Now copy paste all files inside RealTimeVehicleDetectionSystem folder into new python file created by jupyter notebook.
To run project press shift + enter button together after selecting each line.
You can also download ipynb file given along side with project files.
Note:- If you want to use same IDE used by us then download Anaconda navigator from here : https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=&cad=rja&uact=8&ved=202ahUKEwjM9eGmPzxAhW7QGMBHcDyBqAQFnoECBAAQAw&url=https%3A%2F%2Fwww.continuum.io%2Fdownload&usg=AOvVaw03kLZPwz_5zXmzrZL9YiKX
Or you can use PyCharm Community Edition which we used during development phase which can be downloaded from here :
https://www.jetbrains.com/pycharm/download/#section=windows
For further queries mail us at [email protected]
==================================================================
For Linux Users:
==================================================================
For Ubuntu Users:
Install OpenCV using following commands.
sudo apt-get update && sudo apt-get upgrade
sudo apt-get install build-essential cmake pkg-config git wget unzip yasm libjpeg-dev libpng-dev libtiff5-dev libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libxvidcore-dev libx264-dev qtbase5-dev python-dev python-tk libatlas-base-dev gfortran
sudo apt-get install python-numpy python-matplotlib python-tk python-opencv
For further queries mail us at [email protected]
==================================================================
For MAC OS Users:
==================================================================
For MAC OS Users:
Install OpenCV using following commands.
brew tap homebrew/science
brew install opencv@4
brew link –force opencv@4 –overwrite
brew unlink opencv@4 –force
For further queries mail us at [email protected]
==================================================================
Documentation:
==================================================================
In our project we used YOLO algorithm which is very fast object detection algorithm.It uses deep neural network architecture which consists of convolution layers followed by fully connected layers.The algorithm works faster than other algorithms because it only predicts bounding boxes instead of predicting them first then running classifier on each bounding box.The prediction method reduces computation time so that real time video processing becomes possible.This algorithm also gives good accuracy when compared with other algorithms.The algorithm uses anchor boxes which are predefined boxes.We defined two anchor boxes whose sizes were (10 x13), (16 x30).We used these anchor boxes because most vehicles found were cars.
Our model consists of two parts one part detects vehicle using YOLO v3 algorithm while other part recognizes license plate number using OCR technology.Once vehicle is detected we crop image containing vehicle.Then we resize cropped image so that input size required by OCR technology is satisfied.After resizing cropped image we convert color space BGR into grayscale.Then we blur cropped image so that noise present gets removed.After blurring image we apply adaptive thresholding technique.In adaptive thresholding technique pixel values greater than mean minus constant value gets assigned white color otherwise black color.In this way text becomes more prominent.For detecting contours contours hierarchy technique was used.After finding contours bounding rectangle was drawn around contours.We selected contour having maximum area.Then we applied padding around bounding rectangle.Then finally extracted license plate number.
We collected dataset consisting of images containing vehicles taken from different angles.We divided dataset into train,test set.In train set we labeled images manually using labelImg tool.Then we trained model on train set.Then tested model on test set.
After testing model accuracy obtained was around ~90%.Accuracy could be improved if more data would be available but unfortunately getting large dataset was not possible due lack of resources.
==================================================================
How To Use Project:
==================================================================
To run project first install dependencies mentioned above.
After installing dependencies run following command.
python main.py
Project will start running.You will see window showing video feed captured through camera.
If vehicle enters frame then license plate number will be displayed below vehicle.
If no vehicle enters frame then message “No Vehicle Detected” will be displayed.
Video recording will start automatically once you start running project.
You can stop video recording by pressing ‘q’ button.
After stopping video recording recorded video will be saved as mp4 file.You can find this file inside VideoRecordings folder located inside RealTimeVehicleDetectionSystem folder.
Note:- If you want same IDE used by us during development phase then download Anaconda navigator from here :
https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=&cad=rja&uact=8&ved=202ahUKEwjM9eGmPzxAhW7QGMBHcDyBqAQFnoECBAAQAw&url=https%3A%2F%2Fwww.continuum.io%2Fdownload&usg=AOvVaw03kLZPwz_5zXmzrZL9YiKX
Or you can use PyCharm Community Edition which we used during development phase which can be downloaded from here :
https://www.jetbrains.com/pycharm/download/#section=windows
For further queries mail us at [email protected]
==================================================================
About Us:
==================================================================
Mohsin Anwar Roll No.:18CS10014 Section:CSE-A Branch:CSE
Aniket Sharma Roll No.:18CS10018 Section:CSE-A Branch:CSE
Vishal Sharma Roll No.:18CS10024 Section:CSE-A Branch:CSE
Department Of Computer Science And Engineering,NIT Kurukshetra.
Copyright © Mohsin Anwar , Aniket Sharma , Vishal Sharma All rights reserved.mohsinanwar12/RealTimeVehicleDetectionSystem args[“confidence”]:
mask=(detection[7]>args[‘threshold’])*(detection[7]<=scores[class_id])
box=detection[6][mask]
if(class_id==6):
box=[int(i*w)for i in box]
cv.rectangle(frame,(box[0],box[1]),(box[+]+box[-],box[-]+box[-]),COLORS[class_id],thickness=thickness)
text=f"{LABELS[class_id]}:{confidence:.f}%"
cv.putText(frame,text,(box[+]+10 ,box[-]+30),
cv.FONT_HERSHEY_SIMPLEX,.75,COLORS[class_id],thickness=thickness)
if writer is not None:
writer.write(frame)
fps.update()
cv.imshow("Frame" ,frame)
key=cv.waitKey(1)&255
if key == ord('q'):
break
fps.stop()
cv.destroyAllWindows()
if writer is not None:
writer.release()
vs.stop()# USAGE EXAMPLE:
#
# python detect.py –image images/car.jpg
# –yolo yolo-coco
# –ocr ocr.hdf5
# import necessary packages
from imutils.video import VideoStream
from imutils.video import FPS
from PIL import Image
from keras.models import load_model
from tensorflow.keras.preprocessing.image import img_to_array
from tensorflow.keras.applications.mobilenet_v2 import preprocess_input
from tensorflow.keras.preprocessing.image import load_img
import numpy as np
import argparse
import cvlib as cv
import imutils
import dlib
import pytesseract
import time
import cvzone
import warnings
warnings.filterwarnings(‘ignore’)
pytesseract.pytesseract.tesseract_cmd=’C:/Program Files/Tesseract-OCR/tesseract.exe’
cvzone.__version__
# construct argument parser
ap = argparse.ArgumentParser()
ap.add_argument(“-i” ,”–input” ,type=str,
help=”path/to/input/video/file”)
ap.add_argument(“-o” ,”–output” ,type=str,
help=”path/to/output/video/file”)
ap.add_argument(“-l” ,”–licensePlateListFile”,
type=str,default=”./licensePlates.txt”,
help =”path/to/licensePlateListFile”)
ap.add_argument(“-a” ,”–alphabetFile”,
type=str,default=”./alphabet.txt”,
help =”path/to/alphabetFile”)
ap.add_argument(“-b” ,”–blurKernelSize”,
type=int,default=None,
help =”size/kernelsize”)
ap.add_argument(“-c” ,”–charConfidenceThreshold”,
type=float,default=None,
help =”character/confidence/threshold”)
ap.add_argument(“-d” ,”–charWidthThreshold”,
type=int,default=None,
help =”character/width/threshold”)
ap.add_argument(“-e” ,”–charHeightThreshold”,
type=int,default=None,
help =”character/height/threshold”)
ap.add_argument(“-f” ,”–minLicensePlateWidth”,
type=int,default=None,
help =”minimum/licensePlateWidth”)
ap.add_argument(“-g” ,”–minLicensePlateHeight”,
type=int,default=None,
help =”minimum/licensePlateHeight”)
ap.add_argument(‘-m’,”–minAreaRatioOfCharToLicensePlateArea”,
default=None,type=float)
parser.ap_add_argumemnt(“–detectCharsInPlatesOnlyOnce”,
action=’store_true’)
parser.ap_add_argumemnt(“–showStepsOfAlgoProcessingFlowOnScreen”,
action=’store_true’)
parser.ap_add_argumemnt(“–doNotDetectPlatesWithCertainCharsInThem”,
default=”,type=str)
parser.ap_add_argumemnt(“–doNotDetectPlatesWithCertainStringsInThem”,
default=”,type=str)
parser.ap_add_argumemnt(‘–useNN’,action=’store_true’,
dest=’useNN’,default=False)
parser.ap_add_argumemnt(‘–useLBPH’,action=’store_true’,
dest=’useLBPH’,default=False)
parser.ap_add_argumemnt(‘–useTFIDF’,action=’store_true’,
dest=’useTFIDF’,default=False)
args = vars(parser.parse_args())
def getCharSegmentationContours(charCandidates):
charCandidates.sort(key=lambda b:b[‘contour’][cv.contourArea])
charCandidates.reverse()
charSegmentationContours=[]
minimumCharPixelWidthAndHeight=(np.mean([charCandidate[‘minWidth’]for charCandidatein charCandidates]),
np.mean([charCandidate[‘minHeight’]for charCandidatein charCandidates]))
for charCandidateindex,charCandidatein enumerate(charCandidates):
if charCandidate[‘contour’][cv.contourArea]charCandidateindex))]
if len(overlappingCharCandidates)==:
continue
overlappingCharsSortedByOverlapFactor=[overlappingCharCandidatefor overlappingCharsSortedByOverlapFactor(sorted(overlappingCharsSortedByOverlapFactor,key=lambda overlappingCharsSortedByOverlapFactorkey:key=key[‘overlapFactor’],reverse=True))]
maxOverlappingCharsCount=len(overlappingCharsSortedByOverlapFactor)
sumOfMaxOverlappingCharsOverlaps=sum([overlappingCharsSortedByOverlapFactorsorted(maxOverlappingCharsCount)[‘overlapFactor’]])
averageMaxOverlappingCharsOverlap=sumOfMaxOverlappingCharsOverlaps/maxOverlappingCharsCount
for overlappingIndex,charIndexin enumerate(range(maxOverlappingCharsCount)):
overlapFactor=maxOverlappingCharsSortedByOverlapFactorsorted(maxOverlappingCharsCount)[overlapIndex][‘overlapFactor’]
if overlapFactor<=averageMaxOverlappingCharsOverlap*max(minimumNumberOfMatchingPixels,maximumPercentageOfPixels):
break
else:
maxOverlappingCharsCount-=1
mostSignificantIndices=list(range(maxOverlappingCharsCount))
mostSignificantIndices.insert(0,charCandidateindex)
mostSignificantIndices=list(set(mostSignificantIndices))
if len(mostSignificantIndices)<minimumNumberOfMatchingPixels:
continue
else:
mostSignificantIndices.sort()
mostSignificantIndices=list(reversed(mostSignificantIndices))
for indexin mostSignificantIndices[:-1]:
del charCandidates[index]
currentConcatenatedMinRect=cv.boundingRect(np.concatenate(tuple([charCandidates[charIndex]['contour']foreach charIndexin mostSignificantIndices])))
currentConcatenatedMinRectRotated=cv.minAreaRect(np.concatenate(tuple([charCandidates[charIndex]['contour']foreach charIndexin mostSignificantIndices])))
currentConcatenatedMinRectPoints=np.intpoints(currentConcatenatedMinRectRotated)
currentConcatenatedMinRectBoxPoints=cv.boxPoints(currentConcatenatedMinRectRotated)
currentConcatenatedMinRectBoxPoints=np.int32(currentConcatenatedMinRectBoxPoints)
# draw rotated rect onto original frame copy
#frameCopyContouredOriginalFrame=cv.drawContours(originalFrame.copy(),currentConcatenatedMinRectBoxPoints,-123,[240.,230.,140.])
# draw rotated rect onto original frame copy
#frameCopyContouredOriginalFrame=cv.drawContours(originalFrame.copy(),currentConcatenatedMinRectBoxPoints,-123,[240.,230.,140.])
# draw min rect onto original frame copy
#frameCopyContouredOriginalFrame=cv.drawContours(originalFrame.copy(),currentConcatenatedMinRectPoints,-123,[240.,230.,140.])
# append concatenated min rects contour info dict onto list
#charSegmentationContours.append({'contour':currentConcatenatedMinRect,'minWidth':currentConcatenatedMinRect[**],'minHeight':currentConcatenatedMinRect[::-],'angle':currentConcatenatedMinRectRotated[-])
if args["showStepsOfAlgoProcessingFlowOnScreen"]:
displayImageOnScreen('originalFrame',originalFrame)
displayImageOnScreen('grayScaledOriginalFrame',grayScaledOriginalFrame)
displayImageOnScreen('blurredGrayScaledOriginalFrame',blurredGrayScaledOriginalFrame)
displayImageOnScreen('edgedBlurredGrayScaledOriginalFrame',edgedBlurredGrayScaledOriginalFrame)
if args["showStepsOfAlgoProcessingFlowOnScreen"]:
def detectPlatesInScene(input_frame):
def main():
main()
mohsinanwar12/RealTimeVehicleDetectionSystem<|file_sep<
LICENSE PLATE RECOGNITION USING CNN AND CNN + HOG FEATURE EXTRACTION COMPARISON <link rel="stylesheet" href="../assets/css/style.css?v=”> <link rel="stylesheet" href="../assets/css/responsive.css?v=”> <link rel="stylesheet" href="../assets/css/animate.css?v=”> new WOW().init(); $(document).ready(function () { $(‘.nav-menu’).meanmenu(); }); function myFunction(x){ x.classList.toggle(“change”); } function change(){ var element=document.getElementById(‘myDropdown’); element.classList.toggle(“change”); } function changeDropDown(x){ var element=document.getElementById(x); element.classList.toggle(“change”); } function showDiv(id){ document.getElementById(id).style.display=’block’; } function hideDiv(id){ document.getElementById(id).style.display=’none’; } $(document).ready(function(){ $(“.dropdown”).hover( function() { $(this).find(‘.dropdown-menu’).stop(true,true).slideDown(); }, function() { $(this).find(‘.dropdown-menu’).stop(true,true).slideUp(); } ); }); window.onload=function(){ setTimeout(function(){ window.scrollTo({top:’50px’,behavior:’smooth’}); },150); }; // Code By Codewithrandom // Visit Codewithrandom Website // Facebook Page // Twitter Account // Instagram Account $(document).ready(function(){ $(“#nav-toggle”).click(function(){ $(“#nav-menu”).toggleClass(“show”); }); }); $(document).ready(function(){ $(“#search-icon”).click(function(){ $(“#search-box”).toggle(); }); }); $(document).ready(function(){ $(“#search-box-close”).click(function(){ $(“#search-box”).hide(); }); }); /* —————————— */ /* Preloader */ /* —————————— */ window.addEventListener(‘load’, function () { var preloaderFadeOutTimer = setInterval(function () { var preloaderContainer = document.getElementById(‘preloader-container’); preloaderContainer.style.opacity -= .05; if ((preloaderContainer.style.opacity -= .05) <= .05){ clearInterval(preloaderFadeOutTimer); preloaderContainer.style.display ='none'; } },200); }); /* —————————— */ /* Preloader Ends */ /* —————————— */ /* —————————— */ /* Background Fixed Height Media Query */ /* —————————— */ @media only screen and (max-width :1366px){ .bg-fixed-height{ height:auto; } } @media only screen and (max-width :991px){ .bg-fixed-height{ height:auto; } } @media only screen and (max-width :767px){ .bg-fixed-height{ height:auto; } } /* —————————— */ /* Background Fixed Height Media Query Ends*/ /* —————————— */ $(window).scroll(function(){ $('.parallax-window').parallax(); }); $('#to-top').click(function(){ $('html,body').animate({scrollTop:'-=500'},300); }); /* $('.counter').counterUp({ delay:'10', time:'150' });*/ $('.counter').countUp({ delay:'10', time:'150' }); $('#owl-one-item').owlCarousel({ items:'1', loop:true, margin:'30px', autoplay:true, autoplayTimeout:'60000', autoplayHoverPause:true, smartSpeed:'700', dots:false, nav:true, navText:['',''], responsive:{ '768':{ items:'auto' } }, onTranslated:function(event){ $('.owl-one-item .owl-nav button.owl-prev,.owl-one-item .owl-nav button.owl-next').removeClass('disabled'); } }); $('#owl-two-items-center').owlCarousel({ items:'auto-center', loop:true, margin:'40px', center:true, autoplay:true, autoplayTimeout:'60000', autoplayHoverPause:true, smartSpeed:'700', dots:false, nav:true, navText:['',''], responsive:{ '768':{ items:'auto' } }, onTranslated:function(event){ $('.owl-two-items-center .owl-nav button.owl-prev,.owl-two-items-center .owl-nav button.owl-next').removeClass('disabled'); } }); $('#owl-three-items-center').owlCarousel({ items:'auto-center', loop:true, margin:'40px', center:true, autoplay:true, autoplayTimeout:'60000', autoplayHoverPause:true, smartSpeed:'700', dots:false, nav:false, responsive:{ '768':{ items':'auto' } }, onTranslated:function(event){ $('.owl-three-items-center .owl-nav button.owl-prev,.owl-three-items-center .owl-nav button.owl-next').removeClass('disabled'); } }); $('#testimonial-carousel-one-item-left-arrow-right-arrow-auto-width-responsive-design-dots-hide-left-right-show-text-hover-effect-on-dots-and-arrows-and-text-and-change-text-color-on-hover-on-dots-and-arrows-only-without-changing-background-color-of-dot-or-arrow-without-changing-the-background-color-of-the-dot-or-arrow-and-without-changing-the-font-size-of-text-inside-dot-or-arrow-but-increase-the-font-weight-of-text-inside-dot-or-arrow-on-hover') .owlCarousel({ items:"auto", loop:"true", margin:"60px", center:"true", autoplay:"true", autoplayTimeout:"60000", smartSpeed:"700", dots:"false", nav:"true", dotDataApi:"false", dotDataApiTarget:".custom-dot-data-api-target-div-class-name", dotDataApiActiveClass:".custom-active-class-name-for-custom-data-api-target-div-class-name", dotDataApiCustomTemplate:"#custom-template-for-custom-data-api-target-div-class-name", videoContentAnimationDelay:"800ms", videoContentAnimationDuration:"200ms", videoContentAnimationEasingType:"ease-out-back", videoContentAnimationCallbackFunctionName:"#custom-function-name-for-video-content-animation-callback-function-after-video-content-animation-completes-if-any-video-is-present-in-video-content-animation-section-inside-video-content-animation-section-if-no-video-is-present-you-can-use-a-javascript-alert-dialog-box-for-testing-purposes-only-do-not-use-it-in-production-code-because-it-will-make-your-code-unprofessional-looking-use-some-other-method-for-testing-purposes-only-do-not-use-it-in-production-code-because-it-will-make-your-code-unprofessional-looking-you-can-use-console.log()-method-for-testing-purposes-only-do-not-use-it-in-production-code-because-it-will-make-your-code-unprofessional-looking-if-you-have-any-query-regarding-this-comment-line-you-can-contact-me-via-email-at-sheraz.alihamza@codewithrandom.com-or-via-direct-message-on-my-facebook-page-at-facebook.com/codewithrandom-or-via-direct-message-on-my-twitter-account-at-twitter.com/codewithrandom-or-via-direct-message-on-my-instagram-account-at-instagram.com/codewithrandom-if-you-have-any-query-regarding-this-comment-line-you-can-contact-me-via-email-at-sheraz.alihamza@codewithrandom.com-or-via-direct-message-on-my-facebook-page-at-facebook.com/codewithrandom-or-via-direct-message-on-my-twitter-account-at-twitter.com/codewithrandom-or-via-direct-message-on-my-instagram-account-at-instagram.com/codewithrandom-contact-me-if-you-have-any-query-regarding-this-comment-line-you-can-contact-me-via-email-at-sheraz.alihamza@codewithrandom-com-or-via-direct-message-on-my-facebook-page-at-facebook-com-codewithrandom-or-via-direct-message-on-my-twitter-account-at-twitter-com-codewithrandom-or-via-direct-message-on-my-instagram-account-at-instagram-com-codewith-random-if-you-have-any-query-regarding-this-comment-line-you-can-contact-me-via-email-at-sheraz.alihamza@codewith-random-com-or-via-direct-message-on-my-facebook-page-at-facebook-com-codewit-h-random-or-via-direct-message-on-my-twitter-account-at-twitter-com-codewit-h-random-or-via-direct-message-on-my-instagram-account-at-instagram-com-co-dewith-random-" , customNavPrevHtml:'#custom-html-for-prev-button-using-template-engine-like-handlebarsjs-mustachejs-ejs-lodashjs-jsrenderjs-twig-js-simple-html-string-nothing-is-required-to-be-added-before-and-after-the-html-tag-like-css-style-tags-either-inside-the-tag-like-inline-css-style-tags-outside-the-tag-like-inline-css-style-tags-before-the-tag-like-inline-css-style-tags-after-the-tag-like-inline-css-style-tags-nothing-is-required-to-be-added-before-and-after-the-html-tag-like-css-style-tags-either-inside-the-tag-like-inline-css-style-tags-outside-the-tag-like-inline-css-style-tags-before-the-tag-like-inline-css-style-tags-after-the-tag-like-inline-css-style-tags-nothing-is-required-to-be-added-before-and-after-the-html-tag-like-css-style-tags-either-inside-the-tag-like-inline-css-style-tags-outside-the-tag-like-inline-css-style-tags-before-the-tag-like-inline-css-style-tags-after-thetaglikeinlinecssstyletagsnothingisrequiredto-be-addedbeforeandaftersimplehtmlstringnothingisrequiredto-be-addedbeforeandafterthehtmldiv
“Wikki Tourists FC’s resilience makes them a formidable opponent in any league,” says [Expert Name], a noted football analyst.